@arjunkhera/atlas 0.3.3 → 0.3.4
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/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/work/mcp.mjs +9 -1
package/package.json
CHANGED
package/work/mcp.mjs
CHANGED
|
@@ -140,8 +140,16 @@ export function readConnection(env, { allowLoopbackHttp = false, now = Date.now(
|
|
|
140
140
|
// so the server refuses to start when one is set. The plugin's .mcp.json sets
|
|
141
141
|
// NODE_OPTIONS to empty.
|
|
142
142
|
export const HOSTILE_NODE_VARIABLES = Object.freeze(['NODE_TLS_REJECT_UNAUTHORIZED', 'NODE_EXTRA_CA_CERTS', 'NODE_USE_ENV_PROXY', 'NODE_PATH']);
|
|
143
|
+
// A Claude cloud session reaches the network only through Claude's own proxy,
|
|
144
|
+
// which opens HTTPS. The cloud sets two of these variables to fixed values for
|
|
145
|
+
// that proxy. The owner accepted that proxy on 7 October 2026 ("Narrow
|
|
146
|
+
// exception"): the server accepts exactly these values, and only when the
|
|
147
|
+
// cloud's own marker is set. Any other value stays hostile, in the cloud too.
|
|
148
|
+
export const CLOUD_NODE_VARIABLES = Object.freeze({ NODE_EXTRA_CA_CERTS: '/root/.ccr/ca-bundle.crt', NODE_PATH: '/usr/local/lib/node_modules_global' });
|
|
149
|
+
export const inClaudeCloud = (env) => env.CLAUDE_CODE_REMOTE === 'true';
|
|
143
150
|
export function hostileVariables(env) {
|
|
144
|
-
const
|
|
151
|
+
const cloud = inClaudeCloud(env);
|
|
152
|
+
const found = HOSTILE_NODE_VARIABLES.filter((name) => env[name] !== undefined && env[name] !== '' && !(cloud && CLOUD_NODE_VARIABLES[name] === env[name]));
|
|
145
153
|
if (env.NODE_OPTIONS !== undefined && env.NODE_OPTIONS !== '') found.push('NODE_OPTIONS');
|
|
146
154
|
return found;
|
|
147
155
|
}
|