slaunt 0.1.17 → 0.1.18
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 +17 -122
- package/bin/slaunt-hooks.js +96 -0
- package/package.json +9 -59
- package/release/SlauntKillBar.zip +0 -0
- package/release/manifest.json +7 -0
- package/scripts/killbar-portability-check.js +67 -0
- package/scripts/package-killbar-macos.sh +38 -0
- package/src/approval-manager.js +53 -0
- package/src/cli-auth.js +230 -0
- package/src/compact-wordmark.js +13 -0
- package/src/desktop/broker-daemon.js +18 -0
- package/src/desktop/broker-grants.js +37 -0
- package/src/desktop/broker-hook-command.js +23 -0
- package/src/desktop/broker-keychain.js +29 -0
- package/src/desktop/broker-launch-agent.js +34 -0
- package/src/desktop/broker-service.js +40 -0
- package/src/desktop/chat-capture-command.js +7 -0
- package/src/desktop/chat-hook-capture.js +445 -0
- package/src/desktop/claude-lifecycle.js +143 -0
- package/src/desktop/client-identity.js +19 -0
- package/src/desktop/native-claude-broker.js +34 -0
- package/src/desktop/native-claude-connection.js +42 -0
- package/src/desktop/tool-guard-command.js +13 -0
- package/src/desktop/tool-guard.js +225 -0
- package/src/discovery/catalog.js +734 -0
- package/src/full-screen.js +88 -0
- package/src/helper-release.js +27 -0
- package/src/hidden-oauth.js +70 -0
- package/src/independent-grants.js +38 -0
- package/src/install-flow.js +71 -0
- package/src/killbar-background-install.js +47 -0
- package/src/killbar-enrollment.js +74 -0
- package/src/killbar-launch-agent.js +10 -0
- package/src/mcp-identity.js +6 -0
- package/src/native-config.js +150 -0
- package/src/native-oauth.js +33 -0
- package/src/oauth-cohort.js +43 -0
- package/src/pty-wrapper.py +57 -0
- package/src/read-json.js +8 -0
- package/src/setup/client-installer.js +93 -0
- package/src/setup/codex-guard-supervisor.js +34 -0
- package/src/setup/hook-installer.js +496 -0
- package/src/setup/managed-policy.js +26 -0
- package/src/setup/mcp-config-installer.js +204 -0
- package/src/setup-flow.js +66 -0
- package/src/tui.js +205 -0
- package/test/approval-manager.test.js +27 -0
- package/test/broker-grants.test.js +14 -0
- package/test/broker-keychain.test.js +14 -0
- package/test/broker-launch-agent.test.js +15 -0
- package/test/broker-service.test.js +42 -0
- package/test/cli-auth-recovery.test.js +15 -0
- package/test/codex-guard-supervisor.test.js +25 -0
- package/test/full-screen.test.js +49 -0
- package/test/helper-release.test.js +22 -0
- package/test/hidden-oauth.test.js +44 -0
- package/test/hook-installer.test.js +232 -0
- package/test/independent-grants.test.js +16 -0
- package/test/install-flow.test.js +24 -0
- package/test/killbar-background-install.test.js +15 -0
- package/test/killbar-enrollment.test.js +115 -0
- package/test/killbar-launch-agent.test.js +12 -0
- package/test/killbar-portability.test.js +17 -0
- package/test/managed-policy.test.js +18 -0
- package/test/native-claude-broker.test.js +19 -0
- package/test/native-claude-connection.test.js +17 -0
- package/test/native-claude-hooks.test.js +9 -0
- package/test/native-config.test.js +3 -0
- package/test/native-integration.cjs +29 -0
- package/test/native-oauth.test.js +23 -0
- package/test/oauth-cohort.test.js +26 -0
- package/test/tui.test.js +100 -0
- package/LICENSE +0 -201
- package/dist/audit/risk-engine.d.ts +0 -4
- package/dist/audit/risk-engine.d.ts.map +0 -1
- package/dist/audit/risk-engine.js +0 -174
- package/dist/audit/risk-engine.js.map +0 -1
- package/dist/audit/run.d.ts +0 -18
- package/dist/audit/run.d.ts.map +0 -1
- package/dist/audit/run.js +0 -68
- package/dist/audit/run.js.map +0 -1
- package/dist/classification/builtin-catalog.d.ts +0 -3
- package/dist/classification/builtin-catalog.d.ts.map +0 -1
- package/dist/classification/builtin-catalog.js +0 -283
- package/dist/classification/builtin-catalog.js.map +0 -1
- package/dist/classification/catalog.d.ts +0 -10
- package/dist/classification/catalog.d.ts.map +0 -1
- package/dist/classification/catalog.js +0 -194
- package/dist/classification/catalog.js.map +0 -1
- package/dist/classification/classifier.d.ts +0 -3
- package/dist/classification/classifier.d.ts.map +0 -1
- package/dist/classification/classifier.js +0 -64
- package/dist/classification/classifier.js.map +0 -1
- package/dist/classification/public-catalog-config.d.ts +0 -3
- package/dist/classification/public-catalog-config.d.ts.map +0 -1
- package/dist/classification/public-catalog-config.js +0 -5
- package/dist/classification/public-catalog-config.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -239
- package/dist/cli.js.map +0 -1
- package/dist/config/discover.d.ts +0 -8
- package/dist/config/discover.d.ts.map +0 -1
- package/dist/config/discover.js +0 -163
- package/dist/config/discover.js.map +0 -1
- package/dist/config/install.d.ts +0 -10
- package/dist/config/install.d.ts.map +0 -1
- package/dist/config/install.js +0 -143
- package/dist/config/install.js.map +0 -1
- package/dist/config/paths.d.ts +0 -24
- package/dist/config/paths.d.ts.map +0 -1
- package/dist/config/paths.js +0 -90
- package/dist/config/paths.js.map +0 -1
- package/dist/demo.d.ts +0 -4
- package/dist/demo.d.ts.map +0 -1
- package/dist/demo.js +0 -99
- package/dist/demo.js.map +0 -1
- package/dist/explanation/local.d.ts +0 -24
- package/dist/explanation/local.d.ts.map +0 -1
- package/dist/explanation/local.js +0 -696
- package/dist/explanation/local.js.map +0 -1
- package/dist/mcp/introspect.d.ts +0 -18
- package/dist/mcp/introspect.d.ts.map +0 -1
- package/dist/mcp/introspect.js +0 -236
- package/dist/mcp/introspect.js.map +0 -1
- package/dist/mcp/oauth.d.ts +0 -14
- package/dist/mcp/oauth.d.ts.map +0 -1
- package/dist/mcp/oauth.js +0 -257
- package/dist/mcp/oauth.js.map +0 -1
- package/dist/presentation/plain-language.d.ts +0 -12
- package/dist/presentation/plain-language.d.ts.map +0 -1
- package/dist/presentation/plain-language.js +0 -120
- package/dist/presentation/plain-language.js.map +0 -1
- package/dist/privacy/redaction.d.ts +0 -2
- package/dist/privacy/redaction.d.ts.map +0 -1
- package/dist/privacy/redaction.js +0 -50
- package/dist/privacy/redaction.js.map +0 -1
- package/dist/report/html.d.ts +0 -4
- package/dist/report/html.d.ts.map +0 -1
- package/dist/report/html.js +0 -101
- package/dist/report/html.js.map +0 -1
- package/dist/tui/analysis-path.d.ts +0 -17
- package/dist/tui/analysis-path.d.ts.map +0 -1
- package/dist/tui/analysis-path.js +0 -112
- package/dist/tui/analysis-path.js.map +0 -1
- package/dist/tui/render.d.ts +0 -4
- package/dist/tui/render.d.ts.map +0 -1
- package/dist/tui/render.js +0 -262
- package/dist/tui/render.js.map +0 -1
- package/dist/tui/splash.d.ts +0 -15
- package/dist/tui/splash.d.ts.map +0 -1
- package/dist/tui/splash.js +0 -130
- package/dist/tui/splash.js.map +0 -1
- package/dist/tui/stream.d.ts +0 -6
- package/dist/tui/stream.d.ts.map +0 -1
- package/dist/tui/stream.js +0 -56
- package/dist/tui/stream.js.map +0 -1
- package/dist/types.d.ts +0 -132
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -8
- package/dist/version.js.map +0 -1
- package/models/APACHE-2.0.txt +0 -202
- package/models/MODEL.json +0 -29
- package/models/NOTICE.md +0 -23
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/explanation/local.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/introspect.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ServerConfig, ServerProbe } from '../types.js';
|
|
2
|
-
export declare function resolvedEnvironment(configured: Record<string, string>, inheritParentEnvironment?: boolean): Record<string, string>;
|
|
3
|
-
export declare function expandEnvironment(value: string, allowSensitiveEnvironment?: boolean): string;
|
|
4
|
-
export interface ProbeOptions {
|
|
5
|
-
allowServerStarts: boolean;
|
|
6
|
-
inheritParentEnvironment?: boolean;
|
|
7
|
-
allowSensitiveEnvironment?: boolean;
|
|
8
|
-
authorizeHttpServers?: boolean;
|
|
9
|
-
authorizationTimeoutMs?: number;
|
|
10
|
-
onAuthorizationRequired?: (server: ServerConfig) => void;
|
|
11
|
-
openAuthorization?: (url: URL) => Promise<void>;
|
|
12
|
-
timeoutMs?: number;
|
|
13
|
-
concurrency?: number;
|
|
14
|
-
}
|
|
15
|
-
export declare function probeServers(servers: ServerConfig[], options: ProbeOptions): Promise<ServerProbe[]>;
|
|
16
|
-
export declare function isDynamicLauncher(server: ServerConfig): boolean;
|
|
17
|
-
export declare function isRecursiveSlauntLauncher(server: ServerConfig): boolean;
|
|
18
|
-
//# sourceMappingURL=introspect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../src/mcp/introspect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAgB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI3E,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,wBAAwB,UAAQ,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAID,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,yBAAyB,UAAQ,GAAG,MAAM,CAO1F;AA+ND,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACzD,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBzG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAG/D;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAYvE"}
|
package/dist/mcp/introspect.js
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import { basename } from 'node:path';
|
|
2
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
3
|
-
import { UnauthorizedError } from '@modelcontextprotocol/sdk/client/auth.js';
|
|
4
|
-
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
5
|
-
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
6
|
-
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
7
|
-
import { PACKAGE_VERSION } from '../version.js';
|
|
8
|
-
import { createOAuthSession } from './oauth.js';
|
|
9
|
-
export function resolvedEnvironment(configured, inheritParentEnvironment = false) {
|
|
10
|
-
if (!inheritParentEnvironment)
|
|
11
|
-
return { ...configured };
|
|
12
|
-
const inherited = Object.fromEntries(Object.entries(process.env).filter((entry) => typeof entry[1] === 'string'));
|
|
13
|
-
return { ...inherited, ...configured };
|
|
14
|
-
}
|
|
15
|
-
const SENSITIVE_ENV_NAME = /(?:TOKEN|SECRET|KEY|PASSWORD|PASSWD|PRIVATE|CREDENTIAL|COOKIE|SESSION|AUTH|JWT|DATABASE_URL|CONNECTION_STRING)/i;
|
|
16
|
-
export function expandEnvironment(value, allowSensitiveEnvironment = false) {
|
|
17
|
-
return value.replace(/\$\{([A-Z_][A-Z0-9_]*)(?::-([^}]*))?\}/gi, (_match, name, fallback) => {
|
|
18
|
-
if (SENSITIVE_ENV_NAME.test(name) && !allowSensitiveEnvironment) {
|
|
19
|
-
throw new Error(`Sensitive environment expansion for ${name} is disabled; pass --allow-sensitive-env only for a trusted local probe`);
|
|
20
|
-
}
|
|
21
|
-
return process.env[name] ?? fallback ?? '';
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
function expandConfiguredEnvironment(configured, allowSensitiveEnvironment) {
|
|
25
|
-
return Object.fromEntries(Object.entries(configured).map(([name, value]) => [name, expandEnvironment(value, allowSensitiveEnvironment)]));
|
|
26
|
-
}
|
|
27
|
-
function redactedError(error, server) {
|
|
28
|
-
let message = error instanceof Error ? error.message : String(error);
|
|
29
|
-
for (const value of [...Object.values(server.env), ...Object.values(server.headers)]) {
|
|
30
|
-
if (value.length >= 4)
|
|
31
|
-
message = message.replaceAll(value, '[redacted]');
|
|
32
|
-
}
|
|
33
|
-
message = message
|
|
34
|
-
.replace(/(bearer\s+)[a-z0-9._~+/=-]+/gi, '$1[redacted]')
|
|
35
|
-
.replace(/([?&](?:token|key|secret|password)=)[^&\s]+/gi, '$1[redacted]');
|
|
36
|
-
return message.slice(0, 300);
|
|
37
|
-
}
|
|
38
|
-
function isAuthenticationError(error) {
|
|
39
|
-
if (error instanceof UnauthorizedError)
|
|
40
|
-
return true;
|
|
41
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
42
|
-
return /\b401\b|unauthori[sz]ed|authentication|authorization required|bearer|oauth/iu.test(message);
|
|
43
|
-
}
|
|
44
|
-
function asInputSchema(value) {
|
|
45
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
46
|
-
? value
|
|
47
|
-
: undefined;
|
|
48
|
-
}
|
|
49
|
-
async function listAllTools(client, server) {
|
|
50
|
-
const tools = [];
|
|
51
|
-
let cursor;
|
|
52
|
-
do {
|
|
53
|
-
const response = await client.listTools(cursor ? { cursor } : undefined);
|
|
54
|
-
for (const tool of response.tools) {
|
|
55
|
-
const inputSchema = asInputSchema(tool.inputSchema);
|
|
56
|
-
tools.push({
|
|
57
|
-
serverId: server.id,
|
|
58
|
-
serverName: server.name,
|
|
59
|
-
client: server.client,
|
|
60
|
-
clientLabel: server.clientLabel,
|
|
61
|
-
name: tool.name,
|
|
62
|
-
description: tool.description || '',
|
|
63
|
-
...(inputSchema ? { inputSchema } : {}),
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
cursor = response.nextCursor;
|
|
67
|
-
} while (cursor);
|
|
68
|
-
return tools;
|
|
69
|
-
}
|
|
70
|
-
async function connectAndList(server, transport) {
|
|
71
|
-
const client = new Client({ name: 'slaunt-audit', version: PACKAGE_VERSION }, { capabilities: {} });
|
|
72
|
-
try {
|
|
73
|
-
// The SDK's transport classes declare `sessionId?: string` while its shared
|
|
74
|
-
// Transport interface is emitted without exact-optional compatibility.
|
|
75
|
-
await client.connect(transport);
|
|
76
|
-
return await listAllTools(client, server);
|
|
77
|
-
}
|
|
78
|
-
finally {
|
|
79
|
-
await client.close().catch(() => undefined);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
async function withTimeout(operation, milliseconds, onTimeout) {
|
|
83
|
-
let timer;
|
|
84
|
-
const timeout = new Promise((_resolve, reject) => {
|
|
85
|
-
timer = setTimeout(() => {
|
|
86
|
-
void onTimeout().finally(() => reject(new Error(`MCP probe timed out after ${milliseconds} ms`)));
|
|
87
|
-
}, milliseconds);
|
|
88
|
-
});
|
|
89
|
-
try {
|
|
90
|
-
return await Promise.race([operation, timeout]);
|
|
91
|
-
}
|
|
92
|
-
finally {
|
|
93
|
-
if (timer)
|
|
94
|
-
clearTimeout(timer);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
async function probeServer(server, allowServerStarts, timeoutMs, inheritParentEnvironment, allowSensitiveEnvironment, authorizeHttpServers, authorizationTimeoutMs, onAuthorizationRequired, openAuthorization) {
|
|
98
|
-
if (server.transport === 'stdio') {
|
|
99
|
-
if (isRecursiveSlauntLauncher(server)) {
|
|
100
|
-
return {
|
|
101
|
-
serverId: server.id,
|
|
102
|
-
status: 'skipped',
|
|
103
|
-
tools: [],
|
|
104
|
-
message: 'Skipped a Slaunt CLI launcher to prevent a recursive audit',
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
if (!allowServerStarts) {
|
|
108
|
-
return { serverId: server.id, status: 'skipped', tools: [], message: 'Local server start was not approved' };
|
|
109
|
-
}
|
|
110
|
-
if (!server.command)
|
|
111
|
-
return { serverId: server.id, status: 'failed', tools: [], message: 'Missing stdio command' };
|
|
112
|
-
try {
|
|
113
|
-
const transport = new StdioClientTransport({
|
|
114
|
-
command: expandEnvironment(server.command, allowSensitiveEnvironment),
|
|
115
|
-
args: server.args.map((argument) => expandEnvironment(argument, allowSensitiveEnvironment)),
|
|
116
|
-
env: resolvedEnvironment(expandConfiguredEnvironment(server.env, allowSensitiveEnvironment), inheritParentEnvironment),
|
|
117
|
-
stderr: 'pipe',
|
|
118
|
-
});
|
|
119
|
-
const tools = await withTimeout(connectAndList(server, transport), timeoutMs, () => transport.close());
|
|
120
|
-
return { serverId: server.id, status: 'ok', tools };
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
return { serverId: server.id, status: 'failed', tools: [], message: redactedError(error, server) };
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if ((server.transport === 'http' || server.transport === 'sse') && server.url) {
|
|
127
|
-
let oauthSession;
|
|
128
|
-
try {
|
|
129
|
-
// HTTP/SSE probes may reach an untrusted remote server. Never expand
|
|
130
|
-
// token/key/secret variables into a URL or header, even when a caller
|
|
131
|
-
// explicitly allows sensitive values for a local stdio launch.
|
|
132
|
-
const endpoint = new URL(expandEnvironment(server.url, false));
|
|
133
|
-
const headers = Object.fromEntries(Object.entries(server.headers).map(([name, value]) => [name, expandEnvironment(value, false)]));
|
|
134
|
-
const requestInit = { headers, redirect: 'error' };
|
|
135
|
-
if (authorizeHttpServers) {
|
|
136
|
-
oauthSession = await createOAuthSession(server, {
|
|
137
|
-
...(openAuthorization ? { openBrowser: openAuthorization } : {}),
|
|
138
|
-
onAuthorizationRequired: () => onAuthorizationRequired?.(server),
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
const makeTransport = (kind, provider) => {
|
|
142
|
-
if (kind === 'sse') {
|
|
143
|
-
return new SSEClientTransport(endpoint, {
|
|
144
|
-
requestInit,
|
|
145
|
-
...(provider ? { authProvider: provider } : {}),
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
return new StreamableHTTPClientTransport(endpoint, {
|
|
149
|
-
requestInit,
|
|
150
|
-
...(provider ? { authProvider: provider } : {}),
|
|
151
|
-
});
|
|
152
|
-
};
|
|
153
|
-
const connectRemote = async (transport, connectTimeoutMs = timeoutMs) => withTimeout(connectAndList(server, transport), connectTimeoutMs, () => transport.close());
|
|
154
|
-
const connectWithAuth = async (kind) => {
|
|
155
|
-
const firstTransport = makeTransport(kind, oauthSession?.provider);
|
|
156
|
-
try {
|
|
157
|
-
return await connectRemote(firstTransport, oauthSession ? authorizationTimeoutMs : timeoutMs);
|
|
158
|
-
}
|
|
159
|
-
catch (firstError) {
|
|
160
|
-
if (!oauthSession || !oauthSession.wasAuthorizationStarted() || !isAuthenticationError(firstError)) {
|
|
161
|
-
throw firstError;
|
|
162
|
-
}
|
|
163
|
-
const authorizationCode = await withTimeout(oauthSession.waitForCallback(), authorizationTimeoutMs, () => oauthSession.close());
|
|
164
|
-
await withTimeout(firstTransport.finishAuth(authorizationCode), timeoutMs, () => firstTransport.close());
|
|
165
|
-
await firstTransport.close();
|
|
166
|
-
const authenticatedTransport = makeTransport(kind, oauthSession.provider);
|
|
167
|
-
return connectRemote(authenticatedTransport);
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
try {
|
|
171
|
-
const tools = await connectWithAuth(server.transport === 'sse' ? 'sse' : 'http');
|
|
172
|
-
return { serverId: server.id, status: 'ok', tools };
|
|
173
|
-
}
|
|
174
|
-
catch (firstError) {
|
|
175
|
-
const message = redactedError(firstError, server);
|
|
176
|
-
if (server.transport !== 'http' || !/4\d\d|sse|method|content[- ]type/i.test(message))
|
|
177
|
-
throw firstError;
|
|
178
|
-
const tools = await connectWithAuth('sse');
|
|
179
|
-
return { serverId: server.id, status: 'ok', tools };
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
return {
|
|
184
|
-
serverId: server.id,
|
|
185
|
-
status: 'failed',
|
|
186
|
-
tools: [],
|
|
187
|
-
...(isAuthenticationError(error) || oauthSession?.wasAuthorizationStarted() ? { authRequired: true } : {}),
|
|
188
|
-
message: redactedError(error, server),
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
finally {
|
|
192
|
-
await oauthSession?.close();
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
return { serverId: server.id, status: 'skipped', tools: [], message: `Unsupported ${server.transport} transport` };
|
|
196
|
-
}
|
|
197
|
-
async function mapWithConcurrency(items, concurrency, mapper) {
|
|
198
|
-
const results = new Array(items.length);
|
|
199
|
-
let next = 0;
|
|
200
|
-
async function worker() {
|
|
201
|
-
while (true) {
|
|
202
|
-
const index = next++;
|
|
203
|
-
if (index >= items.length)
|
|
204
|
-
return;
|
|
205
|
-
const item = items[index];
|
|
206
|
-
if (item !== undefined)
|
|
207
|
-
results[index] = await mapper(item);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
await Promise.all(Array.from({ length: Math.min(concurrency, items.length) }, worker));
|
|
211
|
-
return results;
|
|
212
|
-
}
|
|
213
|
-
export async function probeServers(servers, options) {
|
|
214
|
-
// Browser authorization is deliberately serialized: it prevents multiple
|
|
215
|
-
// sign-in windows and avoids racing the endpoint-scoped OAuth cache when the
|
|
216
|
-
// same remote server is configured for more than one client.
|
|
217
|
-
const concurrency = options.authorizeHttpServers ? 1 : options.concurrency || 4;
|
|
218
|
-
return mapWithConcurrency(servers, concurrency, (server) => probeServer(server, options.allowServerStarts, options.timeoutMs || 8_000, options.inheritParentEnvironment === true, options.allowSensitiveEnvironment === true, options.authorizeHttpServers === true, options.authorizationTimeoutMs || 120_000, options.onAuthorizationRequired, options.openAuthorization));
|
|
219
|
-
}
|
|
220
|
-
export function isDynamicLauncher(server) {
|
|
221
|
-
const command = server.command ? basename(server.command).toLowerCase() : '';
|
|
222
|
-
return ['npx', 'uvx', 'docker', 'podman', 'bunx', 'pnpx'].includes(command);
|
|
223
|
-
}
|
|
224
|
-
export function isRecursiveSlauntLauncher(server) {
|
|
225
|
-
const command = server.command ? basename(server.command).toLowerCase() : '';
|
|
226
|
-
if (/^slaunt(?:\.cmd|\.exe)?$/.test(command))
|
|
227
|
-
return true;
|
|
228
|
-
if (['npx', 'bunx', 'pnpx'].includes(command)) {
|
|
229
|
-
return server.args.some((argument) => /^slaunt(?:@[^/\s]+)?$/i.test(argument));
|
|
230
|
-
}
|
|
231
|
-
return server.args.some((argument) => {
|
|
232
|
-
const normalized = argument.replaceAll('\\', '/');
|
|
233
|
-
return /(?:^|\/)slaunt(?:-audit)?(?:\/.*)?\/(?:dist\/)?cli\.(?:c?js|mjs)$/i.test(normalized);
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
//# sourceMappingURL=introspect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../src/mcp/introspect.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/oauth.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
|
|
2
|
-
import type { ServerConfig } from '../types.js';
|
|
3
|
-
export interface OAuthSession {
|
|
4
|
-
provider: OAuthClientProvider;
|
|
5
|
-
waitForCallback(): Promise<string>;
|
|
6
|
-
close(): Promise<void>;
|
|
7
|
-
wasAuthorizationStarted(): boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface OAuthSessionOptions {
|
|
10
|
-
openBrowser?: (url: URL) => Promise<void>;
|
|
11
|
-
onAuthorizationRequired?: () => void;
|
|
12
|
-
}
|
|
13
|
-
export declare function createOAuthSession(server: ServerConfig, options?: OAuthSessionOptions): Promise<OAuthSession>;
|
|
14
|
-
//# sourceMappingURL=oauth.d.ts.map
|
package/dist/mcp/oauth.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/mcp/oauth.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,uBAAuB,IAAI,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAuMD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC,CAsEvH"}
|
package/dist/mcp/oauth.js
DELETED
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
import { createHash, randomUUID } from 'node:crypto';
|
|
2
|
-
import { createServer } from 'node:http';
|
|
3
|
-
import { chmod, mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises';
|
|
4
|
-
import { homedir } from 'node:os';
|
|
5
|
-
import { join } from 'node:path';
|
|
6
|
-
import open from 'open';
|
|
7
|
-
import { PACKAGE_VERSION } from '../version.js';
|
|
8
|
-
const STORE_VERSION = 1;
|
|
9
|
-
const CALLBACK_PATH = '/oauth/callback';
|
|
10
|
-
function isRecord(value) {
|
|
11
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
12
|
-
}
|
|
13
|
-
function isClientInformation(value) {
|
|
14
|
-
return isRecord(value) && typeof value.client_id === 'string' && value.client_id.length > 0;
|
|
15
|
-
}
|
|
16
|
-
function isTokens(value) {
|
|
17
|
-
return isRecord(value)
|
|
18
|
-
&& typeof value.access_token === 'string'
|
|
19
|
-
&& value.access_token.length > 0
|
|
20
|
-
&& typeof value.token_type === 'string'
|
|
21
|
-
&& value.token_type.length > 0;
|
|
22
|
-
}
|
|
23
|
-
function hasRedirectUri(value, callbackUrl) {
|
|
24
|
-
const record = value;
|
|
25
|
-
const redirectUris = record.redirect_uris;
|
|
26
|
-
if (!Array.isArray(redirectUris))
|
|
27
|
-
return false;
|
|
28
|
-
return redirectUris.some((uri) => String(uri) === callbackUrl);
|
|
29
|
-
}
|
|
30
|
-
function oauthDirectory() {
|
|
31
|
-
const configured = process.env.SLAUNT_AUDIT_OAUTH_DIR;
|
|
32
|
-
if (configured)
|
|
33
|
-
return configured;
|
|
34
|
-
const configHome = process.env.XDG_CONFIG_HOME || join(process.env.HOME || homedir(), '.config');
|
|
35
|
-
return join(configHome, 'slaunt', 'oauth');
|
|
36
|
-
}
|
|
37
|
-
function storePath(endpoint) {
|
|
38
|
-
const key = createHash('sha256').update(`${endpoint.origin}${endpoint.pathname}`).digest('hex');
|
|
39
|
-
return join(oauthDirectory(), `${key}.json`);
|
|
40
|
-
}
|
|
41
|
-
async function readState(path) {
|
|
42
|
-
try {
|
|
43
|
-
const raw = JSON.parse(await readFile(path, 'utf8'));
|
|
44
|
-
if (!isRecord(raw) || raw.version !== STORE_VERSION)
|
|
45
|
-
return { version: STORE_VERSION };
|
|
46
|
-
return {
|
|
47
|
-
version: STORE_VERSION,
|
|
48
|
-
...(isClientInformation(raw.clientInformation) ? { clientInformation: raw.clientInformation } : {}),
|
|
49
|
-
...(isTokens(raw.tokens) ? { tokens: raw.tokens } : {}),
|
|
50
|
-
...(typeof raw.codeVerifier === 'string' && raw.codeVerifier.length > 0 ? { codeVerifier: raw.codeVerifier } : {}),
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
return { version: STORE_VERSION };
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
async function writeState(path, state) {
|
|
58
|
-
const directory = oauthDirectory();
|
|
59
|
-
await mkdir(directory, { recursive: true, mode: 0o700 });
|
|
60
|
-
await chmod(directory, 0o700).catch(() => undefined);
|
|
61
|
-
const temporaryPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
|
|
62
|
-
try {
|
|
63
|
-
await writeFile(temporaryPath, JSON.stringify(state), { encoding: 'utf8', mode: 0o600 });
|
|
64
|
-
await chmod(temporaryPath, 0o600).catch(() => undefined);
|
|
65
|
-
await rename(temporaryPath, path);
|
|
66
|
-
await chmod(path, 0o600).catch(() => undefined);
|
|
67
|
-
}
|
|
68
|
-
finally {
|
|
69
|
-
await unlink(temporaryPath).catch(() => undefined);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function callbackPage(title, body) {
|
|
73
|
-
return `<!doctype html><html><head><meta charset="utf-8"><title>${title}</title></head><body><p>${body}</p></body></html>`;
|
|
74
|
-
}
|
|
75
|
-
class FileOAuthProvider {
|
|
76
|
-
callbackUrl;
|
|
77
|
-
metadata;
|
|
78
|
-
path;
|
|
79
|
-
onAuthorizationRequired;
|
|
80
|
-
stateData;
|
|
81
|
-
oauthState = randomUUID();
|
|
82
|
-
authorizationStarted = false;
|
|
83
|
-
writeQueue = Promise.resolve();
|
|
84
|
-
openBrowser;
|
|
85
|
-
constructor(endpoint, callbackUrl, state, options) {
|
|
86
|
-
this.callbackUrl = callbackUrl;
|
|
87
|
-
this.path = storePath(endpoint);
|
|
88
|
-
this.stateData = { ...state };
|
|
89
|
-
if (this.stateData.clientInformation && !hasRedirectUri(this.stateData.clientInformation, callbackUrl)) {
|
|
90
|
-
// The callback uses an ephemeral loopback port. Re-register a cached
|
|
91
|
-
// OAuth client when its old redirect URI cannot receive this run's code.
|
|
92
|
-
delete this.stateData.clientInformation;
|
|
93
|
-
delete this.stateData.codeVerifier;
|
|
94
|
-
}
|
|
95
|
-
this.onAuthorizationRequired = options.onAuthorizationRequired;
|
|
96
|
-
this.openBrowser = options.openBrowser || ((url) => open(url.toString(), { wait: false }).then(() => undefined));
|
|
97
|
-
this.metadata = {
|
|
98
|
-
redirect_uris: [callbackUrl],
|
|
99
|
-
grant_types: ['authorization_code', 'refresh_token'],
|
|
100
|
-
response_types: ['code'],
|
|
101
|
-
token_endpoint_auth_method: 'none',
|
|
102
|
-
client_name: 'Slaunt Audit',
|
|
103
|
-
software_id: 'slaunt-audit',
|
|
104
|
-
software_version: PACKAGE_VERSION,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
get redirectUrl() {
|
|
108
|
-
return this.callbackUrl;
|
|
109
|
-
}
|
|
110
|
-
get clientMetadata() {
|
|
111
|
-
return this.metadata;
|
|
112
|
-
}
|
|
113
|
-
state() {
|
|
114
|
-
return this.oauthState;
|
|
115
|
-
}
|
|
116
|
-
async clientInformation() {
|
|
117
|
-
return this.stateData.clientInformation;
|
|
118
|
-
}
|
|
119
|
-
async saveClientInformation(clientInformation) {
|
|
120
|
-
this.stateData = { ...this.stateData, clientInformation };
|
|
121
|
-
await this.persist();
|
|
122
|
-
}
|
|
123
|
-
async tokens() {
|
|
124
|
-
return this.stateData.tokens;
|
|
125
|
-
}
|
|
126
|
-
async saveTokens(tokens) {
|
|
127
|
-
const nextState = { ...this.stateData, tokens };
|
|
128
|
-
delete nextState.codeVerifier;
|
|
129
|
-
this.stateData = nextState;
|
|
130
|
-
await this.persist();
|
|
131
|
-
}
|
|
132
|
-
async redirectToAuthorization(authorizationUrl) {
|
|
133
|
-
this.authorizationStarted = true;
|
|
134
|
-
this.onAuthorizationRequired?.();
|
|
135
|
-
await this.openBrowser(authorizationUrl);
|
|
136
|
-
}
|
|
137
|
-
async saveCodeVerifier(codeVerifier) {
|
|
138
|
-
this.stateData = { ...this.stateData, codeVerifier };
|
|
139
|
-
await this.persist();
|
|
140
|
-
}
|
|
141
|
-
async codeVerifier() {
|
|
142
|
-
if (!this.stateData.codeVerifier)
|
|
143
|
-
throw new Error('OAuth code verifier is not available');
|
|
144
|
-
return this.stateData.codeVerifier;
|
|
145
|
-
}
|
|
146
|
-
async invalidateCredentials(scope) {
|
|
147
|
-
const nextState = { ...this.stateData };
|
|
148
|
-
if (scope === 'all' || scope === 'client')
|
|
149
|
-
delete nextState.clientInformation;
|
|
150
|
-
if (scope === 'all' || scope === 'tokens')
|
|
151
|
-
delete nextState.tokens;
|
|
152
|
-
if (scope === 'all' || scope === 'verifier')
|
|
153
|
-
delete nextState.codeVerifier;
|
|
154
|
-
this.stateData = nextState;
|
|
155
|
-
await this.persist();
|
|
156
|
-
}
|
|
157
|
-
wasAuthorizationStarted() {
|
|
158
|
-
return this.authorizationStarted;
|
|
159
|
-
}
|
|
160
|
-
async persist() {
|
|
161
|
-
const snapshot = this.stateData;
|
|
162
|
-
this.writeQueue = this.writeQueue.then(() => writeState(this.path, snapshot));
|
|
163
|
-
await this.writeQueue;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
function listen(server) {
|
|
167
|
-
return new Promise((resolve, reject) => {
|
|
168
|
-
const onError = (error) => {
|
|
169
|
-
server.off('listening', onListening);
|
|
170
|
-
reject(error);
|
|
171
|
-
};
|
|
172
|
-
const onListening = () => {
|
|
173
|
-
server.off('error', onError);
|
|
174
|
-
const address = server.address();
|
|
175
|
-
if (!address || typeof address === 'string') {
|
|
176
|
-
reject(new Error('OAuth callback listener did not expose a local port'));
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
resolve(address.port);
|
|
180
|
-
};
|
|
181
|
-
server.once('error', onError);
|
|
182
|
-
server.once('listening', onListening);
|
|
183
|
-
server.listen(0, '127.0.0.1');
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
export async function createOAuthSession(server, options = {}) {
|
|
187
|
-
if (!server.url)
|
|
188
|
-
throw new Error('OAuth requires an MCP server URL');
|
|
189
|
-
const endpoint = new URL(server.url);
|
|
190
|
-
const storedState = await readState(storePath(endpoint));
|
|
191
|
-
let resolveCallback;
|
|
192
|
-
let rejectCallback;
|
|
193
|
-
let callbackCode;
|
|
194
|
-
let callbackError;
|
|
195
|
-
const callbackPromise = new Promise((resolve, reject) => {
|
|
196
|
-
resolveCallback = resolve;
|
|
197
|
-
rejectCallback = reject;
|
|
198
|
-
});
|
|
199
|
-
const callbackServer = createServer((request, response) => {
|
|
200
|
-
if (request.method !== 'GET' || new URL(request.url || '/', 'http://127.0.0.1').pathname !== CALLBACK_PATH) {
|
|
201
|
-
response.writeHead(404, { 'content-type': 'text/html; charset=utf-8' });
|
|
202
|
-
response.end(callbackPage('Slaunt Audit', 'Not found.'));
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
const callbackUrl = new URL(request.url || '/', 'http://127.0.0.1');
|
|
206
|
-
const code = callbackUrl.searchParams.get('code');
|
|
207
|
-
const error = callbackUrl.searchParams.get('error');
|
|
208
|
-
const returnedState = callbackUrl.searchParams.get('state');
|
|
209
|
-
const expectedState = provider?.state();
|
|
210
|
-
if (!returnedState || returnedState !== expectedState) {
|
|
211
|
-
const stateError = new Error('OAuth callback state did not match');
|
|
212
|
-
callbackError = stateError;
|
|
213
|
-
response.writeHead(400, { 'content-type': 'text/html; charset=utf-8' });
|
|
214
|
-
response.end(callbackPage('Slaunt Audit', 'Authorization could not be verified. You can close this window.'));
|
|
215
|
-
rejectCallback?.(stateError);
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
if (error) {
|
|
219
|
-
const oauthError = new Error(`OAuth authorization failed: ${error}`);
|
|
220
|
-
callbackError = oauthError;
|
|
221
|
-
response.writeHead(400, { 'content-type': 'text/html; charset=utf-8' });
|
|
222
|
-
response.end(callbackPage('Slaunt Audit', 'Authorization was not completed. You can close this window.'));
|
|
223
|
-
rejectCallback?.(oauthError);
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
if (!code) {
|
|
227
|
-
const codeError = new Error('OAuth callback did not include an authorization code');
|
|
228
|
-
callbackError = codeError;
|
|
229
|
-
response.writeHead(400, { 'content-type': 'text/html; charset=utf-8' });
|
|
230
|
-
response.end(callbackPage('Slaunt Audit', 'Authorization did not return a code. You can close this window.'));
|
|
231
|
-
rejectCallback?.(codeError);
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
callbackCode = code;
|
|
235
|
-
response.writeHead(200, { 'content-type': 'text/html; charset=utf-8' });
|
|
236
|
-
response.end(callbackPage('Slaunt Audit', 'Authorization complete. You can close this window.'));
|
|
237
|
-
resolveCallback?.(code);
|
|
238
|
-
});
|
|
239
|
-
const port = await listen(callbackServer);
|
|
240
|
-
const callbackUrl = `http://127.0.0.1:${port}${CALLBACK_PATH}`;
|
|
241
|
-
const provider = new FileOAuthProvider(endpoint, callbackUrl, storedState, options);
|
|
242
|
-
return {
|
|
243
|
-
provider,
|
|
244
|
-
waitForCallback: async () => {
|
|
245
|
-
if (callbackCode)
|
|
246
|
-
return callbackCode;
|
|
247
|
-
if (callbackError)
|
|
248
|
-
throw callbackError;
|
|
249
|
-
return callbackPromise;
|
|
250
|
-
},
|
|
251
|
-
close: async () => {
|
|
252
|
-
await new Promise((resolve) => callbackServer.close(() => resolve()));
|
|
253
|
-
},
|
|
254
|
-
wasAuthorizationStarted: () => provider.wasAuthorizationStarted(),
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
//# sourceMappingURL=oauth.js.map
|