@shield-agent/kya 0.14.0 → 0.15.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 +6 -4
- 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 +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/start.d.ts +44 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +171 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/gate/config.d.ts +2 -0
- package/dist/gate/config.d.ts.map +1 -1
- package/dist/gate/config.js +9 -0
- package/dist/gate/config.js.map +1 -1
- package/dist/gate/discover.d.ts +57 -0
- package/dist/gate/discover.d.ts.map +1 -0
- package/dist/gate/discover.js +380 -0
- package/dist/gate/discover.js.map +1 -0
- package/dist/receipt/gate-card.d.ts +2 -0
- package/dist/receipt/gate-card.d.ts.map +1 -1
- package/dist/receipt/gate-card.js +2 -0
- package/dist/receipt/gate-card.js.map +1 -1
- package/dist/receipt/render-receipt.d.ts.map +1 -1
- package/dist/receipt/render-receipt.js +7 -7
- package/dist/receipt/render-receipt.js.map +1 -1
- 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 +1 -1
- package/qwen/settings.example.json +1 -1
- package/server.json +2 -2
package/dist/gate/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/gate/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/gate/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type GatewayServer } from "./config.js";
|
|
2
|
+
export interface GateCandidate {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly transport: "stdio" | "http";
|
|
5
|
+
readonly cmd?: readonly string[];
|
|
6
|
+
readonly url?: string;
|
|
7
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
8
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
9
|
+
/** Host ids whose config carried this server. */
|
|
10
|
+
readonly foundIn: readonly string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Normalize a host's server key to the gateway target-id shape. Returns
|
|
14
|
+
* undefined for keys that sanitize to nothing usable or that resolve to a
|
|
15
|
+
* kya-owned id (kya/shield-kya prefixes are never third-party servers).
|
|
16
|
+
*/
|
|
17
|
+
export declare function sanitizeServerId(raw: string): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Scan every connectable host's user-level MCP config for third-party
|
|
20
|
+
* servers. Deduped across hosts by sanitized id (first-seen shape wins;
|
|
21
|
+
* `foundIn` accumulates every host carrying the id).
|
|
22
|
+
*/
|
|
23
|
+
export declare function discoverGateServers(home: string): GateCandidate[];
|
|
24
|
+
export interface GateImportResult {
|
|
25
|
+
/** Entries appended to gateways.json this call. */
|
|
26
|
+
readonly imported: readonly GatewayServer[];
|
|
27
|
+
readonly path: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Merge discovered candidates into gateways.json `servers`. Hand-configured
|
|
31
|
+
* entries and other top-level keys (recipes) are preserved; ids already
|
|
32
|
+
* present are skipped — an already-imported entry only unions new source
|
|
33
|
+
* hosts into its `importedFrom`, a hand-configured entry is left byte-identical.
|
|
34
|
+
*/
|
|
35
|
+
export declare function importGateCandidates(candidates: readonly GateCandidate[], env?: NodeJS.ProcessEnv): GateImportResult;
|
|
36
|
+
export interface HostEntryRemoval {
|
|
37
|
+
readonly path: string;
|
|
38
|
+
/** Full pre-edit copy under <global .kya>/backups. */
|
|
39
|
+
readonly backup: string;
|
|
40
|
+
readonly removed: readonly string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Remove the given server ids from a host's user-level config, after copying
|
|
44
|
+
* the full original under <global .kya>/backups. Only the listed ids are
|
|
45
|
+
* touched — shield-kya entries and every other setting survive. Returns
|
|
46
|
+
* undefined (and writes nothing) when the file is missing, unparseable, or
|
|
47
|
+
* carries none of the ids.
|
|
48
|
+
*/
|
|
49
|
+
export declare function removeHostServerEntries(input: {
|
|
50
|
+
readonly host: string;
|
|
51
|
+
readonly ids: readonly string[];
|
|
52
|
+
readonly home: string;
|
|
53
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
54
|
+
/** Test hook: backup timestamp label. */
|
|
55
|
+
readonly ts?: string;
|
|
56
|
+
}): HostEntryRemoval | undefined;
|
|
57
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/gate/discover.ts"],"names":[],"mappings":"AAaA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAKD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUhE;AAsID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CA6BjE;AAED,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,CAoDlB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AA4CD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,gBAAgB,GAAG,SAAS,CA0C/B"}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway auto-discovery: scan detected host MCP configs for third-party MCP
|
|
3
|
+
* servers (any entry not prefixed shield-kya/kya), normalize them into gateway
|
|
4
|
+
* target candidates, and merge them into gateways.json with provenance
|
|
5
|
+
* (`importedFrom`). Used by `kya start`'s gate bootstrap. Discovery never
|
|
6
|
+
* invents servers; a host config that cannot be parsed is skipped silently.
|
|
7
|
+
*/
|
|
8
|
+
import { copyFileSync, existsSync, mkdirSync, readFileSync } from "node:fs";
|
|
9
|
+
import { extname, join } from "node:path";
|
|
10
|
+
import { globalConfigDir } from "../config.js";
|
|
11
|
+
import { UsageError } from "../errors.js";
|
|
12
|
+
import { atomicWriteSync } from "../fs-atomic.js";
|
|
13
|
+
import { CONNECT_REGISTRY, connectableHosts, writeTarget } from "../commands/connect.js";
|
|
14
|
+
import { gatewaysPath } from "./config.js";
|
|
15
|
+
const KYA_PREFIX_RE = /^(shield-kya|kya)(-|$)/i;
|
|
16
|
+
const TARGET_ID_RE = /^[a-z0-9][a-z0-9-]*$/;
|
|
17
|
+
/**
|
|
18
|
+
* Normalize a host's server key to the gateway target-id shape. Returns
|
|
19
|
+
* undefined for keys that sanitize to nothing usable or that resolve to a
|
|
20
|
+
* kya-owned id (kya/shield-kya prefixes are never third-party servers).
|
|
21
|
+
*/
|
|
22
|
+
export function sanitizeServerId(raw) {
|
|
23
|
+
const key = raw.trim();
|
|
24
|
+
if (KYA_PREFIX_RE.test(key))
|
|
25
|
+
return undefined;
|
|
26
|
+
const id = key
|
|
27
|
+
.toLowerCase()
|
|
28
|
+
.replace(/[^a-z0-9-]+/g, "-")
|
|
29
|
+
.replace(/^-+/, "")
|
|
30
|
+
.replace(/-+$/, "");
|
|
31
|
+
if (!TARGET_ID_RE.test(id) || KYA_PREFIX_RE.test(id))
|
|
32
|
+
return undefined;
|
|
33
|
+
return id;
|
|
34
|
+
}
|
|
35
|
+
function isPlainObject(v) {
|
|
36
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
37
|
+
}
|
|
38
|
+
function stringMap(v) {
|
|
39
|
+
if (!isPlainObject(v))
|
|
40
|
+
return undefined;
|
|
41
|
+
const out = {};
|
|
42
|
+
for (const [k, val] of Object.entries(v)) {
|
|
43
|
+
if (typeof val === "string")
|
|
44
|
+
out[k] = val;
|
|
45
|
+
}
|
|
46
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
47
|
+
}
|
|
48
|
+
/** One JSON host entry → candidate core. Unknown shapes yield undefined. */
|
|
49
|
+
function candidateFromJsonEntry(entry) {
|
|
50
|
+
if (!isPlainObject(entry))
|
|
51
|
+
return undefined;
|
|
52
|
+
const command = entry["command"];
|
|
53
|
+
if (typeof command === "string" && command.trim()) {
|
|
54
|
+
const args = Array.isArray(entry["args"])
|
|
55
|
+
? entry["args"].filter((a) => typeof a === "string")
|
|
56
|
+
: [];
|
|
57
|
+
const env = stringMap(entry["env"] ?? entry["environment"]);
|
|
58
|
+
return { transport: "stdio", cmd: [command, ...args], ...(env ? { env } : {}) };
|
|
59
|
+
}
|
|
60
|
+
// opencode local shape: command is the full argv array.
|
|
61
|
+
if (Array.isArray(command) && command.length > 0 && command.every((c) => typeof c === "string")) {
|
|
62
|
+
const env = stringMap(entry["environment"] ?? entry["env"]);
|
|
63
|
+
return { transport: "stdio", cmd: command, ...(env ? { env } : {}) };
|
|
64
|
+
}
|
|
65
|
+
const url = typeof entry["url"] === "string"
|
|
66
|
+
? entry["url"]
|
|
67
|
+
: typeof entry["httpUrl"] === "string"
|
|
68
|
+
? entry["httpUrl"]
|
|
69
|
+
: undefined;
|
|
70
|
+
if (url && /^https?:\/\//.test(url)) {
|
|
71
|
+
const headers = stringMap(entry["headers"]);
|
|
72
|
+
return { transport: "http", url, ...(headers ? { headers } : {}) };
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
function candidatesFromJson(text, rootKey) {
|
|
77
|
+
const raw = JSON.parse(text);
|
|
78
|
+
const out = new Map();
|
|
79
|
+
if (!isPlainObject(raw))
|
|
80
|
+
return out;
|
|
81
|
+
const servers = raw[rootKey];
|
|
82
|
+
if (!isPlainObject(servers))
|
|
83
|
+
return out;
|
|
84
|
+
for (const [key, entry] of Object.entries(servers)) {
|
|
85
|
+
const core = candidateFromJsonEntry(entry);
|
|
86
|
+
if (core)
|
|
87
|
+
out.set(key, core);
|
|
88
|
+
}
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
const TOML_TABLE_RE = /^[ \t]*\[\s*mcp_servers\s*\.\s*(?:"([^"]+)"|'([^']+)'|([A-Za-z0-9_-]+))\s*\][ \t]*(?:#.*)?$/;
|
|
92
|
+
const TOML_ANY_HEADER_RE = /^[ \t]*\[/;
|
|
93
|
+
function tomlString(body, key) {
|
|
94
|
+
const re = new RegExp(`^[ \\t]*${key}[ \\t]*=[ \\t]*("(?:[^"\\\\]|\\\\.)*")`, "m");
|
|
95
|
+
const m = re.exec(body);
|
|
96
|
+
if (!m)
|
|
97
|
+
return undefined;
|
|
98
|
+
try {
|
|
99
|
+
const v = JSON.parse(m[1]);
|
|
100
|
+
return typeof v === "string" ? v : undefined;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function tomlStringArray(body, key) {
|
|
107
|
+
const re = new RegExp(`^[ \\t]*${key}[ \\t]*=[ \\t]*(\\[[^\\]]*\\])`, "m");
|
|
108
|
+
const m = re.exec(body);
|
|
109
|
+
if (!m)
|
|
110
|
+
return undefined;
|
|
111
|
+
try {
|
|
112
|
+
const v = JSON.parse(m[1]);
|
|
113
|
+
if (Array.isArray(v) && v.every((s) => typeof s === "string"))
|
|
114
|
+
return v;
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
/* single-quoted TOML strings etc. — no args */
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
function tomlInlineMap(body, key) {
|
|
122
|
+
const re = new RegExp(`^[ \\t]*${key}[ \\t]*=[ \\t]*(\\{[^}]*\\})`, "m");
|
|
123
|
+
const m = re.exec(body);
|
|
124
|
+
if (!m)
|
|
125
|
+
return undefined;
|
|
126
|
+
const out = {};
|
|
127
|
+
const pair = /([A-Za-z0-9_]+)\s*=\s*("(?:[^"\\]|\\.)*")/g;
|
|
128
|
+
for (let p = pair.exec(m[1]); p; p = pair.exec(m[1])) {
|
|
129
|
+
try {
|
|
130
|
+
const v = JSON.parse(p[2]);
|
|
131
|
+
if (typeof v === "string")
|
|
132
|
+
out[p[1]] = v;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
/* skip the pair */
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
139
|
+
}
|
|
140
|
+
/** Minimal [mcp_servers.<id>] table reader for grok/codex TOML configs. */
|
|
141
|
+
function candidatesFromToml(text) {
|
|
142
|
+
const out = new Map();
|
|
143
|
+
const lines = text.split("\n");
|
|
144
|
+
for (let i = 0; i < lines.length; i++) {
|
|
145
|
+
const header = TOML_TABLE_RE.exec(lines[i]);
|
|
146
|
+
if (!header)
|
|
147
|
+
continue;
|
|
148
|
+
const key = header[1] ?? header[2] ?? header[3];
|
|
149
|
+
let end = lines.length;
|
|
150
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
151
|
+
if (TOML_ANY_HEADER_RE.test(lines[j])) {
|
|
152
|
+
end = j;
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const body = lines.slice(i + 1, end).join("\n");
|
|
157
|
+
const command = tomlString(body, "command");
|
|
158
|
+
const url = tomlString(body, "url");
|
|
159
|
+
if (command) {
|
|
160
|
+
const args = tomlStringArray(body, "args") ?? [];
|
|
161
|
+
const env = tomlInlineMap(body, "env");
|
|
162
|
+
out.set(key, { transport: "stdio", cmd: [command, ...args], ...(env ? { env } : {}) });
|
|
163
|
+
}
|
|
164
|
+
else if (url && /^https?:\/\//.test(url)) {
|
|
165
|
+
out.set(key, { transport: "http", url });
|
|
166
|
+
}
|
|
167
|
+
i = end - 1;
|
|
168
|
+
}
|
|
169
|
+
return out;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Scan every connectable host's user-level MCP config for third-party
|
|
173
|
+
* servers. Deduped across hosts by sanitized id (first-seen shape wins;
|
|
174
|
+
* `foundIn` accumulates every host carrying the id).
|
|
175
|
+
*/
|
|
176
|
+
export function discoverGateServers(home) {
|
|
177
|
+
const byId = new Map();
|
|
178
|
+
for (const hostId of connectableHosts()) {
|
|
179
|
+
const spec = CONNECT_REGISTRY[hostId];
|
|
180
|
+
if (!spec.globalPath)
|
|
181
|
+
continue;
|
|
182
|
+
const path = spec.globalPath(home);
|
|
183
|
+
if (!existsSync(path))
|
|
184
|
+
continue;
|
|
185
|
+
let entries;
|
|
186
|
+
try {
|
|
187
|
+
const text = readFileSync(path, "utf8");
|
|
188
|
+
entries =
|
|
189
|
+
spec.shape === "grok-toml" || spec.shape === "codex-toml"
|
|
190
|
+
? candidatesFromToml(text)
|
|
191
|
+
: candidatesFromJson(text, spec.rootKey);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
continue; // unparseable host config — skip the host, keep the rest
|
|
195
|
+
}
|
|
196
|
+
for (const [rawKey, core] of entries) {
|
|
197
|
+
const id = sanitizeServerId(rawKey);
|
|
198
|
+
if (!id)
|
|
199
|
+
continue;
|
|
200
|
+
const existing = byId.get(id);
|
|
201
|
+
if (existing) {
|
|
202
|
+
if (!existing.foundIn.includes(hostId))
|
|
203
|
+
existing.foundIn.push(hostId);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
byId.set(id, { core, foundIn: [hostId] });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return [...byId.entries()].map(([id, v]) => ({ id, ...v.core, foundIn: v.foundIn }));
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Merge discovered candidates into gateways.json `servers`. Hand-configured
|
|
214
|
+
* entries and other top-level keys (recipes) are preserved; ids already
|
|
215
|
+
* present are skipped — an already-imported entry only unions new source
|
|
216
|
+
* hosts into its `importedFrom`, a hand-configured entry is left byte-identical.
|
|
217
|
+
*/
|
|
218
|
+
export function importGateCandidates(candidates, env = process.env) {
|
|
219
|
+
const path = gatewaysPath(env);
|
|
220
|
+
if (candidates.length === 0)
|
|
221
|
+
return { imported: [], path };
|
|
222
|
+
let raw = {};
|
|
223
|
+
if (existsSync(path)) {
|
|
224
|
+
let parsed;
|
|
225
|
+
try {
|
|
226
|
+
parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
throw new UsageError(`${path} is not valid JSON — fix it by hand, then re-run kya start`);
|
|
230
|
+
}
|
|
231
|
+
if (!isPlainObject(parsed)) {
|
|
232
|
+
throw new UsageError(`${path} must be a JSON object — fix it by hand, then re-run kya start`);
|
|
233
|
+
}
|
|
234
|
+
raw = parsed;
|
|
235
|
+
}
|
|
236
|
+
if (raw["servers"] !== undefined && !Array.isArray(raw["servers"])) {
|
|
237
|
+
throw new UsageError(`${path}: "servers" must be an array — fix it by hand, then re-run kya start`);
|
|
238
|
+
}
|
|
239
|
+
const servers = Array.isArray(raw["servers"]) ? [...raw["servers"]] : [];
|
|
240
|
+
const imported = [];
|
|
241
|
+
let changed = false;
|
|
242
|
+
for (const c of candidates) {
|
|
243
|
+
const idx = servers.findIndex((s) => isPlainObject(s) && s["id"] === c.id);
|
|
244
|
+
if (idx !== -1) {
|
|
245
|
+
const entry = servers[idx];
|
|
246
|
+
if (Array.isArray(entry["importedFrom"])) {
|
|
247
|
+
const have = new Set(entry["importedFrom"].filter((h) => typeof h === "string"));
|
|
248
|
+
const merged = [...have];
|
|
249
|
+
for (const h of c.foundIn)
|
|
250
|
+
if (!have.has(h))
|
|
251
|
+
merged.push(h);
|
|
252
|
+
if (merged.length !== have.size) {
|
|
253
|
+
servers[idx] = { ...entry, importedFrom: merged };
|
|
254
|
+
changed = true;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
const entry = { id: c.id, transport: c.transport };
|
|
260
|
+
if (c.transport === "stdio" && c.cmd)
|
|
261
|
+
entry["cmd"] = [...c.cmd];
|
|
262
|
+
if (c.transport === "stdio" && c.env)
|
|
263
|
+
entry["env"] = { ...c.env };
|
|
264
|
+
if (c.transport === "http" && c.url)
|
|
265
|
+
entry["url"] = c.url;
|
|
266
|
+
if (c.transport === "http" && c.headers)
|
|
267
|
+
entry["headers"] = { ...c.headers };
|
|
268
|
+
entry["importedFrom"] = [...c.foundIn];
|
|
269
|
+
servers.push(entry);
|
|
270
|
+
imported.push(entry);
|
|
271
|
+
changed = true;
|
|
272
|
+
}
|
|
273
|
+
if (changed) {
|
|
274
|
+
mkdirSync(globalConfigDir(env), { recursive: true });
|
|
275
|
+
atomicWriteSync(path, `${JSON.stringify({ ...raw, servers }, null, 2)}\n`);
|
|
276
|
+
}
|
|
277
|
+
return { imported, path };
|
|
278
|
+
}
|
|
279
|
+
function backupHostConfig(target, host, env, ts) {
|
|
280
|
+
const dir = join(globalConfigDir(env), "backups");
|
|
281
|
+
mkdirSync(dir, { recursive: true });
|
|
282
|
+
const stamp = (ts ?? new Date().toISOString()).replace(/[:.]/g, "-");
|
|
283
|
+
const ext = extname(target) || ".conf";
|
|
284
|
+
let candidate = join(dir, `${host}-${stamp}${ext}`);
|
|
285
|
+
for (let n = 2; existsSync(candidate); n++) {
|
|
286
|
+
candidate = join(dir, `${host}-${stamp}-${n}${ext}`);
|
|
287
|
+
}
|
|
288
|
+
copyFileSync(target, candidate);
|
|
289
|
+
return candidate;
|
|
290
|
+
}
|
|
291
|
+
function removeTomlTables(text, ids) {
|
|
292
|
+
const lines = text.split("\n");
|
|
293
|
+
const drop = new Set(ids);
|
|
294
|
+
const removed = [];
|
|
295
|
+
const kept = [];
|
|
296
|
+
for (let i = 0; i < lines.length; i++) {
|
|
297
|
+
const header = TOML_TABLE_RE.exec(lines[i]);
|
|
298
|
+
const key = header ? (header[1] ?? header[2] ?? header[3]) : undefined;
|
|
299
|
+
if (key && !drop.has(sanitizeServerId(key) ?? "")) {
|
|
300
|
+
kept.push(lines[i]);
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
if (key) {
|
|
304
|
+
if (!removed.includes(key))
|
|
305
|
+
removed.push(key);
|
|
306
|
+
let end = lines.length;
|
|
307
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
308
|
+
if (TOML_ANY_HEADER_RE.test(lines[j])) {
|
|
309
|
+
end = j;
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
i = end - 1;
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
kept.push(lines[i]);
|
|
317
|
+
}
|
|
318
|
+
return { text: kept.join("\n"), removed };
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Remove the given server ids from a host's user-level config, after copying
|
|
322
|
+
* the full original under <global .kya>/backups. Only the listed ids are
|
|
323
|
+
* touched — shield-kya entries and every other setting survive. Returns
|
|
324
|
+
* undefined (and writes nothing) when the file is missing, unparseable, or
|
|
325
|
+
* carries none of the ids.
|
|
326
|
+
*/
|
|
327
|
+
export function removeHostServerEntries(input) {
|
|
328
|
+
const env = input.env ?? process.env;
|
|
329
|
+
const spec = CONNECT_REGISTRY[input.host];
|
|
330
|
+
if (!spec?.globalPath)
|
|
331
|
+
return undefined;
|
|
332
|
+
const path = spec.globalPath(input.home);
|
|
333
|
+
if (!existsSync(path))
|
|
334
|
+
return undefined;
|
|
335
|
+
let target;
|
|
336
|
+
try {
|
|
337
|
+
target = writeTarget(path);
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
return undefined;
|
|
341
|
+
}
|
|
342
|
+
const toml = spec.shape === "grok-toml" || spec.shape === "codex-toml";
|
|
343
|
+
const text = readFileSync(target, "utf8");
|
|
344
|
+
let next;
|
|
345
|
+
let removed;
|
|
346
|
+
if (toml) {
|
|
347
|
+
const r = removeTomlTables(text, input.ids);
|
|
348
|
+
next = r.text;
|
|
349
|
+
removed = r.removed;
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
let raw;
|
|
353
|
+
try {
|
|
354
|
+
raw = JSON.parse(text);
|
|
355
|
+
}
|
|
356
|
+
catch {
|
|
357
|
+
return undefined;
|
|
358
|
+
}
|
|
359
|
+
if (!isPlainObject(raw))
|
|
360
|
+
return undefined;
|
|
361
|
+
const servers = raw[spec.rootKey];
|
|
362
|
+
if (!isPlainObject(servers))
|
|
363
|
+
return undefined;
|
|
364
|
+
const drop = new Set(input.ids);
|
|
365
|
+
removed = Object.keys(servers).filter((key) => drop.has(sanitizeServerId(key) ?? ""));
|
|
366
|
+
if (removed.length === 0)
|
|
367
|
+
return undefined;
|
|
368
|
+
const rest = { ...servers };
|
|
369
|
+
for (const key of removed)
|
|
370
|
+
delete rest[key];
|
|
371
|
+
raw[spec.rootKey] = rest;
|
|
372
|
+
next = `${JSON.stringify(raw, null, 2)}\n`;
|
|
373
|
+
}
|
|
374
|
+
if (removed.length === 0)
|
|
375
|
+
return undefined;
|
|
376
|
+
const backup = backupHostConfig(target, input.host, env, input.ts);
|
|
377
|
+
atomicWriteSync(target, next);
|
|
378
|
+
return { path: target, backup, removed };
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/gate/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type GatewayServer } from "../gate/config.js";
|
|
2
2
|
import type { TrailEvent } from "../trail.js";
|
|
3
3
|
export type GateState = "not-set-up" | "configured-stopped" | "running";
|
|
4
|
+
/** not-set-up quickstart line, shared by the HTML panel and the markdown artifact. */
|
|
5
|
+
export declare const GATE_NOT_SETUP_QUICKSTART = "Add any MCP server to a host config (or run `kya gate init` to pick from recipes) \u2014 `kya start` routes it through the gateway automatically.";
|
|
4
6
|
export type GateServerWorst = "never" | "deny" | "hold" | "allow" | "none";
|
|
5
7
|
export interface GateServerRow {
|
|
6
8
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-card.d.ts","sourceRoot":"","sources":["../../src/receipt/gate-card.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAQD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,QAAQ,CA8DV"}
|
|
1
|
+
{"version":3,"file":"gate-card.d.ts","sourceRoot":"","sources":["../../src/receipt/gate-card.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAExE,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,sJAC0G,CAAC;AAEjJ,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAQD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,QAAQ,CA8DV"}
|
|
@@ -9,6 +9,8 @@ import { inspectGateBinary } from "../gate/binary.js";
|
|
|
9
9
|
import { readGateways } from "../gate/config.js";
|
|
10
10
|
import { pidAlive, readGateState } from "../gate/daemon.js";
|
|
11
11
|
import { mcpServerLabel } from "../mcp-servers.js";
|
|
12
|
+
/** not-set-up quickstart line, shared by the HTML panel and the markdown artifact. */
|
|
13
|
+
export const GATE_NOT_SETUP_QUICKSTART = "Add any MCP server to a host config (or run `kya gate init` to pick from recipes) — `kya start` routes it through the gateway automatically.";
|
|
12
14
|
/** Gateway target ids are `<id>__<tool>` prefixes on trail toolIds. */
|
|
13
15
|
function toolServerPrefix(toolId) {
|
|
14
16
|
const m = /^([a-z0-9][a-z0-9-]*)__/i.exec(toolId.trim());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-card.js","sourceRoot":"","sources":["../../src/receipt/gate-card.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"gate-card.js","sourceRoot":"","sources":["../../src/receipt/gate-card.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD,sFAAsF;AACtF,MAAM,CAAC,MAAM,yBAAyB,GACpC,8IAA8I,CAAC;AA6BjJ,uEAAuE;AACvE,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAA6B,EAC7B,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,OAAO,GAA6B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyE,CAAC;IAChG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACzC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,aAAa;YAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,MAAM;YAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACtB,IAAI,CAAC,KAAK,iBAAiB;YAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,IAAI,GAAoB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAoB,CAAC,CAAC;YAC/B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;gBACX,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;oBACV,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;wBACV,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,OAAO,CAAC;QAClB,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,MAAM,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC;YACtB,KAAK;YACL,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,oEAAoE;QACpE,uEAAuE;QACvE,iCAAiC;QACjC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB;QACvF,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,aAAa,EAAE,GAAG,CAAC,OAAO;QAC1B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-receipt.d.ts","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2C,KAAK,UAAU,EAAqB,MAAM,aAAa,CAAC;AAE1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,
|
|
1
|
+
{"version":3,"file":"render-receipt.d.ts","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { loadCertifyCard, loadIdentity, loadOrrCard, loadSandboxes, loadShowback
|
|
|
10
10
|
import { SHOWBACK_DISCLAIMER, } from "../showback/cost-per-task.js";
|
|
11
11
|
import { computeDashboard } from "./dashboard.js";
|
|
12
12
|
import { buildChangesModel } from "./changes.js";
|
|
13
|
-
import { loadGateCard } from "./gate-card.js";
|
|
13
|
+
import { GATE_NOT_SETUP_QUICKSTART, loadGateCard } from "./gate-card.js";
|
|
14
14
|
import { receiptCss } from "./receipt-css.js";
|
|
15
15
|
function esc(s) {
|
|
16
16
|
return stripEscapes(s)
|
|
@@ -607,11 +607,11 @@ function gatePanel(card, nowMs) {
|
|
|
607
607
|
<div class="orrline">
|
|
608
608
|
<span class="pill">not set up</span>
|
|
609
609
|
</div>
|
|
610
|
-
<p class="line">Gateway not set up — <code>kya
|
|
610
|
+
<p class="line">Gateway not set up — <code>kya start</code> puts a governed gateway in front of any MCP server automatically: every tool call proxied, evaluated, and on this trail.</p>
|
|
611
611
|
<ol class="steps">
|
|
612
|
-
<li
|
|
613
|
-
<li><code>kya
|
|
614
|
-
<li><code>kya gate
|
|
612
|
+
<li>Add any MCP server to a host config (or <code>kya gate init</code> to pick from recipes)</li>
|
|
613
|
+
<li><code>kya start</code> — imports it, installs the gateway, and routes the host through it (originals backed up under .kya/backups)</li>
|
|
614
|
+
<li><code>kya gate doctor</code> — binary, config, listener health, loopback-only posture</li>
|
|
615
615
|
</ol>
|
|
616
616
|
</section>`;
|
|
617
617
|
}
|
|
@@ -936,7 +936,7 @@ function gateHeroCard(card) {
|
|
|
936
936
|
? `${card.url ? `<code>${esc(clip(card.url, 48))}</code> · ` : ""}${card.servers.length} server${card.servers.length === 1 ? "" : "s"} · ${card.events} event${card.events === 1 ? "" : "s"}`
|
|
937
937
|
: card.state === "configured-stopped"
|
|
938
938
|
? `${card.servers.length} server${card.servers.length === 1 ? "" : "s"} configured — <code>kya gate run</code>`
|
|
939
|
-
:
|
|
939
|
+
: `add an MCP server to a host config — <code>kya start</code> governs it`;
|
|
940
940
|
const pill = card.state === "running"
|
|
941
941
|
? `<span class="pill ok">running</span>`
|
|
942
942
|
: `<span class="pill">${card.state === "configured-stopped" ? "stopped" : "not set up"}</span>`;
|
|
@@ -1346,7 +1346,7 @@ export function renderReceiptMarkdown(model) {
|
|
|
1346
1346
|
const g = model.gate;
|
|
1347
1347
|
lines.push("## Gateway");
|
|
1348
1348
|
if (g.state === "not-set-up") {
|
|
1349
|
-
lines.push(
|
|
1349
|
+
lines.push(`not set up — ${GATE_NOT_SETUP_QUICKSTART}`);
|
|
1350
1350
|
}
|
|
1351
1351
|
else {
|
|
1352
1352
|
const binary = g.binaryPresent
|