pushary 1.8.0 → 1.8.2

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 (106) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +27 -19
  3. package/data/SKILL.md +8 -8
  4. package/data/cowork/SKILL.md +2 -2
  5. package/data/cursor-plugin/README.md +2 -2
  6. package/data/cursor-plugin/scripts/redaction.mjs +4 -2
  7. package/data/cursor-plugin/skills/pushary/SKILL.md +7 -7
  8. package/data/vscode-plugin/README.md +4 -4
  9. package/data/vscode-plugin/scripts/pushary-gate.mjs +2 -2
  10. package/data/vscode-plugin/scripts/redaction.mjs +4 -2
  11. package/data/vscode-plugin/skills/pushary/SKILL.md +7 -7
  12. package/dist/bin/pushary-bell-hook.js +24 -23
  13. package/dist/bin/pushary-bell.js +9 -9
  14. package/dist/bin/pushary-claude.js +27 -26
  15. package/dist/bin/pushary-clean.js +35 -32
  16. package/dist/bin/pushary-codex-bridge.js +23 -21
  17. package/dist/bin/pushary-codex-hook.js +32 -31
  18. package/dist/bin/pushary-codex.js +13 -13
  19. package/dist/bin/pushary-connect.js +13 -13
  20. package/dist/bin/pushary-cowork.js +5 -5
  21. package/dist/bin/pushary-daemon.js +100 -36
  22. package/dist/bin/pushary-disconnect.js +19 -18
  23. package/dist/bin/pushary-doctor.js +41 -38
  24. package/dist/bin/pushary-elicitation-hook.js +26 -25
  25. package/dist/bin/pushary-gemini-bridge.js +18 -15
  26. package/dist/bin/pushary-gemini-hook.js +29 -28
  27. package/dist/bin/pushary-hook.js +33 -32
  28. package/dist/bin/pushary-login.js +12 -12
  29. package/dist/bin/pushary-logout.js +7 -7
  30. package/dist/bin/pushary-mcp.js +9 -9
  31. package/dist/bin/pushary-mode.js +9 -9
  32. package/dist/bin/pushary-notification-hook.js +29 -28
  33. package/dist/bin/pushary-opencode-hook.js +28 -27
  34. package/dist/bin/pushary-permission-denied-hook.js +33 -32
  35. package/dist/bin/pushary-permission-hook.js +32 -31
  36. package/dist/bin/pushary-post-hook.js +29 -28
  37. package/dist/bin/pushary-prompt-hook.js +29 -28
  38. package/dist/bin/pushary-session-end-hook.js +29 -28
  39. package/dist/bin/pushary-session-start-hook.js +33 -32
  40. package/dist/bin/pushary-setup.js +52 -108
  41. package/dist/bin/pushary-stats.js +5 -5
  42. package/dist/bin/pushary-status.js +17 -15
  43. package/dist/bin/pushary-stop-hook.js +29 -28
  44. package/dist/bin/pushary-stopfailure-hook.js +29 -28
  45. package/dist/bin/pushary-suggestions.js +4 -4
  46. package/dist/bin/pushary-transcript-register.js +20 -19
  47. package/dist/bin/pushary-transcripts.js +7 -7
  48. package/dist/bin/pushary-upgrade.js +29 -27
  49. package/dist/bin/pushary-wait.js +9 -9
  50. package/dist/bin/pushary.js +6 -6
  51. package/dist/{chunk-2OY3ZZ5N.js → chunk-2SLCHCVN.js} +3 -3
  52. package/dist/{chunk-E4FJTUH4.js → chunk-35X5UDML.js} +7 -7
  53. package/dist/{chunk-LXQ5FBBD.js → chunk-4A3UQERT.js} +1 -1
  54. package/dist/{chunk-CJVVKOSR.js → chunk-5DGNEUXK.js} +2 -2
  55. package/dist/{chunk-DB3ONZB4.js → chunk-5Y2DY6X4.js} +2 -2
  56. package/dist/{chunk-NQTHFF4W.js → chunk-5YY3IJT4.js} +21 -19
  57. package/dist/{chunk-AXPCESYO.js → chunk-644AEX4T.js} +3 -3
  58. package/dist/{chunk-UI36QSBI.js → chunk-64H5IZZD.js} +2 -2
  59. package/dist/chunk-6ICPEJY5.js +20 -0
  60. package/dist/{chunk-OLQRRFBX.js → chunk-72WOCX22.js} +1 -1
  61. package/dist/{chunk-JU6W3XAU.js → chunk-7ITOAMCD.js} +1 -1
  62. package/dist/{chunk-JYG4B33G.js → chunk-7U7ZWUTR.js} +1 -1
  63. package/dist/{chunk-VQKRG3AC.js → chunk-B3UVRGYP.js} +11 -9
  64. package/dist/{chunk-KVQBWI5T.js → chunk-BDMC5H5L.js} +2 -2
  65. package/dist/{chunk-HZVVNGEW.js → chunk-CB23AO4D.js} +2 -2
  66. package/dist/{chunk-D2FX3EPW.js → chunk-CHMOVJ2M.js} +1 -1
  67. package/dist/{chunk-ZVSKMPBZ.js → chunk-DLEKCAQL.js} +1 -1
  68. package/dist/{chunk-JZTHGAPA.js → chunk-DUA5O6X5.js} +8 -8
  69. package/dist/{chunk-2ABTSGFT.js → chunk-DVW2MYCM.js} +3 -3
  70. package/dist/{chunk-TY4JT7W3.js → chunk-DXBS2EL7.js} +1 -1
  71. package/dist/{chunk-KGDWDSNL.js → chunk-EESPY5DG.js} +2 -2
  72. package/dist/{chunk-WE2J62NC.js → chunk-EIGJYCOE.js} +5 -5
  73. package/dist/{chunk-CULUZTWQ.js → chunk-F6NTWZZC.js} +9 -9
  74. package/dist/{chunk-IPVKH2ST.js → chunk-HMNR7B2F.js} +1 -1
  75. package/dist/{chunk-OKXS7WDZ.js → chunk-HOEB6AKG.js} +1 -1
  76. package/dist/{chunk-R7437YI3.js → chunk-HVDMGDYV.js} +2 -2
  77. package/dist/{chunk-DE4Y6TCC.js → chunk-I3XLHSOC.js} +8 -7
  78. package/dist/{chunk-M5ICYGHT.js → chunk-I4HKMUZQ.js} +3 -3
  79. package/dist/{chunk-M5JDZ45W.js → chunk-INSMZNS7.js} +5 -5
  80. package/dist/{chunk-CVQYGMSR.js → chunk-KB2FTO4O.js} +4 -4
  81. package/dist/{chunk-MDEPU45E.js → chunk-LK2S5XIV.js} +6 -6
  82. package/dist/{chunk-NGDD6TXY.js → chunk-MMVCI6DT.js} +5 -5
  83. package/dist/{chunk-J5TIV3J6.js → chunk-MOTNSXC3.js} +5 -5
  84. package/dist/{chunk-C2WCPBF7.js → chunk-MYHG7PX2.js} +1 -1
  85. package/dist/{chunk-7Z7Q4GGS.js → chunk-N6JJJTPH.js} +6 -3
  86. package/dist/{chunk-EX3GAPA4.js → chunk-NHCUXTEM.js} +1 -1
  87. package/dist/{chunk-Q7E4I6UA.js → chunk-NNWQ5VDB.js} +13 -10
  88. package/dist/{chunk-AHV4LNB5.js → chunk-NOLPURUI.js} +1 -1
  89. package/dist/{chunk-GPEGOGRJ.js → chunk-ON5JW2HP.js} +1 -1
  90. package/dist/{chunk-SIFVFP6T.js → chunk-RIVNNBEK.js} +2 -1
  91. package/dist/{chunk-3EVPNIBE.js → chunk-S2UNQQQS.js} +7 -20
  92. package/dist/{chunk-SLFABHW3.js → chunk-T55H6YEP.js} +2 -2
  93. package/dist/{chunk-P7WQEVWA.js → chunk-TJMAXQ5Q.js} +2 -2
  94. package/dist/{chunk-SAXBC4AZ.js → chunk-UMMCHS6P.js} +1 -1
  95. package/dist/{chunk-A2A2YTMG.js → chunk-UPLV5AJF.js} +1 -1
  96. package/dist/{chunk-MPWXGONV.js → chunk-URNXU3FO.js} +1 -1
  97. package/dist/{chunk-EPCXUP3P.js → chunk-VFFHQC7W.js} +1 -1
  98. package/dist/{chunk-RHR6NARM.js → chunk-W2LJ4O3A.js} +2 -2
  99. package/dist/{chunk-6J2JC2RT.js → chunk-XEGVVU5H.js} +3 -3
  100. package/dist/chunk-XQZEIWAV.js +150 -0
  101. package/dist/{chunk-EYK3GSRH.js → chunk-YNCGXHM4.js} +4 -4
  102. package/dist/{chunk-ZSZSSJCV.js → chunk-ZJYJAD52.js} +1 -1
  103. package/dist/{reapply-CW3MA66V.js → reapply-3UERAKQN.js} +10 -9
  104. package/dist/src/index.js +21 -20
  105. package/package.json +1 -1
  106. package/dist/chunk-HQ6G3B5R.js +0 -59
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  pusharyHookExecutable
3
- } from "./chunk-6J2JC2RT.js";
3
+ } from "./chunk-XEGVVU5H.js";
4
4
  import {
5
5
  isProtectedByScope,
6
6
  registerHookEntry
7
- } from "./chunk-A2A2YTMG.js";
7
+ } from "./chunk-UPLV5AJF.js";
8
8
 
9
9
  // src/skills-cli.ts
10
10
  import { execSync } from "child_process";
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-E4FJTUH4.js";
6
+ } from "./chunk-35X5UDML.js";
7
7
  import {
8
8
  getPackageVersion
9
- } from "./chunk-NQTHFF4W.js";
9
+ } from "./chunk-5YY3IJT4.js";
10
10
 
11
11
  // src/cli/usage.ts
12
12
  var exitOnHelpFlag = (command) => {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_HOLD_BUDGET_ENV,
3
3
  hookHoldBudgetProof
4
- } from "./chunk-NQTHFF4W.js";
4
+ } from "./chunk-5YY3IJT4.js";
5
5
 
6
6
  // src/hold-budget.ts
7
7
  var takeHookHoldBudget = (args = process.argv.slice(2), env = process.env) => {
@@ -9,7 +9,7 @@ import {
9
9
  SETUP_CONNECT_MODES,
10
10
  isSetupConnectMode,
11
11
  isValidApiKey
12
- } from "./chunk-NQTHFF4W.js";
12
+ } from "./chunk-5YY3IJT4.js";
13
13
 
14
14
  // src/setup/options.ts
15
15
  var AGENT_CHOICES = SETUP_AGENT_CHOICES;
@@ -6,38 +6,38 @@ import {
6
6
  } from "./chunk-SGZJ5LYH.js";
7
7
  import {
8
8
  hookOwnerOf
9
- } from "./chunk-EYK3GSRH.js";
9
+ } from "./chunk-YNCGXHM4.js";
10
10
  import {
11
11
  ensureDaemonRunning
12
- } from "./chunk-WE2J62NC.js";
12
+ } from "./chunk-EIGJYCOE.js";
13
13
  import {
14
14
  buildTranscriptRecords,
15
15
  decodePublicKey,
16
16
  generateSessionKey,
17
17
  wrapSessionKey
18
- } from "./chunk-MPWXGONV.js";
18
+ } from "./chunk-URNXU3FO.js";
19
19
  import {
20
20
  fetchTranscriptRecipients,
21
21
  uploadTranscriptRecords
22
- } from "./chunk-SAXBC4AZ.js";
22
+ } from "./chunk-UMMCHS6P.js";
23
23
  import {
24
24
  transcriptEnvironmentPreference,
25
25
  transcriptsEnabled
26
- } from "./chunk-OLQRRFBX.js";
26
+ } from "./chunk-72WOCX22.js";
27
27
  import {
28
28
  readTranscriptPreference
29
- } from "./chunk-P7WQEVWA.js";
29
+ } from "./chunk-TJMAXQ5Q.js";
30
30
  import {
31
31
  codexHome,
32
32
  pusharyDir
33
- } from "./chunk-A2A2YTMG.js";
33
+ } from "./chunk-UPLV5AJF.js";
34
34
  import {
35
35
  writeJsonAtomic
36
36
  } from "./chunk-T7E75EKA.js";
37
37
  import {
38
38
  getApiKey,
39
39
  getBaseUrl
40
- } from "./chunk-GPEGOGRJ.js";
40
+ } from "./chunk-ON5JW2HP.js";
41
41
 
42
42
  // src/transcript-registration.ts
43
43
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyFetch
3
- } from "./chunk-2OY3ZZ5N.js";
3
+ } from "./chunk-2SLCHCVN.js";
4
4
  import {
5
5
  NetworkError
6
6
  } from "./chunk-7QLSKOSU.js";
@@ -9,11 +9,11 @@ import {
9
9
  } from "./chunk-KZERVKTD.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-GPEGOGRJ.js";
12
+ } from "./chunk-ON5JW2HP.js";
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-NQTHFF4W.js";
16
+ } from "./chunk-5YY3IJT4.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;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-E4FJTUH4.js";
3
+ } from "./chunk-35X5UDML.js";
4
4
 
5
5
  // src/setup/codex-trust.ts
6
6
  var CODEX_TRUST_TELEMETRY = {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  registerTranscript
3
- } from "./chunk-JZTHGAPA.js";
3
+ } from "./chunk-DUA5O6X5.js";
4
4
  import {
5
5
  writeDegraded
6
- } from "./chunk-CVQYGMSR.js";
6
+ } from "./chunk-KB2FTO4O.js";
7
7
 
8
8
  // src/tool-hook-input.ts
9
9
  var OPTIONAL_TEXT_FIELDS = ["hook_event_name", "session_id", "cwd", "transcript_path", "tool_use_id", "permission_mode"];
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-XHKBHWLX.js";
5
5
  import {
6
6
  readControlMode
7
- } from "./chunk-P7WQEVWA.js";
7
+ } from "./chunk-TJMAXQ5Q.js";
8
8
  import {
9
9
  getMachineId
10
- } from "./chunk-LXQ5FBBD.js";
10
+ } from "./chunk-4A3UQERT.js";
11
11
  import {
12
12
  pusharyDir,
13
13
  resolveGlobalBinary
14
- } from "./chunk-A2A2YTMG.js";
14
+ } from "./chunk-UPLV5AJF.js";
15
15
  import {
16
16
  readJsonSafe,
17
17
  writeFileAtomic,
@@ -20,14 +20,14 @@ import {
20
20
  } from "./chunk-T7E75EKA.js";
21
21
  import {
22
22
  getApiKey
23
- } from "./chunk-GPEGOGRJ.js";
23
+ } from "./chunk-ON5JW2HP.js";
24
24
  import {
25
25
  CLI_PACKAGE_NAMES,
26
26
  cmdShimTarget,
27
27
  getPackageVersion,
28
28
  globalPackageFolder,
29
29
  globalRootFor
30
- } from "./chunk-NQTHFF4W.js";
30
+ } from "./chunk-5YY3IJT4.js";
31
31
 
32
32
  // src/daemon-lifecycle.ts
33
33
  import { dirname, join, win32 as win32Path } from "path";
@@ -14,36 +14,36 @@ import {
14
14
  IDLE_PROMPT_NOTIFICATION,
15
15
  NOTIFICATION_PUSH_TYPES,
16
16
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
17
- } from "./chunk-EPCXUP3P.js";
17
+ } from "./chunk-VFFHQC7W.js";
18
18
  import {
19
19
  cancelQuestion,
20
20
  isPolicyConfig,
21
21
  sendNotification,
22
22
  waitForAnswer
23
- } from "./chunk-NGDD6TXY.js";
23
+ } from "./chunk-MMVCI6DT.js";
24
24
  import {
25
25
  clientErrorKindOf,
26
26
  reportClientError
27
- } from "./chunk-CVQYGMSR.js";
27
+ } from "./chunk-KB2FTO4O.js";
28
28
  import {
29
29
  withRetry
30
- } from "./chunk-M5ICYGHT.js";
30
+ } from "./chunk-I4HKMUZQ.js";
31
31
  import {
32
32
  getMachineId
33
- } from "./chunk-LXQ5FBBD.js";
33
+ } from "./chunk-4A3UQERT.js";
34
34
  import {
35
35
  reportedInstallSource
36
- } from "./chunk-DB3ONZB4.js";
36
+ } from "./chunk-5Y2DY6X4.js";
37
37
  import {
38
38
  canonicalJson
39
- } from "./chunk-A2A2YTMG.js";
39
+ } from "./chunk-UPLV5AJF.js";
40
40
  import {
41
41
  writeFileAtomic
42
42
  } from "./chunk-T7E75EKA.js";
43
43
  import {
44
44
  getApiKey,
45
45
  getBaseUrl
46
- } from "./chunk-GPEGOGRJ.js";
46
+ } from "./chunk-ON5JW2HP.js";
47
47
  import {
48
48
  ACTION_BODY_MAX,
49
49
  AGENT_LABELS_BY_TYPE,
@@ -70,7 +70,7 @@ import {
70
70
  resolvePolicy,
71
71
  toToolLookup,
72
72
  truncateLine
73
- } from "./chunk-NQTHFF4W.js";
73
+ } from "./chunk-5YY3IJT4.js";
74
74
 
75
75
  // src/policy.ts
76
76
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-P7WQEVWA.js";
3
+ } from "./chunk-TJMAXQ5Q.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-A2A2YTMG.js";
3
+ } from "./chunk-UPLV5AJF.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -3,11 +3,11 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-MPWXGONV.js";
6
+ } from "./chunk-URNXU3FO.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
10
- } from "./chunk-SAXBC4AZ.js";
10
+ } from "./chunk-UMMCHS6P.js";
11
11
 
12
12
  // src/live-session.ts
13
13
  var MAX_TRANSCRIPT_QUEUE = 100;
@@ -1,28 +1,29 @@
1
1
  import {
2
2
  detectProviderLiveCapabilities,
3
+ expectedLaunchCapabilities,
3
4
  hasSpawnProvider,
4
5
  resolveControlPolicy
5
- } from "./chunk-HQ6G3B5R.js";
6
+ } from "./chunk-XQZEIWAV.js";
6
7
  import {
7
8
  daemonHasRemoteProof,
8
9
  daemonServiceManagerAvailable,
9
10
  hasDaemonServiceDefinition,
10
11
  readDaemonNeedsLogin,
11
12
  readDaemonStatus
12
- } from "./chunk-WE2J62NC.js";
13
+ } from "./chunk-EIGJYCOE.js";
13
14
  import {
14
15
  readControlMode,
15
16
  readKeySource
16
- } from "./chunk-P7WQEVWA.js";
17
+ } from "./chunk-TJMAXQ5Q.js";
17
18
  import {
18
19
  getMachineId
19
- } from "./chunk-LXQ5FBBD.js";
20
+ } from "./chunk-4A3UQERT.js";
20
21
  import {
21
22
  getBaseUrl
22
- } from "./chunk-GPEGOGRJ.js";
23
+ } from "./chunk-ON5JW2HP.js";
23
24
  import {
24
25
  getPackageVersion
25
- } from "./chunk-NQTHFF4W.js";
26
+ } from "./chunk-5YY3IJT4.js";
26
27
 
27
28
  // src/machines.ts
28
29
  import { hostname } from "os";
@@ -135,7 +136,7 @@ var readManagedControlEvidence = (apiKey, providers, serverProof) => {
135
136
  const keyCurrent = Boolean(apiKey) && readKeySource().key === apiKey && readDaemonNeedsLogin().kind !== "blocked";
136
137
  const policy = resolveControlPolicy({ mode: readControlMode(), providerAvailable, managerAvailable, servicePresent: serviceInstalled || daemon.kind !== "absent" });
137
138
  const localProof = daemonHasRemoteProof(daemon, now);
138
- const remote = serverProof?.kind === "ready" ? machineReadiness([serverProof.machine], daemon.machineId ?? "", ["spawn", ...capabilities], now) : serverProof;
139
+ const remote = serverProof?.kind === "ready" ? machineReadiness([serverProof.machine], daemon.machineId ?? "", expectedLaunchCapabilities(providers), now) : serverProof;
139
140
  return {
140
141
  ready: keyCurrent && policy === "enabled" && providerAvailable && managerAvailable && serviceInstalled && localProof && remote?.kind === "ready",
141
142
  keyCurrent,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  keyCheckFromResponse
3
- } from "./chunk-2ABTSGFT.js";
3
+ } from "./chunk-DVW2MYCM.js";
4
4
  import {
5
5
  installNetworkDefaults
6
- } from "./chunk-2OY3ZZ5N.js";
6
+ } from "./chunk-2SLCHCVN.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-GPEGOGRJ.js";
9
+ } from "./chunk-ON5JW2HP.js";
10
10
 
11
11
  // src/retry.ts
12
12
  var isRetryable = (err) => {
@@ -14,17 +14,17 @@ import {
14
14
  } from "./chunk-U4TMAANR.js";
15
15
  import {
16
16
  callMcpTool
17
- } from "./chunk-M5ICYGHT.js";
17
+ } from "./chunk-I4HKMUZQ.js";
18
18
  import {
19
19
  reportedInstallSource
20
- } from "./chunk-DB3ONZB4.js";
20
+ } from "./chunk-5Y2DY6X4.js";
21
21
  import {
22
22
  NPX_LATEST_COMMAND
23
- } from "./chunk-E4FJTUH4.js";
23
+ } from "./chunk-35X5UDML.js";
24
24
  import {
25
25
  PAIR_TTL_SECONDS,
26
26
  isAnswerSource
27
- } from "./chunk-NQTHFF4W.js";
27
+ } from "./chunk-5YY3IJT4.js";
28
28
 
29
29
  // src/reach.ts
30
30
  var reachVerdict = (channels) => {
@@ -71,7 +71,7 @@ var describeAppRepair = (verdict) => {
71
71
  case "nobody":
72
72
  return [
73
73
  "Open the Pushary app, sign in, and allow notifications.",
74
- "If this terminal was never paired with your phone, run: npx @pushary/agent-hooks@latest setup --connect app"
74
+ `If this terminal was never paired with your phone, run: ${NPX_LATEST_COMMAND} setup --connect app`
75
75
  ];
76
76
  case "others":
77
77
  return [
@@ -4,18 +4,18 @@ import {
4
4
  } from "./chunk-POFBE6ZY.js";
5
5
  import {
6
6
  isNetworkFailure
7
- } from "./chunk-2OY3ZZ5N.js";
7
+ } from "./chunk-2SLCHCVN.js";
8
8
  import {
9
9
  clientReportClaims
10
- } from "./chunk-A2A2YTMG.js";
10
+ } from "./chunk-UPLV5AJF.js";
11
11
  import {
12
12
  getApiKey,
13
13
  getBaseUrl
14
- } from "./chunk-GPEGOGRJ.js";
14
+ } from "./chunk-ON5JW2HP.js";
15
15
  import {
16
16
  CLIENT_REPORT_PATH,
17
17
  degradedLine
18
- } from "./chunk-NQTHFF4W.js";
18
+ } from "./chunk-5YY3IJT4.js";
19
19
 
20
20
  // src/client-report-claim.ts
21
21
  import { createHash } from "crypto";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  MCP_BRIDGE_BINARY
3
- } from "./chunk-SLFABHW3.js";
3
+ } from "./chunk-T55H6YEP.js";
4
4
  import {
5
5
  openCodeConfigDirFrom
6
- } from "./chunk-AHV4LNB5.js";
6
+ } from "./chunk-NOLPURUI.js";
7
7
  import {
8
8
  KEY_FILE_MODE
9
- } from "./chunk-P7WQEVWA.js";
9
+ } from "./chunk-TJMAXQ5Q.js";
10
10
  import {
11
11
  NpmMissingError,
12
12
  codexHomeFrom,
13
13
  resolvePathBinary
14
- } from "./chunk-A2A2YTMG.js";
14
+ } from "./chunk-UPLV5AJF.js";
15
15
  import {
16
16
  readJsonSafe,
17
17
  writeFileAtomic,
@@ -19,10 +19,10 @@ import {
19
19
  } from "./chunk-T7E75EKA.js";
20
20
  import {
21
21
  NPX_LATEST_COMMAND
22
- } from "./chunk-E4FJTUH4.js";
22
+ } from "./chunk-35X5UDML.js";
23
23
  import {
24
24
  HOOK_COMPATIBLE_PROFILES
25
- } from "./chunk-NQTHFF4W.js";
25
+ } from "./chunk-5YY3IJT4.js";
26
26
 
27
27
  // src/hermes-config.ts
28
28
  import { execFileSync } from "child_process";
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  clientErrorKindOf,
3
3
  reportClientError
4
- } from "./chunk-CVQYGMSR.js";
4
+ } from "./chunk-KB2FTO4O.js";
5
5
  import {
6
6
  SubscriptionRequiredError,
7
7
  callMcpTool
8
- } from "./chunk-M5ICYGHT.js";
8
+ } from "./chunk-I4HKMUZQ.js";
9
9
  import {
10
10
  installNetworkDefaults
11
- } from "./chunk-2OY3ZZ5N.js";
11
+ } from "./chunk-2SLCHCVN.js";
12
12
  import {
13
13
  getBaseUrl
14
- } from "./chunk-GPEGOGRJ.js";
14
+ } from "./chunk-ON5JW2HP.js";
15
15
  import {
16
16
  ASK_AGENT_NAME_MAX,
17
17
  ASK_QUESTION_MAX,
18
18
  DECISION_LINE_MAX,
19
19
  truncateLine
20
- } from "./chunk-NQTHFF4W.js";
20
+ } from "./chunk-5YY3IJT4.js";
21
21
 
22
22
  // src/api.ts
23
23
  import { randomUUID } from "crypto";
@@ -3,28 +3,28 @@ import {
3
3
  addPusharyToolPermissions,
4
4
  isPusharyHook,
5
5
  removeClaudeMcpServers
6
- } from "./chunk-AXPCESYO.js";
6
+ } from "./chunk-644AEX4T.js";
7
7
  import {
8
8
  CLAUDE_HOOK_EVENTS,
9
9
  addGeminiMcpServer,
10
10
  removeGeminiMcpServer
11
- } from "./chunk-3EVPNIBE.js";
11
+ } from "./chunk-S2UNQQQS.js";
12
12
  import {
13
13
  CLAUDE_CODE_AGENT,
14
14
  parseApplyPatchFiles
15
- } from "./chunk-CULUZTWQ.js";
15
+ } from "./chunk-F6NTWZZC.js";
16
16
  import {
17
17
  guardBinary,
18
18
  holdBudgetOf,
19
19
  registerHookEntry
20
- } from "./chunk-A2A2YTMG.js";
20
+ } from "./chunk-UPLV5AJF.js";
21
21
  import {
22
22
  PHONE_ANSWERED_TOOLS,
23
23
  hookCompatibleProfile,
24
24
  hookCompatibleProfileBySource,
25
25
  toToolLookup,
26
26
  withHookHoldBudget
27
- } from "./chunk-NQTHFF4W.js";
27
+ } from "./chunk-5YY3IJT4.js";
28
28
 
29
29
  // src/compatible-config.ts
30
30
  import { homedir } from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_LOCATOR_BINARY
3
- } from "./chunk-NQTHFF4W.js";
3
+ } from "./chunk-5YY3IJT4.js";
4
4
 
5
5
  // src/diagnostics/bridge.ts
6
6
  import { execFileSync } from "child_process";
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  SETUP_FLAGS
3
- } from "./chunk-ZVSKMPBZ.js";
3
+ } from "./chunk-DLEKCAQL.js";
4
4
  import {
5
5
  parseFlags
6
6
  } from "./chunk-GMXKITVA.js";
7
7
  import {
8
8
  UsageError
9
9
  } from "./chunk-7QLSKOSU.js";
10
+ import {
11
+ NPX_LATEST_COMMAND
12
+ } from "./chunk-35X5UDML.js";
10
13
  import {
11
14
  CLAUDE_CONNECTOR_GUIDE,
12
15
  CLAUDE_CONNECTOR_STEPS,
@@ -14,7 +17,7 @@ import {
14
17
  CLAUDE_CONNECTOR_URL,
15
18
  COWORK_CONNECTOR_LIMIT,
16
19
  COWORK_STANDING_INSTRUCTIONS
17
- } from "./chunk-NQTHFF4W.js";
20
+ } from "./chunk-5YY3IJT4.js";
18
21
 
19
22
  // src/cli/cowork.ts
20
23
  import { readFileSync } from "fs";
@@ -63,7 +66,7 @@ var coworkOutput = (format) => {
63
66
  if (error.code !== "ENOENT") throw error;
64
67
  }
65
68
  }
66
- throw new Error("Packaged Cowork skill is missing. Reinstall @pushary/agent-hooks.");
69
+ throw new Error(`Packaged Cowork skill is missing. Run ${NPX_LATEST_COMMAND} cowork --skill to read it from a fresh copy.`);
67
70
  }
68
71
  return renderCoworkSetup();
69
72
  };
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  describeKeyCheck,
6
6
  keyCheckFromResponse
7
- } from "./chunk-2ABTSGFT.js";
7
+ } from "./chunk-DVW2MYCM.js";
8
8
  import {
9
9
  EXIT
10
10
  } from "./chunk-KZERVKTD.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  activeHookSource,
3
3
  activeIdentity
4
- } from "./chunk-J5TIV3J6.js";
4
+ } from "./chunk-MOTNSXC3.js";
5
5
  import {
6
6
  defersToNativeMode,
7
7
  reportMachineDenial
8
- } from "./chunk-CJVVKOSR.js";
8
+ } from "./chunk-5DGNEUXK.js";
9
9
  import {
10
10
  isGatingMoment,
11
11
  recordKeylessMoment
12
- } from "./chunk-JU6W3XAU.js";
12
+ } from "./chunk-7ITOAMCD.js";
13
13
  import {
14
14
  announceSubscriptionRequired,
15
15
  denyReasonFrom,
@@ -39,7 +39,7 @@ import {
39
39
  reportEvent,
40
40
  scopePathFor,
41
41
  settleQuestionsForToolUse
42
- } from "./chunk-CULUZTWQ.js";
42
+ } from "./chunk-F6NTWZZC.js";
43
43
  import {
44
44
  DEFAULT_SESSION
45
45
  } from "./chunk-N6IOSZOE.js";
@@ -55,17 +55,20 @@ import {
55
55
  requestGate,
56
56
  sendNotification,
57
57
  waitForQuestion
58
- } from "./chunk-NGDD6TXY.js";
58
+ } from "./chunk-MMVCI6DT.js";
59
59
  import {
60
60
  SubscriptionRequiredError
61
- } from "./chunk-M5ICYGHT.js";
61
+ } from "./chunk-I4HKMUZQ.js";
62
62
  import {
63
63
  getMachineId
64
- } from "./chunk-LXQ5FBBD.js";
64
+ } from "./chunk-4A3UQERT.js";
65
65
  import {
66
66
  getApiKey,
67
67
  getBaseUrl
68
- } from "./chunk-GPEGOGRJ.js";
68
+ } from "./chunk-ON5JW2HP.js";
69
+ import {
70
+ NPX_LATEST_COMMAND
71
+ } from "./chunk-35X5UDML.js";
69
72
  import {
70
73
  AGENT_QUESTION_STRATEGY,
71
74
  GATE_BLOCK_REASON_MAX_LENGTH,
@@ -93,7 +96,7 @@ import {
93
96
  parseAgentQuestions,
94
97
  resolveGate,
95
98
  stoppedOutput
96
- } from "./chunk-NQTHFF4W.js";
99
+ } from "./chunk-5YY3IJT4.js";
97
100
 
98
101
  // src/claude-permission-rules.ts
99
102
  import { readFileSync, statSync } from "fs";
@@ -356,7 +359,7 @@ var announceWait = (waitSeconds, answerUrl, sessionId) => {
356
359
  } catch {
357
360
  }
358
361
  };
359
- var KEYLESS_NOTICE = "[pushary] Not connected (no API key), so your agent runs untouched. Approval moments are counted locally; see them with: npx @pushary/agent-hooks@latest stats. Connect: https://pushary.com/sign-up?utm_source=cli&utm_medium=keyless-hook";
362
+ var KEYLESS_NOTICE = `[pushary] Not connected (no API key), so your agent runs untouched. Approval moments are counted locally; see them with: ${NPX_LATEST_COMMAND} stats. Connect: https://pushary.com/sign-up?utm_source=cli&utm_medium=keyless-hook`;
360
363
  var keylessNoticeOnce = (sessionId) => {
361
364
  try {
362
365
  if (!oncePerSession("keyless", sessionId)) return;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  OPENCODE_APPROVAL_EVENT
4
- } from "./chunk-NQTHFF4W.js";
4
+ } from "./chunk-5YY3IJT4.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
  NPX_LATEST_COMMAND
3
- } from "./chunk-E4FJTUH4.js";
3
+ } from "./chunk-35X5UDML.js";
4
4
 
5
5
  // src/config.ts
6
6
  import { readFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseVersion
3
- } from "./chunk-3EVPNIBE.js";
3
+ } from "./chunk-6ICPEJY5.js";
4
4
 
5
5
  // src/setup/agent-probe.ts
6
6
  import { execSync } from "child_process";
@@ -66,5 +66,6 @@ var readFile = (path) => {
66
66
  var detectClaudeVersion = () => readClaudeVersion({ resolveOnPath: () => onPath("claude"), realpath, readFile });
67
67
 
68
68
  export {
69
+ realpath,
69
70
  detectClaudeVersion
70
71
  };