@tai42/api-client 19.0.0 → 19.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/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/manifest-client.d.ts +3 -0
- package/dist/client/manifest-client.d.ts.map +1 -1
- package/dist/fleet-report.d.ts +9 -1
- package/dist/fleet-report.d.ts.map +1 -1
- package/dist/fleet-report.js +15 -6
- package/dist/fleet-report.js.map +1 -1
- package/dist/schemas/system-kinds.d.ts +3 -0
- package/dist/schemas/system-kinds.d.ts.map +1 -1
- package/dist/schemas/system-kinds.js +14 -1
- package/dist/schemas/system-kinds.js.map +1 -1
- package/package.json +1 -1
- package/src/fleet-report.ts +24 -8
- package/src/schemas/system-kinds.ts +16 -1
package/dist/client/index.d.ts
CHANGED
|
@@ -1815,6 +1815,9 @@ export declare function createApiClient(config: ApiConfig): {
|
|
|
1815
1815
|
failed: {
|
|
1816
1816
|
title: string;
|
|
1817
1817
|
status: string;
|
|
1818
|
+
category?: string | undefined;
|
|
1819
|
+
message?: string | undefined;
|
|
1820
|
+
http_status?: number | null | undefined;
|
|
1818
1821
|
}[];
|
|
1819
1822
|
}>;
|
|
1820
1823
|
readonly reloadMcp: (title: string) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoCzC,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EACV,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACpG,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAjEyB,CAAC;qBAEnB,CAAC;kBAIJ,CAAC;mBACnB,CAAC;mBACP,CAAC;mBACL,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA6CxB,CAAF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAwD2uF,CAAC;;;;;;;;;;;;;oBAA+Z,CAAC;gBAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,6 +73,9 @@ export declare function manifestClient(t: Transport): {
|
|
|
73
73
|
failed: {
|
|
74
74
|
title: string;
|
|
75
75
|
status: string;
|
|
76
|
+
category?: string | undefined;
|
|
77
|
+
message?: string | undefined;
|
|
78
|
+
http_status?: number | null | undefined;
|
|
76
79
|
}[];
|
|
77
80
|
}>;
|
|
78
81
|
reloadMcp: (title: string) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-client.d.ts","sourceRoot":"","sources":["../../src/client/manifest-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS;2BAGhB,WAAW;;;;;;;;;;;wBACd,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAEL,WAAW
|
|
1
|
+
{"version":3,"file":"manifest-client.d.ts","sourceRoot":"","sources":["../../src/client/manifest-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS;2BAGhB,WAAW;;;;;;;;;;;wBACd,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAEL,WAAW;;;;;;;;;;uBAChB,MAAM;;;;;;;;;;;;;+BAUE,SAAS,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAKnB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAIJ,SAAS,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAKnB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAOV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAgBd,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;2BAOd,MAAM;;;;;;;;;;;;;EAMhC;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,SAAS;4BAKxB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAKX,WAAW;;;;;;;;;;;6BAKlB,WAAW;;;;;;EAGvC"}
|
package/dist/fleet-report.d.ts
CHANGED
|
@@ -58,10 +58,18 @@ export declare function summarizeFleetResult(result: FleetResult): FleetReportSu
|
|
|
58
58
|
* bare {@link FleetResult} and defer to {@link summarizeFleetResult}.
|
|
59
59
|
*/
|
|
60
60
|
export declare function summarizeFleetFanout(fanout: FleetReportFanout | null | undefined): FleetReportSummary | null;
|
|
61
|
-
/** One MCP server skipped by the viability check — its title
|
|
61
|
+
/** One MCP server skipped by the viability check — its title, a coarse status, and the
|
|
62
|
+
* credential-free failure detail the platform records when present: `category` (`auth`
|
|
63
|
+
* for a 401/403, `unreachable` for a transport error or timeout, `error` otherwise),
|
|
64
|
+
* the redacted `message`, and the `http_status` the failure carried (`null` for a pure
|
|
65
|
+
* transport failure). The three detail fields are absent when the reporting server
|
|
66
|
+
* omitted them. */
|
|
62
67
|
export interface FailedMcpEntry {
|
|
63
68
|
readonly title: string;
|
|
64
69
|
readonly status: string;
|
|
70
|
+
readonly category?: string;
|
|
71
|
+
readonly message?: string;
|
|
72
|
+
readonly http_status?: number | null;
|
|
65
73
|
}
|
|
66
74
|
/**
|
|
67
75
|
* The failed-MCP roster carried by a `GET /api/mcp-status/failed` broadcast report.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-report.d.ts","sourceRoot":"","sources":["../src/fleet-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE9E,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAEnE,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,OAAO,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB,CAiB5E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC3C,kBAAkB,GAAG,IAAI,CAM3B;AAED
|
|
1
|
+
{"version":3,"file":"fleet-report.d.ts","sourceRoot":"","sources":["../src/fleet-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE9E,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAEnE,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,OAAO,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB,CAiB5E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC3C,kBAAkB,GAAG,IAAI,CAM3B;AAED;;;;;oBAKoB;AACpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,EAAE,CAyB1E"}
|
package/dist/fleet-report.js
CHANGED
|
@@ -57,15 +57,24 @@ export function failedMcpsFromReport(result) {
|
|
|
57
57
|
if (typeof entry !== 'object' || entry === null || Array.isArray(entry))
|
|
58
58
|
continue;
|
|
59
59
|
const record = entry;
|
|
60
|
-
const { title, status } = record;
|
|
60
|
+
const { title, status, category, message } = record;
|
|
61
61
|
if (typeof title !== 'string' || title === '')
|
|
62
62
|
continue;
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
// First-seen wins: a server's earliest failure record carries the whole row,
|
|
64
|
+
// detail fields included, and a later worker's echo of the same title is ignored.
|
|
65
|
+
if (byTitle.has(title))
|
|
66
|
+
continue;
|
|
67
|
+
byTitle.set(title, {
|
|
68
|
+
title,
|
|
69
|
+
status: typeof status === 'string' ? status : 'unavailable',
|
|
70
|
+
...(typeof category === 'string' ? { category } : {}),
|
|
71
|
+
...(typeof message === 'string' ? { message } : {}),
|
|
72
|
+
...(typeof record.http_status === 'number' || record.http_status === null
|
|
73
|
+
? { http_status: record.http_status }
|
|
74
|
+
: {}),
|
|
75
|
+
});
|
|
65
76
|
}
|
|
66
77
|
}
|
|
67
|
-
return [...byTitle]
|
|
68
|
-
.map(([title, status]) => ({ title, status }))
|
|
69
|
-
.sort((a, b) => a.title.localeCompare(b.title));
|
|
78
|
+
return [...byTitle.values()].sort((a, b) => a.title.localeCompare(b.title));
|
|
70
79
|
}
|
|
71
80
|
//# sourceMappingURL=fleet-report.js.map
|
package/dist/fleet-report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-report.js","sourceRoot":"","sources":["../src/fleet-report.ts"],"names":[],"mappings":"AAkDA,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,OAAkC;IACrE,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAClF,CAAC;IACD,MAAM,QAAQ,GAAyB,MAAM,CAAC,OAAO;SAClD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;SAC9C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAA8B;QAC7C,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI;KAC7C,CAAC,CAAC,CAAC;IACN,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;QACtD,IAAI,EAAE,IAAI;QACV,QAAQ;QACR,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA4C;IAE5C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"fleet-report.js","sourceRoot":"","sources":["../src/fleet-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,9 @@ export declare const mcpStatus: z.ZodObject<{
|
|
|
88
88
|
failed: z.ZodArray<z.ZodObject<{
|
|
89
89
|
title: z.ZodString;
|
|
90
90
|
status: z.ZodString;
|
|
91
|
+
category: z.ZodOptional<z.ZodString>;
|
|
92
|
+
message: z.ZodOptional<z.ZodString>;
|
|
93
|
+
http_status: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
91
94
|
}, z.core.$strip>>;
|
|
92
95
|
}, z.core.$strip>;
|
|
93
96
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-kinds.d.ts","sourceRoot":"","sources":["../../src/schemas/system-kinds.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,UAAU;;;;;;;;;iBAKrB,CAAC;AACH,eAAO,MAAM,cAAc;;;;;;;;;kBAAsB,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAC;AAC5D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"system-kinds.d.ts","sourceRoot":"","sources":["../../src/schemas/system-kinds.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,UAAU;;;;;;;;;iBAKrB,CAAC;AACH,eAAO,MAAM,cAAc;;;;;;;;;kBAAsB,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAC;AAC5D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAQlF,eAAO,MAAM,SAAS;;;;;;;;;iBAWpB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;iBAAc,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -26,9 +26,22 @@ export const kindStatusList = z.array(kindStatus);
|
|
|
26
26
|
* propagation from `fanout`.
|
|
27
27
|
*/
|
|
28
28
|
export const toolExtensionsApplyResult = reloadConfigResult;
|
|
29
|
+
// `GET /api/mcp-status` — the bound-server map plus the servers the viability check
|
|
30
|
+
// skipped. Each failed entry adds the coarse, credential-free failure detail the
|
|
31
|
+
// platform records: `category` (`auth` for a 401/403, `unreachable` for a transport
|
|
32
|
+
// error or timeout, `error` otherwise), the redacted `message`, and the `http_status`
|
|
33
|
+
// the failure carried (`null` for a pure transport failure). The three detail fields
|
|
34
|
+
// are optional so a server that omits them still parses; plain (non-strict) objects so
|
|
35
|
+
// an added field never fails the read.
|
|
29
36
|
export const mcpStatus = z.object({
|
|
30
37
|
bound: z.record(z.string(), z.array(z.string())),
|
|
31
|
-
failed: z.array(z.object({
|
|
38
|
+
failed: z.array(z.object({
|
|
39
|
+
title: z.string(),
|
|
40
|
+
status: z.string(),
|
|
41
|
+
category: z.string().optional(),
|
|
42
|
+
message: z.string().optional(),
|
|
43
|
+
http_status: z.number().nullable().optional(),
|
|
44
|
+
})),
|
|
32
45
|
});
|
|
33
46
|
/**
|
|
34
47
|
* `POST /api/mcp-status/{title}/reload` — re-probe a single MCP server and broadcast
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-kinds.js","sourceRoot":"","sources":["../../src/schemas/system-kinds.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,4EAA4E;AAC5E,qEAAqE;AACrE,iFAAiF;AACjF,4EAA4E;AAC5E,+EAA+E;AAC/E,iFAAiF;AACjF,oDAAoD;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAGlD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAE5D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"system-kinds.js","sourceRoot":"","sources":["../../src/schemas/system-kinds.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,4EAA4E;AAC5E,qEAAqE;AACrE,iFAAiF;AACjF,4EAA4E;AAC5E,+EAA+E;AAC/E,iFAAiF;AACjF,oDAAoD;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAGlD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAE5D,oFAAoF;AACpF,iFAAiF;AACjF,oFAAoF;AACpF,sFAAsF;AACtF,qFAAqF;AACrF,uFAAuF;AACvF,uCAAuC;AACvC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC9C,CAAC,CACH;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC"}
|
package/package.json
CHANGED
package/src/fleet-report.ts
CHANGED
|
@@ -93,10 +93,18 @@ export function summarizeFleetFanout(
|
|
|
93
93
|
return summarizeFleetResult(fanout);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
/** One MCP server skipped by the viability check — its title
|
|
96
|
+
/** One MCP server skipped by the viability check — its title, a coarse status, and the
|
|
97
|
+
* credential-free failure detail the platform records when present: `category` (`auth`
|
|
98
|
+
* for a 401/403, `unreachable` for a transport error or timeout, `error` otherwise),
|
|
99
|
+
* the redacted `message`, and the `http_status` the failure carried (`null` for a pure
|
|
100
|
+
* transport failure). The three detail fields are absent when the reporting server
|
|
101
|
+
* omitted them. */
|
|
97
102
|
export interface FailedMcpEntry {
|
|
98
103
|
readonly title: string;
|
|
99
104
|
readonly status: string;
|
|
105
|
+
readonly category?: string;
|
|
106
|
+
readonly message?: string;
|
|
107
|
+
readonly http_status?: number | null;
|
|
100
108
|
}
|
|
101
109
|
|
|
102
110
|
/**
|
|
@@ -108,20 +116,28 @@ export interface FailedMcpEntry {
|
|
|
108
116
|
* (skipped, never a throw: a partial fleet report still yields the roster it can).
|
|
109
117
|
*/
|
|
110
118
|
export function failedMcpsFromReport(result: FleetResult): FailedMcpEntry[] {
|
|
111
|
-
const byTitle = new Map<string,
|
|
119
|
+
const byTitle = new Map<string, FailedMcpEntry>();
|
|
112
120
|
for (const worker of result.results) {
|
|
113
121
|
const payload: unknown = worker.payload;
|
|
114
122
|
if (!Array.isArray(payload)) continue;
|
|
115
123
|
for (const entry of payload) {
|
|
116
124
|
if (typeof entry !== 'object' || entry === null || Array.isArray(entry)) continue;
|
|
117
125
|
const record = entry as Record<string, unknown>;
|
|
118
|
-
const { title, status } = record;
|
|
126
|
+
const { title, status, category, message } = record;
|
|
119
127
|
if (typeof title !== 'string' || title === '') continue;
|
|
120
|
-
|
|
121
|
-
|
|
128
|
+
// First-seen wins: a server's earliest failure record carries the whole row,
|
|
129
|
+
// detail fields included, and a later worker's echo of the same title is ignored.
|
|
130
|
+
if (byTitle.has(title)) continue;
|
|
131
|
+
byTitle.set(title, {
|
|
132
|
+
title,
|
|
133
|
+
status: typeof status === 'string' ? status : 'unavailable',
|
|
134
|
+
...(typeof category === 'string' ? { category } : {}),
|
|
135
|
+
...(typeof message === 'string' ? { message } : {}),
|
|
136
|
+
...(typeof record.http_status === 'number' || record.http_status === null
|
|
137
|
+
? { http_status: record.http_status }
|
|
138
|
+
: {}),
|
|
139
|
+
});
|
|
122
140
|
}
|
|
123
141
|
}
|
|
124
|
-
return [...byTitle]
|
|
125
|
-
.map(([title, status]) => ({ title, status }))
|
|
126
|
-
.sort((a, b) => a.title.localeCompare(b.title));
|
|
142
|
+
return [...byTitle.values()].sort((a, b) => a.title.localeCompare(b.title));
|
|
127
143
|
}
|
|
@@ -32,9 +32,24 @@ export type KindStatus = z.infer<typeof kindStatus>;
|
|
|
32
32
|
*/
|
|
33
33
|
export const toolExtensionsApplyResult = reloadConfigResult;
|
|
34
34
|
export type ToolExtensionsApplyResult = z.infer<typeof toolExtensionsApplyResult>;
|
|
35
|
+
// `GET /api/mcp-status` — the bound-server map plus the servers the viability check
|
|
36
|
+
// skipped. Each failed entry adds the coarse, credential-free failure detail the
|
|
37
|
+
// platform records: `category` (`auth` for a 401/403, `unreachable` for a transport
|
|
38
|
+
// error or timeout, `error` otherwise), the redacted `message`, and the `http_status`
|
|
39
|
+
// the failure carried (`null` for a pure transport failure). The three detail fields
|
|
40
|
+
// are optional so a server that omits them still parses; plain (non-strict) objects so
|
|
41
|
+
// an added field never fails the read.
|
|
35
42
|
export const mcpStatus = z.object({
|
|
36
43
|
bound: z.record(z.string(), z.array(z.string())),
|
|
37
|
-
failed: z.array(
|
|
44
|
+
failed: z.array(
|
|
45
|
+
z.object({
|
|
46
|
+
title: z.string(),
|
|
47
|
+
status: z.string(),
|
|
48
|
+
category: z.string().optional(),
|
|
49
|
+
message: z.string().optional(),
|
|
50
|
+
http_status: z.number().nullable().optional(),
|
|
51
|
+
}),
|
|
52
|
+
),
|
|
38
53
|
});
|
|
39
54
|
|
|
40
55
|
/**
|