@clipboard-health/clearance 1.6.4 → 1.6.6
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/README.md +4 -2
- package/bin/ensure.js +1 -0
- package/bin/run.js +1 -0
- package/bin/safehouseClaudeProxy.js +1 -0
- package/package.json +1 -1
- package/src/safehouseClaudeProxyCli.js +3 -0
- package/src/safehouseClaudeProxyCli.js.map +1 -1
- package/src/safehouseCmux.d.ts +1 -0
- package/src/safehouseCmux.js +16 -1
- package/src/safehouseCmux.js.map +1 -1
package/README.md
CHANGED
|
@@ -158,8 +158,10 @@ alias claude-proxy="$SAFEHOUSE/safehouse-claude-proxy"
|
|
|
158
158
|
`safehouse-claude-proxy` runs Claude through Safehouse with
|
|
159
159
|
`--permission-mode auto`. When launched from a cmux terminal, it preserves
|
|
160
160
|
cmux's Claude shim by forwarding the cmux session environment and granting
|
|
161
|
-
read-only access to the cmux app/socket state
|
|
162
|
-
|
|
161
|
+
read-only access to the cmux app/socket state and generated Codex hooks. The
|
|
162
|
+
integration also grants cmux's existing Sentry cache write access so diagnostics
|
|
163
|
+
cannot corrupt hook JSON output. It points the shim at the real Claude binary so
|
|
164
|
+
the shim does not recurse through itself.
|
|
163
165
|
|
|
164
166
|
The cmux environment pass-through is an explicit reviewed allowlist. If a cmux
|
|
165
167
|
update adds new `CMUX_*` variables to its Claude wrapper contract,
|
package/bin/ensure.js
CHANGED
package/bin/run.js
CHANGED
package/package.json
CHANGED
|
@@ -20,6 +20,9 @@ try {
|
|
|
20
20
|
}
|
|
21
21
|
const safehouseArgs = cmuxIntegration.isActive
|
|
22
22
|
? [
|
|
23
|
+
...(cmuxIntegration.addDirs.length === 0
|
|
24
|
+
? []
|
|
25
|
+
: [`--add-dirs=${cmuxIntegration.addDirs.join(":")}`]),
|
|
23
26
|
`--add-dirs-ro=${cmuxIntegration.addDirsReadOnly.join(":")}`,
|
|
24
27
|
`--env-pass=${cmuxIntegration.envPass.join(",")}`,
|
|
25
28
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safehouseClaudeProxyCli.js","sourceRoot":"","sources":["../../../../packages/clearance/src/safehouseClaudeProxyCli.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;AAE5E,IAAI,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEjC,MAAM,eAAe,GAAG,+BAA+B,EAAE,CAAC;IAC1D,KAAK,MAAM,WAAW,IAAI,eAAe,CAAC,QAAQ;QAChD,CAAC,CAAC,oCAAoC,CAAC;YACnC,WAAW,EAAE,wBAAwB;YACrC,kBAAkB,EAAE,eAAe,CAAC,kBAAkB;SACvD,CAAC;QACJ,CAAC,CAAC,EAAE,EAAE,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ;QAC5C,CAAC,CAAC;YACE,iBAAiB,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5D,cAAc,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SAClD;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ;QAC7C,CAAC,CAAC,GAAG,eAAe,CAAC,oBAAoB,IAAI;QAC7C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,SAAS,CACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,qBAAqB,CAAC,EAC1D;QACE,GAAG,aAAa;QAChB,QAAQ;QACR,IAAI;QACJ,GAAG,cAAc,yCAAyC;QAC1D,IAAI;QACJ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACzB,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,QAAQ,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC;IACzE,CAAC;AACH,CAAC;QAAS,CAAC;IACT,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"safehouseClaudeProxyCli.js","sourceRoot":"","sources":["../../../../packages/clearance/src/safehouseClaudeProxyCli.ts"],"names":[],"mappings":"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"}
|
package/src/safehouseCmux.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface ResolveSafehouseCmuxIntegrationInput {
|
|
|
6
6
|
readFile?: (path: string) => string;
|
|
7
7
|
}
|
|
8
8
|
export interface SafehouseCmuxIntegration {
|
|
9
|
+
addDirs: readonly string[];
|
|
9
10
|
addDirsReadOnly: readonly string[];
|
|
10
11
|
claudeCommandPrelude: string;
|
|
11
12
|
envPass: readonly string[];
|
package/src/safehouseCmux.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
export const SAFEHOUSE_CMUX_ENV_PASS = [
|
|
4
4
|
"CMUX_BUNDLED_CLI_PATH",
|
|
@@ -47,6 +47,7 @@ export function resolveSafehouseCmuxIntegration(input = {}) {
|
|
|
47
47
|
const env = input.env ?? process.env;
|
|
48
48
|
const readFile = input.readFile ?? defaultReadFile;
|
|
49
49
|
return {
|
|
50
|
+
addDirs: resolveCmuxWritableDirs({ env }),
|
|
50
51
|
addDirsReadOnly: resolveCmuxReadOnlyDirs({ env }),
|
|
51
52
|
claudeCommandPrelude: SAFEHOUSE_CMUX_CLAUDE_COMMAND_PRELUDE,
|
|
52
53
|
envPass: SAFEHOUSE_CMUX_ENV_PASS,
|
|
@@ -54,6 +55,10 @@ export function resolveSafehouseCmuxIntegration(input = {}) {
|
|
|
54
55
|
unreviewedEnvNames: resolveUnreviewedCmuxEnvNames({ env, readFile }),
|
|
55
56
|
};
|
|
56
57
|
}
|
|
58
|
+
function resolveCmuxWritableDirs(input) {
|
|
59
|
+
const sentryCacheDir = homeSentryCacheDir({ env: input.env });
|
|
60
|
+
return sentryCacheDir === undefined || !existsSync(sentryCacheDir) ? [] : [sentryCacheDir];
|
|
61
|
+
}
|
|
57
62
|
export function safehouseCmuxIntegrationWarningLines(input) {
|
|
58
63
|
if (input.unreviewedEnvNames.length === 0) {
|
|
59
64
|
return [];
|
|
@@ -70,15 +75,25 @@ function isSafehouseCmuxIntegrationActive(input) {
|
|
|
70
75
|
function resolveCmuxReadOnlyDirs(input) {
|
|
71
76
|
const xdgStateHome = normalizeAbsolutePath({ value: input.env["XDG_STATE_HOME"] });
|
|
72
77
|
const stateDir = xdgStateHome === undefined ? homeStateDir({ env: input.env }) : path.join(xdgStateHome, "cmux");
|
|
78
|
+
const hooksDir = homeHooksDir({ env: input.env });
|
|
73
79
|
const socketPath = normalizeAbsolutePath({ value: input.env["CMUX_SOCKET_PATH"] });
|
|
74
80
|
return [
|
|
75
81
|
...new Set([
|
|
76
82
|
"/Applications/cmux.app",
|
|
77
83
|
...(stateDir === undefined ? [] : [stateDir]),
|
|
84
|
+
...(hooksDir === undefined || !existsSync(hooksDir) ? [] : [hooksDir]),
|
|
78
85
|
...(socketPath === undefined ? [] : [path.dirname(socketPath)]),
|
|
79
86
|
]),
|
|
80
87
|
];
|
|
81
88
|
}
|
|
89
|
+
function homeHooksDir(input) {
|
|
90
|
+
const home = normalizeAbsolutePath({ value: input.env["HOME"] });
|
|
91
|
+
return home === undefined ? undefined : path.join(home, ".cmux", "hooks");
|
|
92
|
+
}
|
|
93
|
+
function homeSentryCacheDir(input) {
|
|
94
|
+
const home = normalizeAbsolutePath({ value: input.env["HOME"] });
|
|
95
|
+
return home === undefined ? undefined : path.join(home, "Library", "Caches", "io.sentry");
|
|
96
|
+
}
|
|
82
97
|
function homeStateDir(input) {
|
|
83
98
|
const home = normalizeAbsolutePath({ value: input.env["HOME"] });
|
|
84
99
|
return home === undefined ? undefined : path.join(home, ".local", "state", "cmux");
|
package/src/safehouseCmux.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safehouseCmux.js","sourceRoot":"","sources":["../../../../packages/clearance/src/safehouseCmux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"safehouseCmux.js","sourceRoot":"","sources":["../../../../packages/clearance/src/safehouseCmux.ts"],"names":[],"mappings":"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"}
|