@pushary/agent-hooks 0.95.6 → 0.95.8

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 (83) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
  3. package/data/cursor-plugin/CHANGELOG.md +7 -0
  4. package/data/cursor-plugin/scripts/pushary-gate.mjs +72 -17
  5. package/data/vscode-plugin/.claude-plugin/plugin.json +1 -1
  6. package/data/vscode-plugin/CHANGELOG.md +6 -0
  7. package/data/vscode-plugin/scripts/pushary-gate.mjs +76 -24
  8. package/dist/bin/pushary-bell-hook.js +18 -18
  9. package/dist/bin/pushary-bell.js +5 -5
  10. package/dist/bin/pushary-claude.js +24 -24
  11. package/dist/bin/pushary-clean.js +64 -26
  12. package/dist/bin/pushary-codex-bridge.js +29 -12
  13. package/dist/bin/pushary-codex-hook.js +29 -29
  14. package/dist/bin/pushary-codex.js +7 -7
  15. package/dist/bin/pushary-connect.js +6 -6
  16. package/dist/bin/pushary-cowork.js +3 -3
  17. package/dist/bin/pushary-daemon.js +22 -22
  18. package/dist/bin/pushary-disconnect.js +6 -6
  19. package/dist/bin/pushary-doctor.js +22 -21
  20. package/dist/bin/pushary-elicitation-hook.js +17 -17
  21. package/dist/bin/pushary-gemini-bridge.js +9 -9
  22. package/dist/bin/pushary-gemini-hook.js +65 -50
  23. package/dist/bin/pushary-hook.js +22 -22
  24. package/dist/bin/pushary-login.js +7 -7
  25. package/dist/bin/pushary-logout.js +4 -4
  26. package/dist/bin/pushary-mode.js +3 -3
  27. package/dist/bin/pushary-notification-hook.js +19 -19
  28. package/dist/bin/pushary-opencode-hook.js +29 -29
  29. package/dist/bin/pushary-permission-denied-hook.js +22 -22
  30. package/dist/bin/pushary-permission-hook.js +22 -22
  31. package/dist/bin/pushary-post-hook.js +19 -19
  32. package/dist/bin/pushary-prompt-hook.js +19 -19
  33. package/dist/bin/pushary-session-end-hook.js +19 -19
  34. package/dist/bin/pushary-session-start-hook.js +22 -22
  35. package/dist/bin/pushary-setup.js +24 -24
  36. package/dist/bin/pushary-stats.js +2 -2
  37. package/dist/bin/pushary-status.js +10 -10
  38. package/dist/bin/pushary-stop-hook.js +19 -19
  39. package/dist/bin/pushary-stopfailure-hook.js +19 -19
  40. package/dist/bin/pushary-transcript-register.js +16 -16
  41. package/dist/bin/pushary-transcripts.js +5 -5
  42. package/dist/bin/pushary-upgrade.js +14 -14
  43. package/dist/bin/pushary-wait.js +6 -5
  44. package/dist/{chunk-XKIB2FQY.js → chunk-3YFJGKJQ.js} +8 -8
  45. package/dist/{chunk-OIZVYUED.js → chunk-4DUEIUUO.js} +1 -1
  46. package/dist/{chunk-HKQ6CD32.js → chunk-54W7ELDQ.js} +1 -1
  47. package/dist/{chunk-32WFHA77.js → chunk-5GKNAQTG.js} +1 -1
  48. package/dist/{chunk-FHIVWF4B.js → chunk-A22VQ5ZL.js} +14 -14
  49. package/dist/{chunk-HHODMHTH.js → chunk-ATKGKAP6.js} +3 -3
  50. package/dist/{chunk-6II5RBAS.js → chunk-BQL7UDIB.js} +1 -1
  51. package/dist/chunk-CVWG2N3Y.js +16 -0
  52. package/dist/{chunk-C7BFOC35.js → chunk-E47WV7BJ.js} +2 -2
  53. package/dist/{chunk-WZ63WTAZ.js → chunk-EMGGUO2Q.js} +1 -1
  54. package/dist/{chunk-RPHXG4HI.js → chunk-F4TMY6XI.js} +2 -2
  55. package/dist/{chunk-KNIVXEW4.js → chunk-FRXZMCVA.js} +1 -1
  56. package/dist/{chunk-ZJ6QXXBC.js → chunk-HUGIKB5O.js} +11 -11
  57. package/dist/{chunk-7N3D4GN7.js → chunk-I7LKI4WO.js} +4 -4
  58. package/dist/{chunk-KAWLZTRJ.js → chunk-L7NOG547.js} +1 -1
  59. package/dist/{chunk-FBO5WS3D.js → chunk-NOVA7KZ2.js} +3 -1
  60. package/dist/{chunk-A2M6FGUF.js → chunk-QD73WATQ.js} +3 -3
  61. package/dist/{chunk-FVTFSYKB.js → chunk-QJPYJVL3.js} +1 -1
  62. package/dist/{chunk-CDBTCEKE.js → chunk-QV266EGS.js} +3 -3
  63. package/dist/{chunk-BS5XR4J7.js → chunk-R3OZ5ISU.js} +3 -3
  64. package/dist/{chunk-XJ6CXTSB.js → chunk-R6LBGKWQ.js} +7 -7
  65. package/dist/{chunk-WRK6RAA5.js → chunk-RE25RJ5A.js} +4 -4
  66. package/dist/{chunk-ZQREURP6.js → chunk-SDNTRS76.js} +1 -1
  67. package/dist/{chunk-DH4INZW3.js → chunk-SKPXQRKN.js} +1 -1
  68. package/dist/{chunk-SLVXQOYU.js → chunk-TY6IJY6I.js} +1 -1
  69. package/dist/{chunk-43TFQOAT.js → chunk-U5RIXR7I.js} +1 -1
  70. package/dist/{chunk-AXECWTTZ.js → chunk-UKMLSQXA.js} +2 -2
  71. package/dist/{chunk-SRFA5BOO.js → chunk-VDI645ZX.js} +1 -1
  72. package/dist/{chunk-JZSWA3VT.js → chunk-VERXHIQF.js} +1 -1
  73. package/dist/{chunk-6MRPTYYH.js → chunk-VMQU7YEJ.js} +1 -1
  74. package/dist/{chunk-R4MBUCPQ.js → chunk-XEVOPOKT.js} +1 -1
  75. package/dist/{chunk-O5RQ7RYJ.js → chunk-XO3JR3OP.js} +2 -2
  76. package/dist/{chunk-32WWVRXN.js → chunk-XUTSZYYJ.js} +1 -1
  77. package/dist/{chunk-4XFBO3GW.js → chunk-XZWUOCJZ.js} +1 -1
  78. package/dist/{chunk-DSCGKZO5.js → chunk-Y6SCMXR6.js} +2 -2
  79. package/dist/{chunk-HBBQO77U.js → chunk-Z4JVEL7R.js} +1 -1
  80. package/dist/src/index.js +10 -10
  81. package/package.json +1 -1
  82. package/dist/chunk-IIENZE2J.js +0 -15
  83. /package/dist/{chunk-VZADMT7R.js → chunk-MC5WUOJJ.js} +0 -0
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  defersToNativeMode
3
- } from "./chunk-SRFA5BOO.js";
3
+ } from "./chunk-VDI645ZX.js";
4
4
  import {
5
5
  isGatingMoment,
6
6
  recordKeylessMoment
7
- } from "./chunk-32WFHA77.js";
7
+ } from "./chunk-5GKNAQTG.js";
8
8
  import {
9
9
  denyReasonFrom,
10
10
  isDeferAnswer
@@ -20,15 +20,7 @@ import {
20
20
  reportEvent,
21
21
  settleQuestionsForToolUse,
22
22
  throttlePass
23
- } from "./chunk-ZJ6QXXBC.js";
24
- import {
25
- DECISION_STOP_REASON,
26
- askUser,
27
- isDecisionStopped,
28
- isLocalQuestionHandoff,
29
- sendNotification,
30
- waitForQuestion
31
- } from "./chunk-XS33QBJA.js";
23
+ } from "./chunk-HUGIKB5O.js";
32
24
  import {
33
25
  UNNAMED_ACTION,
34
26
  deriveAction,
@@ -38,10 +30,18 @@ import {
38
30
  describeToolCall,
39
31
  permissionDeniedAction,
40
32
  scopePathFor
41
- } from "./chunk-HBBQO77U.js";
33
+ } from "./chunk-Z4JVEL7R.js";
34
+ import {
35
+ DECISION_STOP_REASON,
36
+ askUser,
37
+ isDecisionStopped,
38
+ isLocalQuestionHandoff,
39
+ sendNotification,
40
+ waitForQuestion
41
+ } from "./chunk-XS33QBJA.js";
42
42
  import {
43
43
  getMachineId
44
- } from "./chunk-C7BFOC35.js";
44
+ } from "./chunk-E47WV7BJ.js";
45
45
  import {
46
46
  getApiKey,
47
47
  getBaseUrl
@@ -60,7 +60,7 @@ import {
60
60
  parseAgentQuestions,
61
61
  resolveGate,
62
62
  stoppedOutput
63
- } from "./chunk-VZADMT7R.js";
63
+ } from "./chunk-MC5WUOJJ.js";
64
64
 
65
65
  // src/decision-episode.ts
66
66
  var EPISODE_PATH = "/api/agent/decision-episode";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  supportedClaudeEvents
4
- } from "./chunk-CDBTCEKE.js";
4
+ } from "./chunk-QV266EGS.js";
5
5
  import {
6
6
  guardBinary
7
7
  } from "./chunk-3AJIK5AO.js";
8
8
  import {
9
9
  isProtectedByScope
10
- } from "./chunk-FBO5WS3D.js";
10
+ } from "./chunk-NOVA7KZ2.js";
11
11
  import {
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-VZADMT7R.js";
13
+ } from "./chunk-MC5WUOJJ.js";
14
14
 
15
15
  // src/claude-config.ts
16
16
  import { join } from "path";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-VZADMT7R.js";
16
+ } from "./chunk-MC5WUOJJ.js";
17
17
 
18
18
  // src/session.ts
19
19
  var samePusharyAccount = (left, right) => left.kind === "ok" && right.kind === "ok" && left.identity.workspaceId !== "" && left.identity.workspaceId === right.identity.workspaceId && left.identity.siteId === right.identity.siteId;
@@ -0,0 +1,16 @@
1
+ // src/wait-ladder.ts
2
+ var HAND_BACK = "then hand back to the agent's own prompt";
3
+ var describeWaitLadder = (p) => {
4
+ if (p.mode === "terminal_only") return "no approval alerts, the agent's own prompt decides";
5
+ if (p.mode === "notify_only") return "send an approval alert, then the agent's own prompt decides";
6
+ if (p.mode === "push_only") {
7
+ if (p.timeoutAction === "wait") return `wait for your phone, ${HAND_BACK}`;
8
+ const tail = p.timeoutAction === "approve" ? "then auto-approve" : p.timeoutAction === "deny" ? "then auto-deny" : HAND_BACK;
9
+ return `wait for your phone up to ${p.timeoutSeconds}s, ${tail}`;
10
+ }
11
+ return `when you are away or Pushary cannot tell, ask your phone for ${p.pushFirstSeconds}s, ${HAND_BACK}`;
12
+ };
13
+
14
+ export {
15
+ describeWaitLadder
16
+ };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-FBO5WS3D.js";
3
+ } from "./chunk-NOVA7KZ2.js";
4
4
  import {
5
5
  writeFileAtomic
6
- } from "./chunk-KAWLZTRJ.js";
6
+ } from "./chunk-L7NOG547.js";
7
7
 
8
8
  // src/identity.ts
9
9
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeJsonAtomicDurable
3
- } from "./chunk-KAWLZTRJ.js";
3
+ } from "./chunk-L7NOG547.js";
4
4
 
5
5
  // src/transcript-recipient-pin.ts
6
6
  import { existsSync, mkdirSync, readFileSync, rmSync } from "fs";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-43TFQOAT.js";
3
+ } from "./chunk-U5RIXR7I.js";
4
4
  import {
5
5
  codexHomeFrom
6
- } from "./chunk-FBO5WS3D.js";
6
+ } from "./chunk-NOVA7KZ2.js";
7
7
 
8
8
  // src/vscode-config.ts
9
9
  import { homedir } from "os";
@@ -3,7 +3,7 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-DH4INZW3.js";
6
+ } from "./chunk-SKPXQRKN.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
@@ -1,9 +1,3 @@
1
- import {
2
- cancelQuestion,
3
- isPolicyConfig,
4
- sendNotification,
5
- waitForAnswer
6
- } from "./chunk-XS33QBJA.js";
7
1
  import {
8
2
  AGENT_IDENTITIES,
9
3
  TEAMMATE_IDLE_ACTION,
@@ -24,20 +18,26 @@ import {
24
18
  summarizeStop,
25
19
  taskTitleFrom,
26
20
  toolResultErrorText
27
- } from "./chunk-HBBQO77U.js";
21
+ } from "./chunk-Z4JVEL7R.js";
28
22
  import {
29
23
  NOTIFICATION_PUSH_TYPES,
30
24
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
31
- } from "./chunk-32WWVRXN.js";
25
+ } from "./chunk-XUTSZYYJ.js";
26
+ import {
27
+ cancelQuestion,
28
+ isPolicyConfig,
29
+ sendNotification,
30
+ waitForAnswer
31
+ } from "./chunk-XS33QBJA.js";
32
32
  import {
33
33
  getMachineId
34
- } from "./chunk-C7BFOC35.js";
34
+ } from "./chunk-E47WV7BJ.js";
35
35
  import {
36
36
  withRetry
37
37
  } from "./chunk-EYRGBYZG.js";
38
38
  import {
39
39
  reportedInstallSource
40
- } from "./chunk-KAWLZTRJ.js";
40
+ } from "./chunk-L7NOG547.js";
41
41
  import {
42
42
  getApiKey,
43
43
  getBaseUrl
@@ -54,7 +54,7 @@ import {
54
54
  pendingCommandEvents,
55
55
  resolveAutoResolveOrigin,
56
56
  resolvePolicy
57
- } from "./chunk-VZADMT7R.js";
57
+ } from "./chunk-MC5WUOJJ.js";
58
58
 
59
59
  // src/policy.ts
60
60
  import { createHash } from "crypto";
@@ -7,22 +7,22 @@ import {
7
7
  } from "./chunk-L4ZCFMWW.js";
8
8
  import {
9
9
  getMachineId
10
- } from "./chunk-C7BFOC35.js";
10
+ } from "./chunk-E47WV7BJ.js";
11
11
  import {
12
12
  pusharyDir
13
- } from "./chunk-FBO5WS3D.js";
13
+ } from "./chunk-NOVA7KZ2.js";
14
14
  import {
15
15
  getPackageVersion
16
16
  } from "./chunk-DINDL2CF.js";
17
17
  import {
18
18
  readControlMode
19
- } from "./chunk-6MRPTYYH.js";
19
+ } from "./chunk-VMQU7YEJ.js";
20
20
  import {
21
21
  readJsonSafe,
22
22
  writeFileAtomic,
23
23
  writeJsonAtomic,
24
24
  writeJsonAtomicDurable
25
- } from "./chunk-KAWLZTRJ.js";
25
+ } from "./chunk-L7NOG547.js";
26
26
  import {
27
27
  getApiKey
28
28
  } from "./chunk-2UMNXADU.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2UMNXADU.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-VZADMT7R.js";
6
+ } from "./chunk-MC5WUOJJ.js";
7
7
 
8
8
  // src/cli/fsx.ts
9
9
  import { copyFileSync, existsSync, fsyncSync, mkdirSync, openSync, closeSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  HOOK_LOCATOR_BINARY
4
- } from "./chunk-VZADMT7R.js";
4
+ } from "./chunk-MC5WUOJJ.js";
5
5
 
6
6
  // src/removal-scope.ts
7
7
  var namesAppLocator = (command) => command.includes(HOOK_LOCATOR_BINARY);
@@ -320,6 +320,7 @@ var vscodePluginMcp = () => join2(vscodePluginDir(), ".mcp.json");
320
320
  var claudeSettingsLocal = () => join2(homedir2(), ".claude", "settings.local.json");
321
321
  var pusharyDir = () => join2(homedir2(), ".pushary");
322
322
  var claudeMcpReceipt = () => join2(pusharyDir(), "setup", "claude-mcp.json");
323
+ var bridgeAgentKey = () => join2(pusharyDir(), "bridge-auth", "agent-key.json");
323
324
  var claudeRegistrationReceipt = () => join2(pusharyDir(), "setup", "claude-registration.json");
324
325
  var hermesConfigReceipt = () => join2(pusharyDir(), "setup", "hermes-config.json");
325
326
  var hookTakeoverReceipt = (agent) => join2(pusharyDir(), "setup", `hook-takeover-${agent}.json`);
@@ -365,6 +366,7 @@ export {
365
366
  claudeSettingsLocal,
366
367
  pusharyDir,
367
368
  claudeMcpReceipt,
369
+ bridgeAgentKey,
368
370
  claudeRegistrationReceipt,
369
371
  hermesConfigReceipt,
370
372
  hookTakeoverReceipt,
@@ -2,15 +2,15 @@ import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  GEMINI_HOOK_EVENTS,
4
4
  hasGeminiHooks
5
- } from "./chunk-CDBTCEKE.js";
5
+ } from "./chunk-QV266EGS.js";
6
6
  import {
7
7
  CODEX_HOOK_EVENTS,
8
8
  hasCodexHooks
9
- } from "./chunk-FBO5WS3D.js";
9
+ } from "./chunk-NOVA7KZ2.js";
10
10
  import {
11
11
  CURSOR_GATE_EVENTS,
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-VZADMT7R.js";
13
+ } from "./chunk-MC5WUOJJ.js";
14
14
 
15
15
  // src/diagnostics/wiring.ts
16
16
  var record = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_LOCATOR_BINARY
3
- } from "./chunk-VZADMT7R.js";
3
+ } from "./chunk-MC5WUOJJ.js";
4
4
 
5
5
  // src/diagnostics/bridge.ts
6
6
  import { execFileSync } from "child_process";
@@ -2,15 +2,15 @@ import {
2
2
  NOTIFICATION_MATCHED_TYPES,
3
3
  POSTTOOLUSE_MIRRORED_TOOLS,
4
4
  PRETOOLUSE_PHONE_ANSWERED_TOOLS
5
- } from "./chunk-32WWVRXN.js";
5
+ } from "./chunk-XUTSZYYJ.js";
6
6
  import {
7
7
  isProtectedByScope
8
- } from "./chunk-FBO5WS3D.js";
8
+ } from "./chunk-NOVA7KZ2.js";
9
9
  import {
10
10
  HOOK_BUDGETS,
11
11
  HOOK_LOCATOR_BINARY,
12
12
  PRETOOLUSE_GATED_TOOLS
13
- } from "./chunk-VZADMT7R.js";
13
+ } from "./chunk-MC5WUOJJ.js";
14
14
 
15
15
  // src/gemini-config.ts
16
16
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  AGENT_CHOICES
3
- } from "./chunk-4XFBO3GW.js";
3
+ } from "./chunk-XZWUOCJZ.js";
4
4
  import {
5
5
  isBridgeLocator
6
- } from "./chunk-FVTFSYKB.js";
6
+ } from "./chunk-QJPYJVL3.js";
7
7
  import {
8
8
  pusharyHookExecutable
9
- } from "./chunk-A2M6FGUF.js";
9
+ } from "./chunk-QD73WATQ.js";
10
10
  import {
11
11
  BELL_HOOK_BINARY
12
12
  } from "./chunk-GOPIMNVC.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  detectClaudeVersion
3
- } from "./chunk-OIZVYUED.js";
3
+ } from "./chunk-4DUEIUUO.js";
4
4
  import {
5
5
  addClaudeMcpServer,
6
6
  addPusharyHooks,
7
7
  addPusharyToolPermissions
8
- } from "./chunk-HHODMHTH.js";
8
+ } from "./chunk-ATKGKAP6.js";
9
9
  import {
10
10
  claudeWired,
11
11
  codexWired,
12
12
  geminiWired
13
- } from "./chunk-A2M6FGUF.js";
13
+ } from "./chunk-QD73WATQ.js";
14
14
  import {
15
15
  CLAUDE_HOOK_EVENTS,
16
16
  GEMINI_HOOK_BINARY,
@@ -21,7 +21,7 @@ import {
21
21
  needsReregistration,
22
22
  registrationSignatures,
23
23
  supportedClaudeEvents
24
- } from "./chunk-CDBTCEKE.js";
24
+ } from "./chunk-QV266EGS.js";
25
25
  import {
26
26
  guardBinary
27
27
  } from "./chunk-3AJIK5AO.js";
@@ -40,14 +40,14 @@ import {
40
40
  codexHooksJson,
41
41
  hasCodexHooks,
42
42
  vscodePluginMcp
43
- } from "./chunk-FBO5WS3D.js";
43
+ } from "./chunk-NOVA7KZ2.js";
44
44
  import {
45
45
  readJsonSafe,
46
46
  writeJsonAtomic
47
- } from "./chunk-KAWLZTRJ.js";
47
+ } from "./chunk-L7NOG547.js";
48
48
  import {
49
49
  HOOK_LOCATOR_BINARY
50
- } from "./chunk-VZADMT7R.js";
50
+ } from "./chunk-MC5WUOJJ.js";
51
51
 
52
52
  // src/reapply.ts
53
53
  import { join } from "path";
@@ -2,24 +2,24 @@ import {
2
2
  detectProviderLiveCapabilities,
3
3
  hasSpawnProvider,
4
4
  resolveControlPolicy
5
- } from "./chunk-HKQ6CD32.js";
5
+ } from "./chunk-54W7ELDQ.js";
6
6
  import {
7
7
  daemonHasRemoteProof,
8
8
  daemonServiceManagerAvailable,
9
9
  hasDaemonServiceDefinition,
10
10
  readDaemonNeedsLogin,
11
11
  readDaemonStatus
12
- } from "./chunk-7N3D4GN7.js";
12
+ } from "./chunk-I7LKI4WO.js";
13
13
  import {
14
14
  getMachineId
15
- } from "./chunk-C7BFOC35.js";
15
+ } from "./chunk-E47WV7BJ.js";
16
16
  import {
17
17
  getPackageVersion
18
18
  } from "./chunk-DINDL2CF.js";
19
19
  import {
20
20
  readControlMode,
21
21
  readKeySource
22
- } from "./chunk-6MRPTYYH.js";
22
+ } from "./chunk-VMQU7YEJ.js";
23
23
  import {
24
24
  getBaseUrl
25
25
  } from "./chunk-2UMNXADU.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  describeKeyCheck,
3
3
  keyCheckFromResponse
4
- } from "./chunk-6II5RBAS.js";
4
+ } from "./chunk-BQL7UDIB.js";
5
5
  import {
6
6
  createIo
7
7
  } from "./chunk-5RUIFDTP.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactSecrets
3
- } from "./chunk-VZADMT7R.js";
3
+ } from "./chunk-MC5WUOJJ.js";
4
4
 
5
5
  // src/crypto.ts
6
6
  import nacl from "tweetnacl";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-6MRPTYYH.js";
3
+ } from "./chunk-VMQU7YEJ.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  OPENCODE_APPROVAL_EVENT
4
- } from "./chunk-VZADMT7R.js";
4
+ } from "./chunk-MC5WUOJJ.js";
5
5
 
6
6
  // src/opencode-plugin.ts
7
7
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SETUP_FLAGS
3
- } from "./chunk-4XFBO3GW.js";
3
+ } from "./chunk-XZWUOCJZ.js";
4
4
  import {
5
5
  parseFlags
6
6
  } from "./chunk-GMXKITVA.js";
@@ -14,7 +14,7 @@ import {
14
14
  CLAUDE_CONNECTOR_URL,
15
15
  COWORK_CONNECTOR_LIMIT,
16
16
  COWORK_STANDING_INSTRUCTIONS
17
- } from "./chunk-VZADMT7R.js";
17
+ } from "./chunk-MC5WUOJJ.js";
18
18
 
19
19
  // src/cli/cowork.ts
20
20
  import { readFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  shouldDeferToNativeMode
3
- } from "./chunk-VZADMT7R.js";
3
+ } from "./chunk-MC5WUOJJ.js";
4
4
 
5
5
  // src/native-defer.ts
6
6
  var nativeDeferOptions = () => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readTranscriptPreference
3
- } from "./chunk-6MRPTYYH.js";
3
+ } from "./chunk-VMQU7YEJ.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {
@@ -4,7 +4,7 @@ import {
4
4
  resolveInstallSourceFor,
5
5
  writeFileAtomic,
6
6
  writeJsonAtomic
7
- } from "./chunk-KAWLZTRJ.js";
7
+ } from "./chunk-L7NOG547.js";
8
8
  import {
9
9
  configFilePath
10
10
  } from "./chunk-2UMNXADU.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  registerTranscript
3
- } from "./chunk-XKIB2FQY.js";
3
+ } from "./chunk-3YFJGKJQ.js";
4
4
 
5
5
  // src/admission.ts
6
6
  import { readFileSync } from "fs";
@@ -15,10 +15,10 @@ import {
15
15
  } from "./chunk-EYRGBYZG.js";
16
16
  import {
17
17
  reportedInstallSource
18
- } from "./chunk-KAWLZTRJ.js";
18
+ } from "./chunk-L7NOG547.js";
19
19
  import {
20
20
  isAnswerSource
21
- } from "./chunk-VZADMT7R.js";
21
+ } from "./chunk-MC5WUOJJ.js";
22
22
 
23
23
  // src/reach.ts
24
24
  var reachVerdict = (channels) => {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ASKED_IN_EVERY_MODE_TOOLS,
3
3
  PRETOOLUSE_GATED_TOOLS
4
- } from "./chunk-VZADMT7R.js";
4
+ } from "./chunk-MC5WUOJJ.js";
5
5
 
6
6
  // src/claude-tools.ts
7
7
  var PRETOOLUSE_PHONE_ANSWERED_TOOLS = ASKED_IN_EVERY_MODE_TOOLS;
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-7QLSKOSU.js";
7
7
  import {
8
8
  isValidApiKey
9
- } from "./chunk-VZADMT7R.js";
9
+ } from "./chunk-MC5WUOJJ.js";
10
10
 
11
11
  // src/setup/options.ts
12
12
  var AGENT_CHOICES = ["claude_code", "codex", "gemini_cli", "hermes", "cursor", "vscode", "opencode", "custom"];
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-FBO5WS3D.js";
3
+ } from "./chunk-NOVA7KZ2.js";
4
4
  import {
5
5
  readJsonSafe
6
- } from "./chunk-KAWLZTRJ.js";
6
+ } from "./chunk-L7NOG547.js";
7
7
 
8
8
  // src/process-ownership.ts
9
9
  import { createHash, randomUUID } from "crypto";
@@ -5,7 +5,7 @@ import {
5
5
  FILE_TARGET_TOOLS,
6
6
  redactSecrets,
7
7
  redactSecretsDeep
8
- } from "./chunk-VZADMT7R.js";
8
+ } from "./chunk-MC5WUOJJ.js";
9
9
 
10
10
  // ../hook-mapping/src/describe.ts
11
11
  import { isAbsolute, relative, resolve } from "path";
package/dist/src/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-FHIVWF4B.js";
4
- import "../chunk-SRFA5BOO.js";
5
- import "../chunk-32WFHA77.js";
3
+ } from "../chunk-A22VQ5ZL.js";
4
+ import "../chunk-VDI645ZX.js";
5
+ import "../chunk-5GKNAQTG.js";
6
6
  import "../chunk-YHG74UFF.js";
7
7
  import {
8
8
  fetchAccountPublicKey
@@ -15,28 +15,28 @@ import {
15
15
  handlePostToolUse,
16
16
  handleStop,
17
17
  reportEvent
18
- } from "../chunk-ZJ6QXXBC.js";
18
+ } from "../chunk-HUGIKB5O.js";
19
+ import "../chunk-Z4JVEL7R.js";
20
+ import "../chunk-XUTSZYYJ.js";
19
21
  import {
20
22
  askUser,
21
23
  cancelQuestion,
22
24
  waitForAnswer
23
25
  } from "../chunk-XS33QBJA.js";
24
- import "../chunk-HBBQO77U.js";
25
- import "../chunk-32WWVRXN.js";
26
- import "../chunk-C7BFOC35.js";
27
- import "../chunk-FBO5WS3D.js";
26
+ import "../chunk-E47WV7BJ.js";
27
+ import "../chunk-NOVA7KZ2.js";
28
28
  import "../chunk-EYRGBYZG.js";
29
29
  import "../chunk-SAF6HGAA.js";
30
30
  import "../chunk-7QLSKOSU.js";
31
31
  import "../chunk-KZERVKTD.js";
32
- import "../chunk-KAWLZTRJ.js";
32
+ import "../chunk-L7NOG547.js";
33
33
  import {
34
34
  getApiKey,
35
35
  getBaseUrl
36
36
  } from "../chunk-2UMNXADU.js";
37
37
  import {
38
38
  resolvePolicy
39
- } from "../chunk-VZADMT7R.js";
39
+ } from "../chunk-MC5WUOJJ.js";
40
40
  export {
41
41
  askUser,
42
42
  cancelQuestion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushary/agent-hooks",
3
- "version": "0.95.6",
3
+ "version": "0.95.8",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",
@@ -1,15 +0,0 @@
1
- // src/wait-ladder.ts
2
- var describeWaitLadder = (p) => {
3
- if (p.mode === "terminal_only") return "decide in the terminal, no push";
4
- if (p.mode === "notify_only") return "send a heads-up, the terminal decides";
5
- if (p.mode === "push_only") {
6
- if (p.timeoutAction === "wait") return "wait for your phone, then ask in the terminal";
7
- const tail = p.timeoutAction === "approve" ? "then auto-approve" : p.timeoutAction === "deny" ? "then auto-deny" : "then ask in the terminal";
8
- return `wait for your phone up to ${p.timeoutSeconds}s, ${tail}`;
9
- }
10
- return `ping your phone ${p.pushFirstSeconds}s, then ask in the terminal`;
11
- };
12
-
13
- export {
14
- describeWaitLadder
15
- };
File without changes