slaunt 0.1.5 → 0.1.7
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 +45 -116
- package/dist/classification/catalog.d.ts.map +1 -1
- package/dist/classification/catalog.js +64 -9
- package/dist/classification/catalog.js.map +1 -1
- package/dist/classification/public-catalog-config.d.ts +3 -0
- package/dist/classification/public-catalog-config.d.ts.map +1 -0
- package/dist/classification/public-catalog-config.js +5 -0
- package/dist/classification/public-catalog-config.js.map +1 -0
- package/dist/cli.js +8 -3
- package/dist/cli.js.map +1 -1
- package/dist/mcp/introspect.js +1 -1
- package/dist/tui/stream.d.ts +6 -0
- package/dist/tui/stream.d.ts.map +1 -0
- package/dist/tui/stream.js +56 -0
- package/dist/tui/stream.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,160 +1,89 @@
|
|
|
1
1
|
# Slaunt Agent Access Audit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
See what Claude and Codex can do through their configured MCP servers.
|
|
4
4
|
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Slaunt Agent Access Audit
|
|
9
|
-
Inspecting MCP configurations locally. No audit payload uploaded.
|
|
10
|
-
|
|
11
|
-
✓ Found 2 agent clients
|
|
12
|
-
✓ Found 5 MCP servers
|
|
13
|
-
✓ Retrieved 43 tool definitions
|
|
14
|
-
✓ Classified 38 tools
|
|
15
|
-
! 5 tools require review
|
|
5
|
+
```sh
|
|
6
|
+
npx slaunt audit
|
|
16
7
|
```
|
|
17
8
|
|
|
18
|
-
|
|
9
|
+
No account or database configuration is required.
|
|
19
10
|
|
|
20
|
-
|
|
11
|
+
Slaunt discovers local MCP configurations, requests each server's declared tool list, classifies those tools, and identifies risky permissions or combinations. It then writes a private HTML report on your machine.
|
|
21
12
|
|
|
22
|
-
The
|
|
13
|
+
The audit-only release does not include `slaunt connect`.
|
|
23
14
|
|
|
24
|
-
|
|
25
|
-
- If Supabase is configured, the CLI downloads approved classification rules and performs matching locally. It does not upload an audit payload or call a classification RPC.
|
|
26
|
-
- MCP tools are never called. The auditor only performs the MCP initialization handshake and `tools/list`.
|
|
27
|
-
- Starting configured stdio servers requires interactive consent, or the explicit `--allow-server-starts` flag.
|
|
28
|
-
- The default audit never edits client configuration or opens another window. Slaunt MCP installation requires `--install-slaunt`, and report opening requires `--open-report`.
|
|
29
|
-
- JSON output is redacted. Environment and header values are never included.
|
|
15
|
+
## What the audit checks
|
|
30
16
|
|
|
31
|
-
|
|
17
|
+
- Claude Code, Claude Desktop, Codex CLI, and Codex Desktop configurations
|
|
18
|
+
- MCP servers declared in JSON or TOML
|
|
19
|
+
- Tools exposed by each server
|
|
20
|
+
- Sensitive capabilities such as shell execution, secret access, code changes, and production deployment
|
|
21
|
+
- Risky combinations across servers and clients
|
|
22
|
+
- Unknown tools that still need classification review
|
|
32
23
|
|
|
33
|
-
|
|
24
|
+
Slaunt performs the MCP initialization handshake and `tools/list`. It never calls an MCP tool.
|
|
25
|
+
|
|
26
|
+
## Run modes
|
|
34
27
|
|
|
35
28
|
```sh
|
|
29
|
+
# Normal interactive audit
|
|
36
30
|
npx slaunt audit
|
|
37
|
-
```
|
|
38
31
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
```sh
|
|
42
|
-
# Configuration-only inventory; never starts a local MCP process
|
|
32
|
+
# Inspect configuration without starting local MCP processes
|
|
43
33
|
npx slaunt audit --no-server-starts
|
|
44
34
|
|
|
45
|
-
#
|
|
35
|
+
# Run non-interactively and allow declared tool-list requests
|
|
46
36
|
npx slaunt audit --yes
|
|
47
37
|
|
|
48
|
-
#
|
|
49
|
-
npx slaunt audit --
|
|
38
|
+
# Skip the paced terminal presentation
|
|
39
|
+
npx slaunt audit --quick
|
|
50
40
|
|
|
51
|
-
#
|
|
52
|
-
npx slaunt audit --
|
|
41
|
+
# Use only the bundled classification rules
|
|
42
|
+
npx slaunt audit --offline
|
|
53
43
|
|
|
54
|
-
#
|
|
55
|
-
npx slaunt audit --no-
|
|
56
|
-
npx slaunt audit --quick
|
|
44
|
+
# Produce redacted JSON without a report
|
|
45
|
+
npx slaunt audit --json --no-report --no-server-starts
|
|
57
46
|
```
|
|
58
47
|
|
|
59
|
-
Run `npx slaunt audit --help` for
|
|
48
|
+
Run `npx slaunt audit --help` for all options. Node.js 20.17 or newer is required.
|
|
60
49
|
|
|
61
|
-
##
|
|
50
|
+
## Privacy and consent
|
|
62
51
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
52
|
+
- Tool names, descriptions, schemas, configuration values, findings, and reports stay local.
|
|
53
|
+
- Slaunt downloads approved classification rules from a read-only Supabase catalog. It does not upload audit data.
|
|
54
|
+
- Starting a configured stdio server requires interactive consent or `--allow-server-starts`.
|
|
55
|
+
- Slaunt MCP installation happens only with `--install-slaunt`.
|
|
56
|
+
- The HTML report opens only with `--open-report`.
|
|
57
|
+
- Environment variables and HTTP header values are redacted from JSON and reports.
|
|
68
58
|
|
|
69
|
-
|
|
59
|
+
If the remote catalog is unavailable, Slaunt uses a seven-day local cache and then its bundled rules. `--offline` disables the refresh entirely.
|
|
70
60
|
|
|
71
|
-
|
|
61
|
+
## How classification works
|
|
72
62
|
|
|
73
|
-
|
|
63
|
+
Approved database rules and bundled rules map tool declarations to capabilities and risk levels. Matching happens locally. Slaunt then checks direct authority and cross-server attack paths, such as a client that can execute shell commands and read secrets.
|
|
74
64
|
|
|
75
|
-
|
|
65
|
+
Unknown does not mean malicious. It means no approved rule matched the tool, so Slaunt treats it as potentially sensitive until reviewed.
|
|
76
66
|
|
|
77
|
-
|
|
78
|
-
- idempotent by the reserved server name `slaunt`;
|
|
79
|
-
- atomic, using a same-directory temporary file and rename;
|
|
80
|
-
- backed up with a timestamp before any existing file changes;
|
|
81
|
-
- permission-preserving, with new config files created as user-readable only;
|
|
82
|
-
- symlink-safe (the installer refuses to replace a symlink);
|
|
83
|
-
- HTTPS-only, except explicit localhost development endpoints.
|
|
84
|
-
|
|
85
|
-
Override the endpoint only when intentionally testing another trusted Slaunt deployment:
|
|
67
|
+
## Optional Slaunt MCP installation
|
|
86
68
|
|
|
87
69
|
```sh
|
|
88
|
-
|
|
70
|
+
npx slaunt audit --install-slaunt
|
|
89
71
|
```
|
|
90
72
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
Classification is per declared tool. Correlation then evaluates what a client can do across servers. Examples include:
|
|
94
|
-
|
|
95
|
-
- direct production deployment authority;
|
|
96
|
-
- shell execution chained with credential access;
|
|
97
|
-
- broad GitHub edit and merge permissions shared by multiple clients;
|
|
98
|
-
- cleartext non-local MCP endpoints;
|
|
99
|
-
- plaintext credential-like config values;
|
|
100
|
-
- unpinned dynamic package launchers;
|
|
101
|
-
- unknown tools whose names imply administrative or execution behavior.
|
|
102
|
-
|
|
103
|
-
Unknown does not mean malicious. It means the tool has not matched an approved rule, so the report treats it as potentially sensitive until reviewed.
|
|
104
|
-
|
|
105
|
-
## Supabase catalog
|
|
73
|
+
Installation is explicit, idempotent, backed up, atomic, permission-preserving, and symlink-safe. The default audit never edits client configuration.
|
|
106
74
|
|
|
107
|
-
|
|
75
|
+
## Audit limits
|
|
108
76
|
|
|
109
|
-
|
|
110
|
-
2. Confirm the table is exposed through the Data API for the project. Supabase changed new-table exposure defaults in 2026, so explicit Data API exposure may be required.
|
|
111
|
-
3. Configure the public read-only client values:
|
|
77
|
+
This is a declared-access audit. It does not inspect prompts, file contents, credentials, non-MCP agents, hidden provider scopes, client approval policy, or whether a tool has been used. If a server cannot be inspected, its tool inventory remains unavailable; Slaunt does not treat that server as safe.
|
|
112
78
|
|
|
113
|
-
|
|
114
|
-
export SLAUNT_SUPABASE_URL=https://your-project.supabase.co
|
|
115
|
-
export SLAUNT_SUPABASE_PUBLISHABLE_KEY=sb_publishable_...
|
|
116
|
-
npx slaunt audit
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
The migration enables and forces RLS, removes mutation privileges from public roles, grants column-scoped `SELECT`, and exposes only rows that are both active and approved. It contains no public write policy and no `SECURITY DEFINER` function. Never place a Supabase secret key or legacy `service_role` key in the CLI environment.
|
|
120
|
-
|
|
121
|
-
Catalog refresh failures fall back to a seven-day local cache and then to the bundled catalog. Use `--offline` to skip refresh entirely.
|
|
122
|
-
|
|
123
|
-
## Classification contribution workflow
|
|
124
|
-
|
|
125
|
-
Classification changes should arrive through reviewed pull requests:
|
|
126
|
-
|
|
127
|
-
1. Add or update the bounded glob rule in `src/classification/builtin-catalog.ts`.
|
|
128
|
-
2. Add a regression fixture proving the intended match and non-match behavior.
|
|
129
|
-
3. Add the reviewed equivalent to a new Supabase migration.
|
|
130
|
-
4. Keep the database row inactive or in review until a maintainer approves it.
|
|
131
|
-
5. Run `npm run check && npm test`.
|
|
132
|
-
|
|
133
|
-
Database patterns are treated as bounded globs, never executable regular expressions. This avoids turning a public catalog into a regular-expression denial-of-service input.
|
|
134
|
-
|
|
135
|
-
## Terminal experience and conversion ethics
|
|
136
|
-
|
|
137
|
-
The terminal flow uses immediate collection feedback followed by a short, deliberately paced analysis trail. A single updating line indexes the retrieved tools, searches direct and chained privilege paths, compares client permissions, and ranks the evidence before revealing the report. Every state is derived from the actual audit result; the pacing never invents a server, tool, capability, or finding.
|
|
138
|
-
|
|
139
|
-
The default view is intentionally concise and technically precise without assuming prior MCP expertise. It retains terms such as agent client, MCP server, tool, capability, attack chain, least privilege, classification coverage, and security posture, then explains their consequence or definition where they appear. Each high-priority finding identifies the client, server, tool, capability, reason, and recommended control. Supporting findings and complete evidence remain in the local HTML report. The CLI writes that report without opening it; use `--open-report` when you explicitly want a browser window.
|
|
140
|
-
|
|
141
|
-
The guided inspection targets about 78 seconds from launch and walks through 14 evidence-backed phases. Each phase reveals a result derived from the audit—inventory availability, schema coverage, sensitive surfaces, direct authority, cross-server paths, role overlap, unknown tools, and final confidence—while keeping the terminal to one changing status line. It runs only in an interactive terminal. JSON output, piped output, CI, `--yes`, `--quick`, `--no-motion`, and `SLAUNT_NO_MOTION=1` remain immediate. The audit also refuses to start a configured stdio entry that resolves back to the `slaunt` CLI, preventing recursive audit windows. The experience deliberately avoids variable rewards, deceptive urgency, hidden defaults, shame, or an unsupported claim that a UI can medically “optimize dopamine.”
|
|
142
|
-
|
|
143
|
-
The design is informed by evidence that progress feedback can improve follow-through, autonomy-supportive framing is associated with more self-directed motivation, and risk messages work better when paired with an effective action. See the PubMed-indexed reviews on [progress feedback](https://pubmed.ncbi.nlm.nih.gov/33721605/), [autonomy support](https://pubmed.ncbi.nlm.nih.gov/30237648/), and [fear appeals with efficacy](https://pubmed.ncbi.nlm.nih.gov/26501228/). These findings come from other domains, so their application to developer security tooling is a product hypothesis, not a medical claim.
|
|
144
|
-
|
|
145
|
-
## Local development
|
|
79
|
+
## Development
|
|
146
80
|
|
|
147
81
|
```sh
|
|
148
82
|
npm ci
|
|
149
83
|
npm run check
|
|
150
84
|
npm test
|
|
151
|
-
npm run audit:demo
|
|
152
85
|
```
|
|
153
86
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
## Scope limitations
|
|
157
|
-
|
|
158
|
-
This is a declared-access audit. It does not inspect prompts, file contents, credentials, non-MCP agents, client approval policy, OAuth scopes that are not reflected in tool declarations, or whether a tool has been used. A failed or skipped server probe means its tool inventory is unavailable—not that the server is safe.
|
|
87
|
+
The Supabase schema is in [`supabase/migrations`](supabase/migrations). Public clients receive only approved, active rules through column-scoped `SELECT`, forced Row Level Security, and no public mutation policy. Never ship or expose a Supabase secret key.
|
|
159
88
|
|
|
160
|
-
See [SECURITY.md](SECURITY.md) for the security boundary and reporting process.
|
|
89
|
+
See [SECURITY.md](SECURITY.md) for the complete security boundary and vulnerability-reporting process.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/classification/catalog.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/classification/catalog.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuKlE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CA0B7F"}
|
|
@@ -3,6 +3,8 @@ import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
|
|
|
3
3
|
import { dirname, join, resolve } from 'node:path';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { BUILTIN_CATALOG } from './builtin-catalog.js';
|
|
6
|
+
import { PUBLIC_CATALOG_KEY, PUBLIC_CATALOG_URL } from './public-catalog-config.js';
|
|
7
|
+
const MAX_CATALOG_BYTES = 2 * 1024 * 1024;
|
|
6
8
|
const capabilities = [
|
|
7
9
|
'read-data', 'write-data', 'read-files', 'write-files', 'delete-data', 'execute-code',
|
|
8
10
|
'execute-shell', 'read-secrets', 'manage-auth', 'network-access', 'deploy-production',
|
|
@@ -79,12 +81,67 @@ function validatedSupabaseUrl(raw) {
|
|
|
79
81
|
}
|
|
80
82
|
return url;
|
|
81
83
|
}
|
|
84
|
+
function legacyJwtRole(key) {
|
|
85
|
+
if (key.split('.').length !== 3)
|
|
86
|
+
return undefined;
|
|
87
|
+
try {
|
|
88
|
+
const payload = JSON.parse(Buffer.from(key.split('.')[1] || '', 'base64url').toString('utf8'));
|
|
89
|
+
if (!payload || typeof payload !== 'object' || !('role' in payload))
|
|
90
|
+
return undefined;
|
|
91
|
+
return typeof payload.role === 'string' ? payload.role : undefined;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function validatedPublicKey(raw) {
|
|
98
|
+
const key = raw.trim();
|
|
99
|
+
if (!key || key.length > 2_048 || /[\r\n]/u.test(key))
|
|
100
|
+
throw new Error('Supabase publishable key is malformed');
|
|
101
|
+
if (key.startsWith('sb_secret_'))
|
|
102
|
+
throw new Error('Refusing to use a Supabase secret key in the public audit client');
|
|
103
|
+
if (key.startsWith('sb_') && !key.startsWith('sb_publishable_')) {
|
|
104
|
+
throw new Error('Supabase catalog requires a publishable key');
|
|
105
|
+
}
|
|
106
|
+
const role = legacyJwtRole(key);
|
|
107
|
+
if (key.split('.').length === 3 && role !== 'anon') {
|
|
108
|
+
throw new Error('Supabase catalog accepts only a legacy anon JWT, never a service-role or user token');
|
|
109
|
+
}
|
|
110
|
+
if (!key.startsWith('sb_publishable_') && role !== 'anon') {
|
|
111
|
+
throw new Error('Supabase catalog requires a publishable key');
|
|
112
|
+
}
|
|
113
|
+
return { key, legacyJwt: role === 'anon' };
|
|
114
|
+
}
|
|
115
|
+
async function readBoundedBody(response) {
|
|
116
|
+
const declaredLength = Number(response.headers.get('content-length'));
|
|
117
|
+
if (Number.isFinite(declaredLength) && declaredLength > MAX_CATALOG_BYTES) {
|
|
118
|
+
throw new Error('catalog response exceeded 2 MiB');
|
|
119
|
+
}
|
|
120
|
+
if (!response.body)
|
|
121
|
+
return '';
|
|
122
|
+
const reader = response.body.getReader();
|
|
123
|
+
const chunks = [];
|
|
124
|
+
let received = 0;
|
|
125
|
+
while (true) {
|
|
126
|
+
const { done, value } = await reader.read();
|
|
127
|
+
if (done)
|
|
128
|
+
break;
|
|
129
|
+
received += value.byteLength;
|
|
130
|
+
if (received > MAX_CATALOG_BYTES) {
|
|
131
|
+
await reader.cancel();
|
|
132
|
+
throw new Error('catalog response exceeded 2 MiB');
|
|
133
|
+
}
|
|
134
|
+
chunks.push(value);
|
|
135
|
+
}
|
|
136
|
+
return Buffer.concat(chunks, received).toString('utf8');
|
|
137
|
+
}
|
|
82
138
|
async function fetchDatabaseRules() {
|
|
83
|
-
const rawUrl = process.env.SLAUNT_SUPABASE_URL;
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
139
|
+
const rawUrl = process.env.SLAUNT_SUPABASE_URL || PUBLIC_CATALOG_URL;
|
|
140
|
+
const candidateKey = process.env.SLAUNT_SUPABASE_PUBLISHABLE_KEY
|
|
141
|
+
|| process.env.SLAUNT_SUPABASE_ANON_KEY
|
|
142
|
+
|| PUBLIC_CATALOG_KEY;
|
|
87
143
|
const base = validatedSupabaseUrl(rawUrl);
|
|
144
|
+
const { key, legacyJwt } = validatedPublicKey(candidateKey);
|
|
88
145
|
const endpoint = new URL('/rest/v1/tool_classification_catalog', base);
|
|
89
146
|
endpoint.searchParams.set('select', 'id,namespace,tool_pattern,description_terms,category,capabilities,risk_score,risk_level,sensitive,verified,rationale,priority');
|
|
90
147
|
endpoint.searchParams.set('active', 'eq.true');
|
|
@@ -94,14 +151,12 @@ async function fetchDatabaseRules() {
|
|
|
94
151
|
const timeout = setTimeout(() => controller.abort(), 5_000);
|
|
95
152
|
try {
|
|
96
153
|
const headers = { apikey: key, accept: 'application/json' };
|
|
97
|
-
if (
|
|
154
|
+
if (legacyJwt)
|
|
98
155
|
headers.authorization = `Bearer ${key}`;
|
|
99
156
|
const response = await fetch(endpoint, { headers, signal: controller.signal, redirect: 'error' });
|
|
100
157
|
if (!response.ok)
|
|
101
158
|
throw new Error(`catalog request returned HTTP ${response.status}`);
|
|
102
|
-
const body = await response
|
|
103
|
-
if (body.length > 2 * 1024 * 1024)
|
|
104
|
-
throw new Error('catalog response exceeded 2 MiB');
|
|
159
|
+
const body = await readBoundedBody(response);
|
|
105
160
|
return z.array(databaseRowSchema).max(10_000).parse(JSON.parse(body));
|
|
106
161
|
}
|
|
107
162
|
finally {
|
|
@@ -109,7 +164,7 @@ async function fetchDatabaseRules() {
|
|
|
109
164
|
}
|
|
110
165
|
}
|
|
111
166
|
export async function loadCatalog(options = {}) {
|
|
112
|
-
if (!options.offline
|
|
167
|
+
if (!options.offline) {
|
|
113
168
|
try {
|
|
114
169
|
const rows = await fetchDatabaseRules();
|
|
115
170
|
await writeCache(rows).catch(() => undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/classification/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/classification/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-catalog-config.d.ts","sourceRoot":"","sources":["../../src/classification/public-catalog-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,6CAA6C,CAAC;AAC7E,eAAO,MAAM,kBAAkB,mDAAmD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Supabase publishable keys are intentionally safe to ship in public clients.
|
|
2
|
+
// Access is constrained by Postgres grants and Row Level Security in the catalog migration.
|
|
3
|
+
export const PUBLIC_CATALOG_URL = 'https://chgxpcoxlxqmehozftge.supabase.co';
|
|
4
|
+
export const PUBLIC_CATALOG_KEY = 'sb_publishable_JJTDRq5tsrVf6mA0LB6CmA_OPblISO7';
|
|
5
|
+
//# sourceMappingURL=public-catalog-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-catalog-config.js","sourceRoot":"","sources":["../../src/classification/public-catalog-config.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4FAA4F;AAC5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,0CAA0C,CAAC;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,gDAAgD,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -10,6 +10,7 @@ import { isDynamicLauncher } from './mcp/introspect.js';
|
|
|
10
10
|
import { writeHtmlReport } from './report/html.js';
|
|
11
11
|
import { DEFAULT_INSPECTION_WINDOW_MS, playAnalysisPath } from './tui/analysis-path.js';
|
|
12
12
|
import { renderAudit, renderHeader } from './tui/render.js';
|
|
13
|
+
import { streamTerminalText } from './tui/stream.js';
|
|
13
14
|
const HELP = `Slaunt MCP Agent Access Audit
|
|
14
15
|
|
|
15
16
|
Usage:
|
|
@@ -24,7 +25,7 @@ Options:
|
|
|
24
25
|
--output <path> Full HTML report path
|
|
25
26
|
--no-report Do not save the full HTML report
|
|
26
27
|
--open-report Open the full HTML report after the audit
|
|
27
|
-
--quick, --no-motion Skip
|
|
28
|
+
--quick, --no-motion Skip paced inspection and progressive report reveal
|
|
28
29
|
--timeout <ms> Per-server probe timeout (1000-60000; default 8000)
|
|
29
30
|
--json Print a machine-readable result with secrets redacted
|
|
30
31
|
--yes Approve read-only tools/list startup for automation
|
|
@@ -89,7 +90,7 @@ function parseArguments(args) {
|
|
|
89
90
|
process.exit(0);
|
|
90
91
|
}
|
|
91
92
|
else if (argument === '--version' || argument === '-v') {
|
|
92
|
-
process.stdout.write('0.1.
|
|
93
|
+
process.stdout.write('0.1.7\n');
|
|
93
94
|
process.exit(0);
|
|
94
95
|
}
|
|
95
96
|
else if (argument === 'connect') {
|
|
@@ -181,7 +182,11 @@ async function main() {
|
|
|
181
182
|
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
182
183
|
return;
|
|
183
184
|
}
|
|
184
|
-
|
|
185
|
+
const renderedAudit = `${renderAudit(result)}\n`;
|
|
186
|
+
if (motionEnabled)
|
|
187
|
+
await streamTerminalText(renderedAudit);
|
|
188
|
+
else
|
|
189
|
+
process.stdout.write(renderedAudit);
|
|
185
190
|
if (options.openReport && result.reportPath)
|
|
186
191
|
await open(result.reportPath, { wait: false });
|
|
187
192
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAiBrD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBZ,CAAC;AAEF,SAAS,UAAU,CAAC,IAAc,EAAE,KAAa,EAAE,MAAc;IAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,mBAAmB,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,OAAO,GAAe;QAC1B,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;KAC3H,CAAC;IACF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,OAAO;YAAE,SAAS;QACnC,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;aAC1C,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;aAC/C,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;aACrD,IAAI,QAAQ,KAAK,eAAe;YAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;aAC5D,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;aACzD,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;aAClF,IAAI,QAAQ,KAAK,aAAa;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;aAClE,IAAI,QAAQ,KAAK,kBAAkB;YAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;aAClE,IAAI,QAAQ,KAAK,qBAAqB;YAAE,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;aACtE,IAAI,QAAQ,KAAK,uBAAuB;YAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;aAC3E,IAAI,QAAQ,KAAK,oBAAoB;YAAE,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;aACzE,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC3F,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;aAClF,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACpI,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAwB;IACnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACvH,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxI,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,KAAK,IAAI,CAAC,CAAC;QAC1F,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,KAAK,KAAK,MAAM,CAAC,OAAO,IAAI,eAAe,IAAI,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9F,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrH,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,MAAM,aAAa,GAAG,WAAW;WAC5B,CAAC,OAAO,CAAC,QAAQ;WACjB,CAAC,OAAO,CAAC,GAAG;WACZ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;WACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC;IAE1C,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjE,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAChH,MAAM,oBAAoB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC;IAC1K,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACtE,IAAI,aAAa,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,OAAO,EAAE,oBAAkC,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAChD,SAAS,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5H,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/F,IAAI,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,IAAI,WAAW,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACvG,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;QACnE,iBAAiB,GAAG,MAAM,OAAO,CAAC;YAChC,OAAO,EAAE,SAAS,YAAY,CAAC,MAAM,oBAAoB,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,mFAAmF,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,4CAA4C,CAAC,CAAC,CAAC,EAAE,EAAE;YAClQ,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACpH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC5B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC;QAC7C,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;KACrE,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC;QACnD,MAAM,gBAAgB,CAAC,MAAM,EAAE;YAC7B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,4BAA4B,GAAG,SAAS,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;IACjD,IAAI,aAAa;QAAE,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;QAAE,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;IAC1E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/dist/mcp/introspect.js
CHANGED
|
@@ -50,7 +50,7 @@ async function listAllTools(client, server) {
|
|
|
50
50
|
return tools;
|
|
51
51
|
}
|
|
52
52
|
async function connectAndList(server, transport) {
|
|
53
|
-
const client = new Client({ name: 'slaunt-audit', version: '0.1.
|
|
53
|
+
const client = new Client({ name: 'slaunt-audit', version: '0.1.7' }, { capabilities: {} });
|
|
54
54
|
try {
|
|
55
55
|
// The SDK's transport classes declare `sessionId?: string` while its shared
|
|
56
56
|
// Transport interface is emitted without exact-optional compatibility.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface StreamTerminalTextOptions {
|
|
2
|
+
sleep?: (milliseconds: number) => Promise<void>;
|
|
3
|
+
write?: (chunk: string) => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function streamTerminalText(value: string, options?: StreamTerminalTextOptions): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/tui/stream.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAyBD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const ANSI_SEQUENCE = /^\u001B\[[0-?]*[ -/]*[@-~]$/u;
|
|
2
|
+
const TOKEN_PATTERN = /\u001B\[[0-?]*[ -/]*[@-~]|\s+|[^\s]+/gu;
|
|
3
|
+
const ANSI_GLOBAL = /\u001B\[[0-?]*[ -/]*[@-~]/gu;
|
|
4
|
+
const BURST_SIZES = [3, 4, 2, 5];
|
|
5
|
+
const BURST_DELAYS_MS = [12, 18, 9, 15];
|
|
6
|
+
const wait = (milliseconds) => new Promise((resolve) => {
|
|
7
|
+
setTimeout(resolve, milliseconds);
|
|
8
|
+
});
|
|
9
|
+
function isVisibleToken(token) {
|
|
10
|
+
return !ANSI_SEQUENCE.test(token) && !/^\s+$/u.test(token);
|
|
11
|
+
}
|
|
12
|
+
function isSectionHeading(line) {
|
|
13
|
+
const visible = line.replace(ANSI_GLOBAL, '');
|
|
14
|
+
return visible.length > 0
|
|
15
|
+
&& visible.length <= 48
|
|
16
|
+
&& !/^\s/u.test(visible)
|
|
17
|
+
&& !/[.!?:]$/u.test(visible)
|
|
18
|
+
&& !/^[-+◆▲✓!\d]/u.test(visible);
|
|
19
|
+
}
|
|
20
|
+
export async function streamTerminalText(value, options = {}) {
|
|
21
|
+
const sleep = options.sleep || wait;
|
|
22
|
+
const write = options.write || ((chunk) => { process.stdout.write(chunk); });
|
|
23
|
+
const lines = value.split('\n');
|
|
24
|
+
let burstIndex = 0;
|
|
25
|
+
for (const [lineIndex, line] of lines.entries()) {
|
|
26
|
+
const tokens = line.match(TOKEN_PATTERN) || [];
|
|
27
|
+
let buffer = '';
|
|
28
|
+
let visibleTokens = 0;
|
|
29
|
+
for (const token of tokens) {
|
|
30
|
+
buffer += token;
|
|
31
|
+
if (!isVisibleToken(token))
|
|
32
|
+
continue;
|
|
33
|
+
visibleTokens += 1;
|
|
34
|
+
const burstSize = BURST_SIZES[burstIndex % BURST_SIZES.length] || 3;
|
|
35
|
+
if (visibleTokens < burstSize)
|
|
36
|
+
continue;
|
|
37
|
+
write(buffer);
|
|
38
|
+
buffer = '';
|
|
39
|
+
visibleTokens = 0;
|
|
40
|
+
await sleep(BURST_DELAYS_MS[burstIndex % BURST_DELAYS_MS.length] || 12);
|
|
41
|
+
burstIndex += 1;
|
|
42
|
+
}
|
|
43
|
+
if (buffer)
|
|
44
|
+
write(buffer);
|
|
45
|
+
if (lineIndex < lines.length - 1)
|
|
46
|
+
write('\n');
|
|
47
|
+
const visibleLine = line.replace(ANSI_GLOBAL, '');
|
|
48
|
+
if (visibleLine.length === 0)
|
|
49
|
+
await sleep(65);
|
|
50
|
+
else if (isSectionHeading(line))
|
|
51
|
+
await sleep(170);
|
|
52
|
+
else if (/[.!?]$/u.test(visibleLine))
|
|
53
|
+
await sleep(35);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/tui/stream.ts"],"names":[],"mappings":"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"}
|