pushary 1.9.88 → 1.9.89

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 (118) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/{api-BE4B7HBE.js → api-RMTM2T46.js} +9 -9
  3. package/dist/bin/pushary-bell-hook.js +22 -22
  4. package/dist/bin/pushary-bell.js +9 -9
  5. package/dist/bin/pushary-claude.js +23 -23
  6. package/dist/bin/pushary-clean.js +30 -30
  7. package/dist/bin/pushary-codex-bridge.js +19 -19
  8. package/dist/bin/pushary-codex-hook.js +25 -25
  9. package/dist/bin/pushary-codex-session.js +8 -8
  10. package/dist/bin/pushary-codex.js +11 -11
  11. package/dist/bin/pushary-connect.js +23 -23
  12. package/dist/bin/pushary-cowork.js +3 -3
  13. package/dist/bin/pushary-daemon.js +35 -35
  14. package/dist/bin/pushary-disconnect.js +22 -22
  15. package/dist/bin/pushary-display-hook.js +14 -14
  16. package/dist/bin/pushary-doctor.js +36 -36
  17. package/dist/bin/pushary-elicitation-hook.js +22 -22
  18. package/dist/bin/pushary-gemini-bridge.js +14 -14
  19. package/dist/bin/pushary-gemini-hook.js +23 -23
  20. package/dist/bin/pushary-hook.js +25 -25
  21. package/dist/bin/pushary-login.js +18 -18
  22. package/dist/bin/pushary-logout.js +20 -20
  23. package/dist/bin/pushary-mcp.js +10 -10
  24. package/dist/bin/pushary-mode.js +13 -13
  25. package/dist/bin/pushary-notification-hook.js +21 -21
  26. package/dist/bin/pushary-opencode-hook.js +22 -22
  27. package/dist/bin/pushary-permission-denied-hook.js +24 -24
  28. package/dist/bin/pushary-permission-hook.js +24 -24
  29. package/dist/bin/pushary-post-hook.js +21 -21
  30. package/dist/bin/pushary-prompt-hook.js +21 -21
  31. package/dist/bin/pushary-session-end-hook.js +23 -23
  32. package/dist/bin/pushary-session-start-hook.js +31 -31
  33. package/dist/bin/pushary-setup.js +43 -43
  34. package/dist/bin/pushary-stats.js +3 -3
  35. package/dist/bin/pushary-status.js +27 -27
  36. package/dist/bin/pushary-stop-hook.js +21 -21
  37. package/dist/bin/pushary-stopfailure-hook.js +21 -21
  38. package/dist/bin/pushary-suggestions.js +13 -13
  39. package/dist/bin/pushary-transcript-register.js +15 -15
  40. package/dist/bin/pushary-transcripts.js +56 -27
  41. package/dist/bin/pushary-upgrade.js +36 -36
  42. package/dist/bin/pushary-wait.js +13 -13
  43. package/dist/bin/pushary.js +6 -6
  44. package/dist/{chunk-RX5FSSQK.js → chunk-2UQDRCEI.js} +5 -5
  45. package/dist/{chunk-BC2HT6JP.js → chunk-2WRQQTOZ.js} +2 -2
  46. package/dist/{chunk-BOWXZWHG.js → chunk-3YN7TPIQ.js} +6 -6
  47. package/dist/{chunk-PYI2EFRH.js → chunk-4D6PR2MK.js} +5 -5
  48. package/dist/{chunk-WBZA72O5.js → chunk-53CFDLGE.js} +2 -2
  49. package/dist/{chunk-DM5LNEGJ.js → chunk-54RUDSDE.js} +2 -2
  50. package/dist/{chunk-4TT2ZFWZ.js → chunk-55K5ST53.js} +2 -2
  51. package/dist/{chunk-4Z7MR5FE.js → chunk-662O4JBY.js} +3 -3
  52. package/dist/{chunk-DHVVEH2K.js → chunk-CV3ALIG7.js} +7 -7
  53. package/dist/{chunk-6GDZ4RYR.js → chunk-DBWFWMHB.js} +6 -6
  54. package/dist/{chunk-VIDB26GQ.js → chunk-F6WJEBBK.js} +4 -4
  55. package/dist/{chunk-CAXE3TYX.js → chunk-F7FED2QT.js} +5 -5
  56. package/dist/{chunk-ZP5AB6R5.js → chunk-FMOIAZXN.js} +5 -5
  57. package/dist/{chunk-IXOCJHJW.js → chunk-G3GSI7E6.js} +2 -2
  58. package/dist/{chunk-FK2EK27I.js → chunk-H4CKXYWR.js} +2 -2
  59. package/dist/{chunk-JQMOQLM2.js → chunk-IBYD6P5T.js} +141 -90
  60. package/dist/{chunk-STQEIEYJ.js → chunk-IJKSZTFR.js} +1 -1
  61. package/dist/{chunk-JOULYVW6.js → chunk-ILBVL464.js} +1 -1
  62. package/dist/{chunk-NOGDU4XS.js → chunk-JBR2FQKG.js} +1 -1
  63. package/dist/{chunk-MQKXQWXA.js → chunk-JVWD6UWG.js} +1 -1
  64. package/dist/{chunk-NP65LEAY.js → chunk-L4FQ3I7N.js} +1 -1
  65. package/dist/{chunk-OMLR56J5.js → chunk-LC4OFGTU.js} +1 -1
  66. package/dist/{chunk-P4W5TP2X.js → chunk-LVOBBWSN.js} +1 -1
  67. package/dist/{chunk-Z2LYELNQ.js → chunk-M7MVHBKI.js} +2 -2
  68. package/dist/{chunk-LHXJYSNX.js → chunk-MV34QALO.js} +1 -1
  69. package/dist/{chunk-BSTZ66FA.js → chunk-N574OILO.js} +2 -2
  70. package/dist/{chunk-TBPMI4LY.js → chunk-OCRNH4YT.js} +4 -4
  71. package/dist/{chunk-NWLGRSGE.js → chunk-OMS5V4ER.js} +3 -3
  72. package/dist/{chunk-2HTE4ECJ.js → chunk-P6EUHG5X.js} +3 -3
  73. package/dist/{chunk-A2F7T3IR.js → chunk-PF2COPAW.js} +2 -2
  74. package/dist/{chunk-QQCGYHYG.js → chunk-PPJSAS57.js} +2 -2
  75. package/dist/{chunk-FRUKY6KV.js → chunk-R3LNXXPV.js} +2 -2
  76. package/dist/{chunk-RPXPRBBA.js → chunk-R5F2A2IT.js} +1 -1
  77. package/dist/{chunk-KWWHFTNJ.js → chunk-RC65MCPA.js} +2 -1
  78. package/dist/{chunk-2JTWOTOC.js → chunk-RJXWGSXY.js} +1 -1
  79. package/dist/{chunk-M4UXDYNJ.js → chunk-RQGGP52F.js} +4 -4
  80. package/dist/{chunk-6RFDH4JU.js → chunk-SDRHH6LW.js} +1 -1
  81. package/dist/{chunk-3XJL2M7H.js → chunk-SOBEBLLW.js} +4 -4
  82. package/dist/{chunk-DWUD47H5.js → chunk-SUEB56Y4.js} +1 -1
  83. package/dist/{chunk-O53SJBBB.js → chunk-SXELNIYK.js} +3 -3
  84. package/dist/{chunk-3C4UGMIV.js → chunk-TBKO5EOS.js} +3 -3
  85. package/dist/{chunk-LH3SNS6H.js → chunk-TEFWZEL2.js} +9 -9
  86. package/dist/{chunk-B4NVYPX5.js → chunk-TXDXHR2G.js} +1 -1
  87. package/dist/{chunk-N7OMDSXK.js → chunk-U4DG4RC4.js} +2 -2
  88. package/dist/{chunk-QOMIFKQL.js → chunk-UEWTZZY4.js} +3 -3
  89. package/dist/{chunk-2NJNC26C.js → chunk-UYKOZLKX.js} +4 -4
  90. package/dist/{chunk-I6MNMAS7.js → chunk-UYVCRG3J.js} +38 -38
  91. package/dist/{chunk-4PS27SCG.js → chunk-VHO3HV7P.js} +25 -7
  92. package/dist/{chunk-PG5WFIHE.js → chunk-VHQCMNIO.js} +2 -2
  93. package/dist/{chunk-JQPY2B2H.js → chunk-WNW2HFNT.js} +3 -3
  94. package/dist/{chunk-LXFBSMAE.js → chunk-X5MW6LB5.js} +5 -5
  95. package/dist/{chunk-3ZE7VQOU.js → chunk-XGVKU7PM.js} +4 -4
  96. package/dist/{chunk-4C7OJLSL.js → chunk-XLR4QO4R.js} +3 -3
  97. package/dist/{chunk-FUVVGIXZ.js → chunk-XZYUFVUW.js} +5 -5
  98. package/dist/{chunk-ZXDHPPGI.js → chunk-Y7FF5WKE.js} +4 -4
  99. package/dist/{chunk-LAYKEYZE.js → chunk-YCPUVARV.js} +2 -2
  100. package/dist/{chunk-YN4IXOFK.js → chunk-YFNUFWSK.js} +1 -1
  101. package/dist/{chunk-OBS7O22Q.js → chunk-YH2ZWZSG.js} +2 -2
  102. package/dist/{chunk-GJXRYXMC.js → chunk-YKA6HMYO.js} +2 -2
  103. package/dist/{chunk-FFIDXKQ7.js → chunk-YQYCQ2KY.js} +10 -10
  104. package/dist/{chunk-3BG5S7MB.js → chunk-ZOKA75MZ.js} +2 -2
  105. package/dist/{chunk-ZEPS4KIK.js → chunk-ZQMR6OMT.js} +3 -3
  106. package/dist/{codex-app-cards-switch-XLSLVXDP.js → codex-app-cards-switch-BSMP3FMX.js} +10 -10
  107. package/dist/{codex-desktop-launch-HRE6YP56.js → codex-desktop-launch-LZL2LBBZ.js} +1 -1
  108. package/dist/{codex-session-launch-7RGYGW32.js → codex-session-launch-LDY5BQCQ.js} +16 -16
  109. package/dist/{config-ZDOHQUNU.js → config-RTZAI4JI.js} +2 -2
  110. package/dist/{global-upgrade-VR76ZRWG.js → global-upgrade-Y6AEYIJ5.js} +9 -9
  111. package/dist/{identity-NJAXA45Q.js → identity-HKL7Z55E.js} +3 -3
  112. package/dist/{live-capabilities-5UTM55OC.js → live-capabilities-BUP4EEKC.js} +4 -4
  113. package/dist/{paths-BX4DXC3B.js → paths-P5K3AYLX.js} +2 -2
  114. package/dist/{reapply-PMCMNTED.js → reapply-DN4VZ54U.js} +24 -24
  115. package/dist/src/index.js +24 -24
  116. package/dist/{upgrade-lock-2G2S3FH7.js → upgrade-lock-FW74BNQL.js} +3 -3
  117. package/dist/{usage-3EPWR2WQ.js → usage-J2D7WYM4.js} +2 -2
  118. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SESSION
3
- } from "./chunk-DHVVEH2K.js";
3
+ } from "./chunk-CV3ALIG7.js";
4
4
 
5
5
  // src/answer.ts
6
6
  var isDeferAnswer = (value) => value === "defer";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-KWWHFTNJ.js";
3
+ } from "./chunk-RC65MCPA.js";
4
4
 
5
5
  // src/config.ts
6
6
  import { readFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-NOGDU4XS.js";
3
+ } from "./chunk-JBR2FQKG.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -7,7 +7,7 @@ import {
7
7
  recordSealerFor,
8
8
  uploadTranscriptRecords,
9
9
  wrapSessionKey
10
- } from "./chunk-4PS27SCG.js";
10
+ } from "./chunk-VHO3HV7P.js";
11
11
 
12
12
  // src/live-session.ts
13
13
  var MAX_TRANSCRIPT_QUEUE = 100;
@@ -5,12 +5,12 @@ import {
5
5
  hermesAppWiringRecord,
6
6
  hermesConfigReceipt,
7
7
  hermesSetupReceipt
8
- } from "./chunk-NOGDU4XS.js";
8
+ } from "./chunk-JBR2FQKG.js";
9
9
  import {
10
10
  readJsonSafe,
11
11
  resolvePathBinary,
12
12
  writeJsonAtomic
13
- } from "./chunk-QOMIFKQL.js";
13
+ } from "./chunk-UEWTZZY4.js";
14
14
  import {
15
15
  isNewerVersion,
16
16
  isReleaseVersion
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-2HTE4ECJ.js";
3
+ } from "./chunk-P6EUHG5X.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -3,11 +3,11 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-NOGDU4XS.js";
6
+ } from "./chunk-JBR2FQKG.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
10
- } from "./chunk-QOMIFKQL.js";
10
+ } from "./chunk-UEWTZZY4.js";
11
11
  import {
12
12
  CLI_PACKAGE_NAMES,
13
13
  POSIX_GLOBAL_ROOT_SEGMENTS,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  compatibleConfigFile
3
- } from "./chunk-O53SJBBB.js";
3
+ } from "./chunk-SXELNIYK.js";
4
4
  import {
5
5
  hookOwnerOf,
6
6
  hookOwnerOfCommands,
7
7
  liveBridgeProbe,
8
8
  resolveBridgeStub
9
- } from "./chunk-DM5LNEGJ.js";
9
+ } from "./chunk-54RUDSDE.js";
10
10
  import {
11
11
  AGENT_CHOICES
12
12
  } from "./chunk-D7ZJ3AUK.js";
@@ -19,10 +19,10 @@ import {
19
19
  pusharyDir,
20
20
  vscodePluginDir,
21
21
  windowsNodeLauncherFor
22
- } from "./chunk-NOGDU4XS.js";
22
+ } from "./chunk-JBR2FQKG.js";
23
23
  import {
24
24
  readJsonSafe
25
- } from "./chunk-QOMIFKQL.js";
25
+ } from "./chunk-UEWTZZY4.js";
26
26
  import {
27
27
  HOOK_BUDGETS,
28
28
  HOOK_COMPATIBLE_PROFILES,
@@ -9,20 +9,20 @@ import {
9
9
  installedCodexApp,
10
10
  readCodexAppRuntime,
11
11
  shellQuoted
12
- } from "./chunk-GJXRYXMC.js";
12
+ } from "./chunk-YKA6HMYO.js";
13
13
  import {
14
14
  writeHuman
15
15
  } from "./chunk-QCGNGEGE.js";
16
16
  import {
17
17
  xml
18
- } from "./chunk-FUVVGIXZ.js";
18
+ } from "./chunk-XZYUFVUW.js";
19
19
  import {
20
20
  CODEX_APP_LAUNCH_AT_LOGIN_VERB,
21
21
  CODEX_APP_LAUNCH_VARIABLE
22
22
  } from "./chunk-E46NE7FB.js";
23
23
  import {
24
24
  writeFileAtomic
25
- } from "./chunk-QOMIFKQL.js";
25
+ } from "./chunk-UEWTZZY4.js";
26
26
 
27
27
  // src/codex-app-cards-switch.ts
28
28
  import { execFileSync as execFileSync2 } from "child_process";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  resolveInstallSourceFor
3
- } from "./chunk-DWUD47H5.js";
3
+ } from "./chunk-SUEB56Y4.js";
4
4
  import {
5
5
  backupFile,
6
6
  readJsonSafe,
7
7
  writeFileAtomic,
8
8
  writeJsonAtomic
9
- } from "./chunk-QOMIFKQL.js";
9
+ } from "./chunk-UEWTZZY4.js";
10
10
  import {
11
11
  configFilePath
12
- } from "./chunk-NP65LEAY.js";
12
+ } from "./chunk-L4FQ3I7N.js";
13
13
  import {
14
14
  API_KEY_PREFIX_PATTERN,
15
15
  isRecord
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  readExistingMachineId
3
- } from "./chunk-BC2HT6JP.js";
3
+ } from "./chunk-2WRQQTOZ.js";
4
4
  import {
5
5
  getBaseUrl
6
- } from "./chunk-NP65LEAY.js";
6
+ } from "./chunk-L4FQ3I7N.js";
7
7
  import {
8
8
  NetworkError
9
9
  } from "./chunk-PPY5N2E6.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  parseSseMessages
3
- } from "./chunk-ZEPS4KIK.js";
3
+ } from "./chunk-ZQMR6OMT.js";
4
4
  import {
5
5
  NPX_LATEST_COMMAND
6
- } from "./chunk-KWWHFTNJ.js";
6
+ } from "./chunk-RC65MCPA.js";
7
7
 
8
8
  // src/mcp-stdio-bridge.ts
9
9
  var MCP_BRIDGE_BINARY = "pushary-mcp";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  autoUpdateLock
3
- } from "./chunk-NOGDU4XS.js";
3
+ } from "./chunk-JBR2FQKG.js";
4
4
  import {
5
5
  installPackageGlobally,
6
6
  npmErrorMessage,
7
7
  writeJsonAtomic
8
- } from "./chunk-QOMIFKQL.js";
8
+ } from "./chunk-UEWTZZY4.js";
9
9
 
10
10
  // src/upgrade-lock.ts
11
11
  import { fork } from "child_process";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-KWWHFTNJ.js";
6
+ } from "./chunk-RC65MCPA.js";
7
7
  import {
8
8
  getPackageVersion
9
9
  } from "./chunk-ZVU6WMMU.js";
@@ -171,7 +171,8 @@ var COMMAND_OPTIONS = {
171
171
  ["on", "Sync encrypted transcripts from this machine so your phone shows the conversation"],
172
172
  ["off", "Stop syncing transcripts from this machine"],
173
173
  ["status", "Show the pinned keys and their fingerprints (default)"],
174
- ["trust --rotate", "Accept the keys the server is offering now and resume syncing"]
174
+ ["trust --fingerprint <sha256>", "Verify the fingerprint from phone Settings without replacing existing keys"],
175
+ ["trust --rotate", "Clear saved recipient trust (legacy reset)"]
175
176
  ],
176
177
  mode: [
177
178
  ["<mode>", `One of: push_only, push_first, terminal_only, notify_only (Updates only; also: ${UPDATES_ONLY_MODE_INPUTS.join(", ")})`],
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3EGEA4KH.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-NP65LEAY.js";
12
+ } from "./chunk-L4FQ3I7N.js";
13
13
 
14
14
  // src/cli/login-ui.ts
15
15
  import { hostname } from "os";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-TBPMI4LY.js";
3
+ } from "./chunk-OCRNH4YT.js";
4
4
  import {
5
5
  nativeClaudeInstallPath
6
- } from "./chunk-B4NVYPX5.js";
6
+ } from "./chunk-TXDXHR2G.js";
7
7
  import {
8
8
  grokHome
9
- } from "./chunk-O53SJBBB.js";
9
+ } from "./chunk-SXELNIYK.js";
10
10
  import {
11
11
  claudeConfigDir,
12
12
  clineDataDirectory,
13
13
  codexHomeFrom
14
- } from "./chunk-NOGDU4XS.js";
14
+ } from "./chunk-JBR2FQKG.js";
15
15
  import {
16
16
  HOOK_COMPATIBLE_PROFILES
17
17
  } from "./chunk-5TLDFPW6.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  absoluteUrl
3
- } from "./chunk-4TT2ZFWZ.js";
3
+ } from "./chunk-55K5ST53.js";
4
4
  import {
5
5
  KEY_SCOPE
6
6
  } from "./chunk-5TLDFPW6.js";
@@ -6,18 +6,18 @@ import {
6
6
  McpToolError,
7
7
  SubscriptionRequiredError,
8
8
  callMcpTool
9
- } from "./chunk-ZEPS4KIK.js";
9
+ } from "./chunk-ZQMR6OMT.js";
10
10
  import {
11
11
  installNetworkDefaults,
12
12
  isNetworkFailure
13
- } from "./chunk-A2F7T3IR.js";
13
+ } from "./chunk-PF2COPAW.js";
14
14
  import {
15
15
  clientReportClaims
16
- } from "./chunk-NOGDU4XS.js";
16
+ } from "./chunk-JBR2FQKG.js";
17
17
  import {
18
18
  getApiKey,
19
19
  getBaseUrl
20
- } from "./chunk-NP65LEAY.js";
20
+ } from "./chunk-L4FQ3I7N.js";
21
21
  import {
22
22
  ASK_AGENT_NAME_MAX,
23
23
  CLIENT_REPORT_PATH,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  configFilePath
3
- } from "./chunk-NP65LEAY.js";
3
+ } from "./chunk-L4FQ3I7N.js";
4
4
  import {
5
5
  normalizeInstallSource
6
6
  } from "./chunk-5TLDFPW6.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  addGeminiMcpServer,
3
3
  removeGeminiMcpServer
4
- } from "./chunk-DM5LNEGJ.js";
4
+ } from "./chunk-54RUDSDE.js";
5
5
  import {
6
6
  CLAUDE_CODE_AGENT
7
- } from "./chunk-DHVVEH2K.js";
7
+ } from "./chunk-CV3ALIG7.js";
8
8
  import {
9
9
  compatibleToolLookup
10
10
  } from "./chunk-TXJ65MIV.js";
@@ -19,7 +19,7 @@ import {
19
19
  isPusharyHook,
20
20
  registerHookEntry,
21
21
  removeClaudeMcpServers
22
- } from "./chunk-NOGDU4XS.js";
22
+ } from "./chunk-JBR2FQKG.js";
23
23
  import {
24
24
  HOOK_COMPATIBLE_PROFILES,
25
25
  PHONE_ANSWERED_TOOLS,
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  compatibleConfigFile,
3
3
  hasCompatibleHooks
4
- } from "./chunk-O53SJBBB.js";
4
+ } from "./chunk-SXELNIYK.js";
5
5
  import {
6
6
  pusharyHookExecutable
7
- } from "./chunk-DM5LNEGJ.js";
7
+ } from "./chunk-54RUDSDE.js";
8
8
  import {
9
9
  isProtectedByScope,
10
10
  registerHookEntry
11
- } from "./chunk-NOGDU4XS.js";
11
+ } from "./chunk-JBR2FQKG.js";
12
12
  import {
13
13
  isRecord
14
14
  } from "./chunk-5TLDFPW6.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  ensureCodexTrustsPusharyHooks
3
- } from "./chunk-IXOCJHJW.js";
3
+ } from "./chunk-G3GSI7E6.js";
4
4
  import {
5
5
  hermesReceiptPaths,
6
6
  hermesSetupPredatesThePluginFolder,
7
7
  installHermesPlugin,
8
8
  refreshHermesPluginFiles,
9
9
  shippedHermesPlugin
10
- } from "./chunk-Z2LYELNQ.js";
10
+ } from "./chunk-M7MVHBKI.js";
11
11
  import {
12
12
  fxIgnoresInstructionsFile,
13
13
  fxInstructionsBody,
@@ -16,7 +16,7 @@ import {
16
16
  macAppFxBridge,
17
17
  refreshClineKey,
18
18
  switchFxHttpEntryToBridge
19
- } from "./chunk-CAXE3TYX.js";
19
+ } from "./chunk-F7FED2QT.js";
20
20
  import {
21
21
  OPENCODE_HOOK_BINARY,
22
22
  agentHookOwner,
@@ -28,16 +28,16 @@ import {
28
28
  openCodePluginDir,
29
29
  openCodeWired,
30
30
  withOpenCodeAskRules
31
- } from "./chunk-TBPMI4LY.js";
31
+ } from "./chunk-OCRNH4YT.js";
32
32
  import {
33
33
  detectClaudeVersion
34
- } from "./chunk-WBZA72O5.js";
34
+ } from "./chunk-53CFDLGE.js";
35
35
  import {
36
36
  addCompatibleHooks,
37
37
  compatibleConfigFile,
38
38
  compatibleInstructionsFile,
39
39
  hasCompatibleHooks
40
- } from "./chunk-O53SJBBB.js";
40
+ } from "./chunk-SXELNIYK.js";
41
41
  import {
42
42
  GEMINI_HOOK_BINARY,
43
43
  addGeminiHooks,
@@ -49,7 +49,7 @@ import {
49
49
  geminiWired,
50
50
  hasGeminiHooks,
51
51
  planHooks
52
- } from "./chunk-DM5LNEGJ.js";
52
+ } from "./chunk-54RUDSDE.js";
53
53
  import {
54
54
  CLAUDE_HOOK_BINARY,
55
55
  CLAUDE_HOOK_EVENTS,
@@ -95,7 +95,7 @@ import {
95
95
  renderAgentInstructions,
96
96
  supportedClaudeEvents,
97
97
  vscodePluginMcp
98
- } from "./chunk-NOGDU4XS.js";
98
+ } from "./chunk-JBR2FQKG.js";
99
99
  import {
100
100
  formatVersion,
101
101
  hookCommandsUseBareNames,
@@ -104,7 +104,7 @@ import {
104
104
  resolveGlobalBinary,
105
105
  writeFileAtomic,
106
106
  writeJsonAtomic
107
- } from "./chunk-QOMIFKQL.js";
107
+ } from "./chunk-UEWTZZY4.js";
108
108
  import {
109
109
  HOOK_COMPATIBLE_PROFILES,
110
110
  isCompatibleAgentType,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isFile
3
- } from "./chunk-QOMIFKQL.js";
3
+ } from "./chunk-UEWTZZY4.js";
4
4
 
5
5
  // src/claude-native-install.ts
6
6
  import { accessSync, constants } from "fs";
@@ -3,10 +3,10 @@ import {
3
3
  NpmMissingError,
4
4
  NpmPermissionError,
5
5
  writeFileAtomic
6
- } from "./chunk-QOMIFKQL.js";
6
+ } from "./chunk-UEWTZZY4.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-KWWHFTNJ.js";
9
+ } from "./chunk-RC65MCPA.js";
10
10
  import {
11
11
  readSetupAgentFailures
12
12
  } from "./chunk-5TLDFPW6.js";
@@ -471,9 +471,9 @@ var installGlobally = (options) => {
471
471
  }
472
472
  const started = (async () => {
473
473
  if (!npmIsOnPath()) throw new NpmMissingError();
474
- const { withUpgradeLock } = await import("./global-upgrade-VR76ZRWG.js");
475
- const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-2G2S3FH7.js");
476
- const { autoUpdateLock } = await import("./paths-BX4DXC3B.js");
474
+ const { withUpgradeLock } = await import("./global-upgrade-Y6AEYIJ5.js");
475
+ const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-FW74BNQL.js");
476
+ const { autoUpdateLock } = await import("./paths-P5K3AYLX.js");
477
477
  let result = "skipped";
478
478
  const install = async () => {
479
479
  const platform = process.platform;
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  macAppBridgeAvailable
3
- } from "./chunk-TBPMI4LY.js";
3
+ } from "./chunk-OCRNH4YT.js";
4
4
  import {
5
5
  keyPrefix
6
- } from "./chunk-2HTE4ECJ.js";
6
+ } from "./chunk-P6EUHG5X.js";
7
7
  import {
8
8
  bridgeAgentKey
9
- } from "./chunk-NOGDU4XS.js";
9
+ } from "./chunk-JBR2FQKG.js";
10
10
  import {
11
11
  readJsonSafe
12
- } from "./chunk-QOMIFKQL.js";
12
+ } from "./chunk-UEWTZZY4.js";
13
13
  import {
14
14
  isRecord,
15
15
  isValidApiKey
@@ -3,7 +3,40 @@ import {
3
3
  } from "./chunk-XMSDA5WA.js";
4
4
  import {
5
5
  writeJsonAtomic
6
- } from "./chunk-QOMIFKQL.js";
6
+ } from "./chunk-UEWTZZY4.js";
7
+
8
+ // src/transcript-read-positions.ts
9
+ import { lstatSync, readFileSync } from "fs";
10
+ var OWNER_ONLY_FILE_MODE = 384;
11
+ var MAXIMUM_READ_POSITIONS_BYTES = 4 * 1024 * 1024;
12
+ var transcriptReadPositionSchema = external_exports.object({
13
+ identity: external_exports.string().nullable(),
14
+ offset: external_exports.number().int().nonnegative(),
15
+ startedBeforeEpoch: external_exports.boolean()
16
+ });
17
+ var savedReadPositionsSchema = external_exports.object({ positions: external_exports.record(external_exports.string(), transcriptReadPositionSchema) });
18
+ var ownedOnlyByThisUser = (info) => !process.getuid || info.uid === process.getuid() && (info.mode & 511) === OWNER_ONLY_FILE_MODE;
19
+ var readOwnerOnlyJson = (path, maximumBytes) => {
20
+ const info = lstatSync(path);
21
+ if (!info.isFile() || info.nlink !== 1 || !ownedOnlyByThisUser(info) || info.size > maximumBytes) return null;
22
+ return JSON.parse(readFileSync(path, "utf8"));
23
+ };
24
+ var savedTranscriptReadPositions = (file) => ({
25
+ load: () => {
26
+ try {
27
+ return new Map(Object.entries(savedReadPositionsSchema.parse(readOwnerOnlyJson(file, MAXIMUM_READ_POSITIONS_BYTES)).positions));
28
+ } catch {
29
+ return /* @__PURE__ */ new Map();
30
+ }
31
+ },
32
+ save: (positions) => {
33
+ try {
34
+ writeJsonAtomic(file, { positions: Object.fromEntries(positions) }, OWNER_ONLY_FILE_MODE);
35
+ } catch {
36
+ return;
37
+ }
38
+ }
39
+ });
7
40
 
8
41
  // ../contracts/src/billing.ts
9
42
  var PARTNER_SELF_SERVE_PLANS = ["partner_launch", "partner_growth", "partner_scale"];
@@ -239,44 +272,11 @@ var PLAN_CONFIGS = {
239
272
  }
240
273
  };
241
274
 
242
- // src/transcript-read-positions.ts
243
- import { lstatSync, readFileSync } from "fs";
244
- var OWNER_ONLY_FILE_MODE = 384;
245
- var MAXIMUM_READ_POSITIONS_BYTES = 4 * 1024 * 1024;
246
- var transcriptReadPositionSchema = external_exports.object({
247
- identity: external_exports.string().nullable(),
248
- offset: external_exports.number().int().nonnegative(),
249
- startedBeforeEpoch: external_exports.boolean()
250
- });
251
- var savedReadPositionsSchema = external_exports.object({ positions: external_exports.record(external_exports.string(), transcriptReadPositionSchema) });
252
- var ownedOnlyByThisUser = (info) => !process.getuid || info.uid === process.getuid() && (info.mode & 511) === OWNER_ONLY_FILE_MODE;
253
- var readOwnerOnlyJson = (path, maximumBytes) => {
254
- const info = lstatSync(path);
255
- if (!info.isFile() || info.nlink !== 1 || !ownedOnlyByThisUser(info) || info.size > maximumBytes) return null;
256
- return JSON.parse(readFileSync(path, "utf8"));
257
- };
258
- var savedTranscriptReadPositions = (file) => ({
259
- load: () => {
260
- try {
261
- return new Map(Object.entries(savedReadPositionsSchema.parse(readOwnerOnlyJson(file, MAXIMUM_READ_POSITIONS_BYTES)).positions));
262
- } catch {
263
- return /* @__PURE__ */ new Map();
264
- }
265
- },
266
- save: (positions) => {
267
- try {
268
- writeJsonAtomic(file, { positions: Object.fromEntries(positions) }, OWNER_ONLY_FILE_MODE);
269
- } catch {
270
- return;
271
- }
272
- }
273
- });
274
-
275
275
  export {
276
- PLAN_TYPES,
277
- SESSION_HISTORY_RETENTION_DAYS,
278
- PLAN_CONFIGS,
279
276
  transcriptReadPositionSchema,
280
277
  readOwnerOnlyJson,
281
- savedTranscriptReadPositions
278
+ savedTranscriptReadPositions,
279
+ PLAN_TYPES,
280
+ SESSION_HISTORY_RETENTION_DAYS,
281
+ PLAN_CONFIGS
282
282
  };
@@ -1,6 +1,9 @@
1
+ import {
2
+ external_exports
3
+ } from "./chunk-XMSDA5WA.js";
1
4
  import {
2
5
  getBaseUrl
3
- } from "./chunk-NP65LEAY.js";
6
+ } from "./chunk-L4FQ3I7N.js";
4
7
  import {
5
8
  compressTranscriptRecord,
6
9
  redactSecretsFromContent,
@@ -8,8 +11,21 @@ import {
8
11
  } from "./chunk-5TLDFPW6.js";
9
12
 
10
13
  // src/transcript-api.ts
14
+ var providerRecipientSchema = external_exports.object({
15
+ required: external_exports.boolean(),
16
+ keyId: external_exports.string().min(1),
17
+ publicKey: external_exports.string().min(1)
18
+ });
19
+ var transcriptAccountSchema = external_exports.object({
20
+ siteId: external_exports.unknown().optional(),
21
+ publicKey: external_exports.unknown().optional(),
22
+ readsCompressedRecords: external_exports.unknown().optional(),
23
+ readsTranscriptRevisions: external_exports.unknown().optional(),
24
+ providerRecovery: external_exports.unknown().optional(),
25
+ sessionHistory: external_exports.unknown().optional()
26
+ });
11
27
  var retentionDaysOf = (sessionHistory) => {
12
- if (sessionHistory === null || typeof sessionHistory !== "object") return null;
28
+ if (sessionHistory === null || typeof sessionHistory !== "object" || !("retentionDays" in sessionHistory)) return null;
13
29
  const days = sessionHistory.retentionDays;
14
30
  return typeof days === "number" && Number.isInteger(days) && days > 0 ? days : null;
15
31
  };
@@ -21,7 +37,7 @@ var fetchTranscriptRecipients = async (apiKey, baseUrl = getBaseUrl(), unavailab
21
37
  signal: AbortSignal.timeout(5e3)
22
38
  });
23
39
  if (!res.ok) return null;
24
- const data = await res.json();
40
+ const data = transcriptAccountSchema.parse(await res.json());
25
41
  if (data.sessionHistory && typeof data.sessionHistory === "object" && "enabled" in data.sessionHistory && data.sessionHistory.enabled === false) {
26
42
  unavailable?.("off_for_workspace");
27
43
  return null;
@@ -30,16 +46,18 @@ var fetchTranscriptRecipients = async (apiKey, baseUrl = getBaseUrl(), unavailab
30
46
  unavailable?.("waiting_for_phone_key");
31
47
  return null;
32
48
  }
49
+ const siteId = typeof data.siteId === "string" ? data.siteId : void 0;
33
50
  const phoneReadsTranscriptRevisions = data.readsTranscriptRevisions === true;
34
51
  const phoneReadsCompressedRecords = data.readsCompressedRecords === true;
35
52
  const retentionDays = retentionDaysOf(data.sessionHistory);
36
53
  if (data.providerRecovery === void 0 || data.providerRecovery === null) {
37
- return { phonePublicKey: data.publicKey, phoneReadsCompressedRecords, phoneReadsTranscriptRevisions, provider: null, retentionDays };
54
+ return { ...siteId ? { siteId } : {}, phonePublicKey: data.publicKey, phoneReadsCompressedRecords, phoneReadsTranscriptRevisions, provider: null, retentionDays };
38
55
  }
39
- if (typeof data.providerRecovery !== "object") return null;
40
- const provider = data.providerRecovery;
41
- if (typeof provider.required !== "boolean" || typeof provider.keyId !== "string" || provider.keyId.length === 0 || typeof provider.publicKey !== "string" || provider.publicKey.length === 0) return null;
56
+ const parsedProvider = providerRecipientSchema.safeParse(data.providerRecovery);
57
+ if (!parsedProvider.success) return null;
58
+ const provider = parsedProvider.data;
42
59
  return {
60
+ ...siteId ? { siteId } : {},
43
61
  phonePublicKey: data.publicKey,
44
62
  phoneReadsCompressedRecords,
45
63
  phoneReadsTranscriptRevisions,
@@ -4,10 +4,10 @@ import {
4
4
  keyPrefix,
5
5
  readConfigFileKey,
6
6
  readMacAppKeyPrefix
7
- } from "./chunk-2HTE4ECJ.js";
7
+ } from "./chunk-P6EUHG5X.js";
8
8
  import {
9
9
  NPX_LATEST_COMMAND
10
- } from "./chunk-KWWHFTNJ.js";
10
+ } from "./chunk-RC65MCPA.js";
11
11
 
12
12
  // src/key-signed-out.ts
13
13
  var VERDICT_BY_CHECK = {
@@ -12,7 +12,7 @@ import {
12
12
  reachVerdict,
13
13
  reachesYou,
14
14
  verifyDelivery
15
- } from "./chunk-ZP5AB6R5.js";
15
+ } from "./chunk-FMOIAZXN.js";
16
16
  import {
17
17
  humanIsTty,
18
18
  writeHuman
@@ -24,10 +24,10 @@ import {
24
24
  } from "./chunk-FO3MDD26.js";
25
25
  import {
26
26
  reportedInstallSource
27
- } from "./chunk-DWUD47H5.js";
27
+ } from "./chunk-SUEB56Y4.js";
28
28
  import {
29
29
  NPX_LATEST_COMMAND
30
- } from "./chunk-KWWHFTNJ.js";
30
+ } from "./chunk-RC65MCPA.js";
31
31
  import {
32
32
  NO_PAIRING_COMPUTER,
33
33
  PAIR_TTL_SECONDS