pushary 1.9.134 → 1.9.136
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.
- package/CHANGELOG.md +10 -0
- package/dist/{api-7CZR7B53.js → api-5H25QRNM.js} +11 -11
- package/dist/bin/pushary-audit.js +3 -3
- package/dist/bin/pushary-bell-hook.js +28 -27
- package/dist/bin/pushary-bell.js +10 -10
- package/dist/bin/pushary-claude.js +47 -33
- package/dist/bin/pushary-clean.js +35 -34
- package/dist/bin/pushary-codex-bridge.js +23 -22
- package/dist/bin/pushary-codex-hook.js +58 -41
- package/dist/bin/pushary-codex-session.js +8 -8
- package/dist/bin/pushary-codex.js +16 -15
- package/dist/bin/pushary-connect.js +29 -28
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +78 -59
- package/dist/bin/pushary-disconnect.js +28 -27
- package/dist/bin/pushary-display-hook.js +44 -17
- package/dist/bin/pushary-doctor.js +43 -42
- package/dist/bin/pushary-elicitation-hook.js +28 -27
- package/dist/bin/pushary-gemini-bridge.js +20 -17
- package/dist/bin/pushary-gemini-hook.js +32 -31
- package/dist/bin/pushary-hook.js +35 -33
- package/dist/bin/pushary-login.js +21 -21
- package/dist/bin/pushary-logout.js +27 -26
- package/dist/bin/pushary-mcp.js +12 -12
- package/dist/bin/pushary-mode.js +15 -15
- package/dist/bin/pushary-notification-hook.js +27 -26
- package/dist/bin/pushary-opencode-hook.js +31 -30
- package/dist/bin/pushary-permission-denied-hook.js +35 -33
- package/dist/bin/pushary-permission-hook.js +39 -35
- package/dist/bin/pushary-post-hook.js +33 -27
- package/dist/bin/pushary-prompt-hook.js +27 -26
- package/dist/bin/pushary-session-end-hook.js +27 -26
- package/dist/bin/pushary-session-start-hook.js +36 -35
- package/dist/bin/pushary-setup.js +50 -49
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +33 -32
- package/dist/bin/pushary-stop-hook.js +27 -26
- package/dist/bin/pushary-stopfailure-hook.js +27 -26
- package/dist/bin/pushary-suggestions.js +15 -15
- package/dist/bin/pushary-transcript-register.js +17 -17
- package/dist/bin/pushary-transcripts.js +25 -25
- package/dist/bin/pushary-upgrade.js +41 -40
- package/dist/bin/pushary-wait.js +15 -15
- package/dist/bin/pushary.js +7 -7
- package/dist/{chunk-ZJPBTJED.js → chunk-2E46RALI.js} +6 -6
- package/dist/{chunk-ZXJTTV7I.js → chunk-2MVKT7KH.js} +2 -2
- package/dist/{chunk-XWUPOTJV.js → chunk-2R4OVJHS.js} +5 -5
- package/dist/{chunk-IZJDVOJV.js → chunk-2XDVEBHI.js} +5 -5
- package/dist/{chunk-VO55SJSD.js → chunk-3HXOR6E5.js} +11 -8
- package/dist/{chunk-GKZMBU6T.js → chunk-3QBI5C6P.js} +2 -2
- package/dist/{chunk-RZBV5KTF.js → chunk-43DT3QWZ.js} +18 -5
- package/dist/{chunk-LBMCQWRX.js → chunk-4T72AHIA.js} +4 -4
- package/dist/{chunk-3TKTZOKG.js → chunk-54TZGPZP.js} +3 -3
- package/dist/{chunk-XHC3UNOK.js → chunk-5XDFQ6E3.js} +1 -1
- package/dist/{chunk-KIWFCW7M.js → chunk-62GD26OE.js} +2 -2
- package/dist/{chunk-RLQDVWZ4.js → chunk-6SWFS4GU.js} +2 -2
- package/dist/{chunk-JYCAAQUW.js → chunk-A2YJ2FBR.js} +3 -2
- package/dist/{chunk-RVGYXUOC.js → chunk-A4YOXS24.js} +3 -3
- package/dist/{chunk-7MIT5C7B.js → chunk-A7R43KOX.js} +3 -3
- package/dist/{chunk-MRHGK3Q3.js → chunk-D7AAAD6W.js} +193 -121
- package/dist/{chunk-X23GSBOH.js → chunk-DBIPNY7J.js} +3 -3
- package/dist/{chunk-M65LPNIO.js → chunk-DL67HX3D.js} +53 -10
- package/dist/{chunk-UJZ5YHSR.js → chunk-EJHD44ZN.js} +2 -2
- package/dist/{chunk-PHKCTMAV.js → chunk-EQZB5P6I.js} +2 -2
- package/dist/{chunk-3DCCMO23.js → chunk-FAF5RDWT.js} +6 -6
- package/dist/{chunk-FT5MTCKU.js → chunk-G73ACPR2.js} +2 -2
- package/dist/{chunk-QBJVECFY.js → chunk-GACQSKNG.js} +2 -2
- package/dist/{chunk-A44MRVWG.js → chunk-GS5FH3C2.js} +3 -3
- package/dist/{chunk-EA5EASYT.js → chunk-H2RE3IPK.js} +1 -1
- package/dist/{chunk-FJST6ZXC.js → chunk-HKJLPVPZ.js} +5 -5
- package/dist/{chunk-HW63OEVM.js → chunk-HY4ATVCT.js} +3 -3
- package/dist/{chunk-UZUDMZES.js → chunk-ICCM3DLT.js} +2 -2
- package/dist/{chunk-MF5ZQX7C.js → chunk-IHAKBLW2.js} +4 -4
- package/dist/{chunk-T6HX6OTY.js → chunk-IKBTG3OT.js} +1 -1
- package/dist/{chunk-RGVQOOGD.js → chunk-IRIXOH4U.js} +1 -1
- package/dist/{chunk-YNV5GURD.js → chunk-JZJ5CM6X.js} +5 -5
- package/dist/{chunk-4EQOCSJW.js → chunk-K7YJBVR3.js} +1 -1
- package/dist/{chunk-FTH4TSJ2.js → chunk-KLV2NQVT.js} +4 -4
- package/dist/{chunk-YI6RR4JP.js → chunk-KTVMIG32.js} +4 -4
- package/dist/{chunk-WZ4SIRMH.js → chunk-KYD3LHFB.js} +1 -1
- package/dist/{chunk-J4UNR655.js → chunk-L2GADKFL.js} +6 -6
- package/dist/{chunk-I6MI4NWX.js → chunk-L7Q57R4J.js} +10 -10
- package/dist/{chunk-MJVDFNP2.js → chunk-LAWI6NQK.js} +1 -1
- package/dist/{chunk-BKH4LQJC.js → chunk-LNF36PTF.js} +2 -2
- package/dist/{chunk-GQPXW6BL.js → chunk-MENTZJHA.js} +1 -1
- package/dist/{chunk-6JY44IZI.js → chunk-MQ3I5OIC.js} +8 -8
- package/dist/{chunk-SZYKS433.js → chunk-MQMVJDII.js} +1 -1
- package/dist/{chunk-75FJZR2M.js → chunk-N3VCBXI6.js} +3 -3
- package/dist/{chunk-EPPH5RMJ.js → chunk-NN43KGTN.js} +4 -4
- package/dist/{chunk-PFHRW3LR.js → chunk-NZD6ISCL.js} +3 -3
- package/dist/{chunk-QVIDOVT6.js → chunk-O5T53LZ5.js} +42 -25
- package/dist/{chunk-V2T5ZDMP.js → chunk-PHA6AFOR.js} +3 -3
- package/dist/{chunk-CVBSETPW.js → chunk-PNVTPEO5.js} +3 -3
- package/dist/{chunk-PPUIIP3O.js → chunk-POV2TBFA.js} +11 -11
- package/dist/{chunk-LR3PIGRS.js → chunk-Q2VV77IY.js} +3 -3
- package/dist/{chunk-NYFUU23B.js → chunk-QXATIKHQ.js} +1 -1
- package/dist/{chunk-N5P2FLOJ.js → chunk-R7CQF2P3.js} +20 -5
- package/dist/{chunk-W4FJR57E.js → chunk-R7KC57PC.js} +2 -2
- package/dist/{chunk-VME5NXCM.js → chunk-RPFSVNH6.js} +3 -3
- package/dist/{chunk-VRUEKURE.js → chunk-RRUP72V6.js} +1 -1
- package/dist/{chunk-237FYIVC.js → chunk-TLK5YLIE.js} +4 -4
- package/dist/{chunk-2YS7YEUW.js → chunk-U3OLXV5Z.js} +2 -2
- package/dist/chunk-UP5QXEUU.js +31 -0
- package/dist/{chunk-L5RSLIBQ.js → chunk-V7ZY7P2X.js} +6 -6
- package/dist/{chunk-NSBWFX7H.js → chunk-VBWJ756P.js} +5 -5
- package/dist/{chunk-3PGANQ4K.js → chunk-VO77WHK4.js} +6 -6
- package/dist/{chunk-C4UH6YPD.js → chunk-VV7WRIQT.js} +4 -4
- package/dist/{chunk-42PVKPHM.js → chunk-VVN3RPV6.js} +1 -1
- package/dist/{chunk-XMZVQF2J.js → chunk-WM7OY63L.js} +1 -1
- package/dist/{chunk-DS7XMYUB.js → chunk-WNT4JHK3.js} +1 -1
- package/dist/{chunk-2KN53MPE.js → chunk-WXUEOHYY.js} +5 -5
- package/dist/chunk-Y47BMZUR.js +36 -0
- package/dist/{chunk-HOPJEPL4.js → chunk-YHX5YF77.js} +4 -4
- package/dist/{chunk-KWICQAP7.js → chunk-YOV3LHOL.js} +3 -3
- package/dist/{chunk-2U4MCUVZ.js → chunk-YQQGIDBC.js} +1 -1
- package/dist/{chunk-UDAXXR43.js → chunk-YURIU333.js} +5 -5
- package/dist/{chunk-D2KJKAYM.js → chunk-ZWIJJYN3.js} +4 -4
- package/dist/{chunk-PG23ENSN.js → chunk-ZWLSXECG.js} +2 -2
- package/dist/{chunk-25UU4Q4V.js → chunk-ZWURBNA3.js} +1 -1
- package/dist/{codex-app-cards-switch-D2SODMQN.js → codex-app-cards-switch-Z7TMF2OR.js} +11 -11
- package/dist/{codex-card-routing-X2HUY2AV.js → codex-card-routing-LQJEJNTS.js} +2 -2
- package/dist/{codex-desktop-launch-CFKIJZVB.js → codex-desktop-launch-HKXGKL3T.js} +1 -1
- package/dist/{codex-session-launch-YGH5UUAH.js → codex-session-launch-DTGH7ZKM.js} +20 -19
- package/dist/{config-5SNDVPS2.js → config-34VUNHK6.js} +3 -3
- package/dist/{global-upgrade-U4V7KWH6.js → global-upgrade-5UAH5DCG.js} +9 -9
- package/dist/{identity-DCRNA3J3.js → identity-UFJEWGEU.js} +4 -4
- package/dist/{live-capabilities-H7J5ANZ3.js → live-capabilities-BL3SHFWX.js} +4 -4
- package/dist/{paths-3DUQGU4V.js → paths-YA5ROXGC.js} +3 -3
- package/dist/{reapply-LNVBPUWL.js → reapply-OPQF4DPQ.js} +29 -28
- package/dist/src/index.js +34 -32
- package/dist/{upgrade-lock-3T7JLBHT.js → upgrade-lock-AZLOOGKV.js} +4 -4
- package/dist/{usage-XLJK7OTL.js → usage-ZSV4LFDL.js} +3 -3
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SETUP_FLAGS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5XDFQ6E3.js";
|
|
4
4
|
import {
|
|
5
5
|
parseFlags
|
|
6
6
|
} from "./chunk-YPY4YCIZ.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-YU2EUD7O.js";
|
|
10
10
|
import {
|
|
11
11
|
NPX_LATEST_COMMAND
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MQMVJDII.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-
|
|
20
|
+
} from "./chunk-DL67HX3D.js";
|
|
21
21
|
|
|
22
22
|
// src/cli/cowork.ts
|
|
23
23
|
import { readFileSync } from "fs";
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pusharyHookExecutable
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TLK5YLIE.js";
|
|
4
4
|
import {
|
|
5
5
|
bridgeResolvesToApp,
|
|
6
6
|
cursorUserHooks,
|
|
7
7
|
executableFileName,
|
|
8
8
|
isBridgeLocator,
|
|
9
9
|
liveBridgeProbe
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-R7KC57PC.js";
|
|
11
11
|
import {
|
|
12
12
|
atLeast,
|
|
13
13
|
parseVersion
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GS5FH3C2.js";
|
|
15
15
|
import {
|
|
16
16
|
CURSOR_GATE_COVERAGE,
|
|
17
17
|
CURSOR_GATE_SCRIPT,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
isCursorHookPayload,
|
|
22
22
|
isRecord,
|
|
23
23
|
toolsCoveredByGateEntry
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-DL67HX3D.js";
|
|
25
25
|
|
|
26
26
|
// src/cursor-gate-registration.ts
|
|
27
27
|
import { dirname, isAbsolute, join, resolve } from "path";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseSseMessages
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WXUEOHYY.js";
|
|
4
4
|
import {
|
|
5
5
|
fetchAsCredential
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VVN3RPV6.js";
|
|
7
7
|
import {
|
|
8
8
|
NPX_LATEST_COMMAND
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MQMVJDII.js";
|
|
10
10
|
|
|
11
11
|
// src/mcp-stdio-bridge.ts
|
|
12
12
|
var MCP_BRIDGE_BINARY = "pushary-mcp";
|
|
@@ -1,33 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
forgetPhoneApproval,
|
|
3
|
+
rememberPhoneApproval,
|
|
4
|
+
takePhoneApproval
|
|
5
|
+
} from "./chunk-UP5QXEUU.js";
|
|
1
6
|
import {
|
|
2
7
|
claudeSettingsLocationFor,
|
|
3
8
|
readClaudePermissionRules
|
|
4
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-G73ACPR2.js";
|
|
5
10
|
import {
|
|
6
11
|
askAgentQuestions,
|
|
7
12
|
defersToNativeMode,
|
|
8
13
|
outcomeOfFailedAsk,
|
|
9
14
|
storedWaitDeadline
|
|
10
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2R4OVJHS.js";
|
|
11
16
|
import {
|
|
12
17
|
reportMachineDenial
|
|
13
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-HY4ATVCT.js";
|
|
14
19
|
import {
|
|
15
20
|
isGatingMoment,
|
|
16
21
|
recordKeylessMoment
|
|
17
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-YQQGIDBC.js";
|
|
18
23
|
import {
|
|
19
24
|
isAdmitted,
|
|
20
25
|
readAdmissionRules
|
|
21
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-YURIU333.js";
|
|
22
27
|
import {
|
|
23
28
|
isDeferAnswer,
|
|
24
29
|
oncePerSession
|
|
25
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-H2RE3IPK.js";
|
|
26
31
|
import {
|
|
27
32
|
activeHookSource,
|
|
28
33
|
activeIdentity,
|
|
29
34
|
namedSource
|
|
30
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-43DT3QWZ.js";
|
|
31
36
|
import {
|
|
32
37
|
DEFAULT_SESSION,
|
|
33
38
|
approvalAwaitingRetry,
|
|
@@ -48,7 +53,7 @@ import {
|
|
|
48
53
|
settleQuestionsForToolUse,
|
|
49
54
|
sweepFilesOlderThan,
|
|
50
55
|
userScope
|
|
51
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-D7AAAD6W.js";
|
|
52
57
|
import {
|
|
53
58
|
UNNAMED_ACTION,
|
|
54
59
|
deriveAction,
|
|
@@ -59,12 +64,12 @@ import {
|
|
|
59
64
|
patchDeletesFiles,
|
|
60
65
|
permissionDeniedAction,
|
|
61
66
|
scopePathFor
|
|
62
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-A2YJ2FBR.js";
|
|
63
68
|
import {
|
|
64
69
|
branchFor,
|
|
65
70
|
repoKeyFor,
|
|
66
71
|
repositoryScopeFor
|
|
67
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-IRIXOH4U.js";
|
|
68
73
|
import {
|
|
69
74
|
askUser,
|
|
70
75
|
cancelQuestion,
|
|
@@ -81,20 +86,20 @@ import {
|
|
|
81
86
|
waitForQuestion,
|
|
82
87
|
waitsForThePhone,
|
|
83
88
|
withdrawQuestion
|
|
84
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-L2GADKFL.js";
|
|
85
90
|
import {
|
|
86
91
|
getMachineId
|
|
87
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-WNT4JHK3.js";
|
|
88
93
|
import {
|
|
89
94
|
getApiKey,
|
|
90
95
|
getBaseUrl
|
|
91
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-IKBTG3OT.js";
|
|
92
97
|
import {
|
|
93
98
|
writeFileAtomic
|
|
94
99
|
} from "./chunk-TODDEIYG.js";
|
|
95
100
|
import {
|
|
96
101
|
NPX_LATEST_COMMAND
|
|
97
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-MQMVJDII.js";
|
|
98
103
|
import {
|
|
99
104
|
AGENT_QUESTION_STRATEGY,
|
|
100
105
|
AGENT_QUESTION_TOOL,
|
|
@@ -163,7 +168,7 @@ import {
|
|
|
163
168
|
timeoutActionWithoutLocalPrompt,
|
|
164
169
|
unansweredRefusalReason,
|
|
165
170
|
unapprovedScopeReason
|
|
166
|
-
} from "./chunk-
|
|
171
|
+
} from "./chunk-DL67HX3D.js";
|
|
167
172
|
|
|
168
173
|
// src/terminal-answer-watch.ts
|
|
169
174
|
import { closeSync, openSync, readSync, statSync } from "fs";
|
|
@@ -448,7 +453,9 @@ var ACTIVE_AGENT = activeIdentity(process.argv);
|
|
|
448
453
|
var ACTIVE_SOURCE = activeHookSource(process.argv);
|
|
449
454
|
var HANDED_DOWN_BY_THE_MAC_BRIDGE = namedSource(process.argv) !== void 0;
|
|
450
455
|
var CLAUDE_SESSION_ATTENDED_ENV = "CLAUDE_CODE_SESSION_ATTENDED";
|
|
451
|
-
var
|
|
456
|
+
var ACTIVE_PROFILE = ACTIVE_SOURCE === null ? void 0 : hookCompatibleProfileBySource(ACTIVE_SOURCE);
|
|
457
|
+
var PUSHARY_IS_SOLE_GATE = ACTIVE_PROFILE?.soleGate != null;
|
|
458
|
+
var PHONE_APPROVAL_SOURCE = ACTIVE_PROFILE?.promptFollowsPreToolUseAllow ? ACTIVE_PROFILE.source : null;
|
|
452
459
|
var agentNameIn = (projectName) => `${ACTIVE_AGENT.label} - ${projectName}`;
|
|
453
460
|
var allowWithInput = (updatedInput) => claudePreToolUseOutput("allow", void 0, updatedInput);
|
|
454
461
|
var undecidedCall = (reason) => PUSHARY_IS_SOLE_GATE ? deny(reason) : void 0;
|
|
@@ -554,7 +561,7 @@ var emitDecisionEpisode = (apiKey, input, toolPolicy, machineId, toolTarget, dec
|
|
|
554
561
|
machineId
|
|
555
562
|
});
|
|
556
563
|
};
|
|
557
|
-
var
|
|
564
|
+
var dispatchModeDecision = async (apiKey, input, toolPolicy, machineId, trainingConsent = false, scopeReason, scopePath, terminalLive, askReason, matchedRoute) => {
|
|
558
565
|
const description = describeToolCall(input.tool_name, input.tool_input, "hook");
|
|
559
566
|
const projectName = basename(input.cwd ?? process.cwd());
|
|
560
567
|
const sessionId = input.session_id;
|
|
@@ -622,8 +629,10 @@ var dispatchModeHandler = async (apiKey, input, toolPolicy, machineId, trainingC
|
|
|
622
629
|
if (trainingConsent && signals.humanDecision) {
|
|
623
630
|
emitDecisionEpisode(apiKey, input, toolPolicy, machineId, toolTarget, decision, result);
|
|
624
631
|
}
|
|
625
|
-
return result;
|
|
632
|
+
return { result, humanDecision: signals.humanDecision === true };
|
|
626
633
|
};
|
|
634
|
+
var dispatchModeHandler = async (...args) => (await dispatchModeDecision(...args)).result;
|
|
635
|
+
var isPhoneApproval = (decided) => decided.humanDecision && decided.result?.hookSpecificOutput.permissionDecision === "allow";
|
|
627
636
|
var CURSOR_SCOPE_TIMEOUT_ACTION = "escalate";
|
|
628
637
|
var cursorScopeWaitSeconds = ({ timeoutSeconds, timeoutAction }) => Math.min(effectiveWaitSeconds(timeoutAction, timeoutSeconds, "cursor"), hookMaxWaitSeconds("cursor"));
|
|
629
638
|
var hasItsOwnApprovalPrompt = (source) => source === null || hasNativeApprovalPrompt(source, "PreToolUse");
|
|
@@ -865,6 +874,7 @@ var standingRefusalOf = async (input) => {
|
|
|
865
874
|
}
|
|
866
875
|
};
|
|
867
876
|
var handlePreToolUse = async (input, canonical) => {
|
|
877
|
+
if (PHONE_APPROVAL_SOURCE) forgetPhoneApproval(PHONE_APPROVAL_SOURCE, input);
|
|
868
878
|
if (isPusharyOwnTool(input.tool_name)) return void 0;
|
|
869
879
|
if (isRefusalsOnlyCallInClaudeCode(input) && !mcpCallWaitsForSomeoneElse(input)) {
|
|
870
880
|
return isPusharyConnectorTool(input.tool_name) ? void 0 : standingRefusalOf(input);
|
|
@@ -917,13 +927,12 @@ var handlePreToolUse = async (input, canonical) => {
|
|
|
917
927
|
// opinion, so Claude Code's own flow runs as if the hook were absent.
|
|
918
928
|
case "defer":
|
|
919
929
|
return undecidedCall(SOLE_GATE_UNDECIDED_REASON);
|
|
920
|
-
default:
|
|
930
|
+
default: {
|
|
921
931
|
if (preToolUseHandsOff(input, gateInput, verdict)) return ask(TERMINAL_AND_PHONE_REASON);
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
);
|
|
932
|
+
const decided = await dispatchModeDecision(apiKey, input, verdict.policy, getMachineId(), modeState.trainingConsent, verdict.scopeReason, verdict.scopePath, void 0, permissionsOffAskReason(gateInput, verdict), matchedRouteOf(gateInput));
|
|
933
|
+
if (PHONE_APPROVAL_SOURCE && isPhoneApproval(decided)) rememberPhoneApproval(PHONE_APPROVAL_SOURCE, input);
|
|
934
|
+
return rememberHandbackToThePrompt(input, heldForMcpRoute, decided.result);
|
|
935
|
+
}
|
|
927
936
|
}
|
|
928
937
|
} catch (error) {
|
|
929
938
|
await reportHookFailure("pre_tool_use_failed", error);
|
|
@@ -940,6 +949,7 @@ var toPermissionRequestOutput = (hookOutput) => {
|
|
|
940
949
|
if (d.permissionDecision === "deny") return permReqDeny(d.permissionDecisionReason);
|
|
941
950
|
return void 0;
|
|
942
951
|
};
|
|
952
|
+
var answerOfTheReplay = (replayed) => replayed.humanDecision ? toPermissionRequestOutput(replayed.result) : void 0;
|
|
943
953
|
var handlePermissionRequest = async (input, canonical, holdBudgetSeconds) => {
|
|
944
954
|
const claudeRules = claudePermissionRulesFor(input);
|
|
945
955
|
if (canonical === void 0 && !claudeRulesMayCover(input, claudeRules) && isPermissionRequestOwnedByPreToolUse(input.tool_name, input.permission_mode, shouldDeferToNativeMode) && !terminalStaysLiveForTheCall(terminalLiveFactsOf(input))) return void 0;
|
|
@@ -967,12 +977,14 @@ var handlePermissionRequest = async (input, canonical, holdBudgetSeconds) => {
|
|
|
967
977
|
if (isMcpCallInClaudeCode(input) && claimMcpHoldHandback(blockedActionFingerprintFor(input))) return void 0;
|
|
968
978
|
if (agentQuestionStrategy(ACTIVE_SOURCE, "PermissionRequest", input.tool_name) === AGENT_QUESTION_STRATEGY.native) return void 0;
|
|
969
979
|
if (verdict.kind === "gate" && verdict.scopeReason && (canonical?.toolInputs.length ?? 0) > 1) return permReqDeny(SCOPE_BATCH_REASON);
|
|
980
|
+
const approvedCall = PHONE_APPROVAL_SOURCE ? takePhoneApproval(PHONE_APPROVAL_SOURCE, input) : void 0;
|
|
981
|
+
const preToolUseAllowLeftThePrompt = PHONE_APPROVAL_SOURCE !== null && (verdict.kind === "allow" || approvedCall !== void 0);
|
|
970
982
|
const handedOff = preToolUseHandsOff(input, gateInput, verdict);
|
|
971
983
|
const terminalLive = terminalStaysLiveForTheCall(terminalLiveFactsOf(input));
|
|
972
984
|
const scopeQuestion = verdict.kind === "gate" && Boolean(verdict.scopeReason);
|
|
973
985
|
const preToolUseRanForTheCall = PRETOOLUSE_HANDLED_TOOLS.has(input.tool_name) && isAdmitted(readAdmissionRules(), "claude", "PreToolUse");
|
|
974
986
|
const preToolUseAskedTheScopeQuestion = scopeQuestion && terminalLive && preToolUseRanForTheCall;
|
|
975
|
-
const preToolUseOwnsTheCall = !scopeQuestion && !claudeAllowlistOwnsCall(gateInput, verdict, input.permission_mode, claudeRules) && (isPermissionRequestOwnedByPreToolUse(input.tool_name, input.permission_mode, shouldDeferToNativeMode) || preToolUseRanForTheCall && approvalRouteOutranksAutoMode(gateInput, verdict, input.permission_mode));
|
|
987
|
+
const preToolUseOwnsTheCall = !scopeQuestion && !preToolUseAllowLeftThePrompt && !claudeAllowlistOwnsCall(gateInput, verdict, input.permission_mode, claudeRules) && (isPermissionRequestOwnedByPreToolUse(input.tool_name, input.permission_mode, shouldDeferToNativeMode) || preToolUseRanForTheCall && approvalRouteOutranksAutoMode(gateInput, verdict, input.permission_mode));
|
|
976
988
|
if (!handedOff && (preToolUseAskedTheScopeQuestion || preToolUseOwnsTheCall)) return void 0;
|
|
977
989
|
const terminalLiveDispatch = handedOff ? { holdBudgetSeconds } : void 0;
|
|
978
990
|
switch (verdict.kind) {
|
|
@@ -982,6 +994,11 @@ var handlePermissionRequest = async (input, canonical, holdBudgetSeconds) => {
|
|
|
982
994
|
case "defer":
|
|
983
995
|
return void 0;
|
|
984
996
|
default:
|
|
997
|
+
if (approvedCall) {
|
|
998
|
+
return answerOfTheReplay(
|
|
999
|
+
await dispatchModeDecision(apiKey, approvedCall, verdict.policy, getMachineId(), false, verdict.scopeReason, verdict.scopePath, terminalLiveDispatch, permissionsOffAskReason(gateInput, verdict), matchedRouteOf(gateInput))
|
|
1000
|
+
);
|
|
1001
|
+
}
|
|
985
1002
|
return toPermissionRequestOutput(
|
|
986
1003
|
await dispatchModeHandler(apiKey, input, verdict.policy, getMachineId(), modeState.trainingConsent, verdict.scopeReason, verdict.scopePath, terminalLiveDispatch, permissionsOffAskReason(gateInput, verdict), matchedRouteOf(gateInput))
|
|
987
1004
|
);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readExistingMachineId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WNT4JHK3.js";
|
|
4
4
|
import {
|
|
5
5
|
getBaseUrl
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IKBTG3OT.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-
|
|
16
|
+
} from "./chunk-DL67HX3D.js";
|
|
17
17
|
|
|
18
18
|
// src/cli/net.ts
|
|
19
19
|
import { createRequire } from "module";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveInstallSourceFor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LNF36PTF.js";
|
|
4
4
|
import {
|
|
5
5
|
configFilePath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IKBTG3OT.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-
|
|
17
|
+
} from "./chunk-DL67HX3D.js";
|
|
18
18
|
|
|
19
19
|
// src/shell-alias.ts
|
|
20
20
|
import { homedir } from "os";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureCodexTrustsPusharyHooks
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6SWFS4GU.js";
|
|
4
4
|
import {
|
|
5
5
|
hermesReceiptPaths,
|
|
6
6
|
hermesSetupPredatesThePluginFolder,
|
|
7
7
|
installHermesPlugin,
|
|
8
8
|
refreshHermesPluginFiles,
|
|
9
9
|
shippedHermesPlugin
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-A7R43KOX.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-
|
|
19
|
+
} from "./chunk-2XDVEBHI.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-
|
|
31
|
+
} from "./chunk-VBWJ756P.js";
|
|
32
32
|
import {
|
|
33
33
|
detectClaudeVersion
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-EJHD44ZN.js";
|
|
35
35
|
import {
|
|
36
36
|
addCompatibleHooks,
|
|
37
37
|
compatibleConfigFile,
|
|
38
38
|
compatibleInstructionsFile,
|
|
39
39
|
hasCompatibleHooks
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-43DT3QWZ.js";
|
|
41
41
|
import {
|
|
42
42
|
GEMINI_HOOK_BINARY,
|
|
43
43
|
addGeminiHooks,
|
|
@@ -49,10 +49,10 @@ import {
|
|
|
49
49
|
geminiWired,
|
|
50
50
|
hasGeminiHooks,
|
|
51
51
|
planHooks
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-TLK5YLIE.js";
|
|
53
53
|
import {
|
|
54
54
|
KEY_FILE_MODE
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-PNVTPEO5.js";
|
|
56
56
|
import {
|
|
57
57
|
CLAUDE_HOOK_BINARY,
|
|
58
58
|
CLAUDE_HOOK_EVENTS,
|
|
@@ -99,13 +99,13 @@ import {
|
|
|
99
99
|
renderAgentInstructions,
|
|
100
100
|
supportedClaudeEvents,
|
|
101
101
|
vscodePluginMcp
|
|
102
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-R7KC57PC.js";
|
|
103
103
|
import {
|
|
104
104
|
formatVersion,
|
|
105
105
|
hookCommandsUseBareNames,
|
|
106
106
|
resolveGlobalBinDir,
|
|
107
107
|
resolveGlobalBinary
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-GS5FH3C2.js";
|
|
109
109
|
import {
|
|
110
110
|
readJsonSafe,
|
|
111
111
|
writeFileAtomic,
|
|
@@ -115,7 +115,7 @@ import {
|
|
|
115
115
|
HOOK_COMPATIBLE_PROFILES,
|
|
116
116
|
isCompatibleAgentType,
|
|
117
117
|
isRecord
|
|
118
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-DL67HX3D.js";
|
|
119
119
|
|
|
120
120
|
// src/reapply.ts
|
|
121
121
|
import { dirname, join } from "path";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pusharyFetch
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PHA6AFOR.js";
|
|
4
4
|
import {
|
|
5
5
|
getBaseUrl
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IKBTG3OT.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-
|
|
16
|
+
} from "./chunk-DL67HX3D.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;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
external_exports
|
|
3
3
|
} from "./chunk-XMSDA5WA.js";
|
|
4
|
+
import {
|
|
5
|
+
RETRY_ACK,
|
|
6
|
+
refusedReceiptMessage
|
|
7
|
+
} from "./chunk-Y47BMZUR.js";
|
|
4
8
|
|
|
5
9
|
// src/command-receipts.ts
|
|
6
10
|
import { randomUUID } from "crypto";
|
|
@@ -16,8 +20,10 @@ var CommandReceipts = class {
|
|
|
16
20
|
this.options = options;
|
|
17
21
|
}
|
|
18
22
|
pending = /* @__PURE__ */ new Map();
|
|
23
|
+
refused = /* @__PURE__ */ new Set();
|
|
19
24
|
flushing;
|
|
20
25
|
async receive(command, acknowledge) {
|
|
26
|
+
if (this.refused.has(command.id)) return;
|
|
21
27
|
if (this.pending.has(command.id)) {
|
|
22
28
|
await this.flush();
|
|
23
29
|
return;
|
|
@@ -34,8 +40,9 @@ var CommandReceipts = class {
|
|
|
34
40
|
await this.flush();
|
|
35
41
|
return;
|
|
36
42
|
}
|
|
37
|
-
const dispatched = await acknowledge("dispatching", receipt.dispatchId).catch(() =>
|
|
38
|
-
if (
|
|
43
|
+
const dispatched = await acknowledge("dispatching", receipt.dispatchId).catch(() => RETRY_ACK);
|
|
44
|
+
if (dispatched.outcome !== "settled") {
|
|
45
|
+
if (dispatched.outcome === "refused") this.refused.add(command.id);
|
|
39
46
|
this.pending.delete(command.id);
|
|
40
47
|
return;
|
|
41
48
|
}
|
|
@@ -66,9 +73,17 @@ var CommandReceipts = class {
|
|
|
66
73
|
if (receipt.state === "dispatching") continue;
|
|
67
74
|
const state = receipt.state;
|
|
68
75
|
try {
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
71
|
-
|
|
76
|
+
const ack = await receipt.acknowledge(state, receipt.dispatchId);
|
|
77
|
+
if (ack.outcome === "retry") {
|
|
78
|
+
this.options.log("[pushary] receipt not confirmed; retrying on reconnect");
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (receipt.state !== state) continue;
|
|
82
|
+
this.pending.delete(id);
|
|
83
|
+
if (ack.outcome === "refused") {
|
|
84
|
+
this.refused.add(id);
|
|
85
|
+
this.options.log(refusedReceiptMessage(id, ack.status));
|
|
86
|
+
}
|
|
72
87
|
} catch {
|
|
73
88
|
this.options.log("[pushary] receipt could not be confirmed; retrying on reconnect");
|
|
74
89
|
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
formatVersion,
|
|
4
4
|
quoteIfNeeded,
|
|
5
5
|
shellDoubleQuoted
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GS5FH3C2.js";
|
|
7
7
|
import {
|
|
8
8
|
writeFileAtomic
|
|
9
9
|
} from "./chunk-TODDEIYG.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
PRETOOLUSE_GATED_TOOLS,
|
|
21
21
|
PUSHARY_TOOL_PREFIX,
|
|
22
22
|
withHookHoldBudget
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-DL67HX3D.js";
|
|
24
24
|
|
|
25
25
|
// src/setup/paths.ts
|
|
26
26
|
import { createHash as createHash2 } from "crypto";
|
|
@@ -531,8 +531,8 @@ var loadedOnce = (load) => {
|
|
|
531
531
|
};
|
|
532
532
|
|
|
533
533
|
// src/codex-desktop-proxy.ts
|
|
534
|
-
var loadThePhone = () => import("./api-
|
|
535
|
-
var loadTheCardRouting = () => import("./codex-card-routing-
|
|
534
|
+
var loadThePhone = () => import("./api-5H25QRNM.js");
|
|
535
|
+
var loadTheCardRouting = () => import("./codex-card-routing-LQJEJNTS.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-
|
|
1088
|
+
const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-Z7TMF2OR.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,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENT_CHOICES
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5XDFQ6E3.js";
|
|
4
4
|
import {
|
|
5
5
|
BELL_HOOK_BINARY
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LAWI6NQK.js";
|
|
7
7
|
import {
|
|
8
8
|
CLAUDE_HOOK_EVENTS,
|
|
9
9
|
CODEX_HOOK_EVENTS,
|
|
@@ -16,13 +16,13 @@ import {
|
|
|
16
16
|
isBridgeLocator,
|
|
17
17
|
isProtectedByScope,
|
|
18
18
|
registerHookEntry
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-R7KC57PC.js";
|
|
20
20
|
import {
|
|
21
21
|
CURSOR_GATE_EVENTS,
|
|
22
22
|
HOOK_BUDGETS,
|
|
23
23
|
HOOK_LOCATOR_BINARY,
|
|
24
24
|
hookCommandHoldBudget
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-DL67HX3D.js";
|
|
26
26
|
|
|
27
27
|
// src/gemini-config.ts
|
|
28
28
|
var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
keyPrefix,
|
|
5
5
|
readConfigFileKey,
|
|
6
6
|
readMacAppKeyPrefix
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PNVTPEO5.js";
|
|
8
8
|
import {
|
|
9
9
|
NPX_LATEST_COMMAND
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MQMVJDII.js";
|
|
11
11
|
|
|
12
12
|
// src/key-signed-out.ts
|
|
13
13
|
var VERDICT_BY_CHECK = {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
callDecisionStore,
|
|
3
|
+
identifyingToolInput
|
|
4
|
+
} from "./chunk-D7AAAD6W.js";
|
|
5
|
+
import {
|
|
6
|
+
canonicalJson
|
|
7
|
+
} from "./chunk-R7KC57PC.js";
|
|
8
|
+
|
|
9
|
+
// src/phone-approval.ts
|
|
10
|
+
import { createHash } from "crypto";
|
|
11
|
+
var PHONE_APPROVAL_TTL_MS = 60 * 60 * 1e3;
|
|
12
|
+
var promptedCallKey = (source, call) => {
|
|
13
|
+
if (!call.session_id || !call.tool_name) return null;
|
|
14
|
+
const material = canonicalJson([source, call.session_id, call.cwd ?? "", call.tool_name, identifyingToolInput(call.tool_input)]);
|
|
15
|
+
return createHash("sha256").update(material, "utf-8").digest("hex").slice(0, 32);
|
|
16
|
+
};
|
|
17
|
+
var phoneApprovals = callDecisionStore("phone-approval", PHONE_APPROVAL_TTL_MS);
|
|
18
|
+
var forgetPhoneApproval = (source, call) => phoneApprovals.forget(promptedCallKey(source, call));
|
|
19
|
+
var rememberPhoneApproval = (source, call) => {
|
|
20
|
+
if (call.tool_use_id) phoneApprovals.record(promptedCallKey(source, call), { kind: "approved", toolUseId: call.tool_use_id });
|
|
21
|
+
};
|
|
22
|
+
var takePhoneApproval = (source, call) => {
|
|
23
|
+
const recorded = phoneApprovals.consume(promptedCallKey(source, call));
|
|
24
|
+
return recorded?.kind === "approved" ? { ...call, tool_use_id: recorded.toolUseId } : void 0;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
forgetPhoneApproval,
|
|
29
|
+
rememberPhoneApproval,
|
|
30
|
+
takePhoneApproval
|
|
31
|
+
};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
APPROVAL_RULES_PATH,
|
|
3
3
|
canChangeApprovalSettings
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3QBI5C6P.js";
|
|
5
5
|
import {
|
|
6
6
|
callMcpTool
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WXUEOHYY.js";
|
|
8
8
|
import {
|
|
9
9
|
absoluteUrl
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-Q2VV77IY.js";
|
|
11
11
|
import {
|
|
12
12
|
getBaseUrl
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IKBTG3OT.js";
|
|
14
14
|
import {
|
|
15
15
|
NPX_LATEST_COMMAND
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-MQMVJDII.js";
|
|
17
17
|
import {
|
|
18
18
|
AGENT_STOP_DEFAULT_SECONDS,
|
|
19
19
|
APPROVAL_MODE_META,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
classifyConfirmResponse,
|
|
22
22
|
isAnswerSource,
|
|
23
23
|
roundTripAsk
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-DL67HX3D.js";
|
|
25
25
|
|
|
26
26
|
// src/reach.ts
|
|
27
27
|
var reachVerdict = (channels) => {
|