pushary 1.9.26 → 1.9.27

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 (103) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/data/SKILL.md +1 -1
  3. package/data/cursor-plugin/skills/pushary/SKILL.md +1 -1
  4. package/data/vscode-plugin/skills/pushary/SKILL.md +1 -1
  5. package/dist/bin/pushary-bell-hook.js +25 -25
  6. package/dist/bin/pushary-bell.js +9 -9
  7. package/dist/bin/pushary-claude.js +24 -24
  8. package/dist/bin/pushary-clean.js +29 -29
  9. package/dist/bin/pushary-codex-bridge.js +17 -17
  10. package/dist/bin/pushary-codex-hook.js +32 -32
  11. package/dist/bin/pushary-codex.js +12 -12
  12. package/dist/bin/pushary-connect.js +24 -24
  13. package/dist/bin/pushary-cowork.js +5 -5
  14. package/dist/bin/pushary-daemon.js +36 -32
  15. package/dist/bin/pushary-disconnect.js +24 -24
  16. package/dist/bin/pushary-doctor.js +35 -35
  17. package/dist/bin/pushary-elicitation-hook.js +25 -25
  18. package/dist/bin/pushary-gemini-bridge.js +13 -13
  19. package/dist/bin/pushary-gemini-hook.js +29 -29
  20. package/dist/bin/pushary-hook.js +29 -29
  21. package/dist/bin/pushary-login.js +12 -12
  22. package/dist/bin/pushary-logout.js +24 -24
  23. package/dist/bin/pushary-mcp.js +9 -9
  24. package/dist/bin/pushary-mode.js +12 -12
  25. package/dist/bin/pushary-notification-hook.js +24 -24
  26. package/dist/bin/pushary-opencode-hook.js +26 -26
  27. package/dist/bin/pushary-permission-denied-hook.js +29 -29
  28. package/dist/bin/pushary-permission-hook.js +28 -28
  29. package/dist/bin/pushary-post-hook.js +24 -24
  30. package/dist/bin/pushary-prompt-hook.js +24 -24
  31. package/dist/bin/pushary-session-end-hook.js +24 -24
  32. package/dist/bin/pushary-session-start-hook.js +28 -28
  33. package/dist/bin/pushary-setup.js +35 -35
  34. package/dist/bin/pushary-stats.js +5 -5
  35. package/dist/bin/pushary-status.js +26 -26
  36. package/dist/bin/pushary-stop-hook.js +24 -24
  37. package/dist/bin/pushary-stopfailure-hook.js +24 -24
  38. package/dist/bin/pushary-suggestions.js +12 -12
  39. package/dist/bin/pushary-transcript-register.js +17 -17
  40. package/dist/bin/pushary-transcripts.js +7 -7
  41. package/dist/bin/pushary-upgrade.js +30 -30
  42. package/dist/bin/pushary-wait.js +12 -12
  43. package/dist/bin/pushary.js +6 -6
  44. package/dist/{chunk-RZTIB2TY.js → chunk-2NQHGDK5.js} +1 -1
  45. package/dist/{chunk-3HBLQXCJ.js → chunk-4LIOV4YP.js} +3 -3
  46. package/dist/{chunk-PUJQFTKF.js → chunk-4LO6OQZ4.js} +1 -1
  47. package/dist/{chunk-4GKLAQY4.js → chunk-5LLH2TBR.js} +1 -1
  48. package/dist/{chunk-TEQJNXJH.js → chunk-5SKHXKIF.js} +5 -5
  49. package/dist/{chunk-SCFKXAHX.js → chunk-5ZR7XFTB.js} +4 -4
  50. package/dist/{chunk-CA2EOOZG.js → chunk-6CBKIF3S.js} +3 -3
  51. package/dist/{chunk-DDRSG6JL.js → chunk-AT4URLSU.js} +5 -5
  52. package/dist/{chunk-XDTGYZIT.js → chunk-BZYYTJ65.js} +4 -4
  53. package/dist/{chunk-XUVKAWV3.js → chunk-CSXWXXFJ.js} +1 -1
  54. package/dist/{chunk-AF2QZRYH.js → chunk-DY6AKR4W.js} +32 -22
  55. package/dist/{chunk-FA3YPD4P.js → chunk-E4NITECV.js} +2 -2
  56. package/dist/{chunk-LGMSGVDN.js → chunk-GORB726L.js} +2 -2
  57. package/dist/{chunk-PTJYAKZX.js → chunk-H2ZHGK4F.js} +2 -2
  58. package/dist/{chunk-3G4R2FLX.js → chunk-HFGTWPAD.js} +2 -2
  59. package/dist/{chunk-JXHJYLFF.js → chunk-IOTR2VQN.js} +4 -4
  60. package/dist/{chunk-BIKHLGEL.js → chunk-JK42X2VL.js} +2 -2
  61. package/dist/{chunk-RQPJEYLM.js → chunk-JXOCD4MG.js} +2 -2
  62. package/dist/{chunk-2YF72RC5.js → chunk-KN5ULH4O.js} +3 -3
  63. package/dist/{chunk-ZXYHVZZZ.js → chunk-LOVDPKUU.js} +1 -1
  64. package/dist/{chunk-3DLVLVEM.js → chunk-LUJAURFP.js} +1 -1
  65. package/dist/{chunk-NCAVDVXP.js → chunk-LY3KHTHS.js} +1 -1
  66. package/dist/{chunk-K4OV2VLB.js → chunk-M463H5LN.js} +2 -2
  67. package/dist/{chunk-BWXRLXNE.js → chunk-MDAJO2MP.js} +5 -5
  68. package/dist/{chunk-Y5O4TO7U.js → chunk-MRMIGVUI.js} +1 -1
  69. package/dist/{chunk-GRL4VVUP.js → chunk-MSKJRRHY.js} +3 -3
  70. package/dist/{chunk-ZPLDPPZO.js → chunk-MTODICDT.js} +1 -1
  71. package/dist/{chunk-F2HVTVQG.js → chunk-NK2URK5A.js} +2 -2
  72. package/dist/{chunk-IU5PAJDG.js → chunk-O2SMA3JN.js} +4 -4
  73. package/dist/{chunk-R5ABJ5H5.js → chunk-OPSLFAKF.js} +7 -7
  74. package/dist/{chunk-PPOQG2U6.js → chunk-OXOT3CGW.js} +4 -4
  75. package/dist/{chunk-MPBWPDXQ.js → chunk-PQAA37YV.js} +8 -7
  76. package/dist/{chunk-5FL4M4YF.js → chunk-QMMOVPUP.js} +8 -8
  77. package/dist/{chunk-GPDABKLD.js → chunk-RZNJGCPR.js} +5 -5
  78. package/dist/{chunk-GEN4YTNR.js → chunk-SLW45RGY.js} +11 -11
  79. package/dist/{chunk-AXOMDPA7.js → chunk-TQE5VIDJ.js} +4 -4
  80. package/dist/{chunk-L62RNE5F.js → chunk-TWCWRHNK.js} +5 -5
  81. package/dist/{chunk-P7WJ2KKO.js → chunk-TYPQUHIS.js} +5 -5
  82. package/dist/{chunk-4YWINUPJ.js → chunk-U4Q3AKLU.js} +1 -1
  83. package/dist/{chunk-KTRRDTZN.js → chunk-UQTQVH5X.js} +1 -1
  84. package/dist/{chunk-KJ2W7ECE.js → chunk-UWEDDQHU.js} +2 -2
  85. package/dist/{chunk-3ZDIA6ZC.js → chunk-V6HQFOBS.js} +3 -3
  86. package/dist/{chunk-BIV2LKDK.js → chunk-VGVMBY4V.js} +8 -8
  87. package/dist/{chunk-OGTWSEWN.js → chunk-VWTCGKMU.js} +1 -1
  88. package/dist/{chunk-FDT7KSQY.js → chunk-W4DFSUZG.js} +2 -2
  89. package/dist/{chunk-CXG7XA4E.js → chunk-W4LNR7LP.js} +3 -3
  90. package/dist/{chunk-TS3CRCI7.js → chunk-WGTD4NZV.js} +32 -4
  91. package/dist/{chunk-I52A3NLY.js → chunk-XESMYZLU.js} +1 -1
  92. package/dist/{chunk-5UKZXDHV.js → chunk-XTTMUQ4Z.js} +1 -1
  93. package/dist/{chunk-3TRGUDQ3.js → chunk-YTTPPJZW.js} +4 -4
  94. package/dist/{chunk-CW72FZ2M.js → chunk-YZ7D3P3M.js} +2 -2
  95. package/dist/{chunk-47RVFUEG.js → chunk-Z5AAPX3O.js} +1 -1
  96. package/dist/{chunk-TVP5UU33.js → chunk-ZQZRBPTP.js} +191 -30
  97. package/dist/{chunk-AG5ATWVT.js → chunk-ZWDXBLEZ.js} +3 -3
  98. package/dist/{global-upgrade-3XKMGVAR.js → global-upgrade-FKQPJL5P.js} +6 -6
  99. package/dist/{paths-UB2IUM57.js → paths-TU47TCRS.js} +2 -2
  100. package/dist/{reapply-B7KMGQH7.js → reapply-CTJZBUJY.js} +20 -20
  101. package/dist/src/index.js +19 -19
  102. package/dist/{upgrade-lock-6LLAEJTW.js → upgrade-lock-2SQCRMDL.js} +3 -3
  103. package/package.json +1 -1
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-3TRGUDQ3.js";
6
+ } from "./chunk-YTTPPJZW.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
@@ -13,8 +13,9 @@ import {
13
13
  POSIX_GLOBAL_ROOT_SEGMENTS,
14
14
  cliPackagePathSegments,
15
15
  globalUpgradeEntry,
16
+ isAutoUpdateResult,
16
17
  ownPackageRoot
17
- } from "./chunk-TVP5UU33.js";
18
+ } from "./chunk-ZQZRBPTP.js";
18
19
 
19
20
  // src/auto-update.ts
20
21
  import { spawn } from "child_process";
@@ -25,9 +26,7 @@ var PENDING_FINISH_RETRY_DELAYS_MS = [5 * 60 * 1e3, 60 * 60 * 1e3];
25
26
  var FIRST_FINISH_ATTEMPT = 1;
26
27
  var AUTO_UPDATE_FLAG = "--auto";
27
28
  var NON_GLOBAL_INSTALL_SEGMENTS = ["/_npx/", "/.volta/"];
28
- var AUTO_UPDATE_RESULTS = ["updated", "current", "needs_manual", "failed", "finish_pending", "finish_blocked"];
29
29
  var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
30
- var isAutoUpdateResult = (value) => typeof value === "string" && AUTO_UPDATE_RESULTS.some((result) => result === value);
31
30
  var stringField = (record, key) => {
32
31
  const value = record[key];
33
32
  return typeof value === "string" ? value : void 0;
@@ -101,6 +100,34 @@ var autoUpdateDecision = (input) => {
101
100
  if (checkedWithinInterval(input.state.lastCheckAt, input.now, autoUpdateCheckInterval(input.state))) return { kind: "skip", reason: "checked_recently" };
102
101
  return { kind: "check", ...location };
103
102
  };
103
+ var autoUpdateReportState = (decision) => {
104
+ if (decision.kind === "check") return "on";
105
+ switch (decision.reason) {
106
+ case "subagent_start":
107
+ case "checked_recently":
108
+ return "on";
109
+ default:
110
+ return decision.reason;
111
+ }
112
+ };
113
+ var autoUpdateReport = (input) => ({
114
+ state: autoUpdateReportState(autoUpdateDecision({ ...input, isSubagentStart: false })),
115
+ lastResult: input.state.lastResult ?? null,
116
+ lastCheckAt: input.state.lastCheckAt ?? null
117
+ });
118
+ var readLocalAutoUpdateReport = () => {
119
+ try {
120
+ return autoUpdateReport({
121
+ env: process.env,
122
+ state: readAutoUpdateState(autoUpdateState()),
123
+ now: Date.now(),
124
+ platform: process.platform,
125
+ packageRoot: ownPackageRoot()
126
+ });
127
+ } catch {
128
+ return null;
129
+ }
130
+ };
104
131
  var parseAutoUpdateFlag = (args) => {
105
132
  const token = args.find((arg) => arg === AUTO_UPDATE_FLAG || arg.startsWith(`${AUTO_UPDATE_FLAG}=`));
106
133
  if (token === void 0) return { kind: "absent" };
@@ -184,6 +211,7 @@ export {
184
211
  globalInstallLocation,
185
212
  upgradeEntryFor,
186
213
  nextFinishAttempt,
214
+ readLocalAutoUpdateReport,
187
215
  parseAutoUpdateFlag,
188
216
  describeAutoUpdateCheck,
189
217
  isUnfinishedAutoUpdate,
@@ -2,7 +2,7 @@ import {
2
2
  autoUpdateLock,
3
3
  installPackageGlobally,
4
4
  npmErrorMessage
5
- } from "./chunk-3TRGUDQ3.js";
5
+ } from "./chunk-YTTPPJZW.js";
6
6
  import {
7
7
  writeJsonAtomic
8
8
  } from "./chunk-AQFEP65J.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-47RVFUEG.js";
3
+ } from "./chunk-Z5AAPX3O.js";
4
4
 
5
5
  // src/config.ts
6
6
  import { readFileSync } from "fs";
@@ -13,7 +13,7 @@ import {
13
13
  isReleaseVersion,
14
14
  ownPackageName,
15
15
  withHookHoldBudget
16
- } from "./chunk-TVP5UU33.js";
16
+ } from "./chunk-ZQZRBPTP.js";
17
17
 
18
18
  // src/setup/paths.ts
19
19
  import { homedir as homedir2 } from "os";
@@ -395,9 +395,9 @@ var installGlobally = (options) => {
395
395
  }
396
396
  const started = (async () => {
397
397
  if (!npmIsOnPath()) throw new NpmMissingError();
398
- const { withUpgradeLock } = await import("./global-upgrade-3XKMGVAR.js");
399
- const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-6LLAEJTW.js");
400
- const { autoUpdateLock: autoUpdateLock2 } = await import("./paths-UB2IUM57.js");
398
+ const { withUpgradeLock } = await import("./global-upgrade-FKQPJL5P.js");
399
+ const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-2SQCRMDL.js");
400
+ const { autoUpdateLock: autoUpdateLock2 } = await import("./paths-TU47TCRS.js");
401
401
  let result = "skipped";
402
402
  const install = async () => {
403
403
  const platform = process.platform;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-3TRGUDQ3.js";
3
+ } from "./chunk-YTTPPJZW.js";
4
4
  import {
5
5
  readJsonSafe,
6
6
  writeFileAtomic
@@ -13,7 +13,7 @@ import {
13
13
  serializeDeclinedAgents,
14
14
  withDeclinedAgent,
15
15
  withoutDeclinedAgent
16
- } from "./chunk-TVP5UU33.js";
16
+ } from "./chunk-ZQZRBPTP.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -2,7 +2,7 @@ import {
2
2
  DISCONNECT_AGENT_IDS,
3
3
  SETUP_AGENT_CHOICES,
4
4
  isApprovalMode
5
- } from "./chunk-TVP5UU33.js";
5
+ } from "./chunk-ZQZRBPTP.js";
6
6
 
7
7
  // src/cli/mode-request.ts
8
8
  var parseDuration = (value) => {
@@ -989,6 +989,17 @@ var serializeDeclinedAgents = (agents) => `${JSON.stringify(declinedAgentsDocume
989
989
  var withDeclinedAgent = (agents, agent) => canonicalAgents([...agents, agent]);
990
990
  var withoutDeclinedAgent = (agents, agent) => agents.filter((candidate) => candidate !== agent);
991
991
 
992
+ // ../contracts/src/cli-version-standing.ts
993
+ var FIRST_AUTO_UPDATING_RELEASE = [1, 5, 0];
994
+ var MIN_SAFE_RELEASE = [1, 9, 26];
995
+ var formatReleaseVersion = (version) => version.join(".");
996
+ var FIRST_AUTO_UPDATING_CLI_VERSION = formatReleaseVersion(FIRST_AUTO_UPDATING_RELEASE);
997
+ var MIN_SAFE_CLI_VERSION = formatReleaseVersion(MIN_SAFE_RELEASE);
998
+
999
+ // ../contracts/src/auto-update-report.ts
1000
+ var AUTO_UPDATE_RESULTS = ["updated", "current", "needs_manual", "failed", "finish_pending", "finish_blocked"];
1001
+ var isAutoUpdateResult = (value) => typeof value === "string" && AUTO_UPDATE_RESULTS.includes(value);
1002
+
992
1003
  // ../contracts/src/index.ts
993
1004
  var KEY_SCOPES = ["full_access", "agent", "connector", "bound"];
994
1005
  var normalizeKeyScope = (value) => typeof value === "string" && KEY_SCOPES.includes(value) ? value : null;
@@ -1663,15 +1674,16 @@ var verdictForPolicy = (policy) => {
1663
1674
  return "requires_human";
1664
1675
  };
1665
1676
  var policyIntent = (policy) => isAutoApprove(policy) ? PATTERN_INTENT.grant : PATTERN_INTENT.restrict;
1666
- var selectGoverningRule = (policies, toolName, args, repoKey, sessionId) => {
1677
+ var restricts = (policy) => policyIntent(policy) === PATTERN_INTENT.restrict;
1678
+ var appliesToThisCall = (policy, repoKey, sessionId) => isRepoKeyMatch(policy.repoKey, repoKey) && (!policy.sessionId || policy.sessionId === sessionId);
1679
+ var selectGoverningRule = (policies, toolName, args, repoKey, sessionId, restrictedArgs = args) => {
1667
1680
  let best;
1668
1681
  let bestWeight = 0;
1669
1682
  let bestScoped = -1;
1670
1683
  let bestLength = -1;
1671
1684
  for (const candidate of policies) {
1672
- if (!isRepoKeyMatch(candidate.repoKey, repoKey)) continue;
1673
- if (candidate.sessionId && candidate.sessionId !== sessionId) continue;
1674
- const rank = matchToolPatternAny(candidate.tool, toolName, args, policyIntent(candidate));
1685
+ if (!appliesToThisCall(candidate, repoKey, sessionId)) continue;
1686
+ const rank = matchToolPatternAny(candidate.tool, toolName, restricts(candidate) ? restrictedArgs : args, policyIntent(candidate));
1675
1687
  if (rank === "none") continue;
1676
1688
  const weight = matchRankWeight(rank);
1677
1689
  const scoped = candidate.sessionId ? 2 : candidate.repoKey ? 1 : 0;
@@ -2448,15 +2460,14 @@ var replacesTheCrontab = ({ program, args }) => program !== void 0 && basenameOf
2448
2460
  var FIND_DELETE = "-delete";
2449
2461
  var FIND_RUNNERS = /* @__PURE__ */ new Set(["-exec", "-execdir", "-ok", "-okdir"]);
2450
2462
  var FIND_RUNNER_END = /* @__PURE__ */ new Set([";", "+"]);
2463
+ var FIND = "find";
2464
+ var commandsRunByFind = ({ program, args }) => program === void 0 || basenameOf(program.text) !== FIND ? [] : args.flatMap((arg, index) => FIND_RUNNERS.has(arg.text) ? [{ program: args[index + 1], args: args.slice(index + 2, findRunnerEnd(args, index + 2)) }] : []);
2451
2465
  var losesDataVisibly = (toolName, invocation, normalized, depth) => {
2452
2466
  const { program, args } = invocation;
2453
2467
  if (program === void 0) return false;
2454
2468
  const name = basenameOf(program.text);
2455
- if (name === "find") {
2456
- return args.some((arg) => arg.text === FIND_DELETE) || args.some((arg, index) => FIND_RUNNERS.has(arg.text) && invocationHasAVisibleConsequence(toolName, {
2457
- program: args[index + 1],
2458
- args: args.slice(index + 2, findRunnerEnd(args, index + 2))
2459
- }, depth + 1));
2469
+ if (name === FIND) {
2470
+ return args.some((arg) => arg.text === FIND_DELETE) || commandsRunByFind(invocation).some((run) => invocationHasAVisibleConsequence(toolName, run, depth + 1));
2460
2471
  }
2461
2472
  const destructiveArguments = destructiveArgumentsOf(name, args);
2462
2473
  return destructiveArguments !== void 0 && args.some((arg) => namesDestructiveArgument(arg.text, destructiveArguments)) || namesDestructiveWordInAnyCase(name, args.map((arg) => arg.text)) || gitDiscardsWork(invocation) || changesAService(invocation) || replacesTheCrontab(invocation) || isCoveredByPolicy(VISIBLE_DATA_LOSS_PATTERNS, toolName, normalized);
@@ -2619,7 +2630,8 @@ var runsADownloadedScript = (invocations) => {
2619
2630
  var pipedSegmentsOf = (command) => (shellSegmentsReadingAPipe(commandForReading(command)) ?? []).map((segment) => innermostInvocation(invocationOf(withoutShellGrouping(segment))));
2620
2631
  var pipesIntoASqlClient = (command) => pipedSegmentsOf(command).some((invocation) => sqlClientSyntaxOf(invocation) !== void 0);
2621
2632
  var pipesFetchedCodeIntoAnInterpreter = (command, invocations) => invocations.some(fetches) && pipedSegmentsOf(command).some(runsWhatItReads);
2622
- var SHELL_GROUPING_PREFIX = /^\s*(?:(?:if|then|elif|else|do|while|until|!)\s+|[({]\s*)+/;
2633
+ var WORDS_THAT_OPEN_A_COMMAND = String.raw`if|then|elif|else|do|while|until|!`;
2634
+ var SHELL_GROUPING_PREFIX = new RegExp(String.raw`^\s*(?:(?:${WORDS_THAT_OPEN_A_COMMAND})\s+|[({]\s*)+`);
2623
2635
  var GROUP_OPENER_BY_CLOSER = /* @__PURE__ */ new Map([[")", "("], ["}", "{"]]);
2624
2636
  var occurrencesOf = (text, character) => text.split(character).length - 1;
2625
2637
  var closesAGroupItDidNotOpen = (text) => {
@@ -2736,6 +2748,116 @@ var commandHasAVisibleConsequenceAt = (toolName, command, depth) => {
2736
2748
  return invocations.some((invocation) => invocationHasAVisibleConsequence(toolName, invocation, depth)) || pipesIntoASqlClient(command) || pipesFetchedCodeIntoAnInterpreter(command, invocations) || runsADownloadedScript(invocations);
2737
2749
  };
2738
2750
  var commandHasAVisibleConsequence = (toolName, command) => commandHasAVisibleConsequenceAt(toolName, command, 0);
2751
+ var MAX_SPELLING_DEPTH = 3;
2752
+ var GIT_GLOBAL_OPTIONS_WITH_A_VALUE = /* @__PURE__ */ new Set([
2753
+ "-C",
2754
+ "-c",
2755
+ "--git-dir",
2756
+ "--work-tree",
2757
+ "--namespace",
2758
+ "--super-prefix",
2759
+ "--config-env"
2760
+ ]);
2761
+ var GIT_GLOBAL_FLAGS = /* @__PURE__ */ new Set([
2762
+ "-p",
2763
+ "--paginate",
2764
+ "-P",
2765
+ "--no-pager",
2766
+ "--bare",
2767
+ "--exec-path",
2768
+ "--html-path",
2769
+ "--man-path",
2770
+ "--info-path",
2771
+ "--no-replace-objects",
2772
+ "--no-lazy-fetch",
2773
+ "--no-optional-locks",
2774
+ "--no-advice",
2775
+ "--literal-pathspecs",
2776
+ "--glob-pathspecs",
2777
+ "--noglob-pathspecs",
2778
+ "--icase-pathspecs"
2779
+ ]);
2780
+ var GIT_OPTION_AND_ITS_VALUE = 2;
2781
+ var GIT_OPTION_ALONE = 1;
2782
+ var NOT_A_GIT_GLOBAL_OPTION = 0;
2783
+ var gitGlobalOptionWidth = (text) => {
2784
+ if (GIT_GLOBAL_OPTIONS_WITH_A_VALUE.has(text)) return GIT_OPTION_AND_ITS_VALUE;
2785
+ const name = longOptionName(text);
2786
+ return GIT_GLOBAL_OPTIONS_WITH_A_VALUE.has(name) || GIT_GLOBAL_FLAGS.has(name) ? GIT_OPTION_ALONE : NOT_A_GIT_GLOBAL_OPTION;
2787
+ };
2788
+ var argsAfterGitGlobalOptions = (args) => {
2789
+ let index = 0;
2790
+ while (index < args.length) {
2791
+ const width = gitGlobalOptionWidth(args[index]?.text ?? "");
2792
+ if (width === NOT_A_GIT_GLOBAL_OPTION) break;
2793
+ index += width;
2794
+ }
2795
+ return args.slice(index);
2796
+ };
2797
+ var gitReadingsPastGlobalOptions = ({ program, args }) => {
2798
+ if (program === void 0 || basenameOf(program.text) !== GIT) return [];
2799
+ const rest = argsAfterGitGlobalOptions(args);
2800
+ return rest.length === args.length ? [] : [{ program, args: rest }];
2801
+ };
2802
+ var CURRENT_DIRECTORY_STEP = /\/\.(?=\/)/g;
2803
+ var LEADING_CURRENT_DIRECTORY = /^(?:\.\/+)+(?=[^/])/;
2804
+ var canonicalPathWord = (text) => text.replace(CURRENT_DIRECTORY_STEP, "").replace(LEADING_CURRENT_DIRECTORY, "");
2805
+ var verbatimInvocationText = (invocation) => wordsOfInvocation(invocation).map((word) => asOneShellWord(word.text)).join(" ");
2806
+ var canonicalInvocationText = (invocation) => invocationTextWith(invocation, (word) => asOneShellWord(canonicalPathWord(word.text)));
2807
+ var spellingsOfAnInvocation = (invocation, innermost) => [invocation, innermost, ...gitReadingsPastGlobalOptions(innermost), ...readingsPastGlobalFlags(innermost)].flatMap((reading) => [verbatimInvocationText(reading), canonicalInvocationText(reading)]);
2808
+ var NO_INLINE_SCRIPT = { kind: "none" };
2809
+ var HIDDEN_INLINE_SCRIPT = { kind: "hidden" };
2810
+ var passesAnInlineScript = ({ program, args }) => {
2811
+ const name = basenameOf(program?.text ?? "");
2812
+ return name === EVAL || SHELLS.has(name) && args.some((arg) => SCRIPT_FLAG_CLUSTER.test(arg.text));
2813
+ };
2814
+ var shellReadsItsScript = (invocation) => SHELLS.has(basenameOf(invocation.program?.text ?? "")) && runsWhatItReads(invocation);
2815
+ var inlineScriptsOf = (invocation, heredocs) => {
2816
+ const script = shellScriptOf(invocation);
2817
+ if (script !== null) return { kind: "readable", scripts: [script] };
2818
+ if (passesAnInlineScript(invocation)) return HIDDEN_INLINE_SCRIPT;
2819
+ if (!shellReadsItsScript(invocation)) return NO_INLINE_SCRIPT;
2820
+ return heredocs.length > 0 ? { kind: "readable", scripts: heredocs } : HIDDEN_INLINE_SCRIPT;
2821
+ };
2822
+ var programIsHidden = ({ program }) => program?.expands ?? false;
2823
+ var SUBSTITUTION_AS_A_PROGRAM = new RegExp(String.raw`(?:^|[;&|({\n]|(?:^|[\s;&|({])(?:${WORDS_THAT_OPEN_A_COMMAND})\s)\s*"?(?:\$\(|\`)`);
2824
+ var runsASubstitutionAsAProgram = (command) => {
2825
+ const visible = shellVisibleText(withHeredocBodiesSetAside(commandForReading(command)).text);
2826
+ return visible !== null && SUBSTITUTION_AS_A_PROGRAM.test(visible);
2827
+ };
2828
+ var parsedSpelledSegment = (segment) => {
2829
+ const text = withoutShellGrouping(segment);
2830
+ return { text, invocation: invocationOf(text), heredocs: [], feedsASubstitution: false };
2831
+ };
2832
+ var roughSpelledSegment = ({ invocation, heredocs, feedsASubstitution }) => ({ text: verbatimInvocationText(invocation), invocation, heredocs, feedsASubstitution });
2833
+ var segmentHidesWhatItRuns = (segment, innermost, scripts) => programIsHidden(innermost) || scripts.kind === "hidden" || segment.feedsASubstitution && passesAnInlineScript(innermost);
2834
+ var commandsNestedIn = (innermost, scripts) => [
2835
+ ...scripts.kind === "readable" ? scripts.scripts : [],
2836
+ ...commandsRunByFind(innermost).map(verbatimInvocationText)
2837
+ ];
2838
+ var spelledSegmentsOf = (command) => {
2839
+ const parsed = readableCommandSegments(command);
2840
+ return parsed === null ? roughSegmentsOf(command).map(roughSpelledSegment) : parsed.map(parsedSpelledSegment);
2841
+ };
2842
+ var SPELLINGS_OF_AN_UNREADABLE_COMMAND = { forms: [], hidesWhatItRuns: true };
2843
+ var commandSpellingsAt = (command, depth) => {
2844
+ if (depth > MAX_SPELLING_DEPTH) return SPELLINGS_OF_AN_UNREADABLE_COMMAND;
2845
+ const forms = [];
2846
+ let hidesWhatItRuns = runsASubstitutionAsAProgram(command);
2847
+ for (const segment of spelledSegmentsOf(command)) {
2848
+ const innermost = innermostInvocation(segment.invocation);
2849
+ const scripts = inlineScriptsOf(innermost, segment.heredocs);
2850
+ forms.push(segment.text, ...spellingsOfAnInvocation(segment.invocation, innermost));
2851
+ hidesWhatItRuns ||= segmentHidesWhatItRuns(segment, innermost, scripts);
2852
+ for (const nested of commandsNestedIn(innermost, scripts)) {
2853
+ const inner = commandSpellingsAt(nested, depth + 1);
2854
+ forms.push(nested, ...inner.forms);
2855
+ hidesWhatItRuns ||= inner.hidesWhatItRuns;
2856
+ }
2857
+ }
2858
+ return { forms, hidesWhatItRuns };
2859
+ };
2860
+ var commandSpellings = (command) => commandSpellingsAt(command, 0);
2739
2861
  var withoutSessionToolGrants = (config) => ({
2740
2862
  ...config,
2741
2863
  policies: config.policies.filter((policy) => !isSessionToolGrant(policy))
@@ -3296,9 +3418,10 @@ var findBestRoute = (routes, toolName, args, repoKey) => {
3296
3418
  let bestWeight = 0;
3297
3419
  let bestScoped = -1;
3298
3420
  let bestLength = -1;
3421
+ const { forms } = restrictionReadingOf(routes.map((route) => route.toolPattern), toolName, args);
3299
3422
  for (const candidate of routes) {
3300
3423
  if (!isRepoKeyMatch(candidate.repoKey, repoKey)) continue;
3301
- const rank = matchToolPatternAny(candidate.toolPattern, toolName, args, PATTERN_INTENT.restrict);
3424
+ const rank = matchToolPatternAny(candidate.toolPattern, toolName, forms, PATTERN_INTENT.restrict);
3302
3425
  if (rank === "none") continue;
3303
3426
  const weight = matchRankWeight(rank);
3304
3427
  const scoped = candidate.repoKey ? 1 : 0;
@@ -3330,10 +3453,35 @@ var isNamedByARule = (rank) => rank !== void 0 && rank !== "wildcard";
3330
3453
  var isSpecificArgumentRank = (rank) => rank === "exact" || rank === "prefix";
3331
3454
  var shellReadOnlyFloorApplies = (toolName, arg, rank) => !isSpecificArgumentRank(rank) && toolName === "Bash" && typeof arg === "string" && isSafeReadOnlyCommand(arg);
3332
3455
  var coordinationFloorApplies = (toolName, rank) => isCodexCoordinationTool(toolName) && !isNamedByARule(rank);
3456
+ var POSIX_SHELL_TOOLS = /* @__PURE__ */ new Set(["Bash", "Monitor"]);
3457
+ var argumentsAsWritten = (args) => ({ forms: args, hidesWhatItRuns: false });
3458
+ var namesAnArgumentOf = (pattern, toolName) => pattern.startsWith(`${toolName}(`);
3459
+ var isSpelledOut = (form) => form.length > 0;
3460
+ var restrictionReadingOf = (restrictingPatterns, toolName, args) => {
3461
+ const command = toolName in POLICY_COMMAND_KEYS ? args[0] : void 0;
3462
+ if (command === void 0 || !restrictingPatterns.some((pattern) => namesAnArgumentOf(pattern, toolName))) {
3463
+ return argumentsAsWritten(args);
3464
+ }
3465
+ const spellings = commandSpellings(command);
3466
+ return {
3467
+ forms: [.../* @__PURE__ */ new Set([...args, ...spellings.forms.filter(isSpelledOut)])],
3468
+ hidesWhatItRuns: POSIX_SHELL_TOOLS.has(toolName) && spellings.hidesWhatItRuns
3469
+ };
3470
+ };
3471
+ var restrictingPatternsOf = (policies) => policies.filter(restricts).map((policy) => policy.tool);
3472
+ var policyReadingOf = (policies, toolName, args) => restrictionReadingOf(restrictingPatternsOf(policies), toolName, args);
3473
+ var stricterRule = (current, challenger) => current !== void 0 && (challenger === void 0 || restraintRank(current.policy) > restraintRank(challenger.policy)) ? current : challenger;
3474
+ var restrictsAnArgumentOf = (policy, toolName) => restricts(policy) && namesAnArgumentOf(policy.tool, toolName);
3475
+ var strictestRuleNamingAnArgument = (pool, toolName, repoKey, sessionId) => pool.filter((policy) => restrictsAnArgumentOf(policy, toolName) && appliesToThisCall(policy, repoKey, sessionId)).reduce((strictest, policy) => stricterRule(strictest, { policy, rank: "prefix" }), void 0);
3476
+ var governingRuleForReading = (pool, toolName, args, reading, repoKey, sessionId) => {
3477
+ const selected = selectGoverningRule(pool, toolName, args, repoKey, sessionId, reading.forms);
3478
+ return reading.hidesWhatItRuns ? stricterRule(selected, strictestRuleNamingAnArgument(pool, toolName, repoKey, sessionId)) : selected;
3479
+ };
3333
3480
  var resolveAutoResolveOrigin = (config, toolName, toolInput, cwd, repoKey, sessionId) => {
3334
3481
  const args = toolInput ? policyArgForms(toolName, toolInput, cwd) : [];
3335
3482
  const arg = args[0];
3336
- const rank = selectGoverningRule(config.policies, toolName, args, repoKey, sessionId)?.rank;
3483
+ const reading = policyReadingOf(config.policies, toolName, args);
3484
+ const rank = governingRuleForReading(config.policies, toolName, args, reading, repoKey, sessionId)?.rank;
3337
3485
  if (shellReadOnlyFloorApplies(toolName, arg, rank) || coordinationFloorApplies(toolName, rank)) {
3338
3486
  return DECISION_ORIGIN.safeReadonly;
3339
3487
  }
@@ -3344,28 +3492,37 @@ var wildcardRuleOf = (pool) => {
3344
3492
  return wildcard ? { policy: wildcard, rank: "wildcard" } : void 0;
3345
3493
  };
3346
3494
  var withSiteDelivery = (rule, siteMode) => isAutoApprove(rule.policy) || isAutoDeny(rule.policy) ? rule : { ...rule, policy: { ...rule.policy, mode: siteMode.mode, pushFirstSeconds: siteMode.pushFirstSeconds } };
3347
- var resolvePolicy = (config, toolName, modeOverride, toolInput, cwd, repoKey, sessionId) => {
3348
- const args = toolInput ? policyArgForms(toolName, toolInput, cwd) : [];
3349
- const arg = args[0];
3350
- const specificRule = (pool) => pool.length === 0 ? void 0 : selectGoverningRule(pool, toolName, args, repoKey, sessionId);
3495
+ var layeredGoverningRule = (config, toolName, args, reading, repoKey, sessionId) => {
3496
+ const specificRule = (pool) => pool.length === 0 ? void 0 : governingRuleForReading(pool, toolName, args, reading, repoKey, sessionId);
3351
3497
  const written = config.policies.filter((p) => !p.origin);
3352
3498
  const presets = config.policies.filter((p) => p.origin === "preset");
3353
3499
  const builtins = config.policies.filter((p) => p.origin === "builtin");
3354
3500
  const siteMode = wildcardRuleOf(written);
3355
3501
  const presetRule = specificRule(presets);
3356
- const match = specificRule(written) ?? (presetRule && siteMode ? withSiteDelivery(presetRule, siteMode.policy) : presetRule) ?? siteMode ?? wildcardRuleOf(presets) ?? specificRule(builtins) ?? wildcardRuleOf(builtins);
3357
- let base = match?.policy ?? {
3358
- tool: toolName,
3359
- timeoutSeconds: config.defaultTimeoutSeconds,
3360
- timeoutAction: config.defaultTimeoutAction,
3361
- mode: config.defaultMode ?? "push_first",
3362
- pushFirstSeconds: config.defaultPushFirstSeconds ?? 20
3363
- };
3502
+ return specificRule(written) ?? (presetRule && siteMode ? withSiteDelivery(presetRule, siteMode.policy) : presetRule) ?? siteMode ?? wildcardRuleOf(presets) ?? specificRule(builtins) ?? wildcardRuleOf(builtins);
3503
+ };
3504
+ var unmatchedPolicyOf = (config, toolName) => ({
3505
+ tool: toolName,
3506
+ timeoutSeconds: config.defaultTimeoutSeconds,
3507
+ timeoutAction: config.defaultTimeoutAction,
3508
+ mode: config.defaultMode ?? "push_first",
3509
+ pushFirstSeconds: config.defaultPushFirstSeconds ?? 20
3510
+ });
3511
+ var stricterOfTheReadings = (asWritten, asSpelled, unmatched) => restraintRank(asWritten?.policy ?? unmatched) > restraintRank(asSpelled?.policy ?? unmatched) ? asWritten : asSpelled;
3512
+ var resolvePolicy = (config, toolName, modeOverride, toolInput, cwd, repoKey, sessionId) => {
3513
+ const args = toolInput ? policyArgForms(toolName, toolInput, cwd) : [];
3514
+ const arg = args[0];
3515
+ const unmatched = unmatchedPolicyOf(config, toolName);
3516
+ const asWritten = layeredGoverningRule(config, toolName, args, argumentsAsWritten(args), repoKey, sessionId);
3517
+ const asSpelled = layeredGoverningRule(config, toolName, args, policyReadingOf(config.policies, toolName, args), repoKey, sessionId);
3518
+ const match = stricterOfTheReadings(asWritten, asSpelled, unmatched);
3519
+ let base = match?.policy ?? unmatched;
3364
3520
  const governedBySpecificRule = isSpecificArgumentRank(match?.rank);
3365
3521
  const governedBySessionToolGrant = match?.rank === "tool" && isSessionToolGrant(match.policy);
3366
3522
  const governedByStandingShellAllow = match?.rank === "tool" && isStandingShellAllow(match.policy);
3367
3523
  const governingMode = base.mode;
3368
- const approvedByReadOnlyFloor = !isAutoDeny(base) && (shellReadOnlyFloorApplies(toolName, arg, match?.rank) || coordinationFloorApplies(toolName, match?.rank));
3524
+ const aRuleNamesASpelling = isSpecificArgumentRank(asSpelled?.rank);
3525
+ const approvedByReadOnlyFloor = !isAutoDeny(base) && (shellReadOnlyFloorApplies(toolName, arg, match?.rank) && !aRuleNamesASpelling || coordinationFloorApplies(toolName, match?.rank));
3369
3526
  if (governedBySessionToolGrant && !approvedByReadOnlyFloor && typeof arg === "string" && commandNeedsAPerson(toolName, arg)) {
3370
3527
  return resolvePolicy(withoutSessionToolGrants(config), toolName, modeOverride, toolInput, cwd, repoKey, sessionId);
3371
3528
  }
@@ -3580,11 +3737,13 @@ var everyCommandSegmentGranted = (rules, toolName, command) => {
3580
3737
  const segments = readableCommandSegments(command);
3581
3738
  return segments !== null && segments.every((segment) => isSafeReadOnlyCommand(segment) || anyRuleGrants(rules, toolName, [segment]));
3582
3739
  };
3583
- var restrictionFormsOf = (toolName, args) => {
3740
+ var agentRuleReadingOf = (rules, toolName, args) => {
3741
+ const reading = restrictionReadingOf([...rules.ask, ...rules.deny], toolName, args);
3584
3742
  const command = toolName in POLICY_COMMAND_KEYS ? args[0] : void 0;
3585
3743
  const normalized = command === void 0 ? null : normalizedCommand(command);
3586
- return normalized === null ? args : [...args, normalized];
3744
+ return normalized === null ? reading : { ...reading, forms: [...reading.forms, normalized] };
3587
3745
  };
3746
+ var anyRuleRestrictsReading = (rules, toolName, reading) => anyRuleRestricts(rules, toolName, reading.forms) || reading.hidesWhatItRuns && rules.some((rule) => namesAnArgumentOf(rule, toolName));
3588
3747
  var allowRulesGrant = (rules, toolName, args) => {
3589
3748
  const command = args[0];
3590
3749
  return toolName in POLICY_COMMAND_KEYS && command !== void 0 ? everyCommandSegmentGranted(rules, toolName, command) : anyRuleGrants(rules, toolName, args);
@@ -3596,8 +3755,8 @@ var inputNeedsAPerson = (toolName, toolInput) => {
3596
3755
  };
3597
3756
  var agentRulesAllowEveryInput = (rules, toolName, toolInputs, cwd) => rules.allow.length > 0 && toolInputs.length > 0 && toolInputs.every((toolInput) => {
3598
3757
  const args = policyArgForms(toolName, toolInput, cwd);
3599
- const restrictionForms = restrictionFormsOf(toolName, args);
3600
- return allowRulesGrant(rules.allow, toolName, args) && !anyRuleRestricts(rules.ask, toolName, restrictionForms) && !anyRuleRestricts(rules.deny, toolName, restrictionForms) && !inputNeedsAPerson(toolName, toolInput);
3758
+ const reading = agentRuleReadingOf(rules, toolName, args);
3759
+ return allowRulesGrant(rules.allow, toolName, args) && !anyRuleRestrictsReading(rules.ask, toolName, reading) && !anyRuleRestrictsReading(rules.deny, toolName, reading) && !inputNeedsAPerson(toolName, toolInput);
3601
3760
  });
3602
3761
  var isDefaultRule = (policy) => policy.origin === "builtin" || policy.tool === WILDCARD_TOOL_PATTERN;
3603
3762
  var isApprovalRoutePattern = (value) => typeof value === "object" && value !== null && typeof value.toolPattern === "string" && ["string", "undefined"].includes(typeof value.repoKey);
@@ -3611,7 +3770,8 @@ var aChosenRuleGoverns = (input) => {
3611
3770
  if (routes === null) return true;
3612
3771
  return input.toolInputs.some((toolInput) => {
3613
3772
  const args = policyArgForms(input.toolName, toolInput, input.cwd);
3614
- return selectGoverningRule(chosen, input.toolName, args, input.repoKey, input.sessionId) !== void 0 || findBestRoute(routes, input.toolName, args, input.repoKey) !== void 0;
3773
+ const reading = policyReadingOf(chosen, input.toolName, args);
3774
+ return governingRuleForReading(chosen, input.toolName, args, reading, input.repoKey, input.sessionId) !== void 0 || findBestRoute(routes, input.toolName, args, input.repoKey) !== void 0;
3615
3775
  });
3616
3776
  };
3617
3777
  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);
@@ -4133,6 +4293,7 @@ export {
4133
4293
  serializeDeclinedAgents,
4134
4294
  withDeclinedAgent,
4135
4295
  withoutDeclinedAgent,
4296
+ isAutoUpdateResult,
4136
4297
  normalizeKeyScope,
4137
4298
  isApprovalMode,
4138
4299
  approvalModeWithoutLocalPrompt,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  keyCheckFromResponse
3
- } from "./chunk-GRL4VVUP.js";
3
+ } from "./chunk-MSKJRRHY.js";
4
4
  import {
5
5
  installNetworkDefaults
6
- } from "./chunk-CXG7XA4E.js";
6
+ } from "./chunk-W4LNR7LP.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-5UKZXDHV.js";
9
+ } from "./chunk-XTTMUQ4Z.js";
10
10
 
11
11
  // src/retry.ts
12
12
  var isRetryable = (err) => {
@@ -5,15 +5,15 @@ import {
5
5
  readGlobalUpgradeSubject,
6
6
  upgradeInstalledPackage,
7
7
  withUpgradeLock
8
- } from "./chunk-BWXRLXNE.js";
9
- import "./chunk-I52A3NLY.js";
10
- import "./chunk-TS3CRCI7.js";
8
+ } from "./chunk-MDAJO2MP.js";
9
+ import "./chunk-XESMYZLU.js";
10
+ import "./chunk-WGTD4NZV.js";
11
11
  import "./chunk-POFBE6ZY.js";
12
12
  import "./chunk-KZERVKTD.js";
13
- import "./chunk-3TRGUDQ3.js";
13
+ import "./chunk-YTTPPJZW.js";
14
14
  import "./chunk-AQFEP65J.js";
15
- import "./chunk-47RVFUEG.js";
16
- import "./chunk-TVP5UU33.js";
15
+ import "./chunk-Z5AAPX3O.js";
16
+ import "./chunk-ZQZRBPTP.js";
17
17
  export {
18
18
  finishGlobalUpgrade,
19
19
  finishUpgradeWithLock,
@@ -32,8 +32,8 @@ import {
32
32
  pusharyDir,
33
33
  vscodePluginDir,
34
34
  vscodePluginMcp
35
- } from "./chunk-3TRGUDQ3.js";
36
- import "./chunk-TVP5UU33.js";
35
+ } from "./chunk-YTTPPJZW.js";
36
+ import "./chunk-ZQZRBPTP.js";
37
37
  export {
38
38
  autoUpdateLock,
39
39
  autoUpdateLog,
@@ -10,34 +10,34 @@ import {
10
10
  reapplyOpenCodePlugin,
11
11
  reapplyVsCodePlugin,
12
12
  repairCodexHolds
13
- } from "./chunk-R5ABJ5H5.js";
14
- import "./chunk-LGMSGVDN.js";
13
+ } from "./chunk-OPSLFAKF.js";
14
+ import "./chunk-GORB726L.js";
15
15
  import "./chunk-RIVNNBEK.js";
16
16
  import "./chunk-XHKBHWLX.js";
17
- import "./chunk-TEQJNXJH.js";
18
- import "./chunk-AXOMDPA7.js";
19
- import "./chunk-L62RNE5F.js";
20
- import "./chunk-2YF72RC5.js";
21
- import "./chunk-Y5O4TO7U.js";
22
- import "./chunk-ZPLDPPZO.js";
17
+ import "./chunk-5SKHXKIF.js";
18
+ import "./chunk-TQE5VIDJ.js";
19
+ import "./chunk-TWCWRHNK.js";
20
+ import "./chunk-KN5ULH4O.js";
21
+ import "./chunk-MRMIGVUI.js";
22
+ import "./chunk-MTODICDT.js";
23
23
  import "./chunk-GMXKITVA.js";
24
24
  import "./chunk-6ICPEJY5.js";
25
- import "./chunk-BIV2LKDK.js";
26
- import "./chunk-XUVKAWV3.js";
27
- import "./chunk-DDRSG6JL.js";
25
+ import "./chunk-VGVMBY4V.js";
26
+ import "./chunk-CSXWXXFJ.js";
27
+ import "./chunk-AT4URLSU.js";
28
28
  import "./chunk-POFBE6ZY.js";
29
- import "./chunk-AG5ATWVT.js";
30
- import "./chunk-GRL4VVUP.js";
31
- import "./chunk-CXG7XA4E.js";
32
- import "./chunk-4YWINUPJ.js";
29
+ import "./chunk-ZWDXBLEZ.js";
30
+ import "./chunk-MSKJRRHY.js";
31
+ import "./chunk-W4LNR7LP.js";
32
+ import "./chunk-U4Q3AKLU.js";
33
33
  import "./chunk-7QLSKOSU.js";
34
34
  import "./chunk-KZERVKTD.js";
35
- import "./chunk-KJ2W7ECE.js";
36
- import "./chunk-3TRGUDQ3.js";
35
+ import "./chunk-UWEDDQHU.js";
36
+ import "./chunk-YTTPPJZW.js";
37
37
  import "./chunk-AQFEP65J.js";
38
- import "./chunk-5UKZXDHV.js";
39
- import "./chunk-47RVFUEG.js";
40
- import "./chunk-TVP5UU33.js";
38
+ import "./chunk-XTTMUQ4Z.js";
39
+ import "./chunk-Z5AAPX3O.js";
40
+ import "./chunk-ZQZRBPTP.js";
41
41
  export {
42
42
  ensureCodexTrustAfterReapply,
43
43
  inspectConfiguredManagedProviders,
package/dist/src/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-GEN4YTNR.js";
4
- import "../chunk-FA3YPD4P.js";
5
- import "../chunk-3DLVLVEM.js";
6
- import "../chunk-ZXYHVZZZ.js";
3
+ } from "../chunk-SLW45RGY.js";
4
+ import "../chunk-E4NITECV.js";
5
+ import "../chunk-LUJAURFP.js";
6
+ import "../chunk-LOVDPKUU.js";
7
7
  import {
8
8
  fetchAccountPublicKey
9
- } from "../chunk-4GKLAQY4.js";
10
- import "../chunk-AXOMDPA7.js";
11
- import "../chunk-2YF72RC5.js";
9
+ } from "../chunk-5LLH2TBR.js";
10
+ import "../chunk-TQE5VIDJ.js";
11
+ import "../chunk-KN5ULH4O.js";
12
12
  import "../chunk-6ICPEJY5.js";
13
13
  import {
14
14
  fetchModeOverride,
@@ -18,31 +18,31 @@ import {
18
18
  handlePostToolUse,
19
19
  handleStop,
20
20
  reportEvent
21
- } from "../chunk-BIV2LKDK.js";
22
- import "../chunk-XUVKAWV3.js";
21
+ } from "../chunk-VGVMBY4V.js";
22
+ import "../chunk-CSXWXXFJ.js";
23
23
  import {
24
24
  askUser,
25
25
  cancelQuestion,
26
26
  waitForAnswer
27
- } from "../chunk-DDRSG6JL.js";
27
+ } from "../chunk-AT4URLSU.js";
28
28
  import "../chunk-POFBE6ZY.js";
29
- import "../chunk-AG5ATWVT.js";
30
- import "../chunk-GRL4VVUP.js";
31
- import "../chunk-CXG7XA4E.js";
32
- import "../chunk-4YWINUPJ.js";
29
+ import "../chunk-ZWDXBLEZ.js";
30
+ import "../chunk-MSKJRRHY.js";
31
+ import "../chunk-W4LNR7LP.js";
32
+ import "../chunk-U4Q3AKLU.js";
33
33
  import "../chunk-7QLSKOSU.js";
34
34
  import "../chunk-KZERVKTD.js";
35
- import "../chunk-KJ2W7ECE.js";
36
- import "../chunk-3TRGUDQ3.js";
35
+ import "../chunk-UWEDDQHU.js";
36
+ import "../chunk-YTTPPJZW.js";
37
37
  import "../chunk-AQFEP65J.js";
38
38
  import {
39
39
  getApiKey,
40
40
  getBaseUrl
41
- } from "../chunk-5UKZXDHV.js";
42
- import "../chunk-47RVFUEG.js";
41
+ } from "../chunk-XTTMUQ4Z.js";
42
+ import "../chunk-Z5AAPX3O.js";
43
43
  import {
44
44
  resolvePolicy
45
- } from "../chunk-TVP5UU33.js";
45
+ } from "../chunk-ZQZRBPTP.js";
46
46
  export {
47
47
  askUser,
48
48
  cancelQuestion,