@prooflane/inspector-beta 0.1.0-beta.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 +146 -0
- package/bin/prooflane.mjs +75 -0
- package/dist/cli.mjs +17918 -0
- package/dist/server.mjs +13160 -0
- package/dist/ui/assets/index-Bm0mjeKI.css +1 -0
- package/dist/ui/assets/index-CqciLspw.js +69 -0
- package/dist/ui/index.html +19 -0
- package/dist/ui/teasers/ai-benchmarking.png +0 -0
- package/dist/ui/teasers/deployment-assurance.jpg +0 -0
- package/dist/ui/teasers/model-security.png +0 -0
- package/dist/ui/teasers/prooflane-lock.png +0 -0
- package/dist/ui/teasers/rag-assurance.jpg +0 -0
- package/dist/ui/teasers/security-red-team.png +0 -0
- package/package.json +54 -0
package/README.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# @prooflane/inspector-beta
|
|
2
|
+
|
|
3
|
+
The **Prooflane Inspector Beta** — a local MCP assurance console that runs on your
|
|
4
|
+
machine and connects to Prooflane's hosted intelligence.
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
npx @prooflane/inspector-beta@beta
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
This starts the console at `http://localhost:7357` and opens it in your browser.
|
|
11
|
+
Sign in with your Prooflane account, connect an MCP server, and go.
|
|
12
|
+
|
|
13
|
+
## What it does
|
|
14
|
+
|
|
15
|
+
- **MCP Inspector, Contracts, Prompts, Performance, HTTP** — run locally against
|
|
16
|
+
your MCP server with your own keys.
|
|
17
|
+
- **Security & RAG** — run **signed hosted-Intelligence tasks**: the Control Plane
|
|
18
|
+
issues a short-lived task, your local runner executes it with your own MCP/LLM
|
|
19
|
+
credentials, and only compact evidence is returned. *(Scale plan and above.)*
|
|
20
|
+
- **Governed Gates / CI** — capture and tag tests locally, compose their logical
|
|
21
|
+
references into a project-scoped Cloud Suite, review and approve its immutable
|
|
22
|
+
signed version, then create a Gate that pins that exact Suite and Policy. Run
|
|
23
|
+
the same approved signed Gate from the UI, another machine, or GitHub Actions
|
|
24
|
+
without copying a local Gate or Suite file:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx --yes @prooflane/cli@latest gate "$MCP_CONFIG" --gate production --github
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The signed Cloud manifest carries logical references only. The matching local
|
|
31
|
+
`.prooflane/tags.json`, MCP configuration, credentials, and raw evidence stay
|
|
32
|
+
on the Runner. Configure the project's GitHub OIDC trust in Settings, set
|
|
33
|
+
`PROOFLANE_PROJECT`, and grant the workflow `id-token: write` plus
|
|
34
|
+
`checks: write`; no long-lived Prooflane repository secret is required. The
|
|
35
|
+
Runner resolves and verifies the exact signed Gate, Suite, and Policy before
|
|
36
|
+
target access, writes a sanitized Step Summary and native Check linked to the
|
|
37
|
+
governed Run, and synchronizes only compact Run metadata. The Gate card's **Run connected
|
|
38
|
+
target** action records a `LOCAL_UI` Run. **Run on private Runner** dispatches
|
|
39
|
+
the same exact signed Gate graph to a registered customer-local worker; that
|
|
40
|
+
worker invokes the same generic executor/evaluator and returns only structured
|
|
41
|
+
progress plus compact evidence under one governed Run ID.
|
|
42
|
+
|
|
43
|
+
Execution errors never become passing facts. Performance with no completed
|
|
44
|
+
requests is not evaluated, and performance with zero successful requests is
|
|
45
|
+
always blocking before customer thresholds are considered.
|
|
46
|
+
|
|
47
|
+
A signature alone does not earn `CI READY`. Gate approval verifies that every
|
|
48
|
+
required control has a public Runner adapter and a pinned target surface; a
|
|
49
|
+
local readiness Run then proves the exact tagged tests/project assets and
|
|
50
|
+
live MCP capability fingerprints before any control call. Non-exact target
|
|
51
|
+
drift is classified and produces a reviewable DRAFT vN+1. The approved vN is
|
|
52
|
+
never mutated or silently weakened.
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
prooflane runner register "$MCP_CONFIG" --project "$PROOFLANE_PROJECT" --name production-private
|
|
56
|
+
prooflane runner start "$MCP_CONFIG"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The owner-only Runner credential stays local at
|
|
60
|
+
`~/.prooflane/remote-runner.json` by default. Signed jobs are bound to the
|
|
61
|
+
registered Runner and target fingerprint and expire if not claimed. MCP
|
|
62
|
+
configuration, credentials, prompts, documents, and tool inputs/outputs never
|
|
63
|
+
enter the job/event/Run envelopes. Online `LEASED_INTELLIGENCE` controls use
|
|
64
|
+
the same path on every surface: the private Control Plane selects one bounded
|
|
65
|
+
step, signs a five-minute one-use lease bound to the exact Run/Runner/artifact
|
|
66
|
+
graph and target/capability fingerprints, and the shared Core executor
|
|
67
|
+
verifies it before the local MCP call. Only compact outcome, timing,
|
|
68
|
+
counts/booleans, and a one-way output hash return; raw output stays local.
|
|
69
|
+
|
|
70
|
+
Online resolution also populates an owner-only immutable artifact cache.
|
|
71
|
+
`prooflane suites cache` inspects only sanitized Gate/Suite/Policy identities.
|
|
72
|
+
An exact reference can run without Control Plane access:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
prooflane gate "$MCP_CONFIG" --gate production@12 --offline --github
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Offline mode never accepts a symbolic alias. In GitHub it requires a
|
|
79
|
+
prior-online, token-bound CI continuity record and writes compact pending Run
|
|
80
|
+
sync only. A later authenticated online invocation replays it idempotently;
|
|
81
|
+
no raw evidence, credential, token, or target configuration enters the cache
|
|
82
|
+
or queue. Leased controls explicitly fail before target access offline because
|
|
83
|
+
fresh Control Plane issuance and authoritative nonce consumption are required.
|
|
84
|
+
|
|
85
|
+
Existing `.prooflane/suites/*.json` files are preserved through an explicit
|
|
86
|
+
migration review:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
prooflane suites status
|
|
90
|
+
prooflane suites diff
|
|
91
|
+
prooflane suites sync # preview only
|
|
92
|
+
prooflane suites sync --yes # Cloud DRAFTs only
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The Inspector's Gates screen shows the same **Review & Sync** plan. Neither
|
|
96
|
+
surface edits/deletes local files or silently approves anything. Full local
|
|
97
|
+
test bodies stay on the device; only a fingerprint, aggregate pillar counts,
|
|
98
|
+
and logical project-asset controls enter the Cloud DRAFT. A different existing
|
|
99
|
+
Cloud DRAFT is a conflict, not an overwrite. After separate Cloud review,
|
|
100
|
+
Policy pinning, and approval, use the unambiguous compatibility source:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
prooflane gate "$MCP_CONFIG" --suite-file .prooflane/suites/rag-nightly.json
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The approved signed Cloud manifest must match the exact file fingerprint
|
|
107
|
+
before target access. Unsupported private/legacy controls fail closed.
|
|
108
|
+
|
|
109
|
+
- **Governed learning** — after a completed Gate-bound Run records compact
|
|
110
|
+
REVIEW or BLOCK pillar findings, the Gates screen can approve an attributed
|
|
111
|
+
immutable disposition and request the next learning generation. The private
|
|
112
|
+
Control Plane may propose DRAFT regression, evolution, or suppression-
|
|
113
|
+
validation tests, each linked to the exact historical Run, finding,
|
|
114
|
+
disposition, Gate, Suite, Policy, target fingerprint, and evidence
|
|
115
|
+
fingerprint. Creator, reviewer, and approver are distinct identities.
|
|
116
|
+
Ambiguous lineage is skipped. Raw prompts, responses, documents, MCP/tool
|
|
117
|
+
traffic, credentials, provider routing, and local paths remain on the device;
|
|
118
|
+
learning is optional and cannot block Gate execution or Run synchronization.
|
|
119
|
+
|
|
120
|
+
The local Runner is designed to keep MCP connection configuration and provider
|
|
121
|
+
credentials on this device. Data handling for optional hosted workflows is
|
|
122
|
+
shown before those workflows are enabled.
|
|
123
|
+
|
|
124
|
+
## Execution boundary
|
|
125
|
+
|
|
126
|
+
The package includes the public generic local execution primitives and signed
|
|
127
|
+
Cloud Gate/Suite/Policy resolvers. It does not ship Prooflane's proprietary Security/RAG
|
|
128
|
+
catalogues or silently fall back to mutable repository-local Suite governance.
|
|
129
|
+
Provider credentials and MCP authentication remain process-local. Raw prompts,
|
|
130
|
+
responses, tool inputs, and credentials are not part of a Cloud Gate/Suite or
|
|
131
|
+
compact governed Run.
|
|
132
|
+
|
|
133
|
+
Runs and Deployment Assurance consume the same merged local/governed evidence
|
|
134
|
+
projection. Signed executions retain the exact Run ID and Gate/Suite/Policy
|
|
135
|
+
version IDs, versions, hashes, runner type, target fingerprint, and compact
|
|
136
|
+
evidence fingerprint. Pillar-specific detailed reports remain local; they do
|
|
137
|
+
not create a second cloud Gate history.
|
|
138
|
+
|
|
139
|
+
## Options
|
|
140
|
+
|
|
141
|
+
| Flag / env | Default |
|
|
142
|
+
|---|---|
|
|
143
|
+
| `--port` / `KAWACH_UI_PORT` | `7357` |
|
|
144
|
+
| `--control-plane` / `KAWACH_CONTROL_PLANE_URL` | production Control Plane (`https://api.prooflane.ai`) |
|
|
145
|
+
|
|
146
|
+
Requires **Node 24+**.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Prooflane Inspector launcher.
|
|
3
|
+
//
|
|
4
|
+
// Starts the bundled thin local server, pointed at the Prooflane
|
|
5
|
+
// Control Plane, and opens the console in your browser. The local runner holds
|
|
6
|
+
// your MCP credentials. Security/RAG Intelligence is leased from the Prooflane
|
|
7
|
+
// Control Plane and executed through bounded generic local primitives.
|
|
8
|
+
//
|
|
9
|
+
// npx @prooflane/inspector-beta@beta
|
|
10
|
+
// npx @prooflane/inspector-beta@beta --port 7400 --control-plane https://api.prooflane.ai
|
|
11
|
+
import { dirname, join } from "node:path";
|
|
12
|
+
import { fileURLToPath } from "node:url";
|
|
13
|
+
|
|
14
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
const dist = join(here, "..", "dist");
|
|
16
|
+
|
|
17
|
+
const args = process.argv.slice(2);
|
|
18
|
+
const flag = (name) => {
|
|
19
|
+
const i = args.indexOf(name);
|
|
20
|
+
return i >= 0 ? args[i + 1] : undefined;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// The same npm package serves both experiences: no command opens the Inspector;
|
|
24
|
+
// CLI commands execute headlessly and never start a browser or local web server.
|
|
25
|
+
const cliCommands = new Set(["gate", "runs", "auth", "perf", "debug", "doctor", "version", "sammy"]);
|
|
26
|
+
const cliMode = cliCommands.has(args[0]);
|
|
27
|
+
if (cliMode) {
|
|
28
|
+
await import(join(dist, "cli.mjs"));
|
|
29
|
+
} else {
|
|
30
|
+
|
|
31
|
+
// The public beta release uses production identity, entitlements, and hosted
|
|
32
|
+
// intelligence. Explicit --control-plane / KAWACH_CONTROL_PLANE_URL overrides
|
|
33
|
+
// remain available for operator-owned staging verification.
|
|
34
|
+
const PRODUCTION_CONTROL_PLANE = "https://api.prooflane.ai";
|
|
35
|
+
|
|
36
|
+
// Public Prooflane Auth0 SPA config (PKCE — these are public values, not secrets).
|
|
37
|
+
const AUTH0_DOMAIN = "auth.prooflane.ai";
|
|
38
|
+
const AUTH0_CLIENT_ID = "H00LlLQ4HFNUdkeDSgXxWpLmxqjUiU7W";
|
|
39
|
+
const AUTH0_AUDIENCE = "https://api.kawach.io";
|
|
40
|
+
|
|
41
|
+
const env = process.env;
|
|
42
|
+
env.KAWACH_CONTROL_PLANE_URL = flag("--control-plane") ?? env.KAWACH_CONTROL_PLANE_URL ?? PRODUCTION_CONTROL_PLANE;
|
|
43
|
+
env.KAWACH_UI_DIST = env.KAWACH_UI_DIST ?? join(dist, "ui");
|
|
44
|
+
env.KAWACH_UI_PORT = flag("--port") ?? env.KAWACH_UI_PORT ?? "7357";
|
|
45
|
+
// This is a public production package, never an internal compatibility build.
|
|
46
|
+
// Override any inherited value so a caller cannot re-enable local proprietary
|
|
47
|
+
// orchestration through an environment variable.
|
|
48
|
+
env.KAWACH_INTELLIGENCE_MODE = "hosted";
|
|
49
|
+
env.AUTH0_DOMAIN = env.AUTH0_DOMAIN ?? AUTH0_DOMAIN;
|
|
50
|
+
env.AUTH0_CLIENT_ID = env.AUTH0_CLIENT_ID ?? AUTH0_CLIENT_ID;
|
|
51
|
+
env.AUTH0_AUDIENCE = env.AUTH0_AUDIENCE ?? AUTH0_AUDIENCE;
|
|
52
|
+
|
|
53
|
+
const port = env.KAWACH_UI_PORT;
|
|
54
|
+
const url = `http://localhost:${port}`;
|
|
55
|
+
|
|
56
|
+
async function openBrowser() {
|
|
57
|
+
const { spawn } = await import("node:child_process");
|
|
58
|
+
const cmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "cmd" : "xdg-open";
|
|
59
|
+
const cmdArgs = process.platform === "win32" ? ["/c", "start", "", url] : [url];
|
|
60
|
+
try {
|
|
61
|
+
spawn(cmd, cmdArgs, { stdio: "ignore", detached: true }).unref();
|
|
62
|
+
} catch {
|
|
63
|
+
/* the URL is printed below regardless */
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
console.log(`\n Prooflane Inspector Beta → ${url}`);
|
|
68
|
+
console.log(` Control Plane: ${env.KAWACH_CONTROL_PLANE_URL}`);
|
|
69
|
+
console.log(" Intelligence mode: hosted relay + local private execution");
|
|
70
|
+
console.log(` Sign in with your Prooflane account to run Security / RAG and generate CI tokens.\n`);
|
|
71
|
+
|
|
72
|
+
// Start the bundled server (it binds 127.0.0.1:KAWACH_UI_PORT), then open the UI.
|
|
73
|
+
await import(join(dist, "server.mjs"));
|
|
74
|
+
setTimeout(() => void openBrowser(), 1200);
|
|
75
|
+
}
|