@shield-agent/kya 0.11.0 → 0.13.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/.mcp.json +1 -1
- package/README.md +17 -3
- package/amp/settings.example.json +1 -1
- package/claude/claude_desktop_config.example.json +1 -1
- package/cline/cline_mcp_settings.example.json +1 -1
- package/copilot/mcp-config.example.json +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +80 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/connect.d.ts +14 -2
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +84 -31
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/gate-serve.d.ts +23 -0
- package/dist/commands/gate-serve.d.ts.map +1 -0
- package/dist/commands/gate-serve.js +93 -0
- package/dist/commands/gate-serve.js.map +1 -0
- package/dist/commands/gate.d.ts +85 -0
- package/dist/commands/gate.d.ts.map +1 -0
- package/dist/commands/gate.js +268 -0
- package/dist/commands/gate.js.map +1 -0
- package/dist/commands/stop.d.ts +3 -0
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +34 -0
- package/dist/commands/stop.js.map +1 -1
- package/dist/gate/binary.d.ts +49 -0
- package/dist/gate/binary.d.ts.map +1 -0
- package/dist/gate/binary.js +129 -0
- package/dist/gate/binary.js.map +1 -0
- package/dist/gate/config-gen.d.ts +24 -0
- package/dist/gate/config-gen.d.ts.map +1 -0
- package/dist/gate/config-gen.js +146 -0
- package/dist/gate/config-gen.js.map +1 -0
- package/dist/gate/config.d.ts +39 -0
- package/dist/gate/config.d.ts.map +1 -0
- package/dist/gate/config.js +177 -0
- package/dist/gate/config.js.map +1 -0
- package/dist/gate/daemon.d.ts +38 -0
- package/dist/gate/daemon.d.ts.map +1 -0
- package/dist/gate/daemon.js +117 -0
- package/dist/gate/daemon.js.map +1 -0
- package/dist/gate/otlp-decode.d.ts +21 -0
- package/dist/gate/otlp-decode.d.ts.map +1 -0
- package/dist/gate/otlp-decode.js +268 -0
- package/dist/gate/otlp-decode.js.map +1 -0
- package/dist/gate/otlp-receiver.d.ts +35 -0
- package/dist/gate/otlp-receiver.d.ts.map +1 -0
- package/dist/gate/otlp-receiver.js +186 -0
- package/dist/gate/otlp-receiver.js.map +1 -0
- package/dist/mcp-servers.d.ts +8 -0
- package/dist/mcp-servers.d.ts.map +1 -1
- package/dist/mcp-servers.js +15 -0
- package/dist/mcp-servers.js.map +1 -1
- package/dist/sdk/a2a.d.ts +27 -0
- package/dist/sdk/a2a.d.ts.map +1 -0
- package/dist/sdk/a2a.js +33 -0
- package/dist/sdk/a2a.js.map +1 -0
- package/dist/sdk/adapters/claude-agent.d.ts +16 -0
- package/dist/sdk/adapters/claude-agent.d.ts.map +1 -0
- package/dist/sdk/adapters/claude-agent.js +24 -0
- package/dist/sdk/adapters/claude-agent.js.map +1 -0
- package/dist/sdk/adapters/langgraph.d.ts +14 -0
- package/dist/sdk/adapters/langgraph.d.ts.map +1 -0
- package/dist/sdk/adapters/langgraph.js +19 -0
- package/dist/sdk/adapters/langgraph.js.map +1 -0
- package/dist/sdk/adapters/mastra.d.ts +14 -0
- package/dist/sdk/adapters/mastra.d.ts.map +1 -0
- package/dist/sdk/adapters/mastra.js +19 -0
- package/dist/sdk/adapters/mastra.js.map +1 -0
- package/dist/sdk/adapters/openai-agents.d.ts +17 -0
- package/dist/sdk/adapters/openai-agents.d.ts.map +1 -0
- package/dist/sdk/adapters/openai-agents.js +32 -0
- package/dist/sdk/adapters/openai-agents.js.map +1 -0
- package/dist/sdk/adapters/vercel-ai.d.ts +18 -0
- package/dist/sdk/adapters/vercel-ai.d.ts.map +1 -0
- package/dist/sdk/adapters/vercel-ai.js +20 -0
- package/dist/sdk/adapters/vercel-ai.js.map +1 -0
- package/dist/sdk/govern.d.ts +52 -0
- package/dist/sdk/govern.d.ts.map +1 -0
- package/dist/sdk/govern.js +95 -0
- package/dist/sdk/govern.js.map +1 -0
- package/dist/sdk/index.d.ts +14 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +13 -0
- package/dist/sdk/index.js.map +1 -0
- package/droid/README.md +1 -1
- package/droid/mcp.example.json +1 -1
- package/gemini/settings.example.json +1 -1
- package/grok/README.md +1 -1
- package/kilo/kilo.example.json +1 -1
- package/kimi/mcp.example.json +1 -1
- package/kiro/mcp.example.json +1 -1
- package/manifest.json +1 -1
- package/mastracode/mcp.example.json +1 -1
- package/mcp.json +1 -1
- package/openai/codex.config.example.toml +1 -1
- package/opencode/opencode.example.json +1 -1
- package/package.json +5 -1
- package/qwen/settings.example.json +1 -1
- package/server.json +2 -2
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-process governance shim: evaluate a tool call through the same path
|
|
3
|
+
* `kya wrap` uses (offline sample evaluate by default — no network, no hosted
|
|
4
|
+
* plane required), record the trail event, then ALLOW/REQUIRE_APPROVE run the
|
|
5
|
+
* function while DENY throws KyaDeniedError without running it.
|
|
6
|
+
*
|
|
7
|
+
* Importing this module starts nothing: config resolves lazily on first call.
|
|
8
|
+
*
|
|
9
|
+
* Deliberate coupling: the trail write is fail-closed — a governance shim
|
|
10
|
+
* where the audit record cannot be written does not run the action.
|
|
11
|
+
*/
|
|
12
|
+
import type { ResolvedConfig } from "../config.js";
|
|
13
|
+
import { KyaError } from "../errors.js";
|
|
14
|
+
import { type EvalToolResult } from "../commands/eval-tool.js";
|
|
15
|
+
export declare class KyaDeniedError extends KyaError {
|
|
16
|
+
readonly verdict: string;
|
|
17
|
+
readonly reasonCode: string;
|
|
18
|
+
readonly toolId: string;
|
|
19
|
+
constructor(input: {
|
|
20
|
+
verdict: string;
|
|
21
|
+
reasonCode: string;
|
|
22
|
+
toolId: string;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export interface GovernanceOptions {
|
|
26
|
+
/** MCP server id; toolId becomes `<server>__<toolId>` so the taxonomy lights up. */
|
|
27
|
+
readonly server?: string;
|
|
28
|
+
readonly irreversible?: boolean;
|
|
29
|
+
/** Explicit config (hosted plane honored). Default: lazy offline resolve. */
|
|
30
|
+
readonly config?: ResolvedConfig;
|
|
31
|
+
}
|
|
32
|
+
export interface GovernedOptions<TArgs, TResult> extends GovernanceOptions {
|
|
33
|
+
readonly toolId: string;
|
|
34
|
+
readonly fn: (args: TArgs) => Promise<TResult> | TResult;
|
|
35
|
+
}
|
|
36
|
+
/** `<server>__<name>` when a server is given, else the bare name. */
|
|
37
|
+
export declare function deriveSdkToolId(name: string, server?: string): string;
|
|
38
|
+
export declare function resolveSdkConfig(config?: ResolvedConfig): ResolvedConfig;
|
|
39
|
+
/** Trail parity with wrap: verdict/mode/reasonCode + change fields when derivable. */
|
|
40
|
+
export declare function recordSdkTrail(config: ResolvedConfig, evalResult: EvalToolResult, args: unknown, env?: NodeJS.ProcessEnv): void;
|
|
41
|
+
export interface GateCheckOptions extends GovernanceOptions {
|
|
42
|
+
readonly toolId: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The evaluate + trail half of governed(), constructed once per wrapped tool
|
|
46
|
+
* so the lazy config cache hits across calls. Adapters whose execution path
|
|
47
|
+
* closes over per-call context use this directly and invoke the framework
|
|
48
|
+
* callable themselves after the check passes.
|
|
49
|
+
*/
|
|
50
|
+
export declare function createGateCheck(options: GateCheckOptions): (args: unknown) => Promise<void>;
|
|
51
|
+
export declare function governed<TArgs, TResult>(options: GovernedOptions<TArgs, TResult>): (args: TArgs) => Promise<TResult>;
|
|
52
|
+
//# sourceMappingURL=govern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"govern.d.ts","sourceRoot":"","sources":["../../src/sdk/govern.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI5E,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAW3E;AAED,MAAM,WAAW,iBAAiB;IAChC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,eAAe,CAAC,KAAK,EAAE,OAAO,CAAE,SAAQ,iBAAiB;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC1D;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,CAExE;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,OAAO,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CAuBN;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,gBAAgB,GACxB,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAqBlC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EACrC,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GACvC,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAMnC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-process governance shim: evaluate a tool call through the same path
|
|
3
|
+
* `kya wrap` uses (offline sample evaluate by default — no network, no hosted
|
|
4
|
+
* plane required), record the trail event, then ALLOW/REQUIRE_APPROVE run the
|
|
5
|
+
* function while DENY throws KyaDeniedError without running it.
|
|
6
|
+
*
|
|
7
|
+
* Importing this module starts nothing: config resolves lazily on first call.
|
|
8
|
+
*
|
|
9
|
+
* Deliberate coupling: the trail write is fail-closed — a governance shim
|
|
10
|
+
* where the audit record cannot be written does not run the action.
|
|
11
|
+
*/
|
|
12
|
+
import { resolveConfig } from "../config.js";
|
|
13
|
+
import { KyaError } from "../errors.js";
|
|
14
|
+
import { runEvalTool } from "../commands/eval-tool.js";
|
|
15
|
+
import { appendTrail, defaultSessionId } from "../trail.js";
|
|
16
|
+
import { deriveWireChangeFields } from "../diff-preview.js";
|
|
17
|
+
export class KyaDeniedError extends KyaError {
|
|
18
|
+
verdict;
|
|
19
|
+
reasonCode;
|
|
20
|
+
toolId;
|
|
21
|
+
constructor(input) {
|
|
22
|
+
super(`kya ${input.verdict}: ${input.toolId} (${input.reasonCode || "no reason"}) — function not executed`, "KYA_DENIED", 1);
|
|
23
|
+
this.name = "KyaDeniedError";
|
|
24
|
+
this.verdict = input.verdict;
|
|
25
|
+
this.reasonCode = input.reasonCode;
|
|
26
|
+
this.toolId = input.toolId;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** `<server>__<name>` when a server is given, else the bare name. */
|
|
30
|
+
export function deriveSdkToolId(name, server) {
|
|
31
|
+
const n = name.trim();
|
|
32
|
+
const s = server?.trim();
|
|
33
|
+
return s ? `${s}__${n}` : n;
|
|
34
|
+
}
|
|
35
|
+
export function resolveSdkConfig(config) {
|
|
36
|
+
return config ?? resolveConfig({ offline: true, allowMissingApiKey: true });
|
|
37
|
+
}
|
|
38
|
+
/** Trail parity with wrap: verdict/mode/reasonCode + change fields when derivable. */
|
|
39
|
+
export function recordSdkTrail(config, evalResult, args, env = process.env) {
|
|
40
|
+
const reason = evalResult.response.reasonCode ?? "";
|
|
41
|
+
const toolId = evalResult.response.toolId ?? "";
|
|
42
|
+
const mode = evalResult.offline || config.offline ? "offline" : "observe";
|
|
43
|
+
const fields = deriveWireChangeFields(toolId, args, env);
|
|
44
|
+
appendTrail(config.cwd, {
|
|
45
|
+
ts: new Date().toISOString(),
|
|
46
|
+
sessionId: defaultSessionId(env),
|
|
47
|
+
host: config.host,
|
|
48
|
+
toolId,
|
|
49
|
+
verdict: evalResult.response.verdict,
|
|
50
|
+
reasonCode: reason,
|
|
51
|
+
mode,
|
|
52
|
+
neverEvent: reason === "NEVER_EVENT",
|
|
53
|
+
argsHash: evalResult.argsHash,
|
|
54
|
+
...(fields?.summary ? { summary: fields.summary } : {}),
|
|
55
|
+
...(fields?.diffPreview ? { diffPreview: fields.diffPreview } : {}),
|
|
56
|
+
...(fields?.targetPath ? { targetPath: fields.targetPath } : {}),
|
|
57
|
+
}, env);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The evaluate + trail half of governed(), constructed once per wrapped tool
|
|
61
|
+
* so the lazy config cache hits across calls. Adapters whose execution path
|
|
62
|
+
* closes over per-call context use this directly and invoke the framework
|
|
63
|
+
* callable themselves after the check passes.
|
|
64
|
+
*/
|
|
65
|
+
export function createGateCheck(options) {
|
|
66
|
+
const toolId = deriveSdkToolId(options.toolId, options.server);
|
|
67
|
+
let cached = options.config;
|
|
68
|
+
return async (args) => {
|
|
69
|
+
if (!cached)
|
|
70
|
+
cached = resolveSdkConfig();
|
|
71
|
+
const evalResult = await runEvalTool(cached, {
|
|
72
|
+
toolId,
|
|
73
|
+
args,
|
|
74
|
+
irreversible: options.irreversible,
|
|
75
|
+
});
|
|
76
|
+
recordSdkTrail(cached, evalResult, args);
|
|
77
|
+
const verdict = (evalResult.response.verdict ?? "").toUpperCase();
|
|
78
|
+
if (verdict === "ALLOW" || verdict === "REQUIRE_APPROVE") {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
throw new KyaDeniedError({
|
|
82
|
+
verdict: verdict || "DENY",
|
|
83
|
+
reasonCode: evalResult.response.reasonCode ?? "",
|
|
84
|
+
toolId: evalResult.response.toolId ?? toolId,
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function governed(options) {
|
|
89
|
+
const check = createGateCheck(options);
|
|
90
|
+
return async (args) => {
|
|
91
|
+
await check(args);
|
|
92
|
+
return options.fn(args);
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=govern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"govern.js","sourceRoot":"","sources":["../../src/sdk/govern.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @shield-agent/kya/sdk — in-process governance shims for agent frameworks.
|
|
3
|
+
* Importing this surface starts no daemons, telemetry, or network clients;
|
|
4
|
+
* evaluation defaults to the offline sample path.
|
|
5
|
+
*/
|
|
6
|
+
export { governed, deriveSdkToolId, KyaDeniedError, type GovernedOptions, type GovernanceOptions, } from "./govern.js";
|
|
7
|
+
export { governA2aSend, type GovernA2aSendOptions, type A2aGateResult, } from "./a2a.js";
|
|
8
|
+
export { governLangGraphTool, type LangGraphToolLike } from "./adapters/langgraph.js";
|
|
9
|
+
export { governVercelAiTool, type VercelAiToolLike, type GovernVercelAiOptions, } from "./adapters/vercel-ai.js";
|
|
10
|
+
export { governMastraTool, type MastraToolLike } from "./adapters/mastra.js";
|
|
11
|
+
export { governOpenAiAgentsTool, type OpenAiAgentsToolLike, } from "./adapters/openai-agents.js";
|
|
12
|
+
export { governClaudeAgentTool, type ClaudeAgentToolLike, } from "./adapters/claude-agent.js";
|
|
13
|
+
export type { ResolvedConfig } from "../config.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @shield-agent/kya/sdk — in-process governance shims for agent frameworks.
|
|
3
|
+
* Importing this surface starts no daemons, telemetry, or network clients;
|
|
4
|
+
* evaluation defaults to the offline sample path.
|
|
5
|
+
*/
|
|
6
|
+
export { governed, deriveSdkToolId, KyaDeniedError, } from "./govern.js";
|
|
7
|
+
export { governA2aSend, } from "./a2a.js";
|
|
8
|
+
export { governLangGraphTool } from "./adapters/langgraph.js";
|
|
9
|
+
export { governVercelAiTool, } from "./adapters/vercel-ai.js";
|
|
10
|
+
export { governMastraTool } from "./adapters/mastra.js";
|
|
11
|
+
export { governOpenAiAgentsTool, } from "./adapters/openai-agents.js";
|
|
12
|
+
export { governClaudeAgentTool, } from "./adapters/claude-agent.js";
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,GAGd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAA0B,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,kBAAkB,GAGnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC"}
|
package/droid/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Droid (Factory) + Shield KYA
|
|
2
2
|
|
|
3
|
-
Preferred path is Droid's own CLI: `droid mcp add shield-kya "npx --no-install @shield-agent/kya@0.
|
|
3
|
+
Preferred path is Droid's own CLI: `droid mcp add shield-kya "npx --no-install @shield-agent/kya@0.13.0 serve-mcp --stdio" --env KYA_BASE_URL=https://shield-agent.com --env KYA_API_KEY=$KYA_API_KEY --env KYA_HOST=ide`.
|
|
4
4
|
|
|
5
5
|
`mcp.example.json` shows the expected on-disk shape (`~/.factory/mcp.json`) — **schema not yet verified against a live Droid install**; treat as a starting point and prefer `droid mcp add`.
|
|
6
6
|
|
package/droid/mcp.example.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
package/grok/README.md
CHANGED
|
@@ -40,7 +40,7 @@ chat = client.chat.create(
|
|
|
40
40
|
There is no grok.com stdio path. For a local agent host use the same stdio launch as Claude:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
npx --no-install @shield-agent/kya@0.
|
|
43
|
+
npx --no-install @shield-agent/kya@0.13.0 serve-mcp --stdio
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
Env: `KYA_BASE_URL`, `KYA_API_KEY`, `KYA_HOST`. Codex and Gemini example configs in this package show the full snippets.
|
package/kilo/kilo.example.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcp": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"type": "local",
|
|
5
|
-
"command": ["npx", "--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"command": ["npx", "--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"enabled": true,
|
|
7
7
|
"environment": {
|
|
8
8
|
"KYA_BASE_URL": "https://shield-agent.com",
|
package/kimi/mcp.example.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
package/kiro/mcp.example.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "shield-kya",
|
|
4
4
|
"display_name": "Shield KYA",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.13.0",
|
|
6
6
|
"description": "Know Your Agent MCP gate: ALLOW / DENY / REQUIRE_APPROVE. Sole PEP is Shield.",
|
|
7
7
|
"long_description": "Local Claude Desktop extension that runs the packaged `dist/cli.js serve-mcp --stdio` against your Shield control plane (local or https://shield-agent.com). Tools evaluate policy, ingest session risk, and open Hold tickets. They never execute irreversible side effects.",
|
|
8
8
|
"author": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
package/mcp.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"description": "Know Your Agent local MCP gate: wrap-before-write, named-agent registry, Hold/Clear.",
|
|
5
5
|
"command": "npx",
|
|
6
|
-
"args": ["--no-install", "@shield-agent/kya@0.
|
|
6
|
+
"args": ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
7
7
|
"env": {
|
|
8
8
|
"KYA_BASE_URL": "${KYA_BASE_URL}",
|
|
9
9
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# --- Local stdio (OSS) ---
|
|
12
12
|
[mcp_servers.shield-kya]
|
|
13
13
|
command = "npx"
|
|
14
|
-
args = ["--no-install", "@shield-agent/kya@0.
|
|
14
|
+
args = ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"]
|
|
15
15
|
startup_timeout_sec = 20
|
|
16
16
|
env_vars = ["KYA_BASE_URL", "KYA_API_KEY", "KYA_HOST", "KYA_AGENT_ID"]
|
|
17
17
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcp": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"type": "local",
|
|
5
|
-
"command": ["npx", "--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"command": ["npx", "--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"enabled": true,
|
|
7
7
|
"environment": {
|
|
8
8
|
"KYA_BASE_URL": "https://shield-agent.com",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shield-agent/kya",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Audit trail & traceability for AI agents — local MCP gate (Allow/Review/Deny), live receipt dashboard, trust-baseline certification.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
".": {
|
|
17
17
|
"types": "./dist/index.d.ts",
|
|
18
18
|
"import": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./sdk": {
|
|
21
|
+
"types": "./dist/sdk/index.d.ts",
|
|
22
|
+
"import": "./dist/sdk/index.js"
|
|
19
23
|
}
|
|
20
24
|
},
|
|
21
25
|
"files": [
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.13.0", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"url": "https://github.com/The-Pixel-Boys/shield-kya",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.
|
|
10
|
+
"version": "0.13.0",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "@shield-agent/kya",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.13.0",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|