@shield-agent/kya 0.1.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/LICENSE +21 -0
- package/README.md +108 -0
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +207 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +111 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +143 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/eval-tool.d.ts +27 -0
- package/dist/commands/eval-tool.d.ts.map +1 -0
- package/dist/commands/eval-tool.js +87 -0
- package/dist/commands/eval-tool.js.map +1 -0
- package/dist/commands/init.d.ts +19 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +69 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/orr.d.ts +81 -0
- package/dist/commands/orr.d.ts.map +1 -0
- package/dist/commands/orr.js +468 -0
- package/dist/commands/orr.js.map +1 -0
- package/dist/commands/register-agent.d.ts +17 -0
- package/dist/commands/register-agent.d.ts.map +1 -0
- package/dist/commands/register-agent.js +39 -0
- package/dist/commands/register-agent.js.map +1 -0
- package/dist/commands/serve-mcp.d.ts +19 -0
- package/dist/commands/serve-mcp.d.ts.map +1 -0
- package/dist/commands/serve-mcp.js +40 -0
- package/dist/commands/serve-mcp.js.map +1 -0
- package/dist/config.d.ts +45 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +105 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +18 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +34 -0
- package/dist/errors.js.map +1 -0
- package/dist/hash.d.ts +5 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +25 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/http.d.ts +26 -0
- package/dist/mcp/http.d.ts.map +1 -0
- package/dist/mcp/http.js +118 -0
- package/dist/mcp/http.js.map +1 -0
- package/dist/mcp/protocol.d.ts +53 -0
- package/dist/mcp/protocol.d.ts.map +1 -0
- package/dist/mcp/protocol.js +282 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/stdio.d.ts +22 -0
- package/dist/mcp/stdio.d.ts.map +1 -0
- package/dist/mcp/stdio.js +67 -0
- package/dist/mcp/stdio.js.map +1 -0
- package/dist/offline-evaluate.d.ts +23 -0
- package/dist/offline-evaluate.d.ts.map +1 -0
- package/dist/offline-evaluate.js +68 -0
- package/dist/offline-evaluate.js.map +1 -0
- package/dist/parse-args.d.ts +14 -0
- package/dist/parse-args.d.ts.map +1 -0
- package/dist/parse-args.js +86 -0
- package/dist/parse-args.js.map +1 -0
- package/dist/sample-tools.d.ts +19 -0
- package/dist/sample-tools.d.ts.map +1 -0
- package/dist/sample-tools.js +37 -0
- package/dist/sample-tools.js.map +1 -0
- package/package.json +65 -0
- package/server.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-tool.d.ts","sourceRoot":"","sources":["../../src/commands/eval-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAEL,aAAa,EACb,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,EACD,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAoDzB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB,CAqBA;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAc9D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { buildEvaluateFromToolArgs, KyaHttpClient, } from "../client.js";
|
|
2
|
+
import { UsageError } from "../errors.js";
|
|
3
|
+
import { evaluateOffline } from "../offline-evaluate.js";
|
|
4
|
+
import { findSampleTool } from "../sample-tools.js";
|
|
5
|
+
import { flagBool, flagString } from "../parse-args.js";
|
|
6
|
+
export async function runEvalTool(config, input, client) {
|
|
7
|
+
if (!input.toolId?.trim()) {
|
|
8
|
+
throw new UsageError("eval-tool requires --tool-id");
|
|
9
|
+
}
|
|
10
|
+
const toolId = input.toolId.trim();
|
|
11
|
+
const sample = findSampleTool(toolId);
|
|
12
|
+
const irreversible = input.irreversible ?? sample?.irreversible ?? false;
|
|
13
|
+
const actionClass = sample?.actionClass;
|
|
14
|
+
const req = buildEvaluateFromToolArgs({
|
|
15
|
+
toolId,
|
|
16
|
+
args: input.args ?? {},
|
|
17
|
+
irreversible,
|
|
18
|
+
host: config.host,
|
|
19
|
+
agentId: config.agentId,
|
|
20
|
+
sessionRisk: input.sessionRisk,
|
|
21
|
+
approvalStatus: input.approvalStatus,
|
|
22
|
+
});
|
|
23
|
+
// Prefer sample actionClass for offline + HTTP when known
|
|
24
|
+
const request = actionClass !== undefined
|
|
25
|
+
? { ...req, actionClass, dataClass: sample?.dataClass }
|
|
26
|
+
: req;
|
|
27
|
+
if (input.offline || config.offline) {
|
|
28
|
+
const response = evaluateOffline(request, config.host);
|
|
29
|
+
return {
|
|
30
|
+
response,
|
|
31
|
+
toolId,
|
|
32
|
+
argsHash: response.argsHash ?? request.argsHash,
|
|
33
|
+
offline: true,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const http = client ??
|
|
37
|
+
new KyaHttpClient({
|
|
38
|
+
baseUrl: config.baseUrl,
|
|
39
|
+
apiKey: config.apiKey,
|
|
40
|
+
host: config.host,
|
|
41
|
+
agentId: config.agentId,
|
|
42
|
+
});
|
|
43
|
+
const response = await http.evaluatePolicy(request);
|
|
44
|
+
return {
|
|
45
|
+
response,
|
|
46
|
+
toolId,
|
|
47
|
+
argsHash: response.argsHash ?? request.argsHash,
|
|
48
|
+
offline: false,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export function evalToolInputFromArgs(parsed) {
|
|
52
|
+
const toolId = flagString(parsed.flags, "tool-id", "toolId");
|
|
53
|
+
if (!toolId) {
|
|
54
|
+
throw new UsageError("eval-tool requires --tool-id <id> [--args '{}'] [--irreversible] [--offline]");
|
|
55
|
+
}
|
|
56
|
+
const argsRaw = flagString(parsed.flags, "args");
|
|
57
|
+
let args = {};
|
|
58
|
+
if (argsRaw) {
|
|
59
|
+
try {
|
|
60
|
+
args = JSON.parse(argsRaw);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
throw new UsageError("--args must be valid JSON");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const irreversible = flagBool(parsed.flags, "irreversible");
|
|
67
|
+
const sessionRisk = flagString(parsed.flags, "session-risk", "risk");
|
|
68
|
+
const approvalStatus = flagString(parsed.flags, "approval-status");
|
|
69
|
+
const offline = flagBool(parsed.flags, "offline");
|
|
70
|
+
return { toolId, args, irreversible, sessionRisk, approvalStatus, offline };
|
|
71
|
+
}
|
|
72
|
+
export function formatEvalHuman(result) {
|
|
73
|
+
const r = result.response;
|
|
74
|
+
return [
|
|
75
|
+
`verdict: ${r.verdict}`,
|
|
76
|
+
`reasonCode: ${r.reasonCode}`,
|
|
77
|
+
r.toolId ? `toolId: ${r.toolId}` : `toolId: ${result.toolId}`,
|
|
78
|
+
result.argsHash ? `argsHash: ${result.argsHash}` : undefined,
|
|
79
|
+
r.localVerdict ? `localVerdict: ${r.localVerdict}` : undefined,
|
|
80
|
+
r.sessionRisk ? `sessionRisk: ${r.sessionRisk}` : undefined,
|
|
81
|
+
r.host ? `host: ${r.host}` : undefined,
|
|
82
|
+
result.offline ? `mode: offline-sample (not production PEP)` : undefined,
|
|
83
|
+
]
|
|
84
|
+
.filter(Boolean)
|
|
85
|
+
.join("\n");
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=eval-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-tool.js","sourceRoot":"","sources":["../../src/commands/eval-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Host } from "../config.js";
|
|
2
|
+
import type { ParsedArgs } from "../parse-args.js";
|
|
3
|
+
export interface InitResult {
|
|
4
|
+
readonly cwd: string;
|
|
5
|
+
readonly configPath: string;
|
|
6
|
+
readonly toolsPath: string;
|
|
7
|
+
readonly envExamplePath: string;
|
|
8
|
+
readonly created: readonly string[];
|
|
9
|
+
readonly skipped: readonly string[];
|
|
10
|
+
}
|
|
11
|
+
export interface InitOptions {
|
|
12
|
+
readonly cwd?: string;
|
|
13
|
+
readonly baseUrl?: string;
|
|
14
|
+
readonly host?: Host;
|
|
15
|
+
readonly force?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function runInit(options?: InitOptions): InitResult;
|
|
18
|
+
export declare function initFromArgs(parsed: ParsedArgs, cwd?: string): InitResult;
|
|
19
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,UAAU,CAyC7D;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,EAClB,GAAG,SAAgB,GAClB,UAAU,CAOZ"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { existsSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { mkdirSync } from "node:fs";
|
|
4
|
+
import { configDir, writeFileConfig } from "../config.js";
|
|
5
|
+
import { SAMPLE_TOOLS } from "../sample-tools.js";
|
|
6
|
+
import { flagString } from "../parse-args.js";
|
|
7
|
+
export function runInit(options = {}) {
|
|
8
|
+
const cwd = options.cwd ?? process.cwd();
|
|
9
|
+
const dir = configDir(cwd);
|
|
10
|
+
mkdirSync(dir, { recursive: true });
|
|
11
|
+
const created = [];
|
|
12
|
+
const skipped = [];
|
|
13
|
+
const configPath = join(dir, "config.json");
|
|
14
|
+
const toolsPath = join(dir, "tools.sample.json");
|
|
15
|
+
const envExamplePath = join(cwd, ".env.example");
|
|
16
|
+
const baseUrl = options.baseUrl ?? "http://127.0.0.1:8090";
|
|
17
|
+
const host = options.host ?? "ide";
|
|
18
|
+
if (!existsSync(configPath) || options.force) {
|
|
19
|
+
writeFileConfig(cwd, { baseUrl, host });
|
|
20
|
+
created.push(configPath);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
skipped.push(configPath);
|
|
24
|
+
}
|
|
25
|
+
if (!existsSync(toolsPath) || options.force) {
|
|
26
|
+
writeFileSync(toolsPath, `${JSON.stringify({ tools: SAMPLE_TOOLS, packsRequired: false }, null, 2)}\n`, "utf8");
|
|
27
|
+
created.push(toolsPath);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
skipped.push(toolsPath);
|
|
31
|
+
}
|
|
32
|
+
if (!existsSync(envExamplePath) || options.force) {
|
|
33
|
+
writeFileSync(envExamplePath, ENV_EXAMPLE, "utf8");
|
|
34
|
+
created.push(envExamplePath);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
skipped.push(envExamplePath);
|
|
38
|
+
}
|
|
39
|
+
return { cwd, configPath, toolsPath, envExamplePath, created, skipped };
|
|
40
|
+
}
|
|
41
|
+
export function initFromArgs(parsed, cwd = process.cwd()) {
|
|
42
|
+
const baseUrl = flagString(parsed.flags, "base-url");
|
|
43
|
+
const hostRaw = flagString(parsed.flags, "host");
|
|
44
|
+
const host = hostRaw === "runtime" || hostRaw === "ide" ? hostRaw : undefined;
|
|
45
|
+
const force = parsed.flags["force"] === true || parsed.flags["force"] === "true";
|
|
46
|
+
return runInit({ cwd, baseUrl, host, force });
|
|
47
|
+
}
|
|
48
|
+
const ENV_EXAMPLE = `# Shield KYA light install — copy to .env (never commit secrets)
|
|
49
|
+
# Docs: docs/guides/kya-light-install.md
|
|
50
|
+
|
|
51
|
+
# Control plane origin (hosted or local free console)
|
|
52
|
+
KYA_BASE_URL=http://127.0.0.1:8090
|
|
53
|
+
|
|
54
|
+
# API key when the plane requires auth (empty key → CLI fails closed)
|
|
55
|
+
KYA_API_KEY=
|
|
56
|
+
|
|
57
|
+
# Dual-plane host: ide (authoring) | runtime (production)
|
|
58
|
+
KYA_HOST=ide
|
|
59
|
+
|
|
60
|
+
# Filled by: npx @shield-agent/kya register-agent
|
|
61
|
+
# KYA_AGENT_ID=
|
|
62
|
+
|
|
63
|
+
# Local MCP gate port (serve-mcp)
|
|
64
|
+
KYA_MCP_PORT=3920
|
|
65
|
+
|
|
66
|
+
# Optional tenant label for local logs only (server binds tenant from auth)
|
|
67
|
+
# KYA_TENANT_HINT=
|
|
68
|
+
`;
|
|
69
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* kya orr run — Phase O1 read-only ORR board emitter.
|
|
3
|
+
* Reporting orchestrator only: not a second PEP; never mints principals or allows side effects.
|
|
4
|
+
*/
|
|
5
|
+
import type { ParsedArgs } from "../parse-args.js";
|
|
6
|
+
export type OrrRating = "green" | "amber" | "red";
|
|
7
|
+
export type OrrDisposition = "go" | "conditional" | "no_go";
|
|
8
|
+
export type OrrSeverity = "critical" | "high" | "medium" | "low" | "info";
|
|
9
|
+
export interface OrrFinding {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly category: string;
|
|
12
|
+
readonly severity: OrrSeverity;
|
|
13
|
+
readonly title: string;
|
|
14
|
+
readonly detail: string;
|
|
15
|
+
readonly evidence?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface OrrCategory {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly label: string;
|
|
20
|
+
readonly rating: OrrRating;
|
|
21
|
+
readonly tldr: string;
|
|
22
|
+
}
|
|
23
|
+
export interface OrrCoverageGap {
|
|
24
|
+
readonly adapter_id: string;
|
|
25
|
+
readonly reason: string;
|
|
26
|
+
}
|
|
27
|
+
export interface OrrReport {
|
|
28
|
+
readonly rubric_version: "0";
|
|
29
|
+
readonly generated_at: string;
|
|
30
|
+
readonly target: {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly path: string;
|
|
33
|
+
readonly commit_sha?: string;
|
|
34
|
+
readonly kind: "path" | "repo";
|
|
35
|
+
};
|
|
36
|
+
readonly scope: {
|
|
37
|
+
readonly description: string;
|
|
38
|
+
readonly disabled_categories: readonly string[];
|
|
39
|
+
readonly producers_requested: readonly string[];
|
|
40
|
+
};
|
|
41
|
+
readonly overall: OrrRating;
|
|
42
|
+
readonly disposition: OrrDisposition;
|
|
43
|
+
readonly primary_failure_mode: string;
|
|
44
|
+
readonly most_urgent_fix: string;
|
|
45
|
+
readonly categories: readonly OrrCategory[];
|
|
46
|
+
readonly scorecards: readonly {
|
|
47
|
+
readonly category: string;
|
|
48
|
+
readonly name: string;
|
|
49
|
+
readonly result: "pass" | "fail" | "partial" | "not_evaluated";
|
|
50
|
+
readonly hardness: "hard" | "soft";
|
|
51
|
+
readonly note?: string;
|
|
52
|
+
}[];
|
|
53
|
+
readonly findings: readonly OrrFinding[];
|
|
54
|
+
readonly coverage_gaps: readonly OrrCoverageGap[];
|
|
55
|
+
}
|
|
56
|
+
export interface OrrRunOptions {
|
|
57
|
+
readonly path: string;
|
|
58
|
+
readonly out: string;
|
|
59
|
+
readonly name?: string;
|
|
60
|
+
readonly rubric: string;
|
|
61
|
+
readonly disableCategories: readonly string[];
|
|
62
|
+
readonly formats: readonly ("json" | "md")[];
|
|
63
|
+
readonly commitSha?: string;
|
|
64
|
+
readonly producers: readonly string[];
|
|
65
|
+
readonly skipOptionalProducers: boolean;
|
|
66
|
+
readonly failOn?: "no_go" | "conditional";
|
|
67
|
+
readonly quiet: boolean;
|
|
68
|
+
readonly jsonStdout: boolean;
|
|
69
|
+
}
|
|
70
|
+
export declare function orrRunOptionsFromArgs(parsed: ParsedArgs): OrrRunOptions;
|
|
71
|
+
export interface OrrRunResult {
|
|
72
|
+
readonly report: OrrReport;
|
|
73
|
+
readonly reportJsonPath?: string;
|
|
74
|
+
readonly reportMdPath?: string;
|
|
75
|
+
readonly exitCode: number;
|
|
76
|
+
}
|
|
77
|
+
export declare function runOrr(options: OrrRunOptions): OrrRunResult;
|
|
78
|
+
/** SA first-party probes: evidence only; scanners never ALLOW. */
|
|
79
|
+
export declare function runSaFirstPartyProbes(root: string): OrrFinding[];
|
|
80
|
+
export declare function formatOrrMarkdown(report: OrrReport): string;
|
|
81
|
+
//# sourceMappingURL=orr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orr.d.ts","sourceRoot":"","sources":["../../src/commands/orr.ts"],"names":[],"mappings":"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"}
|