@kryptosai/mcp-observatory 0.20.3 → 0.21.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/COMMERCIAL.md +67 -0
- package/PRIVACY.md +52 -0
- package/README.md +100 -4
- package/TERMS.md +30 -0
- package/dist/src/checks/resources.js +9 -19
- package/dist/src/checks/resources.js.map +1 -1
- package/dist/src/checks/security-rules.js.map +1 -1
- package/dist/src/checks/security.js +33 -14
- package/dist/src/checks/security.js.map +1 -1
- package/dist/src/checks/tools-invoke.js.map +1 -1
- package/dist/src/checks/tools.js.map +1 -1
- package/dist/src/ci-issue.js +3 -1
- package/dist/src/ci-issue.js.map +1 -1
- package/dist/src/cli.js +48 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/ci-report.js +4 -0
- package/dist/src/commands/ci-report.js.map +1 -1
- package/dist/src/commands/enterprise-report.d.ts +12 -0
- package/dist/src/commands/enterprise-report.js +192 -0
- package/dist/src/commands/enterprise-report.js.map +1 -0
- package/dist/src/commands/init-ci.d.ts +17 -0
- package/dist/src/commands/init-ci.js +106 -0
- package/dist/src/commands/init-ci.js.map +1 -0
- package/dist/src/commands/scan.js +4 -0
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/score.js +2 -0
- package/dist/src/commands/score.js.map +1 -1
- package/dist/src/commands/telemetry.js +47 -2
- package/dist/src/commands/telemetry.js.map +1 -1
- package/dist/src/commands/test.js +11 -5
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/commercial.d.ts +5 -0
- package/dist/src/commercial.js +46 -0
- package/dist/src/commercial.js.map +1 -0
- package/dist/src/runner.js +1 -1
- package/dist/src/runner.js.map +1 -1
- package/dist/src/telemetry.d.ts +27 -0
- package/dist/src/telemetry.js +57 -3
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types.d.ts +5 -0
- package/dist/src/validate.js +48 -5
- package/dist/src/validate.js.map +1 -1
- package/docs/architecture.md +32 -0
- package/docs/certification-campaign-template.md +167 -0
- package/docs/certification-distribution.md +125 -0
- package/docs/compatibility.md +164 -0
- package/docs/decisions.md +23 -0
- package/docs/demo.svg +59 -0
- package/docs/directory-listing-copy.md +78 -0
- package/docs/distribution-launch.md +76 -0
- package/docs/enterprise-outreach-playbook.md +83 -0
- package/docs/feishu-lark-mcp.md +65 -0
- package/docs/known-issues.md +27 -0
- package/docs/mcp-safety-report-latest.md +85 -0
- package/docs/project-case-study.md +106 -0
- package/docs/proof.md +68 -0
- package/docs/publish-readiness.md +73 -0
- package/package.json +31 -18
- package/schemas/diff-artifact.schema.json +62 -66
- package/schemas/run-artifact.schema.json +107 -142
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kryptosai/mcp-observatory",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Test
|
|
3
|
+
"version": "0.21.0",
|
|
4
|
+
"description": "Test, secure, and monitor MCP servers before agents depend on them.",
|
|
5
5
|
"mcpName": "io.github.KryptosAI/mcp-observatory",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
"files": [
|
|
32
32
|
"dist/src",
|
|
33
33
|
"README.md",
|
|
34
|
+
"COMMERCIAL.md",
|
|
35
|
+
"PRIVACY.md",
|
|
36
|
+
"TERMS.md",
|
|
34
37
|
"LICENSE",
|
|
38
|
+
"docs",
|
|
35
39
|
"schemas"
|
|
36
40
|
],
|
|
37
41
|
"scripts": {
|
|
@@ -47,7 +51,9 @@
|
|
|
47
51
|
"test": "vitest run",
|
|
48
52
|
"validate:artifacts": "tsx scripts/validate-artifacts.ts",
|
|
49
53
|
"verify:packed-install": "node scripts/verify-packed-install.mjs",
|
|
50
|
-
"smoke": "npm run cli -- run --target tests/fixtures/sample-target-config.json && npm run cli -- diff tests/fixtures/sample-run-a.json tests/fixtures/sample-run-b.json"
|
|
54
|
+
"smoke": "npm run cli -- run --target tests/fixtures/sample-target-config.json && npm run cli -- diff tests/fixtures/sample-run-a.json tests/fixtures/sample-run-b.json",
|
|
55
|
+
"telemetry:export": "tsx scripts/export-telemetry-d1.ts",
|
|
56
|
+
"telemetry:intelligence": "tsx scripts/telemetry-company-intelligence.ts --input telemetry-exports/events-flat-full.json --out-dir reports"
|
|
51
57
|
},
|
|
52
58
|
"keywords": [
|
|
53
59
|
"mcp",
|
|
@@ -66,31 +72,38 @@
|
|
|
66
72
|
"vcr",
|
|
67
73
|
"mcp-testing",
|
|
68
74
|
"security",
|
|
75
|
+
"mcp-security",
|
|
69
76
|
"ci-cd",
|
|
77
|
+
"mcp-ci",
|
|
70
78
|
"github-action",
|
|
79
|
+
"production-monitoring",
|
|
80
|
+
"enterprise",
|
|
81
|
+
"enterprise-report",
|
|
82
|
+
"feishu",
|
|
83
|
+
"lark",
|
|
71
84
|
"schema-drift"
|
|
72
85
|
],
|
|
73
86
|
"dependencies": {
|
|
74
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
87
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
75
88
|
"ci-info": "^4.4.0",
|
|
76
|
-
"commander": "
|
|
89
|
+
"commander": "15.0.0",
|
|
77
90
|
"update-notifier": "^7.3.1",
|
|
78
|
-
"zod": "4.
|
|
91
|
+
"zod": "4.4.3"
|
|
79
92
|
},
|
|
80
93
|
"devDependencies": {
|
|
81
|
-
"@eslint/js": "
|
|
94
|
+
"@eslint/js": "10.0.1",
|
|
82
95
|
"@semantic-release/changelog": "^6.0.3",
|
|
83
96
|
"@semantic-release/git": "^10.0.1",
|
|
84
|
-
"@types/node": "
|
|
85
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
86
|
-
"@typescript-eslint/parser": "8.
|
|
87
|
-
"ajv": "8.
|
|
88
|
-
"eslint": "
|
|
89
|
-
"globals": "
|
|
90
|
-
"semantic-release": "^25.0.
|
|
91
|
-
"tsx": "4.
|
|
92
|
-
"typescript": "
|
|
93
|
-
"typescript-eslint": "8.
|
|
94
|
-
"vitest": "4.
|
|
97
|
+
"@types/node": "25.9.3",
|
|
98
|
+
"@typescript-eslint/eslint-plugin": "8.61.1",
|
|
99
|
+
"@typescript-eslint/parser": "8.61.1",
|
|
100
|
+
"ajv": "8.20.0",
|
|
101
|
+
"eslint": "10.5.0",
|
|
102
|
+
"globals": "17.6.0",
|
|
103
|
+
"semantic-release": "^25.0.5",
|
|
104
|
+
"tsx": "4.22.4",
|
|
105
|
+
"typescript": "6.0.3",
|
|
106
|
+
"typescript-eslint": "8.61.1",
|
|
107
|
+
"vitest": "4.1.9"
|
|
95
108
|
}
|
|
96
109
|
}
|
|
@@ -19,113 +19,109 @@
|
|
|
19
19
|
"removed"
|
|
20
20
|
],
|
|
21
21
|
"properties": {
|
|
22
|
-
"artifactType": {
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
"
|
|
29
|
-
"$ref": "#/definitions/gate"
|
|
30
|
-
},
|
|
31
|
-
"baseRunId": {
|
|
32
|
-
"type": "string"
|
|
33
|
-
},
|
|
34
|
-
"headRunId": {
|
|
35
|
-
"type": "string"
|
|
36
|
-
},
|
|
37
|
-
"createdAt": {
|
|
38
|
-
"type": "string"
|
|
39
|
-
},
|
|
40
|
-
"summary": {
|
|
41
|
-
"$ref": "#/definitions/diffSummary"
|
|
42
|
-
},
|
|
22
|
+
"artifactType": { "const": "diff" },
|
|
23
|
+
"schemaVersion": { "const": "1.0.0" },
|
|
24
|
+
"gate": { "$ref": "#/definitions/gate" },
|
|
25
|
+
"baseRunId": { "type": "string" },
|
|
26
|
+
"headRunId": { "type": "string" },
|
|
27
|
+
"createdAt": { "type": "string" },
|
|
28
|
+
"summary": { "$ref": "#/definitions/diffSummary" },
|
|
43
29
|
"regressions": {
|
|
44
30
|
"type": "array",
|
|
45
|
-
"items": {
|
|
46
|
-
"$ref": "#/definitions/diffEntry"
|
|
47
|
-
}
|
|
31
|
+
"items": { "$ref": "#/definitions/diffEntry" }
|
|
48
32
|
},
|
|
49
33
|
"recoveries": {
|
|
50
34
|
"type": "array",
|
|
51
|
-
"items": {
|
|
52
|
-
"$ref": "#/definitions/diffEntry"
|
|
53
|
-
}
|
|
35
|
+
"items": { "$ref": "#/definitions/diffEntry" }
|
|
54
36
|
},
|
|
55
37
|
"unchanged": {
|
|
56
38
|
"type": "array",
|
|
57
|
-
"items": {
|
|
58
|
-
"$ref": "#/definitions/diffEntry"
|
|
59
|
-
}
|
|
39
|
+
"items": { "$ref": "#/definitions/diffEntry" }
|
|
60
40
|
},
|
|
61
41
|
"added": {
|
|
62
42
|
"type": "array",
|
|
63
|
-
"items": {
|
|
64
|
-
"$ref": "#/definitions/diffEntry"
|
|
65
|
-
}
|
|
43
|
+
"items": { "$ref": "#/definitions/diffEntry" }
|
|
66
44
|
},
|
|
67
45
|
"removed": {
|
|
68
46
|
"type": "array",
|
|
69
|
-
"items": {
|
|
70
|
-
|
|
71
|
-
|
|
47
|
+
"items": { "$ref": "#/definitions/diffEntry" }
|
|
48
|
+
},
|
|
49
|
+
"schemaDrift": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"items": { "$ref": "#/definitions/schemaDriftEntry" }
|
|
52
|
+
},
|
|
53
|
+
"responseChanges": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"items": { "$ref": "#/definitions/responseChangeEntry" }
|
|
72
56
|
}
|
|
73
57
|
},
|
|
74
58
|
"definitions": {
|
|
75
|
-
"gate": {
|
|
76
|
-
"type": "string",
|
|
77
|
-
"enum": ["pass", "fail"]
|
|
78
|
-
},
|
|
59
|
+
"gate": { "type": "string", "enum": ["pass", "fail"] },
|
|
79
60
|
"checkStatus": {
|
|
80
61
|
"type": "string",
|
|
81
62
|
"enum": ["pass", "fail", "partial", "unsupported", "flaky", "skipped"]
|
|
82
63
|
},
|
|
83
64
|
"checkId": {
|
|
84
65
|
"type": "string",
|
|
85
|
-
"enum": [
|
|
66
|
+
"enum": [
|
|
67
|
+
"tools",
|
|
68
|
+
"prompts",
|
|
69
|
+
"resources",
|
|
70
|
+
"tools-invoke",
|
|
71
|
+
"security",
|
|
72
|
+
"security-lite",
|
|
73
|
+
"conformance",
|
|
74
|
+
"schema-quality"
|
|
75
|
+
]
|
|
86
76
|
},
|
|
87
77
|
"diffEntry": {
|
|
88
78
|
"type": "object",
|
|
89
79
|
"additionalProperties": false,
|
|
90
80
|
"required": ["id", "capability", "message"],
|
|
91
81
|
"properties": {
|
|
92
|
-
"id": {
|
|
93
|
-
|
|
94
|
-
},
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
|
|
82
|
+
"id": { "$ref": "#/definitions/checkId" },
|
|
83
|
+
"capability": { "$ref": "#/definitions/checkId" },
|
|
84
|
+
"fromStatus": { "$ref": "#/definitions/checkStatus" },
|
|
85
|
+
"toStatus": { "$ref": "#/definitions/checkStatus" },
|
|
86
|
+
"message": { "type": "string" }
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"schemaDriftEntry": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"additionalProperties": false,
|
|
92
|
+
"required": ["capability", "name", "changes"],
|
|
93
|
+
"properties": {
|
|
94
|
+
"capability": { "$ref": "#/definitions/checkId" },
|
|
95
|
+
"name": { "type": "string" },
|
|
96
|
+
"changes": {
|
|
97
|
+
"type": "array",
|
|
98
|
+
"items": { "type": "string" }
|
|
106
99
|
}
|
|
107
100
|
}
|
|
108
101
|
},
|
|
102
|
+
"responseChangeEntry": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"additionalProperties": false,
|
|
105
|
+
"required": ["capability", "name", "change"],
|
|
106
|
+
"properties": {
|
|
107
|
+
"capability": { "$ref": "#/definitions/checkId" },
|
|
108
|
+
"name": { "type": "string" },
|
|
109
|
+
"change": { "type": "string" }
|
|
110
|
+
}
|
|
111
|
+
},
|
|
109
112
|
"diffSummary": {
|
|
110
113
|
"type": "object",
|
|
111
114
|
"additionalProperties": false,
|
|
112
|
-
"required": [
|
|
113
|
-
"regressions",
|
|
114
|
-
"recoveries",
|
|
115
|
-
"unchanged",
|
|
116
|
-
"added",
|
|
117
|
-
"removed",
|
|
118
|
-
"gate"
|
|
119
|
-
],
|
|
115
|
+
"required": ["regressions", "recoveries", "unchanged", "added", "removed", "gate"],
|
|
120
116
|
"properties": {
|
|
121
117
|
"regressions": { "type": "integer", "minimum": 0 },
|
|
122
118
|
"recoveries": { "type": "integer", "minimum": 0 },
|
|
123
119
|
"unchanged": { "type": "integer", "minimum": 0 },
|
|
124
120
|
"added": { "type": "integer", "minimum": 0 },
|
|
125
121
|
"removed": { "type": "integer", "minimum": 0 },
|
|
126
|
-
"
|
|
127
|
-
|
|
128
|
-
}
|
|
122
|
+
"schemaDriftCount": { "type": "integer", "minimum": 0 },
|
|
123
|
+
"responseChangeCount": { "type": "integer", "minimum": 0 },
|
|
124
|
+
"gate": { "$ref": "#/definitions/gate" }
|
|
129
125
|
}
|
|
130
126
|
}
|
|
131
127
|
}
|
|
@@ -17,92 +17,73 @@
|
|
|
17
17
|
"checks"
|
|
18
18
|
],
|
|
19
19
|
"properties": {
|
|
20
|
-
"artifactType": {
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
},
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
},
|
|
29
|
-
"runId": {
|
|
30
|
-
"type": "string"
|
|
31
|
-
},
|
|
32
|
-
"createdAt": {
|
|
33
|
-
"type": "string"
|
|
34
|
-
},
|
|
35
|
-
"toolVersion": {
|
|
36
|
-
"type": "string"
|
|
37
|
-
},
|
|
38
|
-
"target": {
|
|
39
|
-
"$ref": "#/definitions/targetSnapshot"
|
|
40
|
-
},
|
|
41
|
-
"environment": {
|
|
42
|
-
"$ref": "#/definitions/environmentSnapshot"
|
|
43
|
-
},
|
|
44
|
-
"summary": {
|
|
45
|
-
"$ref": "#/definitions/runSummary"
|
|
46
|
-
},
|
|
20
|
+
"artifactType": { "const": "run" },
|
|
21
|
+
"schemaVersion": { "const": "1.0.0" },
|
|
22
|
+
"gate": { "$ref": "#/definitions/gate" },
|
|
23
|
+
"runId": { "type": "string" },
|
|
24
|
+
"createdAt": { "type": "string" },
|
|
25
|
+
"toolVersion": { "type": "string" },
|
|
26
|
+
"target": { "$ref": "#/definitions/targetSnapshot" },
|
|
27
|
+
"environment": { "$ref": "#/definitions/environmentSnapshot" },
|
|
28
|
+
"summary": { "$ref": "#/definitions/runSummary" },
|
|
47
29
|
"checks": {
|
|
48
30
|
"type": "array",
|
|
49
|
-
"items": {
|
|
50
|
-
"$ref": "#/definitions/checkResult"
|
|
51
|
-
}
|
|
31
|
+
"items": { "$ref": "#/definitions/checkResult" }
|
|
52
32
|
},
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
}
|
|
33
|
+
"healthScore": { "$ref": "#/definitions/healthScore" },
|
|
34
|
+
"performanceMetrics": { "$ref": "#/definitions/performanceMetrics" },
|
|
35
|
+
"fatalError": { "type": "string" }
|
|
56
36
|
},
|
|
57
37
|
"definitions": {
|
|
58
|
-
"gate": {
|
|
59
|
-
"type": "string",
|
|
60
|
-
"enum": ["pass", "fail"]
|
|
61
|
-
},
|
|
38
|
+
"gate": { "type": "string", "enum": ["pass", "fail"] },
|
|
62
39
|
"checkStatus": {
|
|
63
40
|
"type": "string",
|
|
64
41
|
"enum": ["pass", "fail", "partial", "unsupported", "flaky", "skipped"]
|
|
65
42
|
},
|
|
66
43
|
"checkId": {
|
|
67
44
|
"type": "string",
|
|
68
|
-
"enum": [
|
|
45
|
+
"enum": [
|
|
46
|
+
"tools",
|
|
47
|
+
"prompts",
|
|
48
|
+
"resources",
|
|
49
|
+
"tools-invoke",
|
|
50
|
+
"security",
|
|
51
|
+
"security-lite",
|
|
52
|
+
"conformance",
|
|
53
|
+
"schema-quality"
|
|
54
|
+
]
|
|
69
55
|
},
|
|
70
56
|
"evidenceSummary": {
|
|
71
57
|
"type": "object",
|
|
72
58
|
"additionalProperties": false,
|
|
73
|
-
"required": [
|
|
74
|
-
"endpoint",
|
|
75
|
-
"advertised",
|
|
76
|
-
"responded",
|
|
77
|
-
"minimalShapePresent"
|
|
78
|
-
],
|
|
59
|
+
"required": ["endpoint", "advertised", "responded", "minimalShapePresent"],
|
|
79
60
|
"properties": {
|
|
80
|
-
"endpoint": {
|
|
81
|
-
|
|
82
|
-
},
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
},
|
|
86
|
-
"responded": {
|
|
87
|
-
"type": "boolean"
|
|
88
|
-
},
|
|
89
|
-
"minimalShapePresent": {
|
|
90
|
-
"type": "boolean"
|
|
91
|
-
},
|
|
92
|
-
"itemCount": {
|
|
93
|
-
"type": "integer",
|
|
94
|
-
"minimum": 0
|
|
95
|
-
},
|
|
61
|
+
"endpoint": { "type": "string" },
|
|
62
|
+
"advertised": { "type": "boolean" },
|
|
63
|
+
"responded": { "type": "boolean" },
|
|
64
|
+
"minimalShapePresent": { "type": "boolean" },
|
|
65
|
+
"itemCount": { "type": "integer", "minimum": 0 },
|
|
96
66
|
"identifiers": {
|
|
97
67
|
"type": "array",
|
|
98
|
-
"items": {
|
|
99
|
-
"type": "string"
|
|
100
|
-
}
|
|
68
|
+
"items": { "type": "string" }
|
|
101
69
|
},
|
|
102
70
|
"diagnostics": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": { "type": "string" }
|
|
73
|
+
},
|
|
74
|
+
"schemas": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"additionalProperties": { "type": "object" }
|
|
77
|
+
},
|
|
78
|
+
"responseSnapshots": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"additionalProperties": true
|
|
81
|
+
},
|
|
82
|
+
"findings": {
|
|
103
83
|
"type": "array",
|
|
104
84
|
"items": {
|
|
105
|
-
"type": "
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": true
|
|
106
87
|
}
|
|
107
88
|
}
|
|
108
89
|
}
|
|
@@ -110,51 +91,23 @@
|
|
|
110
91
|
"checkResult": {
|
|
111
92
|
"type": "object",
|
|
112
93
|
"additionalProperties": false,
|
|
113
|
-
"required": [
|
|
114
|
-
"id",
|
|
115
|
-
"capability",
|
|
116
|
-
"status",
|
|
117
|
-
"durationMs",
|
|
118
|
-
"message",
|
|
119
|
-
"evidence"
|
|
120
|
-
],
|
|
94
|
+
"required": ["id", "capability", "status", "durationMs", "message", "evidence"],
|
|
121
95
|
"properties": {
|
|
122
|
-
"id": {
|
|
123
|
-
|
|
124
|
-
},
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
"status": {
|
|
129
|
-
"$ref": "#/definitions/checkStatus"
|
|
130
|
-
},
|
|
131
|
-
"durationMs": {
|
|
132
|
-
"type": "number",
|
|
133
|
-
"minimum": 0
|
|
134
|
-
},
|
|
135
|
-
"message": {
|
|
136
|
-
"type": "string"
|
|
137
|
-
},
|
|
96
|
+
"id": { "$ref": "#/definitions/checkId" },
|
|
97
|
+
"capability": { "$ref": "#/definitions/checkId" },
|
|
98
|
+
"status": { "$ref": "#/definitions/checkStatus" },
|
|
99
|
+
"durationMs": { "type": "number", "minimum": 0 },
|
|
100
|
+
"message": { "type": "string" },
|
|
138
101
|
"evidence": {
|
|
139
102
|
"type": "array",
|
|
140
|
-
"items": {
|
|
141
|
-
"$ref": "#/definitions/evidenceSummary"
|
|
142
|
-
}
|
|
103
|
+
"items": { "$ref": "#/definitions/evidenceSummary" }
|
|
143
104
|
}
|
|
144
105
|
}
|
|
145
106
|
},
|
|
146
107
|
"statusCounts": {
|
|
147
108
|
"type": "object",
|
|
148
109
|
"additionalProperties": false,
|
|
149
|
-
"required": [
|
|
150
|
-
"total",
|
|
151
|
-
"pass",
|
|
152
|
-
"fail",
|
|
153
|
-
"partial",
|
|
154
|
-
"unsupported",
|
|
155
|
-
"flaky",
|
|
156
|
-
"skipped"
|
|
157
|
-
],
|
|
110
|
+
"required": ["total", "pass", "fail", "partial", "unsupported", "flaky", "skipped"],
|
|
158
111
|
"properties": {
|
|
159
112
|
"total": { "type": "integer", "minimum": 0 },
|
|
160
113
|
"pass": { "type": "integer", "minimum": 0 },
|
|
@@ -168,16 +121,7 @@
|
|
|
168
121
|
"runSummary": {
|
|
169
122
|
"type": "object",
|
|
170
123
|
"additionalProperties": false,
|
|
171
|
-
"required": [
|
|
172
|
-
"total",
|
|
173
|
-
"pass",
|
|
174
|
-
"fail",
|
|
175
|
-
"partial",
|
|
176
|
-
"unsupported",
|
|
177
|
-
"flaky",
|
|
178
|
-
"skipped",
|
|
179
|
-
"gate"
|
|
180
|
-
],
|
|
124
|
+
"required": ["total", "pass", "fail", "partial", "unsupported", "flaky", "skipped", "gate"],
|
|
181
125
|
"properties": {
|
|
182
126
|
"total": { "type": "integer", "minimum": 0 },
|
|
183
127
|
"pass": { "type": "integer", "minimum": 0 },
|
|
@@ -186,9 +130,7 @@
|
|
|
186
130
|
"unsupported": { "type": "integer", "minimum": 0 },
|
|
187
131
|
"flaky": { "type": "integer", "minimum": 0 },
|
|
188
132
|
"skipped": { "type": "integer", "minimum": 0 },
|
|
189
|
-
"gate": {
|
|
190
|
-
"$ref": "#/definitions/gate"
|
|
191
|
-
}
|
|
133
|
+
"gate": { "$ref": "#/definitions/gate" }
|
|
192
134
|
}
|
|
193
135
|
},
|
|
194
136
|
"targetSnapshot": {
|
|
@@ -196,36 +138,21 @@
|
|
|
196
138
|
"additionalProperties": false,
|
|
197
139
|
"required": ["targetId", "adapter", "command", "args"],
|
|
198
140
|
"properties": {
|
|
199
|
-
"targetId": {
|
|
200
|
-
|
|
201
|
-
},
|
|
202
|
-
"adapter": {
|
|
203
|
-
"const": "local-process"
|
|
204
|
-
},
|
|
205
|
-
"command": {
|
|
206
|
-
"type": "string"
|
|
207
|
-
},
|
|
141
|
+
"targetId": { "type": "string" },
|
|
142
|
+
"adapter": { "type": "string", "enum": ["local-process", "http"] },
|
|
143
|
+
"command": { "type": "string" },
|
|
208
144
|
"args": {
|
|
209
145
|
"type": "array",
|
|
210
|
-
"items": {
|
|
211
|
-
"type": "string"
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
|
-
"cwd": {
|
|
215
|
-
"type": "string"
|
|
146
|
+
"items": { "type": "string" }
|
|
216
147
|
},
|
|
148
|
+
"url": { "type": "string" },
|
|
149
|
+
"cwd": { "type": "string" },
|
|
217
150
|
"metadata": {
|
|
218
151
|
"type": "object",
|
|
219
|
-
"additionalProperties": {
|
|
220
|
-
"type": "string"
|
|
221
|
-
}
|
|
222
|
-
},
|
|
223
|
-
"serverVersion": {
|
|
224
|
-
"type": "string"
|
|
152
|
+
"additionalProperties": { "type": "string" }
|
|
225
153
|
},
|
|
226
|
-
"
|
|
227
|
-
|
|
228
|
-
}
|
|
154
|
+
"serverVersion": { "type": "string" },
|
|
155
|
+
"serverName": { "type": "string" }
|
|
229
156
|
}
|
|
230
157
|
},
|
|
231
158
|
"environmentSnapshot": {
|
|
@@ -233,11 +160,49 @@
|
|
|
233
160
|
"additionalProperties": false,
|
|
234
161
|
"required": ["platform", "nodeVersion"],
|
|
235
162
|
"properties": {
|
|
236
|
-
"platform": {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
163
|
+
"platform": { "type": "string" },
|
|
164
|
+
"nodeVersion": { "type": "string" }
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"scoreDimension": {
|
|
168
|
+
"type": "object",
|
|
169
|
+
"additionalProperties": false,
|
|
170
|
+
"required": ["name", "weight", "score", "details"],
|
|
171
|
+
"properties": {
|
|
172
|
+
"name": { "type": "string" },
|
|
173
|
+
"weight": { "type": "number" },
|
|
174
|
+
"score": { "type": "number" },
|
|
175
|
+
"details": {
|
|
176
|
+
"type": "array",
|
|
177
|
+
"items": { "type": "string" }
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"healthScore": {
|
|
182
|
+
"type": "object",
|
|
183
|
+
"additionalProperties": false,
|
|
184
|
+
"required": ["overall", "grade", "dimensions"],
|
|
185
|
+
"properties": {
|
|
186
|
+
"overall": { "type": "number" },
|
|
187
|
+
"grade": { "type": "string", "enum": ["A", "B", "C", "D", "F"] },
|
|
188
|
+
"dimensions": {
|
|
189
|
+
"type": "array",
|
|
190
|
+
"items": { "$ref": "#/definitions/scoreDimension" }
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"performanceMetrics": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"additionalProperties": false,
|
|
197
|
+
"required": ["connectMs"],
|
|
198
|
+
"properties": {
|
|
199
|
+
"connectMs": { "type": "number", "minimum": 0 },
|
|
200
|
+
"toolsListMs": { "type": "number", "minimum": 0 },
|
|
201
|
+
"promptsListMs": { "type": "number", "minimum": 0 },
|
|
202
|
+
"resourcesListMs": { "type": "number", "minimum": 0 },
|
|
203
|
+
"toolInvokeMs": {
|
|
204
|
+
"type": "object",
|
|
205
|
+
"additionalProperties": { "type": "number", "minimum": 0 }
|
|
241
206
|
}
|
|
242
207
|
}
|
|
243
208
|
}
|