@pushary/agent-hooks 1.3.0 → 1.3.1

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 (85) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/data/SKILL.md +3 -3
  3. package/data/cursor-plugin/skills/pushary/SKILL.md +2 -2
  4. package/data/vscode-plugin/skills/pushary/SKILL.md +2 -2
  5. package/dist/bin/pushary-bell-hook.js +20 -20
  6. package/dist/bin/pushary-bell.js +7 -7
  7. package/dist/bin/pushary-claude.js +20 -20
  8. package/dist/bin/pushary-clean.js +21 -21
  9. package/dist/bin/pushary-codex-bridge.js +11 -11
  10. package/dist/bin/pushary-codex-hook.js +24 -24
  11. package/dist/bin/pushary-codex.js +7 -7
  12. package/dist/bin/pushary-connect.js +7 -7
  13. package/dist/bin/pushary-cowork.js +3 -3
  14. package/dist/bin/pushary-daemon.js +24 -24
  15. package/dist/bin/pushary-disconnect.js +11 -11
  16. package/dist/bin/pushary-doctor.js +35 -22
  17. package/dist/bin/pushary-elicitation-hook.js +19 -19
  18. package/dist/bin/pushary-gemini-bridge.js +10 -10
  19. package/dist/bin/pushary-gemini-hook.js +21 -21
  20. package/dist/bin/pushary-hook.js +30 -40
  21. package/dist/bin/pushary-login.js +8 -8
  22. package/dist/bin/pushary-logout.js +5 -5
  23. package/dist/bin/pushary-mode.js +3 -3
  24. package/dist/bin/pushary-notification-hook.js +22 -22
  25. package/dist/bin/pushary-opencode-hook.js +21 -21
  26. package/dist/bin/pushary-permission-denied-hook.js +26 -26
  27. package/dist/bin/pushary-permission-hook.js +30 -29
  28. package/dist/bin/pushary-post-hook.js +22 -22
  29. package/dist/bin/pushary-prompt-hook.js +22 -22
  30. package/dist/bin/pushary-session-end-hook.js +22 -22
  31. package/dist/bin/pushary-session-start-hook.js +24 -24
  32. package/dist/bin/pushary-setup.js +27 -27
  33. package/dist/bin/pushary-stats.js +2 -2
  34. package/dist/bin/pushary-status.js +11 -11
  35. package/dist/bin/pushary-stop-hook.js +22 -22
  36. package/dist/bin/pushary-stopfailure-hook.js +22 -22
  37. package/dist/bin/pushary-transcript-register.js +18 -18
  38. package/dist/bin/pushary-transcripts.js +6 -6
  39. package/dist/bin/pushary-upgrade.js +15 -15
  40. package/dist/bin/pushary-wait.js +3 -3
  41. package/dist/{chunk-RHLUJE4H.js → chunk-34NNTYK6.js} +1 -1
  42. package/dist/{chunk-EJZCV5G4.js → chunk-35RPUNYU.js} +1 -1
  43. package/dist/{chunk-K7UIAE7I.js → chunk-465UENKO.js} +2 -2
  44. package/dist/{chunk-XBO42HKH.js → chunk-5SALHATY.js} +2 -2
  45. package/dist/{chunk-WPJS3OZH.js → chunk-5UWDYOZX.js} +20 -1
  46. package/dist/{chunk-POAFXBNH.js → chunk-5WLH2ENB.js} +1 -1
  47. package/dist/{chunk-KPNGPRYU.js → chunk-5XKMOZO6.js} +4 -4
  48. package/dist/{chunk-KS4P6F3R.js → chunk-6HH4IH4K.js} +4 -4
  49. package/dist/{chunk-XBJW4MV5.js → chunk-AFKOWCMQ.js} +1 -1
  50. package/dist/{chunk-FGVNU7XD.js → chunk-AFOTOA24.js} +1 -1
  51. package/dist/{chunk-B3S4SF3D.js → chunk-CDSL3LLO.js} +1 -1
  52. package/dist/{chunk-N43EQPJK.js → chunk-CKLWJ6EL.js} +10 -2
  53. package/dist/{chunk-2PLEJ7SY.js → chunk-EAGMQMRM.js} +1 -1
  54. package/dist/{chunk-BYGEZI7B.js → chunk-FGNABUPN.js} +1 -1
  55. package/dist/{chunk-A5ZWYQFV.js → chunk-HCTSTMDD.js} +4 -4
  56. package/dist/{chunk-X3KIGNIP.js → chunk-I2OLM3DM.js} +30 -21
  57. package/dist/{chunk-EYMMU5HC.js → chunk-JZA2JOGO.js} +1 -1
  58. package/dist/{chunk-OE6U2AXM.js → chunk-KHGIM2BN.js} +3 -3
  59. package/dist/{chunk-JYEGOYQC.js → chunk-KLZJEMSE.js} +1 -1
  60. package/dist/{chunk-BNDHXPTQ.js → chunk-LWT34GSY.js} +20 -13
  61. package/dist/{chunk-BL4SQNO6.js → chunk-NDSOOJDX.js} +1 -1
  62. package/dist/{chunk-YF4JDCU4.js → chunk-OMP3KDDU.js} +1 -1
  63. package/dist/{chunk-EU6JH7KU.js → chunk-P232YODQ.js} +8 -8
  64. package/dist/{chunk-K4TAUYUJ.js → chunk-PEV6ULSM.js} +3 -3
  65. package/dist/{chunk-4V24U44H.js → chunk-PHXU4NOP.js} +2 -2
  66. package/dist/{chunk-3AIFWTVB.js → chunk-QDYJQLXT.js} +2 -2
  67. package/dist/{chunk-DVO4SZMJ.js → chunk-QOCWB4Q6.js} +3 -3
  68. package/dist/{chunk-EKQAKSGI.js → chunk-R5CU7ED6.js} +1 -1
  69. package/dist/{chunk-XEXOHUJ6.js → chunk-REIZ5GXG.js} +4 -4
  70. package/dist/{chunk-UVXNYYHG.js → chunk-RERJ2ZDV.js} +6 -6
  71. package/dist/{chunk-ZHL62DRA.js → chunk-SGZE2JBF.js} +3 -3
  72. package/dist/{chunk-YKLCWWEI.js → chunk-SGZJ5LYH.js} +1 -1
  73. package/dist/{chunk-4LL6LG5X.js → chunk-T7E75EKA.js} +4 -3
  74. package/dist/{chunk-RVDHN2TJ.js → chunk-TGG4FWWB.js} +2 -2
  75. package/dist/{chunk-DON24PNT.js → chunk-TW7KA27C.js} +1 -1
  76. package/dist/{chunk-WXXDHGTZ.js → chunk-WOBHHXW5.js} +4 -4
  77. package/dist/{chunk-MU275U5A.js → chunk-XOUQUZ43.js} +2 -2
  78. package/dist/{chunk-IAEVVUXO.js → chunk-XP2KRTZD.js} +1 -1
  79. package/dist/{chunk-E7WBNGJS.js → chunk-XVE52YFZ.js} +1 -1
  80. package/dist/{chunk-A2URMNFM.js → chunk-YXWM4TNX.js} +1 -1
  81. package/dist/{reapply-FUCAKR6Z.js → reapply-ADFRVH5N.js} +9 -9
  82. package/dist/src/index.d.ts +2 -2
  83. package/dist/src/index.js +13 -13
  84. package/package.json +1 -1
  85. /package/dist/{chunk-KBITFQST.js → chunk-P32LPT2L.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.3.1
4
+
5
+ - Keep human-review policies effective inside shell chains, and refuse automatic approval of quoted command substitutions.
6
+ - Check kill switches and standing denials before rejecting unreadable tool targets. Check every file in a patch; ask the agent to split a batch that crosses scope.
7
+ - Preserve symlinked agent configuration files during atomic updates.
8
+ - The installed skill recognizes file-edit capabilities across agents, including Codex patches.
9
+
3
10
  ## 1.2.0
4
11
 
5
12
  Nothing to run. These are the gate's own rules, tightened where they were guessing.
package/data/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pushary
3
- version: 0.11.0
3
+ version: 0.11.1
4
4
  description: Push notifications and human-in-the-loop for AI agents. Use this whenever a running agent needs a human and nobody is at the terminal, 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 long task finishes or fails with nobody watching. Also use it when the user says things like keep going and ping me on my phone if you need anything, notify me when my agent needs me, approve from my phone, ask me questions while I am away from the terminal, run this overnight, keep working while I am in a meeting, I am stepping away, do not wait for me, or wants a long task to run unattended. Send alerts when tasks finish or fail, ask questions (yes/no, multiple choice, or free text) via push, and get answers from their connected devices. Use these tools proactively - do not wait for the user to ask for notifications. Every question and answer is recorded, so an unattended run stays reviewable afterwards. Works with Claude Code, Codex, Cursor, VS Code, Windsurf, Hermes, Lovable, or any MCP client; no Claude Max subscription required. Pushary is a hosted service, $9.99/mo after a 3-day card-first trial.
5
5
  metadata:
6
6
  hermes:
@@ -448,7 +448,7 @@ Propose the boundary of this run and block until the user agrees to it. Call it
448
448
 
449
449
  The user sees three things: the paths you will change, the paths you promise to leave alone, and your definition of done. The user agrees to all three in one tap.
450
450
 
451
- **Before you call this, look at your own tool list.** If you hold no `Edit`, `Write` or `MultiEdit`, this run changes no files, and a path contract here enforces nothing. Use shape 3 below. This one check decides everything else in this section, and it costs no tool calls.
451
+ **Before you call this, identify the file-editing capabilities you will use.** Native names differ: Codex uses `apply_patch`, VS Code also uses patch and replacement tools, and other agents expose `Edit`, `Write` or `MultiEdit`. These can carry enforceable paths. Use shape 3 only when this run has no file boundary to enforce. Read the returned `enforces` and `hookSeen` fields to confirm what is actually checked; tool names alone do not prove enforcement.
452
452
 
453
453
  **A boundary makes a question. It never makes an approval.** After the user agrees, a rule that already asked still asks. A scope can only turn an automatic approval into a question.
454
454
 
@@ -456,7 +456,7 @@ The user sees three things: the paths you will change, the paths you promise to
456
456
 
457
457
  The gate reads one thing from the contract: the path of a file you are about to change. It compares that path with `allowedPaths` and `offLimitsPaths`.
458
458
 
459
- - **Enforced.** `Edit`, `Write` and `MultiEdit`, and the same calls under other agent names. A file outside the agreed paths stops being auto-approvable and becomes a new question. Approving it widens the scope by that exact path.
459
+ - **Enforced.** `Edit`, `Write`, `MultiEdit` and supported aliases, including Codex `apply_patch` and VS Code patch/replacement tools. A file outside the agreed paths stops being auto-approvable and becomes a new question. Approving it widens the scope by that exact path.
460
460
  - **Not enforced.** Shell commands. `Read`. Web requests. Every MCP tool. These carry no file path, so the gate has no path to judge and reads them as inside the scope. The permission policy still governs them.
461
461
  - **`doneWhen` and `promises` are not enforced.** The user reads them. No code checks them.
462
462
 
@@ -441,7 +441,7 @@ Propose the boundary of this run and block until the user agrees to it. Call it
441
441
 
442
442
  The user sees three things: the paths you will change, the paths you promise to leave alone, and your definition of done. The user agrees to all three in one tap.
443
443
 
444
- **Before you call this, look at your own tool list.** If you hold no `Edit`, `Write` or `MultiEdit`, this run changes no files, and a path contract here enforces nothing. Use shape 3 below. This one check decides everything else in this section, and it costs no tool calls.
444
+ **Before you call this, identify the file-editing capabilities you will use.** Native names differ: Codex uses `apply_patch`, VS Code also uses patch and replacement tools, and other agents expose `Edit`, `Write` or `MultiEdit`. These can carry enforceable paths. Use shape 3 only when this run has no file boundary to enforce. Read the returned `enforces` and `hookSeen` fields to confirm what is actually checked; tool names alone do not prove enforcement.
445
445
 
446
446
  **A boundary makes a question. It never makes an approval.** After the user agrees, a rule that already asked still asks. A scope can only turn an automatic approval into a question.
447
447
 
@@ -449,7 +449,7 @@ The user sees three things: the paths you will change, the paths you promise to
449
449
 
450
450
  The gate reads one thing from the contract: the path of a file you are about to change. It compares that path with `allowedPaths` and `offLimitsPaths`.
451
451
 
452
- - **Enforced.** `Edit`, `Write` and `MultiEdit`, and the same calls under other agent names. A file outside the agreed paths stops being auto-approvable and becomes a new question. Approving it widens the scope by that exact path.
452
+ - **Enforced.** `Edit`, `Write`, `MultiEdit` and supported aliases, including Codex `apply_patch` and VS Code patch/replacement tools. A file outside the agreed paths stops being auto-approvable and becomes a new question. Approving it widens the scope by that exact path.
453
453
  - **Not enforced.** Shell commands. `Read`. Web requests. Every MCP tool. These carry no file path, so the gate has no path to judge and reads them as inside the scope. The permission policy still governs them.
454
454
  - **`doneWhen` and `promises` are not enforced.** The user reads them. No code checks them.
455
455
 
@@ -441,7 +441,7 @@ Propose the boundary of this run and block until the user agrees to it. Call it
441
441
 
442
442
  The user sees three things: the paths you will change, the paths you promise to leave alone, and your definition of done. The user agrees to all three in one tap.
443
443
 
444
- **Before you call this, look at your own tool list.** If you hold no `Edit`, `Write` or `MultiEdit`, this run changes no files, and a path contract here enforces nothing. Use shape 3 below. This one check decides everything else in this section, and it costs no tool calls.
444
+ **Before you call this, identify the file-editing capabilities you will use.** Native names differ: Codex uses `apply_patch`, VS Code also uses patch and replacement tools, and other agents expose `Edit`, `Write` or `MultiEdit`. These can carry enforceable paths. Use shape 3 only when this run has no file boundary to enforce. Read the returned `enforces` and `hookSeen` fields to confirm what is actually checked; tool names alone do not prove enforcement.
445
445
 
446
446
  **A boundary makes a question. It never makes an approval.** After the user agrees, a rule that already asked still asks. A scope can only turn an automatic approval into a question.
447
447
 
@@ -449,7 +449,7 @@ The user sees three things: the paths you will change, the paths you promise to
449
449
 
450
450
  The gate reads one thing from the contract: the path of a file you are about to change. It compares that path with `allowedPaths` and `offLimitsPaths`.
451
451
 
452
- - **Enforced.** `Edit`, `Write` and `MultiEdit`, and the same calls under other agent names. A file outside the agreed paths stops being auto-approvable and becomes a new question. Approving it widens the scope by that exact path.
452
+ - **Enforced.** `Edit`, `Write`, `MultiEdit` and supported aliases, including Codex `apply_patch` and VS Code patch/replacement tools. A file outside the agreed paths stops being auto-approvable and becomes a new question. Approving it widens the scope by that exact path.
453
453
  - **Not enforced.** Shell commands. `Read`. Web requests. Every MCP tool. These carry no file path, so the gate has no path to judge and reads them as inside the scope. The permission policy still governs them.
454
454
  - **`doneWhen` and `promises` are not enforced.** The user reads them. No code checks them.
455
455
 
@@ -1,35 +1,35 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-EJZCV5G4.js";
4
+ } from "../chunk-35RPUNYU.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-N43EQPJK.js";
8
- import "../chunk-EU6JH7KU.js";
9
- import "../chunk-YKLCWWEI.js";
10
- import "../chunk-XEXOHUJ6.js";
11
- import "../chunk-BYGEZI7B.js";
12
- import "../chunk-JYEGOYQC.js";
13
- import "../chunk-DVO4SZMJ.js";
14
- import "../chunk-KS4P6F3R.js";
15
- import "../chunk-OE6U2AXM.js";
16
- import "../chunk-2PLEJ7SY.js";
17
- import "../chunk-B3S4SF3D.js";
7
+ } from "../chunk-CKLWJ6EL.js";
8
+ import "../chunk-P232YODQ.js";
9
+ import "../chunk-SGZJ5LYH.js";
10
+ import "../chunk-REIZ5GXG.js";
11
+ import "../chunk-FGNABUPN.js";
12
+ import "../chunk-KLZJEMSE.js";
13
+ import "../chunk-QOCWB4Q6.js";
14
+ import "../chunk-6HH4IH4K.js";
15
+ import "../chunk-KHGIM2BN.js";
16
+ import "../chunk-EAGMQMRM.js";
17
+ import "../chunk-CDSL3LLO.js";
18
18
  import "../chunk-EQRS3SGM.js";
19
- import "../chunk-A2URMNFM.js";
19
+ import "../chunk-YXWM4TNX.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
- import "../chunk-IAEVVUXO.js";
22
- import "../chunk-K7UIAE7I.js";
23
- import "../chunk-RHLUJE4H.js";
21
+ import "../chunk-XP2KRTZD.js";
22
+ import "../chunk-465UENKO.js";
23
+ import "../chunk-34NNTYK6.js";
24
24
  import "../chunk-GMXKITVA.js";
25
25
  import "../chunk-DINDL2CF.js";
26
- import "../chunk-XBO42HKH.js";
26
+ import "../chunk-5SALHATY.js";
27
27
  import "../chunk-7QLSKOSU.js";
28
28
  import "../chunk-KZERVKTD.js";
29
- import "../chunk-POAFXBNH.js";
30
- import "../chunk-4LL6LG5X.js";
29
+ import "../chunk-5WLH2ENB.js";
30
+ import "../chunk-T7E75EKA.js";
31
31
  import "../chunk-2UMNXADU.js";
32
- import "../chunk-WPJS3OZH.js";
32
+ import "../chunk-5UWDYOZX.js";
33
33
 
34
34
  // bin/pushary-bell-hook.ts
35
35
  var main = async () => {
@@ -5,15 +5,15 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-EJZCV5G4.js";
8
+ } from "../chunk-35RPUNYU.js";
9
9
  import {
10
10
  addBellHooks,
11
11
  bellInstalled,
12
12
  removeBellHooks
13
- } from "../chunk-2PLEJ7SY.js";
13
+ } from "../chunk-EAGMQMRM.js";
14
14
  import {
15
15
  claudeSettings
16
- } from "../chunk-RHLUJE4H.js";
16
+ } from "../chunk-34NNTYK6.js";
17
17
  import {
18
18
  createIo
19
19
  } from "../chunk-5RUIFDTP.js";
@@ -25,18 +25,18 @@ import {
25
25
  parseFlags
26
26
  } from "../chunk-GMXKITVA.js";
27
27
  import "../chunk-DINDL2CF.js";
28
- import "../chunk-XBO42HKH.js";
28
+ import "../chunk-5SALHATY.js";
29
29
  import "../chunk-7QLSKOSU.js";
30
30
  import {
31
31
  EXIT
32
32
  } from "../chunk-KZERVKTD.js";
33
- import "../chunk-POAFXBNH.js";
33
+ import "../chunk-5WLH2ENB.js";
34
34
  import {
35
35
  readJsonSafe,
36
36
  writeJsonAtomic
37
- } from "../chunk-4LL6LG5X.js";
37
+ } from "../chunk-T7E75EKA.js";
38
38
  import "../chunk-2UMNXADU.js";
39
- import "../chunk-WPJS3OZH.js";
39
+ import "../chunk-5UWDYOZX.js";
40
40
 
41
41
  // bin/pushary-bell.ts
42
42
  exitOnHelpFlag("bell");
@@ -8,7 +8,7 @@ import {
8
8
  describeIdleWindow,
9
9
  startProcessOwnership,
10
10
  withSpawnProcessOwnership
11
- } from "../chunk-MU275U5A.js";
11
+ } from "../chunk-XOUQUZ43.js";
12
12
  import {
13
13
  isDeferAnswer
14
14
  } from "../chunk-YHG74UFF.js";
@@ -17,24 +17,24 @@ import {
17
17
  loadSessionKey,
18
18
  registerTranscript,
19
19
  registeredTranscriptEnabled
20
- } from "../chunk-EU6JH7KU.js";
21
- import "../chunk-YKLCWWEI.js";
22
- import "../chunk-XEXOHUJ6.js";
23
- import "../chunk-BYGEZI7B.js";
24
- import "../chunk-JYEGOYQC.js";
25
- import "../chunk-DVO4SZMJ.js";
20
+ } from "../chunk-P232YODQ.js";
21
+ import "../chunk-SGZJ5LYH.js";
22
+ import "../chunk-REIZ5GXG.js";
23
+ import "../chunk-FGNABUPN.js";
24
+ import "../chunk-KLZJEMSE.js";
25
+ import "../chunk-QOCWB4Q6.js";
26
26
  import {
27
27
  ensureDaemonRunning
28
- } from "../chunk-KS4P6F3R.js";
29
- import "../chunk-OE6U2AXM.js";
30
- import "../chunk-2PLEJ7SY.js";
28
+ } from "../chunk-6HH4IH4K.js";
29
+ import "../chunk-KHGIM2BN.js";
30
+ import "../chunk-EAGMQMRM.js";
31
31
  import {
32
32
  encryptRecord
33
- } from "../chunk-B3S4SF3D.js";
33
+ } from "../chunk-CDSL3LLO.js";
34
34
  import "../chunk-EQRS3SGM.js";
35
35
  import {
36
36
  transcriptsEnabled
37
- } from "../chunk-A2URMNFM.js";
37
+ } from "../chunk-YXWM4TNX.js";
38
38
  import {
39
39
  needsShell,
40
40
  spawnClaude
@@ -56,8 +56,8 @@ import {
56
56
  reportEvent,
57
57
  savePendingCommand,
58
58
  scopePathFor
59
- } from "../chunk-WXXDHGTZ.js";
60
- import "../chunk-IAEVVUXO.js";
59
+ } from "../chunk-WOBHHXW5.js";
60
+ import "../chunk-XP2KRTZD.js";
61
61
  import {
62
62
  DECISION_STOP_REASON,
63
63
  askUser,
@@ -70,17 +70,17 @@ import {
70
70
  } from "../chunk-LGXUGYUH.js";
71
71
  import {
72
72
  getMachineId
73
- } from "../chunk-K7UIAE7I.js";
74
- import "../chunk-RHLUJE4H.js";
73
+ } from "../chunk-465UENKO.js";
74
+ import "../chunk-34NNTYK6.js";
75
75
  import "../chunk-GMXKITVA.js";
76
76
  import "../chunk-DINDL2CF.js";
77
- import "../chunk-XBO42HKH.js";
77
+ import "../chunk-5SALHATY.js";
78
78
  import "../chunk-EYRGBYZG.js";
79
79
  import "../chunk-SAF6HGAA.js";
80
80
  import "../chunk-7QLSKOSU.js";
81
81
  import "../chunk-KZERVKTD.js";
82
- import "../chunk-POAFXBNH.js";
83
- import "../chunk-4LL6LG5X.js";
82
+ import "../chunk-5WLH2ENB.js";
83
+ import "../chunk-T7E75EKA.js";
84
84
  import {
85
85
  getApiKey,
86
86
  getBaseUrl
@@ -89,7 +89,7 @@ import {
89
89
  KILL_REASON,
90
90
  redactSecrets,
91
91
  resolveGate
92
- } from "../chunk-WPJS3OZH.js";
92
+ } from "../chunk-5UWDYOZX.js";
93
93
 
94
94
  // src/wrapper/localPassthrough.ts
95
95
  var SIGNAL_NUMBERS = {
@@ -5,14 +5,14 @@ import {
5
5
  createGuards,
6
6
  resolveHermesPython,
7
7
  runHermesPythonScript
8
- } from "../chunk-FGVNU7XD.js";
9
- import "../chunk-KBITFQST.js";
8
+ } from "../chunk-AFOTOA24.js";
9
+ import "../chunk-P32LPT2L.js";
10
10
  import {
11
11
  removeInstructionBlock,
12
12
  shortenHome,
13
13
  unregisterPluginLocation,
14
14
  vscodeSettingsTargets
15
- } from "../chunk-K4TAUYUJ.js";
15
+ } from "../chunk-PEV6ULSM.js";
16
16
  import {
17
17
  OPENCODE_PLUGIN_SIBLING,
18
18
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -22,7 +22,7 @@ import {
22
22
  openCodePluginDir,
23
23
  openCodePluginFile,
24
24
  removeOpenCodeMcpServer
25
- } from "../chunk-E7WBNGJS.js";
25
+ } from "../chunk-XVE52YFZ.js";
26
26
  import {
27
27
  compatibleConfigFile,
28
28
  compatibleInstructionsFile,
@@ -30,37 +30,37 @@ import {
30
30
  compatiblePermissionRuleFile,
31
31
  removeCompatibleHooks,
32
32
  removeCompatibleMcpServer
33
- } from "../chunk-BNDHXPTQ.js";
33
+ } from "../chunk-LWT34GSY.js";
34
34
  import {
35
35
  isClaudeMcpSnapshot,
36
36
  removeClaudeMcpServers,
37
37
  removePusharySettings,
38
38
  removePusharyToolPermissions,
39
39
  restoreClaudeMcpServer
40
- } from "../chunk-ZHL62DRA.js";
40
+ } from "../chunk-SGZE2JBF.js";
41
41
  import {
42
42
  hookOwnerOf,
43
43
  isHookTakeoverReceipt,
44
44
  restoreHookTakeover,
45
45
  restoreMcpServer
46
- } from "../chunk-XEXOHUJ6.js";
47
- import "../chunk-BYGEZI7B.js";
48
- import "../chunk-JYEGOYQC.js";
46
+ } from "../chunk-REIZ5GXG.js";
47
+ import "../chunk-FGNABUPN.js";
48
+ import "../chunk-KLZJEMSE.js";
49
49
  import {
50
50
  pusharyHookExecutable
51
- } from "../chunk-DVO4SZMJ.js";
51
+ } from "../chunk-QOCWB4Q6.js";
52
52
  import {
53
53
  disableDaemonService
54
- } from "../chunk-KS4P6F3R.js";
54
+ } from "../chunk-6HH4IH4K.js";
55
55
  import {
56
56
  removeGeminiSettings
57
- } from "../chunk-OE6U2AXM.js";
58
- import "../chunk-2PLEJ7SY.js";
57
+ } from "../chunk-KHGIM2BN.js";
58
+ import "../chunk-EAGMQMRM.js";
59
59
  import "../chunk-XHKBHWLX.js";
60
- import "../chunk-WXXDHGTZ.js";
61
- import "../chunk-IAEVVUXO.js";
60
+ import "../chunk-WOBHHXW5.js";
61
+ import "../chunk-XP2KRTZD.js";
62
62
  import "../chunk-LGXUGYUH.js";
63
- import "../chunk-K7UIAE7I.js";
63
+ import "../chunk-465UENKO.js";
64
64
  import {
65
65
  bridgeAgentKey,
66
66
  claudeJson,
@@ -89,7 +89,7 @@ import {
89
89
  restoreCodexHookTrust,
90
90
  vscodePluginDir,
91
91
  vscodePluginMcp
92
- } from "../chunk-RHLUJE4H.js";
92
+ } from "../chunk-34NNTYK6.js";
93
93
  import {
94
94
  exitOnHelpFlag
95
95
  } from "../chunk-GOQHN2UH.js";
@@ -100,22 +100,22 @@ import {
100
100
  import "../chunk-DINDL2CF.js";
101
101
  import {
102
102
  removeClaudeAlias
103
- } from "../chunk-XBO42HKH.js";
103
+ } from "../chunk-5SALHATY.js";
104
104
  import "../chunk-EYRGBYZG.js";
105
105
  import "../chunk-SAF6HGAA.js";
106
106
  import "../chunk-7QLSKOSU.js";
107
107
  import {
108
108
  EXIT
109
109
  } from "../chunk-KZERVKTD.js";
110
- import "../chunk-POAFXBNH.js";
111
- import "../chunk-4LL6LG5X.js";
110
+ import "../chunk-5WLH2ENB.js";
111
+ import "../chunk-T7E75EKA.js";
112
112
  import "../chunk-2UMNXADU.js";
113
113
  import {
114
114
  CURSOR_GATE_EVENTS,
115
115
  HOOK_COMPATIBLE_PROFILES,
116
116
  HOOK_LOCATOR_BINARY,
117
117
  isValidApiKey
118
- } from "../chunk-WPJS3OZH.js";
118
+ } from "../chunk-5UWDYOZX.js";
119
119
 
120
120
  // bin/pushary-clean.ts
121
121
  import { existsSync, readFileSync, copyFileSync, readdirSync } from "fs";
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
- import "../chunk-4V24U44H.js";
2
+ import "../chunk-PHXU4NOP.js";
3
3
  import {
4
4
  LiveTranscriptRelay,
5
5
  liveSessionSleep,
6
6
  postLiveSession,
7
7
  postLiveSessionUntilAccepted,
8
8
  startLiveSessionHeartbeat
9
- } from "../chunk-EKQAKSGI.js";
9
+ } from "../chunk-R5CU7ED6.js";
10
10
  import {
11
11
  SESSION_IDLE_TIMEOUT_MS,
12
12
  describeIdleWindow,
13
13
  idleDeadlinePassed,
14
14
  startProcessOwnership,
15
15
  withSpawnProcessOwnership
16
- } from "../chunk-MU275U5A.js";
17
- import "../chunk-B3S4SF3D.js";
16
+ } from "../chunk-XOUQUZ43.js";
17
+ import "../chunk-CDSL3LLO.js";
18
18
  import "../chunk-EQRS3SGM.js";
19
19
  import {
20
20
  transcriptsEnabled
21
- } from "../chunk-A2URMNFM.js";
21
+ } from "../chunk-YXWM4TNX.js";
22
22
  import {
23
23
  spawnClaude
24
24
  } from "../chunk-XHKBHWLX.js";
@@ -28,19 +28,19 @@ import {
28
28
  } from "../chunk-LGXUGYUH.js";
29
29
  import {
30
30
  getMachineId
31
- } from "../chunk-K7UIAE7I.js";
31
+ } from "../chunk-465UENKO.js";
32
32
  import {
33
33
  resolveBinary
34
- } from "../chunk-RHLUJE4H.js";
35
- import "../chunk-XBO42HKH.js";
34
+ } from "../chunk-34NNTYK6.js";
35
+ import "../chunk-5SALHATY.js";
36
36
  import {
37
37
  callMcpTool
38
38
  } from "../chunk-EYRGBYZG.js";
39
39
  import "../chunk-SAF6HGAA.js";
40
40
  import "../chunk-7QLSKOSU.js";
41
41
  import "../chunk-KZERVKTD.js";
42
- import "../chunk-POAFXBNH.js";
43
- import "../chunk-4LL6LG5X.js";
42
+ import "../chunk-5WLH2ENB.js";
43
+ import "../chunk-T7E75EKA.js";
44
44
  import {
45
45
  getApiKey,
46
46
  getBaseUrl
@@ -48,7 +48,7 @@ import {
48
48
  import {
49
49
  parseAgentQuestion,
50
50
  parseAgentQuestionAnswers
51
- } from "../chunk-WPJS3OZH.js";
51
+ } from "../chunk-5UWDYOZX.js";
52
52
 
53
53
  // bin/pushary-codex-bridge.ts
54
54
  import { existsSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  takeHookHoldBudget
4
- } from "../chunk-EYMMU5HC.js";
4
+ } from "../chunk-JZA2JOGO.js";
5
5
  import {
6
6
  blockedActionFingerprint,
7
7
  codexCallKey,
@@ -12,30 +12,30 @@ import {
12
12
  recordBlockedActionHint,
13
13
  recordCodexCallDecision,
14
14
  userScope
15
- } from "../chunk-A5ZWYQFV.js";
15
+ } from "../chunk-HCTSTMDD.js";
16
16
  import {
17
17
  isGatingMoment,
18
18
  recordKeylessMoment
19
- } from "../chunk-YF4JDCU4.js";
19
+ } from "../chunk-OMP3KDDU.js";
20
20
  import {
21
21
  readHookInput
22
- } from "../chunk-N43EQPJK.js";
22
+ } from "../chunk-CKLWJ6EL.js";
23
23
  import {
24
24
  denyReasonFrom,
25
25
  isDeferAnswer
26
26
  } from "../chunk-YHG74UFF.js";
27
- import "../chunk-EU6JH7KU.js";
28
- import "../chunk-YKLCWWEI.js";
29
- import "../chunk-XEXOHUJ6.js";
30
- import "../chunk-BYGEZI7B.js";
31
- import "../chunk-JYEGOYQC.js";
32
- import "../chunk-DVO4SZMJ.js";
33
- import "../chunk-KS4P6F3R.js";
34
- import "../chunk-OE6U2AXM.js";
35
- import "../chunk-2PLEJ7SY.js";
36
- import "../chunk-B3S4SF3D.js";
27
+ import "../chunk-P232YODQ.js";
28
+ import "../chunk-SGZJ5LYH.js";
29
+ import "../chunk-REIZ5GXG.js";
30
+ import "../chunk-FGNABUPN.js";
31
+ import "../chunk-KLZJEMSE.js";
32
+ import "../chunk-QOCWB4Q6.js";
33
+ import "../chunk-6HH4IH4K.js";
34
+ import "../chunk-KHGIM2BN.js";
35
+ import "../chunk-EAGMQMRM.js";
36
+ import "../chunk-CDSL3LLO.js";
37
37
  import "../chunk-EQRS3SGM.js";
38
- import "../chunk-A2URMNFM.js";
38
+ import "../chunk-YXWM4TNX.js";
39
39
  import "../chunk-XHKBHWLX.js";
40
40
  import {
41
41
  CODEX_AGENT,
@@ -72,8 +72,8 @@ import {
72
72
  toCodexWire,
73
73
  toPolicyLookup,
74
74
  toPolicyLookups
75
- } from "../chunk-WXXDHGTZ.js";
76
- import "../chunk-IAEVVUXO.js";
75
+ } from "../chunk-WOBHHXW5.js";
76
+ import "../chunk-XP2KRTZD.js";
77
77
  import {
78
78
  DECISION_STOP_REASON,
79
79
  askUser,
@@ -88,21 +88,21 @@ import {
88
88
  } from "../chunk-LGXUGYUH.js";
89
89
  import {
90
90
  getMachineId
91
- } from "../chunk-K7UIAE7I.js";
91
+ } from "../chunk-465UENKO.js";
92
92
  import {
93
93
  canonicalJson
94
- } from "../chunk-RHLUJE4H.js";
94
+ } from "../chunk-34NNTYK6.js";
95
95
  import "../chunk-GMXKITVA.js";
96
96
  import "../chunk-DINDL2CF.js";
97
- import "../chunk-XBO42HKH.js";
97
+ import "../chunk-5SALHATY.js";
98
98
  import "../chunk-EYRGBYZG.js";
99
99
  import "../chunk-SAF6HGAA.js";
100
100
  import "../chunk-7QLSKOSU.js";
101
101
  import "../chunk-KZERVKTD.js";
102
- import "../chunk-POAFXBNH.js";
102
+ import "../chunk-5WLH2ENB.js";
103
103
  import {
104
104
  writeFileAtomic
105
- } from "../chunk-4LL6LG5X.js";
105
+ } from "../chunk-T7E75EKA.js";
106
106
  import {
107
107
  getApiKey
108
108
  } from "../chunk-2UMNXADU.js";
@@ -118,7 +118,7 @@ import {
118
118
  hookWaitClamped,
119
119
  hookWaitDeadline,
120
120
  resolveGate
121
- } from "../chunk-WPJS3OZH.js";
121
+ } from "../chunk-5UWDYOZX.js";
122
122
 
123
123
  // bin/pushary-codex-hook.ts
124
124
  import { basename } from "path";
@@ -734,7 +734,7 @@ var decidePreToolUse = async (input) => {
734
734
  };
735
735
  var repairCodexHoldsQuietly = async () => {
736
736
  try {
737
- const { repairCodexHolds } = await import("../reapply-FUCAKR6Z.js");
737
+ const { repairCodexHolds } = await import("../reapply-ADFRVH5N.js");
738
738
  repairCodexHolds();
739
739
  } catch {
740
740
  return;
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-WXXDHGTZ.js";
5
- import "../chunk-IAEVVUXO.js";
4
+ } from "../chunk-WOBHHXW5.js";
5
+ import "../chunk-XP2KRTZD.js";
6
6
  import {
7
7
  askUser,
8
8
  isDecisionStopped,
@@ -10,18 +10,18 @@ import {
10
10
  } from "../chunk-LGXUGYUH.js";
11
11
  import {
12
12
  getMachineId
13
- } from "../chunk-K7UIAE7I.js";
14
- import "../chunk-RHLUJE4H.js";
13
+ } from "../chunk-465UENKO.js";
14
+ import "../chunk-34NNTYK6.js";
15
15
  import "../chunk-EYRGBYZG.js";
16
16
  import "../chunk-SAF6HGAA.js";
17
17
  import "../chunk-7QLSKOSU.js";
18
18
  import "../chunk-KZERVKTD.js";
19
- import "../chunk-POAFXBNH.js";
20
- import "../chunk-4LL6LG5X.js";
19
+ import "../chunk-5WLH2ENB.js";
20
+ import "../chunk-T7E75EKA.js";
21
21
  import {
22
22
  getApiKey
23
23
  } from "../chunk-2UMNXADU.js";
24
- import "../chunk-WPJS3OZH.js";
24
+ import "../chunk-5UWDYOZX.js";
25
25
 
26
26
  // bin/pushary-codex.ts
27
27
  import { basename } from "path";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-BL4SQNO6.js";
4
+ } from "../chunk-NDSOOJDX.js";
5
5
  import {
6
6
  connectDevice,
7
7
  connectExistingApp,
8
8
  printConnectInstructions
9
- } from "../chunk-RVDHN2TJ.js";
9
+ } from "../chunk-TGG4FWWB.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
11
  import {
12
12
  checkApiKey
13
- } from "../chunk-DON24PNT.js";
13
+ } from "../chunk-TW7KA27C.js";
14
14
  import "../chunk-QCGNGEGE.js";
15
15
  import {
16
16
  createIo
@@ -25,7 +25,7 @@ import {
25
25
  import "../chunk-DINDL2CF.js";
26
26
  import {
27
27
  readKeySource
28
- } from "../chunk-XBO42HKH.js";
28
+ } from "../chunk-5SALHATY.js";
29
29
  import "../chunk-EYRGBYZG.js";
30
30
  import "../chunk-SAF6HGAA.js";
31
31
  import {
@@ -34,10 +34,10 @@ import {
34
34
  import {
35
35
  EXIT
36
36
  } from "../chunk-KZERVKTD.js";
37
- import "../chunk-POAFXBNH.js";
38
- import "../chunk-4LL6LG5X.js";
37
+ import "../chunk-5WLH2ENB.js";
38
+ import "../chunk-T7E75EKA.js";
39
39
  import "../chunk-2UMNXADU.js";
40
- import "../chunk-WPJS3OZH.js";
40
+ import "../chunk-5UWDYOZX.js";
41
41
 
42
42
  // bin/pushary-connect.ts
43
43
  exitOnHelpFlag("connect");
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  coworkOutput,
4
4
  parseCoworkOptions
5
- } from "../chunk-3AIFWTVB.js";
5
+ } from "../chunk-QDYJQLXT.js";
6
6
  import {
7
7
  canOpenBrowser,
8
8
  openInBrowser
9
9
  } from "../chunk-PUZZELE6.js";
10
- import "../chunk-BYGEZI7B.js";
10
+ import "../chunk-FGNABUPN.js";
11
11
  import {
12
12
  exitOnHelpFlag
13
13
  } from "../chunk-GOQHN2UH.js";
@@ -22,7 +22,7 @@ import {
22
22
  } from "../chunk-KZERVKTD.js";
23
23
  import {
24
24
  CLAUDE_CONNECTOR_GUIDE
25
- } from "../chunk-WPJS3OZH.js";
25
+ } from "../chunk-5UWDYOZX.js";
26
26
 
27
27
  // bin/pushary-cowork.ts
28
28
  exitOnHelpFlag("cowork");