pushary 1.9.116 → 1.9.118

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 (130) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{api-X624HAAU.js → api-Q2HBBRLT.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 +35 -40
  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 +62 -73
  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 +91 -88
  21. package/dist/bin/pushary-hook.js +33 -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 +93 -75
  28. package/dist/bin/pushary-permission-denied-hook.js +33 -32
  29. package/dist/bin/pushary-permission-hook.js +33 -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 +49 -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-CBJXUJ4Y.js → chunk-2WCARUXQ.js} +1 -1
  46. package/dist/{chunk-WACBGAWA.js → chunk-46ZIEQGC.js} +2 -2
  47. package/dist/{chunk-FKVPV3SH.js → chunk-4PXJ2LBU.js} +2 -2
  48. package/dist/{chunk-KVZAFFEE.js → chunk-5FJPEDMZ.js} +3 -3
  49. package/dist/chunk-5UIRDDJN.js +60 -0
  50. package/dist/{chunk-FHRXFUGD.js → chunk-6UN3AUIS.js} +3 -3
  51. package/dist/{chunk-JSTA2JTL.js → chunk-7K6DZPYV.js} +1 -1
  52. package/dist/{chunk-NXEOD5JC.js → chunk-7YQPI4UE.js} +1 -1
  53. package/dist/{chunk-ZUVDQOU6.js → chunk-A23GIPWY.js} +2 -2
  54. package/dist/{chunk-TNQ5JFCV.js → chunk-A2TAWW5L.js} +1 -1
  55. package/dist/{chunk-QVD4UOJ7.js → chunk-AN6AKKHO.js} +2 -2
  56. package/dist/{chunk-4X6GTMU4.js → chunk-B6HPULOG.js} +3 -3
  57. package/dist/{chunk-V766TMSY.js → chunk-BBLXVKW2.js} +4 -4
  58. package/dist/{chunk-PPEN3N44.js → chunk-BQVB563P.js} +6 -61
  59. package/dist/{chunk-7THCN7FJ.js → chunk-BUNRL7QV.js} +2 -2
  60. package/dist/{chunk-CHHS7WT2.js → chunk-C664L36M.js} +2 -2
  61. package/dist/{chunk-TWRDOVN4.js → chunk-CKR43BBJ.js} +1 -1
  62. package/dist/{chunk-6RKEHEW6.js → chunk-CTBNVQND.js} +10 -10
  63. package/dist/{chunk-OEXJ7AJO.js → chunk-CUQOWRYT.js} +1 -1
  64. package/dist/{chunk-7O4ZTJYY.js → chunk-CVIJBTGE.js} +6 -6
  65. package/dist/{chunk-PPYNBRU6.js → chunk-D3PHTY54.js} +3 -3
  66. package/dist/{chunk-Q3GYEEOM.js → chunk-EJYLQNMC.js} +1 -1
  67. package/dist/{chunk-4Q5J3HRJ.js → chunk-F5C6XZZ7.js} +4 -4
  68. package/dist/{chunk-CW34RKBV.js → chunk-FAL7WRMM.js} +3 -3
  69. package/dist/{chunk-PH4LJXTG.js → chunk-FEP7FXBP.js} +3 -3
  70. package/dist/{chunk-IC7LNHAX.js → chunk-FLBMCN45.js} +6 -6
  71. package/dist/{chunk-GKXEA6IW.js → chunk-FNT4VWXV.js} +1 -1
  72. package/dist/{chunk-27CV6IXW.js → chunk-GAYUSL24.js} +1 -1
  73. package/dist/{chunk-4WG5XTKS.js → chunk-GX3QCU32.js} +6 -6
  74. package/dist/{chunk-I5XLH7L3.js → chunk-H6YES2DS.js} +5 -5
  75. package/dist/{chunk-KK7JA5JP.js → chunk-H7B6LLP4.js} +9 -6
  76. package/dist/{chunk-H5TODUJ3.js → chunk-I7LP4DKM.js} +14 -1
  77. package/dist/{chunk-FU33PDFG.js → chunk-IKX4X4LJ.js} +3 -3
  78. package/dist/{chunk-S5B3LKOP.js → chunk-JBWEGNKE.js} +3 -3
  79. package/dist/{chunk-ZETS7HPG.js → chunk-K5H4YAMZ.js} +10 -10
  80. package/dist/{chunk-NGWG2CHI.js → chunk-KOEQIRDA.js} +1 -1
  81. package/dist/{chunk-TSXTMJQH.js → chunk-KWDQI7TI.js} +4 -4
  82. package/dist/{chunk-VAT53KQR.js → chunk-LWY2U7NZ.js} +4 -4
  83. package/dist/{chunk-JQS5YQQZ.js → chunk-M2PLZ5V3.js} +5 -5
  84. package/dist/{chunk-CJL7IMWO.js → chunk-MG5WFAND.js} +1 -1
  85. package/dist/{chunk-BZLG63YR.js → chunk-MTG3JLMP.js} +4 -4
  86. package/dist/{chunk-LC2A3GBN.js → chunk-NJSCVQ6S.js} +2 -2
  87. package/dist/{chunk-7ELMLTD7.js → chunk-NPMVVR6I.js} +2 -2
  88. package/dist/{chunk-5LWC7PSM.js → chunk-OP2ZDOBR.js} +5 -5
  89. package/dist/{chunk-RZRFHCAG.js → chunk-P2H6TDL4.js} +1 -1
  90. package/dist/{chunk-3CYXPFGA.js → chunk-PZLNBKMS.js} +5 -5
  91. package/dist/{chunk-BVN3WPDZ.js → chunk-Q64D24NF.js} +2 -2
  92. package/dist/{chunk-PPW3K5DR.js → chunk-QASBFNVD.js} +2 -2
  93. package/dist/{chunk-QXLV3CT6.js → chunk-QO6SWGLH.js} +2 -2
  94. package/dist/{chunk-Z3WNBZG6.js → chunk-QQ24SUBD.js} +3 -3
  95. package/dist/{chunk-4B6USDD3.js → chunk-R4BBSIUK.js} +2 -2
  96. package/dist/{chunk-32R6ESWY.js → chunk-RMUKFMT3.js} +1 -1
  97. package/dist/{chunk-4NCIAMPN.js → chunk-RPW7LX2L.js} +3 -3
  98. package/dist/{chunk-LQQWATPA.js → chunk-SAISSZZA.js} +6 -6
  99. package/dist/{chunk-YDQ2KQOH.js → chunk-SMBFZFVN.js} +8 -8
  100. package/dist/{chunk-EQZKJXHE.js → chunk-T5N42XDU.js} +1 -1
  101. package/dist/{chunk-6FMHWS6M.js → chunk-TOUMNM7M.js} +6 -6
  102. package/dist/{chunk-3WEWYRLQ.js → chunk-TUQ6R6DD.js} +4 -4
  103. package/dist/{chunk-32MHL5HC.js → chunk-UJ6UCGY4.js} +4 -4
  104. package/dist/{chunk-R7BP6ZEW.js → chunk-UKCCVMI2.js} +1 -1
  105. package/dist/{chunk-XUHDUD34.js → chunk-UNXVORET.js} +20 -13
  106. package/dist/{chunk-4QJUMXZS.js → chunk-UXVCDVPL.js} +1 -1
  107. package/dist/{chunk-PCRLVQW3.js → chunk-VIR7SCIQ.js} +5 -5
  108. package/dist/chunk-WCSPOQ5W.js +121 -0
  109. package/dist/{chunk-SDMGCRO3.js → chunk-WELDACYF.js} +1 -1
  110. package/dist/{chunk-BWSAVEMV.js → chunk-WLXXEFHA.js} +31 -21
  111. package/dist/{chunk-GB5E3JHR.js → chunk-WZZHWX7Q.js} +5 -5
  112. package/dist/{chunk-RQGMDAHY.js → chunk-X4UWBBFI.js} +3 -3
  113. package/dist/{chunk-DGZGCKDA.js → chunk-XSUNHOAP.js} +4 -4
  114. package/dist/{chunk-DMY2J2MY.js → chunk-XWVEAAZO.js} +3 -3
  115. package/dist/{chunk-PBM565KU.js → chunk-YQVZQM53.js} +6 -6
  116. package/dist/{chunk-ZR7ODRKY.js → chunk-ZGYLMVNB.js} +2 -2
  117. package/dist/{codex-app-cards-switch-7XA2J7MU.js → codex-app-cards-switch-45UK7FRY.js} +11 -11
  118. package/dist/{codex-card-routing-SWDFV5IG.js → codex-card-routing-7B77ISR2.js} +2 -2
  119. package/dist/{codex-desktop-launch-7Y2YODZM.js → codex-desktop-launch-DWC7Q5A6.js} +1 -1
  120. package/dist/{codex-session-launch-5I3NEQRG.js → codex-session-launch-MK2CXFRQ.js} +18 -18
  121. package/dist/{config-HUULA2T7.js → config-OHLNHWP4.js} +3 -3
  122. package/dist/{global-upgrade-BTHOIZK5.js → global-upgrade-KKFYAQVO.js} +9 -9
  123. package/dist/{identity-MVXY2GIK.js → identity-AKGGBW3A.js} +4 -4
  124. package/dist/{live-capabilities-KCTCX3EI.js → live-capabilities-O6MAYZZS.js} +4 -4
  125. package/dist/{paths-BVROPWE2.js → paths-5XEJTZAS.js} +3 -3
  126. package/dist/{reapply-6J22YOVO.js → reapply-VQFRLS3P.js} +28 -28
  127. package/dist/src/index.js +32 -31
  128. package/dist/{upgrade-lock-LQQDJAEJ.js → upgrade-lock-6HGNG7RT.js} +4 -4
  129. package/dist/{usage-LC7XUIV3.js → usage-ATA2A3TZ.js} +3 -3
  130. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  CODEX_HOOK_STATUS
3
- } from "./chunk-7THCN7FJ.js";
3
+ } from "./chunk-BUNRL7QV.js";
4
4
  import {
5
5
  retryAgentCommand
6
- } from "./chunk-4X6GTMU4.js";
6
+ } from "./chunk-B6HPULOG.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-TWRDOVN4.js";
9
+ } from "./chunk-CKR43BBJ.js";
10
10
 
11
11
  // src/setup/codex-trust.ts
12
12
  var CODEX_TRUST_TELEMETRY = {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  readExistingMachineId
3
- } from "./chunk-TNQ5JFCV.js";
3
+ } from "./chunk-A2TAWW5L.js";
4
4
  import {
5
5
  getBaseUrl
6
- } from "./chunk-NGWG2CHI.js";
6
+ } from "./chunk-KOEQIRDA.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-H5TODUJ3.js";
16
+ } from "./chunk-I7LP4DKM.js";
17
17
 
18
18
  // src/cli/net.ts
19
19
  import { createRequire } from "module";
@@ -4,7 +4,7 @@ import {
4
4
  postLiveSession,
5
5
  postLiveSessionUntilAccepted,
6
6
  startLiveSessionHeartbeat
7
- } from "./chunk-R7BP6ZEW.js";
7
+ } from "./chunk-UKCCVMI2.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-PPW3K5DR.js";
17
+ } from "./chunk-QASBFNVD.js";
18
18
  import {
19
19
  repositoryScopeFor
20
- } from "./chunk-SDMGCRO3.js";
20
+ } from "./chunk-WELDACYF.js";
21
21
  import {
22
22
  isAskUserResponse,
23
23
  isDecisionStopped,
24
24
  isWaitForAnswerResponse,
25
25
  withdrawQuestion,
26
26
  writeDegraded
27
- } from "./chunk-PBM565KU.js";
27
+ } from "./chunk-YQVZQM53.js";
28
28
  import {
29
29
  callMcpTool,
30
30
  isRetryable
31
- } from "./chunk-3CYXPFGA.js";
31
+ } from "./chunk-PZLNBKMS.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-H5TODUJ3.js";
55
+ } from "./chunk-I7LP4DKM.js";
56
56
 
57
57
  // src/codex-question-owner.ts
58
58
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-S5B3LKOP.js";
3
+ } from "./chunk-JBWEGNKE.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -24,7 +24,7 @@ import {
24
24
  reportableSessionId,
25
25
  toToolLookup,
26
26
  truncateLine
27
- } from "./chunk-H5TODUJ3.js";
27
+ } from "./chunk-I7LP4DKM.js";
28
28
 
29
29
  // ../hook-mapping/src/commit-receipt.ts
30
30
  var COMMIT_OUTPUT_MAX_LENGTH = 65536;
@@ -2,10 +2,10 @@ import {
2
2
  SIGNED_OUT_ON_MAC_MESSAGE,
3
3
  describeSignedOutKey,
4
4
  readSignedOutDiagnosis
5
- } from "./chunk-FKVPV3SH.js";
5
+ } from "./chunk-4PXJ2LBU.js";
6
6
  import {
7
7
  APPROVAL_RULES_PATH
8
- } from "./chunk-7ELMLTD7.js";
8
+ } from "./chunk-NPMVVR6I.js";
9
9
  import {
10
10
  createIo
11
11
  } from "./chunk-FO3MDD26.js";
@@ -14,19 +14,19 @@ import {
14
14
  checkApiKey,
15
15
  describeKeyCheck,
16
16
  keyCheckFromResponse
17
- } from "./chunk-Z3WNBZG6.js";
17
+ } from "./chunk-QQ24SUBD.js";
18
18
  import {
19
19
  readKeySource
20
- } from "./chunk-S5B3LKOP.js";
20
+ } from "./chunk-JBWEGNKE.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-NGWG2CHI.js";
23
+ } from "./chunk-KOEQIRDA.js";
24
24
  import {
25
25
  EXIT
26
26
  } from "./chunk-BG4HHB7E.js";
27
27
  import {
28
28
  KEY_SCOPE
29
- } from "./chunk-H5TODUJ3.js";
29
+ } from "./chunk-I7LP4DKM.js";
30
30
 
31
31
  // src/cli/report-key.ts
32
32
  var { dim, yellow } = createIo();
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  readMacAppAgentKey
3
- } from "./chunk-4Q5J3HRJ.js";
3
+ } from "./chunk-F5C6XZZ7.js";
4
4
  import {
5
5
  API_KEYS_PATH
6
- } from "./chunk-7ELMLTD7.js";
6
+ } from "./chunk-NPMVVR6I.js";
7
7
  import {
8
8
  absoluteUrl
9
- } from "./chunk-Z3WNBZG6.js";
9
+ } from "./chunk-QQ24SUBD.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-S5B3LKOP.js";
19
+ } from "./chunk-JBWEGNKE.js";
20
20
  import {
21
21
  isValidApiKey
22
- } from "./chunk-H5TODUJ3.js";
22
+ } from "./chunk-I7LP4DKM.js";
23
23
 
24
24
  // src/key-revocation.ts
25
25
  var SELF_REVOKE_PATH = "/api/v1/server/keys/self/revoke";
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  cursorGateOwnsClaudeCall,
3
3
  readCursorGateRegistration
4
- } from "./chunk-DGZGCKDA.js";
4
+ } from "./chunk-XSUNHOAP.js";
5
5
  import {
6
6
  registerTranscript
7
- } from "./chunk-ZETS7HPG.js";
7
+ } from "./chunk-K5H4YAMZ.js";
8
8
  import {
9
9
  namedEvent
10
- } from "./chunk-5LWC7PSM.js";
10
+ } from "./chunk-OP2ZDOBR.js";
11
11
  import {
12
12
  writeDegraded
13
- } from "./chunk-PBM565KU.js";
13
+ } from "./chunk-YQVZQM53.js";
14
14
  import {
15
15
  claudeShapedHookInput,
16
16
  hookCompatibleProfileBySource,
17
17
  isGrokHookPayload,
18
18
  isGrokSessionEndStop
19
- } from "./chunk-H5TODUJ3.js";
19
+ } from "./chunk-I7LP4DKM.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"];
@@ -101,7 +101,10 @@ var readHookInputOutcome = async (source, fallbackEvent = "", stdin = process.st
101
101
  const shaped = inClaudeShape(source, namedEvent(process.argv) ?? fallbackEvent, parsed);
102
102
  if (source === "grok" && isGrokSessionEndStop(shaped.hook_event_name, shaped.reason)) return UNREADABLE;
103
103
  const input = parseInput ? parseInput(shaped) : shaped;
104
- if (input === null) return UNREADABLE;
104
+ if (input === null) {
105
+ writeDegraded("hook", { reason: "unreadable_input", fallback: "could not read this call, so Pushary did not judge it", event: fallbackEvent });
106
+ return UNREADABLE;
107
+ }
105
108
  const event = eventNameOf(input) ?? fallbackEvent;
106
109
  if (!isAdmitted(readAdmissionRules(), source, event)) return { kind: "not_admitted", input };
107
110
  if (stdin === process.stdin) registerTranscript(source, input);
@@ -8488,6 +8488,13 @@ var askAtTheRouteOfAPushOfTheCurrentBranch = (input, repoKey) => {
8488
8488
  return void 0;
8489
8489
  };
8490
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;
8491
+ var SCOPE_QUESTION_FIRST_WAIT_SECONDS = 30;
8492
+ var policyForScopeQuestion = (policy) => policy.timeoutAction === "approve" ? {
8493
+ ...policy,
8494
+ mode: policy.mode === "push_only" ? "push_first" : policy.mode,
8495
+ timeoutAction: "wait",
8496
+ pushFirstSeconds: policy.pushFirstSeconds > 0 ? policy.pushFirstSeconds : SCOPE_QUESTION_FIRST_WAIT_SECONDS
8497
+ } : policy;
8491
8498
  var resolveGate = (input) => {
8492
8499
  const { modeState, config, toolName, toolInputs, cwd, sessionId } = input;
8493
8500
  const repoKey = input.sharedRepoKey ?? input.repoKey;
@@ -8521,6 +8528,9 @@ var resolveGate = (input) => {
8521
8528
  const scopeVerdict = modeState.scope ? strictestScopeVerdict(modeState.scope, input.scopePaths ?? []) : { outcome: "no_contract" };
8522
8529
  if (autoApproves) {
8523
8530
  if (!scopeRequiresHuman(scopeVerdict)) {
8531
+ if (config.knownSuperseded === true && !survivesDegraded(config, toolName, toolInputs, cwd, repoKey, sessionId)) {
8532
+ return { kind: "defer", policy };
8533
+ }
8524
8534
  return {
8525
8535
  kind: "allow",
8526
8536
  policy: allowedByBypassMode ? autoApprove(policy.tool) : policy,
@@ -8531,7 +8541,7 @@ var resolveGate = (input) => {
8531
8541
  const scopeReason = scopeChangeReason(scopeVerdict);
8532
8542
  return {
8533
8543
  kind: "gate",
8534
- policy: askedPolicy,
8544
+ policy: scopeReason ? policyForScopeQuestion(askedPolicy) : askedPolicy,
8535
8545
  scopeReason,
8536
8546
  scopePath: scopeReason && "path" in scopeVerdict ? widenablePath(scopeVerdict.path) : void 0
8537
8547
  };
@@ -8749,6 +8759,7 @@ var mcpCallCouldBeHeldForSomeoneElse = (toolName, permissionMode) => permissionM
8749
8759
  var approvalRouteHoldsMcpCall = (input, verdict, permissionMode) => mcpCallCouldBeHeldForSomeoneElse(input.toolName, permissionMode) && verdictCanHoldTheCall(verdict) && namedRouteWaitsForSomeoneElse(input);
8750
8760
  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);
8751
8761
  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);
8762
+ var isProvenModeResponse = (value) => isRecord(value) && typeof value.kill === "boolean";
8752
8763
  var toPolicyVersion = (value) => typeof value === "string" || typeof value === "number" ? String(value) : null;
8753
8764
  var modeStateFromResponse = (data) => {
8754
8765
  const mode = data.override?.mode;
@@ -9247,6 +9258,7 @@ export {
9247
9258
  answersToQuestionsAsAsked,
9248
9259
  normalizeInstallSource,
9249
9260
  HOOK_BUDGETS,
9261
+ hookMaxWaitSeconds,
9250
9262
  HOOK_HOLD_BUDGET_ENV,
9251
9263
  withHookHoldBudget,
9252
9264
  hookCommandHoldBudget,
@@ -9337,6 +9349,7 @@ export {
9337
9349
  approvalRouteHoldsMcpCall,
9338
9350
  claudeAllowlistOwnsCall,
9339
9351
  claudePromptTakesTheCall,
9352
+ isProvenModeResponse,
9340
9353
  modeStateFromResponse,
9341
9354
  GATE_WIRE,
9342
9355
  GATE_MAX_TOOL_INPUTS,
@@ -399,9 +399,9 @@ var installGlobally = (options) => {
399
399
  }
400
400
  const started = (async () => {
401
401
  if (!npmIsOnPath()) throw new NpmMissingError();
402
- const { withUpgradeLock } = await import("./global-upgrade-BTHOIZK5.js");
403
- const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-LQQDJAEJ.js");
404
- const { autoUpdateLock } = await import("./paths-BVROPWE2.js");
402
+ const { withUpgradeLock } = await import("./global-upgrade-KKFYAQVO.js");
403
+ const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-6HGNG7RT.js");
404
+ const { autoUpdateLock } = await import("./paths-5XEJTZAS.js");
405
405
  let result = "skipped";
406
406
  const install = async () => {
407
407
  const platform = process.platform;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  resolveInstallSourceFor
3
- } from "./chunk-WACBGAWA.js";
3
+ } from "./chunk-46ZIEQGC.js";
4
4
  import {
5
5
  configFilePath
6
- } from "./chunk-NGWG2CHI.js";
6
+ } from "./chunk-KOEQIRDA.js";
7
7
  import {
8
8
  backupFile,
9
9
  readJsonSafe,
@@ -14,7 +14,7 @@ import {
14
14
  API_KEY_PREFIX_PATTERN,
15
15
  isRecord,
16
16
  isValidApiKey
17
- } from "./chunk-H5TODUJ3.js";
17
+ } from "./chunk-I7LP4DKM.js";
18
18
 
19
19
  // src/shell-alias.ts
20
20
  import { homedir } from "os";
@@ -7,13 +7,13 @@ import {
7
7
  } from "./chunk-G66WIAST.js";
8
8
  import {
9
9
  ensureDaemonRunning
10
- } from "./chunk-LQQWATPA.js";
10
+ } from "./chunk-SAISSZZA.js";
11
11
  import {
12
12
  hookOwnerOf
13
- } from "./chunk-VAT53KQR.js";
13
+ } from "./chunk-LWY2U7NZ.js";
14
14
  import {
15
15
  hookMeaning
16
- } from "./chunk-27CV6IXW.js";
16
+ } from "./chunk-GAYUSL24.js";
17
17
  import {
18
18
  buildTranscriptRecords,
19
19
  decodePublicKey,
@@ -24,29 +24,29 @@ import {
24
24
  recordSealerFor,
25
25
  uploadTranscriptRecords,
26
26
  wrapSessionKey
27
- } from "./chunk-DMY2J2MY.js";
27
+ } from "./chunk-XWVEAAZO.js";
28
28
  import {
29
29
  external_exports
30
30
  } from "./chunk-XMSDA5WA.js";
31
31
  import {
32
32
  transcriptEnvironmentPreference,
33
33
  transcriptsEnabled
34
- } from "./chunk-Q3GYEEOM.js";
34
+ } from "./chunk-EJYLQNMC.js";
35
35
  import {
36
36
  fetchAsCredential
37
- } from "./chunk-JSTA2JTL.js";
37
+ } from "./chunk-7K6DZPYV.js";
38
38
  import {
39
39
  readTranscriptPreference
40
- } from "./chunk-S5B3LKOP.js";
40
+ } from "./chunk-JBWEGNKE.js";
41
41
  import {
42
42
  claudeConfigDir,
43
43
  codexHome,
44
44
  pusharyDir
45
- } from "./chunk-ZUVDQOU6.js";
45
+ } from "./chunk-A23GIPWY.js";
46
46
  import {
47
47
  getApiKey,
48
48
  getBaseUrl
49
- } from "./chunk-NGWG2CHI.js";
49
+ } from "./chunk-KOEQIRDA.js";
50
50
  import {
51
51
  writeJsonAtomic,
52
52
  writeJsonAtomicDurable
@@ -58,7 +58,7 @@ import {
58
58
  isHookSource,
59
59
  isRecord,
60
60
  redactSecretsFromContent
61
- } from "./chunk-H5TODUJ3.js";
61
+ } from "./chunk-I7LP4DKM.js";
62
62
 
63
63
  // src/transcript-recipient-pin.ts
64
64
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-TWRDOVN4.js";
3
+ } from "./chunk-CKR43BBJ.js";
4
4
 
5
5
  // src/config.ts
6
6
  import { readFileSync } from "fs";
@@ -12,7 +12,7 @@ import {
12
12
  reachVerdict,
13
13
  reachesYou,
14
14
  verifyDelivery
15
- } from "./chunk-6FMHWS6M.js";
15
+ } from "./chunk-TOUMNM7M.js";
16
16
  import {
17
17
  humanIsTty,
18
18
  writeHuman
@@ -24,14 +24,14 @@ import {
24
24
  } from "./chunk-FO3MDD26.js";
25
25
  import {
26
26
  reportedInstallSource
27
- } from "./chunk-WACBGAWA.js";
27
+ } from "./chunk-46ZIEQGC.js";
28
28
  import {
29
29
  NPX_LATEST_COMMAND
30
- } from "./chunk-TWRDOVN4.js";
30
+ } from "./chunk-CKR43BBJ.js";
31
31
  import {
32
32
  NO_PAIRING_COMPUTER,
33
33
  PAIR_TTL_SECONDS
34
- } from "./chunk-H5TODUJ3.js";
34
+ } from "./chunk-I7LP4DKM.js";
35
35
 
36
36
  // src/onboarding.ts
37
37
  import qrcodeTerminal from "qrcode-terminal";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  AGENT_CHOICES
3
- } from "./chunk-OEXJ7AJO.js";
3
+ } from "./chunk-CUQOWRYT.js";
4
4
  import {
5
5
  BELL_HOOK_BINARY
6
- } from "./chunk-NXEOD5JC.js";
6
+ } from "./chunk-7YQPI4UE.js";
7
7
  import {
8
8
  CLAUDE_HOOK_EVENTS,
9
9
  CODEX_HOOK_EVENTS,
@@ -15,13 +15,13 @@ import {
15
15
  isBridgeLocator,
16
16
  isProtectedByScope,
17
17
  registerHookEntry
18
- } from "./chunk-ZUVDQOU6.js";
18
+ } from "./chunk-A23GIPWY.js";
19
19
  import {
20
20
  CURSOR_GATE_EVENTS,
21
21
  HOOK_BUDGETS,
22
22
  HOOK_LOCATOR_BINARY,
23
23
  hookCommandHoldBudget
24
- } from "./chunk-H5TODUJ3.js";
24
+ } from "./chunk-I7LP4DKM.js";
25
25
 
26
26
  // src/gemini-config.ts
27
27
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -3,24 +3,24 @@ import {
3
3
  expectedLaunchCapabilities,
4
4
  hasSpawnProvider,
5
5
  resolveControlPolicy
6
- } from "./chunk-FHRXFUGD.js";
6
+ } from "./chunk-6UN3AUIS.js";
7
7
  import {
8
8
  daemonHasRemoteProof,
9
9
  daemonServiceManagerAvailable,
10
10
  hasDaemonServiceDefinition,
11
11
  readDaemonNeedsLogin,
12
12
  readDaemonStatus
13
- } from "./chunk-LQQWATPA.js";
13
+ } from "./chunk-SAISSZZA.js";
14
14
  import {
15
15
  getMachineId
16
- } from "./chunk-TNQ5JFCV.js";
16
+ } from "./chunk-A2TAWW5L.js";
17
17
  import {
18
18
  readControlMode,
19
19
  readKeySource
20
- } from "./chunk-S5B3LKOP.js";
20
+ } from "./chunk-JBWEGNKE.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-NGWG2CHI.js";
23
+ } from "./chunk-KOEQIRDA.js";
24
24
  import {
25
25
  getPackageVersion
26
26
  } from "./chunk-ZVU6WMMU.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SESSION
3
- } from "./chunk-XUHDUD34.js";
3
+ } from "./chunk-UNXVORET.js";
4
4
 
5
5
  // src/answer.ts
6
6
  var isDeferAnswer = (value) => value === "defer";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  compatibleConfigFile,
3
3
  hasCompatibleHooks
4
- } from "./chunk-5LWC7PSM.js";
4
+ } from "./chunk-OP2ZDOBR.js";
5
5
  import {
6
6
  pusharyHookExecutable
7
- } from "./chunk-VAT53KQR.js";
7
+ } from "./chunk-LWY2U7NZ.js";
8
8
  import {
9
9
  isProtectedByScope,
10
10
  registerHookEntry
11
- } from "./chunk-ZUVDQOU6.js";
11
+ } from "./chunk-A23GIPWY.js";
12
12
  import {
13
13
  isRecord
14
- } from "./chunk-H5TODUJ3.js";
14
+ } from "./chunk-I7LP4DKM.js";
15
15
 
16
16
  // src/cursor-config.ts
17
17
  var hookCommandOf = (entry) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-ZUVDQOU6.js";
3
+ } from "./chunk-A23GIPWY.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-H5TODUJ3.js";
16
+ } from "./chunk-I7LP4DKM.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  absoluteUrl
3
- } from "./chunk-Z3WNBZG6.js";
3
+ } from "./chunk-QQ24SUBD.js";
4
4
  import {
5
5
  KEY_SCOPE
6
- } from "./chunk-H5TODUJ3.js";
6
+ } from "./chunk-I7LP4DKM.js";
7
7
 
8
8
  // src/cli/approval-settings-pages.ts
9
9
  var API_KEYS_PATH = "/dashboard/agent/settings";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  CLAUDE_CODE_AGENT
3
- } from "./chunk-XUHDUD34.js";
3
+ } from "./chunk-UNXVORET.js";
4
4
  import {
5
5
  addGeminiMcpServer,
6
6
  removeGeminiMcpServer
7
- } from "./chunk-VAT53KQR.js";
7
+ } from "./chunk-LWY2U7NZ.js";
8
8
  import {
9
9
  compatibleToolLookup
10
- } from "./chunk-27CV6IXW.js";
10
+ } from "./chunk-GAYUSL24.js";
11
11
  import {
12
12
  CLAUDE_HOOK_EVENTS,
13
13
  PUSHARY_MCP_URL,
@@ -19,7 +19,7 @@ import {
19
19
  isPusharyHook,
20
20
  registerHookEntry,
21
21
  removeClaudeMcpServers
22
- } from "./chunk-ZUVDQOU6.js";
22
+ } from "./chunk-A23GIPWY.js";
23
23
  import {
24
24
  HOOK_COMPATIBLE_PROFILES,
25
25
  PHONE_ANSWERED_TOOLS,
@@ -30,7 +30,7 @@ import {
30
30
  pusharyMissingReason,
31
31
  refusalOutput,
32
32
  withHookHoldBudget
33
- } from "./chunk-H5TODUJ3.js";
33
+ } from "./chunk-I7LP4DKM.js";
34
34
 
35
35
  // src/config-document.ts
36
36
  import { parse, stringify } from "smol-toml";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-BG4HHB7E.js";
8
8
  import {
9
9
  redactSecretsFromContent
10
- } from "./chunk-H5TODUJ3.js";
10
+ } from "./chunk-I7LP4DKM.js";
11
11
 
12
12
  // src/cli/json.ts
13
13
  var writeStdoutFully = (text) => new Promise((resolve, reject) => {
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  keyCheckFromResponse
3
- } from "./chunk-Z3WNBZG6.js";
3
+ } from "./chunk-QQ24SUBD.js";
4
4
  import {
5
5
  installNetworkDefaults
6
- } from "./chunk-PH4LJXTG.js";
6
+ } from "./chunk-FEP7FXBP.js";
7
7
  import {
8
8
  fetchAsCredential
9
- } from "./chunk-JSTA2JTL.js";
9
+ } from "./chunk-7K6DZPYV.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-NGWG2CHI.js";
12
+ } from "./chunk-KOEQIRDA.js";
13
13
  import {
14
14
  isRecord,
15
15
  isToolErrorResult,
16
16
  toolFailureCodeOfResult
17
- } from "./chunk-H5TODUJ3.js";
17
+ } from "./chunk-I7LP4DKM.js";
18
18
 
19
19
  // src/retry.ts
20
20
  var isRetryable = (err) => {
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-ROVLRXBI.js";
4
4
  import {
5
5
  parseVersion
6
- } from "./chunk-FU33PDFG.js";
6
+ } from "./chunk-IKX4X4LJ.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-H5TODUJ3.js";
9
+ } from "./chunk-I7LP4DKM.js";
10
10
 
11
11
  // src/setup/agent-probe.ts
12
12
  import { execSync } from "child_process";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-ZUVDQOU6.js";
3
+ } from "./chunk-A23GIPWY.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-T5I4PKOQ.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-H5TODUJ3.js";
9
+ } from "./chunk-I7LP4DKM.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-ZUVDQOU6.js";
6
+ } from "./chunk-A23GIPWY.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ZVU6WMMU.js";
18
18
  import {
19
19
  isAutoUpdateResult
20
- } from "./chunk-H5TODUJ3.js";
20
+ } from "./chunk-I7LP4DKM.js";
21
21
 
22
22
  // src/auto-update.ts
23
23
  import { spawn } from "child_process";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pusharyFetch
3
- } from "./chunk-PH4LJXTG.js";
3
+ } from "./chunk-FEP7FXBP.js";
4
4
  import {
5
5
  getBaseUrl
6
- } from "./chunk-NGWG2CHI.js";
6
+ } from "./chunk-KOEQIRDA.js";
7
7
  import {
8
8
  NetworkError
9
9
  } from "./chunk-YU2EUD7O.js";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-H5TODUJ3.js";
16
+ } from "./chunk-I7LP4DKM.js";
17
17
 
18
18
  // src/session.ts
19
19
  var samePusharyAccount = (left, right) => left.kind === "ok" && right.kind === "ok" && left.identity.workspaceId !== "" && left.identity.workspaceId === right.identity.workspaceId && left.identity.siteId === right.identity.siteId;