pushary 1.9.62 → 1.9.63
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 +9 -0
- package/README.md +1 -1
- package/dist/{api-7HLZRIUV.js → api-UHUUAONF.js} +10 -10
- package/dist/bin/pushary-bell-hook.js +27 -27
- package/dist/bin/pushary-bell.js +12 -12
- package/dist/bin/pushary-claude.js +28 -28
- package/dist/bin/pushary-clean.js +35 -34
- package/dist/bin/pushary-codex-bridge.js +21 -21
- package/dist/bin/pushary-codex-hook.js +35 -35
- package/dist/bin/pushary-codex-session.js +8 -8
- package/dist/bin/pushary-codex.js +14 -14
- package/dist/bin/pushary-connect.js +27 -27
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +39 -38
- package/dist/bin/pushary-disconnect.js +30 -29
- package/dist/bin/pushary-doctor.js +45 -43
- package/dist/bin/pushary-elicitation-hook.js +28 -28
- package/dist/bin/pushary-gemini-bridge.js +15 -15
- package/dist/bin/pushary-gemini-hook.js +30 -30
- package/dist/bin/pushary-hook.js +31 -31
- package/dist/bin/pushary-login.js +27 -15
- package/dist/bin/pushary-logout.js +28 -28
- package/dist/bin/pushary-mcp.js +11 -11
- package/dist/bin/pushary-mode.js +14 -14
- package/dist/bin/pushary-notification-hook.js +26 -26
- package/dist/bin/pushary-opencode-hook.js +29 -29
- package/dist/bin/pushary-permission-denied-hook.js +31 -31
- package/dist/bin/pushary-permission-hook.js +30 -30
- package/dist/bin/pushary-post-hook.js +26 -26
- package/dist/bin/pushary-prompt-hook.js +26 -26
- package/dist/bin/pushary-session-end-hook.js +26 -26
- package/dist/bin/pushary-session-start-hook.js +34 -33
- package/dist/bin/pushary-setup.js +114 -4204
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +32 -32
- package/dist/bin/pushary-stop-hook.js +26 -26
- package/dist/bin/pushary-stopfailure-hook.js +26 -26
- package/dist/bin/pushary-suggestions.js +14 -14
- package/dist/bin/pushary-transcript-register.js +18 -18
- package/dist/bin/pushary-transcripts.js +62 -9
- package/dist/bin/pushary-upgrade.js +43 -41
- package/dist/bin/pushary-wait.js +14 -14
- package/dist/bin/pushary.js +7 -7
- package/dist/{chunk-67Q3Q5IO.js → chunk-2MZ6ROWZ.js} +6 -6
- package/dist/{chunk-7GU4PXE5.js → chunk-3GVV7XVT.js} +1 -1
- package/dist/{chunk-557ZE5EX.js → chunk-3QLFB2EY.js} +4 -4
- package/dist/{chunk-5R23J52J.js → chunk-4WFAP6QN.js} +10 -10
- package/dist/{chunk-UWCPY4RY.js → chunk-5JK3DQGZ.js} +2 -2
- package/dist/{chunk-CFIQ3252.js → chunk-5LOP4AVD.js} +3 -3
- package/dist/{chunk-FG5HMJ7C.js → chunk-6Z2VR3BA.js} +4 -2
- package/dist/{chunk-OZRT64BB.js → chunk-75ODMNOM.js} +1 -1
- package/dist/{chunk-4K6YZPZ3.js → chunk-7GRQGXF4.js} +1 -1
- package/dist/{chunk-FXECTHAG.js → chunk-7NCLUA65.js} +26 -4
- package/dist/{chunk-Q4WTIKM6.js → chunk-AB3VAQ25.js} +3 -3
- package/dist/{chunk-7ETELRQX.js → chunk-BCVCUDFI.js} +16 -5
- package/dist/{chunk-LCNN7UOE.js → chunk-BQFL2ECS.js} +3 -3
- package/dist/{chunk-DFKEJARZ.js → chunk-BUQU3OPX.js} +1 -1
- package/dist/{chunk-RFCEVROB.js → chunk-CLABCSZC.js} +4 -4
- package/dist/{chunk-LILS32LF.js → chunk-DMNLFWGY.js} +7 -108
- package/dist/{chunk-SDOWT67G.js → chunk-EHHTQURL.js} +5 -5
- package/dist/{chunk-ESXGCZDA.js → chunk-ELAK46NR.js} +4 -4
- package/dist/{chunk-ZJFJUAHS.js → chunk-EQ26IKZM.js} +6 -6
- package/dist/{chunk-NZLQ6GMX.js → chunk-FAF5AW3P.js} +9 -9
- package/dist/{chunk-A4CZPUQ6.js → chunk-FEAGK25K.js} +1 -1
- package/dist/{chunk-3LBB7GVF.js → chunk-GNUARBRZ.js} +4 -4
- package/dist/{chunk-AFV3FQNG.js → chunk-GZS72NCF.js} +4 -4
- package/dist/{chunk-3YGUWPNZ.js → chunk-HAIXS4OX.js} +2 -2
- package/dist/{chunk-TMHE5CVX.js → chunk-HOIO66DU.js} +3 -3
- package/dist/{chunk-NAZRRXZM.js → chunk-HZ72EMJE.js} +2 -2
- package/dist/{chunk-W3CBFLIX.js → chunk-IOH2T3CB.js} +17 -3
- package/dist/chunk-KEPESIIR.js +4117 -0
- package/dist/{chunk-3IFCXMC6.js → chunk-KL76XWZ7.js} +1 -1
- package/dist/{chunk-F35YILEN.js → chunk-KLZZI5TU.js} +1 -1
- package/dist/{chunk-GV43RXR2.js → chunk-KUCL7ETL.js} +1 -1
- package/dist/{chunk-G3ZDCYMU.js → chunk-L5CDGXPO.js} +3 -3
- package/dist/{chunk-EA6574W2.js → chunk-LGZ545TA.js} +5 -5
- package/dist/{chunk-6HIYOY6I.js → chunk-LTT54NOU.js} +8 -8
- package/dist/{chunk-6YSEOXP5.js → chunk-MK4USZYQ.js} +2 -2
- package/dist/{chunk-FX7KDF47.js → chunk-MRCVYYPW.js} +3 -3
- package/dist/{chunk-ZEDGKCCM.js → chunk-OJEIS5L2.js} +1 -1
- package/dist/{chunk-GFAG72LR.js → chunk-OP5IBEV7.js} +7 -3
- package/dist/{chunk-SJCPIYWJ.js → chunk-OU3BYBJ3.js} +2 -2
- package/dist/{chunk-W6MYFAOK.js → chunk-OW6VBXXI.js} +15 -15
- package/dist/{chunk-R3CLBNST.js → chunk-OY6Z4IKB.js} +1 -1
- package/dist/{chunk-SJJYXMJP.js → chunk-P6RF4RQN.js} +6 -6
- package/dist/{chunk-7E2ZN7XA.js → chunk-PIQ4HHA2.js} +5 -5
- package/dist/{chunk-VF3IL56Q.js → chunk-PJ34FOIV.js} +4 -4
- package/dist/{chunk-LWR5VKNC.js → chunk-PXAOEFJZ.js} +11 -11
- package/dist/{chunk-7EHZXZB2.js → chunk-QC2W42DE.js} +12 -12
- package/dist/{chunk-7NXB7OVX.js → chunk-RAJ3QEIL.js} +1 -1
- package/dist/chunk-S2Z6VWHH.js +112 -0
- package/dist/{chunk-MYEALNW6.js → chunk-SARPHHTT.js} +1 -1
- package/dist/{chunk-7NJ4TDUH.js → chunk-SKUSGWFK.js} +5 -5
- package/dist/{chunk-YQK72JGV.js → chunk-T3GHXR6N.js} +5 -5
- package/dist/{chunk-EUNSJKJJ.js → chunk-T6XQNOZV.js} +22 -15
- package/dist/{chunk-RSNN2TPE.js → chunk-TBKHQWIH.js} +9 -9
- package/dist/{chunk-M7MEVILL.js → chunk-TMGJAFSD.js} +4 -4
- package/dist/{chunk-PSCXEH42.js → chunk-V5W3CK7F.js} +2 -2
- package/dist/{chunk-UUAVYIWJ.js → chunk-V7N5NOZV.js} +4 -2
- package/dist/{chunk-LL2KHEJH.js → chunk-VC3HFFMQ.js} +1 -1
- package/dist/{chunk-QIPW7OVB.js → chunk-VDBXSUXP.js} +6 -6
- package/dist/{chunk-HSRNWCXJ.js → chunk-VFJSVPNL.js} +3 -3
- package/dist/{chunk-RU37NSZH.js → chunk-VHZAJ6IB.js} +3 -3
- package/dist/{chunk-BIUSODLS.js → chunk-VN7XH6TU.js} +2 -2
- package/dist/{chunk-EO6CL4PD.js → chunk-WUOOZE5S.js} +2 -2
- package/dist/{chunk-6JAWNRDR.js → chunk-XBTWG2VL.js} +4 -4
- package/dist/{chunk-MURJ4WAL.js → chunk-XE5N352V.js} +1 -1
- package/dist/{chunk-44FNEAXK.js → chunk-XO3KAH7K.js} +1 -1
- package/dist/{chunk-EVZDYG7L.js → chunk-YK6GR4GU.js} +2 -2
- package/dist/{chunk-FYS27SUS.js → chunk-YMZOM6BD.js} +6 -6
- package/dist/{codex-app-cards-switch-IIL7IPP6.js → codex-app-cards-switch-LXMAIOFB.js} +11 -11
- package/dist/{codex-desktop-launch-XCLMYVBD.js → codex-desktop-launch-VE5RLFUU.js} +1 -1
- package/dist/{codex-session-launch-UMVALJ3A.js → codex-session-launch-XZZWXCPK.js} +18 -18
- package/dist/{config-5N3GUJD5.js → config-PPX25AV5.js} +3 -3
- package/dist/{global-upgrade-5F4CSXED.js → global-upgrade-NRMHNLNU.js} +9 -9
- package/dist/{identity-7ULYW4RL.js → identity-ZFQR7JNW.js} +4 -4
- package/dist/{live-capabilities-QTSFXA6T.js → live-capabilities-SJRYRKNB.js} +4 -4
- package/dist/{paths-HEMK2ALW.js → paths-7VTVOQXJ.js} +3 -3
- package/dist/{reapply-AMFKVYZV.js → reapply-WOANOIRZ.js} +27 -26
- package/dist/src/index.js +21 -21
- package/dist/{upgrade-lock-IAZC5644.js → upgrade-lock-VAYJZVTB.js} +4 -4
- package/dist/{usage-NEFDYSRT.js → usage-C4DIYUR6.js} +3 -3
- package/package.json +1 -1
package/dist/bin/pushary-wait.js
CHANGED
|
@@ -2,29 +2,29 @@
|
|
|
2
2
|
import {
|
|
3
3
|
waitResponse,
|
|
4
4
|
waitWindowResponse
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-RAJ3QEIL.js";
|
|
6
6
|
import {
|
|
7
7
|
describeWaitLadder
|
|
8
8
|
} from "../chunk-CVWG2N3Y.js";
|
|
9
9
|
import {
|
|
10
10
|
exitOnFailedSettingsRequest
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-GZS72NCF.js";
|
|
12
|
+
import "../chunk-HZ72EMJE.js";
|
|
13
13
|
import {
|
|
14
14
|
createIo
|
|
15
15
|
} from "../chunk-FO3MDD26.js";
|
|
16
16
|
import {
|
|
17
17
|
exitOnHelpFlag
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-75ODMNOM.js";
|
|
19
19
|
import {
|
|
20
20
|
parseFlags
|
|
21
21
|
} from "../chunk-NMUI3ZWG.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-IOH2T3CB.js";
|
|
23
|
+
import "../chunk-AB3VAQ25.js";
|
|
24
24
|
import {
|
|
25
25
|
pusharyFetch
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
26
|
+
} from "../chunk-VFJSVPNL.js";
|
|
27
|
+
import "../chunk-L5CDGXPO.js";
|
|
28
28
|
import {
|
|
29
29
|
UsageError,
|
|
30
30
|
exitCodeFor
|
|
@@ -32,17 +32,17 @@ import {
|
|
|
32
32
|
import {
|
|
33
33
|
EXIT
|
|
34
34
|
} from "../chunk-KZERVKTD.js";
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-6YSEOXP5.js";
|
|
37
|
-
import "../chunk-CFIQ3252.js";
|
|
35
|
+
import "../chunk-V5W3CK7F.js";
|
|
38
36
|
import "../chunk-QENTGE75.js";
|
|
37
|
+
import "../chunk-MK4USZYQ.js";
|
|
38
|
+
import "../chunk-5LOP4AVD.js";
|
|
39
39
|
import {
|
|
40
40
|
getApiKey,
|
|
41
41
|
getBaseUrl
|
|
42
|
-
} from "../chunk-
|
|
43
|
-
import "../chunk-
|
|
42
|
+
} from "../chunk-BUQU3OPX.js";
|
|
43
|
+
import "../chunk-6Z2VR3BA.js";
|
|
44
44
|
import "../chunk-QTOLNRET.js";
|
|
45
|
-
import "../chunk-
|
|
45
|
+
import "../chunk-7NCLUA65.js";
|
|
46
46
|
import "../chunk-MLKGABMK.js";
|
|
47
47
|
|
|
48
48
|
// bin/pushary-wait.ts
|
package/dist/bin/pushary.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
installNetworkDefaults
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-VFJSVPNL.js";
|
|
5
|
+
import "../chunk-L5CDGXPO.js";
|
|
6
6
|
import "../chunk-PPY5N2E6.js";
|
|
7
7
|
import {
|
|
8
8
|
EXIT
|
|
9
9
|
} from "../chunk-KZERVKTD.js";
|
|
10
|
-
import "../chunk-6YSEOXP5.js";
|
|
11
|
-
import "../chunk-CFIQ3252.js";
|
|
12
10
|
import "../chunk-QENTGE75.js";
|
|
13
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-MK4USZYQ.js";
|
|
12
|
+
import "../chunk-5LOP4AVD.js";
|
|
13
|
+
import "../chunk-BUQU3OPX.js";
|
|
14
14
|
import {
|
|
15
15
|
LISTED_COMMANDS,
|
|
16
16
|
renderHelp,
|
|
17
17
|
resolveCommandName
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-6Z2VR3BA.js";
|
|
19
19
|
import {
|
|
20
20
|
getPackageVersion
|
|
21
21
|
} from "../chunk-QTOLNRET.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-7NCLUA65.js";
|
|
23
23
|
import "../chunk-MLKGABMK.js";
|
|
24
24
|
|
|
25
25
|
// src/cli/runtime.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
announceSubscriptionRequired,
|
|
3
3
|
isDeferAnswer
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KL76XWZ7.js";
|
|
5
5
|
import {
|
|
6
6
|
AUTO_DECISION_WINDOW_MS,
|
|
7
7
|
DEFAULT_SESSION,
|
|
@@ -10,19 +10,19 @@ import {
|
|
|
10
10
|
permissionDeniedAction,
|
|
11
11
|
releaseThrottle,
|
|
12
12
|
reportEvent
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-PXAOEFJZ.js";
|
|
14
14
|
import {
|
|
15
15
|
askUser,
|
|
16
16
|
isDecisionStopped,
|
|
17
17
|
isQuestionLimitRefusal,
|
|
18
18
|
waitForQuestion
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-TBKHQWIH.js";
|
|
20
20
|
import {
|
|
21
21
|
SubscriptionRequiredError
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-ELAK46NR.js";
|
|
23
23
|
import {
|
|
24
24
|
getMachineId
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-L5CDGXPO.js";
|
|
26
26
|
import {
|
|
27
27
|
ASK_CONTEXT_MAX,
|
|
28
28
|
agentQuestionContext,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
questionsShownAsASet,
|
|
35
35
|
shouldDeferToNativeMode,
|
|
36
36
|
wireVerdictFor
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-7NCLUA65.js";
|
|
38
38
|
|
|
39
39
|
// src/machine-decision-audit.ts
|
|
40
40
|
import { basename } from "path";
|
|
@@ -3,18 +3,18 @@ import {
|
|
|
3
3
|
addGeminiMcpServer,
|
|
4
4
|
removeGeminiMcpServer,
|
|
5
5
|
supportedClaudeEvents
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BQFL2ECS.js";
|
|
7
7
|
import {
|
|
8
8
|
CLAUDE_CODE_AGENT,
|
|
9
9
|
compatibleToolLookup
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PXAOEFJZ.js";
|
|
11
11
|
import {
|
|
12
12
|
guardBinary,
|
|
13
13
|
guardBinaryRefusing,
|
|
14
14
|
holdBudgetOf,
|
|
15
15
|
isProtectedByScope,
|
|
16
16
|
registerHookEntry
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-MK4USZYQ.js";
|
|
18
18
|
import {
|
|
19
19
|
HOOK_COMPATIBLE_PROFILES,
|
|
20
20
|
HOOK_LOCATOR_BINARY,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
pusharyMissingReason,
|
|
27
27
|
refusalOutput,
|
|
28
28
|
withHookHoldBudget
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-7NCLUA65.js";
|
|
30
30
|
|
|
31
31
|
// src/claude-config.ts
|
|
32
32
|
import { join } from "path";
|
|
@@ -4,25 +4,25 @@ import {
|
|
|
4
4
|
} from "./chunk-XHKBHWLX.js";
|
|
5
5
|
import {
|
|
6
6
|
readControlMode
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IOH2T3CB.js";
|
|
8
8
|
import {
|
|
9
9
|
getMachineId
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
pusharyDir
|
|
13
|
-
} from "./chunk-6YSEOXP5.js";
|
|
14
|
-
import {
|
|
15
|
-
resolveGlobalBinary
|
|
16
|
-
} from "./chunk-CFIQ3252.js";
|
|
10
|
+
} from "./chunk-L5CDGXPO.js";
|
|
17
11
|
import {
|
|
18
12
|
readJsonSafe,
|
|
19
13
|
writeFileAtomic,
|
|
20
14
|
writeJsonAtomic,
|
|
21
15
|
writeJsonAtomicDurable
|
|
22
16
|
} from "./chunk-QENTGE75.js";
|
|
17
|
+
import {
|
|
18
|
+
pusharyDir
|
|
19
|
+
} from "./chunk-MK4USZYQ.js";
|
|
20
|
+
import {
|
|
21
|
+
resolveGlobalBinary
|
|
22
|
+
} from "./chunk-5LOP4AVD.js";
|
|
23
23
|
import {
|
|
24
24
|
getApiKey
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-BUQU3OPX.js";
|
|
26
26
|
import {
|
|
27
27
|
CLI_PACKAGE_NAMES,
|
|
28
28
|
cmdShimTarget,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
} from "./chunk-QTOLNRET.js";
|
|
33
33
|
import {
|
|
34
34
|
isRecord
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-7NCLUA65.js";
|
|
36
36
|
|
|
37
37
|
// src/daemon-lifecycle.ts
|
|
38
38
|
import { dirname, join, win32 as win32Path } from "path";
|
|
@@ -294,7 +294,7 @@ var loadedOnce = (load) => {
|
|
|
294
294
|
};
|
|
295
295
|
|
|
296
296
|
// src/codex-desktop-proxy.ts
|
|
297
|
-
var loadThePhone = () => import("./api-
|
|
297
|
+
var loadThePhone = () => import("./api-UHUUAONF.js");
|
|
298
298
|
var theFirstCardLoadsAgain = () => {
|
|
299
299
|
};
|
|
300
300
|
var APP_SERVER_COMMAND = "app-server";
|
|
@@ -827,7 +827,7 @@ var codexDesktopCommand = async (args, entry, readAccount) => {
|
|
|
827
827
|
return runCodexDesktopProxy(engine2, args.slice(3), readAccount, { watchesForCards: layoutIsKnown });
|
|
828
828
|
}
|
|
829
829
|
if (args[0] === APP_CARDS_FLAG) {
|
|
830
|
-
const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-
|
|
830
|
+
const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-LXMAIOFB.js");
|
|
831
831
|
return codexAppCardsCommandOnThisMac(args.slice(1), entry, readAccount);
|
|
832
832
|
}
|
|
833
833
|
if (args.length > 2) throw new Error("Usage: pushary codex --desktop [path/to/Codex.app]");
|
|
@@ -366,9 +366,9 @@ var installGlobally = (options) => {
|
|
|
366
366
|
}
|
|
367
367
|
const started = (async () => {
|
|
368
368
|
if (!npmIsOnPath()) throw new NpmMissingError();
|
|
369
|
-
const { withUpgradeLock } = await import("./global-upgrade-
|
|
370
|
-
const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-
|
|
371
|
-
const { autoUpdateLock } = await import("./paths-
|
|
369
|
+
const { withUpgradeLock } = await import("./global-upgrade-NRMHNLNU.js");
|
|
370
|
+
const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-VAYJZVTB.js");
|
|
371
|
+
const { autoUpdateLock } = await import("./paths-7VTVOQXJ.js");
|
|
372
372
|
let result = "skipped";
|
|
373
373
|
const install = async () => {
|
|
374
374
|
const platform = process.platform;
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DISCONNECT_AGENT_IDS,
|
|
3
3
|
SETUP_AGENT_CHOICES,
|
|
4
4
|
isApprovalMode
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7NCLUA65.js";
|
|
6
6
|
|
|
7
7
|
// src/cli/mode-request.ts
|
|
8
8
|
var parseDuration = (value) => {
|
|
@@ -127,7 +127,7 @@ var COMMAND_LIST = [
|
|
|
127
127
|
{
|
|
128
128
|
name: "transcripts",
|
|
129
129
|
module: "pushary-transcripts",
|
|
130
|
-
summary: "
|
|
130
|
+
summary: "Turn transcript sync on or off, or show and re-trust the keys it seals to",
|
|
131
131
|
detail: [
|
|
132
132
|
"Sync stops if the phone key or the compliance recovery key changes, because a",
|
|
133
133
|
"change is either your reinstall or a server handing itself a copy. Compare the",
|
|
@@ -168,6 +168,8 @@ var COMMAND_OPTIONS = {
|
|
|
168
168
|
["--yes", "Remove everything without asking"]
|
|
169
169
|
],
|
|
170
170
|
transcripts: [
|
|
171
|
+
["on", "Sync encrypted transcripts from this machine so your phone shows the conversation"],
|
|
172
|
+
["off", "Stop syncing transcripts from this machine"],
|
|
171
173
|
["status", "Show the pinned keys and their fingerprints (default)"],
|
|
172
174
|
["trust --rotate", "Accept the keys the server is offering now and resume syncing"]
|
|
173
175
|
],
|
|
@@ -168,7 +168,8 @@ var defaults = {
|
|
|
168
168
|
activationGuide: null,
|
|
169
169
|
enforcementDetail: "Cooperative. The agent chooses when to ask; no native permission interception.",
|
|
170
170
|
capabilityNote: "",
|
|
171
|
-
documented: true
|
|
171
|
+
documented: true,
|
|
172
|
+
keepsSessionHistory: false
|
|
172
173
|
};
|
|
173
174
|
var AGENTS = {
|
|
174
175
|
claude_code: {
|
|
@@ -184,7 +185,8 @@ var AGENTS = {
|
|
|
184
185
|
enforcement: "enforced",
|
|
185
186
|
connectVia: "Native hooks + MCP",
|
|
186
187
|
setupCommand: PUSHARY_SETUP_COMMAND,
|
|
187
|
-
enforcementDetail: "Shell, writes and edits, subject to Claude Code permission mode and explicit policy."
|
|
188
|
+
enforcementDetail: "Shell, writes and edits, subject to Claude Code permission mode and explicit policy.",
|
|
189
|
+
keepsSessionHistory: true
|
|
188
190
|
},
|
|
189
191
|
claude_chat: {
|
|
190
192
|
...defaults,
|
|
@@ -211,7 +213,8 @@ var AGENTS = {
|
|
|
211
213
|
enforcement: "enforced",
|
|
212
214
|
connectVia: "Native hooks + MCP",
|
|
213
215
|
setupCommand: PUSHARY_SETUP_COMMAND,
|
|
214
|
-
enforcementDetail: "Shell and apply_patch edits through native permission hooks; requires a compatible Codex runtime."
|
|
216
|
+
enforcementDetail: "Shell and apply_patch edits through native permission hooks; requires a compatible Codex runtime.",
|
|
217
|
+
keepsSessionHistory: true
|
|
215
218
|
},
|
|
216
219
|
chatgpt: {
|
|
217
220
|
...defaults,
|
|
@@ -231,7 +234,8 @@ var AGENTS = {
|
|
|
231
234
|
enforcement: "enforced",
|
|
232
235
|
connectVia: "Native hooks + MCP",
|
|
233
236
|
setupCommand: PUSHARY_SETUP_COMMAND,
|
|
234
|
-
enforcementDetail: "Shell, writes, edits and MCP calls through native BeforeTool hooks."
|
|
237
|
+
enforcementDetail: "Shell, writes, edits and MCP calls through native BeforeTool hooks.",
|
|
238
|
+
keepsSessionHistory: true
|
|
235
239
|
},
|
|
236
240
|
hermes: {
|
|
237
241
|
...defaults,
|
|
@@ -427,6 +431,9 @@ var POLICY_AGENTS = [...Object.values(AGENTS).flatMap((agent) => agent.policyAge
|
|
|
427
431
|
var AGENT_LABELS_BY_TYPE = Object.fromEntries(
|
|
428
432
|
Object.entries(AGENTS).flatMap(([id, agent]) => agent.hasStoredIdentity ? [[id, agent.label]] : [])
|
|
429
433
|
);
|
|
434
|
+
var SESSION_HISTORY_AGENT_TYPES = Object.freeze(
|
|
435
|
+
Object.entries(AGENTS).flatMap(([id, agent]) => agent.keepsSessionHistory ? [id] : [])
|
|
436
|
+
);
|
|
430
437
|
var DISCONNECTABLE_AGENTS = Object.freeze(Object.values(AGENTS).flatMap((agent) => agent.disconnectable && agent.hookSource !== null ? [agent.hookSource] : []));
|
|
431
438
|
var REPO_AWARE_AGENTS = Object.freeze(Object.values(AGENTS).flatMap((agent) => agent.repoAware ? [agent.policyAgent] : []));
|
|
432
439
|
var MANAGED_PROVIDERS = Object.freeze(Object.values(AGENTS).flatMap((agent) => agent.managedProvider ? [agent.hookSource] : []));
|
|
@@ -3039,6 +3046,20 @@ var codexNativeApprovalResponse = (approval, answer) => {
|
|
|
3039
3046
|
return { decision: accepted ? "accept" : approval.negativeDecision };
|
|
3040
3047
|
};
|
|
3041
3048
|
|
|
3049
|
+
// ../contracts/src/transcript-record.ts
|
|
3050
|
+
var COMPRESSED_TRANSCRIPT_RECORD_MARKER = 1;
|
|
3051
|
+
var TRANSCRIPT_RECORD_MAX_INFLATED_BYTES = 1024 * 1024;
|
|
3052
|
+
var compressionShrinks = (raw, deflated) => deflated.length + 1 < raw.length;
|
|
3053
|
+
var compressTranscriptRecord = (raw, deflateRaw) => {
|
|
3054
|
+
if (raw.length > TRANSCRIPT_RECORD_MAX_INFLATED_BYTES) return raw;
|
|
3055
|
+
const deflated = deflateRaw(raw);
|
|
3056
|
+
if (!compressionShrinks(raw, deflated)) return raw;
|
|
3057
|
+
const record3 = new Uint8Array(deflated.length + 1);
|
|
3058
|
+
record3[0] = COMPRESSED_TRANSCRIPT_RECORD_MARKER;
|
|
3059
|
+
record3.set(deflated, 1);
|
|
3060
|
+
return record3;
|
|
3061
|
+
};
|
|
3062
|
+
|
|
3042
3063
|
// ../contracts/src/index.ts
|
|
3043
3064
|
var KEY_SCOPES = ["full_access", "agent", "connector", "bound"];
|
|
3044
3065
|
var normalizeKeyScope = (value) => typeof value === "string" && KEY_SCOPES.includes(value) ? value : null;
|
|
@@ -6338,6 +6359,7 @@ export {
|
|
|
6338
6359
|
CODEX_NATIVE_APPROVAL_REPLIES,
|
|
6339
6360
|
parseCodexNativeApproval,
|
|
6340
6361
|
codexNativeApprovalResponse,
|
|
6362
|
+
compressTranscriptRecord,
|
|
6341
6363
|
normalizeKeyScope,
|
|
6342
6364
|
isApprovalMode,
|
|
6343
6365
|
approvalModeWithoutLocalPrompt,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pusharyFetch
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VFJSVPNL.js";
|
|
4
4
|
import {
|
|
5
5
|
NetworkError
|
|
6
6
|
} from "./chunk-PPY5N2E6.js";
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
} from "./chunk-KZERVKTD.js";
|
|
10
10
|
import {
|
|
11
11
|
getBaseUrl
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BUQU3OPX.js";
|
|
13
13
|
import {
|
|
14
14
|
isValidApiKey,
|
|
15
15
|
normalizeKeyScope
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-7NCLUA65.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,9 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
+
compressTranscriptRecord,
|
|
2
3
|
redactSecretsFromContent
|
|
3
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7NCLUA65.js";
|
|
4
5
|
|
|
5
6
|
// src/crypto.ts
|
|
6
7
|
import nacl from "tweetnacl";
|
|
8
|
+
|
|
9
|
+
// ../contracts/src/transcript-record-node.ts
|
|
10
|
+
import { deflateRawSync, inflateRawSync } from "zlib";
|
|
11
|
+
var deflateRaw = (raw) => new Uint8Array(deflateRawSync(raw));
|
|
12
|
+
|
|
13
|
+
// src/crypto.ts
|
|
7
14
|
var EPH_PUB_LEN = nacl.box.publicKeyLength;
|
|
8
15
|
var BOX_NONCE_LEN = nacl.box.nonceLength;
|
|
9
16
|
var SECRETBOX_NONCE_LEN = nacl.secretbox.nonceLength;
|
|
@@ -23,14 +30,17 @@ var wrapSessionKey = (sessionKey, accountPublicKey) => {
|
|
|
23
30
|
bundle.set(box, EPH_PUB_LEN + BOX_NONCE_LEN);
|
|
24
31
|
return toBase64(bundle);
|
|
25
32
|
};
|
|
26
|
-
var
|
|
33
|
+
var sealRecordBytes = (plaintext, sessionKey) => {
|
|
27
34
|
const nonce = nacl.randomBytes(SECRETBOX_NONCE_LEN);
|
|
28
|
-
const box = nacl.secretbox(
|
|
35
|
+
const box = nacl.secretbox(plaintext, nonce, sessionKey);
|
|
29
36
|
const bundle = new Uint8Array(SECRETBOX_NONCE_LEN + box.length);
|
|
30
37
|
bundle.set(nonce, 0);
|
|
31
38
|
bundle.set(box, SECRETBOX_NONCE_LEN);
|
|
32
39
|
return toBase64(bundle);
|
|
33
40
|
};
|
|
41
|
+
var encryptRecord = (plaintext, sessionKey) => sealRecordBytes(utf8Encode(plaintext), sessionKey);
|
|
42
|
+
var encryptCompressedRecord = (plaintext, sessionKey) => sealRecordBytes(compressTranscriptRecord(utf8Encode(plaintext), deflateRaw), sessionKey);
|
|
43
|
+
var recordSealerFor = (compressRecords) => compressRecords ? encryptCompressedRecord : encryptRecord;
|
|
34
44
|
|
|
35
45
|
// src/transcript-capture.ts
|
|
36
46
|
import { createHmac } from "crypto";
|
|
@@ -123,7 +133,7 @@ var redactDeep = (value) => {
|
|
|
123
133
|
return value;
|
|
124
134
|
};
|
|
125
135
|
var localIdFor = (parsed, rawLine, sessionKey) => typeof parsed.uuid === "string" && parsed.uuid.length > 0 ? parsed.uuid : createHmac("sha256", sessionKey).update(rawLine).digest("hex").slice(0, 32);
|
|
126
|
-
var buildTranscriptRecords = (lines, sessionKey, seen = /* @__PURE__ */ new Set()) => {
|
|
136
|
+
var buildTranscriptRecords = (lines, sessionKey, seen = /* @__PURE__ */ new Set(), sealRecord = encryptRecord) => {
|
|
127
137
|
const records = [];
|
|
128
138
|
const nextSeen = new Set(seen);
|
|
129
139
|
for (const line of lines) {
|
|
@@ -142,7 +152,7 @@ var buildTranscriptRecords = (lines, sessionKey, seen = /* @__PURE__ */ new Set(
|
|
|
142
152
|
nextSeen.add(localId);
|
|
143
153
|
const redacted = redactDeep(parsed);
|
|
144
154
|
fitWithinPlaintextBudget(redacted);
|
|
145
|
-
const content =
|
|
155
|
+
const content = sealRecord(JSON.stringify(redacted), sessionKey);
|
|
146
156
|
records.push({ localId, content });
|
|
147
157
|
}
|
|
148
158
|
return { records, seen: nextSeen };
|
|
@@ -153,5 +163,6 @@ export {
|
|
|
153
163
|
generateSessionKey,
|
|
154
164
|
wrapSessionKey,
|
|
155
165
|
encryptRecord,
|
|
166
|
+
recordSealerFor,
|
|
156
167
|
buildTranscriptRecords
|
|
157
168
|
};
|
|
@@ -5,16 +5,16 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
NOTIFICATION_MATCHED_TYPES,
|
|
7
7
|
POSTTOOLUSE_MIRRORED_TOOLS
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VC3HFFMQ.js";
|
|
9
9
|
import {
|
|
10
10
|
isProtectedByScope,
|
|
11
11
|
registerHookEntry
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MK4USZYQ.js";
|
|
13
13
|
import {
|
|
14
14
|
CLAUDE_PRETOOLUSE_MATCHER,
|
|
15
15
|
HOOK_BUDGETS,
|
|
16
16
|
HOOK_LOCATOR_BINARY
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-7NCLUA65.js";
|
|
18
18
|
|
|
19
19
|
// src/gemini-config.ts
|
|
20
20
|
var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
pusharyDir
|
|
3
|
-
} from "./chunk-6YSEOXP5.js";
|
|
4
1
|
import {
|
|
5
2
|
readJsonSafe
|
|
6
3
|
} from "./chunk-QENTGE75.js";
|
|
4
|
+
import {
|
|
5
|
+
pusharyDir
|
|
6
|
+
} from "./chunk-MK4USZYQ.js";
|
|
7
7
|
import {
|
|
8
8
|
isRecord
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7NCLUA65.js";
|
|
10
10
|
|
|
11
11
|
// src/process-ownership.ts
|
|
12
12
|
import { createHash, randomUUID } from "crypto";
|
|
@@ -1,25 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AgentConfigError,
|
|
3
|
+
configFailureKind,
|
|
4
|
+
retryAgentCommand
|
|
5
|
+
} from "./chunk-S2Z6VWHH.js";
|
|
1
6
|
import {
|
|
2
7
|
MCP_BRIDGE_BINARY
|
|
3
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WUOOZE5S.js";
|
|
4
9
|
import {
|
|
5
10
|
KEY_FILE_MODE
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
NpmInstallError,
|
|
9
|
-
NpmMissingError,
|
|
10
|
-
NpmPermissionError
|
|
11
|
-
} from "./chunk-CFIQ3252.js";
|
|
11
|
+
} from "./chunk-IOH2T3CB.js";
|
|
12
12
|
import {
|
|
13
13
|
readJsonSafe,
|
|
14
14
|
writeFileAtomic,
|
|
15
15
|
writeJsonAtomic
|
|
16
16
|
} from "./chunk-QENTGE75.js";
|
|
17
|
-
import {
|
|
18
|
-
NPX_LATEST_COMMAND
|
|
19
|
-
} from "./chunk-FG5HMJ7C.js";
|
|
20
|
-
import {
|
|
21
|
-
readSetupAgentFailures
|
|
22
|
-
} from "./chunk-FXECTHAG.js";
|
|
23
17
|
|
|
24
18
|
// src/instruction-file.ts
|
|
25
19
|
import { accessSync, constants, existsSync, readFileSync, statSync, writeFileSync, mkdirSync, rmSync } from "fs";
|
|
@@ -517,89 +511,6 @@ var fxIgnoresInstructionsFile = (path, fxDir) => {
|
|
|
517
511
|
}
|
|
518
512
|
};
|
|
519
513
|
|
|
520
|
-
// src/setup/config-write.ts
|
|
521
|
-
var AgentConfigWriteError = class extends Error {
|
|
522
|
-
constructor(error) {
|
|
523
|
-
super(error instanceof Error ? error.message : String(error), { cause: error });
|
|
524
|
-
this.name = "AgentConfigWriteError";
|
|
525
|
-
}
|
|
526
|
-
};
|
|
527
|
-
var writeSetupConfigFile = (path, content, mode = 384) => {
|
|
528
|
-
try {
|
|
529
|
-
writeFileAtomic(path, content, mode);
|
|
530
|
-
} catch (error) {
|
|
531
|
-
throw new AgentConfigWriteError(error);
|
|
532
|
-
}
|
|
533
|
-
};
|
|
534
|
-
var writeSetupConfigJson = (path, value, mode) => writeSetupConfigFile(path, `${JSON.stringify(value, null, 2)}
|
|
535
|
-
`, mode);
|
|
536
|
-
|
|
537
|
-
// src/setup/agent-failure.ts
|
|
538
|
-
var AgentConfigError = class extends Error {
|
|
539
|
-
kind;
|
|
540
|
-
filePath;
|
|
541
|
-
constructor(kind, filePath, message) {
|
|
542
|
-
super(message);
|
|
543
|
-
this.name = "AgentConfigError";
|
|
544
|
-
this.kind = kind;
|
|
545
|
-
this.filePath = filePath;
|
|
546
|
-
}
|
|
547
|
-
};
|
|
548
|
-
var configFailureKind = (readFailure) => readFailure === "unparseable" ? "config-unparseable" : "config-unreadable";
|
|
549
|
-
var AGENT_FAILURE_DETAILS = {
|
|
550
|
-
"not-wired": "reported success but its config is not there.",
|
|
551
|
-
"app-account-mismatch": "Pushary for Mac set it up with an account that does not match this setup, so it was left as it is."
|
|
552
|
-
};
|
|
553
|
-
var DESCRIBED_FAILURE_REMEDIES = {
|
|
554
|
-
"not-wired": "retry-agent",
|
|
555
|
-
"app-account-mismatch": "match-mac-account"
|
|
556
|
-
};
|
|
557
|
-
var describedAgentFailure = (agent, kind) => ({
|
|
558
|
-
agent,
|
|
559
|
-
kind,
|
|
560
|
-
detail: AGENT_FAILURE_DETAILS[kind],
|
|
561
|
-
remedy: DESCRIBED_FAILURE_REMEDIES[kind],
|
|
562
|
-
stage: kind === "not-wired" ? "hook-validation" : "account-check"
|
|
563
|
-
});
|
|
564
|
-
var NPM_PERMISSION_REMEDIES = {
|
|
565
|
-
"global-prefix": "fix-npm-prefix",
|
|
566
|
-
"file-in-use": "close-node-programs"
|
|
567
|
-
};
|
|
568
|
-
var remedyForError = (error) => {
|
|
569
|
-
if (error instanceof NpmMissingError) return "install-node";
|
|
570
|
-
if (error instanceof NpmPermissionError) return NPM_PERMISSION_REMEDIES[error.kind];
|
|
571
|
-
return "retry-agent";
|
|
572
|
-
};
|
|
573
|
-
var setupFailureDiagnostic = (error) => {
|
|
574
|
-
if (error instanceof AgentConfigError) return { stage: "config-read" };
|
|
575
|
-
if (error instanceof AgentConfigWriteError) return { stage: "config-write", diagnosticCode: "config-write-failed" };
|
|
576
|
-
if (error instanceof NpmMissingError) return { stage: "runtime-install", diagnosticCode: "npm-missing" };
|
|
577
|
-
if (error instanceof NpmPermissionError) {
|
|
578
|
-
return { stage: "runtime-install", diagnosticCode: error.kind === "global-prefix" ? "npm-global-prefix-denied" : "npm-file-in-use" };
|
|
579
|
-
}
|
|
580
|
-
if (error instanceof NpmInstallError) return { stage: "runtime-install", diagnosticCode: "npm-install-failed" };
|
|
581
|
-
return { stage: "unknown" };
|
|
582
|
-
};
|
|
583
|
-
var agentFailureFromError = (agent, error, describeError) => ({
|
|
584
|
-
agent,
|
|
585
|
-
kind: error instanceof AgentConfigError ? error.kind : "installer-error",
|
|
586
|
-
detail: describeError(error),
|
|
587
|
-
remedy: remedyForError(error),
|
|
588
|
-
...setupFailureDiagnostic(error)
|
|
589
|
-
});
|
|
590
|
-
var retryAgentCommand = (agent) => `${NPX_LATEST_COMMAND} setup --agents ${agent}`;
|
|
591
|
-
var takeOverHooksCommand = (agent) => `${retryAgentCommand(agent)} --take-over-hooks`;
|
|
592
|
-
var matchMacAccountStep = (agent, setupAccount) => `Sign Pushary for Mac into ${setupAccount ?? "this setup's account"}, or run ${takeOverHooksCommand(agent)}`;
|
|
593
|
-
var UNCHECKED_ACCOUNT = "an account that could not be checked";
|
|
594
|
-
var describeMacAccountMismatch = (mismatch) => [
|
|
595
|
-
`${mismatch.agentName}: Pushary for Mac uses ${mismatch.macAccount ?? UNCHECKED_ACCOUNT}. This setup uses ${mismatch.setupAccount ?? UNCHECKED_ACCOUNT}.`,
|
|
596
|
-
matchMacAccountStep(mismatch.agent, mismatch.setupAccount)
|
|
597
|
-
];
|
|
598
|
-
var REMAINING_AGENTS_CONTINUE = "Other agents will continue. Re-run setup to retry.";
|
|
599
|
-
var afterAgentFailureNote = (agentsStillToSetUp) => agentsStillToSetUp > 0 ? REMAINING_AGENTS_CONTINUE : null;
|
|
600
|
-
var failedAgentsContext = (configuredAgentNames) => configuredAgentNames.length > 0 ? `(configured: ${configuredAgentNames.join(", ")})` : null;
|
|
601
|
-
var agentFailureWire = (failures) => readSetupAgentFailures(failures);
|
|
602
|
-
|
|
603
514
|
// src/fx-lifecycle.ts
|
|
604
515
|
import { existsSync as existsSync3 } from "fs";
|
|
605
516
|
import { join } from "path";
|
|
@@ -741,18 +652,6 @@ export {
|
|
|
741
652
|
withFxPusharyServer,
|
|
742
653
|
FX_QUESTION_TOOL,
|
|
743
654
|
fxIgnoresInstructionsFile,
|
|
744
|
-
writeSetupConfigFile,
|
|
745
|
-
writeSetupConfigJson,
|
|
746
|
-
AgentConfigError,
|
|
747
|
-
configFailureKind,
|
|
748
|
-
describedAgentFailure,
|
|
749
|
-
agentFailureFromError,
|
|
750
|
-
retryAgentCommand,
|
|
751
|
-
matchMacAccountStep,
|
|
752
|
-
describeMacAccountMismatch,
|
|
753
|
-
afterAgentFailureNote,
|
|
754
|
-
failedAgentsContext,
|
|
755
|
-
agentFailureWire,
|
|
756
655
|
readFxProfileForSetup,
|
|
757
656
|
writeFxProfile,
|
|
758
657
|
macAppFxBridge,
|