@pushary/agent-hooks 1.3.0 → 1.4.0

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 (90) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -1
  3. package/data/SKILL.md +3 -3
  4. package/data/cursor-plugin/skills/pushary/SKILL.md +2 -2
  5. package/data/vscode-plugin/skills/pushary/SKILL.md +2 -2
  6. package/dist/bin/pushary-bell-hook.js +20 -20
  7. package/dist/bin/pushary-bell.js +9 -9
  8. package/dist/bin/pushary-claude.js +20 -20
  9. package/dist/bin/pushary-clean.js +472 -94
  10. package/dist/bin/pushary-codex-bridge.js +11 -11
  11. package/dist/bin/pushary-codex-hook.js +30 -28
  12. package/dist/bin/pushary-codex.js +7 -7
  13. package/dist/bin/pushary-connect.js +9 -9
  14. package/dist/bin/pushary-cowork.js +5 -5
  15. package/dist/bin/pushary-daemon.js +26 -26
  16. package/dist/bin/pushary-disconnect.js +13 -13
  17. package/dist/bin/pushary-doctor.js +86 -24
  18. package/dist/bin/pushary-elicitation-hook.js +19 -19
  19. package/dist/bin/pushary-gemini-bridge.js +10 -10
  20. package/dist/bin/pushary-gemini-hook.js +21 -21
  21. package/dist/bin/pushary-hook.js +34 -44
  22. package/dist/bin/pushary-login.js +10 -10
  23. package/dist/bin/pushary-logout.js +7 -7
  24. package/dist/bin/pushary-mode.js +5 -5
  25. package/dist/bin/pushary-notification-hook.js +22 -22
  26. package/dist/bin/pushary-opencode-hook.js +21 -21
  27. package/dist/bin/pushary-permission-denied-hook.js +26 -26
  28. package/dist/bin/pushary-permission-hook.js +32 -31
  29. package/dist/bin/pushary-post-hook.js +22 -22
  30. package/dist/bin/pushary-prompt-hook.js +22 -22
  31. package/dist/bin/pushary-session-end-hook.js +22 -22
  32. package/dist/bin/pushary-session-start-hook.js +24 -24
  33. package/dist/bin/pushary-setup.js +39 -60
  34. package/dist/bin/pushary-stats.js +4 -4
  35. package/dist/bin/pushary-status.js +13 -13
  36. package/dist/bin/pushary-stop-hook.js +22 -22
  37. package/dist/bin/pushary-stopfailure-hook.js +22 -22
  38. package/dist/bin/pushary-suggestions.js +2 -2
  39. package/dist/bin/pushary-transcript-register.js +18 -18
  40. package/dist/bin/pushary-transcripts.js +8 -8
  41. package/dist/bin/pushary-upgrade.js +17 -17
  42. package/dist/bin/pushary-wait.js +5 -5
  43. package/dist/bin/pushary.js +1 -1
  44. package/dist/{chunk-3AIFWTVB.js → chunk-2TOTCUJC.js} +2 -2
  45. package/dist/{chunk-X3KIGNIP.js → chunk-43Z3RLS5.js} +83 -24
  46. package/dist/{chunk-YF4JDCU4.js → chunk-5F5QQMCA.js} +1 -1
  47. package/dist/{chunk-ZHL62DRA.js → chunk-5IBVIMWT.js} +3 -3
  48. package/dist/{chunk-BYGEZI7B.js → chunk-5MSBI6NP.js} +1 -1
  49. package/dist/{chunk-WPJS3OZH.js → chunk-7IEB2GV4.js} +100 -9
  50. package/dist/{chunk-2PLEJ7SY.js → chunk-7PQZYCEP.js} +1 -1
  51. package/dist/{chunk-OE6U2AXM.js → chunk-A7XIL2WD.js} +3 -3
  52. package/dist/{chunk-A2URMNFM.js → chunk-BYAXXBNO.js} +1 -1
  53. package/dist/{chunk-DON24PNT.js → chunk-D4TNSUDY.js} +1 -1
  54. package/dist/{chunk-EU6JH7KU.js → chunk-ESLLVHDY.js} +8 -8
  55. package/dist/{chunk-LZQVAEWP.js → chunk-FAH3D74E.js} +2 -1
  56. package/dist/{chunk-MU275U5A.js → chunk-GIXLZFEY.js} +2 -2
  57. package/dist/{chunk-4V24U44H.js → chunk-GLPWCQ6V.js} +2 -2
  58. package/dist/{chunk-BL4SQNO6.js → chunk-GS5EI2YL.js} +1 -1
  59. package/dist/{chunk-EKQAKSGI.js → chunk-H25UB3CG.js} +1 -1
  60. package/dist/{chunk-BNDHXPTQ.js → chunk-HGN6VZTY.js} +20 -13
  61. package/dist/{chunk-WXXDHGTZ.js → chunk-IF46POXX.js} +5 -4
  62. package/dist/{chunk-A5ZWYQFV.js → chunk-JCWCTBYH.js} +4 -4
  63. package/dist/{chunk-IAEVVUXO.js → chunk-KZIXHLPQ.js} +1 -1
  64. package/dist/{chunk-FGVNU7XD.js → chunk-NBCTKC4Z.js} +34 -3
  65. package/dist/{chunk-XBO42HKH.js → chunk-NYHNLMQO.js} +12 -3
  66. package/dist/{chunk-K4TAUYUJ.js → chunk-O5L2OJBB.js} +3 -3
  67. package/dist/{chunk-DVO4SZMJ.js → chunk-O6RN46OS.js} +3 -3
  68. package/dist/{chunk-POAFXBNH.js → chunk-P4JVVJ2D.js} +1 -1
  69. package/dist/{chunk-E7WBNGJS.js → chunk-Q4UAMWXK.js} +1 -1
  70. package/dist/{chunk-KS4P6F3R.js → chunk-RGZY77CD.js} +4 -4
  71. package/dist/{chunk-K7UIAE7I.js → chunk-RQM5SMMR.js} +2 -2
  72. package/dist/{chunk-UVXNYYHG.js → chunk-S3CLZSV3.js} +6 -6
  73. package/dist/{chunk-B3S4SF3D.js → chunk-S3EUZZJB.js} +1 -1
  74. package/dist/{chunk-XBJW4MV5.js → chunk-SGZ3IAWF.js} +1 -1
  75. package/dist/{chunk-YKLCWWEI.js → chunk-SGZJ5LYH.js} +1 -1
  76. package/dist/{chunk-4LL6LG5X.js → chunk-T7E75EKA.js} +4 -3
  77. package/dist/{chunk-GOQHN2UH.js → chunk-TWWLVOPB.js} +1 -1
  78. package/dist/{chunk-RVDHN2TJ.js → chunk-U4FB623J.js} +2 -2
  79. package/dist/{chunk-RHLUJE4H.js → chunk-UCGQEAKZ.js} +1 -1
  80. package/dist/{chunk-KPNGPRYU.js → chunk-UIN3RD2U.js} +4 -4
  81. package/dist/{chunk-XEXOHUJ6.js → chunk-UTYTPDWN.js} +4 -4
  82. package/dist/{chunk-EJZCV5G4.js → chunk-VENQSVKA.js} +1 -1
  83. package/dist/{chunk-EYMMU5HC.js → chunk-XJWMPQ6X.js} +1 -1
  84. package/dist/{chunk-JYEGOYQC.js → chunk-YYRZPEMA.js} +1 -1
  85. package/dist/{chunk-N43EQPJK.js → chunk-ZIGGEKZW.js} +41 -7
  86. package/dist/{reapply-FUCAKR6Z.js → reapply-B3S2LRMT.js} +9 -9
  87. package/dist/src/index.d.ts +20 -17
  88. package/dist/src/index.js +13 -13
  89. package/package.json +1 -1
  90. /package/dist/{chunk-KBITFQST.js → chunk-P32LPT2L.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.4.0
4
+
5
+ - `pushary clean --everything` removes what the Mac app set up as well as what the CLI did. It quits the app, then removes its keychain items, preferences and caches, the editor extension it installs in Cursor and VS Code, and the skill's registration in `~/.agents`. A plain `clean` still leaves an installed Mac app alone, and now says so instead of printing "Clean complete." over a key it kept.
6
+ - `clean` tells you to run `unset PUSHARY_API_KEY` when your terminal still exports the key. Without it, `setup` in the same terminal signed you straight back in as the account you had just removed.
7
+ - `clean` no longer leaves your key behind in its own backup of your shell profile, in earlier copies of the Cursor plugin, or in the line `pushary logout` comments out.
8
+ - A line in your shell profile that still sets a real key, in a form `clean` will not rewrite, is reported as left behind rather than skipped.
9
+ - `clean`, `doctor` and `setup` name business@pushary.com and the Discord when they leave something broken.
10
+ - A plain `clean` after you delete the Mac app removes what the app left behind. It used to take the app's leftover locator file as proof the app was still installed, and kept every hook pointing at it. In Cursor those hooks deny whatever reaches them once there is no app to answer.
11
+ - `clean` removes the Pushary entry and its key from Claude Code's own backups of `~/.claude.json`, not only from the live file. Restoring one of those backups used to put a working key straight back. A backup from before setup keeps whatever you had there.
12
+ - A file edit no rule was written for goes straight to the agent's own prompt instead of waiting for your phone first, in Claude Code's default mode and when Codex is about to ask. Over 35 days these were asked 224 times and answered from a phone twice. A rule you wrote, a preset or mode you picked, and a scope contract still reach your phone, and runs that bypass permissions are unchanged, because there is no prompt to fall back to.
13
+ - A kill switch or a standing deny enforced on this machine now appears in your decision history, as it already did through the Mac app. Only what the machine allowed was recorded before.
14
+ - Qwen Code, CodeBuddy and Qoder keep the answer you give on a permission prompt. Devin's patch and MCP calls reach the gate that was installed for them. A hook naming an agent Pushary does not recognise with `--source` stands aside, as it already did with `--agent`, rather than acting as Claude Code.
15
+ - `doctor` reads hook commands written in quotes or with `--source`, and tells a malformed MCP registration apart from a configured server.
16
+ - A hook payload that is not the shape it claims to be is refused before it can change anything.
17
+
18
+ ## 1.3.1
19
+
20
+ - Keep human-review policies effective inside shell chains, and refuse automatic approval of quoted command substitutions.
21
+ - 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.
22
+ - Preserve symlinked agent configuration files during atomic updates.
23
+ - The installed skill recognizes file-edit capabilities across agents, including Codex patches.
24
+ - `pushary doctor` warns when hooks are registered for an agent this version has no profile for. Every one of them stands aside, so nothing on that agent is gated or recorded until you upgrade.
25
+ - A hook that stands aside because it cannot resolve `--agent` says so in the documented `[degraded]` shape, so a stand-aside is countable instead of invisible.
26
+
3
27
  ## 1.2.0
4
28
 
5
29
  Nothing to run. These are the gate's own rules, tightened where they were guessing.
package/README.md CHANGED
@@ -194,7 +194,7 @@ connect Connect a phone without re-running setup (--app for the Pushary app
194
194
  bell Free local bell when an agent finishes or needs you. No account, no key, no network
195
195
  doctor Verify your Pushary installation is working
196
196
  disconnect Turn off one agent (claude|codex|gemini|cursor)
197
- clean Remove all Pushary configuration (--yes for non-interactive)
197
+ clean Remove Pushary from this machine (--everything: the Mac app's setup too, --dry-run: preview)
198
198
  mode Choose where approval requests appear
199
199
  wait Show or set the "wait for your phone" ladder (pushary wait 45)
200
200
  stats Show the approval moments your agents hit while not connected
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-VENQSVKA.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-ZIGGEKZW.js";
8
+ import "../chunk-ESLLVHDY.js";
9
+ import "../chunk-SGZJ5LYH.js";
10
+ import "../chunk-UTYTPDWN.js";
11
+ import "../chunk-5MSBI6NP.js";
12
+ import "../chunk-YYRZPEMA.js";
13
+ import "../chunk-O6RN46OS.js";
14
+ import "../chunk-RGZY77CD.js";
15
+ import "../chunk-A7XIL2WD.js";
16
+ import "../chunk-7PQZYCEP.js";
17
+ import "../chunk-S3EUZZJB.js";
18
18
  import "../chunk-EQRS3SGM.js";
19
- import "../chunk-A2URMNFM.js";
19
+ import "../chunk-BYAXXBNO.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-KZIXHLPQ.js";
22
+ import "../chunk-RQM5SMMR.js";
23
+ import "../chunk-UCGQEAKZ.js";
24
24
  import "../chunk-GMXKITVA.js";
25
25
  import "../chunk-DINDL2CF.js";
26
- import "../chunk-XBO42HKH.js";
26
+ import "../chunk-NYHNLMQO.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-P4JVVJ2D.js";
30
+ import "../chunk-T7E75EKA.js";
31
31
  import "../chunk-2UMNXADU.js";
32
- import "../chunk-WPJS3OZH.js";
32
+ import "../chunk-7IEB2GV4.js";
33
33
 
34
34
  // bin/pushary-bell-hook.ts
35
35
  var main = async () => {
@@ -5,38 +5,38 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-EJZCV5G4.js";
8
+ } from "../chunk-VENQSVKA.js";
9
9
  import {
10
10
  addBellHooks,
11
11
  bellInstalled,
12
12
  removeBellHooks
13
- } from "../chunk-2PLEJ7SY.js";
13
+ } from "../chunk-7PQZYCEP.js";
14
14
  import {
15
15
  claudeSettings
16
- } from "../chunk-RHLUJE4H.js";
16
+ } from "../chunk-UCGQEAKZ.js";
17
17
  import {
18
18
  createIo
19
19
  } from "../chunk-5RUIFDTP.js";
20
20
  import {
21
21
  exitOnHelpFlag
22
- } from "../chunk-GOQHN2UH.js";
23
- import "../chunk-LZQVAEWP.js";
22
+ } from "../chunk-TWWLVOPB.js";
23
+ import "../chunk-FAH3D74E.js";
24
24
  import {
25
25
  parseFlags
26
26
  } from "../chunk-GMXKITVA.js";
27
27
  import "../chunk-DINDL2CF.js";
28
- import "../chunk-XBO42HKH.js";
28
+ import "../chunk-NYHNLMQO.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-P4JVVJ2D.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-7IEB2GV4.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-GIXLZFEY.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-ESLLVHDY.js";
21
+ import "../chunk-SGZJ5LYH.js";
22
+ import "../chunk-UTYTPDWN.js";
23
+ import "../chunk-5MSBI6NP.js";
24
+ import "../chunk-YYRZPEMA.js";
25
+ import "../chunk-O6RN46OS.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-RGZY77CD.js";
29
+ import "../chunk-A7XIL2WD.js";
30
+ import "../chunk-7PQZYCEP.js";
31
31
  import {
32
32
  encryptRecord
33
- } from "../chunk-B3S4SF3D.js";
33
+ } from "../chunk-S3EUZZJB.js";
34
34
  import "../chunk-EQRS3SGM.js";
35
35
  import {
36
36
  transcriptsEnabled
37
- } from "../chunk-A2URMNFM.js";
37
+ } from "../chunk-BYAXXBNO.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-IF46POXX.js";
60
+ import "../chunk-KZIXHLPQ.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-RQM5SMMR.js";
74
+ import "../chunk-UCGQEAKZ.js";
75
75
  import "../chunk-GMXKITVA.js";
76
76
  import "../chunk-DINDL2CF.js";
77
- import "../chunk-XBO42HKH.js";
77
+ import "../chunk-NYHNLMQO.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-P4JVVJ2D.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-7IEB2GV4.js";
93
93
 
94
94
  // src/wrapper/localPassthrough.ts
95
95
  var SIGNAL_NUMBERS = {