@kryptosai/mcp-observatory 1.33.0 → 1.34.0
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 +8 -121
- package/dist/src/auth.d.ts +22 -0
- package/dist/src/auth.js +140 -0
- package/dist/src/auth.js.map +1 -0
- package/dist/src/cli.js +48 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/demo.d.ts +2 -0
- package/dist/src/commands/demo.js +247 -0
- package/dist/src/commands/demo.js.map +1 -0
- package/dist/src/commands/helpers.d.ts +11 -0
- package/dist/src/commands/helpers.js +26 -0
- package/dist/src/commands/helpers.js.map +1 -1
- package/dist/src/commands/init-ci.d.ts +1 -0
- package/dist/src/commands/init-ci.js +157 -10
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/commands/receipt.js +13 -3
- package/dist/src/commands/receipt.js.map +1 -1
- package/dist/src/commands/scan.js +10 -1
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/setup-ci-conversion.js +4 -4
- package/dist/src/commands/setup-ci-conversion.js.map +1 -1
- package/dist/src/commands/test.js +9 -1
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/commercial.d.ts +3 -0
- package/dist/src/commercial.js +12 -1
- package/dist/src/commercial.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/receipt.d.ts +9 -0
- package/dist/src/receipt.js +24 -1
- package/dist/src/receipt.js.map +1 -1
- package/dist/src/telemetry.js +4 -0
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/utils/failure-diagnosis.d.ts +7 -0
- package/dist/src/utils/failure-diagnosis.js +14 -0
- package/dist/src/utils/failure-diagnosis.js.map +1 -1
- package/docs/mcp-server-safety-index.md +1 -1
- package/docs/safety-index/artifacts/antv-chart-server.json +21 -21
- package/docs/safety-index/artifacts/antv-chart-server.md +10 -10
- package/docs/safety-index/artifacts/browsermcp-server.json +18 -18
- package/docs/safety-index/artifacts/browsermcp-server.md +9 -9
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +19 -19
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +9 -9
- package/docs/safety-index/artifacts/cloudflare-server.json +4 -4
- package/docs/safety-index/artifacts/cloudflare-server.md +4 -4
- package/docs/safety-index/artifacts/context7-server.json +18 -18
- package/docs/safety-index/artifacts/context7-server.md +10 -10
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +34 -34
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +15 -15
- package/docs/safety-index/artifacts/everything-server.json +18 -18
- package/docs/safety-index/artifacts/everything-server.md +11 -11
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +19 -19
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +11 -11
- package/docs/safety-index/artifacts/filesystem-mcp-server.json +19 -19
- package/docs/safety-index/artifacts/filesystem-mcp-server.md +10 -10
- package/docs/safety-index/artifacts/filesystem-server.json +19 -19
- package/docs/safety-index/artifacts/filesystem-server.md +10 -10
- package/docs/safety-index/artifacts/github-mcp-server.json +18 -18
- package/docs/safety-index/artifacts/github-mcp-server.md +9 -9
- package/docs/safety-index/artifacts/google-drive-server.json +4 -4
- package/docs/safety-index/artifacts/google-drive-server.md +4 -4
- package/docs/safety-index/artifacts/kubernetes-server.json +23 -23
- package/docs/safety-index/artifacts/kubernetes-server.md +15 -15
- package/docs/safety-index/artifacts/memory-server.json +18 -18
- package/docs/safety-index/artifacts/memory-server.md +10 -10
- package/docs/safety-index/artifacts/mongodb-server.json +4 -4
- package/docs/safety-index/artifacts/mongodb-server.md +4 -4
- package/docs/safety-index/artifacts/opentofu-server.json +18 -18
- package/docs/safety-index/artifacts/opentofu-server.md +9 -9
- package/docs/safety-index/artifacts/playwright-mcp-server.json +18 -18
- package/docs/safety-index/artifacts/playwright-mcp-server.md +9 -9
- package/docs/safety-index/artifacts/promptopia-server.json +21 -21
- package/docs/safety-index/artifacts/promptopia-server.md +11 -11
- package/docs/safety-index/artifacts/puppeteer-server.json +18 -18
- package/docs/safety-index/artifacts/puppeteer-server.md +9 -9
- package/docs/safety-index/artifacts/qdrant-server.json +4 -4
- package/docs/safety-index/artifacts/qdrant-server.md +4 -4
- package/docs/safety-index/artifacts/ref-tools-server.json +18 -18
- package/docs/safety-index/artifacts/ref-tools-server.md +10 -10
- package/docs/safety-index/artifacts/sequential-thinking-server.json +18 -18
- package/docs/safety-index/artifacts/sequential-thinking-server.md +8 -8
- package/docs/safety-index/artifacts/slack-server.json +3 -3
- package/docs/safety-index/artifacts/slack-server.md +2 -2
- package/docs/safety-index/artifacts/ui5-mcp-server.json +18 -18
- package/docs/safety-index/artifacts/ui5-mcp-server.md +9 -9
- package/docs/safety-index/artifacts/vercel-ai-server.json +4 -4
- package/docs/safety-index/artifacts/vercel-ai-server.md +4 -4
- package/package.json +2 -2
- package/dist/src/adapters/base.d.ts +0 -14
- package/dist/src/adapters/base.js +0 -2
- package/dist/src/adapters/base.js.map +0 -1
- package/dist/src/checks/semantics.d.ts +0 -2
- package/dist/src/checks/semantics.js +0 -48
- package/dist/src/checks/semantics.js.map +0 -1
- package/dist/src/diff/diff.d.ts +0 -2
- package/dist/src/diff/diff.js +0 -81
- package/dist/src/diff/diff.js.map +0 -1
- package/dist/src/reporters/json.d.ts +0 -2
- package/dist/src/reporters/json.js +0 -4
- package/dist/src/reporters/json.js.map +0 -1
- package/dist/src/runner/runner.d.ts +0 -2
- package/dist/src/runner/runner.js +0 -135
- package/dist/src/runner/runner.js.map +0 -1
- package/dist/src/storage/filesystem.d.ts +0 -6
- package/dist/src/storage/filesystem.js +0 -21
- package/dist/src/storage/filesystem.js.map +0 -1
package/README.md
CHANGED
|
@@ -38,145 +38,32 @@
|
|
|
38
38
|
|
|
39
39
|
> **Runtime enforcement:** Use [mcp-seatbelt](https://github.com/KryptosAI/mcp-seatbelt) to block dangerous MCP tool calls at runtime based on observatory scan results.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
<img src="docs/demo.gif" alt="MCP Observatory demo" width="700"/>
|
|
43
|
-
</p>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
Agents should not depend on tools nobody tests. Build your MCP server, test it with MCP Observatory, and ship with confidence. Get security scores, attack simulation results, schema drift alerts, SARIF reports for GitHub Code Scanning, lock files, compliance receipts, and CI-native gating — all from the command line.
|
|
41
|
+
## Get Started
|
|
47
42
|
|
|
48
43
|
```bash
|
|
49
|
-
npx @kryptosai/mcp-observatory
|
|
44
|
+
npx @kryptosai/mcp-observatory demo
|
|
50
45
|
```
|
|
51
46
|
|
|
52
|
-
|
|
47
|
+
Scans your configured MCP servers (or a built-in demo server if you have none) and shows your safety grade in seconds. No config, no arguments — instant value.
|
|
53
48
|
|
|
54
|
-
|
|
55
|
-
{
|
|
56
|
-
"target_id": "my-mcp-server",
|
|
57
|
-
"profile": "nsa-mcp",
|
|
58
|
-
"score": 87,
|
|
59
|
-
"status": "needs_review",
|
|
60
|
-
"finding_count": 2
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
The `nsa-mcp` profile is not an official certification. It maps MCP Observatory findings to practical control areas for sensitive environments: trust boundaries, tool permissions, tool description integrity, authentication, secrets exposure, schema validation, input validation, auditability, runtime safety, and supply chain.
|
|
65
|
-
|
|
66
|
-
## Trust Signals
|
|
67
|
-
|
|
68
|
-
| Signal | What it means |
|
|
69
|
-
|---|---|
|
|
70
|
-
| CI + coverage | Typecheck, lint, tests, build, packed install, artifact validation, smoke test, and measured coverage run in GitHub Actions. |
|
|
71
|
-
| CodeQL + OpenSSF Scorecard | Static analysis and supply-chain posture are visible in GitHub-native security surfaces. |
|
|
72
|
-
| Dependabot | npm and GitHub Actions dependency updates are monitored weekly. |
|
|
73
|
-
| npm provenance workflow | Release automation is prepared for npm provenance through GitHub OIDC. |
|
|
74
|
-
| Security policy | Vulnerability reports go through private disclosure; see [SECURITY.md](./SECURITY.md). |
|
|
75
|
-
|
|
76
|
-
## Try It
|
|
77
|
-
|
|
78
|
-
Run the public evidence loop: generate a receipt, map it into a risk graph, add CI/SARIF, then request a private fleet review when the server matters to production.
|
|
49
|
+
Have servers? Scan them all:
|
|
79
50
|
|
|
80
51
|
```bash
|
|
81
|
-
npx @kryptosai/mcp-observatory
|
|
82
|
-
npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format sarif --output results.sarif
|
|
83
|
-
npx @kryptosai/mcp-observatory score npx -y my-mcp-server --profile nsa-mcp --format json
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Or start with the homepage demo: safely simulate MCP attack-readiness for one server, emit an action receipt, and produce SARIF evidence that maintainers can inspect in GitHub Code Scanning.
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
npx @kryptosai/mcp-observatory attack-sim npx -y my-mcp-server --sarif attack-results.sarif
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Emit the portable trust record:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format json --output report.json --receipt receipt.json
|
|
96
|
-
npx @kryptosai/mcp-observatory receipt npx -y my-mcp-server --profile nsa-mcp --format markdown --output receipt.md
|
|
97
|
-
npx @kryptosai/mcp-observatory risk-graph --input receipt.json --json mcp-risk-graph.json --output mcp-risk-graph.md --html mcp-risk-graph.html
|
|
52
|
+
npx @kryptosai/mcp-observatory
|
|
98
53
|
```
|
|
99
54
|
|
|
100
|
-
|
|
55
|
+
Test a specific server:
|
|
101
56
|
|
|
102
57
|
```bash
|
|
103
|
-
npx @kryptosai/mcp-observatory
|
|
58
|
+
npx @kryptosai/mcp-observatory test npx -y @modelcontextprotocol/server-everything
|
|
104
59
|
```
|
|
105
60
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
Want a receipt for a server your agent depends on? Comment on [Drop an MCP server, get a receipt #146](https://github.com/KryptosAI/mcp-observatory/issues/146) or use the [structured receipt request form](https://github.com/KryptosAI/mcp-observatory/issues/new?template=tool-call-receipt-request.yml). Public requests can become Safety Index entries, delta receipts, SARIF evidence, and maintainer CI conversations.
|
|
109
|
-
|
|
110
|
-
## Evidence You Can Inspect
|
|
111
|
-
|
|
112
|
-
| Evidence | Where |
|
|
113
|
-
|---|---|
|
|
114
|
-
| Example GitHub Actions adoption | [`setup-ci --all`](./docs/setup-ci-doctor.md) and the generated workflow docs |
|
|
115
|
-
| NSA-MCP audit example | [Markdown report](./docs/examples/nsa-mcp-audit-report.md), [SARIF](./docs/examples/nsa-mcp-results.sarif), and [score JSON](./docs/examples/nsa-mcp-score.json) |
|
|
116
|
-
| Procurement and pilot packet | [Public guidance crosswalk](./docs/public-guidance-crosswalk.md), [procurement one-pager](./docs/procurement-one-pager.md), and [security due diligence](./docs/security-due-diligence.md) |
|
|
117
|
-
| Attack simulation output | [MCP Attack Simulator](./docs/mcp-attack-simulator.md) |
|
|
118
|
-
| MCP receipts | [Portable trust receipts](./docs/mcp-receipts.md) |
|
|
119
|
-
| Tool-call receipts | [Receipt standard](./docs/tool-call-receipts.md) for reproducible MCP evidence |
|
|
120
|
-
| Risk graph | [Server-to-evidence map](./docs/receipt-graph.md) for agent toolchain trust decisions |
|
|
121
|
-
| SARIF / Code Scanning output | [GitHub Code Scanning demo](./docs/code-scanning-demo.md) |
|
|
122
|
-
| Real MCP server evaluations | [MCP Server Safety Index](./docs/mcp-server-safety-index.md) |
|
|
123
|
-
| Reference reports | [Reference evaluations](./docs/reference-evaluations.md) |
|
|
124
|
-
| Maintainer and contributor proof | [MCP Observatory Contributors](./docs/contributor-recognition.md) |
|
|
125
|
-
| Open core boundary | [What is open vs. commercial](./docs/commercial-boundary.md) |
|
|
126
|
-
| Security disclosure path | [SECURITY.md](./SECURITY.md) |
|
|
127
|
-
|
|
128
|
-
Two more fast paths:
|
|
129
|
-
|
|
130
|
-
Cloned this repo? Start here: [`CLONED_THIS.md`](./CLONED_THIS.md). Want to contribute? Add one server to the [MCP Target Registry](./docs/target-registry.md), use the [Agent Task Pack](./docs/agent-tasks.md), and get public credit through [MCP Observatory Contributors](./docs/contributor-recognition.md).
|
|
131
|
-
|
|
132
|
-
AI coding agents, agentic workflows, and rough PRs are welcome. Use the [10x Agentic Growth Sprint](./docs/10x-agentic-growth-sprint.md), [Agentic Contributor Outreach](./docs/agentic-contributor-outreach.md), or open a `Contributor quest`, `Agentic contribution idea`, or [`Drop an MCP server, get a receipt`](./docs/drop-server-get-receipt.md) issue to suggest a target, prompt, docs fix, receipt, or `setup-ci --sarif` integration.
|
|
133
|
-
|
|
134
|
-
Add MCP CI and Code Scanning in one command:
|
|
61
|
+
Add CI + Code Scanning in one command:
|
|
135
62
|
|
|
136
63
|
```bash
|
|
137
64
|
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y my-mcp-server" --sarif --schedule weekly
|
|
138
65
|
```
|
|
139
66
|
|
|
140
|
-
Repair or upgrade an existing adoption kit:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
npx @kryptosai/mcp-observatory setup-ci --doctor --fix
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
Installing MCP Observatory in an MCP server project also prints the exact CI setup command. Projects can opt into automatic workflow creation during install with [`mcpObservatory.autoSetupCi`](./docs/automatic-ci-integration.md).
|
|
147
|
-
|
|
148
|
-
Normal `scan` and `test` runs include safe attack-readiness simulation by default. Use `--no-attack-sim` only when you want the older compatibility-only path.
|
|
149
|
-
|
|
150
|
-
Upload normalized MCP findings to GitHub Code Scanning when you want a security-native release gate:
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y my-mcp-server" --sarif
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
Add Observatory as an agent-accessible MCP server:
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
claude mcp add mcp-observatory -- npx -y @kryptosai/mcp-observatory serve
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Building an autonomous agent, OpenClaw-style productivity machine, MCP gateway, or bot runtime? Start with the [agent runtime quickstart](./docs/agent-runtime-quickstart.md), copy the [OpenClaw MCP reliability agent template](./docs/openclaw-agent-template/SOUL.md), or point your agent at [`llms.txt`](./llms.txt) and [`AGENTS.md`](./AGENTS.md).
|
|
163
|
-
|
|
164
|
-
Or test a server immediately:
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
npx @kryptosai/mcp-observatory test npx -y @modelcontextprotocol/server-everything
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Use it as a CLI, a GitHub Action, or an MCP server that lets your AI agent scan, test, record, replay, and verify other MCP servers autonomously.
|
|
171
|
-
|
|
172
|
-
<p align="center">
|
|
173
|
-
<img src="./docs/demo.svg" alt="MCP Observatory scan output" width="820">
|
|
174
|
-
</p>
|
|
175
|
-
|
|
176
|
-
[](https://glama.ai/mcp/servers/KryptosAI/mcp-observatory)
|
|
177
|
-
|
|
178
|
-
The Glama card is an external MCP directory scorecard. Treat it as directory-level social proof; click through for the underlying category details before using it as a production approval signal.
|
|
179
|
-
|
|
180
67
|
## Why MCP Observatory
|
|
181
68
|
|
|
182
69
|
MCP servers are becoming production dependencies. If agents rely on them, teams need a way to catch broken tools, unsafe schemas, schema drift, slow responses, and security footguns before those failures reach users.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface StoredToken {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
refreshToken?: string;
|
|
4
|
+
expiresAt?: number;
|
|
5
|
+
idToken?: string;
|
|
6
|
+
issuer: string;
|
|
7
|
+
clientId: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
org?: string;
|
|
10
|
+
sub?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function loadToken(): Promise<StoredToken | null>;
|
|
13
|
+
export declare function saveToken(token: StoredToken): Promise<void>;
|
|
14
|
+
export declare function clearToken(): Promise<void>;
|
|
15
|
+
export declare function hasValidToken(): boolean;
|
|
16
|
+
export declare function getAccessToken(): Promise<string | null>;
|
|
17
|
+
export declare function whoami(): Promise<{
|
|
18
|
+
email?: string;
|
|
19
|
+
org?: string;
|
|
20
|
+
authenticated: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
export declare function performDeviceFlow(issuer: string, clientId: string): Promise<StoredToken>;
|
package/dist/src/auth.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
const AUTH_DIR = path.join(homedir(), ".mcp-observatory");
|
|
5
|
+
const TOKEN_FILE = path.join(AUTH_DIR, "auth.json");
|
|
6
|
+
let _cachedToken = null;
|
|
7
|
+
function tokenExpired(token) {
|
|
8
|
+
if (!token.expiresAt)
|
|
9
|
+
return false;
|
|
10
|
+
return Date.now() >= token.expiresAt - 60_000;
|
|
11
|
+
}
|
|
12
|
+
export async function loadToken() {
|
|
13
|
+
if (_cachedToken && !tokenExpired(_cachedToken))
|
|
14
|
+
return _cachedToken;
|
|
15
|
+
try {
|
|
16
|
+
const raw = await readFile(TOKEN_FILE, "utf8");
|
|
17
|
+
_cachedToken = JSON.parse(raw);
|
|
18
|
+
if (tokenExpired(_cachedToken)) {
|
|
19
|
+
_cachedToken = null;
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return _cachedToken;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export async function saveToken(token) {
|
|
29
|
+
await mkdir(AUTH_DIR, { recursive: true });
|
|
30
|
+
await writeFile(TOKEN_FILE, JSON.stringify(token, null, 2), "utf8");
|
|
31
|
+
_cachedToken = token;
|
|
32
|
+
}
|
|
33
|
+
export async function clearToken() {
|
|
34
|
+
_cachedToken = null;
|
|
35
|
+
try {
|
|
36
|
+
await writeFile(TOKEN_FILE, "", "utf8");
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// file may not exist
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function hasValidToken() {
|
|
43
|
+
return _cachedToken !== null && !tokenExpired(_cachedToken);
|
|
44
|
+
}
|
|
45
|
+
export async function getAccessToken() {
|
|
46
|
+
const token = await loadToken();
|
|
47
|
+
if (!token || tokenExpired(token))
|
|
48
|
+
return null;
|
|
49
|
+
return token.accessToken;
|
|
50
|
+
}
|
|
51
|
+
export async function whoami() {
|
|
52
|
+
const token = await loadToken();
|
|
53
|
+
if (!token || tokenExpired(token))
|
|
54
|
+
return { authenticated: false };
|
|
55
|
+
return {
|
|
56
|
+
authenticated: true,
|
|
57
|
+
email: token.email,
|
|
58
|
+
org: token.org,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async function discoverOidc(issuer) {
|
|
62
|
+
const url = `${issuer.replace(/\/$/, "")}/.well-known/openid-configuration`;
|
|
63
|
+
const res = await fetch(url, { signal: AbortSignal.timeout(10_000) });
|
|
64
|
+
if (!res.ok)
|
|
65
|
+
throw new Error(`OIDC discovery failed (${res.status}): ${url}`);
|
|
66
|
+
return (await res.json());
|
|
67
|
+
}
|
|
68
|
+
export async function performDeviceFlow(issuer, clientId) {
|
|
69
|
+
const config = await discoverOidc(issuer);
|
|
70
|
+
if (!config.device_authorization_endpoint) {
|
|
71
|
+
throw new Error("The identity provider does not support device authorization flow.");
|
|
72
|
+
}
|
|
73
|
+
const deviceRes = await fetch(config.device_authorization_endpoint, {
|
|
74
|
+
method: "POST",
|
|
75
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
76
|
+
body: new URLSearchParams({ client_id: clientId, scope: "openid profile email" }),
|
|
77
|
+
signal: AbortSignal.timeout(15_000),
|
|
78
|
+
});
|
|
79
|
+
if (!deviceRes.ok) {
|
|
80
|
+
const text = await deviceRes.text();
|
|
81
|
+
throw new Error(`Device authorization failed (${deviceRes.status}): ${text}`);
|
|
82
|
+
}
|
|
83
|
+
const deviceData = (await deviceRes.json());
|
|
84
|
+
process.stdout.write(`\n Open this URL in your browser:\n`);
|
|
85
|
+
process.stdout.write(` ${deviceData.verification_uri}\n`);
|
|
86
|
+
process.stdout.write(`\n Enter this code: ${deviceData.user_code}\n\n`);
|
|
87
|
+
process.stdout.write(` Waiting for authorization...\n`);
|
|
88
|
+
const interval = (deviceData.interval ?? 5) * 1000;
|
|
89
|
+
const deadline = Date.now() + (deviceData.expires_in * 1000);
|
|
90
|
+
while (Date.now() < deadline) {
|
|
91
|
+
await new Promise(r => setTimeout(r, interval));
|
|
92
|
+
const tokenRes = await fetch(config.token_endpoint, {
|
|
93
|
+
method: "POST",
|
|
94
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
95
|
+
body: new URLSearchParams({
|
|
96
|
+
grant_type: "urn:ietf:params:oauth:grant-type:device_code",
|
|
97
|
+
device_code: deviceData.device_code,
|
|
98
|
+
client_id: clientId,
|
|
99
|
+
}),
|
|
100
|
+
signal: AbortSignal.timeout(10_000),
|
|
101
|
+
});
|
|
102
|
+
if (!tokenRes.ok) {
|
|
103
|
+
const err = (await tokenRes.json().catch(() => ({})));
|
|
104
|
+
if (err.error === "authorization_pending")
|
|
105
|
+
continue;
|
|
106
|
+
if (err.error === "slow_down") {
|
|
107
|
+
await new Promise(r => setTimeout(r, 5000));
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
throw new Error(`Token exchange failed (${tokenRes.status}): ${err.error ?? "unknown"}`);
|
|
111
|
+
}
|
|
112
|
+
const tokenData = (await tokenRes.json());
|
|
113
|
+
const token = {
|
|
114
|
+
accessToken: tokenData.access_token,
|
|
115
|
+
refreshToken: tokenData.refresh_token,
|
|
116
|
+
expiresAt: tokenData.expires_in ? Date.now() + (tokenData.expires_in * 1000) : undefined,
|
|
117
|
+
idToken: tokenData.id_token,
|
|
118
|
+
issuer,
|
|
119
|
+
clientId,
|
|
120
|
+
};
|
|
121
|
+
if (tokenData.id_token) {
|
|
122
|
+
try {
|
|
123
|
+
const parts = tokenData.id_token.split(".");
|
|
124
|
+
if (parts.length === 3) {
|
|
125
|
+
const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
|
|
126
|
+
token.email = typeof payload["email"] === "string" ? payload["email"] : undefined;
|
|
127
|
+
token.org = typeof payload["org"] === "string" ? payload["org"] : undefined;
|
|
128
|
+
token.sub = typeof payload["sub"] === "string" ? payload["sub"] : undefined;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// id_token parsing is best-effort
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
await saveToken(token);
|
|
136
|
+
return token;
|
|
137
|
+
}
|
|
138
|
+
throw new Error("Device authorization timed out. Please try again.");
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAcpD,IAAI,YAAY,GAAuB,IAAI,CAAC;AAE5C,SAAS,YAAY,CAAC,KAAkB;IACtC,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;QAC9C,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAkB;IAChD,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,YAAY,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,YAAY,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACnE,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;AACJ,CAAC;AASD,KAAK,UAAU,YAAY,CAAC,MAAc;IACxC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mCAAmC,CAAC;IAC5E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,QAAgB;IACtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,6BAA6B,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QACjF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAOzC,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,UAAU,CAAC,SAAS,MAAM,CAAC,CAAC;IACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE7D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,IAAI,eAAe,CAAC;gBACxB,UAAU,EAAE,8CAA8C;gBAC1D,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,SAAS,EAAE,QAAQ;aACpB,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;YAC5E,IAAI,GAAG,CAAC,KAAK,KAAK,uBAAuB;gBAAE,SAAS;YACpD,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5C,SAAS;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKvC,CAAC;QAEF,MAAM,KAAK,GAAgB;YACzB,WAAW,EAAE,SAAS,CAAC,YAAY;YACnC,YAAY,EAAE,SAAS,CAAC,aAAa;YACrC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACxF,OAAO,EAAE,SAAS,CAAC,QAAQ;YAC3B,MAAM;YACN,QAAQ;SACT,CAAC;QAEF,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;oBAC5G,KAAK,CAAC,KAAK,GAAG,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAClF,KAAK,CAAC,GAAG,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5E,KAAK,CAAC,GAAG,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACvE,CAAC"}
|
package/dist/src/cli.js
CHANGED
|
@@ -3,6 +3,7 @@ import { readFile, writeFile } from "node:fs/promises";
|
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { isCI } from "./ci.js";
|
|
5
5
|
import { ANSI, LOGO, c, getBinName, setNoColor, setQuiet, useColor } from "./commands/helpers.js";
|
|
6
|
+
import { registerDemoCommands } from "./commands/demo.js";
|
|
6
7
|
import { registerDiffCommands } from "./commands/diff.js";
|
|
7
8
|
import { registerLegacyCommands } from "./commands/legacy.js";
|
|
8
9
|
import { registerRecordReplayCommands } from "./commands/record-replay.js";
|
|
@@ -24,7 +25,7 @@ import { registerEnforceCommands } from "./commands/enforce.js";
|
|
|
24
25
|
import { registerReceiptCommands } from "./commands/receipt.js";
|
|
25
26
|
import { registerRiskGraphCommands } from "./commands/risk-graph.js";
|
|
26
27
|
import { registerSkillScanCommands } from "./commands/skill-scan.js";
|
|
27
|
-
import { DEFAULT_CLOUD_UPLOAD_ENDPOINT, printCloudInfo } from "./commercial.js";
|
|
28
|
+
import { DEFAULT_CLOUD_UPLOAD_ENDPOINT, printCloudInfo, getCloudAccessToken, cloudWhoami } from "./commercial.js";
|
|
28
29
|
import { runTarget } from "./index.js";
|
|
29
30
|
import { loadTelemetryConfig, collectUserIdentity, recordEvent, buildEvent, updateFeatureChain } from "./telemetry.js";
|
|
30
31
|
import { requireHttpUrl } from "./utils/url.js";
|
|
@@ -222,6 +223,7 @@ async function main() {
|
|
|
222
223
|
"",
|
|
223
224
|
` ${c(ANSI.bold, "Quick Start")}`,
|
|
224
225
|
"",
|
|
226
|
+
` ${c(ANSI.dim, "$")} ${c(ANSI.cyan, `${bin} demo`)} Interactive demo — scan your servers and get a grade`,
|
|
225
227
|
` ${c(ANSI.dim, "$")} ${c(ANSI.cyan, `${bin} test`)} ${c(ANSI.dim, "<cmd>")} Test a specific MCP server`,
|
|
226
228
|
` ${c(ANSI.dim, "$")} ${c(ANSI.cyan, `${bin} test --target`)} ${c(ANSI.dim, "<file>")} Test an HTTP or local target config`,
|
|
227
229
|
` ${c(ANSI.dim, "$")} ${c(ANSI.cyan, `${bin} scan`)} Check all your configured servers`,
|
|
@@ -246,6 +248,7 @@ async function main() {
|
|
|
246
248
|
// Register all command modules
|
|
247
249
|
registerScanCommands(program, bin);
|
|
248
250
|
registerTestCommands(program);
|
|
251
|
+
registerDemoCommands(program);
|
|
249
252
|
registerDiffCommands(program);
|
|
250
253
|
registerRecordReplayCommands(program, bin);
|
|
251
254
|
registerWatchCommands(program);
|
|
@@ -278,9 +281,9 @@ async function main() {
|
|
|
278
281
|
.option("--org <org>", "Customer or organization slug. Defaults to MCP_OBSERVATORY_ORG.")
|
|
279
282
|
.option("--endpoint <url>", "Hosted upload endpoint.", DEFAULT_CLOUD_UPLOAD_ENDPOINT)
|
|
280
283
|
.action(async (artifactPath, options) => {
|
|
281
|
-
const token =
|
|
284
|
+
const token = await getCloudAccessToken();
|
|
282
285
|
if (!token) {
|
|
283
|
-
throw new Error("MCP_OBSERVATORY_CLOUD_TOKEN
|
|
286
|
+
throw new Error("Authentication required. Set MCP_OBSERVATORY_CLOUD_TOKEN or run: mcp-observatory cloud login");
|
|
284
287
|
}
|
|
285
288
|
const org = options.org ?? process.env["MCP_OBSERVATORY_ORG"];
|
|
286
289
|
const artifact = validateRunArtifact(JSON.parse(await readFile(artifactPath, "utf8")));
|
|
@@ -305,6 +308,48 @@ async function main() {
|
|
|
305
308
|
org,
|
|
306
309
|
}));
|
|
307
310
|
});
|
|
311
|
+
cloudCmd
|
|
312
|
+
.command("login")
|
|
313
|
+
.description("Sign in to MCP Observatory Cloud via your identity provider.")
|
|
314
|
+
.option("--issuer <url>", "OIDC issuer URL. Defaults to MCP_OBSERVATORY_OIDC_ISSUER env var.")
|
|
315
|
+
.option("--client-id <id>", "OIDC client ID. Defaults to MCP_OBSERVATORY_OIDC_CLIENT_ID env var.")
|
|
316
|
+
.action(async (options) => {
|
|
317
|
+
const issuer = options.issuer ?? process.env["MCP_OBSERVATORY_OIDC_ISSUER"];
|
|
318
|
+
const clientId = options.clientId ?? process.env["MCP_OBSERVATORY_OIDC_CLIENT_ID"];
|
|
319
|
+
if (!issuer || !clientId) {
|
|
320
|
+
throw new Error("OIDC issuer and client ID are required. Set MCP_OBSERVATORY_OIDC_ISSUER and MCP_OBSERVATORY_OIDC_CLIENT_ID, or pass --issuer and --client-id.");
|
|
321
|
+
}
|
|
322
|
+
const { performDeviceFlow } = await import("./auth.js");
|
|
323
|
+
const token = await performDeviceFlow(issuer, clientId);
|
|
324
|
+
process.stdout.write(` ${c(ANSI.green, "✓")} Signed in as ${c(ANSI.bold, token.email ?? token.sub ?? "unknown")}\n`);
|
|
325
|
+
if (token.org) {
|
|
326
|
+
process.stdout.write(` Organization: ${c(ANSI.bold, token.org)}\n`);
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
cloudCmd
|
|
330
|
+
.command("logout")
|
|
331
|
+
.description("Sign out of MCP Observatory Cloud and remove stored credentials.")
|
|
332
|
+
.action(async () => {
|
|
333
|
+
const { clearToken } = await import("./auth.js");
|
|
334
|
+
await clearToken();
|
|
335
|
+
process.stdout.write(` ${c(ANSI.green, "✓")} Signed out. Local credentials removed.\n`);
|
|
336
|
+
});
|
|
337
|
+
cloudCmd
|
|
338
|
+
.command("whoami")
|
|
339
|
+
.description("Show the currently authenticated user and organization.")
|
|
340
|
+
.action(async () => {
|
|
341
|
+
const info = await cloudWhoami();
|
|
342
|
+
if (!info.authenticated) {
|
|
343
|
+
process.stdout.write(` ${c(ANSI.yellow, "Not signed in.")} Run ${c(ANSI.cyan, `${bin} cloud login`)} to sign in.\n`);
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
process.stdout.write(` ${c(ANSI.green, "✓")} Signed in\n`);
|
|
347
|
+
if (info.email)
|
|
348
|
+
process.stdout.write(` Email: ${c(ANSI.bold, info.email)}\n`);
|
|
349
|
+
if (info.org)
|
|
350
|
+
process.stdout.write(` Org: ${c(ANSI.bold, info.org)}\n`);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
308
353
|
// ── smithery ─────────────────────────────────────────────────────────
|
|
309
354
|
const smitheryCmd = program
|
|
310
355
|
.command("smithery")
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|