pushary 1.9.5 → 1.9.7

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 +13 -0
  2. package/data/cowork/SKILL.md +11 -10
  3. package/dist/bin/pushary-bell-hook.js +23 -23
  4. package/dist/bin/pushary-bell.js +9 -9
  5. package/dist/bin/pushary-claude.js +26 -26
  6. package/dist/bin/pushary-clean.js +35 -35
  7. package/dist/bin/pushary-codex-bridge.js +18 -18
  8. package/dist/bin/pushary-codex-hook.js +31 -31
  9. package/dist/bin/pushary-codex.js +13 -13
  10. package/dist/bin/pushary-connect.js +13 -13
  11. package/dist/bin/pushary-cowork.js +5 -5
  12. package/dist/bin/pushary-daemon.js +27 -26
  13. package/dist/bin/pushary-disconnect.js +24 -24
  14. package/dist/bin/pushary-doctor.js +42 -39
  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 +28 -28
  18. package/dist/bin/pushary-hook.js +32 -32
  19. package/dist/bin/pushary-login.js +12 -12
  20. package/dist/bin/pushary-logout.js +7 -7
  21. package/dist/bin/pushary-mcp.js +9 -9
  22. package/dist/bin/pushary-mode.js +9 -9
  23. package/dist/bin/pushary-notification-hook.js +28 -28
  24. package/dist/bin/pushary-opencode-hook.js +27 -27
  25. package/dist/bin/pushary-permission-denied-hook.js +32 -32
  26. package/dist/bin/pushary-permission-hook.js +31 -31
  27. package/dist/bin/pushary-post-hook.js +28 -28
  28. package/dist/bin/pushary-prompt-hook.js +28 -28
  29. package/dist/bin/pushary-session-end-hook.js +28 -28
  30. package/dist/bin/pushary-session-start-hook.js +32 -31
  31. package/dist/bin/pushary-setup.js +57 -55
  32. package/dist/bin/pushary-stats.js +5 -5
  33. package/dist/bin/pushary-status.js +15 -15
  34. package/dist/bin/pushary-stop-hook.js +28 -28
  35. package/dist/bin/pushary-stopfailure-hook.js +28 -28
  36. package/dist/bin/pushary-suggestions.js +4 -4
  37. package/dist/bin/pushary-transcript-register.js +19 -19
  38. package/dist/bin/pushary-transcripts.js +7 -7
  39. package/dist/bin/pushary-upgrade.js +34 -28
  40. package/dist/bin/pushary-wait.js +9 -9
  41. package/dist/bin/pushary.js +6 -6
  42. package/dist/{chunk-VZGCXECP.js → chunk-3GNUXXDZ.js} +2 -2
  43. package/dist/{chunk-LBTOB7Z7.js → chunk-3PVDOCFI.js} +61 -17
  44. package/dist/{chunk-FQKFONAS.js → chunk-4D2AYNSE.js} +2 -2
  45. package/dist/{chunk-7AV2KBZC.js → chunk-4FK6RZVJ.js} +1 -1
  46. package/dist/{chunk-RKEVFUBN.js → chunk-4YO4T5FV.js} +3 -3
  47. package/dist/{chunk-KSJCYP4I.js → chunk-6DJTDHBI.js} +1 -1
  48. package/dist/{chunk-23R4BMUP.js → chunk-7264S5HZ.js} +1 -1
  49. package/dist/{chunk-UQBJTGLX.js → chunk-7OIWWZAD.js} +3 -3
  50. package/dist/{chunk-5DU7LJ7L.js → chunk-ADSQDYYG.js} +2 -2
  51. package/dist/{chunk-V3TD72QA.js → chunk-ANEAA37E.js} +3 -3
  52. package/dist/{chunk-FYEQSB6N.js → chunk-AQ55ZSSS.js} +1 -1
  53. package/dist/{chunk-IX5EFNCI.js → chunk-AUUXS44H.js} +1 -1
  54. package/dist/{chunk-CPMVKL6H.js → chunk-AVNKVF7N.js} +4 -4
  55. package/dist/{chunk-V3ASMZLF.js → chunk-BTQGAXZ3.js} +8 -8
  56. package/dist/{chunk-M7MMZURA.js → chunk-CBQACHKY.js} +1 -1
  57. package/dist/{chunk-UM7DXK6V.js → chunk-D6S5EKXA.js} +5 -5
  58. package/dist/{chunk-2JOP4D2G.js → chunk-EB4XGVBG.js} +2 -2
  59. package/dist/{chunk-4LVFBQJ3.js → chunk-GKI6LFAV.js} +2 -2
  60. package/dist/{chunk-NUYECJ57.js → chunk-H37L7TT3.js} +1 -1
  61. package/dist/{chunk-FNOY2K4N.js → chunk-H7MMU64M.js} +3 -2
  62. package/dist/{chunk-XXBOA4ZL.js → chunk-HPRZJKRO.js} +1 -1
  63. package/dist/{chunk-NI2BRIHL.js → chunk-JCWZ23MJ.js} +3 -3
  64. package/dist/chunk-JWKBDSPF.js +69 -0
  65. package/dist/{chunk-XEZWDDR5.js → chunk-JWQZSYCK.js} +1 -1
  66. package/dist/{chunk-ELQAQZNO.js → chunk-JXISQ7DT.js} +3 -3
  67. package/dist/{chunk-L5XJZKF2.js → chunk-KFKL3FHS.js} +3 -3
  68. package/dist/{chunk-QEY4SCXT.js → chunk-KT5E2RLS.js} +1 -1
  69. package/dist/{chunk-K2J6OGGN.js → chunk-KYO45G5L.js} +1 -1
  70. package/dist/{chunk-CV2IAVD5.js → chunk-L76HTPU6.js} +3 -3
  71. package/dist/{chunk-GBKM4ULB.js → chunk-MBK7N46B.js} +6 -6
  72. package/dist/{chunk-5T65DZBH.js → chunk-MNWRUGMH.js} +1 -1
  73. package/dist/{chunk-NH63BTRO.js → chunk-MZPXVH4A.js} +5 -5
  74. package/dist/{chunk-EYKHHCLA.js → chunk-N4EUSDKX.js} +4 -4
  75. package/dist/{chunk-G3W5GP6O.js → chunk-NIBFSARF.js} +25 -6
  76. package/dist/{chunk-JSVBVV2Q.js → chunk-QFEM7R6T.js} +9 -9
  77. package/dist/{chunk-TNCINDSF.js → chunk-QQ4HBXZC.js} +6 -6
  78. package/dist/{chunk-SBR2UKUO.js → chunk-QR6VE5ME.js} +35 -3
  79. package/dist/{chunk-Q6KNNFGG.js → chunk-QTO6HEZD.js} +27 -8
  80. package/dist/{chunk-ZJSII7OP.js → chunk-R3YW55MY.js} +10 -10
  81. package/dist/{chunk-LSYSKKWW.js → chunk-RQGODFQN.js} +8 -4
  82. package/dist/{chunk-ORBTANP2.js → chunk-RQSOEB4S.js} +1 -1
  83. package/dist/{chunk-ZW7KE2GP.js → chunk-SBLPHUEB.js} +1 -1
  84. package/dist/{chunk-3Z7NUGXO.js → chunk-SD3272LS.js} +4 -4
  85. package/dist/{chunk-HOTK2D2S.js → chunk-STQRUH3S.js} +1 -1
  86. package/dist/{chunk-6OUATBSK.js → chunk-T7Y5EADL.js} +2 -2
  87. package/dist/{chunk-6WKOOF2H.js → chunk-UFVGSEWH.js} +2 -2
  88. package/dist/{chunk-KTIY7ZIA.js → chunk-VXRXFU6Q.js} +9 -7
  89. package/dist/{chunk-2KH5NTKR.js → chunk-W2KI5KPD.js} +2 -2
  90. package/dist/{chunk-GRFV6GPY.js → chunk-X5NXPCIC.js} +7 -1
  91. package/dist/{chunk-2PFD44YK.js → chunk-XWAYAO3V.js} +2 -2
  92. package/dist/{chunk-2DSUVY6R.js → chunk-Z6HPS67T.js} +1 -1
  93. package/dist/{chunk-ZBF5WAP7.js → chunk-ZUTU43FT.js} +4 -4
  94. package/dist/{global-upgrade-GWD4OADP.js → global-upgrade-E2HUEB4B.js} +6 -6
  95. package/dist/{paths-MJGE4UFY.js → paths-QVTEGNZV.js} +2 -2
  96. package/dist/{reapply-U6BMGCAB.js → reapply-5QVKM6LA.js} +11 -8
  97. package/dist/src/index.js +20 -20
  98. package/dist/{upgrade-lock-HQP6XCER.js → upgrade-lock-JCIDZMHF.js} +5 -3
  99. package/package.json +1 -1
  100. package/dist/chunk-G7CZUI4G.js +0 -38
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.7
4
+
5
+ - `pushary claude` and the `pushary daemon` commands wait at most 5 seconds for the background service again. Only setup and upgrade allow the 30 seconds a cold Windows start can need, so launching Claude no longer sits silent while the service starts.
6
+ - An automatic update whose configuration refresh fails now retries after 5 minutes, then after an hour, then once a day, instead of every 5 minutes. On a Mac with phone-start on, each retry restarted the background service.
7
+ - A refresh that cannot succeed until you change something (a legacy phone-start service, phone-start turned on without a usable agent, or a config file Pushary cannot rewrite) is no longer retried automatically. `pushary doctor` shows it, and running `pushary upgrade` after the fix finishes it.
8
+ - When a Codex approval hook is turned off in Codex, setup and upgrade tell you to enable it in `/hooks` instead of asking you to trust it. A missing or background (asynchronous) approval hook points you to setup again, as doctor does.
9
+ - Upgrades, including automatic ones, regenerate the OpenCode plugin Pushary installed, so the active directory fix from 1.9.4 reaches existing installs without running setup again. A `pushary.js` you wrote yourself is never touched, and no plugin is added where there was none.
10
+
11
+ ## 1.9.6
12
+
13
+ - Read-only shell approval no longer covers commands that make the shell evaluate quoted text again: arithmetic expansion (`$[ ]`), subscripted parameters (`$name[ ]`, including zsh flag prefixes) and `printf -v`. These ran a quoted command substitution in bash or zsh while being approved without asking. They now go to your normal approval.
14
+ - An escaped `;`, `&` or `|` no longer splits a command when rating its risk, so destructive words passed as arguments to `sh -c` keep the command destructive and above a standing Bash auto-approve.
15
+
3
16
  ## 1.9.5
4
17
 
5
18
  - Setup allows up to 30 seconds each for daemon startup and heartbeat/control proof, allowing cold Windows agent discovery to finish before reporting a failure. Healthy services return immediately.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: pushary-cowork
3
- version: 0.4.3
4
- description: Phone notifications and human-in-the-loop for Claude Cowork through the Pushary connector. Use inside a Cowork session whenever you need a human and nobody is watching the session, such as before an irreversible or destructive action, before spending money, deploying, force-pushing or deleting, when blocked on a decision outside your authority, when running unattended and you hit a genuine ambiguity, when another skill's workflow says to confirm with the user, and when a task finishes or fails with nobody watching. Also use it when the user says things like ping me on my phone when this is done, ask me before doing anything risky, keep me in the loop while I am away, or notify me if you get stuck. Sends completion alerts, asks questions (yes/no, multiple choice, or free text) via push, and gets answers from connected devices. This Pushary connector is cooperative; it does not install native Cowork permission hooks. Pushary is a hosted service, $9.99/mo after a 3-day card-first trial.
3
+ version: 0.5.0
4
+ description: Use Pushary in Claude Chat, Cowork, or Claude Code when the user asks for phone updates, a missing decision blocks work, an action needs approval outside existing authorization, or meaningful unattended work finishes or fails. Send task updates and confirm, choice, or text questions to the user's connected devices, then read the returned answer and handoff. Requires the Pushary connector and a paid Pushary account. This skill does not install native permission hooks.
5
5
  metadata:
6
6
  tags: notifications, push, mcp, human-in-the-loop, cowork, claude, alerts, approvals
7
7
  ---
8
8
 
9
- # Pushary for Claude Cowork
9
+ # Pushary for Claude
10
10
 
11
11
  Pushary is connected as a custom connector. It reaches the user on their phone, where confirm notifications can offer lock-screen actions; choices and text open the app. Use it proactively. Do not wait for the user to ask.
12
12
 
@@ -26,7 +26,7 @@ Every question costs the user their attention wherever they are. Before a run of
26
26
 
27
27
  ## Hand back with a way to reply
28
28
 
29
- The connector is the only channel between this session and the user's phone, and it carries only what you ask it to. A plain completion notice is one way traffic: once your turn ends nothing here is listening, so anything the user types back on their phone has nowhere to land. Pushary also cannot start a new Cowork task on its own, so a reply that says "now do X" reaches nobody unless you asked for it before you stopped.
29
+ The connector carries only the updates and questions you send. Once your turn ends, this connector is no longer listening for answers. It cannot start a new Chat, Cowork, or Claude Code task, so a reply that says "now do X" reaches nobody unless you asked for it before you stopped.
30
30
 
31
31
  When a specific unresolved decision is needed before you can finish, keep the channel open:
32
32
 
@@ -34,7 +34,7 @@ When a specific unresolved decision is needed before you can finish, keep the ch
34
34
  2. Poll the returned `linkedCorrelationId` once with `wait_for_answer`, then follow its handoff.
35
35
  3. Act on the answer in this same session, then hand back the same way again if more work follows.
36
36
 
37
- Do not create a question just to keep the turn alive or ask for optional feedback after every result. Once this turn ends, tell the user to reopen Cowork for follow-up work.
37
+ Do not create a question just to keep the turn alive or ask for optional feedback after every result. Once this turn ends, the user must send follow-up work in Claude.
38
38
 
39
39
  ## How to wait for answers
40
40
 
@@ -55,22 +55,23 @@ Delivery is controlled by the user's policy: `push_first` uses presence, `push_o
55
55
  | Slack | Answer through buttons, menus or text modals when the integration and intended recipient are configured. |
56
56
  | Browser | Open the decision page as a fallback; browser notification delivery requires permission. |
57
57
 
58
- Personal setup connects the operator's devices. For a Mac, install from https://pushary.com/download, sign in to the same personal account and connect your agents in the app. Run `npx pushary@latest cowork` for connector setup, then ask one harmless test question inside Cowork, answer it from Pushary, and verify Cowork receives the answer. CLI doctor checks do not verify a hosted connector. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
58
+ Personal setup connects the operator's devices. The operator installs the Pushary phone or Mac app from https://pushary.com/download and signs in with the same account as the connector. In Chat or Cowork, connect Pushary from the plugin's Connectors tab or add `https://pushary.com/api/mcp/mcp` under Customize > Connectors. In Claude Code, check the connector with `/mcp` and follow its OAuth sign-in prompt. No CLI installer or API key is needed. Ask one harmless test question in the app being tested, answer it from Pushary, and verify Claude receives the answer. CLI doctor checks do not verify a hosted connector. Test phone fallback while away from the Mac; do not infer delivery from a successful API call alone.
59
59
 
60
60
  Partner customers use scoped enrollment links issued by their application. Do not enroll them into the operator's account or send their decisions through personal tools. The Mac notch currently uses the personal account/session API; do not promise a Partner customer inbox on Mac. See https://pushary.com/docs/agents/embed for Partner setup.
61
61
 
62
62
  ## Conventions
63
63
 
64
- - Reuse one opaque `sessionId` per Cowork task. Do not reuse it across parallel tasks or put credentials in it.
65
- - Pass `agentName` as `Claude Cowork - <task name>` on every call, so the user knows which session is asking and their dashboard groups the session correctly.
64
+ - Reuse one opaque `sessionId` per conversation or task. Do not reuse it across parallel tasks or put credentials in it.
65
+ - Pass `agentName` as `Claude Chat - <task name>`, `Claude Cowork - <task name>`, or `Claude Code - <task name>` to match the current app. Use it on every call so the user knows which session is asking.
66
66
  - Keep questions short and decision-shaped. One sentence of context, then the ask. The user is reading a lock screen, not a report.
67
+ - Send only the context needed for the decision or task update. Leave passwords, API keys, file contents, and private conversation history out of Pushary tool arguments.
67
68
  - Do not ask through Pushary for things you can safely decide yourself. Reserve it for real decisions, risky steps, completions, and errors, so a ping always means something.
68
69
 
69
70
  ## Setup and capability boundary
70
71
 
71
- Install the Pushary Cowork plugin to supply this skill and its remote MCP connector, or add `https://pushary.com/api/mcp/mcp` under Customize > Connectors. Sign in with the same Pushary account used by your phone and Mac. Enable the connector in the task and approve its tool access when Claude asks. For proactive behavior, use this skill or standing instructions under Settings > Cowork; do not rely on a repository memory file.
72
+ Install Pushary for Claude to supply this skill and its remote MCP connector, or connect the public URL above. Sign in with the same Pushary account used by your phone and Mac. Enable the connector in the conversation and approve its tool access when Claude asks. Use this skill for proactive behavior. Cowork also supports standing instructions under Settings > Cowork; Chat and Cowork do not rely on a repository memory file.
72
73
 
73
- Anthropic documents plugin hooks in supported Cowork versions. This plugin currently uses the cooperative connector and does not install or verify native permission hooks. Local and cloud Cowork tasks may have different capabilities; do not infer them from the product name. Native Claude permission prompts still need Claude’s own approval surface.
74
+ This plugin uses the cooperative connector and installs no native permission hooks. Chat ignores hooks. Cowork and Claude Code can load hooks from other integrations, but that does not mean this bundle can enforce approvals. Native Claude permission prompts still need Claude's own approval surface unless a separately installed integration handles them.
74
75
 
75
76
  ## If the connector is missing
76
77
 
@@ -1,39 +1,39 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-NUYECJ57.js";
4
+ } from "../chunk-H37L7TT3.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-2PFD44YK.js";
8
- import "../chunk-V3ASMZLF.js";
7
+ } from "../chunk-XWAYAO3V.js";
8
+ import "../chunk-BTQGAXZ3.js";
9
9
  import "../chunk-SGZJ5LYH.js";
10
- import "../chunk-3Z7NUGXO.js";
11
- import "../chunk-ZW7KE2GP.js";
12
- import "../chunk-5T65DZBH.js";
13
- import "../chunk-RKEVFUBN.js";
14
- import "../chunk-KTIY7ZIA.js";
15
- import "../chunk-NI2BRIHL.js";
16
- import "../chunk-23R4BMUP.js";
17
- import "../chunk-IX5EFNCI.js";
18
- import "../chunk-7AV2KBZC.js";
19
- import "../chunk-XXBOA4ZL.js";
10
+ import "../chunk-SD3272LS.js";
11
+ import "../chunk-SBLPHUEB.js";
12
+ import "../chunk-MNWRUGMH.js";
13
+ import "../chunk-4YO4T5FV.js";
14
+ import "../chunk-VXRXFU6Q.js";
15
+ import "../chunk-JCWZ23MJ.js";
16
+ import "../chunk-7264S5HZ.js";
17
+ import "../chunk-AUUXS44H.js";
18
+ import "../chunk-4FK6RZVJ.js";
19
+ import "../chunk-HPRZJKRO.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
- import "../chunk-KSJCYP4I.js";
23
- import "../chunk-CPMVKL6H.js";
22
+ import "../chunk-6DJTDHBI.js";
23
+ import "../chunk-AVNKVF7N.js";
24
24
  import "../chunk-POFBE6ZY.js";
25
25
  import "../chunk-GMXKITVA.js";
26
- import "../chunk-5DU7LJ7L.js";
27
- import "../chunk-ELQAQZNO.js";
28
- import "../chunk-K2J6OGGN.js";
26
+ import "../chunk-ADSQDYYG.js";
27
+ import "../chunk-JXISQ7DT.js";
28
+ import "../chunk-KYO45G5L.js";
29
29
  import "../chunk-7QLSKOSU.js";
30
30
  import "../chunk-KZERVKTD.js";
31
- import "../chunk-FQKFONAS.js";
32
- import "../chunk-ZBF5WAP7.js";
31
+ import "../chunk-4D2AYNSE.js";
32
+ import "../chunk-ZUTU43FT.js";
33
33
  import "../chunk-T7E75EKA.js";
34
- import "../chunk-2DSUVY6R.js";
35
- import "../chunk-HOTK2D2S.js";
36
- import "../chunk-SBR2UKUO.js";
34
+ import "../chunk-Z6HPS67T.js";
35
+ import "../chunk-STQRUH3S.js";
36
+ import "../chunk-QR6VE5ME.js";
37
37
 
38
38
  // bin/pushary-bell-hook.ts
39
39
  var main = async () => {
@@ -5,37 +5,37 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-NUYECJ57.js";
8
+ } from "../chunk-H37L7TT3.js";
9
9
  import {
10
10
  addBellHooks,
11
11
  bellInstalled,
12
12
  removeBellHooks
13
- } from "../chunk-23R4BMUP.js";
13
+ } from "../chunk-7264S5HZ.js";
14
14
  import {
15
15
  createIo
16
16
  } from "../chunk-U4TMAANR.js";
17
17
  import {
18
18
  exitOnHelpFlag
19
- } from "../chunk-6WKOOF2H.js";
19
+ } from "../chunk-UFVGSEWH.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
23
- import "../chunk-5DU7LJ7L.js";
23
+ import "../chunk-ADSQDYYG.js";
24
24
  import "../chunk-7QLSKOSU.js";
25
25
  import {
26
26
  EXIT
27
27
  } from "../chunk-KZERVKTD.js";
28
- import "../chunk-FQKFONAS.js";
28
+ import "../chunk-4D2AYNSE.js";
29
29
  import {
30
30
  claudeSettings
31
- } from "../chunk-ZBF5WAP7.js";
31
+ } from "../chunk-ZUTU43FT.js";
32
32
  import {
33
33
  readJsonSafe,
34
34
  writeJsonAtomic
35
35
  } from "../chunk-T7E75EKA.js";
36
- import "../chunk-2DSUVY6R.js";
37
- import "../chunk-HOTK2D2S.js";
38
- import "../chunk-SBR2UKUO.js";
36
+ import "../chunk-Z6HPS67T.js";
37
+ import "../chunk-STQRUH3S.js";
38
+ import "../chunk-QR6VE5ME.js";
39
39
 
40
40
  // bin/pushary-bell.ts
41
41
  exitOnHelpFlag("bell");
@@ -8,7 +8,7 @@ import {
8
8
  describeIdleWindow,
9
9
  startProcessOwnership,
10
10
  withSpawnProcessOwnership
11
- } from "../chunk-XEZWDDR5.js";
11
+ } from "../chunk-JWQZSYCK.js";
12
12
  import {
13
13
  announceSubscriptionRequired,
14
14
  isDeferAnswer
@@ -18,24 +18,24 @@ import {
18
18
  loadSessionKey,
19
19
  registerTranscript,
20
20
  registeredTranscriptEnabled
21
- } from "../chunk-V3ASMZLF.js";
21
+ } from "../chunk-BTQGAXZ3.js";
22
22
  import "../chunk-SGZJ5LYH.js";
23
- import "../chunk-3Z7NUGXO.js";
24
- import "../chunk-ZW7KE2GP.js";
25
- import "../chunk-5T65DZBH.js";
26
- import "../chunk-RKEVFUBN.js";
23
+ import "../chunk-SD3272LS.js";
24
+ import "../chunk-SBLPHUEB.js";
25
+ import "../chunk-MNWRUGMH.js";
26
+ import "../chunk-4YO4T5FV.js";
27
27
  import {
28
28
  ensureDaemonRunning
29
- } from "../chunk-KTIY7ZIA.js";
30
- import "../chunk-NI2BRIHL.js";
31
- import "../chunk-23R4BMUP.js";
29
+ } from "../chunk-VXRXFU6Q.js";
30
+ import "../chunk-JCWZ23MJ.js";
31
+ import "../chunk-7264S5HZ.js";
32
32
  import {
33
33
  encryptRecord
34
- } from "../chunk-IX5EFNCI.js";
35
- import "../chunk-7AV2KBZC.js";
34
+ } from "../chunk-AUUXS44H.js";
35
+ import "../chunk-4FK6RZVJ.js";
36
36
  import {
37
37
  transcriptsEnabled
38
- } from "../chunk-XXBOA4ZL.js";
38
+ } from "../chunk-HPRZJKRO.js";
39
39
  import {
40
40
  needsShell,
41
41
  spawnClaude
@@ -51,7 +51,7 @@ import {
51
51
  repoKeyFor,
52
52
  reportEvent,
53
53
  scopePathFor
54
- } from "../chunk-JSVBVV2Q.js";
54
+ } from "../chunk-QFEM7R6T.js";
55
55
  import {
56
56
  DEFAULT_SESSION,
57
57
  markPendingCommandDelivered,
@@ -61,7 +61,7 @@ import {
61
61
  removePendingCommand,
62
62
  savePendingCommand
63
63
  } from "../chunk-N6IOSZOE.js";
64
- import "../chunk-KSJCYP4I.js";
64
+ import "../chunk-6DJTDHBI.js";
65
65
  import {
66
66
  DECISION_STOP_REASON,
67
67
  UNVERIFIABLE_APPROVAL_REASON,
@@ -72,36 +72,36 @@ import {
72
72
  nextLongPollMs,
73
73
  waitForAnswer,
74
74
  withdrawQuestion
75
- } from "../chunk-UM7DXK6V.js";
76
- import "../chunk-CPMVKL6H.js";
75
+ } from "../chunk-D6S5EKXA.js";
76
+ import "../chunk-AVNKVF7N.js";
77
77
  import "../chunk-POFBE6ZY.js";
78
78
  import "../chunk-GMXKITVA.js";
79
- import "../chunk-5DU7LJ7L.js";
79
+ import "../chunk-ADSQDYYG.js";
80
80
  import {
81
81
  SubscriptionRequiredError
82
- } from "../chunk-CV2IAVD5.js";
83
- import "../chunk-L5XJZKF2.js";
84
- import "../chunk-ELQAQZNO.js";
82
+ } from "../chunk-L76HTPU6.js";
83
+ import "../chunk-KFKL3FHS.js";
84
+ import "../chunk-JXISQ7DT.js";
85
85
  import {
86
86
  getMachineId
87
- } from "../chunk-K2J6OGGN.js";
87
+ } from "../chunk-KYO45G5L.js";
88
88
  import "../chunk-7QLSKOSU.js";
89
89
  import "../chunk-KZERVKTD.js";
90
- import "../chunk-FQKFONAS.js";
91
- import "../chunk-ZBF5WAP7.js";
90
+ import "../chunk-4D2AYNSE.js";
91
+ import "../chunk-ZUTU43FT.js";
92
92
  import "../chunk-T7E75EKA.js";
93
93
  import {
94
94
  getApiKey,
95
95
  getBaseUrl
96
- } from "../chunk-2DSUVY6R.js";
96
+ } from "../chunk-Z6HPS67T.js";
97
97
  import {
98
98
  NPX_LATEST_COMMAND
99
- } from "../chunk-HOTK2D2S.js";
99
+ } from "../chunk-STQRUH3S.js";
100
100
  import {
101
101
  KILL_REASON,
102
102
  redactSecretsFromContent,
103
103
  resolveGate
104
- } from "../chunk-SBR2UKUO.js";
104
+ } from "../chunk-QR6VE5ME.js";
105
105
 
106
106
  // src/wrapper/localPassthrough.ts
107
107
  var SIGNAL_NUMBERS = {
@@ -4,7 +4,7 @@ import {
4
4
  PUSHARY_SKILL_SOURCE,
5
5
  createGuards,
6
6
  withoutPusharyCursorHooks
7
- } from "../chunk-2JOP4D2G.js";
7
+ } from "../chunk-EB4XGVBG.js";
8
8
  import {
9
9
  HERMES_PIP_PACKAGE,
10
10
  planFxRemoval,
@@ -15,8 +15,16 @@ import {
15
15
  shortenHome,
16
16
  unregisterPluginLocation,
17
17
  vscodeSettingsTargets
18
- } from "../chunk-TNCINDSF.js";
19
- import "../chunk-2KH5NTKR.js";
18
+ } from "../chunk-QQ4HBXZC.js";
19
+ import "../chunk-W2KI5KPD.js";
20
+ import {
21
+ compatibleConfigFile,
22
+ compatibleInstructionsFile,
23
+ compatibleMcpFile,
24
+ compatiblePermissionRuleFile,
25
+ removeCompatibleHooks,
26
+ removeCompatibleMcpServer
27
+ } from "../chunk-MZPXVH4A.js";
20
28
  import {
21
29
  OPENCODE_PLUGIN_SIBLING,
22
30
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -28,48 +36,40 @@ import {
28
36
  openCodePluginDir,
29
37
  openCodePluginFile,
30
38
  removeOpenCodeMcpServer
31
- } from "../chunk-GRFV6GPY.js";
32
- import {
33
- compatibleConfigFile,
34
- compatibleInstructionsFile,
35
- compatibleMcpFile,
36
- compatiblePermissionRuleFile,
37
- removeCompatibleHooks,
38
- removeCompatibleMcpServer
39
- } from "../chunk-NH63BTRO.js";
39
+ } from "../chunk-X5NXPCIC.js";
40
40
  import {
41
41
  isClaudeMcpSnapshot,
42
42
  removeClaudeMcpServers,
43
43
  removePusharySettings,
44
44
  removePusharyToolPermissions,
45
45
  restoreClaudeMcpServer
46
- } from "../chunk-V3TD72QA.js";
46
+ } from "../chunk-ANEAA37E.js";
47
47
  import {
48
48
  hookOwnerOf,
49
49
  isHookTakeoverReceipt,
50
50
  restoreHookTakeover,
51
51
  restoreMcpServer
52
- } from "../chunk-3Z7NUGXO.js";
53
- import "../chunk-ZW7KE2GP.js";
52
+ } from "../chunk-SD3272LS.js";
53
+ import "../chunk-SBLPHUEB.js";
54
54
  import {
55
55
  liveBridgeProbe,
56
56
  resolveBridgeStub
57
- } from "../chunk-5T65DZBH.js";
58
- import "../chunk-RKEVFUBN.js";
57
+ } from "../chunk-MNWRUGMH.js";
58
+ import "../chunk-4YO4T5FV.js";
59
59
  import {
60
60
  disableDaemonService
61
- } from "../chunk-KTIY7ZIA.js";
61
+ } from "../chunk-VXRXFU6Q.js";
62
62
  import {
63
63
  removeGeminiSettings
64
- } from "../chunk-NI2BRIHL.js";
65
- import "../chunk-23R4BMUP.js";
64
+ } from "../chunk-JCWZ23MJ.js";
65
+ import "../chunk-7264S5HZ.js";
66
66
  import "../chunk-XHKBHWLX.js";
67
67
  import "../chunk-6ICPEJY5.js";
68
- import "../chunk-JSVBVV2Q.js";
68
+ import "../chunk-QFEM7R6T.js";
69
69
  import "../chunk-N6IOSZOE.js";
70
- import "../chunk-KSJCYP4I.js";
71
- import "../chunk-UM7DXK6V.js";
72
- import "../chunk-CPMVKL6H.js";
70
+ import "../chunk-6DJTDHBI.js";
71
+ import "../chunk-D6S5EKXA.js";
72
+ import "../chunk-AVNKVF7N.js";
73
73
  import "../chunk-POFBE6ZY.js";
74
74
  import {
75
75
  ansiPainter,
@@ -77,7 +77,7 @@ import {
77
77
  } from "../chunk-U4TMAANR.js";
78
78
  import {
79
79
  exitOnHelpFlag
80
- } from "../chunk-6WKOOF2H.js";
80
+ } from "../chunk-UFVGSEWH.js";
81
81
  import {
82
82
  rejectUnknownFlags
83
83
  } from "../chunk-GMXKITVA.js";
@@ -85,16 +85,16 @@ import {
85
85
  CANDIDATE_RCS,
86
86
  isDisabledExport,
87
87
  removeClaudeAlias
88
- } from "../chunk-5DU7LJ7L.js";
89
- import "../chunk-CV2IAVD5.js";
90
- import "../chunk-L5XJZKF2.js";
91
- import "../chunk-ELQAQZNO.js";
92
- import "../chunk-K2J6OGGN.js";
88
+ } from "../chunk-ADSQDYYG.js";
89
+ import "../chunk-L76HTPU6.js";
90
+ import "../chunk-KFKL3FHS.js";
91
+ import "../chunk-JXISQ7DT.js";
92
+ import "../chunk-KYO45G5L.js";
93
93
  import "../chunk-7QLSKOSU.js";
94
94
  import {
95
95
  EXIT
96
96
  } from "../chunk-KZERVKTD.js";
97
- import "../chunk-FQKFONAS.js";
97
+ import "../chunk-4D2AYNSE.js";
98
98
  import {
99
99
  bridgeAgentKey,
100
100
  claudeJson,
@@ -132,12 +132,12 @@ import {
132
132
  restoreCodexHookTrust,
133
133
  vscodePluginDir,
134
134
  vscodePluginMcp
135
- } from "../chunk-ZBF5WAP7.js";
135
+ } from "../chunk-ZUTU43FT.js";
136
136
  import "../chunk-T7E75EKA.js";
137
- import "../chunk-2DSUVY6R.js";
137
+ import "../chunk-Z6HPS67T.js";
138
138
  import {
139
139
  NPX_LATEST_COMMAND
140
- } from "../chunk-HOTK2D2S.js";
140
+ } from "../chunk-STQRUH3S.js";
141
141
  import {
142
142
  CLI_PACKAGE_NAMES,
143
143
  HOOK_COMPATIBLE_PROFILES,
@@ -149,7 +149,7 @@ import {
149
149
  globalRootFor,
150
150
  isValidApiKey,
151
151
  redactSecrets
152
- } from "../chunk-SBR2UKUO.js";
152
+ } from "../chunk-QR6VE5ME.js";
153
153
 
154
154
  // bin/pushary-clean.ts
155
155
  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-4LVFBQJ3.js";
8
+ } from "../chunk-GKI6LFAV.js";
9
9
  import {
10
10
  resolveProviderBinary
11
- } from "../chunk-6OUATBSK.js";
11
+ } from "../chunk-T7Y5EADL.js";
12
12
  import "../chunk-RIVNNBEK.js";
13
13
  import {
14
14
  SESSION_IDLE_TIMEOUT_MS,
@@ -16,12 +16,12 @@ import {
16
16
  idleDeadlinePassed,
17
17
  startProcessOwnership,
18
18
  withSpawnProcessOwnership
19
- } from "../chunk-XEZWDDR5.js";
20
- import "../chunk-IX5EFNCI.js";
21
- import "../chunk-7AV2KBZC.js";
19
+ } from "../chunk-JWQZSYCK.js";
20
+ import "../chunk-AUUXS44H.js";
21
+ import "../chunk-4FK6RZVJ.js";
22
22
  import {
23
23
  transcriptsEnabled
24
- } from "../chunk-XXBOA4ZL.js";
24
+ } from "../chunk-HPRZJKRO.js";
25
25
  import {
26
26
  spawnClaude
27
27
  } from "../chunk-XHKBHWLX.js";
@@ -31,37 +31,37 @@ import {
31
31
  isDecisionStopped,
32
32
  isWaitForAnswerResponse,
33
33
  withdrawQuestion
34
- } from "../chunk-UM7DXK6V.js";
34
+ } from "../chunk-D6S5EKXA.js";
35
35
  import {
36
36
  writeDegraded
37
- } from "../chunk-CPMVKL6H.js";
37
+ } from "../chunk-AVNKVF7N.js";
38
38
  import "../chunk-POFBE6ZY.js";
39
- import "../chunk-5DU7LJ7L.js";
39
+ import "../chunk-ADSQDYYG.js";
40
40
  import {
41
41
  callMcpTool
42
- } from "../chunk-CV2IAVD5.js";
43
- import "../chunk-L5XJZKF2.js";
44
- import "../chunk-ELQAQZNO.js";
42
+ } from "../chunk-L76HTPU6.js";
43
+ import "../chunk-KFKL3FHS.js";
44
+ import "../chunk-JXISQ7DT.js";
45
45
  import {
46
46
  getMachineId
47
- } from "../chunk-K2J6OGGN.js";
47
+ } from "../chunk-KYO45G5L.js";
48
48
  import "../chunk-7QLSKOSU.js";
49
49
  import "../chunk-KZERVKTD.js";
50
- import "../chunk-FQKFONAS.js";
51
- import "../chunk-ZBF5WAP7.js";
50
+ import "../chunk-4D2AYNSE.js";
51
+ import "../chunk-ZUTU43FT.js";
52
52
  import "../chunk-T7E75EKA.js";
53
53
  import {
54
54
  getApiKey,
55
55
  getBaseUrl
56
- } from "../chunk-2DSUVY6R.js";
57
- import "../chunk-HOTK2D2S.js";
56
+ } from "../chunk-Z6HPS67T.js";
57
+ import "../chunk-STQRUH3S.js";
58
58
  import {
59
59
  elicitationContent,
60
60
  parseAgentQuestion,
61
61
  parseAgentQuestionAnswers,
62
62
  planElicitationAsk,
63
63
  readElicitationFields
64
- } from "../chunk-SBR2UKUO.js";
64
+ } from "../chunk-QR6VE5ME.js";
65
65
 
66
66
  // bin/pushary-codex-bridge.ts
67
67
  import { existsSync } from "fs";