@shield-agent/kya 0.1.1 → 0.1.3
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/LIMITATIONS.md +9 -0
- package/README.md +5 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -2
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -2
- package/dist/client.js.map +1 -1
- package/dist/commands/dash.d.ts +11 -0
- package/dist/commands/dash.d.ts.map +1 -0
- package/dist/commands/dash.js +111 -0
- package/dist/commands/dash.js.map +1 -0
- package/dist/dash/dash.d.ts +31 -0
- package/dist/dash/dash.d.ts.map +1 -0
- package/dist/dash/dash.js +200 -0
- package/dist/dash/dash.js.map +1 -0
- package/dist/dash/entitlement.d.ts +35 -0
- package/dist/dash/entitlement.d.ts.map +1 -0
- package/dist/dash/entitlement.js +120 -0
- package/dist/dash/entitlement.js.map +1 -0
- package/dist/dash/input.d.ts +7 -0
- package/dist/dash/input.d.ts.map +1 -0
- package/dist/dash/input.js +36 -0
- package/dist/dash/input.js.map +1 -0
- package/dist/dash/render.d.ts +18 -0
- package/dist/dash/render.d.ts.map +1 -0
- package/dist/dash/render.js +81 -0
- package/dist/dash/render.js.map +1 -0
- package/dist/dash/screens/enterprise.d.ts +18 -0
- package/dist/dash/screens/enterprise.d.ts.map +1 -0
- package/dist/dash/screens/enterprise.js +47 -0
- package/dist/dash/screens/enterprise.js.map +1 -0
- package/dist/dash/screens/free.d.ts +42 -0
- package/dist/dash/screens/free.d.ts.map +1 -0
- package/dist/dash/screens/free.js +118 -0
- package/dist/dash/screens/free.js.map +1 -0
- package/dist/mcp/http.d.ts +2 -8
- package/dist/mcp/http.d.ts.map +1 -1
- package/dist/mcp/http.js +36 -3
- package/dist/mcp/http.js.map +1 -1
- package/dist/mcp/protocol.d.ts +1 -1
- package/dist/mcp/protocol.d.ts.map +1 -1
- package/dist/mcp/protocol.js +2 -1
- package/dist/mcp/protocol.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +4 -3
- package/server.json +4 -4
package/LIMITATIONS.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Known limitations
|
|
2
|
+
|
|
3
|
+
- Offline `eval-tool --offline` and `dash --once --offline` use a **sample** policy surface for demo. Production uses a real control plane (local free or hosted).
|
|
4
|
+
- Sole PEP is Shield KYA evaluate/approve path (`ALLOW` / `DENY` / `REQUIRE_APPROVE`). Scanners and ORR CLI are **evidence only**, not a second PEP.
|
|
5
|
+
- Not a model/content moderation product (use guardrails for dialog rails).
|
|
6
|
+
- Not a multi-language in-process runtime like MS Agent Governance Toolkit.
|
|
7
|
+
- Not general OPA replacement for infra policy.
|
|
8
|
+
- Enterprise multi-tenant density, private registries, ORR board ops, pin, and support are separate from the solo `npx` path.
|
|
9
|
+
- Growth unit economics = observe metrics (principals, evaluates, approvals) — not quality/speed OKRs.
|
package/README.md
CHANGED
|
@@ -26,6 +26,9 @@ npx @shield-agent/kya init
|
|
|
26
26
|
npx @shield-agent/kya register-agent --name solo-builder --version-hash dev-local
|
|
27
27
|
npx @shield-agent/kya eval-tool --tool-id org.sample.never.event --irreversible
|
|
28
28
|
npx @shield-agent/kya serve-mcp --stdio
|
|
29
|
+
|
|
30
|
+
# Terminal dashboard (free individual panes; --offline works without a key)
|
|
31
|
+
npx @shield-agent/kya dash --once --offline
|
|
29
32
|
```
|
|
30
33
|
|
|
31
34
|
Install hub: [https://shield-agent.com/install](https://shield-agent.com/install)
|
|
@@ -53,6 +56,7 @@ Tag sessions with `KYA_HOST=ide` or `KYA_HOST=runtime`. Same sole PEP either way
|
|
|
53
56
|
| `KYA_AGENT_ID` | After register | Agent principal id |
|
|
54
57
|
| `KYA_MCP_PORT` | No (default `3920`) | HTTP MCP listen port |
|
|
55
58
|
| `KYA_OFFLINE` | No | `1`/`true` for sample evaluate |
|
|
59
|
+
| `KYA_DASH_PLAN` | No | `enterprise` unlocks licensed TUI panes |
|
|
56
60
|
|
|
57
61
|
## MCP tools
|
|
58
62
|
|
|
@@ -62,7 +66,7 @@ Tag sessions with `KYA_HOST=ide` or `KYA_HOST=runtime`. Same sole PEP either way
|
|
|
62
66
|
| `kya.session_ingest` | Observe / raise-only risk |
|
|
63
67
|
| `kya.request_approval` | Open human gate — **does not** execute side effect |
|
|
64
68
|
|
|
65
|
-
MCP Registry: `server.json` + package `mcpName` `io.github.
|
|
69
|
+
MCP Registry: `server.json` + package `mcpName` `io.github.The-Pixel-Boys/shield-kya`.
|
|
66
70
|
|
|
67
71
|
```json
|
|
68
72
|
{
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* @shield-agent/kya — light install CLI
|
|
4
|
-
* Commands: init | register-agent | eval-tool | serve-mcp | orr run
|
|
4
|
+
* Commands: init | register-agent | eval-tool | serve-mcp | orr run | dash
|
|
5
5
|
* Fail-closed: empty KYA_API_KEY against auth plane → non-zero exit.
|
|
6
6
|
* Offline sample: eval-tool --offline (demo only; not production PEP).
|
|
7
7
|
*/
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAgEH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAQD,+FAA+F;AAC/F,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,KAAiB,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAiKjB"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* @shield-agent/kya — light install CLI
|
|
4
|
-
* Commands: init | register-agent | eval-tool | serve-mcp | orr run
|
|
4
|
+
* Commands: init | register-agent | eval-tool | serve-mcp | orr run | dash
|
|
5
5
|
* Fail-closed: empty KYA_API_KEY against auth plane → non-zero exit.
|
|
6
6
|
* Offline sample: eval-tool --offline (demo only; not production PEP).
|
|
7
7
|
*/
|
|
@@ -15,6 +15,7 @@ import { registerAgentInputFromArgs, runRegisterAgent, } from "./commands/regist
|
|
|
15
15
|
import { evalToolInputFromArgs, formatEvalHuman, runEvalTool, } from "./commands/eval-tool.js";
|
|
16
16
|
import { runServeMcp, serveMcpOptionsFromArgs, } from "./commands/serve-mcp.js";
|
|
17
17
|
import { orrRunOptionsFromArgs, runOrr, } from "./commands/orr.js";
|
|
18
|
+
import { runDash } from "./commands/dash.js";
|
|
18
19
|
const HELP = `Shield KYA light CLI — Know Your Agent (provider-agnostic)
|
|
19
20
|
|
|
20
21
|
Usage:
|
|
@@ -26,12 +27,15 @@ Commands:
|
|
|
26
27
|
eval-tool Policy evaluate (HTTP plane or --offline sample)
|
|
27
28
|
serve-mcp Local MCP gate (HTTP default; --stdio for hosts)
|
|
28
29
|
orr run Read-only ORR board (reporting only — not a second PEP)
|
|
30
|
+
dash Terminal dashboard (free individual panes; enterprise if licensed)
|
|
29
31
|
|
|
30
32
|
Options (shared):
|
|
31
33
|
--base-url <url> Control plane origin (or KYA_BASE_URL)
|
|
32
34
|
--api-key <key> API key (or KYA_API_KEY) — required for network commands
|
|
33
35
|
--host <ide|runtime> Dual-plane host (or KYA_HOST, default ide)
|
|
34
|
-
--offline Sample evaluate without network
|
|
36
|
+
--offline Sample evaluate / dash without network
|
|
37
|
+
--once dash: print one frame and exit (CI / pipes)
|
|
38
|
+
--pane <name> dash pane (home|policy|agents|approvals|sessions|orr|mcp|dashboard|…)
|
|
35
39
|
--json Machine-readable output
|
|
36
40
|
--help, -h Show help
|
|
37
41
|
|
|
@@ -42,6 +46,8 @@ Examples:
|
|
|
42
46
|
npx @shield-agent/kya register-agent --name solo-builder --version-hash dev-local
|
|
43
47
|
npx @shield-agent/kya serve-mcp --stdio
|
|
44
48
|
npx @shield-agent/kya orr run --path . --out ./orr-report --skip-optional-producers
|
|
49
|
+
npx @shield-agent/kya dash --once --offline
|
|
50
|
+
npx @shield-agent/kya dash --once --pane policy
|
|
45
51
|
|
|
46
52
|
Docs: https://shield-agent.com/install · docs/guides/kya-light-install.md
|
|
47
53
|
Doctrine: sole PEP is Shield; DENY is hard; missing APPROVED ⇒ no irreversible side effect.
|
|
@@ -165,6 +171,17 @@ export async function runCli(argv, io = defaultIo, env = process.env, cwd = proc
|
|
|
165
171
|
}
|
|
166
172
|
return result.exitCode;
|
|
167
173
|
}
|
|
174
|
+
case "dash": {
|
|
175
|
+
const config = resolveConfig({
|
|
176
|
+
cwd,
|
|
177
|
+
env,
|
|
178
|
+
flags: parsed.flags,
|
|
179
|
+
requireApiKey: false,
|
|
180
|
+
allowMissingApiKey: true,
|
|
181
|
+
offline: parsed.flags["offline"] === true || parsed.flags["offline"] === "true",
|
|
182
|
+
});
|
|
183
|
+
return await runDash(config, parsed, io, env);
|
|
184
|
+
}
|
|
168
185
|
default:
|
|
169
186
|
io.error(`Unknown command: ${parsed.command}`);
|
|
170
187
|
io.log(HELP);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,WAAW,EACX,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,MAAM,GACP,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AuthRequiredError, HttpError, KyaError } from "./errors.js";
|
|
2
2
|
import { computeArgsHash } from "./hash.js";
|
|
3
3
|
import { findSampleTool } from "./sample-tools.js";
|
|
4
|
+
import { CLI_VERSION } from "./version.js";
|
|
4
5
|
/**
|
|
5
6
|
* Minimal HTTP client for light CLI / MCP gate.
|
|
6
7
|
* Base URL is control-plane origin (e.g. http://127.0.0.1:8090).
|
|
@@ -82,7 +83,7 @@ export class KyaHttpClient {
|
|
|
82
83
|
const url = `${this.baseUrl}${path.startsWith("/") ? path : `/${path}`}`;
|
|
83
84
|
const headers = {
|
|
84
85
|
Accept: "application/json",
|
|
85
|
-
"User-Agent":
|
|
86
|
+
"User-Agent": `shield-agent-kya-cli/${CLI_VERSION}`,
|
|
86
87
|
...(options.headers ?? {}),
|
|
87
88
|
};
|
|
88
89
|
if (this.apiKey) {
|
|
@@ -93,7 +94,12 @@ export class KyaHttpClient {
|
|
|
93
94
|
headers["Content-Type"] = "application/json; charset=utf-8";
|
|
94
95
|
body = JSON.stringify(options.body);
|
|
95
96
|
}
|
|
96
|
-
const response = await this.fetchImpl(url, {
|
|
97
|
+
const response = await this.fetchImpl(url, {
|
|
98
|
+
method,
|
|
99
|
+
headers,
|
|
100
|
+
body,
|
|
101
|
+
signal: options.signal,
|
|
102
|
+
});
|
|
97
103
|
const text = await response.text();
|
|
98
104
|
const parsed = parseJsonSafe(text);
|
|
99
105
|
if (!response.ok) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "../config.js";
|
|
2
|
+
import type { ParsedArgs } from "../parse-args.js";
|
|
3
|
+
import { type DashPane } from "../dash/entitlement.js";
|
|
4
|
+
import { type DashIo } from "../dash/dash.js";
|
|
5
|
+
export declare function dashOptionsFromArgs(parsed: ParsedArgs): {
|
|
6
|
+
once: boolean;
|
|
7
|
+
offline: boolean;
|
|
8
|
+
pane: DashPane;
|
|
9
|
+
};
|
|
10
|
+
export declare function runDash(config: ResolvedConfig, parsed: ParsedArgs, io: DashIo, env: NodeJS.ProcessEnv): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=dash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dash.d.ts","sourceRoot":"","sources":["../../src/commands/dash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAkB1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAkBA;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAkFjB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { stdin as stdinFd, stdout as stdoutFd } from "node:process";
|
|
2
|
+
import { emitKeypressEvents } from "node:readline";
|
|
3
|
+
import { KyaHttpClient } from "../client.js";
|
|
4
|
+
import { AuthRequiredError } from "../errors.js";
|
|
5
|
+
import { flagBool, flagString } from "../parse-args.js";
|
|
6
|
+
import { renderDash } from "../dash/dash.js";
|
|
7
|
+
import { mapKey } from "../dash/input.js";
|
|
8
|
+
const PANES = [
|
|
9
|
+
"home",
|
|
10
|
+
"policy",
|
|
11
|
+
"agents",
|
|
12
|
+
"approvals",
|
|
13
|
+
"sessions",
|
|
14
|
+
"orr",
|
|
15
|
+
"mcp",
|
|
16
|
+
"dashboard",
|
|
17
|
+
"cases",
|
|
18
|
+
"metrics",
|
|
19
|
+
"edge",
|
|
20
|
+
"settings",
|
|
21
|
+
];
|
|
22
|
+
export function dashOptionsFromArgs(parsed) {
|
|
23
|
+
const onceRaw = parsed.flags["once"];
|
|
24
|
+
const stolenPane = typeof onceRaw === "string" && PANES.includes(onceRaw.toLowerCase())
|
|
25
|
+
? onceRaw.toLowerCase()
|
|
26
|
+
: undefined;
|
|
27
|
+
const paneRaw = (flagString(parsed.flags, "pane") ?? stolenPane ?? "home").toLowerCase();
|
|
28
|
+
const pane = PANES.includes(paneRaw) ? paneRaw : "home";
|
|
29
|
+
const once = flagBool(parsed.flags, "once") ||
|
|
30
|
+
parsed.positionals.includes("once") ||
|
|
31
|
+
stolenPane !== undefined ||
|
|
32
|
+
onceRaw === "";
|
|
33
|
+
return {
|
|
34
|
+
once,
|
|
35
|
+
offline: flagBool(parsed.flags, "offline") || parsed.positionals.includes("offline"),
|
|
36
|
+
pane,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export async function runDash(config, parsed, io, env) {
|
|
40
|
+
const opts = dashOptionsFromArgs(parsed);
|
|
41
|
+
const tty = io.isTty ?? Boolean(stdinFd.isTTY && stdoutFd.isTTY);
|
|
42
|
+
const once = opts.once || !tty;
|
|
43
|
+
let client;
|
|
44
|
+
if (!opts.offline && config.apiKey) {
|
|
45
|
+
client = new KyaHttpClient({
|
|
46
|
+
baseUrl: config.baseUrl,
|
|
47
|
+
apiKey: config.apiKey,
|
|
48
|
+
host: config.host,
|
|
49
|
+
agentId: config.agentId,
|
|
50
|
+
requireApiKey: true,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const fetchPlane = client
|
|
54
|
+
? async () => client.request("/api/v1/kya/entitlement", { signal: AbortSignal.timeout(5000) })
|
|
55
|
+
: undefined;
|
|
56
|
+
let pane = opts.pane;
|
|
57
|
+
let offline = opts.offline;
|
|
58
|
+
const paint = async () => {
|
|
59
|
+
const snap = await renderDash({ ...config, offline }, { once: true, offline, pane, client, fetchPlaneEntitlement: fetchPlane }, env);
|
|
60
|
+
io.log(snap.frame);
|
|
61
|
+
return snap;
|
|
62
|
+
};
|
|
63
|
+
if (once) {
|
|
64
|
+
await paint();
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
await paint();
|
|
68
|
+
emitKeypressEvents(stdinFd);
|
|
69
|
+
stdinFd.setRawMode?.(true);
|
|
70
|
+
stdinFd.resume();
|
|
71
|
+
return await new Promise((resolve) => {
|
|
72
|
+
let painting = false;
|
|
73
|
+
const onKey = (str, key) => {
|
|
74
|
+
const raw = key?.ctrl && key.name === "c" ? "\u0003" : (str ?? key?.name ?? "");
|
|
75
|
+
const action = mapKey(raw);
|
|
76
|
+
if (action.type === "quit") {
|
|
77
|
+
cleanup();
|
|
78
|
+
resolve(0);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (action.type === "help") {
|
|
82
|
+
io.log("1-7 free panes · d dashboard · c cases · m metrics · e edge · s settings · o offline · q quit");
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (action.type === "noop" || painting)
|
|
86
|
+
return;
|
|
87
|
+
if (action.type === "offline")
|
|
88
|
+
offline = !offline;
|
|
89
|
+
else if (action.type === "pane" && action.pane)
|
|
90
|
+
pane = action.pane;
|
|
91
|
+
painting = true;
|
|
92
|
+
void paint()
|
|
93
|
+
.catch((err) => {
|
|
94
|
+
if (err instanceof AuthRequiredError)
|
|
95
|
+
io.error(err.message);
|
|
96
|
+
else
|
|
97
|
+
io.error(err instanceof Error ? err.message : String(err));
|
|
98
|
+
})
|
|
99
|
+
.finally(() => {
|
|
100
|
+
painting = false;
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
const cleanup = () => {
|
|
104
|
+
stdinFd.setRawMode?.(false);
|
|
105
|
+
stdinFd.off("keypress", onKey);
|
|
106
|
+
stdinFd.pause();
|
|
107
|
+
};
|
|
108
|
+
stdinFd.on("keypress", onKey);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=dash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dash.js","sourceRoot":"","sources":["../../src/commands/dash.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "../config.js";
|
|
2
|
+
import { KyaHttpClient, type PolicyEvaluateResponse } from "../client.js";
|
|
3
|
+
import { type DashPane, type Entitlement } from "./entitlement.js";
|
|
4
|
+
export declare const DASH_VERSION: string;
|
|
5
|
+
export interface DashIo {
|
|
6
|
+
readonly log: (msg: string) => void;
|
|
7
|
+
readonly error: (msg: string) => void;
|
|
8
|
+
readonly isTty?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface DashOptions {
|
|
11
|
+
readonly once: boolean;
|
|
12
|
+
readonly offline: boolean;
|
|
13
|
+
readonly pane: DashPane;
|
|
14
|
+
readonly client?: KyaHttpClient;
|
|
15
|
+
readonly fetchPlaneEntitlement?: () => Promise<{
|
|
16
|
+
plan?: string;
|
|
17
|
+
features?: string[];
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
export interface DashSnapshot {
|
|
21
|
+
readonly frame: string;
|
|
22
|
+
readonly plan: Entitlement["plan"];
|
|
23
|
+
readonly pane: DashPane;
|
|
24
|
+
}
|
|
25
|
+
export declare function renderDash(config: ResolvedConfig, options: DashOptions, env?: NodeJS.ProcessEnv): Promise<DashSnapshot>;
|
|
26
|
+
/** Offline sample used by tests — production PEP is HTTP. */
|
|
27
|
+
export declare function offlinePolicyPair(): {
|
|
28
|
+
deny: PolicyEvaluateResponse;
|
|
29
|
+
requireApprove: PolicyEvaluateResponse;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=dash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dash.d.ts","sourceRoot":"","sources":["../../src/dash/dash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAGjB,MAAM,kBAAkB,CAAC;AAuB1B,eAAO,MAAM,YAAY,QAAc,CAAC;AAExC,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,WAAW,EACpB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,YAAY,CAAC,CAsBvB;AA4KD,6DAA6D;AAC7D,wBAAgB,iBAAiB,IAAI;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,cAAc,EAAE,sBAAsB,CAAC;CACxC,CAaA"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { evaluateOffline } from "../offline-evaluate.js";
|
|
2
|
+
import { CLI_VERSION } from "../version.js";
|
|
3
|
+
import { paneAllowed, resolveEntitlement, } from "./entitlement.js";
|
|
4
|
+
import { assertNoSecrets, frame } from "./render.js";
|
|
5
|
+
import { agentsLiveBody, agentsOfflineBody, approvalsLiveBody, homeBody, mcpBody, needsPlaneBody, orrBody, policyLiveBody, policyOfflineBody, sessionsLiveBody, } from "./screens/free.js";
|
|
6
|
+
import { casesBody, dashboardBody, edgeBody, metricsBody, settingsBody, } from "./screens/enterprise.js";
|
|
7
|
+
import { lockedPane } from "./render.js";
|
|
8
|
+
export const DASH_VERSION = CLI_VERSION;
|
|
9
|
+
export async function renderDash(config, options, env = process.env) {
|
|
10
|
+
const plane = options.fetchPlaneEntitlement
|
|
11
|
+
? await options.fetchPlaneEntitlement().catch(() => undefined)
|
|
12
|
+
: undefined;
|
|
13
|
+
const ent = resolveEntitlement({ env, cwd: config.cwd, plane });
|
|
14
|
+
const offline = options.offline || config.offline;
|
|
15
|
+
const pane = options.pane;
|
|
16
|
+
const hasKey = Boolean(config.apiKey && config.apiKey.trim());
|
|
17
|
+
const body = await bodyFor(config, { ...options, offline }, ent, pane, hasKey);
|
|
18
|
+
const status = {
|
|
19
|
+
plan: ent.plan === "enterprise" ? "ENTERPRISE" : "FREE",
|
|
20
|
+
host: config.host,
|
|
21
|
+
plane: offline ? "offline" : config.baseUrl || "unset",
|
|
22
|
+
pane,
|
|
23
|
+
};
|
|
24
|
+
const text = frame(status, ent, body);
|
|
25
|
+
assertNoSecrets(text);
|
|
26
|
+
if (config.apiKey && config.apiKey.length >= 8 && text.includes(config.apiKey)) {
|
|
27
|
+
throw new Error("dashboard frame leaked api key");
|
|
28
|
+
}
|
|
29
|
+
return { frame: text, plan: ent.plan, pane };
|
|
30
|
+
}
|
|
31
|
+
async function bodyFor(config, options, ent, pane, hasKey) {
|
|
32
|
+
if (!paneAllowed(ent, pane))
|
|
33
|
+
return lockedPane(pane);
|
|
34
|
+
const live = !options.offline && hasKey && Boolean(options.client);
|
|
35
|
+
switch (pane) {
|
|
36
|
+
case "home":
|
|
37
|
+
return homeBody({
|
|
38
|
+
version: DASH_VERSION,
|
|
39
|
+
offline: options.offline,
|
|
40
|
+
hasApiKey: hasKey,
|
|
41
|
+
baseUrl: config.baseUrl,
|
|
42
|
+
agentId: config.agentId,
|
|
43
|
+
});
|
|
44
|
+
case "policy":
|
|
45
|
+
if (options.offline)
|
|
46
|
+
return policyOfflineBody();
|
|
47
|
+
if (!live)
|
|
48
|
+
return needsPlaneBody("policy");
|
|
49
|
+
return policyLiveBody(await sampleLiveEvals(options.client));
|
|
50
|
+
case "agents":
|
|
51
|
+
if (!live)
|
|
52
|
+
return agentsOfflineBody(config.agentId);
|
|
53
|
+
return agentsLiveBody(await loadAgents(options.client, config.agentId));
|
|
54
|
+
case "approvals":
|
|
55
|
+
if (!live)
|
|
56
|
+
return needsPlaneBody("approvals");
|
|
57
|
+
return approvalsLiveBody(await loadApprovals(options.client));
|
|
58
|
+
case "sessions":
|
|
59
|
+
if (!live)
|
|
60
|
+
return needsPlaneBody("sessions");
|
|
61
|
+
try {
|
|
62
|
+
return sessionsLiveBody(await loadSessions(options.client));
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return ["Could not load sessions from the plane."];
|
|
66
|
+
}
|
|
67
|
+
case "orr":
|
|
68
|
+
return orrBody();
|
|
69
|
+
case "mcp":
|
|
70
|
+
return mcpBody({ host: config.host, hasApiKey: hasKey });
|
|
71
|
+
case "dashboard":
|
|
72
|
+
if (!live)
|
|
73
|
+
return needsPlaneBody("dashboard");
|
|
74
|
+
return dashboardBody(await loadDashboard(options.client));
|
|
75
|
+
case "cases":
|
|
76
|
+
if (!live)
|
|
77
|
+
return needsPlaneBody("cases");
|
|
78
|
+
return loadCases(options.client);
|
|
79
|
+
case "metrics":
|
|
80
|
+
if (!live)
|
|
81
|
+
return needsPlaneBody("metrics");
|
|
82
|
+
return metricsBody(await loadMetrics(options.client));
|
|
83
|
+
case "edge":
|
|
84
|
+
if (!live)
|
|
85
|
+
return needsPlaneBody("edge");
|
|
86
|
+
return edgeBody(await loadEdge(options.client));
|
|
87
|
+
case "settings":
|
|
88
|
+
if (!live)
|
|
89
|
+
return needsPlaneBody("settings");
|
|
90
|
+
return settingsBody([
|
|
91
|
+
"API keys / team / SSO / billing: use the web console for mutations; TUI is read-first.",
|
|
92
|
+
]);
|
|
93
|
+
default:
|
|
94
|
+
return [`unknown pane: ${String(pane)}`];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function sampleLiveEvals(client) {
|
|
98
|
+
const deny = await client.evaluatePolicy({
|
|
99
|
+
toolId: "org.sample.never.event",
|
|
100
|
+
irreversible: true,
|
|
101
|
+
});
|
|
102
|
+
const ra = await client.evaluatePolicy({
|
|
103
|
+
toolId: "org.sample.data.write",
|
|
104
|
+
irreversible: true,
|
|
105
|
+
});
|
|
106
|
+
return [deny, ra];
|
|
107
|
+
}
|
|
108
|
+
async function loadAgents(client, agentId) {
|
|
109
|
+
if (!agentId)
|
|
110
|
+
return [];
|
|
111
|
+
try {
|
|
112
|
+
const a = await client.request(`/api/v1/kya/agents/${agentId}`);
|
|
113
|
+
return [{ id: a.id, name: a.name, status: a.status }];
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return [{ id: agentId, name: "(unreachable)", status: "?" }];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async function loadApprovals(client) {
|
|
120
|
+
const rows = await client.request("/api/v1/kya/approvals");
|
|
121
|
+
return Array.isArray(rows) ? rows : [];
|
|
122
|
+
}
|
|
123
|
+
async function loadSessions(client) {
|
|
124
|
+
try {
|
|
125
|
+
const rows = await client.request("/api/v1/kya/sessions");
|
|
126
|
+
return (Array.isArray(rows) ? rows : []).map((s) => ({
|
|
127
|
+
id: s.id,
|
|
128
|
+
risk: s.riskLevel,
|
|
129
|
+
host: s.host,
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
throw new Error("sessions_unavailable");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async function loadDashboard(client) {
|
|
137
|
+
const [approvals, metrics] = await Promise.all([
|
|
138
|
+
loadApprovals(client).catch(() => []),
|
|
139
|
+
loadMetrics(client),
|
|
140
|
+
]);
|
|
141
|
+
const pending = approvals.filter((a) => /pending/i.test(a.status)).length;
|
|
142
|
+
return {
|
|
143
|
+
pendingApprovals: pending,
|
|
144
|
+
agentCount: Number(metrics["agentCount"] ?? Number.NaN),
|
|
145
|
+
policyDeny: Number(metrics["policyDeny"] ?? 0),
|
|
146
|
+
approveRequired: Number(metrics["approveRequired"] ?? 0),
|
|
147
|
+
approveGranted: Number(metrics["approveGranted"] ?? 0),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
async function loadCases(client) {
|
|
151
|
+
try {
|
|
152
|
+
const rows = await client.request("/api/v1/kya/cases");
|
|
153
|
+
if (!Array.isArray(rows)) {
|
|
154
|
+
return [
|
|
155
|
+
"Cases list is not available on this plane.",
|
|
156
|
+
"Use the web console /app/kya/cases (observational — not a PEP).",
|
|
157
|
+
];
|
|
158
|
+
}
|
|
159
|
+
return casesBody(rows);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
return [
|
|
163
|
+
"GET /api/v1/kya/cases is not on this plane yet.",
|
|
164
|
+
"Use the web console /app/kya/cases. Observational only — does not approve submit.",
|
|
165
|
+
];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async function loadMetrics(client) {
|
|
169
|
+
try {
|
|
170
|
+
const m = await client.request("/api/v1/kya/metrics");
|
|
171
|
+
return m && typeof m === "object" ? m : {};
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return { error: "metrics unavailable" };
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async function loadEdge(client) {
|
|
178
|
+
try {
|
|
179
|
+
return await client.request("/api/v1/kya/edge");
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return { error: "edge status unavailable" };
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** Offline sample used by tests — production PEP is HTTP. */
|
|
186
|
+
export function offlinePolicyPair() {
|
|
187
|
+
return {
|
|
188
|
+
deny: evaluateOffline({
|
|
189
|
+
toolId: "org.sample.never.event",
|
|
190
|
+
irreversible: true,
|
|
191
|
+
env: { host: "ide" },
|
|
192
|
+
}),
|
|
193
|
+
requireApprove: evaluateOffline({
|
|
194
|
+
toolId: "org.sample.data.write",
|
|
195
|
+
irreversible: true,
|
|
196
|
+
env: { host: "ide" },
|
|
197
|
+
}),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=dash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dash.js","sourceRoot":"","sources":["../../src/dash/dash.ts"],"names":[],"mappings":"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"}
|