@pushary/agent-hooks 1.9.25 → 1.9.27

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 +17 -0
  2. package/data/SKILL.md +1 -1
  3. package/data/cursor-plugin/skills/pushary/SKILL.md +1 -1
  4. package/data/vscode-plugin/skills/pushary/SKILL.md +1 -1
  5. package/dist/bin/pushary-bell-hook.js +25 -25
  6. package/dist/bin/pushary-bell.js +9 -9
  7. package/dist/bin/pushary-claude.js +24 -24
  8. package/dist/bin/pushary-clean.js +29 -29
  9. package/dist/bin/pushary-codex-bridge.js +17 -17
  10. package/dist/bin/pushary-codex-hook.js +32 -32
  11. package/dist/bin/pushary-codex.js +12 -12
  12. package/dist/bin/pushary-connect.js +24 -24
  13. package/dist/bin/pushary-cowork.js +5 -5
  14. package/dist/bin/pushary-daemon.js +36 -32
  15. package/dist/bin/pushary-disconnect.js +24 -24
  16. package/dist/bin/pushary-doctor.js +35 -35
  17. package/dist/bin/pushary-elicitation-hook.js +25 -25
  18. package/dist/bin/pushary-gemini-bridge.js +13 -13
  19. package/dist/bin/pushary-gemini-hook.js +29 -29
  20. package/dist/bin/pushary-hook.js +29 -29
  21. package/dist/bin/pushary-login.js +12 -12
  22. package/dist/bin/pushary-logout.js +24 -24
  23. package/dist/bin/pushary-mcp.js +9 -9
  24. package/dist/bin/pushary-mode.js +12 -12
  25. package/dist/bin/pushary-notification-hook.js +24 -24
  26. package/dist/bin/pushary-opencode-hook.js +26 -26
  27. package/dist/bin/pushary-permission-denied-hook.js +29 -29
  28. package/dist/bin/pushary-permission-hook.js +28 -28
  29. package/dist/bin/pushary-post-hook.js +24 -24
  30. package/dist/bin/pushary-prompt-hook.js +24 -24
  31. package/dist/bin/pushary-session-end-hook.js +24 -24
  32. package/dist/bin/pushary-session-start-hook.js +28 -28
  33. package/dist/bin/pushary-setup.js +35 -35
  34. package/dist/bin/pushary-stats.js +5 -5
  35. package/dist/bin/pushary-status.js +26 -26
  36. package/dist/bin/pushary-stop-hook.js +24 -24
  37. package/dist/bin/pushary-stopfailure-hook.js +24 -24
  38. package/dist/bin/pushary-suggestions.js +12 -12
  39. package/dist/bin/pushary-transcript-register.js +17 -17
  40. package/dist/bin/pushary-transcripts.js +7 -7
  41. package/dist/bin/pushary-upgrade.js +30 -30
  42. package/dist/bin/pushary-wait.js +12 -12
  43. package/dist/bin/pushary.js +6 -6
  44. package/dist/{chunk-TLUSUDRU.js → chunk-2NQHGDK5.js} +1 -1
  45. package/dist/{chunk-GC5HJE3T.js → chunk-4LIOV4YP.js} +3 -3
  46. package/dist/{chunk-PM2WJSUH.js → chunk-4LO6OQZ4.js} +1 -1
  47. package/dist/{chunk-FLC4TVXH.js → chunk-5LLH2TBR.js} +1 -1
  48. package/dist/{chunk-FJKV64M7.js → chunk-5SKHXKIF.js} +5 -5
  49. package/dist/{chunk-2J2WFX7X.js → chunk-5ZR7XFTB.js} +4 -4
  50. package/dist/{chunk-LDNKGG5G.js → chunk-6CBKIF3S.js} +3 -3
  51. package/dist/{chunk-NFH2H7PD.js → chunk-AT4URLSU.js} +5 -5
  52. package/dist/{chunk-KZLOVLA6.js → chunk-BZYYTJ65.js} +4 -4
  53. package/dist/{chunk-A3QQWXIE.js → chunk-CSXWXXFJ.js} +1 -1
  54. package/dist/{chunk-N3ACK3YA.js → chunk-DY6AKR4W.js} +32 -22
  55. package/dist/{chunk-BHRMHDOO.js → chunk-E4NITECV.js} +2 -2
  56. package/dist/{chunk-VN5Q4KOD.js → chunk-GORB726L.js} +2 -2
  57. package/dist/{chunk-3UYMOWX6.js → chunk-H2ZHGK4F.js} +2 -2
  58. package/dist/{chunk-WKEP4JAW.js → chunk-HFGTWPAD.js} +2 -2
  59. package/dist/{chunk-WEKXYS2F.js → chunk-IOTR2VQN.js} +4 -4
  60. package/dist/{chunk-EJJNZYDS.js → chunk-JK42X2VL.js} +2 -2
  61. package/dist/{chunk-KP4BIZLP.js → chunk-JXOCD4MG.js} +2 -2
  62. package/dist/{chunk-KM7AEGKF.js → chunk-KN5ULH4O.js} +3 -3
  63. package/dist/{chunk-SGGR5MN2.js → chunk-LOVDPKUU.js} +1 -1
  64. package/dist/{chunk-2CUE3XXS.js → chunk-LUJAURFP.js} +1 -1
  65. package/dist/{chunk-FCXYDR62.js → chunk-LY3KHTHS.js} +1 -1
  66. package/dist/{chunk-HEJMZVJI.js → chunk-M463H5LN.js} +2 -2
  67. package/dist/{chunk-BGJDOHNF.js → chunk-MDAJO2MP.js} +5 -5
  68. package/dist/{chunk-4KZP4YMV.js → chunk-MRMIGVUI.js} +1 -1
  69. package/dist/{chunk-VEGS4NYF.js → chunk-MSKJRRHY.js} +3 -3
  70. package/dist/{chunk-ZNT4ZZXJ.js → chunk-MTODICDT.js} +1 -1
  71. package/dist/{chunk-OWOSNGEQ.js → chunk-NK2URK5A.js} +2 -2
  72. package/dist/{chunk-RSENVGBQ.js → chunk-O2SMA3JN.js} +4 -4
  73. package/dist/{chunk-UUOC7A7M.js → chunk-OPSLFAKF.js} +7 -7
  74. package/dist/{chunk-Q37XFSPO.js → chunk-OXOT3CGW.js} +4 -4
  75. package/dist/{chunk-PSNF27BC.js → chunk-PQAA37YV.js} +8 -7
  76. package/dist/{chunk-7UZD2F4Y.js → chunk-QMMOVPUP.js} +8 -8
  77. package/dist/{chunk-UJB6HHP4.js → chunk-RZNJGCPR.js} +5 -5
  78. package/dist/{chunk-2XHBYMVN.js → chunk-SLW45RGY.js} +11 -11
  79. package/dist/{chunk-5WTEKIAS.js → chunk-TQE5VIDJ.js} +4 -4
  80. package/dist/{chunk-ZLY7BHN4.js → chunk-TWCWRHNK.js} +5 -5
  81. package/dist/{chunk-PAMW5M53.js → chunk-TYPQUHIS.js} +5 -5
  82. package/dist/{chunk-ZLGCNHJG.js → chunk-U4Q3AKLU.js} +1 -1
  83. package/dist/{chunk-UK7OY3EJ.js → chunk-UQTQVH5X.js} +1 -1
  84. package/dist/{chunk-EJMXZH5E.js → chunk-UWEDDQHU.js} +2 -2
  85. package/dist/{chunk-OFHSTCXK.js → chunk-V6HQFOBS.js} +3 -3
  86. package/dist/{chunk-AXB4ABUD.js → chunk-VGVMBY4V.js} +8 -8
  87. package/dist/{chunk-YD3DIFIU.js → chunk-VWTCGKMU.js} +1 -1
  88. package/dist/{chunk-5ETE7F45.js → chunk-W4DFSUZG.js} +2 -2
  89. package/dist/{chunk-ZV3262AA.js → chunk-W4LNR7LP.js} +3 -3
  90. package/dist/{chunk-VFF7ZBIS.js → chunk-WGTD4NZV.js} +32 -4
  91. package/dist/{chunk-PPGLIWOR.js → chunk-XESMYZLU.js} +1 -1
  92. package/dist/{chunk-5Q2QJ2AL.js → chunk-XTTMUQ4Z.js} +1 -1
  93. package/dist/{chunk-2VQZC6DW.js → chunk-YTTPPJZW.js} +4 -4
  94. package/dist/{chunk-G446AVR5.js → chunk-YZ7D3P3M.js} +2 -2
  95. package/dist/{chunk-OOKIWOMK.js → chunk-Z5AAPX3O.js} +1 -1
  96. package/dist/{chunk-KGSN2SOL.js → chunk-ZQZRBPTP.js} +356 -33
  97. package/dist/{chunk-7V6PJFDF.js → chunk-ZWDXBLEZ.js} +3 -3
  98. package/dist/{global-upgrade-4M4TJKQR.js → global-upgrade-FKQPJL5P.js} +6 -6
  99. package/dist/{paths-6JY6J56N.js → paths-TU47TCRS.js} +2 -2
  100. package/dist/{reapply-LFEQ5GF6.js → reapply-CTJZBUJY.js} +20 -20
  101. package/dist/src/index.js +19 -19
  102. package/dist/{upgrade-lock-CZRCHYVU.js → upgrade-lock-2SQCRMDL.js} +3 -3
  103. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.27
4
+
5
+ - A `Bash(...)` deny or ask rule you write in Pushary now catches the command it names however it is spelled. With a `Bash(git push:*)` deny and a rule that otherwise allows Bash, these used to run and are now refused: `git -C . push`, `git -c x=y push`, `git --no-pager push`, `git --git-dir=.git push`, `GIT_DIR=.git git push`, `FOO=1 git push`, a push behind `env`, `nohup`, `time`, `nice`, `timeout 60`, `exec`, `command`, `builtin`, `xargs`, `sudo` or `arch -arm64`, `"git" push`, `\git push`, `/usr/bin/git push`, `git push` with two spaces, `(git push)`, `{ git push; }`, `bash -c "git push"`, `sh -c 'git push'`, `eval git push`, a heredoc fed to `bash`, `find . -exec git push \;`, a push inside `if ...; then ...; fi`, and a push chained after a command Pushary could not split before, such as `x=$(git rev-parse HEAD) && git push`, `echo hi > out.txt && git push`, `npm test && git push $(git remote)`, or Claude Code's heredoc commit followed by `&& git push 2>&1 | tail -5`. An ask rule now asks for every one of these. The same holds for any rule, such as `Bash(npm publish:*)` or `Bash(rm:*)`.
6
+ - A command whose program Pushary cannot see, such as `$GIT push`, `"$(which git)" push`, `bash -c "$CMD"`, `eval "$(ssh-agent -s)"` or `cat script | bash`, is now refused when you have a deny rule for a Bash command, and asks when you have an ask rule. Every preset includes ask rules for destructive commands, so under the Autonomous preset such a command now asks instead of running.
7
+ - The read-only floor no longer approves a read that your deny rule names in another spelling. With a `Bash(cat:*)` deny, `"cat" .env`, `/bin/cat .env` and `c''at .env` were approved as reads. With `Bash(cat .env)`, so were `cat ./.env`, `cat '.env'` and `cat .env`, and with `Bash(git log:*)`, so were `git log`, `"git" log` and `git "log"`. They are now refused, and an ask rule asks for them.
8
+ - A rule that approves still covers only the command as written. `Bash(git commit:*)` does not start approving `env FOO=1 git commit` or `bash -c "git commit"`. A narrow ask rule that now catches a new spelling never weakens a broader deny: with a `Bash` deny and a `Bash(npm test:*)` ask, `FOO=1 npm test` is still refused.
9
+ - The `ask` and `deny` rules in your Claude Code settings read the same spellings. With `Bash` allowed and `Bash(git push:*)` denied there, Pushary used to step aside for `git -C . push` as a call Claude Code allows. It now handles that call under your Pushary rules.
10
+ - `pushary setup` keeps the whole pairing QR on screen for the whole wait on an 80x24 terminal. After 45 seconds the install hint, and after a minute the browser sign-in command, used to print as new lines under the code. Each one scrolled a top row of the code off the screen, so after a minute it no longer scanned. They now take turns with the minutes left on the waiting line itself. When setup's output is not a terminal, each still prints once on its own line. The install hint now says "scan the QR above" instead of "scan the code above" so it fits on one 80-column line.
11
+ - The background service now tells Pushary whether automatic updates can run on this computer, and if not, why: turned off, CI, Windows, Linux, or not a global install. It also sends the result and the time of the last update check, with no file paths or error text. Your agent overview uses it to show a computer that is stuck on an old version.
12
+ - The bundled Pushary skill now gives the When I'm out window as 20 seconds by default, which is what the built-in rules use. It said 10.
13
+
14
+ ## 1.9.26
15
+
16
+ - `arch` is no longer approved as a read. On a Mac, `arch -arm64 <command>` runs the command after it, so `arch -arm64 git push --force` was approved without asking, even under a `Bash(git push:*)` deny rule. A command behind `arch` is now judged like the same command without it. Use `uname -m` to read the architecture; it is still approved as a read.
17
+ - Codex in any mode except full access now asks your phone before a command that changes something through GitHub, Stripe, AWS or Twilio, such as `gh pr comment`, `gh api -X DELETE`, `gh api ... -f field=value`, a GraphQL mutation, `stripe refunds create`, `aws lambda invoke`, `aws ses send-email`, an upload with `aws s3 cp` or `aws s3 sync`, or `twilio api:core:messages:create`. Since 1.9.15 these ran without a question whenever Codex did not raise one of its own, which is the case when its sandbox allows network access. Reads such as `gh pr view`, `gh api repos/...`, `stripe charges list`, `aws s3 ls` and `aws ec2 describe-instances` still run without asking.
18
+ - In the same modes Codex now also asks before a patch to a `.env` file, a credentials file or a GitHub Actions workflow. Codex applies an edit inside the project without asking, so these used to change with nothing shown. `.env.example` and other files under `.github` are not affected.
19
+
3
20
  ## 1.9.25
4
21
 
5
22
  - "Always allow Bash in this workspace" and "Always allow Bash in this repository" now still ask about a command with a real consequence. That is running downloaded code (`curl ... | sh`, or a file downloaded and then run), a production deploy or migration (`vercel --prod`, `RAILS_ENV=production bin/rails db:migrate`), a schema push or reset (`prisma db push`, `prisma migrate reset`, `supabase db push`, `drizzle-kit push`), a SQL client that writes or runs a script file (`psql -c "UPDATE ..."`, `psql -f`, `psql < file`, `sqlite3 app.db < schema.sql`), `redis-cli FLUSHALL`, a cluster deploy (`kubectl apply`, `helm upgrade`), publishing (`docker push`, `npm publish`), `gh pr merge`, `gh repo delete`, `aws s3 sync --delete`, restarting, stopping or unloading a service (`systemctl restart`, `launchctl unload`), throwing away uncommitted changes (`git checkout <file>`, `git restore`, `git branch -D`), and writing or deleting a `.env` or secrets file. These used to run without a question. They are recognised behind wrappers such as `sudo`, `env`, `timeout` and `xargs`, behind global flags such as `git -C dir`, inside `if` and `for` blocks, and with output redirected to a log file.
package/data/SKILL.md CHANGED
@@ -562,7 +562,7 @@ If the user answers in chat before the push response arrives, call `cancel_quest
562
562
 
563
563
  | Mode | The phone | The call |
564
564
  |---|---|---|
565
- | **When I'm out** (`push_first`, default) | Asked only when the user is away from the terminal and the Mac | Waits for the push-first window. 10 seconds by default. |
565
+ | **When I'm out** (`push_first`, default) | Asked only when the user is away from the terminal and the Mac | Waits for the push-first window. 20 seconds by default. |
566
566
  | **Every time** (`push_only`) | Always asked | Waits for the policy timeout. |
567
567
  | **Updates** (`notify_only`) | Told, not asked | Returns at once with `answered: false`. Decide in the current client. |
568
568
  | **Terminal** (`terminal_only`) | Nothing is sent | Returns at once with `answered: false`. |
@@ -555,7 +555,7 @@ If the user answers in chat before the push response arrives, call `cancel_quest
555
555
 
556
556
  | Mode | The phone | The call |
557
557
  |---|---|---|
558
- | **When I'm out** (`push_first`, default) | Asked only when the user is away from the terminal and the Mac | Waits for the push-first window. 10 seconds by default. |
558
+ | **When I'm out** (`push_first`, default) | Asked only when the user is away from the terminal and the Mac | Waits for the push-first window. 20 seconds by default. |
559
559
  | **Every time** (`push_only`) | Always asked | Waits for the policy timeout. |
560
560
  | **Updates** (`notify_only`) | Told, not asked | Returns at once with `answered: false`. Decide in the current client. |
561
561
  | **Terminal** (`terminal_only`) | Nothing is sent | Returns at once with `answered: false`. |
@@ -555,7 +555,7 @@ If the user answers in chat before the push response arrives, call `cancel_quest
555
555
 
556
556
  | Mode | The phone | The call |
557
557
  |---|---|---|
558
- | **When I'm out** (`push_first`, default) | Asked only when the user is away from the terminal and the Mac | Waits for the push-first window. 10 seconds by default. |
558
+ | **When I'm out** (`push_first`, default) | Asked only when the user is away from the terminal and the Mac | Waits for the push-first window. 20 seconds by default. |
559
559
  | **Every time** (`push_only`) | Always asked | Waits for the policy timeout. |
560
560
  | **Updates** (`notify_only`) | Told, not asked | Returns at once with `answered: false`. Decide in the current client. |
561
561
  | **Terminal** (`terminal_only`) | Nothing is sent | Returns at once with `answered: false`. |
@@ -1,41 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-UK7OY3EJ.js";
4
+ } from "../chunk-UQTQVH5X.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-2J2WFX7X.js";
8
- import "../chunk-7UZD2F4Y.js";
7
+ } from "../chunk-5ZR7XFTB.js";
8
+ import "../chunk-QMMOVPUP.js";
9
9
  import "../chunk-VTR4VRL2.js";
10
- import "../chunk-PAMW5M53.js";
11
- import "../chunk-FCXYDR62.js";
12
- import "../chunk-FLC4TVXH.js";
13
- import "../chunk-YD3DIFIU.js";
10
+ import "../chunk-TYPQUHIS.js";
11
+ import "../chunk-LY3KHTHS.js";
12
+ import "../chunk-5LLH2TBR.js";
13
+ import "../chunk-VWTCGKMU.js";
14
14
  import "../chunk-XHKBHWLX.js";
15
- import "../chunk-5WTEKIAS.js";
16
- import "../chunk-ZLY7BHN4.js";
17
- import "../chunk-KM7AEGKF.js";
18
- import "../chunk-4KZP4YMV.js";
19
- import "../chunk-ZNT4ZZXJ.js";
15
+ import "../chunk-TQE5VIDJ.js";
16
+ import "../chunk-TWCWRHNK.js";
17
+ import "../chunk-KN5ULH4O.js";
18
+ import "../chunk-MRMIGVUI.js";
19
+ import "../chunk-MTODICDT.js";
20
20
  import "../chunk-GMXKITVA.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
- import "../chunk-GC5HJE3T.js";
23
- import "../chunk-AXB4ABUD.js";
24
- import "../chunk-A3QQWXIE.js";
25
- import "../chunk-NFH2H7PD.js";
22
+ import "../chunk-4LIOV4YP.js";
23
+ import "../chunk-VGVMBY4V.js";
24
+ import "../chunk-CSXWXXFJ.js";
25
+ import "../chunk-AT4URLSU.js";
26
26
  import "../chunk-POFBE6ZY.js";
27
- import "../chunk-7V6PJFDF.js";
28
- import "../chunk-VEGS4NYF.js";
29
- import "../chunk-ZV3262AA.js";
30
- import "../chunk-ZLGCNHJG.js";
27
+ import "../chunk-ZWDXBLEZ.js";
28
+ import "../chunk-MSKJRRHY.js";
29
+ import "../chunk-W4LNR7LP.js";
30
+ import "../chunk-U4Q3AKLU.js";
31
31
  import "../chunk-7QLSKOSU.js";
32
32
  import "../chunk-KZERVKTD.js";
33
- import "../chunk-EJMXZH5E.js";
34
- import "../chunk-2VQZC6DW.js";
33
+ import "../chunk-UWEDDQHU.js";
34
+ import "../chunk-YTTPPJZW.js";
35
35
  import "../chunk-AQFEP65J.js";
36
- import "../chunk-5Q2QJ2AL.js";
37
- import "../chunk-OOKIWOMK.js";
38
- import "../chunk-KGSN2SOL.js";
36
+ import "../chunk-XTTMUQ4Z.js";
37
+ import "../chunk-Z5AAPX3O.js";
38
+ import "../chunk-ZQZRBPTP.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-UK7OY3EJ.js";
8
+ } from "../chunk-UQTQVH5X.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-FO3MDD26.js";
12
12
  import {
13
13
  exitOnHelpFlag
14
- } from "../chunk-KP4BIZLP.js";
14
+ } from "../chunk-JXOCD4MG.js";
15
15
  import {
16
16
  addBellHooks,
17
17
  bellInstalled,
18
18
  removeBellHooks
19
- } from "../chunk-ZNT4ZZXJ.js";
19
+ } from "../chunk-MTODICDT.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
23
- import "../chunk-GC5HJE3T.js";
23
+ import "../chunk-4LIOV4YP.js";
24
24
  import "../chunk-7QLSKOSU.js";
25
25
  import {
26
26
  EXIT
27
27
  } from "../chunk-KZERVKTD.js";
28
- import "../chunk-EJMXZH5E.js";
28
+ import "../chunk-UWEDDQHU.js";
29
29
  import {
30
30
  claudeSettings
31
- } from "../chunk-2VQZC6DW.js";
31
+ } from "../chunk-YTTPPJZW.js";
32
32
  import {
33
33
  readJsonSafe,
34
34
  writeJsonAtomic
35
35
  } from "../chunk-AQFEP65J.js";
36
- import "../chunk-5Q2QJ2AL.js";
37
- import "../chunk-OOKIWOMK.js";
36
+ import "../chunk-XTTMUQ4Z.js";
37
+ import "../chunk-Z5AAPX3O.js";
38
38
  import {
39
39
  isRecord
40
- } from "../chunk-KGSN2SOL.js";
40
+ } from "../chunk-ZQZRBPTP.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-HEJMZVJI.js";
11
+ } from "../chunk-M463H5LN.js";
12
12
  import {
13
13
  announceSubscriptionRequired,
14
14
  isDeferAnswer
15
- } from "../chunk-SGGR5MN2.js";
15
+ } from "../chunk-LOVDPKUU.js";
16
16
  import {
17
17
  claudeTranscriptPath,
18
18
  loadSessionKey,
19
19
  registerTranscript,
20
20
  registeredTranscriptEnabled
21
- } from "../chunk-7UZD2F4Y.js";
21
+ } from "../chunk-QMMOVPUP.js";
22
22
  import "../chunk-VTR4VRL2.js";
23
23
  import {
24
24
  ensureDaemonRunning
25
- } from "../chunk-PAMW5M53.js";
25
+ } from "../chunk-TYPQUHIS.js";
26
26
  import {
27
27
  encryptRecord
28
- } from "../chunk-FCXYDR62.js";
29
- import "../chunk-FLC4TVXH.js";
28
+ } from "../chunk-LY3KHTHS.js";
29
+ import "../chunk-5LLH2TBR.js";
30
30
  import {
31
31
  transcriptsEnabled
32
- } from "../chunk-YD3DIFIU.js";
32
+ } from "../chunk-VWTCGKMU.js";
33
33
  import {
34
34
  needsShell,
35
35
  spawnClaude
36
36
  } from "../chunk-XHKBHWLX.js";
37
- import "../chunk-ZLY7BHN4.js";
38
- import "../chunk-KM7AEGKF.js";
39
- import "../chunk-4KZP4YMV.js";
40
- import "../chunk-ZNT4ZZXJ.js";
37
+ import "../chunk-TWCWRHNK.js";
38
+ import "../chunk-KN5ULH4O.js";
39
+ import "../chunk-MRMIGVUI.js";
40
+ import "../chunk-MTODICDT.js";
41
41
  import "../chunk-GMXKITVA.js";
42
42
  import "../chunk-6ICPEJY5.js";
43
- import "../chunk-GC5HJE3T.js";
43
+ import "../chunk-4LIOV4YP.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-AXB4ABUD.js";
62
- import "../chunk-A3QQWXIE.js";
61
+ } from "../chunk-VGVMBY4V.js";
62
+ import "../chunk-CSXWXXFJ.js";
63
63
  import {
64
64
  askUser,
65
65
  cancelQuestion,
@@ -69,28 +69,28 @@ import {
69
69
  waitForAnswer,
70
70
  waitsForThePhone,
71
71
  withdrawQuestion
72
- } from "../chunk-NFH2H7PD.js";
72
+ } from "../chunk-AT4URLSU.js";
73
73
  import "../chunk-POFBE6ZY.js";
74
74
  import {
75
75
  SubscriptionRequiredError
76
- } from "../chunk-7V6PJFDF.js";
77
- import "../chunk-VEGS4NYF.js";
78
- import "../chunk-ZV3262AA.js";
76
+ } from "../chunk-ZWDXBLEZ.js";
77
+ import "../chunk-MSKJRRHY.js";
78
+ import "../chunk-W4LNR7LP.js";
79
79
  import {
80
80
  getMachineId
81
- } from "../chunk-ZLGCNHJG.js";
81
+ } from "../chunk-U4Q3AKLU.js";
82
82
  import "../chunk-7QLSKOSU.js";
83
83
  import "../chunk-KZERVKTD.js";
84
- import "../chunk-EJMXZH5E.js";
85
- import "../chunk-2VQZC6DW.js";
84
+ import "../chunk-UWEDDQHU.js";
85
+ import "../chunk-YTTPPJZW.js";
86
86
  import "../chunk-AQFEP65J.js";
87
87
  import {
88
88
  getApiKey,
89
89
  getBaseUrl
90
- } from "../chunk-5Q2QJ2AL.js";
90
+ } from "../chunk-XTTMUQ4Z.js";
91
91
  import {
92
92
  NPX_LATEST_COMMAND
93
- } from "../chunk-OOKIWOMK.js";
93
+ } from "../chunk-Z5AAPX3O.js";
94
94
  import {
95
95
  DECISION_STOP_REASON,
96
96
  KILL_REASON,
@@ -98,7 +98,7 @@ import {
98
98
  redactSecretsFromContent,
99
99
  resolveGate,
100
100
  timeoutActionWithoutLocalPrompt
101
- } from "../chunk-KGSN2SOL.js";
101
+ } from "../chunk-ZQZRBPTP.js";
102
102
 
103
103
  // src/wrapper/localPassthrough.ts
104
104
  var SIGNAL_NUMBERS = {
@@ -9,12 +9,12 @@ import {
9
9
  planCliKeyRevocations,
10
10
  readCliHeldKeys,
11
11
  revokeCliKeys
12
- } from "../chunk-UJB6HHP4.js";
12
+ } from "../chunk-RZNJGCPR.js";
13
13
  import {
14
14
  isCursorPluginLeftover,
15
15
  releaseSoleGate,
16
16
  withoutPusharyCursorHooks
17
- } from "../chunk-Q37XFSPO.js";
17
+ } from "../chunk-OXOT3CGW.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-LDNKGG5G.js";
26
+ } from "../chunk-6CBKIF3S.js";
27
27
  import {
28
28
  planFxRemoval,
29
29
  removeInstructionBlock
30
- } from "../chunk-KZLOVLA6.js";
31
- import "../chunk-EJJNZYDS.js";
30
+ } from "../chunk-BZYYTJ65.js";
31
+ import "../chunk-JK42X2VL.js";
32
32
  import {
33
33
  disableDaemonService
34
- } from "../chunk-PAMW5M53.js";
34
+ } from "../chunk-TYPQUHIS.js";
35
35
  import "../chunk-XHKBHWLX.js";
36
- import "../chunk-RSENVGBQ.js";
36
+ import "../chunk-O2SMA3JN.js";
37
37
  import {
38
38
  macAppKeepsMcpEntry,
39
39
  mcpServerBearer,
40
40
  pusharyKey,
41
41
  readMacAppAgentKey,
42
42
  setupReceiptKey
43
- } from "../chunk-WEKXYS2F.js";
44
- import "../chunk-WKEP4JAW.js";
43
+ } from "../chunk-IOTR2VQN.js";
44
+ import "../chunk-HFGTWPAD.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-FJKV64M7.js";
56
+ } from "../chunk-5SKHXKIF.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-KP4BIZLP.js";
63
+ } from "../chunk-JXOCD4MG.js";
64
64
  import {
65
65
  compatibleConfigFile,
66
66
  compatibleInstructionsFile,
@@ -73,7 +73,7 @@ import {
73
73
  removePusharySettings,
74
74
  removePusharyToolPermissions,
75
75
  restoreClaudeMcpServer
76
- } from "../chunk-5WTEKIAS.js";
76
+ } from "../chunk-TQE5VIDJ.js";
77
77
  import {
78
78
  hookOwnerOf,
79
79
  isHookTakeoverReceipt,
@@ -81,12 +81,12 @@ import {
81
81
  resolveBridgeStub,
82
82
  restoreHookTakeover,
83
83
  restoreMcpServer
84
- } from "../chunk-ZLY7BHN4.js";
84
+ } from "../chunk-TWCWRHNK.js";
85
85
  import {
86
86
  removeGeminiSettings
87
- } from "../chunk-KM7AEGKF.js";
88
- import "../chunk-4KZP4YMV.js";
89
- import "../chunk-ZNT4ZZXJ.js";
87
+ } from "../chunk-KN5ULH4O.js";
88
+ import "../chunk-MRMIGVUI.js";
89
+ import "../chunk-MTODICDT.js";
90
90
  import {
91
91
  rejectUnknownFlags
92
92
  } from "../chunk-GMXKITVA.js";
@@ -96,20 +96,20 @@ import {
96
96
  isDisabledExport,
97
97
  removeClaudeAlias,
98
98
  shellProfileCandidates
99
- } from "../chunk-GC5HJE3T.js";
100
- import "../chunk-AXB4ABUD.js";
101
- import "../chunk-A3QQWXIE.js";
102
- import "../chunk-NFH2H7PD.js";
99
+ } from "../chunk-4LIOV4YP.js";
100
+ import "../chunk-VGVMBY4V.js";
101
+ import "../chunk-CSXWXXFJ.js";
102
+ import "../chunk-AT4URLSU.js";
103
103
  import "../chunk-POFBE6ZY.js";
104
- import "../chunk-7V6PJFDF.js";
105
- import "../chunk-VEGS4NYF.js";
106
- import "../chunk-ZV3262AA.js";
107
- import "../chunk-ZLGCNHJG.js";
104
+ import "../chunk-ZWDXBLEZ.js";
105
+ import "../chunk-MSKJRRHY.js";
106
+ import "../chunk-W4LNR7LP.js";
107
+ import "../chunk-U4Q3AKLU.js";
108
108
  import "../chunk-7QLSKOSU.js";
109
109
  import {
110
110
  EXIT
111
111
  } from "../chunk-KZERVKTD.js";
112
- import "../chunk-EJMXZH5E.js";
112
+ import "../chunk-UWEDDQHU.js";
113
113
  import {
114
114
  claudeJson,
115
115
  claudeMcpReceipt,
@@ -146,14 +146,14 @@ import {
146
146
  restoreCodexHookTrust,
147
147
  vscodePluginDir,
148
148
  vscodePluginMcp
149
- } from "../chunk-2VQZC6DW.js";
149
+ } from "../chunk-YTTPPJZW.js";
150
150
  import "../chunk-AQFEP65J.js";
151
151
  import {
152
152
  getBaseUrl
153
- } from "../chunk-5Q2QJ2AL.js";
153
+ } from "../chunk-XTTMUQ4Z.js";
154
154
  import {
155
155
  NPX_LATEST_COMMAND
156
- } from "../chunk-OOKIWOMK.js";
156
+ } from "../chunk-Z5AAPX3O.js";
157
157
  import {
158
158
  CLI_PACKAGE_NAMES,
159
159
  HOOK_COMPATIBLE_PROFILES,
@@ -165,7 +165,7 @@ import {
165
165
  globalRootFor,
166
166
  isValidApiKey,
167
167
  redactSecrets
168
- } from "../chunk-KGSN2SOL.js";
168
+ } from "../chunk-ZQZRBPTP.js";
169
169
 
170
170
  // bin/pushary-clean.ts
171
171
  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-5ETE7F45.js";
8
+ } from "../chunk-W4DFSUZG.js";
9
9
  import {
10
10
  resolveProviderBinary
11
- } from "../chunk-OWOSNGEQ.js";
11
+ } from "../chunk-NK2URK5A.js";
12
12
  import "../chunk-RIVNNBEK.js";
13
13
  import {
14
14
  SESSION_IDLE_TIMEOUT_MS,
@@ -16,50 +16,50 @@ import {
16
16
  idleDeadlinePassed,
17
17
  startProcessOwnership,
18
18
  withSpawnProcessOwnership
19
- } from "../chunk-HEJMZVJI.js";
20
- import "../chunk-FCXYDR62.js";
21
- import "../chunk-FLC4TVXH.js";
19
+ } from "../chunk-M463H5LN.js";
20
+ import "../chunk-LY3KHTHS.js";
21
+ import "../chunk-5LLH2TBR.js";
22
22
  import {
23
23
  transcriptsEnabled
24
- } from "../chunk-YD3DIFIU.js";
24
+ } from "../chunk-VWTCGKMU.js";
25
25
  import {
26
26
  spawnClaude
27
27
  } from "../chunk-XHKBHWLX.js";
28
28
  import "../chunk-6ICPEJY5.js";
29
- import "../chunk-GC5HJE3T.js";
29
+ import "../chunk-4LIOV4YP.js";
30
30
  import {
31
31
  isAskUserResponse,
32
32
  isDecisionStopped,
33
33
  isWaitForAnswerResponse,
34
34
  withdrawQuestion,
35
35
  writeDegraded
36
- } from "../chunk-NFH2H7PD.js";
36
+ } from "../chunk-AT4URLSU.js";
37
37
  import "../chunk-POFBE6ZY.js";
38
38
  import {
39
39
  callMcpTool
40
- } from "../chunk-7V6PJFDF.js";
41
- import "../chunk-VEGS4NYF.js";
42
- import "../chunk-ZV3262AA.js";
40
+ } from "../chunk-ZWDXBLEZ.js";
41
+ import "../chunk-MSKJRRHY.js";
42
+ import "../chunk-W4LNR7LP.js";
43
43
  import {
44
44
  getMachineId
45
- } from "../chunk-ZLGCNHJG.js";
45
+ } from "../chunk-U4Q3AKLU.js";
46
46
  import "../chunk-7QLSKOSU.js";
47
47
  import "../chunk-KZERVKTD.js";
48
- import "../chunk-EJMXZH5E.js";
49
- import "../chunk-2VQZC6DW.js";
48
+ import "../chunk-UWEDDQHU.js";
49
+ import "../chunk-YTTPPJZW.js";
50
50
  import "../chunk-AQFEP65J.js";
51
51
  import {
52
52
  getApiKey,
53
53
  getBaseUrl
54
- } from "../chunk-5Q2QJ2AL.js";
55
- import "../chunk-OOKIWOMK.js";
54
+ } from "../chunk-XTTMUQ4Z.js";
55
+ import "../chunk-Z5AAPX3O.js";
56
56
  import {
57
57
  elicitationContent,
58
58
  parseAgentQuestion,
59
59
  parseAgentQuestionAnswers,
60
60
  planElicitationAsk,
61
61
  readElicitationFields
62
- } from "../chunk-KGSN2SOL.js";
62
+ } from "../chunk-ZQZRBPTP.js";
63
63
 
64
64
  // bin/pushary-codex-bridge.ts
65
65
  import { existsSync } from "fs";
@@ -1,40 +1,40 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  takeHookHoldBudget
4
- } from "../chunk-PM2WJSUH.js";
4
+ } from "../chunk-4LO6OQZ4.js";
5
5
  import {
6
6
  defersToNativeMode,
7
7
  reportMachineDenial
8
- } from "../chunk-BHRMHDOO.js";
9
- import {
10
- triggerAutoUpdate
11
- } from "../chunk-VFF7ZBIS.js";
8
+ } from "../chunk-E4NITECV.js";
12
9
  import {
13
10
  isGatingMoment,
14
11
  recordKeylessMoment
15
- } from "../chunk-2CUE3XXS.js";
12
+ } from "../chunk-LUJAURFP.js";
13
+ import {
14
+ triggerAutoUpdate
15
+ } from "../chunk-WGTD4NZV.js";
16
16
  import {
17
17
  readHookInput
18
- } from "../chunk-2J2WFX7X.js";
18
+ } from "../chunk-5ZR7XFTB.js";
19
19
  import {
20
20
  announceSubscriptionRequired,
21
21
  isDeferAnswer
22
- } from "../chunk-SGGR5MN2.js";
23
- import "../chunk-7UZD2F4Y.js";
22
+ } from "../chunk-LOVDPKUU.js";
23
+ import "../chunk-QMMOVPUP.js";
24
24
  import "../chunk-VTR4VRL2.js";
25
- import "../chunk-PAMW5M53.js";
26
- import "../chunk-FCXYDR62.js";
27
- import "../chunk-FLC4TVXH.js";
28
- import "../chunk-YD3DIFIU.js";
25
+ import "../chunk-TYPQUHIS.js";
26
+ import "../chunk-LY3KHTHS.js";
27
+ import "../chunk-5LLH2TBR.js";
28
+ import "../chunk-VWTCGKMU.js";
29
29
  import "../chunk-XHKBHWLX.js";
30
- import "../chunk-5WTEKIAS.js";
31
- import "../chunk-ZLY7BHN4.js";
32
- import "../chunk-KM7AEGKF.js";
33
- import "../chunk-4KZP4YMV.js";
34
- import "../chunk-ZNT4ZZXJ.js";
30
+ import "../chunk-TQE5VIDJ.js";
31
+ import "../chunk-TWCWRHNK.js";
32
+ import "../chunk-KN5ULH4O.js";
33
+ import "../chunk-MRMIGVUI.js";
34
+ import "../chunk-MTODICDT.js";
35
35
  import "../chunk-GMXKITVA.js";
36
36
  import "../chunk-6ICPEJY5.js";
37
- import "../chunk-GC5HJE3T.js";
37
+ import "../chunk-4LIOV4YP.js";
38
38
  import {
39
39
  CODEX_AGENT,
40
40
  DEFAULT_SESSION,
@@ -78,8 +78,8 @@ import {
78
78
  toPolicyLookup,
79
79
  toPolicyLookups,
80
80
  userScope
81
- } from "../chunk-AXB4ABUD.js";
82
- import "../chunk-A3QQWXIE.js";
81
+ } from "../chunk-VGVMBY4V.js";
82
+ import "../chunk-CSXWXXFJ.js";
83
83
  import {
84
84
  askUser,
85
85
  cancelQuestion,
@@ -92,31 +92,31 @@ import {
92
92
  sendNotification,
93
93
  unavailableQuestionUnlessSubscriptionRequired,
94
94
  waitForQuestion
95
- } from "../chunk-NFH2H7PD.js";
95
+ } from "../chunk-AT4URLSU.js";
96
96
  import "../chunk-POFBE6ZY.js";
97
97
  import {
98
98
  SubscriptionRequiredError
99
- } from "../chunk-7V6PJFDF.js";
100
- import "../chunk-VEGS4NYF.js";
101
- import "../chunk-ZV3262AA.js";
99
+ } from "../chunk-ZWDXBLEZ.js";
100
+ import "../chunk-MSKJRRHY.js";
101
+ import "../chunk-W4LNR7LP.js";
102
102
  import {
103
103
  getMachineId
104
- } from "../chunk-ZLGCNHJG.js";
104
+ } from "../chunk-U4Q3AKLU.js";
105
105
  import "../chunk-7QLSKOSU.js";
106
106
  import {
107
107
  EXIT
108
108
  } from "../chunk-KZERVKTD.js";
109
- import "../chunk-EJMXZH5E.js";
109
+ import "../chunk-UWEDDQHU.js";
110
110
  import {
111
111
  canonicalJson
112
- } from "../chunk-2VQZC6DW.js";
112
+ } from "../chunk-YTTPPJZW.js";
113
113
  import {
114
114
  writeFileAtomic
115
115
  } from "../chunk-AQFEP65J.js";
116
116
  import {
117
117
  getApiKey
118
- } from "../chunk-5Q2QJ2AL.js";
119
- import "../chunk-OOKIWOMK.js";
118
+ } from "../chunk-XTTMUQ4Z.js";
119
+ import "../chunk-Z5AAPX3O.js";
120
120
  import {
121
121
  CODEX_RESCUE_TOOL_NAME,
122
122
  DECISION_STOP_REASON,
@@ -140,7 +140,7 @@ import {
140
140
  resolveGate,
141
141
  scopeBreachReasonOf,
142
142
  unapprovedScopeReason
143
- } from "../chunk-KGSN2SOL.js";
143
+ } from "../chunk-ZQZRBPTP.js";
144
144
 
145
145
  // bin/pushary-codex-hook.ts
146
146
  import { basename } from "path";
@@ -769,7 +769,7 @@ var decidePreToolUse = async (input) => {
769
769
  };
770
770
  var repairCodexHoldsQuietly = async () => {
771
771
  try {
772
- const { repairCodexHolds } = await import("../reapply-LFEQ5GF6.js");
772
+ const { repairCodexHolds } = await import("../reapply-CTJZBUJY.js");
773
773
  repairCodexHolds();
774
774
  } catch {
775
775
  return;