pushary 1.9.136 → 1.9.138

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 (109) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{api-5H25QRNM.js → api-J4XJ7XWW.js} +9 -9
  3. package/dist/bin/pushary-audit.js +3 -3
  4. package/dist/bin/pushary-bell-hook.js +19 -19
  5. package/dist/bin/pushary-bell.js +7 -7
  6. package/dist/bin/pushary-claude.js +23 -23
  7. package/dist/bin/pushary-clean.js +34 -34
  8. package/dist/bin/pushary-codex-bridge.js +15 -15
  9. package/dist/bin/pushary-codex-hook.js +30 -30
  10. package/dist/bin/pushary-codex-session.js +6 -6
  11. package/dist/bin/pushary-codex.js +11 -11
  12. package/dist/bin/pushary-connect.js +23 -23
  13. package/dist/bin/pushary-daemon-supervisor.js +91 -12
  14. package/dist/bin/pushary-daemon.js +35 -35
  15. package/dist/bin/pushary-disconnect.js +23 -23
  16. package/dist/bin/pushary-display-hook.js +45 -24
  17. package/dist/bin/pushary-doctor.js +49 -45
  18. package/dist/bin/pushary-elicitation-hook.js +20 -20
  19. package/dist/bin/pushary-gemini-bridge.js +6 -6
  20. package/dist/bin/pushary-gemini-hook.js +23 -23
  21. package/dist/bin/pushary-hook.js +25 -25
  22. package/dist/bin/pushary-login.js +17 -17
  23. package/dist/bin/pushary-logout.js +21 -21
  24. package/dist/bin/pushary-mcp.js +11 -11
  25. package/dist/bin/pushary-mode.js +12 -12
  26. package/dist/bin/pushary-notification-hook.js +19 -19
  27. package/dist/bin/pushary-opencode-hook.js +22 -22
  28. package/dist/bin/pushary-permission-denied-hook.js +25 -25
  29. package/dist/bin/pushary-permission-hook.js +25 -25
  30. package/dist/bin/pushary-post-hook.js +20 -20
  31. package/dist/bin/pushary-prompt-hook.js +19 -19
  32. package/dist/bin/pushary-session-end-hook.js +19 -19
  33. package/dist/bin/pushary-session-start-hook.js +28 -28
  34. package/dist/bin/pushary-setup.js +54 -52
  35. package/dist/bin/pushary-status.js +27 -27
  36. package/dist/bin/pushary-stop-hook.js +19 -19
  37. package/dist/bin/pushary-stopfailure-hook.js +19 -19
  38. package/dist/bin/pushary-suggestions.js +12 -12
  39. package/dist/bin/pushary-transcript-register.js +9 -9
  40. package/dist/bin/pushary-transcripts.js +19 -19
  41. package/dist/bin/pushary-upgrade.js +37 -37
  42. package/dist/bin/pushary-wait.js +12 -12
  43. package/dist/bin/pushary.js +6 -6
  44. package/dist/{chunk-ICCM3DLT.js → chunk-33E75LIY.js} +1 -1
  45. package/dist/{chunk-IHAKBLW2.js → chunk-42BVIKPZ.js} +3 -3
  46. package/dist/{chunk-3QBI5C6P.js → chunk-52B2TQJM.js} +1 -1
  47. package/dist/{chunk-NZD6ISCL.js → chunk-5ZK4RHYR.js} +1 -1
  48. package/dist/{chunk-FAF5RDWT.js → chunk-6TK3DWSF.js} +293 -48
  49. package/dist/{chunk-DBIPNY7J.js → chunk-7WR3FDDX.js} +2 -2
  50. package/dist/{chunk-6SWFS4GU.js → chunk-AGVE7MXF.js} +2 -2
  51. package/dist/{chunk-43DT3QWZ.js → chunk-APTNHX63.js} +3 -3
  52. package/dist/{chunk-L2GADKFL.js → chunk-B3AZPYRU.js} +6 -6
  53. package/dist/chunk-B4UIRMOE.js +31 -0
  54. package/dist/{chunk-JZJ5CM6X.js → chunk-CBTXOWB3.js} +3 -3
  55. package/dist/{chunk-A7R43KOX.js → chunk-CULDO4UA.js} +2 -2
  56. package/dist/{chunk-YHX5YF77.js → chunk-DES272QQ.js} +3 -3
  57. package/dist/{chunk-WXUEOHYY.js → chunk-DK6CMXYI.js} +5 -5
  58. package/dist/{chunk-VV7WRIQT.js → chunk-DMZMPYLB.js} +2 -2
  59. package/dist/{chunk-WNT4JHK3.js → chunk-EHQCMJHI.js} +1 -1
  60. package/dist/{chunk-V7ZY7P2X.js → chunk-EJSU5YWO.js} +3 -3
  61. package/dist/{chunk-HKJLPVPZ.js → chunk-FJ7OESWX.js} +3 -3
  62. package/dist/{chunk-2R4OVJHS.js → chunk-FO5MHOBI.js} +4 -4
  63. package/dist/{chunk-NN43KGTN.js → chunk-FQ3ASV5L.js} +3 -3
  64. package/dist/{chunk-GS5FH3C2.js → chunk-FYLYAVQG.js} +2 -2
  65. package/dist/{chunk-2MVKT7KH.js → chunk-H5XLVJI7.js} +1 -1
  66. package/dist/{chunk-UP5QXEUU.js → chunk-HVRXBHX2.js} +2 -2
  67. package/dist/{chunk-VBWJ756P.js → chunk-ICQU3SNR.js} +3 -3
  68. package/dist/{chunk-2XDVEBHI.js → chunk-IDGWQY3J.js} +4 -4
  69. package/dist/{chunk-L7Q57R4J.js → chunk-JFGM6VSU.js} +3 -3
  70. package/dist/{chunk-RPFSVNH6.js → chunk-KN4YJ4QS.js} +2 -2
  71. package/dist/{chunk-Q2VV77IY.js → chunk-KXKE3SW3.js} +4 -4
  72. package/dist/{chunk-MQ3I5OIC.js → chunk-L3UV4LLL.js} +7 -7
  73. package/dist/{chunk-D7AAAD6W.js → chunk-LF3ZRLUQ.js} +8 -8
  74. package/dist/{chunk-YURIU333.js → chunk-LIUWN23V.js} +4 -4
  75. package/dist/{chunk-54TZGPZP.js → chunk-LIZEMDE4.js} +1 -1
  76. package/dist/{chunk-G73ACPR2.js → chunk-LPXHKIJC.js} +1 -1
  77. package/dist/{chunk-2E46RALI.js → chunk-NIBF37NU.js} +2 -2
  78. package/dist/{chunk-EJHD44ZN.js → chunk-NLJ2ILA7.js} +1 -1
  79. package/dist/{chunk-3HXOR6E5.js → chunk-NNDUDXOJ.js} +9 -9
  80. package/dist/{chunk-H2RE3IPK.js → chunk-NUG2A73X.js} +1 -1
  81. package/dist/{chunk-62GD26OE.js → chunk-O26H5X5M.js} +2 -2
  82. package/dist/{chunk-POV2TBFA.js → chunk-OAGYR5LI.js} +9 -9
  83. package/dist/{chunk-4T72AHIA.js → chunk-OXPYENHL.js} +1 -1
  84. package/dist/{chunk-EQZB5P6I.js → chunk-P6HLLS5J.js} +2 -2
  85. package/dist/{chunk-ZWLSXECG.js → chunk-P7YVVWTW.js} +1 -1
  86. package/dist/{chunk-TLK5YLIE.js → chunk-PNDL3OMR.js} +2 -2
  87. package/dist/{chunk-A4YOXS24.js → chunk-PPCZSOCL.js} +2 -2
  88. package/dist/{chunk-KLV2NQVT.js → chunk-S47AAQFT.js} +2 -2
  89. package/dist/{chunk-PHA6AFOR.js → chunk-SNMTACCY.js} +4 -4
  90. package/dist/{chunk-VO77WHK4.js → chunk-TJCUGBCZ.js} +5 -5
  91. package/dist/{chunk-R7KC57PC.js → chunk-TN5PGMH5.js} +1 -1
  92. package/dist/{chunk-O5T53LZ5.js → chunk-TXPXK5Q6.js} +10 -10
  93. package/dist/{chunk-ZWIJJYN3.js → chunk-VF4N6NHG.js} +3 -3
  94. package/dist/{chunk-HY4ATVCT.js → chunk-VQMGR32B.js} +1 -1
  95. package/dist/{chunk-LAWI6NQK.js → chunk-WHOFZB5W.js} +1 -1
  96. package/dist/{chunk-J42EAEX3.js → chunk-XR27HPYC.js} +2 -1
  97. package/dist/{codex-app-cards-switch-Z7TMF2OR.js → codex-app-cards-switch-R3MIDYFA.js} +6 -6
  98. package/dist/{codex-desktop-launch-HKXGKL3T.js → codex-desktop-launch-2YRIBVDK.js} +1 -1
  99. package/dist/{codex-session-launch-DTGH7ZKM.js → codex-session-launch-CTMTMGHU.js} +15 -15
  100. package/dist/{global-upgrade-5UAH5DCG.js → global-upgrade-NMTIVAJ3.js} +8 -8
  101. package/dist/{identity-UFJEWGEU.js → identity-3XKATUN2.js} +3 -3
  102. package/dist/{live-capabilities-BL3SHFWX.js → live-capabilities-MR35FXPF.js} +3 -3
  103. package/dist/paths-YA5ROXGC.js +2 -2
  104. package/dist/{reapply-OPQF4DPQ.js → reapply-LIBOIVBT.js} +23 -23
  105. package/dist/src/index.js +25 -25
  106. package/dist/{upgrade-lock-AZLOOGKV.js → upgrade-lock-LK4XD3HR.js} +3 -3
  107. package/package.json +1 -1
  108. package/dist/bin/pushary-daemon-supervisor.d.ts +0 -1
  109. package/dist/chunk-GACQSKNG.js +0 -75
@@ -2911,8 +2911,8 @@ import { join as join3 } from "path";
2911
2911
  init_fsx();
2912
2912
  init_paths();
2913
2913
  import { createHash as createHash10 } from "crypto";
2914
- import { lstatSync as lstatSync5, readFileSync as readFileSync18, readdirSync as readdirSync2, realpathSync as realpathSync4, statSync as statSync5, unlinkSync as unlinkSync5 } from "fs";
2915
- import { basename as basename2, dirname as dirname8, isAbsolute, join as join19, relative, resolve as resolve3, sep } from "path";
2914
+ import { lstatSync as lstatSync5, readFileSync as readFileSync19, readdirSync as readdirSync2, realpathSync as realpathSync4, statSync as statSync5, unlinkSync as unlinkSync5 } from "fs";
2915
+ import { basename as basename3, dirname as dirname9, isAbsolute, join as join21, relative, resolve as resolve3, sep } from "path";
2916
2916
 
2917
2917
  // src/transcript-phone-trust.ts
2918
2918
  import { createHash as createHash5 } from "crypto";
@@ -7623,8 +7623,8 @@ var hookOwnerOfCommands = (commands, appAvailable = true) => {
7623
7623
 
7624
7624
  // src/daemon-lifecycle.ts
7625
7625
  init_src();
7626
- import { dirname as dirname7, join as join18, win32 as win32Path } from "path";
7627
- import { existsSync as existsSync6, mkdirSync as mkdirSync6, readFileSync as readFileSync17, realpathSync as realpathSync3, renameSync as renameSync3, statSync as statSync4, unlinkSync as unlinkSync4, writeFileSync as writeFileSync5 } from "fs";
7626
+ import { dirname as dirname8, join as join20, win32 as win32Path } from "path";
7627
+ import { existsSync as existsSync6, mkdirSync as mkdirSync7, readFileSync as readFileSync18, realpathSync as realpathSync3, renameSync as renameSync3, statSync as statSync4, unlinkSync as unlinkSync4, writeFileSync as writeFileSync5 } from "fs";
7628
7628
  import { createHash as createHash9, randomUUID as randomUUID3 } from "crypto";
7629
7629
  import { homedir as homedir8, uptime, userInfo } from "os";
7630
7630
 
@@ -7649,11 +7649,32 @@ import { win32 as win323 } from "path";
7649
7649
  // src/daemon-lifecycle.ts
7650
7650
  init_npm();
7651
7651
  init_cli_package_name();
7652
- init_global_package();
7653
7652
  import { execFileSync as execFileSync3 } from "child_process";
7653
+
7654
+ // src/daemon-entry-guard.ts
7655
+ init_fsx();
7656
+ import { mkdirSync as mkdirSync6, readFileSync as readFileSync17 } from "fs";
7657
+ import { basename, dirname as dirname7, join as join18 } from "path";
7658
+ var DAEMON_ENTRY_GUARD_SOURCE = [
7659
+ "const { existsSync } = require('node:fs')",
7660
+ "if (process.argv[1] && !existsSync(process.argv[1])) process.exit(0)",
7661
+ ""
7662
+ ].join("\n");
7663
+
7664
+ // src/daemon-supervisor.ts
7665
+ import { join as join19 } from "path";
7666
+ var SUPERVISOR_LAUNCH_FLAG = "--launch";
7667
+
7668
+ // src/daemon-lifecycle.ts
7669
+ init_global_package();
7654
7670
  var DAEMON_LEASE_RENEW_INTERVAL_MS = 3e4;
7655
7671
  var LOCAL_LEASE_TIMEOUT_MS = DAEMON_LEASE_RENEW_INTERVAL_MS * 3;
7656
7672
  var DAEMON_YIELD_CHECK_INTERVAL_MS = 2e3;
7673
+ var WINDOWS_TASK_NAME = "Pushary Daemon";
7674
+ var POWERSHELL_SINGLE_QUOTES = /['\u2018\u2019\u201A\u201B]/g;
7675
+ var powershellLiteral = (value) => `'${value.replace(POWERSHELL_SINGLE_QUOTES, (quote) => quote + quote)}'`;
7676
+ var WINDOWS_TASK_LOOKUP = `$task = @(Get-ScheduledTask -ErrorAction Stop) | Where-Object { $_.TaskName -eq ${powershellLiteral(WINDOWS_TASK_NAME)} -and $_.TaskPath -eq '\\' } | Select-Object -First 1; if ($null -eq $task) { exit 3 }`;
7677
+ var powershellCommandLineEndsWithLaunchFlag = `$_.CommandLine.TrimEnd().TrimEnd([char]34).EndsWith(${powershellLiteral(SUPERVISOR_LAUNCH_FLAG)})`;
7657
7678
  var HANDOFF_WAIT_FLOOR_MS = DAEMON_YIELD_CHECK_INTERVAL_MS * 2;
7658
7679
 
7659
7680
  // src/transcript-registration.ts
@@ -7701,7 +7722,7 @@ var firstString = (...values) => values.find((v) => typeof v === "string" && v.l
7701
7722
  // ../hook-mapping/src/map.ts
7702
7723
  init_src();
7703
7724
  init_src();
7704
- import { basename } from "path";
7725
+ import { basename as basename2 } from "path";
7705
7726
  var AGENT_IDENTITIES = {
7706
7727
  claude: { type: "claude_code", label: AGENT_LABELS_BY_TYPE.claude_code },
7707
7728
  codex: { type: "codex", label: AGENT_LABELS_BY_TYPE.codex },
@@ -7824,18 +7845,18 @@ var storedRegistrationSchema = external_exports.object({
7824
7845
  endedAt: external_exports.number().positive().optional(),
7825
7846
  drained: external_exports.boolean().optional()
7826
7847
  });
7827
- var defaultRegistryDirectory = () => process.env.PUSHARY_TRANSCRIPT_REGISTRY_DIR || join19(pusharyDir(), "transcript-capture");
7848
+ var defaultRegistryDirectory = () => process.env.PUSHARY_TRANSCRIPT_REGISTRY_DIR || join21(pusharyDir(), "transcript-capture");
7828
7849
  var cliRegistry = (apiKey = getApiKey()) => ({ apiKey, baseUrl: getBaseUrl(), directory: defaultRegistryDirectory() });
7829
7850
  var accountFor = (registry) => createHash10("sha256").update(`${registry.baseUrl}\0${registry.apiKey}`).digest("hex");
7830
7851
  var TTL = 48 * 60 * 60 * 1e3;
7831
7852
  var read = (path) => {
7832
7853
  if (statSync5(path).size > 16384) throw new Error("History registration exceeds its size limit");
7833
- return storedRegistrationSchema.parse(JSON.parse(readFileSync18(path, "utf8")));
7854
+ return storedRegistrationSchema.parse(JSON.parse(readFileSync19(path, "utf8")));
7834
7855
  };
7835
7856
  var consent = (record) => record.consentOverride ?? readTranscriptPreference() ?? true;
7836
7857
  var withoutTrailingSlash = (url) => url.replace(/\/+$/, "");
7837
7858
  var sameServer = (url, registry) => withoutTrailingSlash(url) === withoutTrailingSlash(registry.baseUrl);
7838
- var fileFor3 = (registry, sessionId) => join19(registry.directory, `${createHash10("sha256").update(accountFor(registry) + sessionId).digest("hex")}.json`);
7859
+ var fileFor3 = (registry, sessionId) => join21(registry.directory, `${createHash10("sha256").update(accountFor(registry) + sessionId).digest("hex")}.json`);
7839
7860
  var permitted = (registry, raw2) => raw2.account === accountFor(registry) && consent(raw2) && !raw2.drained && (raw2.source !== "claude" || !!raw2.expectedSiteId || !macOwnsClaudeHooks(raw2.cwd)) && (!raw2.expectedSiteId || raw2.expectedSiteId === raw2.verifiedSiteId && !!raw2.expectedBaseUrl && sameServer(raw2.expectedBaseUrl, registry));
7840
7861
  var registeredTranscriptEnabled = (apiKey, sessionId, registry = cliRegistry(apiKey)) => {
7841
7862
  try {
@@ -7845,12 +7866,12 @@ var registeredTranscriptEnabled = (apiKey, sessionId, registry = cliRegistry(api
7845
7866
  }
7846
7867
  };
7847
7868
  var macOwnsClaudeHooks = (cwd) => [
7848
- join19(claudeConfigDir(), "settings.json"),
7849
- join19(cwd, ".claude", "settings.json"),
7850
- join19(cwd, ".claude", "settings.local.json")
7869
+ join21(claudeConfigDir(), "settings.json"),
7870
+ join21(cwd, ".claude", "settings.json"),
7871
+ join21(cwd, ".claude", "settings.local.json")
7851
7872
  ].some((path) => {
7852
7873
  try {
7853
- return hookOwnerOf(JSON.parse(readFileSync18(path, "utf8"))) === "app";
7874
+ return hookOwnerOf(JSON.parse(readFileSync19(path, "utf8"))) === "app";
7854
7875
  } catch {
7855
7876
  return false;
7856
7877
  }
@@ -7858,22 +7879,22 @@ var macOwnsClaudeHooks = (cwd) => [
7858
7879
  var TRANSCRIPT_ROOT_NAME = { claude: "projects", codex: "sessions", gemini: "tmp", cursor: "projects", hermes: "hermes-history" };
7859
7880
  var transcriptRoots = (source) => {
7860
7881
  const home = homedir9();
7861
- if (source === "codex") return [join19(codexHome(), TRANSCRIPT_ROOT_NAME.codex)];
7862
- if (source === "cursor") return [join19(home, ".cursor", TRANSCRIPT_ROOT_NAME.cursor)];
7863
- if (source === "hermes") return [join19(home, ".pushary", TRANSCRIPT_ROOT_NAME.hermes)];
7864
- if (source === "gemini") return [join19(process.env.GEMINI_CLI_HOME || home, ".gemini", "tmp"), join19(home, ".cache", ".gemini", "tmp")];
7882
+ if (source === "codex") return [join21(codexHome(), TRANSCRIPT_ROOT_NAME.codex)];
7883
+ if (source === "cursor") return [join21(home, ".cursor", TRANSCRIPT_ROOT_NAME.cursor)];
7884
+ if (source === "hermes") return [join21(home, ".pushary", TRANSCRIPT_ROOT_NAME.hermes)];
7885
+ if (source === "gemini") return [join21(process.env.GEMINI_CLI_HOME || home, ".gemini", "tmp"), join21(home, ".cache", ".gemini", "tmp")];
7865
7886
  const configured = process.env.CLAUDE_CONFIG_DIR;
7866
- return [join19(configured || join19(home, ".claude"), TRANSCRIPT_ROOT_NAME.claude), join19(home, ".claude", TRANSCRIPT_ROOT_NAME.claude)];
7887
+ return [join21(configured || join21(home, ".claude"), TRANSCRIPT_ROOT_NAME.claude), join21(home, ".claude", TRANSCRIPT_ROOT_NAME.claude)];
7867
7888
  };
7868
- var isAgentTranscriptRoot = (root, source) => isAbsolute(root) && resolve3(root) === root && basename2(root) === TRANSCRIPT_ROOT_NAME[source];
7889
+ var isAgentTranscriptRoot = (root, source) => isAbsolute(root) && resolve3(root) === root && basename3(root) === TRANSCRIPT_ROOT_NAME[source];
7869
7890
  var acceptedTranscriptRoots = (source, registeredRoot) => typeof registeredRoot === "string" && isAgentTranscriptRoot(registeredRoot, source) ? [...transcriptRoots(source), registeredRoot] : transcriptRoots(source);
7870
7891
  var resolvedSourcePath = (path) => {
7871
7892
  const absolute = resolve3(path);
7872
7893
  try {
7873
7894
  return realpathSync4(absolute);
7874
7895
  } catch {
7875
- const parent = dirname8(absolute);
7876
- return parent === absolute ? absolute : join19(resolvedSourcePath(parent), basename2(absolute));
7896
+ const parent = dirname9(absolute);
7897
+ return parent === absolute ? absolute : join21(resolvedSourcePath(parent), basename3(absolute));
7877
7898
  }
7878
7899
  };
7879
7900
  var transcriptRootContaining = (candidate, roots) => {
@@ -7891,9 +7912,9 @@ var captureRegistration = (source, value, registeredRoot) => {
7891
7912
  const root = transcriptRootContaining(path, acceptedTranscriptRoots(source, registeredRoot));
7892
7913
  if (root === null) return null;
7893
7914
  const segments = relative(root, path).split(sep);
7894
- if (source === "hermes" && (segments.length !== 2 || !/^[a-f0-9]{64}$/.test(segments[0] ?? "") || basename2(path) !== `${sessionId}.json`)) return null;
7895
- if (source === "gemini" && (segments.length !== 3 || segments[1] !== "chats" || !basename2(path).startsWith("session-"))) return null;
7896
- if (source === "cursor" && (segments[1] !== "agent-transcripts" || basename2(path) !== `${sessionId}.jsonl` || !(segments.length === 3 || segments.length === 4 && basename2(dirname8(path)) === sessionId))) return null;
7915
+ if (source === "hermes" && (segments.length !== 2 || !/^[a-f0-9]{64}$/.test(segments[0] ?? "") || basename3(path) !== `${sessionId}.json`)) return null;
7916
+ if (source === "gemini" && (segments.length !== 3 || segments[1] !== "chats" || !basename3(path).startsWith("session-"))) return null;
7917
+ if (source === "cursor" && (segments[1] !== "agent-transcripts" || basename3(path) !== `${sessionId}.jsonl` || !(segments.length === 3 || segments.length === 4 && basename3(dirname9(path)) === sessionId))) return null;
7897
7918
  return { sessionId, cwd: input.cwd, path, source, root };
7898
7919
  };
7899
7920
 
@@ -1,27 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- describeServiceNodeRisk,
4
- readServiceExecPath,
5
- readSetupFailure,
6
- versionManagerOf
7
- } from "../chunk-GACQSKNG.js";
8
- import {
9
- describeWaitLadder
10
- } from "../chunk-CVWG2N3Y.js";
3
+ readSetupFailure
4
+ } from "../chunk-B4UIRMOE.js";
11
5
  import {
12
6
  CODEX_HOOK_REMEDY,
13
7
  HERMES_RESTART_COMMAND,
14
8
  describeHermesProblems,
15
9
  describeHermesState,
16
10
  hermesRepairStep
17
- } from "../chunk-A4YOXS24.js";
11
+ } from "../chunk-PPCZSOCL.js";
12
+ import {
13
+ describeWaitLadder
14
+ } from "../chunk-CVWG2N3Y.js";
18
15
  import {
19
16
  writeJsonError,
20
17
  writeStdoutFully
21
18
  } from "../chunk-RRUP72V6.js";
22
19
  import {
23
20
  fetchChannels
24
- } from "../chunk-4T72AHIA.js";
21
+ } from "../chunk-OXPYENHL.js";
25
22
  import "../chunk-3EGEA4KH.js";
26
23
  import {
27
24
  describeAnswerTestPrompt,
@@ -31,7 +28,7 @@ import {
31
28
  reachVerdict,
32
29
  roundTripEvidence,
33
30
  verifyRoundTrip
34
- } from "../chunk-V7ZY7P2X.js";
31
+ } from "../chunk-EJSU5YWO.js";
35
32
  import {
36
33
  daemonStopsAtLogout,
37
34
  lingerDoctorDetail,
@@ -40,11 +37,11 @@ import {
40
37
  import {
41
38
  readMachineReadiness,
42
39
  readManagedControlEvidence
43
- } from "../chunk-HKJLPVPZ.js";
40
+ } from "../chunk-FJ7OESWX.js";
44
41
  import {
45
42
  assessCodexHookTrust,
46
43
  readCodexTrustForPusharyHooks
47
- } from "../chunk-6SWFS4GU.js";
44
+ } from "../chunk-AGVE7MXF.js";
48
45
  import {
49
46
  SIGNED_OUT_ON_MAC_MESSAGE,
50
47
  activeKeyVerdictOf,
@@ -59,16 +56,16 @@ import {
59
56
  isPluginRegistered,
60
57
  shortenHome,
61
58
  vscodeSettingsTargets
62
- } from "../chunk-IHAKBLW2.js";
59
+ } from "../chunk-42BVIKPZ.js";
63
60
  import {
64
61
  CONNECTED_THROUGH_MAC_APP,
65
62
  keyWrittenByMacApp,
66
63
  readMacAppConnectionWhenKeyless
67
- } from "../chunk-KLV2NQVT.js";
64
+ } from "../chunk-S47AAQFT.js";
68
65
  import {
69
66
  keyScopeOf,
70
67
  pushWindowChangeStep
71
- } from "../chunk-3QBI5C6P.js";
68
+ } from "../chunk-52B2TQJM.js";
72
69
  import {
73
70
  findHermesLauncher,
74
71
  hasUpdateFrom,
@@ -80,7 +77,7 @@ import {
80
77
  routesHermesQuestions,
81
78
  runsAnOlderPlugin,
82
79
  shippedHermesPlugin
83
- } from "../chunk-A7R43KOX.js";
80
+ } from "../chunk-CULDO4UA.js";
84
81
  import "../chunk-QCGNGEGE.js";
85
82
  import {
86
83
  FX_PROFILE_REFUSALS,
@@ -91,11 +88,11 @@ import {
91
88
  inspectClineInstallation,
92
89
  inspectFxInstallation,
93
90
  inspectFxPusharyHttpWiring
94
- } from "../chunk-2XDVEBHI.js";
91
+ } from "../chunk-IDGWQY3J.js";
95
92
  import {
96
93
  retryAgentCommand
97
- } from "../chunk-54TZGPZP.js";
98
- import "../chunk-NZD6ISCL.js";
94
+ } from "../chunk-LIZEMDE4.js";
95
+ import "../chunk-5ZK4RHYR.js";
99
96
  import {
100
97
  OPENCODE_PLUGIN_PLACEHOLDER,
101
98
  cliOwnsAnyAgentHooks,
@@ -105,7 +102,7 @@ import {
105
102
  openCodePluginDir,
106
103
  openCodePluginFile,
107
104
  openCodeWired
108
- } from "../chunk-VBWJ756P.js";
105
+ } from "../chunk-ICQU3SNR.js";
109
106
  import {
110
107
  createIo
111
108
  } from "../chunk-FO3MDD26.js";
@@ -118,8 +115,8 @@ import {
118
115
  expectedLaunchCapabilities,
119
116
  hasSpawnProvider,
120
117
  resolveControlPolicy
121
- } from "../chunk-DBIPNY7J.js";
122
- import "../chunk-EJHD44ZN.js";
118
+ } from "../chunk-7WR3FDDX.js";
119
+ import "../chunk-NLJ2ILA7.js";
123
120
  import "../chunk-CYTPQDQY.js";
124
121
  import {
125
122
  readLedgerSummary
@@ -131,7 +128,7 @@ import {
131
128
  describeAutoUpdateCheck,
132
129
  readAutoUpdateState,
133
130
  takeAutoUpdateAnnouncement
134
- } from "../chunk-ICCM3DLT.js";
131
+ } from "../chunk-33E75LIY.js";
135
132
  import {
136
133
  compatibleConfigFile,
137
134
  compatibleInstructionsFile,
@@ -139,16 +136,20 @@ import {
139
136
  hasCompatibleHooks,
140
137
  hasCompatibleMcpServer,
141
138
  missingCompatibleHookEvents
142
- } from "../chunk-43DT3QWZ.js";
139
+ } from "../chunk-APTNHX63.js";
143
140
  import {
144
141
  daemonHasRemoteProof,
145
142
  daemonServiceManagerAvailable,
146
143
  describeDaemonLoginBlock,
144
+ describeServiceNodeRisk,
147
145
  hasDaemonServiceDefinition,
148
146
  readDaemonNeedsLogin,
149
147
  readDaemonStatus,
150
- readInstalledDaemonService
151
- } from "../chunk-FAF5RDWT.js";
148
+ readInstalledDaemonService,
149
+ readServiceExecPath,
150
+ serviceStartFileChecks,
151
+ versionManagerOf
152
+ } from "../chunk-6TK3DWSF.js";
152
153
  import {
153
154
  GEMINI_HOOK_BINARY,
154
155
  claudeOtherHolders,
@@ -168,32 +169,35 @@ import {
168
169
  holdsLong,
169
170
  missingGeminiHookEvents,
170
171
  pusharyHookExecutable
171
- } from "../chunk-TLK5YLIE.js";
172
- import "../chunk-D7AAAD6W.js";
172
+ } from "../chunk-PNDL3OMR.js";
173
+ import "../chunk-LF3ZRLUQ.js";
173
174
  import "../chunk-A2YJ2FBR.js";
174
175
  import "../chunk-5XDFQ6E3.js";
175
- import "../chunk-LAWI6NQK.js";
176
+ import "../chunk-WHOFZB5W.js";
176
177
  import {
177
178
  parseFlags
178
179
  } from "../chunk-YPY4YCIZ.js";
179
- import "../chunk-H6CL3T2S.js";
180
180
  import "../chunk-IRIXOH4U.js";
181
- import "../chunk-L2GADKFL.js";
182
- import "../chunk-Y47BMZUR.js";
181
+ import "../chunk-B3AZPYRU.js";
183
182
  import "../chunk-POFBE6ZY.js";
184
183
  import {
185
184
  callMcpTool,
186
185
  sendMcpRequest
187
- } from "../chunk-WXUEOHYY.js";
188
- import "../chunk-VVN3RPV6.js";
186
+ } from "../chunk-DK6CMXYI.js";
189
187
  import {
190
188
  checkApiKey,
191
189
  describeKeyCheck
192
- } from "../chunk-Q2VV77IY.js";
193
- import "../chunk-PHA6AFOR.js";
190
+ } from "../chunk-KXKE3SW3.js";
191
+ import "../chunk-SNMTACCY.js";
192
+ import "../chunk-H6CL3T2S.js";
193
+ import "../chunk-Y47BMZUR.js";
194
+ import "../chunk-VVN3RPV6.js";
194
195
  import {
195
196
  getMachineId
196
- } from "../chunk-WNT4JHK3.js";
197
+ } from "../chunk-EHQCMJHI.js";
198
+ import {
199
+ UsageError
200
+ } from "../chunk-YU2EUD7O.js";
197
201
  import {
198
202
  keyPrefix,
199
203
  readControlMode,
@@ -237,24 +241,21 @@ import {
237
241
  readCodexMcpAuth,
238
242
  resolveBridgeStub,
239
243
  vscodePluginDir
240
- } from "../chunk-R7KC57PC.js";
244
+ } from "../chunk-TN5PGMH5.js";
241
245
  import {
242
246
  fetchLatestPublishedVersion,
243
247
  readGlobalCliInstall,
244
248
  resolvePathBinary
245
- } from "../chunk-GS5FH3C2.js";
249
+ } from "../chunk-FYLYAVQG.js";
246
250
  import {
247
251
  getBaseUrl
248
252
  } from "../chunk-IKBTG3OT.js";
249
253
  import {
250
- UsageError
251
- } from "../chunk-YU2EUD7O.js";
254
+ EXIT
255
+ } from "../chunk-BG4HHB7E.js";
252
256
  import {
253
257
  readJsonSafe
254
258
  } from "../chunk-TODDEIYG.js";
255
- import {
256
- EXIT
257
- } from "../chunk-BG4HHB7E.js";
258
259
  import {
259
260
  NPX_LATEST_COMMAND
260
261
  } from "../chunk-MQMVJDII.js";
@@ -1201,6 +1202,9 @@ var main = async () => {
1201
1202
  "Remote-control service runtime",
1202
1203
  present ? `${serviceNode}${manager ? ` (${describeServiceNodeRisk(manager)})` : ""}` : `${serviceNode} is gone${manager ? ` (${manager} switched Node since setup)` : ""}; run \`pushary daemon install\` to repin the service`
1203
1204
  );
1205
+ for (const start of serviceStartFileChecks(serviceFile.contents, process.platform, existsSync)) {
1206
+ check(start.passed, start.label, start.detail);
1207
+ }
1204
1208
  } else if (serviceFile) {
1205
1209
  console.log(` ${warn} Remote-control service runtime ${dim(`(could not read the node path out of ${serviceFile.path})`)}`);
1206
1210
  }
@@ -1,55 +1,55 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-YURIU333.js";
5
- import "../chunk-NN43KGTN.js";
4
+ } from "../chunk-LIUWN23V.js";
5
+ import "../chunk-FQ3ASV5L.js";
6
6
  import {
7
7
  announceSubscriptionRequired,
8
8
  isDeferAnswer
9
- } from "../chunk-H2RE3IPK.js";
10
- import "../chunk-L7Q57R4J.js";
9
+ } from "../chunk-NUG2A73X.js";
10
+ import "../chunk-JFGM6VSU.js";
11
11
  import "../chunk-VAE5JBR5.js";
12
12
  import "../chunk-G66WIAST.js";
13
- import "../chunk-43DT3QWZ.js";
14
- import "../chunk-FAF5RDWT.js";
15
- import "../chunk-TLK5YLIE.js";
16
- import "../chunk-D7AAAD6W.js";
13
+ import "../chunk-APTNHX63.js";
14
+ import "../chunk-6TK3DWSF.js";
15
+ import "../chunk-PNDL3OMR.js";
16
+ import "../chunk-LF3ZRLUQ.js";
17
17
  import "../chunk-A2YJ2FBR.js";
18
18
  import "../chunk-5XDFQ6E3.js";
19
- import "../chunk-LAWI6NQK.js";
19
+ import "../chunk-WHOFZB5W.js";
20
20
  import "../chunk-YPY4YCIZ.js";
21
21
  import "../chunk-YOV3LHOL.js";
22
22
  import "../chunk-XMSDA5WA.js";
23
23
  import "../chunk-ZWURBNA3.js";
24
- import "../chunk-H6CL3T2S.js";
25
24
  import "../chunk-IRIXOH4U.js";
26
25
  import {
27
26
  askUser,
28
27
  isDecisionStopped,
29
28
  isQuestionLimitRefusal,
30
29
  waitForQuestion
31
- } from "../chunk-L2GADKFL.js";
32
- import "../chunk-Y47BMZUR.js";
30
+ } from "../chunk-B3AZPYRU.js";
33
31
  import "../chunk-POFBE6ZY.js";
34
32
  import {
35
33
  SubscriptionRequiredError
36
- } from "../chunk-WXUEOHYY.js";
34
+ } from "../chunk-DK6CMXYI.js";
35
+ import "../chunk-KXKE3SW3.js";
36
+ import "../chunk-SNMTACCY.js";
37
+ import "../chunk-H6CL3T2S.js";
38
+ import "../chunk-Y47BMZUR.js";
37
39
  import "../chunk-VVN3RPV6.js";
38
- import "../chunk-Q2VV77IY.js";
39
- import "../chunk-PHA6AFOR.js";
40
40
  import {
41
41
  getMachineId
42
- } from "../chunk-WNT4JHK3.js";
42
+ } from "../chunk-EHQCMJHI.js";
43
+ import "../chunk-YU2EUD7O.js";
43
44
  import "../chunk-PNVTPEO5.js";
44
45
  import "../chunk-LNF36PTF.js";
45
- import "../chunk-R7KC57PC.js";
46
- import "../chunk-GS5FH3C2.js";
46
+ import "../chunk-TN5PGMH5.js";
47
+ import "../chunk-FYLYAVQG.js";
47
48
  import {
48
49
  getApiKey
49
50
  } from "../chunk-IKBTG3OT.js";
50
- import "../chunk-YU2EUD7O.js";
51
- import "../chunk-TODDEIYG.js";
52
51
  import "../chunk-BG4HHB7E.js";
52
+ import "../chunk-TODDEIYG.js";
53
53
  import "../chunk-MQMVJDII.js";
54
54
  import "../chunk-WIIMW5YO.js";
55
55
  import {
@@ -8,8 +8,8 @@ import {
8
8
  } from "../chunk-WM7OY63L.js";
9
9
  import {
10
10
  resolveProviderBinary
11
- } from "../chunk-DBIPNY7J.js";
12
- import "../chunk-EJHD44ZN.js";
11
+ } from "../chunk-7WR3FDDX.js";
12
+ import "../chunk-NLJ2ILA7.js";
13
13
  import {
14
14
  CommandReceipts,
15
15
  controllerCommandSchema
@@ -20,7 +20,7 @@ import {
20
20
  idleDeadlinePassed,
21
21
  startProcessOwnership,
22
22
  withSpawnProcessOwnership
23
- } from "../chunk-2MVKT7KH.js";
23
+ } from "../chunk-H5XLVJI7.js";
24
24
  import "../chunk-CYTPQDQY.js";
25
25
  import "../chunk-YOV3LHOL.js";
26
26
  import "../chunk-XMSDA5WA.js";
@@ -36,11 +36,11 @@ import {
36
36
  import "../chunk-VVN3RPV6.js";
37
37
  import {
38
38
  getMachineId
39
- } from "../chunk-WNT4JHK3.js";
39
+ } from "../chunk-EHQCMJHI.js";
40
40
  import "../chunk-PNVTPEO5.js";
41
41
  import "../chunk-LNF36PTF.js";
42
- import "../chunk-R7KC57PC.js";
43
- import "../chunk-GS5FH3C2.js";
42
+ import "../chunk-TN5PGMH5.js";
43
+ import "../chunk-FYLYAVQG.js";
44
44
  import {
45
45
  getApiKey,
46
46
  getBaseUrl
@@ -3,31 +3,31 @@ import {
3
3
  parseGeminiHookInput,
4
4
  pushQuestionAndWait,
5
5
  scopeQuestionOf
6
- } from "../chunk-VV7WRIQT.js";
6
+ } from "../chunk-DMZMPYLB.js";
7
7
  import {
8
8
  reportMachineDenial
9
- } from "../chunk-HY4ATVCT.js";
9
+ } from "../chunk-VQMGR32B.js";
10
10
  import {
11
11
  isGatingMoment,
12
12
  recordKeylessMoment
13
13
  } from "../chunk-YQQGIDBC.js";
14
14
  import {
15
15
  triggerAutoUpdate
16
- } from "../chunk-ICCM3DLT.js";
16
+ } from "../chunk-33E75LIY.js";
17
17
  import {
18
18
  readHookInput
19
- } from "../chunk-YURIU333.js";
20
- import "../chunk-NN43KGTN.js";
19
+ } from "../chunk-LIUWN23V.js";
20
+ import "../chunk-FQ3ASV5L.js";
21
21
  import {
22
22
  announceSubscriptionRequired,
23
23
  isDeferAnswer
24
- } from "../chunk-H2RE3IPK.js";
25
- import "../chunk-L7Q57R4J.js";
24
+ } from "../chunk-NUG2A73X.js";
25
+ import "../chunk-JFGM6VSU.js";
26
26
  import "../chunk-VAE5JBR5.js";
27
27
  import "../chunk-G66WIAST.js";
28
- import "../chunk-43DT3QWZ.js";
29
- import "../chunk-FAF5RDWT.js";
30
- import "../chunk-TLK5YLIE.js";
28
+ import "../chunk-APTNHX63.js";
29
+ import "../chunk-6TK3DWSF.js";
30
+ import "../chunk-PNDL3OMR.js";
31
31
  import {
32
32
  DEFAULT_SESSION,
33
33
  fetchModeState,
@@ -40,7 +40,7 @@ import {
40
40
  readLastPrompt,
41
41
  readLastUserPrompt,
42
42
  reportEvent
43
- } from "../chunk-D7AAAD6W.js";
43
+ } from "../chunk-LF3ZRLUQ.js";
44
44
  import {
45
45
  deriveActionBody,
46
46
  deriveBlocker,
@@ -49,12 +49,11 @@ import {
49
49
  scopePathFor
50
50
  } from "../chunk-A2YJ2FBR.js";
51
51
  import "../chunk-5XDFQ6E3.js";
52
- import "../chunk-LAWI6NQK.js";
52
+ import "../chunk-WHOFZB5W.js";
53
53
  import "../chunk-YPY4YCIZ.js";
54
54
  import "../chunk-YOV3LHOL.js";
55
55
  import "../chunk-XMSDA5WA.js";
56
56
  import "../chunk-ZWURBNA3.js";
57
- import "../chunk-H6CL3T2S.js";
58
57
  import {
59
58
  repoKeyFor
60
59
  } from "../chunk-IRIXOH4U.js";
@@ -63,30 +62,31 @@ import {
63
62
  isDecisionStopped,
64
63
  isQuestionLimitRefusal,
65
64
  sendNotification
66
- } from "../chunk-L2GADKFL.js";
67
- import "../chunk-Y47BMZUR.js";
65
+ } from "../chunk-B3AZPYRU.js";
68
66
  import "../chunk-POFBE6ZY.js";
69
67
  import {
70
68
  SubscriptionRequiredError
71
- } from "../chunk-WXUEOHYY.js";
69
+ } from "../chunk-DK6CMXYI.js";
70
+ import "../chunk-KXKE3SW3.js";
71
+ import "../chunk-SNMTACCY.js";
72
+ import "../chunk-H6CL3T2S.js";
73
+ import "../chunk-Y47BMZUR.js";
72
74
  import "../chunk-VVN3RPV6.js";
73
- import "../chunk-Q2VV77IY.js";
74
- import "../chunk-PHA6AFOR.js";
75
75
  import {
76
76
  getMachineId
77
- } from "../chunk-WNT4JHK3.js";
77
+ } from "../chunk-EHQCMJHI.js";
78
+ import "../chunk-YU2EUD7O.js";
78
79
  import "../chunk-PNVTPEO5.js";
79
80
  import "../chunk-LNF36PTF.js";
80
- import "../chunk-R7KC57PC.js";
81
- import "../chunk-GS5FH3C2.js";
81
+ import "../chunk-TN5PGMH5.js";
82
+ import "../chunk-FYLYAVQG.js";
82
83
  import {
83
84
  getApiKey
84
85
  } from "../chunk-IKBTG3OT.js";
85
- import "../chunk-YU2EUD7O.js";
86
- import "../chunk-TODDEIYG.js";
87
86
  import {
88
87
  EXIT
89
88
  } from "../chunk-BG4HHB7E.js";
89
+ import "../chunk-TODDEIYG.js";
90
90
  import "../chunk-MQMVJDII.js";
91
91
  import "../chunk-WIIMW5YO.js";
92
92
  import {