pushary 1.9.113 → 1.9.116

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 (129) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{api-PCAXOVGM.js → api-X624HAAU.js} +11 -11
  3. package/dist/bin/pushary-audit.js +3 -3
  4. package/dist/bin/pushary-bell-hook.js +27 -27
  5. package/dist/bin/pushary-bell.js +10 -10
  6. package/dist/bin/pushary-claude.js +25 -25
  7. package/dist/bin/pushary-clean.js +34 -34
  8. package/dist/bin/pushary-codex-bridge.js +21 -21
  9. package/dist/bin/pushary-codex-hook.js +32 -32
  10. package/dist/bin/pushary-codex-session.js +8 -8
  11. package/dist/bin/pushary-codex.js +15 -15
  12. package/dist/bin/pushary-connect.js +28 -28
  13. package/dist/bin/pushary-cowork.js +5 -5
  14. package/dist/bin/pushary-daemon.js +42 -42
  15. package/dist/bin/pushary-disconnect.js +27 -27
  16. package/dist/bin/pushary-display-hook.js +17 -17
  17. package/dist/bin/pushary-doctor.js +42 -42
  18. package/dist/bin/pushary-elicitation-hook.js +27 -27
  19. package/dist/bin/pushary-gemini-bridge.js +15 -15
  20. package/dist/bin/pushary-gemini-hook.js +29 -29
  21. package/dist/bin/pushary-hook.js +32 -32
  22. package/dist/bin/pushary-login.js +21 -21
  23. package/dist/bin/pushary-logout.js +26 -26
  24. package/dist/bin/pushary-mcp.js +12 -12
  25. package/dist/bin/pushary-mode.js +15 -15
  26. package/dist/bin/pushary-notification-hook.js +26 -26
  27. package/dist/bin/pushary-opencode-hook.js +28 -28
  28. package/dist/bin/pushary-permission-denied-hook.js +32 -32
  29. package/dist/bin/pushary-permission-hook.js +32 -32
  30. package/dist/bin/pushary-post-hook.js +26 -26
  31. package/dist/bin/pushary-prompt-hook.js +26 -26
  32. package/dist/bin/pushary-session-end-hook.js +26 -26
  33. package/dist/bin/pushary-session-start-hook.js +35 -35
  34. package/dist/bin/pushary-setup.js +51 -49
  35. package/dist/bin/pushary-stats.js +5 -5
  36. package/dist/bin/pushary-status.js +32 -32
  37. package/dist/bin/pushary-stop-hook.js +26 -26
  38. package/dist/bin/pushary-stopfailure-hook.js +26 -26
  39. package/dist/bin/pushary-suggestions.js +15 -15
  40. package/dist/bin/pushary-transcript-register.js +17 -17
  41. package/dist/bin/pushary-transcripts.js +25 -25
  42. package/dist/bin/pushary-upgrade.js +40 -40
  43. package/dist/bin/pushary-wait.js +15 -15
  44. package/dist/bin/pushary.js +7 -7
  45. package/dist/{chunk-FQSFN5ZE.js → chunk-27CV6IXW.js} +1 -1
  46. package/dist/{chunk-T5GJK54S.js → chunk-32MHL5HC.js} +4 -4
  47. package/dist/{chunk-JXN4SH6M.js → chunk-32R6ESWY.js} +1 -1
  48. package/dist/{chunk-WUREJCUJ.js → chunk-3CYXPFGA.js} +5 -5
  49. package/dist/{chunk-O5VJGP6H.js → chunk-3WEWYRLQ.js} +4 -4
  50. package/dist/{chunk-Q4VB3DIL.js → chunk-4B6USDD3.js} +2 -2
  51. package/dist/{chunk-UMR6UQZ4.js → chunk-4NCIAMPN.js} +3 -3
  52. package/dist/{chunk-E3A77P52.js → chunk-4Q5J3HRJ.js} +4 -4
  53. package/dist/{chunk-CG5SK6NF.js → chunk-4QJUMXZS.js} +1 -1
  54. package/dist/{chunk-Z2QWM27R.js → chunk-4WG5XTKS.js} +6 -6
  55. package/dist/{chunk-MPG4HYQ6.js → chunk-4X6GTMU4.js} +3 -3
  56. package/dist/{chunk-OJGHJIFQ.js → chunk-5LWC7PSM.js} +5 -5
  57. package/dist/{chunk-U35OB2HQ.js → chunk-6FMHWS6M.js} +6 -6
  58. package/dist/{chunk-AR3VX4UQ.js → chunk-6RKEHEW6.js} +10 -10
  59. package/dist/{chunk-NG2EWF32.js → chunk-7ELMLTD7.js} +2 -2
  60. package/dist/{chunk-YM5OM2CI.js → chunk-7O4ZTJYY.js} +6 -6
  61. package/dist/{chunk-GBT74TNN.js → chunk-7THCN7FJ.js} +2 -2
  62. package/dist/{chunk-FLRVTAV4.js → chunk-BVN3WPDZ.js} +2 -2
  63. package/dist/{chunk-PU2KHDRD.js → chunk-BWSAVEMV.js} +101 -18
  64. package/dist/{chunk-BMZFL3HF.js → chunk-BZLG63YR.js} +4 -4
  65. package/dist/{chunk-3D2J3T2M.js → chunk-CBJXUJ4Y.js} +1 -1
  66. package/dist/{chunk-GNP6I5XM.js → chunk-CHHS7WT2.js} +2 -2
  67. package/dist/{chunk-XL6DDWWT.js → chunk-CJL7IMWO.js} +1 -1
  68. package/dist/{chunk-GQFT3QTC.js → chunk-CW34RKBV.js} +5 -3
  69. package/dist/{chunk-IWUYKDDW.js → chunk-DGZGCKDA.js} +4 -4
  70. package/dist/{chunk-KDTTCR3E.js → chunk-DMY2J2MY.js} +3 -3
  71. package/dist/{chunk-LUBECFXJ.js → chunk-EQZKJXHE.js} +1 -1
  72. package/dist/{chunk-T2N7MEO3.js → chunk-FHRXFUGD.js} +3 -3
  73. package/dist/{chunk-GI3266RE.js → chunk-FKVPV3SH.js} +2 -2
  74. package/dist/{chunk-RIBCPWOB.js → chunk-FU33PDFG.js} +3 -3
  75. package/dist/{chunk-KB2EEK5T.js → chunk-GB5E3JHR.js} +5 -5
  76. package/dist/{chunk-ZUZ4RXM7.js → chunk-GKXEA6IW.js} +1 -1
  77. package/dist/{chunk-KPCVIH52.js → chunk-H5TODUJ3.js} +113 -9
  78. package/dist/{chunk-P4PLDBZK.js → chunk-I5XLH7L3.js} +5 -5
  79. package/dist/{chunk-3LJWADU2.js → chunk-IC7LNHAX.js} +6 -6
  80. package/dist/{chunk-DSXBMC2N.js → chunk-JQS5YQQZ.js} +5 -5
  81. package/dist/{chunk-NPG4WCIM.js → chunk-JSTA2JTL.js} +1 -1
  82. package/dist/{chunk-24M7PB2Y.js → chunk-KK7JA5JP.js} +5 -5
  83. package/dist/{chunk-53ROMSOB.js → chunk-KVZAFFEE.js} +3 -3
  84. package/dist/{chunk-BWSXWX6T.js → chunk-LC2A3GBN.js} +2 -2
  85. package/dist/{chunk-3ZU77DJH.js → chunk-LQQWATPA.js} +6 -6
  86. package/dist/{chunk-GSJUGW3A.js → chunk-NGWG2CHI.js} +1 -1
  87. package/dist/{chunk-233KC6DP.js → chunk-NXEOD5JC.js} +1 -1
  88. package/dist/{chunk-5SUTYXCT.js → chunk-OEXJ7AJO.js} +1 -1
  89. package/dist/{chunk-44O6GG4I.js → chunk-PBM565KU.js} +6 -6
  90. package/dist/{chunk-B5NKPU2E.js → chunk-PCRLVQW3.js} +5 -5
  91. package/dist/{chunk-XQFHB2EK.js → chunk-PH4LJXTG.js} +3 -3
  92. package/dist/{chunk-DLCECUKY.js → chunk-PPEN3N44.js} +7 -7
  93. package/dist/{chunk-TAGLGMA6.js → chunk-PPW3K5DR.js} +2 -2
  94. package/dist/{chunk-BYL7RNOM.js → chunk-PPYNBRU6.js} +3 -3
  95. package/dist/{chunk-5J2OGCUA.js → chunk-Q3GYEEOM.js} +1 -1
  96. package/dist/{chunk-44HW5T6P.js → chunk-QVD4UOJ7.js} +2 -2
  97. package/dist/{chunk-D3XNQAQO.js → chunk-QXLV3CT6.js} +2 -2
  98. package/dist/{chunk-4EFZANH3.js → chunk-R7BP6ZEW.js} +1 -1
  99. package/dist/{chunk-MDEXA6JD.js → chunk-RQGMDAHY.js} +3 -3
  100. package/dist/{chunk-JXNDO7FB.js → chunk-RZRFHCAG.js} +1 -1
  101. package/dist/{chunk-22OATDEL.js → chunk-S5B3LKOP.js} +3 -3
  102. package/dist/{chunk-4I6FWGZ5.js → chunk-SDMGCRO3.js} +1 -1
  103. package/dist/{chunk-F5TQ6TCH.js → chunk-TNQ5JFCV.js} +1 -1
  104. package/dist/{chunk-WGK2BIX6.js → chunk-TSXTMJQH.js} +4 -4
  105. package/dist/{chunk-JCHF4VR3.js → chunk-TWRDOVN4.js} +1 -1
  106. package/dist/{chunk-SI7EFQEU.js → chunk-V766TMSY.js} +4 -4
  107. package/dist/{chunk-NK5XT4RS.js → chunk-VAT53KQR.js} +4 -4
  108. package/dist/{chunk-JRW5HK32.js → chunk-WACBGAWA.js} +2 -2
  109. package/dist/{chunk-I7HSE5LD.js → chunk-XUHDUD34.js} +27 -14
  110. package/dist/{chunk-GGBGKQIZ.js → chunk-YDQ2KQOH.js} +8 -8
  111. package/dist/{chunk-HJ566HEV.js → chunk-Z3WNBZG6.js} +3 -3
  112. package/dist/{chunk-OR5SWH44.js → chunk-ZETS7HPG.js} +10 -10
  113. package/dist/{chunk-6E2D22Y5.js → chunk-ZR7ODRKY.js} +2 -2
  114. package/dist/{chunk-RLBTKTOK.js → chunk-ZUVDQOU6.js} +16 -2
  115. package/dist/{codex-app-cards-switch-UI2LQQ6C.js → codex-app-cards-switch-7XA2J7MU.js} +11 -11
  116. package/dist/{codex-card-routing-IOVURY45.js → codex-card-routing-SWDFV5IG.js} +2 -2
  117. package/dist/{codex-desktop-launch-GAXMK6IM.js → codex-desktop-launch-7Y2YODZM.js} +1 -1
  118. package/dist/{codex-session-launch-FYXRCD3I.js → codex-session-launch-5I3NEQRG.js} +18 -18
  119. package/dist/{config-WOATWPOD.js → config-HUULA2T7.js} +3 -3
  120. package/dist/{global-upgrade-LDIMKAPF.js → global-upgrade-BTHOIZK5.js} +9 -9
  121. package/dist/{identity-GCRCIP45.js → identity-MVXY2GIK.js} +4 -4
  122. package/dist/{live-capabilities-DPMIMA3P.js → live-capabilities-KCTCX3EI.js} +4 -4
  123. package/dist/{paths-H5LP5HJB.js → paths-BVROPWE2.js} +3 -3
  124. package/dist/{reapply-FBNJRZLQ.js → reapply-6J22YOVO.js} +28 -28
  125. package/dist/src/index.d.ts +0 -1
  126. package/dist/src/index.js +31 -31
  127. package/dist/{upgrade-lock-76Z2YLIV.js → upgrade-lock-LQQDJAEJ.js} +4 -4
  128. package/dist/{usage-SIELH6XD.js → usage-LC7XUIV3.js} +3 -3
  129. package/package.json +1 -1
@@ -6745,6 +6745,12 @@ var inlineScriptsOf = (invocation, heredocs) => {
6745
6745
  return heredocs.length > 0 ? { kind: "readable", scripts: heredocs } : HIDDEN_INLINE_SCRIPT;
6746
6746
  };
6747
6747
  var programIsHidden = ({ program }) => program?.expands ?? false;
6748
+ var PROGRAM_PATH_UNDER_HOME_OR_PWD = /^\$(?:HOME|PWD|\{HOME\}|\{PWD\})(?:\/[A-Za-z0-9._+-]+)+$/;
6749
+ var LEADING_QUOTE = /^"/;
6750
+ var commandStartsWithProgramUnderHomeOrPwd = (command, invocation, innermost) => {
6751
+ const programText = innermost.program?.text ?? "";
6752
+ return invocation.program?.text === programText && PROGRAM_PATH_UNDER_HOME_OR_PWD.test(programText) && command.trimStart().replace(LEADING_QUOTE, "").startsWith(programText);
6753
+ };
6748
6754
  var SUBSTITUTION_AS_A_PROGRAM = new RegExp(String.raw`(?:^|[;&|({\n]|(?:^|[\s;&|({])(?:${WORDS_THAT_OPEN_A_COMMAND})\s)\s*"?(?:\$\(|\`)`);
6749
6755
  var runsASubstitutionAsAProgram = (command) => {
6750
6756
  const visible = shellVisibleText(withHeredocBodiesSetAside(commandForReading(command)).text);
@@ -6755,7 +6761,7 @@ var parsedSpelledSegment = (segment) => {
6755
6761
  return { text: text3, invocation: invocationOf(text3), heredocs: [], feedsASubstitution: false };
6756
6762
  };
6757
6763
  var roughSpelledSegment = ({ invocation, heredocs, feedsASubstitution }) => ({ text: verbatimInvocationText(invocation), invocation, heredocs, feedsASubstitution });
6758
- var segmentHidesWhatItRuns = (segment, innermost, scripts) => programIsHidden(innermost) || scripts.kind === "hidden" || segment.feedsASubstitution && passesAnInlineScript(innermost);
6764
+ var segmentHidesWhatItRuns = (segment, innermost, scripts, programIsReadable) => programIsHidden(innermost) && !programIsReadable || scripts.kind === "hidden" || segment.feedsASubstitution && passesAnInlineScript(innermost);
6759
6765
  var commandsNestedIn = (innermost, scripts) => [
6760
6766
  ...scripts.kind === "readable" ? scripts.scripts : [],
6761
6767
  ...commandsRunByFind(innermost).map(verbatimInvocationText)
@@ -7144,12 +7150,13 @@ var spellCommandInto = (accumulator, command, depth, reach) => {
7144
7150
  spellCommandInto(accumulator, nested, depth + 1, reach);
7145
7151
  };
7146
7152
  const segments = spelledSegmentsOf(command);
7147
- for (const segment of segments) {
7153
+ for (const [index, segment] of segments.entries()) {
7148
7154
  const innermost = innermostInvocation(segment.invocation);
7149
7155
  const scripts = inlineScriptsOf(innermost, segment.heredocs);
7156
+ const programIsReadable = depth === 0 && index === 0 && commandStartsWithProgramUnderHomeOrPwd(command, segment.invocation, innermost);
7150
7157
  addSpelledForm(accumulator, segment.text);
7151
7158
  addSpelledForms(accumulator, spellingsOfAnInvocation(segment.invocation, innermost));
7152
- accumulator.hidesWhatItRuns ||= segmentHidesWhatItRuns(segment, innermost, scripts);
7159
+ accumulator.hidesWhatItRuns ||= segmentHidesWhatItRuns(segment, innermost, scripts, programIsReadable);
7153
7160
  for (const nested of commandsNestedIn(innermost, scripts)) spellNested(nested);
7154
7161
  const ranOnBehalf = readsCommandRunners(reach) ? runnerReadingOf(innermost) : NO_INLINE_SCRIPT;
7155
7162
  accumulator.hidesWhatItRuns ||= ranOnBehalf.kind === "hidden" || readsCommandRunners(reach) && runnerRunsWhatASubstitutionPrints(segment, innermost);
@@ -8449,6 +8456,7 @@ var PRETOOLUSE_GATED_TOOLS = [
8449
8456
  var PRETOOLUSE_HANDLED_TOOLS = /* @__PURE__ */ new Set([...PRETOOLUSE_GATED_TOOLS, ...ASKED_IN_EVERY_MODE_TOOLS]);
8450
8457
  var isPermissionRequestOwnedByPreToolUse = (toolName, permissionMode, defers = shouldDeferToNativeMode) => PRETOOLUSE_HANDLED_TOOLS.has(toolName) && (isAskedInEveryMode(toolName) || !defers(permissionMode, toolName));
8451
8458
  var CLAUDE_PRETOOLUSE_MATCHER = [...PRETOOLUSE_HANDLED_TOOLS].join("|");
8459
+ var CLAUDE_MCP_PRETOOLUSE_MATCHER = "mcp__.*";
8452
8460
  var LINE_BREAK = /[\r\n]/;
8453
8461
  var bypassModeCovers = (toolName, toolInput) => {
8454
8462
  const arg = extractPolicyArg(toolName, toolInput);
@@ -8465,6 +8473,20 @@ var bypassModeApplies = (input) => isBypassPermissionMode(input.permissionMode)
8465
8473
  var bypassModeAllows = (input) => bypassModeApplies(input) && (bypassStopsOf(input.config) === "nothing" ? !aChosenRuleGovernsInEitherRepository(input, ruleAsksOrRefuses) : bypassModeCoversEveryInput(input));
8466
8474
  var PERMISSIONS_OFF_ASK_REASON = "Permissions are off in your agent, so Pushary only stops for risky steps like this one. You can change this in Settings on pushary.com.";
8467
8475
  var permissionsOffLineAppliesTo = (agentType) => agentType === CLAUDE_CODE_AGENT_TYPE;
8476
+ var askAtTheRouteOfAPushOfTheCurrentBranch = (input, repoKey) => {
8477
+ const routes = approvalRoutesOf(input.config);
8478
+ if (routes === null || input.currentBranch === void 0) return void 0;
8479
+ for (const toolInput of input.toolInputs) {
8480
+ const pushes = pushesOfTheCurrentBranchIn(input, toolInput);
8481
+ const route = pushes.length === 0 ? void 0 : findBestRoute(routes, input.toolName, pushes, repoKey);
8482
+ const ask = route && input.config.policies.find((policy) => policy.tool === route.toolPattern && restricts(policy) && !isAutoDeny(policy) && appliesToThisCall(policy, repoKey, input.sessionId));
8483
+ if (ask) {
8484
+ const mode = input.modeState.mode ?? input.config.modeOverride ?? ask.mode;
8485
+ return { ...ask, mode };
8486
+ }
8487
+ }
8488
+ return void 0;
8489
+ };
8468
8490
  var permissionsOffAskReason = (input, verdict) => verdict.kind === "gate" && !verdict.scopeReason && !isAskedInEveryMode(input.toolName) && bypassModeApplies(input) && bypassStopsOf(input.config) === "consequences" && !aChosenRuleGovernsInEitherRepository(input) ? PERMISSIONS_OFF_ASK_REASON : void 0;
8469
8491
  var resolveGate = (input) => {
8470
8492
  const { modeState, config, toolName, toolInputs, cwd, sessionId } = input;
@@ -8485,14 +8507,16 @@ var resolveGate = (input) => {
8485
8507
  const verdict = verdictForPolicy(policy);
8486
8508
  const autoDenies = verdict === "deny";
8487
8509
  const allowedByBypassMode = !autoDenies && verdict !== "allow" && bypassModeAllows(input);
8488
- const autoApproves = verdict === "allow" || allowedByBypassMode;
8510
+ const askBesideARoutedPush = verdict === "allow" ? askAtTheRouteOfAPushOfTheCurrentBranch(input, repoKey) : void 0;
8511
+ const autoApproves = (verdict === "allow" || allowedByBypassMode) && askBesideARoutedPush === void 0;
8512
+ const askedPolicy = askBesideARoutedPush ?? policy;
8489
8513
  if (autoDenies) return { kind: "deny", policy, reason: `Denied by policy for ${policy.tool}` };
8490
8514
  if (isAskedInEveryMode(toolName)) return { kind: "gate", policy };
8491
8515
  if (isModeStateDegraded(modeState)) {
8492
8516
  if (autoApproves) {
8493
8517
  return survivesDegraded(config, toolName, toolInputs, cwd, repoKey, sessionId) ? { kind: "allow", policy, source: "allowlist" } : { kind: "defer", policy };
8494
8518
  }
8495
- return { kind: "gate", policy };
8519
+ return { kind: "gate", policy: askedPolicy };
8496
8520
  }
8497
8521
  const scopeVerdict = modeState.scope ? strictestScopeVerdict(modeState.scope, input.scopePaths ?? []) : { outcome: "no_contract" };
8498
8522
  if (autoApproves) {
@@ -8507,7 +8531,7 @@ var resolveGate = (input) => {
8507
8531
  const scopeReason = scopeChangeReason(scopeVerdict);
8508
8532
  return {
8509
8533
  kind: "gate",
8510
- policy,
8534
+ policy: askedPolicy,
8511
8535
  scopeReason,
8512
8536
  scopePath: scopeReason && "path" in scopeVerdict ? widenablePath(scopeVerdict.path) : void 0
8513
8537
  };
@@ -8621,6 +8645,69 @@ var approvalRoutesOf = (config) => {
8621
8645
  const routes = config.approvalRoutes ?? [];
8622
8646
  return Array.isArray(routes) && routes.every(isApprovalRoutePattern) ? routes : null;
8623
8647
  };
8648
+ var GIT_PUSH_OPTIONS_WITH_A_VALUE = /* @__PURE__ */ new Set(["-o", "--push-option", "--repo", "--receive-pack", "--exec"]);
8649
+ var GIT_PUSH_FLAGS_THAT_PUSH_NO_BRANCH = /* @__PURE__ */ new Set(["--dry-run", "--tags"]);
8650
+ var GIT_PUSH_SHORT_FLAGS_WITH_A_DRY_RUN = /^-[A-Za-z]*n[A-Za-z]*$/;
8651
+ var HEAD_REFSPECS = /* @__PURE__ */ new Set(["HEAD", "@"]);
8652
+ var MOVES_BEFORE_A_PUSH = /^(?:(?:if|elif|while|until)\s+)?(?:(?:cd|pushd|popd)(?:\s|$)|git\s+(?:checkout|switch)(?:\s|$))/;
8653
+ var LONGEST_COMMAND_READ_FOR_A_PUSH = 16 * 1024;
8654
+ var pushesNoBranchItself = (word) => GIT_PUSH_FLAGS_THAT_PUSH_NO_BRANCH.has(word) || GIT_PUSH_SHORT_FLAGS_WITH_A_DRY_RUN.test(word);
8655
+ var pointsGitAtAnotherRepository = (form) => {
8656
+ const [program, ...words] = form.split(" ");
8657
+ if (program !== "git") return false;
8658
+ for (let index = 0; index < words.length && (words[index] ?? "").startsWith("-"); index += 1) {
8659
+ const word = words[index] ?? "";
8660
+ if (word === "-C" || word.startsWith("--git-dir") || word.startsWith("--work-tree")) return true;
8661
+ if (GIT_GLOBAL_OPTIONS_WITH_A_VALUE.has(word)) index += 1;
8662
+ }
8663
+ return false;
8664
+ };
8665
+ var gitPushWordsOf = (form) => {
8666
+ const [program, subcommand, ...words] = form.split(" ");
8667
+ if (program !== "git" || subcommand !== "push") return null;
8668
+ const flags = [];
8669
+ const operands = [];
8670
+ for (let index = 0; index < words.length; index += 1) {
8671
+ const word = words[index] ?? "";
8672
+ if (pushesNoBranchItself(word)) return null;
8673
+ if (GIT_PUSH_OPTIONS_WITH_A_VALUE.has(word)) index += 1;
8674
+ else if (word.startsWith("-")) flags.push(word);
8675
+ else operands.push(word);
8676
+ }
8677
+ return { flags, operands };
8678
+ };
8679
+ var pushNamesNoBranch = ({ operands }) => operands.length <= 1 || operands.length === 2 && HEAD_REFSPECS.has(operands[1] ?? "");
8680
+ var spellingsOfAPushOfTheBranch = (form, branch) => {
8681
+ const push = gitPushWordsOf(form);
8682
+ if (push === null || !pushNamesNoBranch(push)) return [];
8683
+ const remote = push.operands[0] ?? "origin";
8684
+ return [.../* @__PURE__ */ new Set([`git push ${remote} ${branch}`, ["git push", ...push.flags, remote, branch].join(" ")])];
8685
+ };
8686
+ var commandReadForAPush = (input, toolInput) => {
8687
+ const command = POSIX_SHELL_TOOLS.has(input.toolName) ? extractPolicyArg(input.toolName, toolInput) : void 0;
8688
+ return command !== void 0 && command.length <= LONGEST_COMMAND_READ_FOR_A_PUSH ? command : void 0;
8689
+ };
8690
+ var pushesInSegmentsBeforeAMove = (command, branch) => {
8691
+ const pushes = [];
8692
+ for (const segment of spelledSegmentsOf(command)) {
8693
+ const { forms } = commandSpellings(segment.text, SPELLS_COMMAND_RUNNERS_TOO);
8694
+ if (forms.some((form) => MOVES_BEFORE_A_PUSH.test(form))) break;
8695
+ if (!forms.some(pointsGitAtAnotherRepository)) pushes.push(...forms.flatMap((form) => spellingsOfAPushOfTheBranch(form, branch)));
8696
+ }
8697
+ return [...new Set(pushes)];
8698
+ };
8699
+ var pushesOfTheCurrentBranchIn = (input, toolInput) => {
8700
+ const branch = input.currentBranch;
8701
+ const command = branch !== void 0 && isGitBranch(branch) ? commandReadForAPush(input, toolInput) : void 0;
8702
+ return branch === void 0 || command === void 0 ? [] : pushesInSegmentsBeforeAMove(command, branch);
8703
+ };
8704
+ var MENTIONS_A_GIT_PUSH = /\bgit\b[\s\S]*\bpush\b/;
8705
+ var toolInputMayPushTheCurrentBranch = (toolName, toolInput) => {
8706
+ const command = extractPolicyArg(toolName, toolInput);
8707
+ return command !== void 0 && command.length <= LONGEST_COMMAND_READ_FOR_A_PUSH && MENTIONS_A_GIT_PUSH.test(command);
8708
+ };
8709
+ var callMayPushTheCurrentBranch = (toolName, toolInputs) => POSIX_SHELL_TOOLS.has(toolName) && toolInputs.some((toolInput) => toolInputMayPushTheCurrentBranch(toolName, toolInput));
8710
+ var routeArgumentsOf = (input, toolInput) => [...policyArgForms(input.toolName, toolInput, input.cwd), ...pushesOfTheCurrentBranchIn(input, toolInput)];
8624
8711
  var everyRule = () => true;
8625
8712
  var aChosenRuleGoverns = (input, counts = everyRule) => {
8626
8713
  const chosen = input.config.policies.filter((policy) => !isDefaultRule(policy));
@@ -8630,16 +8717,24 @@ var aChosenRuleGoverns = (input, counts = everyRule) => {
8630
8717
  const args = policyArgForms(input.toolName, toolInput, input.cwd);
8631
8718
  const reading = policyReadingOf(chosen, input.toolName, args, SPELLS_COMMAND_RUNNERS_TOO);
8632
8719
  const governing = governingRuleForReading(chosen, input.toolName, args, reading, input.repoKey, input.sessionId);
8633
- return governing !== void 0 && counts(governing.policy) || findBestRoute(routes, input.toolName, args, input.repoKey) !== void 0;
8720
+ return governing !== void 0 && counts(governing.policy) || findBestRoute(routes, input.toolName, routeArgumentsOf(input, toolInput), input.repoKey) !== void 0;
8634
8721
  });
8635
8722
  };
8636
8723
  var AUTO_PERMISSION_MODE = "auto";
8637
- var routeDeliveredFor = (input, routes, toolInput) => findBestRoute(routes, input.toolName, policyArgForms(input.toolName, toolInput, input.cwd), input.sharedRepoKey ?? input.repoKey);
8724
+ var routeDeliveredFor = (input, routes, toolInput) => findBestRoute(routes, input.toolName, routeArgumentsOf(input, toolInput), input.sharedRepoKey ?? input.repoKey);
8638
8725
  var callWaitsForSomeoneElse = (input) => {
8639
8726
  const routes = approvalRoutesOf(input.config);
8640
8727
  if (routes === null) return false;
8641
8728
  return input.toolInputs.some((toolInput) => routeDeliveredFor(input, routes, toolInput)?.answeredBySomeoneElse === true);
8642
8729
  };
8730
+ var namedRouteWaitsForSomeoneElse = (input) => {
8731
+ const routes = approvalRoutesOf(input.config);
8732
+ if (routes === null) return false;
8733
+ return input.toolInputs.some((toolInput) => {
8734
+ const route = routeDeliveredFor(input, routes, toolInput);
8735
+ return route?.answeredBySomeoneElse === true && patternToolName(route.toolPattern) === input.toolName;
8736
+ });
8737
+ };
8643
8738
  var matchedRouteOf = (input) => {
8644
8739
  const routes = approvalRoutesOf(input.config);
8645
8740
  if (routes === null) return void 0;
@@ -8648,7 +8743,10 @@ var matchedRouteOf = (input) => {
8648
8743
  if (route === void 0) return void 0;
8649
8744
  return route.repoKey ? { toolPattern: route.toolPattern, repoKey: route.repoKey } : { toolPattern: route.toolPattern };
8650
8745
  };
8651
- var approvalRouteOutranksAutoMode = (input, verdict, permissionMode) => permissionMode === AUTO_PERMISSION_MODE && PRETOOLUSE_HANDLED_TOOLS.has(input.toolName) && verdict.kind === "gate" && !approvalWaitsAtTheAgentsPrompt(verdict.policy.mode) && !approvesWhenUnanswered(verdict.policy) && callWaitsForSomeoneElse(input);
8746
+ var verdictCanHoldTheCall = (verdict) => verdict.kind === "gate" && !approvalWaitsAtTheAgentsPrompt(verdict.policy.mode) && !approvesWhenUnanswered(verdict.policy);
8747
+ var approvalRouteOutranksAutoMode = (input, verdict, permissionMode) => permissionMode === AUTO_PERMISSION_MODE && PRETOOLUSE_HANDLED_TOOLS.has(input.toolName) && verdictCanHoldTheCall(verdict) && callWaitsForSomeoneElse(input);
8748
+ var mcpCallCouldBeHeldForSomeoneElse = (toolName, permissionMode) => permissionMode === AUTO_PERMISSION_MODE && parseMcpToolName(toolName) !== void 0 && !isPusharyOwnTool(toolName);
8749
+ var approvalRouteHoldsMcpCall = (input, verdict, permissionMode) => mcpCallCouldBeHeldForSomeoneElse(input.toolName, permissionMode) && verdictCanHoldTheCall(verdict) && namedRouteWaitsForSomeoneElse(input);
8652
8750
  var claudeAllowlistOwnsCall = (input, verdict, permissionMode, rules) => rules !== null && verdict.kind === "gate" && !verdict.scopeReason && !aChosenRuleGoverns(input) && !isAskedInEveryMode(input.toolName) && claudeConsultsItsAllowlist(permissionMode) && agentRulesAllowEveryInput(rules, input.toolName, input.toolInputs, input.cwd);
8653
8751
  var claudePromptTakesTheCall = (facts, input, verdict) => verdict.kind === "gate" && !verdict.scopeReason && terminalStaysLiveForTheCall(facts) && noModeOverrideIsActive(input) && !aChosenRuleGoverns(input) && !editGoesToTheAgentsPrompt({ source: facts.source, event: "PreToolUse", permissionMode: facts.permissionMode }, input, verdict);
8654
8752
  var toPolicyVersion = (value) => typeof value === "string" || typeof value === "number" ? String(value) : null;
@@ -9172,6 +9270,7 @@ export {
9172
9270
  isSafeReadOnlyCommand,
9173
9271
  isAutoApprove,
9174
9272
  FILE_TARGET_TOOLS,
9273
+ MCP_TOOL_PREFIX,
9175
9274
  parseMcpToolName,
9176
9275
  API_KEY_PREFIX_PATTERN,
9177
9276
  isValidApiKey,
@@ -9209,6 +9308,7 @@ export {
9209
9308
  PRETOOLUSE_HANDLED_TOOLS,
9210
9309
  isPermissionRequestOwnedByPreToolUse,
9211
9310
  CLAUDE_PRETOOLUSE_MATCHER,
9311
+ CLAUDE_MCP_PRETOOLUSE_MATCHER,
9212
9312
  permissionsOffLineAppliesTo,
9213
9313
  permissionsOffAskReason,
9214
9314
  resolveGate,
@@ -9229,8 +9329,12 @@ export {
9229
9329
  claudePermissionRulesFromSettings,
9230
9330
  claudeConsultsItsAllowlist,
9231
9331
  agentRulesAllowEveryInput,
9332
+ callMayPushTheCurrentBranch,
9333
+ namedRouteWaitsForSomeoneElse,
9232
9334
  matchedRouteOf,
9233
9335
  approvalRouteOutranksAutoMode,
9336
+ mcpCallCouldBeHeldForSomeoneElse,
9337
+ approvalRouteHoldsMcpCall,
9234
9338
  claudeAllowlistOwnsCall,
9235
9339
  claudePromptTakesTheCall,
9236
9340
  modeStateFromResponse,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  readMacAppAgentKey
3
- } from "./chunk-E3A77P52.js";
3
+ } from "./chunk-4Q5J3HRJ.js";
4
4
  import {
5
5
  API_KEYS_PATH
6
- } from "./chunk-NG2EWF32.js";
6
+ } from "./chunk-7ELMLTD7.js";
7
7
  import {
8
8
  absoluteUrl
9
- } from "./chunk-HJ566HEV.js";
9
+ } from "./chunk-Z3WNBZG6.js";
10
10
  import {
11
11
  findExportedKeyLines,
12
12
  isAdoptedMacAppKey,
@@ -16,10 +16,10 @@ import {
16
16
  readConfigFileKey,
17
17
  readKeySource,
18
18
  readMacAppKeyPrefix
19
- } from "./chunk-22OATDEL.js";
19
+ } from "./chunk-S5B3LKOP.js";
20
20
  import {
21
21
  isValidApiKey
22
- } from "./chunk-KPCVIH52.js";
22
+ } from "./chunk-H5TODUJ3.js";
23
23
 
24
24
  // src/key-revocation.ts
25
25
  var SELF_REVOKE_PATH = "/api/v1/server/keys/self/revoke";
@@ -4,7 +4,7 @@ import {
4
4
  postLiveSession,
5
5
  postLiveSessionUntilAccepted,
6
6
  startLiveSessionHeartbeat
7
- } from "./chunk-4EFZANH3.js";
7
+ } from "./chunk-R7BP6ZEW.js";
8
8
  import {
9
9
  CommandReceipts,
10
10
  controllerCommandSchema
@@ -14,21 +14,21 @@ import {
14
14
  describeIdleWindow,
15
15
  idleDeadlinePassed,
16
16
  startProcessOwnership
17
- } from "./chunk-TAGLGMA6.js";
17
+ } from "./chunk-PPW3K5DR.js";
18
18
  import {
19
19
  repositoryScopeFor
20
- } from "./chunk-4I6FWGZ5.js";
20
+ } from "./chunk-SDMGCRO3.js";
21
21
  import {
22
22
  isAskUserResponse,
23
23
  isDecisionStopped,
24
24
  isWaitForAnswerResponse,
25
25
  withdrawQuestion,
26
26
  writeDegraded
27
- } from "./chunk-44O6GG4I.js";
27
+ } from "./chunk-PBM565KU.js";
28
28
  import {
29
29
  callMcpTool,
30
30
  isRetryable
31
- } from "./chunk-WUREJCUJ.js";
31
+ } from "./chunk-3CYXPFGA.js";
32
32
  import {
33
33
  spawnClaude
34
34
  } from "./chunk-XHKBHWLX.js";
@@ -52,7 +52,7 @@ import {
52
52
  parseCodexQuestions,
53
53
  planElicitationAsk,
54
54
  readElicitationFields
55
- } from "./chunk-KPCVIH52.js";
55
+ } from "./chunk-H5TODUJ3.js";
56
56
 
57
57
  // src/codex-question-owner.ts
58
58
  import { createHash } from "crypto";
@@ -3,24 +3,24 @@ import {
3
3
  expectedLaunchCapabilities,
4
4
  hasSpawnProvider,
5
5
  resolveControlPolicy
6
- } from "./chunk-T2N7MEO3.js";
6
+ } from "./chunk-FHRXFUGD.js";
7
7
  import {
8
8
  daemonHasRemoteProof,
9
9
  daemonServiceManagerAvailable,
10
10
  hasDaemonServiceDefinition,
11
11
  readDaemonNeedsLogin,
12
12
  readDaemonStatus
13
- } from "./chunk-3ZU77DJH.js";
13
+ } from "./chunk-LQQWATPA.js";
14
14
  import {
15
15
  getMachineId
16
- } from "./chunk-F5TQ6TCH.js";
16
+ } from "./chunk-TNQ5JFCV.js";
17
17
  import {
18
18
  readControlMode,
19
19
  readKeySource
20
- } from "./chunk-22OATDEL.js";
20
+ } from "./chunk-S5B3LKOP.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-GSJUGW3A.js";
23
+ } from "./chunk-NGWG2CHI.js";
24
24
  import {
25
25
  getPackageVersion
26
26
  } from "./chunk-ZVU6WMMU.js";
@@ -5,7 +5,7 @@ import {
5
5
  MCP_CREDENTIAL_REJECTION_BODY,
6
6
  isRecord,
7
7
  responseRejectsCredential
8
- } from "./chunk-KPCVIH52.js";
8
+ } from "./chunk-H5TODUJ3.js";
9
9
 
10
10
  // src/credential-rejection.ts
11
11
  import { createHash, randomUUID } from "crypto";
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  cursorGateOwnsClaudeCall,
3
3
  readCursorGateRegistration
4
- } from "./chunk-IWUYKDDW.js";
4
+ } from "./chunk-DGZGCKDA.js";
5
5
  import {
6
6
  registerTranscript
7
- } from "./chunk-OR5SWH44.js";
7
+ } from "./chunk-ZETS7HPG.js";
8
8
  import {
9
9
  namedEvent
10
- } from "./chunk-OJGHJIFQ.js";
10
+ } from "./chunk-5LWC7PSM.js";
11
11
  import {
12
12
  writeDegraded
13
- } from "./chunk-44O6GG4I.js";
13
+ } from "./chunk-PBM565KU.js";
14
14
  import {
15
15
  claudeShapedHookInput,
16
16
  hookCompatibleProfileBySource,
17
17
  isGrokHookPayload,
18
18
  isGrokSessionEndStop
19
- } from "./chunk-KPCVIH52.js";
19
+ } from "./chunk-H5TODUJ3.js";
20
20
 
21
21
  // src/tool-hook-input.ts
22
22
  var OPTIONAL_TEXT_FIELDS = ["hook_event_name", "session_id", "cwd", "transcript_path", "tool_use_id", "permission_mode", "cursor_version"];
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  parseSseMessages
3
- } from "./chunk-WUREJCUJ.js";
3
+ } from "./chunk-3CYXPFGA.js";
4
4
  import {
5
5
  fetchAsCredential
6
- } from "./chunk-NPG4WCIM.js";
6
+ } from "./chunk-JSTA2JTL.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-JCHF4VR3.js";
9
+ } from "./chunk-TWRDOVN4.js";
10
10
 
11
11
  // src/mcp-stdio-bridge.ts
12
12
  var MCP_BRIDGE_BINARY = "pushary-mcp";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-RLBTKTOK.js";
3
+ } from "./chunk-ZUVDQOU6.js";
4
4
  import {
5
5
  readRegularJsonFile,
6
6
  writeFileAtomic
@@ -13,7 +13,7 @@ import {
13
13
  serializeDeclinedAgents,
14
14
  withDeclinedAgent,
15
15
  withoutDeclinedAgent
16
- } from "./chunk-KPCVIH52.js";
16
+ } from "./chunk-H5TODUJ3.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -4,19 +4,19 @@ import {
4
4
  } from "./chunk-XHKBHWLX.js";
5
5
  import {
6
6
  getMachineId
7
- } from "./chunk-F5TQ6TCH.js";
7
+ } from "./chunk-TNQ5JFCV.js";
8
8
  import {
9
9
  readControlMode
10
- } from "./chunk-22OATDEL.js";
10
+ } from "./chunk-S5B3LKOP.js";
11
11
  import {
12
12
  pusharyDir
13
- } from "./chunk-RLBTKTOK.js";
13
+ } from "./chunk-ZUVDQOU6.js";
14
14
  import {
15
15
  resolveGlobalBinary
16
- } from "./chunk-RIBCPWOB.js";
16
+ } from "./chunk-FU33PDFG.js";
17
17
  import {
18
18
  getApiKey
19
- } from "./chunk-GSJUGW3A.js";
19
+ } from "./chunk-NGWG2CHI.js";
20
20
  import {
21
21
  readJsonSafe,
22
22
  writeFileAtomic,
@@ -32,7 +32,7 @@ import {
32
32
  } from "./chunk-ZVU6WMMU.js";
33
33
  import {
34
34
  isRecord
35
- } from "./chunk-KPCVIH52.js";
35
+ } from "./chunk-H5TODUJ3.js";
36
36
 
37
37
  // src/daemon-lifecycle.ts
38
38
  import { dirname, join, win32 as win32Path } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-JCHF4VR3.js";
3
+ } from "./chunk-TWRDOVN4.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-RLBTKTOK.js";
3
+ } from "./chunk-ZUVDQOU6.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -9,7 +9,7 @@ import {
9
9
  isSetupConnectMode,
10
10
  isValidApiKey,
11
11
  normalizeAgentId
12
- } from "./chunk-KPCVIH52.js";
12
+ } from "./chunk-H5TODUJ3.js";
13
13
 
14
14
  // src/setup/options.ts
15
15
  var AGENT_CHOICES = SETUP_AGENT_CHOICES;
@@ -6,21 +6,21 @@ import {
6
6
  McpToolError,
7
7
  SubscriptionRequiredError,
8
8
  callMcpTool
9
- } from "./chunk-WUREJCUJ.js";
9
+ } from "./chunk-3CYXPFGA.js";
10
10
  import {
11
11
  installNetworkDefaults,
12
12
  isNetworkFailure
13
- } from "./chunk-XQFHB2EK.js";
13
+ } from "./chunk-PH4LJXTG.js";
14
14
  import {
15
15
  fetchAsCredential
16
- } from "./chunk-NPG4WCIM.js";
16
+ } from "./chunk-JSTA2JTL.js";
17
17
  import {
18
18
  clientReportClaims
19
- } from "./chunk-RLBTKTOK.js";
19
+ } from "./chunk-ZUVDQOU6.js";
20
20
  import {
21
21
  getApiKey,
22
22
  getBaseUrl
23
- } from "./chunk-GSJUGW3A.js";
23
+ } from "./chunk-NGWG2CHI.js";
24
24
  import {
25
25
  ASK_AGENT_NAME_MAX,
26
26
  CLIENT_REPORT_PATH,
@@ -29,7 +29,7 @@ import {
29
29
  TOOL_FAILURE_CODES,
30
30
  degradedLine,
31
31
  truncateLine
32
- } from "./chunk-KPCVIH52.js";
32
+ } from "./chunk-H5TODUJ3.js";
33
33
 
34
34
  // src/api.ts
35
35
  import { randomUUID } from "crypto";
@@ -4,13 +4,13 @@ import {
4
4
  configFailureKind,
5
5
  retryAgentCommand,
6
6
  writeSetupConfigFile
7
- } from "./chunk-MPG4HYQ6.js";
7
+ } from "./chunk-4X6GTMU4.js";
8
8
  import {
9
9
  MCP_BRIDGE_BINARY
10
- } from "./chunk-53ROMSOB.js";
10
+ } from "./chunk-KVZAFFEE.js";
11
11
  import {
12
12
  KEY_FILE_MODE
13
- } from "./chunk-22OATDEL.js";
13
+ } from "./chunk-S5B3LKOP.js";
14
14
  import {
15
15
  CLINE_SERVER_NAME_TAKEN,
16
16
  CLINE_SETTINGS_REFUSALS,
@@ -32,10 +32,10 @@ import {
32
32
  withClinePusharyServer,
33
33
  withRefreshedClineKey,
34
34
  withoutClinePusharyServer
35
- } from "./chunk-RLBTKTOK.js";
35
+ } from "./chunk-ZUVDQOU6.js";
36
36
  import {
37
37
  resolveGlobalBinary
38
- } from "./chunk-RIBCPWOB.js";
38
+ } from "./chunk-FU33PDFG.js";
39
39
  import {
40
40
  readJsonSafe,
41
41
  writeFileAtomic,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  readExistingMachineId
3
- } from "./chunk-F5TQ6TCH.js";
3
+ } from "./chunk-TNQ5JFCV.js";
4
4
  import {
5
5
  getBaseUrl
6
- } from "./chunk-GSJUGW3A.js";
6
+ } from "./chunk-NGWG2CHI.js";
7
7
  import {
8
8
  NetworkError
9
9
  } from "./chunk-YU2EUD7O.js";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  clientContextHeaders,
15
15
  redactSecretsFromContent
16
- } from "./chunk-KPCVIH52.js";
16
+ } from "./chunk-H5TODUJ3.js";
17
17
 
18
18
  // src/cli/net.ts
19
19
  import { createRequire } from "module";
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  announceSubscriptionRequired,
3
3
  isDeferAnswer
4
- } from "./chunk-XL6DDWWT.js";
4
+ } from "./chunk-CJL7IMWO.js";
5
5
  import {
6
6
  AUTO_DECISION_WINDOW_MS,
7
7
  DEFAULT_SESSION,
8
8
  claimThrottle,
9
9
  releaseThrottle,
10
10
  reportEvent
11
- } from "./chunk-I7HSE5LD.js";
11
+ } from "./chunk-XUHDUD34.js";
12
12
  import {
13
13
  deriveToolTarget,
14
14
  permissionDeniedAction
15
- } from "./chunk-FQSFN5ZE.js";
15
+ } from "./chunk-27CV6IXW.js";
16
16
  import {
17
17
  askUser,
18
18
  isDecisionStopped,
19
19
  isQuestionLimitRefusal,
20
20
  waitForQuestion
21
- } from "./chunk-44O6GG4I.js";
21
+ } from "./chunk-PBM565KU.js";
22
22
  import {
23
23
  SubscriptionRequiredError
24
- } from "./chunk-WUREJCUJ.js";
24
+ } from "./chunk-3CYXPFGA.js";
25
25
  import {
26
26
  getMachineId
27
- } from "./chunk-F5TQ6TCH.js";
27
+ } from "./chunk-TNQ5JFCV.js";
28
28
  import {
29
29
  ASK_CONTEXT_MAX,
30
30
  agentQuestionContext,
@@ -36,7 +36,7 @@ import {
36
36
  questionsShownAsASet,
37
37
  shouldDeferToNativeMode,
38
38
  wireVerdictFor
39
- } from "./chunk-KPCVIH52.js";
39
+ } from "./chunk-H5TODUJ3.js";
40
40
 
41
41
  // src/machine-decision-audit.ts
42
42
  import { basename } from "path";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-RLBTKTOK.js";
3
+ } from "./chunk-ZUVDQOU6.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-T5I4PKOQ.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-KPCVIH52.js";
9
+ } from "./chunk-H5TODUJ3.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -531,8 +531,8 @@ var loadedOnce = (load) => {
531
531
  };
532
532
 
533
533
  // src/codex-desktop-proxy.ts
534
- var loadThePhone = () => import("./api-PCAXOVGM.js");
535
- var loadTheCardRouting = () => import("./codex-card-routing-IOVURY45.js");
534
+ var loadThePhone = () => import("./api-X624HAAU.js");
535
+ var loadTheCardRouting = () => import("./codex-card-routing-SWDFV5IG.js");
536
536
  var theFirstCardLoadsAgain = () => {
537
537
  };
538
538
  var ASKS_WITHOUT_ROUTING = {};
@@ -1085,7 +1085,7 @@ var codexDesktopCommand = async (args, entry, readAccount) => {
1085
1085
  return runCodexDesktopProxy(engine2, args.slice(3), readAccount, { watchesForCards: layoutIsKnown });
1086
1086
  }
1087
1087
  if (args[0] === APP_CARDS_FLAG) {
1088
- const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-UI2LQQ6C.js");
1088
+ const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-7XA2J7MU.js");
1089
1089
  return codexAppCardsCommandOnThisMac(args.slice(1), entry, readAccount);
1090
1090
  }
1091
1091
  if (args.length > 2) throw new Error("Usage: pushary codex --desktop [path/to/Codex.app]");
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readTranscriptPreference
3
- } from "./chunk-22OATDEL.js";
3
+ } from "./chunk-S5B3LKOP.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {