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
@@ -2,43 +2,43 @@
2
2
  import {
3
3
  waitResponse,
4
4
  waitWindowResponse
5
- } from "../chunk-CBJXUJ4Y.js";
5
+ } from "../chunk-2WCARUXQ.js";
6
6
  import {
7
7
  exitOnFailedSettingsRequest
8
- } from "../chunk-4WG5XTKS.js";
8
+ } from "../chunk-GX3QCU32.js";
9
9
  import {
10
10
  describeWaitLadder
11
11
  } from "../chunk-CVWG2N3Y.js";
12
- import "../chunk-FKVPV3SH.js";
12
+ import "../chunk-4PXJ2LBU.js";
13
13
  import {
14
14
  APPROVAL_RULES_PATH,
15
15
  PUSH_WINDOW_COMMAND,
16
16
  PUSH_WINDOW_RESET_COMMAND
17
- } from "../chunk-7ELMLTD7.js";
17
+ } from "../chunk-NPMVVR6I.js";
18
18
  import {
19
19
  createIo
20
20
  } from "../chunk-FO3MDD26.js";
21
21
  import {
22
22
  exitOnHelpFlag
23
- } from "../chunk-EQZKJXHE.js";
23
+ } from "../chunk-T5N42XDU.js";
24
24
  import {
25
25
  parseFlags
26
26
  } from "../chunk-YPY4YCIZ.js";
27
27
  import {
28
28
  absoluteUrl
29
- } from "../chunk-Z3WNBZG6.js";
29
+ } from "../chunk-QQ24SUBD.js";
30
30
  import {
31
31
  pusharyFetch
32
- } from "../chunk-PH4LJXTG.js";
33
- import "../chunk-TNQ5JFCV.js";
34
- import "../chunk-S5B3LKOP.js";
35
- import "../chunk-WACBGAWA.js";
36
- import "../chunk-ZUVDQOU6.js";
37
- import "../chunk-FU33PDFG.js";
32
+ } from "../chunk-FEP7FXBP.js";
33
+ import "../chunk-A2TAWW5L.js";
34
+ import "../chunk-JBWEGNKE.js";
35
+ import "../chunk-46ZIEQGC.js";
36
+ import "../chunk-A23GIPWY.js";
37
+ import "../chunk-IKX4X4LJ.js";
38
38
  import {
39
39
  getApiKey,
40
40
  getBaseUrl
41
- } from "../chunk-NGWG2CHI.js";
41
+ } from "../chunk-KOEQIRDA.js";
42
42
  import {
43
43
  UsageError,
44
44
  exitCodeFor
@@ -47,9 +47,9 @@ import "../chunk-T5I4PKOQ.js";
47
47
  import {
48
48
  EXIT
49
49
  } from "../chunk-BG4HHB7E.js";
50
- import "../chunk-TWRDOVN4.js";
50
+ import "../chunk-CKR43BBJ.js";
51
51
  import "../chunk-ZVU6WMMU.js";
52
- import "../chunk-H5TODUJ3.js";
52
+ import "../chunk-I7LP4DKM.js";
53
53
  import "../chunk-MLKGABMK.js";
54
54
 
55
55
  // bin/pushary-wait.ts
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  installNetworkDefaults
4
- } from "../chunk-PH4LJXTG.js";
5
- import "../chunk-TNQ5JFCV.js";
6
- import "../chunk-ZUVDQOU6.js";
7
- import "../chunk-FU33PDFG.js";
8
- import "../chunk-NGWG2CHI.js";
4
+ } from "../chunk-FEP7FXBP.js";
5
+ import "../chunk-A2TAWW5L.js";
6
+ import "../chunk-A23GIPWY.js";
7
+ import "../chunk-IKX4X4LJ.js";
8
+ import "../chunk-KOEQIRDA.js";
9
9
  import "../chunk-YU2EUD7O.js";
10
10
  import "../chunk-T5I4PKOQ.js";
11
11
  import {
@@ -15,11 +15,11 @@ import {
15
15
  LISTED_COMMANDS,
16
16
  renderHelp,
17
17
  resolveCommandName
18
- } from "../chunk-TWRDOVN4.js";
18
+ } from "../chunk-CKR43BBJ.js";
19
19
  import {
20
20
  getPackageVersion
21
21
  } from "../chunk-ZVU6WMMU.js";
22
- import "../chunk-H5TODUJ3.js";
22
+ import "../chunk-I7LP4DKM.js";
23
23
  import "../chunk-MLKGABMK.js";
24
24
 
25
25
  // src/cli/runtime.ts
@@ -2,7 +2,7 @@ import {
2
2
  isApprovalMode,
3
3
  isRecord,
4
4
  isTimeoutAction
5
- } from "./chunk-H5TODUJ3.js";
5
+ } from "./chunk-I7LP4DKM.js";
6
6
 
7
7
  // src/cli/settings-response.ts
8
8
  var isFiniteNumber = (value) => typeof value === "number" && Number.isFinite(value);
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  configFilePath
3
- } from "./chunk-NGWG2CHI.js";
3
+ } from "./chunk-KOEQIRDA.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-H5TODUJ3.js";
6
+ } from "./chunk-I7LP4DKM.js";
7
7
 
8
8
  // src/install-source.ts
9
9
  import { readFileSync } from "fs";
@@ -4,10 +4,10 @@ import {
4
4
  keyPrefix,
5
5
  readConfigFileKey,
6
6
  readMacAppKeyPrefix
7
- } from "./chunk-S5B3LKOP.js";
7
+ } from "./chunk-JBWEGNKE.js";
8
8
  import {
9
9
  NPX_LATEST_COMMAND
10
- } from "./chunk-TWRDOVN4.js";
10
+ } from "./chunk-CKR43BBJ.js";
11
11
 
12
12
  // src/key-signed-out.ts
13
13
  var VERDICT_BY_CHECK = {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  parseSseMessages
3
- } from "./chunk-3CYXPFGA.js";
3
+ } from "./chunk-PZLNBKMS.js";
4
4
  import {
5
5
  fetchAsCredential
6
- } from "./chunk-JSTA2JTL.js";
6
+ } from "./chunk-7K6DZPYV.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-TWRDOVN4.js";
9
+ } from "./chunk-CKR43BBJ.js";
10
10
 
11
11
  // src/mcp-stdio-bridge.ts
12
12
  var MCP_BRIDGE_BINARY = "pushary-mcp";
@@ -0,0 +1,60 @@
1
+ import {
2
+ AUTO_DECISION_WINDOW_MS,
3
+ DEFAULT_SESSION,
4
+ claimThrottle,
5
+ releaseThrottle,
6
+ reportEvent
7
+ } from "./chunk-UNXVORET.js";
8
+ import {
9
+ deriveToolTarget,
10
+ permissionDeniedAction
11
+ } from "./chunk-GAYUSL24.js";
12
+ import {
13
+ machineDecisionFor,
14
+ wireVerdictFor
15
+ } from "./chunk-I7LP4DKM.js";
16
+
17
+ // src/machine-decision-audit.ts
18
+ import { basename } from "path";
19
+ var reportMachineDenial = async (input, verdict, agent) => {
20
+ const decision = machineDecisionFor(wireVerdictFor(verdict, 0));
21
+ if (!decision) return;
22
+ const sessionKey = input.session_id || DEFAULT_SESSION;
23
+ const toolTarget = deriveToolTarget(input.tool_name, input.tool_input);
24
+ const throttleKey = `machinedecision:${agent.type}:${sessionKey}:${input.tool_name}:${decision.origin}:${toolTarget ?? ""}`;
25
+ const throttle = claimThrottle(throttleKey, AUTO_DECISION_WINDOW_MS);
26
+ if (throttle === "throttled") return;
27
+ if (throttle === "unavailable") {
28
+ console.error("[Pushary] Could not access the audit throttle; reporting this denial without deduplication.");
29
+ }
30
+ try {
31
+ const response = await reportEvent({
32
+ event: "permission_denied",
33
+ occurredAt: (/* @__PURE__ */ new Date()).toISOString(),
34
+ toolUseId: input.tool_use_id,
35
+ agentType: agent.type,
36
+ agentName: `${agent.label} - ${basename(input.cwd ?? process.cwd())}`,
37
+ action: permissionDeniedAction(input.tool_name),
38
+ sessionId: input.session_id,
39
+ decisionSource: "policy_auto",
40
+ decisionOrigin: decision.origin,
41
+ decisionOutcome: decision.outcome,
42
+ toolName: input.tool_name,
43
+ toolTarget
44
+ }, { maxAttempts: 1, timeoutMs: 800, requireOk: true, skipDrain: true });
45
+ if (response?.ok !== true) throw new Error("Audit delivery was not acknowledged");
46
+ } catch {
47
+ console.error("[Pushary] Could not record the machine denial. The action remains blocked; its audit delivery will be retried on the next matching denial.");
48
+ if (throttle === "passed") {
49
+ try {
50
+ releaseThrottle(throttleKey);
51
+ } catch {
52
+ console.error("[Pushary] Could not reset the failed audit throttle.");
53
+ }
54
+ }
55
+ }
56
+ };
57
+
58
+ export {
59
+ reportMachineDenial
60
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  realpath
3
- } from "./chunk-BVN3WPDZ.js";
3
+ } from "./chunk-Q64D24NF.js";
4
4
  import {
5
5
  findNativeClaudeInstall
6
6
  } from "./chunk-ROVLRXBI.js";
@@ -13,10 +13,10 @@ import {
13
13
  resolvePackageVersionFromBinary,
14
14
  resolvePathBinary,
15
15
  resolvePathBinaryAsync
16
- } from "./chunk-FU33PDFG.js";
16
+ } from "./chunk-IKX4X4LJ.js";
17
17
  import {
18
18
  MANAGED_PROVIDERS
19
- } from "./chunk-H5TODUJ3.js";
19
+ } from "./chunk-I7LP4DKM.js";
20
20
 
21
21
  // src/live-capabilities.ts
22
22
  import { homedir } from "os";
@@ -5,7 +5,7 @@ import {
5
5
  MCP_CREDENTIAL_REJECTION_BODY,
6
6
  isRecord,
7
7
  responseRejectsCredential
8
- } from "./chunk-H5TODUJ3.js";
8
+ } from "./chunk-I7LP4DKM.js";
9
9
 
10
10
  // src/credential-rejection.ts
11
11
  import { createHash, randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-ZUVDQOU6.js";
3
+ } from "./chunk-A23GIPWY.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -3,7 +3,7 @@ import {
3
3
  formatVersion,
4
4
  quoteIfNeeded,
5
5
  shellDoubleQuoted
6
- } from "./chunk-FU33PDFG.js";
6
+ } from "./chunk-IKX4X4LJ.js";
7
7
  import {
8
8
  writeFileAtomic
9
9
  } from "./chunk-T5I4PKOQ.js";
@@ -18,7 +18,7 @@ import {
18
18
  HOOK_LOCATOR_BINARY,
19
19
  PRETOOLUSE_GATED_TOOLS,
20
20
  withHookHoldBudget
21
- } from "./chunk-H5TODUJ3.js";
21
+ } from "./chunk-I7LP4DKM.js";
22
22
 
23
23
  // src/setup/paths.ts
24
24
  import { createHash as createHash2 } from "crypto";
@@ -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
  writeFileAtomic
6
6
  } from "./chunk-T5I4PKOQ.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  configFilePath
3
- } from "./chunk-NGWG2CHI.js";
3
+ } from "./chunk-KOEQIRDA.js";
4
4
  import {
5
5
  readJsonSafe,
6
6
  writeJsonAtomic
7
7
  } from "./chunk-T5I4PKOQ.js";
8
8
  import {
9
9
  readSetupOutcomeProperties
10
- } from "./chunk-H5TODUJ3.js";
10
+ } from "./chunk-I7LP4DKM.js";
11
11
 
12
12
  // src/diagnostics/service-runtime.ts
13
13
  var unescapeXml = (value) => value.replaceAll("&quot;", '"').replaceAll("&apos;", "'").replaceAll("&lt;", "<").replaceAll("&gt;", ">").replaceAll("&amp;", "&");
@@ -2,16 +2,16 @@ import {
2
2
  NpmInstallError,
3
3
  NpmMissingError,
4
4
  NpmPermissionError
5
- } from "./chunk-FU33PDFG.js";
5
+ } from "./chunk-IKX4X4LJ.js";
6
6
  import {
7
7
  writeFileAtomic
8
8
  } from "./chunk-T5I4PKOQ.js";
9
9
  import {
10
10
  NPX_LATEST_COMMAND
11
- } from "./chunk-TWRDOVN4.js";
11
+ } from "./chunk-CKR43BBJ.js";
12
12
  import {
13
13
  readSetupAgentFailures
14
- } from "./chunk-H5TODUJ3.js";
14
+ } from "./chunk-I7LP4DKM.js";
15
15
 
16
16
  // src/setup/config-write.ts
17
17
  var AgentConfigWriteError = class extends Error {
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  notificationAnswerStep
3
- } from "./chunk-6FMHWS6M.js";
3
+ } from "./chunk-TOUMNM7M.js";
4
4
  import {
5
5
  canChangeApprovalSettings
6
- } from "./chunk-7ELMLTD7.js";
6
+ } from "./chunk-NPMVVR6I.js";
7
7
  import {
8
8
  matchMacAccountStep,
9
9
  retryAgentCommand
10
- } from "./chunk-4X6GTMU4.js";
10
+ } from "./chunk-B6HPULOG.js";
11
11
  import {
12
12
  EXIT
13
13
  } from "./chunk-BG4HHB7E.js";
14
14
  import {
15
15
  NPX_LATEST_COMMAND
16
- } from "./chunk-TWRDOVN4.js";
16
+ } from "./chunk-CKR43BBJ.js";
17
17
 
18
18
  // src/setup/closing.ts
19
19
  var ACTIVITY_URL = "pushary.com/dashboard/agent/activity";
@@ -1,83 +1,29 @@
1
1
  import {
2
2
  announceSubscriptionRequired,
3
3
  isDeferAnswer
4
- } from "./chunk-CJL7IMWO.js";
5
- import {
6
- AUTO_DECISION_WINDOW_MS,
7
- DEFAULT_SESSION,
8
- claimThrottle,
9
- releaseThrottle,
10
- reportEvent
11
- } from "./chunk-XUHDUD34.js";
12
- import {
13
- deriveToolTarget,
14
- permissionDeniedAction
15
- } from "./chunk-27CV6IXW.js";
4
+ } from "./chunk-MG5WFAND.js";
16
5
  import {
17
6
  askUser,
18
7
  isDecisionStopped,
19
8
  isQuestionLimitRefusal,
20
9
  waitForQuestion
21
- } from "./chunk-PBM565KU.js";
10
+ } from "./chunk-YQVZQM53.js";
22
11
  import {
23
12
  SubscriptionRequiredError
24
- } from "./chunk-3CYXPFGA.js";
13
+ } from "./chunk-PZLNBKMS.js";
25
14
  import {
26
15
  getMachineId
27
- } from "./chunk-TNQ5JFCV.js";
16
+ } from "./chunk-A2TAWW5L.js";
28
17
  import {
29
18
  ASK_CONTEXT_MAX,
30
19
  agentQuestionContext,
31
20
  answersToQuestionsAsAsked,
32
21
  isTypedAnswerQuestion,
33
- machineDecisionFor,
34
22
  parseAgentQuestionAnswers,
35
23
  plainAskOf,
36
24
  questionsShownAsASet,
37
- shouldDeferToNativeMode,
38
- wireVerdictFor
39
- } from "./chunk-H5TODUJ3.js";
40
-
41
- // src/machine-decision-audit.ts
42
- import { basename } from "path";
43
- var reportMachineDenial = async (input, verdict, agent) => {
44
- const decision = machineDecisionFor(wireVerdictFor(verdict, 0));
45
- if (!decision) return;
46
- const sessionKey = input.session_id || DEFAULT_SESSION;
47
- const toolTarget = deriveToolTarget(input.tool_name, input.tool_input);
48
- const throttleKey = `machinedecision:${agent.type}:${sessionKey}:${input.tool_name}:${decision.origin}:${toolTarget ?? ""}`;
49
- const throttle = claimThrottle(throttleKey, AUTO_DECISION_WINDOW_MS);
50
- if (throttle === "throttled") return;
51
- if (throttle === "unavailable") {
52
- console.error("[Pushary] Could not access the audit throttle; reporting this denial without deduplication.");
53
- }
54
- try {
55
- const response = await reportEvent({
56
- event: "permission_denied",
57
- occurredAt: (/* @__PURE__ */ new Date()).toISOString(),
58
- toolUseId: input.tool_use_id,
59
- agentType: agent.type,
60
- agentName: `${agent.label} - ${basename(input.cwd ?? process.cwd())}`,
61
- action: permissionDeniedAction(input.tool_name),
62
- sessionId: input.session_id,
63
- decisionSource: "policy_auto",
64
- decisionOrigin: decision.origin,
65
- decisionOutcome: decision.outcome,
66
- toolName: input.tool_name,
67
- toolTarget
68
- }, { maxAttempts: 1, timeoutMs: 800, requireOk: true, skipDrain: true });
69
- if (response?.ok !== true) throw new Error("Audit delivery was not acknowledged");
70
- } catch {
71
- console.error("[Pushary] Could not record the machine denial. The action remains blocked; its audit delivery will be retried on the next matching denial.");
72
- if (throttle === "passed") {
73
- try {
74
- releaseThrottle(throttleKey);
75
- } catch {
76
- console.error("[Pushary] Could not reset the failed audit throttle.");
77
- }
78
- }
79
- }
80
- };
25
+ shouldDeferToNativeMode
26
+ } from "./chunk-I7LP4DKM.js";
81
27
 
82
28
  // src/native-defer.ts
83
29
  var nativeDeferOptions = () => {
@@ -188,7 +134,6 @@ var askAgentQuestions = (apiKey, call, questions) => {
188
134
  };
189
135
 
190
136
  export {
191
- reportMachineDenial,
192
137
  defersToNativeMode,
193
138
  outcomeOfFailedAsk,
194
139
  storedWaitDeadline,
@@ -7,10 +7,10 @@ import {
7
7
  codexHome,
8
8
  codexHooksJsonIn,
9
9
  isPusharyCodexCommand
10
- } from "./chunk-ZUVDQOU6.js";
10
+ } from "./chunk-A23GIPWY.js";
11
11
  import {
12
12
  resolvePathBinary
13
- } from "./chunk-FU33PDFG.js";
13
+ } from "./chunk-IKX4X4LJ.js";
14
14
  import {
15
15
  getPackageVersion
16
16
  } from "./chunk-ZVU6WMMU.js";
@@ -9,13 +9,13 @@ import {
9
9
  installedCodexApp,
10
10
  readCodexAppRuntime,
11
11
  shellQuoted
12
- } from "./chunk-PPYNBRU6.js";
12
+ } from "./chunk-D3PHTY54.js";
13
13
  import {
14
14
  writeHuman
15
15
  } from "./chunk-QCGNGEGE.js";
16
16
  import {
17
17
  xml
18
- } from "./chunk-LQQWATPA.js";
18
+ } from "./chunk-SAISSZZA.js";
19
19
  import {
20
20
  writeFileAtomic
21
21
  } from "./chunk-T5I4PKOQ.js";
@@ -2,7 +2,7 @@ import {
2
2
  DISCONNECT_AGENT_IDS,
3
3
  SETUP_AGENT_CHOICES,
4
4
  isApprovalMode
5
- } from "./chunk-H5TODUJ3.js";
5
+ } from "./chunk-I7LP4DKM.js";
6
6
 
7
7
  // src/cli/mode-request.ts
8
8
  var parseDuration = (value) => {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  ensureCodexTrustsPusharyHooks
3
- } from "./chunk-7THCN7FJ.js";
3
+ } from "./chunk-BUNRL7QV.js";
4
4
  import {
5
5
  hermesReceiptPaths,
6
6
  hermesSetupPredatesThePluginFolder,
7
7
  installHermesPlugin,
8
8
  refreshHermesPluginFiles,
9
9
  shippedHermesPlugin
10
- } from "./chunk-RQGMDAHY.js";
10
+ } from "./chunk-X4UWBBFI.js";
11
11
  import {
12
12
  fxIgnoresInstructionsFile,
13
13
  fxInstructionsBody,
@@ -16,7 +16,7 @@ import {
16
16
  macAppFxBridge,
17
17
  refreshClineKey,
18
18
  switchFxHttpEntryToBridge
19
- } from "./chunk-PCRLVQW3.js";
19
+ } from "./chunk-VIR7SCIQ.js";
20
20
  import {
21
21
  OPENCODE_HOOK_BINARY,
22
22
  agentHookOwner,
@@ -28,16 +28,16 @@ import {
28
28
  openCodePluginDir,
29
29
  openCodeWired,
30
30
  withOpenCodeAskRules
31
- } from "./chunk-GB5E3JHR.js";
31
+ } from "./chunk-WZZHWX7Q.js";
32
32
  import {
33
33
  detectClaudeVersion
34
- } from "./chunk-BVN3WPDZ.js";
34
+ } from "./chunk-Q64D24NF.js";
35
35
  import {
36
36
  addCompatibleHooks,
37
37
  compatibleConfigFile,
38
38
  compatibleInstructionsFile,
39
39
  hasCompatibleHooks
40
- } from "./chunk-5LWC7PSM.js";
40
+ } from "./chunk-OP2ZDOBR.js";
41
41
  import {
42
42
  GEMINI_HOOK_BINARY,
43
43
  addGeminiHooks,
@@ -49,7 +49,7 @@ import {
49
49
  geminiWired,
50
50
  hasGeminiHooks,
51
51
  planHooks
52
- } from "./chunk-VAT53KQR.js";
52
+ } from "./chunk-LWY2U7NZ.js";
53
53
  import {
54
54
  CLAUDE_HOOK_BINARY,
55
55
  CLAUDE_HOOK_EVENTS,
@@ -95,13 +95,13 @@ import {
95
95
  renderAgentInstructions,
96
96
  supportedClaudeEvents,
97
97
  vscodePluginMcp
98
- } from "./chunk-ZUVDQOU6.js";
98
+ } from "./chunk-A23GIPWY.js";
99
99
  import {
100
100
  formatVersion,
101
101
  hookCommandsUseBareNames,
102
102
  resolveGlobalBinDir,
103
103
  resolveGlobalBinary
104
- } from "./chunk-FU33PDFG.js";
104
+ } from "./chunk-IKX4X4LJ.js";
105
105
  import {
106
106
  readJsonSafe,
107
107
  writeFileAtomic,
@@ -111,7 +111,7 @@ import {
111
111
  HOOK_COMPATIBLE_PROFILES,
112
112
  isCompatibleAgentType,
113
113
  isRecord
114
- } from "./chunk-H5TODUJ3.js";
114
+ } from "./chunk-I7LP4DKM.js";
115
115
 
116
116
  // src/reapply.ts
117
117
  import { dirname, join } from "path";
@@ -9,7 +9,7 @@ import {
9
9
  isSetupConnectMode,
10
10
  isValidApiKey,
11
11
  normalizeAgentId
12
- } from "./chunk-H5TODUJ3.js";
12
+ } from "./chunk-I7LP4DKM.js";
13
13
 
14
14
  // src/setup/options.ts
15
15
  var AGENT_CHOICES = SETUP_AGENT_CHOICES;
@@ -3,10 +3,10 @@ import {
3
3
  forkFinishWithUpgradeLock,
4
4
  installWithUpgradeLock,
5
5
  releaseAutoUpdateLock
6
- } from "./chunk-4B6USDD3.js";
6
+ } from "./chunk-R4BBSIUK.js";
7
7
  import {
8
8
  phoneStartIsRequired
9
- } from "./chunk-FHRXFUGD.js";
9
+ } from "./chunk-6UN3AUIS.js";
10
10
  import {
11
11
  describeAutoUpdateCheck,
12
12
  globalInstallLocation,
@@ -18,25 +18,25 @@ import {
18
18
  readAutoUpdateState,
19
19
  updateAutoUpdateState,
20
20
  upgradeEntryFor
21
- } from "./chunk-QXLV3CT6.js";
21
+ } from "./chunk-QO6SWGLH.js";
22
22
  import {
23
23
  autoUpdateLock,
24
24
  autoUpdateLog,
25
25
  autoUpdateState
26
- } from "./chunk-ZUVDQOU6.js";
26
+ } from "./chunk-A23GIPWY.js";
27
27
  import {
28
28
  execNpm,
29
29
  fetchLatestPublishedVersion,
30
30
  npmErrorMessage,
31
31
  readGlobalCliInstallAt,
32
32
  readGlobalPrefix
33
- } from "./chunk-FU33PDFG.js";
33
+ } from "./chunk-IKX4X4LJ.js";
34
34
  import {
35
35
  EXIT
36
36
  } from "./chunk-BG4HHB7E.js";
37
37
  import {
38
38
  NPX_LATEST_COMMAND
39
- } from "./chunk-TWRDOVN4.js";
39
+ } from "./chunk-CKR43BBJ.js";
40
40
  import {
41
41
  commandsPackage,
42
42
  globalUpgradeEntry,
@@ -531,8 +531,8 @@ var loadedOnce = (load) => {
531
531
  };
532
532
 
533
533
  // src/codex-desktop-proxy.ts
534
- var loadThePhone = () => import("./api-X624HAAU.js");
535
- var loadTheCardRouting = () => import("./codex-card-routing-SWDFV5IG.js");
534
+ var loadThePhone = () => import("./api-Q2HBBRLT.js");
535
+ var loadTheCardRouting = () => import("./codex-card-routing-7B77ISR2.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-7XA2J7MU.js");
1088
+ const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-45UK7FRY.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-S5B3LKOP.js";
3
+ } from "./chunk-JBWEGNKE.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  macAppBridgeAvailable
3
- } from "./chunk-GB5E3JHR.js";
3
+ } from "./chunk-WZZHWX7Q.js";
4
4
  import {
5
5
  keyPrefix
6
- } from "./chunk-S5B3LKOP.js";
6
+ } from "./chunk-JBWEGNKE.js";
7
7
  import {
8
8
  bridgeAgentKey
9
- } from "./chunk-ZUVDQOU6.js";
9
+ } from "./chunk-A23GIPWY.js";
10
10
  import {
11
11
  readJsonSafe
12
12
  } from "./chunk-T5I4PKOQ.js";
13
13
  import {
14
14
  isRecord,
15
15
  isValidApiKey
16
- } from "./chunk-H5TODUJ3.js";
16
+ } from "./chunk-I7LP4DKM.js";
17
17
 
18
18
  // src/shared-mcp-key.ts
19
19
  var asRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;