@pushary/agent-hooks 1.9.36 → 1.9.38

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 (101) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/bin/pushary-bell-hook.js +25 -25
  3. package/dist/bin/pushary-bell.js +9 -9
  4. package/dist/bin/pushary-claude.js +24 -24
  5. package/dist/bin/pushary-clean.js +29 -29
  6. package/dist/bin/pushary-codex-bridge.js +40 -29
  7. package/dist/bin/pushary-codex-hook.js +66 -41
  8. package/dist/bin/pushary-codex.js +12 -12
  9. package/dist/bin/pushary-connect.js +24 -24
  10. package/dist/bin/pushary-cowork.js +5 -5
  11. package/dist/bin/pushary-daemon.js +32 -32
  12. package/dist/bin/pushary-disconnect.js +24 -24
  13. package/dist/bin/pushary-doctor.js +33 -33
  14. package/dist/bin/pushary-elicitation-hook.js +25 -25
  15. package/dist/bin/pushary-gemini-bridge.js +13 -13
  16. package/dist/bin/pushary-gemini-hook.js +27 -27
  17. package/dist/bin/pushary-hook.js +29 -29
  18. package/dist/bin/pushary-login.js +12 -12
  19. package/dist/bin/pushary-logout.js +24 -24
  20. package/dist/bin/pushary-mcp.js +9 -9
  21. package/dist/bin/pushary-mode.js +12 -12
  22. package/dist/bin/pushary-notification-hook.js +24 -24
  23. package/dist/bin/pushary-opencode-hook.js +26 -26
  24. package/dist/bin/pushary-permission-denied-hook.js +29 -29
  25. package/dist/bin/pushary-permission-hook.js +28 -28
  26. package/dist/bin/pushary-post-hook.js +24 -24
  27. package/dist/bin/pushary-prompt-hook.js +24 -24
  28. package/dist/bin/pushary-session-end-hook.js +24 -24
  29. package/dist/bin/pushary-session-start-hook.js +28 -28
  30. package/dist/bin/pushary-setup.js +35 -35
  31. package/dist/bin/pushary-stats.js +5 -5
  32. package/dist/bin/pushary-status.js +26 -26
  33. package/dist/bin/pushary-stop-hook.js +24 -24
  34. package/dist/bin/pushary-stopfailure-hook.js +24 -24
  35. package/dist/bin/pushary-suggestions.js +12 -12
  36. package/dist/bin/pushary-transcript-register.js +17 -17
  37. package/dist/bin/pushary-transcripts.js +7 -7
  38. package/dist/bin/pushary-upgrade.js +30 -30
  39. package/dist/bin/pushary-wait.js +12 -12
  40. package/dist/bin/pushary.js +6 -6
  41. package/dist/{chunk-NE5OPCD5.js → chunk-3DXDJL4K.js} +4 -4
  42. package/dist/{chunk-EGTVN6YV.js → chunk-3HUHP4A4.js} +1 -1
  43. package/dist/{chunk-H3MOTS2C.js → chunk-4D54LZGF.js} +1 -1
  44. package/dist/{chunk-K5X25GUV.js → chunk-4GEHVRV3.js} +9 -6
  45. package/dist/{chunk-UDHT3W7I.js → chunk-5DC2PRVT.js} +2 -2
  46. package/dist/{chunk-VRALPR4B.js → chunk-5KVL4AP5.js} +4 -4
  47. package/dist/{chunk-SHLLDMPM.js → chunk-7GSOIBVM.js} +4 -4
  48. package/dist/{chunk-FBKGGIFB.js → chunk-7O5U5TED.js} +5 -5
  49. package/dist/{chunk-EH635XAR.js → chunk-7P43CI6G.js} +2 -2
  50. package/dist/{chunk-BS64ZHTB.js → chunk-ABDGTGBT.js} +5 -4
  51. package/dist/{chunk-7GQILLZD.js → chunk-AI2YBW42.js} +5 -5
  52. package/dist/{chunk-Y5FCB66K.js → chunk-AJIH4JGB.js} +5 -5
  53. package/dist/{chunk-MBBPLF5T.js → chunk-B54Q4I7T.js} +2 -2
  54. package/dist/{chunk-CRZ4CP7C.js → chunk-BMHD2NEH.js} +3 -3
  55. package/dist/chunk-CHRRBADC.js +184 -0
  56. package/dist/{chunk-ML42WKI7.js → chunk-CW3IJD2H.js} +3 -3
  57. package/dist/{chunk-JWURAYXK.js → chunk-D2G6HWEA.js} +2 -2
  58. package/dist/{chunk-PRKH662J.js → chunk-D322CKL2.js} +1 -1
  59. package/dist/{chunk-HCKBZYBW.js → chunk-D5IAEPFA.js} +2 -2
  60. package/dist/{chunk-QHL3Y6D2.js → chunk-DDRLK67P.js} +2 -2
  61. package/dist/{chunk-TRNSODJ6.js → chunk-FLEWP4BV.js} +1 -1
  62. package/dist/{chunk-EQXMVKKD.js → chunk-FZEQWY7Q.js} +1 -1
  63. package/dist/{chunk-J36W6ARB.js → chunk-G3CNMCQS.js} +1 -1
  64. package/dist/{chunk-ULDOQF4Q.js → chunk-GBNG6QEV.js} +3 -3
  65. package/dist/{chunk-GTEF64CJ.js → chunk-HCXBAF43.js} +1 -1
  66. package/dist/{chunk-U2PUHT4W.js → chunk-IBUAVM6X.js} +1 -1
  67. package/dist/{chunk-CHWJ7ZXI.js → chunk-J2APHNZL.js} +5 -5
  68. package/dist/{chunk-5ML6E3L7.js → chunk-JVKY6ILU.js} +1 -1
  69. package/dist/{chunk-42FTY5II.js → chunk-JWMCGL3P.js} +3 -3
  70. package/dist/{chunk-4E4PZQFE.js → chunk-K2CZJBUS.js} +4 -4
  71. package/dist/{chunk-YRAPCLOB.js → chunk-KBMQYMGG.js} +6 -6
  72. package/dist/{chunk-6LKIK7V2.js → chunk-L5WOYQT7.js} +8 -8
  73. package/dist/{chunk-ETGGQWBR.js → chunk-LZZ3EKKI.js} +4 -4
  74. package/dist/{chunk-26AEFJSK.js → chunk-MBTNHQCI.js} +2 -2
  75. package/dist/{chunk-5S2P2CK6.js → chunk-MIENLS7P.js} +2 -2
  76. package/dist/{chunk-LL256PHP.js → chunk-MXEDMQLC.js} +1 -1
  77. package/dist/{chunk-RNRCOOQZ.js → chunk-N2I7RMC6.js} +34 -109
  78. package/dist/{chunk-RYXSY3RH.js → chunk-NRVZNZVE.js} +5 -5
  79. package/dist/{chunk-GNESC5EF.js → chunk-OLS4DTFN.js} +3 -3
  80. package/dist/{chunk-L25KSDIB.js → chunk-PA3OZGIA.js} +8 -8
  81. package/dist/{chunk-QPUTCMAK.js → chunk-QC7ZNZMZ.js} +1 -1
  82. package/dist/{chunk-2DZBIELP.js → chunk-QOUW57RT.js} +170 -67
  83. package/dist/{chunk-55XIK7YS.js → chunk-QZ4KOMFE.js} +1 -1
  84. package/dist/{chunk-CRZKFEEO.js → chunk-RISJLN3O.js} +2 -2
  85. package/dist/{chunk-CHNSFTD5.js → chunk-RULJMNY7.js} +2 -2
  86. package/dist/{chunk-556JCOMK.js → chunk-STXWIYAY.js} +4 -4
  87. package/dist/{chunk-IPYCRJGM.js → chunk-TEG2JL5M.js} +7 -7
  88. package/dist/{chunk-KCUTE3EB.js → chunk-VITJTFFT.js} +2 -2
  89. package/dist/{chunk-DC6KHRVH.js → chunk-W2TXFM6O.js} +1 -1
  90. package/dist/{chunk-JAA7YJJZ.js → chunk-WASCAI2U.js} +4 -4
  91. package/dist/{chunk-7MOFAAZ3.js → chunk-WLQENMOW.js} +4 -4
  92. package/dist/{chunk-X4BPD5RD.js → chunk-WR3GKYKD.js} +1 -1
  93. package/dist/{chunk-F5W7B7YT.js → chunk-Y3XF324T.js} +1 -1
  94. package/dist/{chunk-4NMDFPK7.js → chunk-ZFJAZBBF.js} +5 -5
  95. package/dist/{global-upgrade-EF6RZBPU.js → global-upgrade-ROZHFAO5.js} +6 -6
  96. package/dist/{paths-F645XTFZ.js → paths-FSFFGRRU.js} +2 -2
  97. package/dist/{reapply-HJOTWJAN.js → reapply-WY5LHIR4.js} +20 -20
  98. package/dist/src/index.js +19 -19
  99. package/dist/{upgrade-lock-APUN7YKQ.js → upgrade-lock-6PYOTF4X.js} +3 -3
  100. package/package.json +1 -1
  101. package/dist/chunk-MNXHKEXB.js +0 -71
@@ -0,0 +1,184 @@
1
+ import {
2
+ announceSubscriptionRequired,
3
+ isDeferAnswer
4
+ } from "./chunk-W2TXFM6O.js";
5
+ import {
6
+ AUTO_DECISION_WINDOW_MS,
7
+ DEFAULT_SESSION,
8
+ claimThrottle,
9
+ deriveToolTarget,
10
+ permissionDeniedAction,
11
+ releaseThrottle,
12
+ reportEvent
13
+ } from "./chunk-L5WOYQT7.js";
14
+ import {
15
+ askUser,
16
+ isDecisionStopped,
17
+ waitForQuestion
18
+ } from "./chunk-7O5U5TED.js";
19
+ import {
20
+ SubscriptionRequiredError
21
+ } from "./chunk-ABDGTGBT.js";
22
+ import {
23
+ getMachineId
24
+ } from "./chunk-3HUHP4A4.js";
25
+ import {
26
+ machineDecisionFor,
27
+ parseAgentQuestionAnswers,
28
+ shouldDeferToNativeMode,
29
+ wireVerdictFor
30
+ } from "./chunk-QOUW57RT.js";
31
+
32
+ // src/machine-decision-audit.ts
33
+ import { basename } from "path";
34
+ var reportMachineDenial = async (input, verdict, agent) => {
35
+ const decision = machineDecisionFor(wireVerdictFor(verdict, 0));
36
+ if (!decision) return;
37
+ const sessionKey = input.session_id || DEFAULT_SESSION;
38
+ const toolTarget = deriveToolTarget(input.tool_name, input.tool_input);
39
+ const throttleKey = `machinedecision:${agent.type}:${sessionKey}:${input.tool_name}:${decision.origin}:${toolTarget ?? ""}`;
40
+ const throttle = claimThrottle(throttleKey, AUTO_DECISION_WINDOW_MS);
41
+ if (throttle === "throttled") return;
42
+ if (throttle === "unavailable") {
43
+ console.error("[Pushary] Could not access the audit throttle; reporting this denial without deduplication.");
44
+ }
45
+ try {
46
+ const response = await reportEvent({
47
+ event: "permission_denied",
48
+ occurredAt: (/* @__PURE__ */ new Date()).toISOString(),
49
+ toolUseId: input.tool_use_id,
50
+ agentType: agent.type,
51
+ agentName: `${agent.label} - ${basename(input.cwd ?? process.cwd())}`,
52
+ action: permissionDeniedAction(input.tool_name),
53
+ sessionId: input.session_id,
54
+ decisionSource: "policy_auto",
55
+ decisionOrigin: decision.origin,
56
+ decisionOutcome: decision.outcome,
57
+ toolName: input.tool_name,
58
+ toolTarget
59
+ }, { maxAttempts: 1, timeoutMs: 800, requireOk: true, skipDrain: true });
60
+ if (response?.ok !== true) throw new Error("Audit delivery was not acknowledged");
61
+ } catch {
62
+ console.error("[Pushary] Could not record the machine denial. The action remains blocked; its audit delivery will be retried on the next matching denial.");
63
+ if (throttle === "passed") {
64
+ try {
65
+ releaseThrottle(throttleKey);
66
+ } catch {
67
+ console.error("[Pushary] Could not reset the failed audit throttle.");
68
+ }
69
+ }
70
+ }
71
+ };
72
+
73
+ // src/native-defer.ts
74
+ var nativeDeferOptions = () => {
75
+ const respect = process.env.PUSHARY_RESPECT_PERMISSION_MODE;
76
+ const bypass = process.env.PUSHARY_DEFER_BYPASS;
77
+ return {
78
+ respectPermissionMode: !(respect === "0" || respect === "false"),
79
+ deferBypass: bypass === "1" || bypass === "true"
80
+ };
81
+ };
82
+ var defersToNativeMode = (permissionMode, toolName) => shouldDeferToNativeMode(permissionMode, toolName, nativeDeferOptions());
83
+
84
+ // src/agent-question-ask.ts
85
+ var STOPPED = { kind: "stopped" };
86
+ var UNAVAILABLE = { kind: "unavailable" };
87
+ var UNANSWERED = { kind: "unanswered" };
88
+ var answeredWith = (answers) => ({ kind: "answered", answers });
89
+ var failedAskOutcome = (error, sessionId) => outcomeOfFailedAsk(error, sessionId, UNAVAILABLE) ?? UNANSWERED;
90
+ var withLabels = (question) => ({
91
+ ...question,
92
+ labels: question.options.map((option) => option.label)
93
+ });
94
+ var withoutLabels = ({ labels: _, ...question }) => question;
95
+ var outcomeOfFailedAsk = (error, sessionId, failure) => {
96
+ if (!(error instanceof SubscriptionRequiredError)) return failure;
97
+ announceSubscriptionRequired(error.upgradeUrl, sessionId);
98
+ return void 0;
99
+ };
100
+ var storedWaitDeadline = (result, requestedDeadline) => {
101
+ const stored = result.waitEndsAt ? Date.parse(result.waitEndsAt) : Number.NaN;
102
+ return Number.isFinite(stored) ? Math.min(stored, requestedDeadline) : requestedDeadline;
103
+ };
104
+ var questionContext = (question, index, total, project) => {
105
+ const subject = question.header ? `${question.header}: your agent is asking in ${project}` : `Your agent is asking in ${project}`;
106
+ return total > 1 ? `${subject} (${index + 1} of ${total})` : subject;
107
+ };
108
+ var legacyAnswerMap = (question, value) => JSON.stringify({ [question.question]: question.multiSelect ? JSON.stringify([value]) : value });
109
+ var askAsOneCard = async (apiKey, call, only, labelled) => {
110
+ let result;
111
+ try {
112
+ result = await askUser(apiKey, {
113
+ question: only.question,
114
+ type: "select",
115
+ options: [...only.labels],
116
+ questions: labelled.map(withoutLabels),
117
+ context: questionContext(only, 0, 1, call.projectName),
118
+ agentName: call.agentName,
119
+ sessionId: call.sessionId,
120
+ machineId: getMachineId(),
121
+ toolName: call.toolName,
122
+ toolUseId: call.toolUseId,
123
+ waitEndsAt: new Date(call.deadline).toISOString()
124
+ });
125
+ } catch (error) {
126
+ return failedAskOutcome(error, call.sessionId);
127
+ }
128
+ if (isDecisionStopped(result)) return STOPPED;
129
+ const answer = await waitForQuestion(apiKey, result, storedWaitDeadline(result, call.deadline));
130
+ if (isDecisionStopped(answer)) return STOPPED;
131
+ const values = answer.answered && answer.value ? parseAgentQuestionAnswers(labelled, answer.value) : null;
132
+ if (!values || isDeferAnswer(answer.value)) {
133
+ return UNANSWERED;
134
+ }
135
+ return answeredWith(values);
136
+ };
137
+ var askQuestionByQuestion = async (apiKey, call, labelled) => {
138
+ const answers = {};
139
+ for (const [index, question] of labelled.entries()) {
140
+ let result;
141
+ try {
142
+ result = await askUser(apiKey, {
143
+ question: question.question,
144
+ type: "select",
145
+ options: [...question.labels],
146
+ questions: [withoutLabels(question)],
147
+ context: questionContext(question, index, labelled.length, call.projectName),
148
+ agentName: call.agentName,
149
+ sessionId: call.sessionId,
150
+ machineId: getMachineId(),
151
+ toolName: call.toolName,
152
+ toolUseId: call.toolUseId ? `${call.toolUseId}#q${index}` : void 0,
153
+ waitEndsAt: new Date(call.deadline).toISOString()
154
+ });
155
+ } catch (error) {
156
+ return failedAskOutcome(error, call.sessionId);
157
+ }
158
+ if (isDecisionStopped(result)) return STOPPED;
159
+ const answer = await waitForQuestion(apiKey, result, storedWaitDeadline(result, call.deadline));
160
+ if (isDecisionStopped(answer)) return STOPPED;
161
+ const legacyValue = answer.answered ? answer.value?.trim() : void 0;
162
+ const values = legacyValue ? parseAgentQuestionAnswers([question], legacyValue) ?? parseAgentQuestionAnswers([question], legacyAnswerMap(question, legacyValue)) : null;
163
+ const value = values?.[question.question];
164
+ if (!value || isDeferAnswer(answer.value)) {
165
+ return UNANSWERED;
166
+ }
167
+ answers[question.question] = value;
168
+ }
169
+ return answeredWith(answers);
170
+ };
171
+ var askAgentQuestions = (apiKey, call, questions) => {
172
+ const labelled = questions.map(withLabels);
173
+ const [only, ...rest] = labelled;
174
+ if (!only) return Promise.resolve(UNANSWERED);
175
+ return rest.length === 0 ? askAsOneCard(apiKey, call, only, labelled) : askQuestionByQuestion(apiKey, call, labelled);
176
+ };
177
+
178
+ export {
179
+ reportMachineDenial,
180
+ defersToNativeMode,
181
+ outcomeOfFailedAsk,
182
+ storedWaitDeadline,
183
+ askAgentQuestions
184
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SETUP_FLAGS
3
- } from "./chunk-EQXMVKKD.js";
3
+ } from "./chunk-FZEQWY7Q.js";
4
4
  import {
5
5
  parseFlags
6
6
  } from "./chunk-GMXKITVA.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-7QLSKOSU.js";
10
10
  import {
11
11
  NPX_LATEST_COMMAND
12
- } from "./chunk-LL256PHP.js";
12
+ } from "./chunk-MXEDMQLC.js";
13
13
  import {
14
14
  CLAUDE_CONNECTOR_GUIDE,
15
15
  CLAUDE_CONNECTOR_STEPS,
@@ -17,7 +17,7 @@ import {
17
17
  CLAUDE_CONNECTOR_URL,
18
18
  COWORK_CONNECTOR_LIMIT,
19
19
  COWORK_STANDING_INSTRUCTIONS
20
- } from "./chunk-2DZBIELP.js";
20
+ } from "./chunk-QOUW57RT.js";
21
21
 
22
22
  // src/cli/cowork.ts
23
23
  import { readFileSync } from "fs";
@@ -4,10 +4,10 @@ import {
4
4
  keyPrefix,
5
5
  readConfigFileKey,
6
6
  readMacAppKeyPrefix
7
- } from "./chunk-42FTY5II.js";
7
+ } from "./chunk-JWMCGL3P.js";
8
8
  import {
9
9
  NPX_LATEST_COMMAND
10
- } from "./chunk-LL256PHP.js";
10
+ } from "./chunk-MXEDMQLC.js";
11
11
 
12
12
  // src/key-signed-out.ts
13
13
  var VERDICT_BY_CHECK = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-LL256PHP.js";
3
+ } from "./chunk-MXEDMQLC.js";
4
4
 
5
5
  // src/config.ts
6
6
  import { readFileSync } from "fs";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-K5X25GUV.js";
6
+ } from "./chunk-4GEHVRV3.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
@@ -15,7 +15,7 @@ import {
15
15
  globalUpgradeEntry,
16
16
  isAutoUpdateResult,
17
17
  ownPackageRoot
18
- } from "./chunk-2DZBIELP.js";
18
+ } from "./chunk-QOUW57RT.js";
19
19
 
20
20
  // src/auto-update.ts
21
21
  import { spawn } from "child_process";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-K5X25GUV.js";
3
+ } from "./chunk-4GEHVRV3.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-AQFEP65J.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-2DZBIELP.js";
9
+ } from "./chunk-QOUW57RT.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3EGEA4KH.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-PRKH662J.js";
12
+ } from "./chunk-D322CKL2.js";
13
13
 
14
14
  // src/cli/login-ui.ts
15
15
  import { hostname } from "os";
@@ -10,7 +10,7 @@ import {
10
10
  isSetupConnectMode,
11
11
  isValidApiKey,
12
12
  normalizeAgentId
13
- } from "./chunk-2DZBIELP.js";
13
+ } from "./chunk-QOUW57RT.js";
14
14
 
15
15
  // src/setup/options.ts
16
16
  var AGENT_CHOICES = SETUP_AGENT_CHOICES;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isSafeReadOnlyCommand
3
- } from "./chunk-2DZBIELP.js";
3
+ } from "./chunk-QOUW57RT.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -5,16 +5,16 @@ import {
5
5
  import {
6
6
  NOTIFICATION_MATCHED_TYPES,
7
7
  POSTTOOLUSE_MIRRORED_TOOLS
8
- } from "./chunk-U2PUHT4W.js";
8
+ } from "./chunk-IBUAVM6X.js";
9
9
  import {
10
10
  isProtectedByScope,
11
11
  registerHookEntry
12
- } from "./chunk-K5X25GUV.js";
12
+ } from "./chunk-4GEHVRV3.js";
13
13
  import {
14
14
  CLAUDE_PRETOOLUSE_MATCHER,
15
15
  HOOK_BUDGETS,
16
16
  HOOK_LOCATOR_BINARY
17
- } from "./chunk-2DZBIELP.js";
17
+ } from "./chunk-QOUW57RT.js";
18
18
 
19
19
  // src/gemini-config.ts
20
20
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_HOLD_BUDGET_ENV,
3
3
  hookHoldBudgetProof
4
- } from "./chunk-2DZBIELP.js";
4
+ } from "./chunk-QOUW57RT.js";
5
5
 
6
6
  // src/hold-budget.ts
7
7
  var takeHookHoldBudget = (args = process.argv.slice(2), env = process.env) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PRETOOLUSE_GATED_TOOLS
3
- } from "./chunk-2DZBIELP.js";
3
+ } from "./chunk-QOUW57RT.js";
4
4
 
5
5
  // src/claude-tools.ts
6
6
  var POSTTOOLUSE_MIRROR_ONLY_TOOLS = ["TodoWrite", "Task", "WebFetch", "WebSearch"];
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  compatibleConfigFile
3
- } from "./chunk-SHLLDMPM.js";
3
+ } from "./chunk-7GSOIBVM.js";
4
4
  import {
5
5
  hookOwnerOf,
6
6
  hookOwnerOfCommands,
7
7
  liveBridgeProbe,
8
8
  resolveBridgeStub
9
- } from "./chunk-4NMDFPK7.js";
9
+ } from "./chunk-ZFJAZBBF.js";
10
10
  import {
11
11
  AGENT_CHOICES
12
- } from "./chunk-EQXMVKKD.js";
12
+ } from "./chunk-FZEQWY7Q.js";
13
13
  import {
14
14
  claudeSettings,
15
15
  codexHooksJson,
@@ -18,7 +18,7 @@ import {
18
18
  guardedArgv,
19
19
  pusharyDir,
20
20
  vscodePluginDir
21
- } from "./chunk-K5X25GUV.js";
21
+ } from "./chunk-4GEHVRV3.js";
22
22
  import {
23
23
  readJsonSafe
24
24
  } from "./chunk-AQFEP65J.js";
@@ -29,7 +29,7 @@ import {
29
29
  OPENCODE_APPROVAL_EVENT,
30
30
  hookCompatibleProfile,
31
31
  isRecord
32
- } from "./chunk-2DZBIELP.js";
32
+ } from "./chunk-QOUW57RT.js";
33
33
 
34
34
  // src/opencode-plugin.ts
35
35
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-K5X25GUV.js";
3
+ } from "./chunk-4GEHVRV3.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveInstallSourceFor
3
- } from "./chunk-5S2P2CK6.js";
3
+ } from "./chunk-MIENLS7P.js";
4
4
  import {
5
5
  backupFile,
6
6
  readJsonSafe,
@@ -9,11 +9,11 @@ import {
9
9
  } from "./chunk-AQFEP65J.js";
10
10
  import {
11
11
  configFilePath
12
- } from "./chunk-PRKH662J.js";
12
+ } from "./chunk-D322CKL2.js";
13
13
  import {
14
14
  API_KEY_PREFIX_PATTERN,
15
15
  isRecord
16
- } from "./chunk-2DZBIELP.js";
16
+ } from "./chunk-QOUW57RT.js";
17
17
 
18
18
  // src/shell-alias.ts
19
19
  import { homedir } from "os";
@@ -2,25 +2,25 @@ import {
2
2
  SIGNED_OUT_ON_MAC_MESSAGE,
3
3
  describeSignedOutKey,
4
4
  readSignedOutDiagnosis
5
- } from "./chunk-JWURAYXK.js";
5
+ } from "./chunk-D2G6HWEA.js";
6
6
  import {
7
7
  createIo
8
8
  } from "./chunk-FO3MDD26.js";
9
9
  import {
10
10
  readKeySource
11
- } from "./chunk-42FTY5II.js";
11
+ } from "./chunk-JWMCGL3P.js";
12
12
  import {
13
13
  absoluteUrl,
14
14
  checkApiKey,
15
15
  describeKeyCheck,
16
16
  keyCheckFromResponse
17
- } from "./chunk-GNESC5EF.js";
17
+ } from "./chunk-OLS4DTFN.js";
18
18
  import {
19
19
  EXIT
20
20
  } from "./chunk-KZERVKTD.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-PRKH662J.js";
23
+ } from "./chunk-D322CKL2.js";
24
24
 
25
25
  // src/cli/report-key.ts
26
26
  var { dim, yellow } = createIo();
@@ -3,27 +3,27 @@ import {
3
3
  expectedLaunchCapabilities,
4
4
  hasSpawnProvider,
5
5
  resolveControlPolicy
6
- } from "./chunk-26AEFJSK.js";
6
+ } from "./chunk-MBTNHQCI.js";
7
7
  import {
8
8
  daemonHasRemoteProof,
9
9
  daemonServiceManagerAvailable,
10
10
  hasDaemonServiceDefinition,
11
11
  readDaemonNeedsLogin,
12
12
  readDaemonStatus
13
- } from "./chunk-Y5FCB66K.js";
13
+ } from "./chunk-AJIH4JGB.js";
14
14
  import {
15
15
  readControlMode,
16
16
  readKeySource
17
- } from "./chunk-42FTY5II.js";
17
+ } from "./chunk-JWMCGL3P.js";
18
18
  import {
19
19
  getMachineId
20
- } from "./chunk-EGTVN6YV.js";
20
+ } from "./chunk-3HUHP4A4.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-PRKH662J.js";
23
+ } from "./chunk-D322CKL2.js";
24
24
  import {
25
25
  getPackageVersion
26
- } from "./chunk-2DZBIELP.js";
26
+ } from "./chunk-QOUW57RT.js";
27
27
 
28
28
  // src/machines.ts
29
29
  import { hostname } from "os";
@@ -2,7 +2,7 @@ import {
2
2
  IDLE_PROMPT_NOTIFICATION,
3
3
  NOTIFICATION_PUSH_TYPES,
4
4
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
5
- } from "./chunk-U2PUHT4W.js";
5
+ } from "./chunk-IBUAVM6X.js";
6
6
  import {
7
7
  cancelQuestion,
8
8
  clientErrorKindOf,
@@ -10,26 +10,26 @@ import {
10
10
  reportClientError,
11
11
  sendNotification,
12
12
  waitForAnswer
13
- } from "./chunk-FBKGGIFB.js";
13
+ } from "./chunk-7O5U5TED.js";
14
14
  import {
15
15
  withRetry
16
- } from "./chunk-BS64ZHTB.js";
16
+ } from "./chunk-ABDGTGBT.js";
17
17
  import {
18
18
  getMachineId
19
- } from "./chunk-EGTVN6YV.js";
19
+ } from "./chunk-3HUHP4A4.js";
20
20
  import {
21
21
  reportedInstallSource
22
- } from "./chunk-5S2P2CK6.js";
22
+ } from "./chunk-MIENLS7P.js";
23
23
  import {
24
24
  canonicalJson
25
- } from "./chunk-K5X25GUV.js";
25
+ } from "./chunk-4GEHVRV3.js";
26
26
  import {
27
27
  writeFileAtomic
28
28
  } from "./chunk-AQFEP65J.js";
29
29
  import {
30
30
  getApiKey,
31
31
  getBaseUrl
32
- } from "./chunk-PRKH662J.js";
32
+ } from "./chunk-D322CKL2.js";
33
33
  import {
34
34
  ACTION_BODY_MAX,
35
35
  AGENTS,
@@ -64,7 +64,7 @@ import {
64
64
  toToolLookup,
65
65
  truncateLine,
66
66
  unansweredRefusalReason
67
- } from "./chunk-2DZBIELP.js";
67
+ } from "./chunk-QOUW57RT.js";
68
68
 
69
69
  // ../hook-mapping/src/describe.ts
70
70
  import { isAbsolute, relative, resolve } from "path";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  MCP_BRIDGE_BINARY
3
- } from "./chunk-KCUTE3EB.js";
3
+ } from "./chunk-VITJTFFT.js";
4
4
  import {
5
5
  KEY_FILE_MODE
6
- } from "./chunk-42FTY5II.js";
6
+ } from "./chunk-JWMCGL3P.js";
7
7
  import {
8
8
  NpmMissingError,
9
9
  NpmPermissionError
10
- } from "./chunk-K5X25GUV.js";
10
+ } from "./chunk-4GEHVRV3.js";
11
11
  import {
12
12
  readJsonSafe,
13
13
  writeFileAtomic,
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-AQFEP65J.js";
16
16
  import {
17
17
  NPX_LATEST_COMMAND
18
- } from "./chunk-LL256PHP.js";
18
+ } from "./chunk-MXEDMQLC.js";
19
19
 
20
20
  // src/instruction-file.ts
21
21
  import { existsSync, readFileSync, writeFileSync, mkdirSync, rmSync } from "fs";
@@ -10,10 +10,10 @@ import {
10
10
  resolvePackageVersionFromBinary,
11
11
  resolvePathBinary,
12
12
  resolvePathBinaryAsync
13
- } from "./chunk-K5X25GUV.js";
13
+ } from "./chunk-4GEHVRV3.js";
14
14
  import {
15
15
  MANAGED_PROVIDERS
16
- } from "./chunk-2DZBIELP.js";
16
+ } from "./chunk-QOUW57RT.js";
17
17
 
18
18
  // src/setup/codex-install.ts
19
19
  var NATIVE_BINARY_MIN_BYTES = 20 * 1024 * 1024;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  configFilePath
3
- } from "./chunk-PRKH662J.js";
3
+ } from "./chunk-D322CKL2.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-2DZBIELP.js";
6
+ } from "./chunk-QOUW57RT.js";
7
7
 
8
8
  // src/install-source.ts
9
9
  import { readFileSync } from "fs";
@@ -2,7 +2,7 @@ import {
2
2
  DISCONNECT_AGENT_IDS,
3
3
  SETUP_AGENT_CHOICES,
4
4
  isApprovalMode
5
- } from "./chunk-2DZBIELP.js";
5
+ } from "./chunk-QOUW57RT.js";
6
6
 
7
7
  // src/cli/mode-request.ts
8
8
  var parseDuration = (value) => {