@kryptosai/mcp-observatory 0.16.0 → 0.16.1
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.
|
@@ -8,13 +8,18 @@ async function runWatchOneShot(target, outDir, options) {
|
|
|
8
8
|
const artifact = await runTarget(target);
|
|
9
9
|
const outPath = await writeRunArtifact(artifact, outDir);
|
|
10
10
|
// Find the PREVIOUS run for this target (excluding the one just written)
|
|
11
|
-
const
|
|
12
|
-
if (
|
|
13
|
-
const previousRaw = await readArtifact(
|
|
11
|
+
const previousPath = await findLatestArtifact(outDir, target.targetId, outPath);
|
|
12
|
+
if (previousPath) {
|
|
13
|
+
const previousRaw = await readArtifact(previousPath);
|
|
14
14
|
if (previousRaw.artifactType === "run") {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const diffResult = diff(previousRaw, artifact);
|
|
16
|
+
if (diffResult.summary.regressions === 0 && diffResult.summary.recoveries === 0 && diffResult.summary.added === 0 && diffResult.summary.removed === 0) {
|
|
17
|
+
process.stdout.write(formatOutput(artifact, options.format) + "\n");
|
|
18
|
+
process.stdout.write(`${c(ANSI.green, "✓ No changes")} since last run\n`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
process.stdout.write(formatOutput(diffResult, options.format) + "\n");
|
|
22
|
+
}
|
|
18
23
|
process.stdout.write(`${c(ANSI.dim, `Artifact: ${outPath}`)}\n`);
|
|
19
24
|
if (options.failOnRegression && diffResult.summary.regressions > 0) {
|
|
20
25
|
process.exitCode = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/commands/watch.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,SAAS,EACT,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAExE,gFAAgF;AAEhF,KAAK,UAAU,eAAe,CAC5B,MAAoB,EACpB,MAAc,EACd,OAAsD;IAEtD,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEzD,yEAAyE;IACzE,MAAM,
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/commands/watch.ts"],"names":[],"mappings":"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"}
|
package/dist/src/storage.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export type Artifact = RunArtifact | DiffArtifact;
|
|
|
3
3
|
export declare function defaultRunsDirectory(cwd?: string): string;
|
|
4
4
|
export declare function ensureDirectory(directoryPath: string): Promise<void>;
|
|
5
5
|
export declare function writeRunArtifact(artifact: RunArtifact, outDir: string): Promise<string>;
|
|
6
|
-
export declare function findLatestArtifact(outDir: string, targetId: string): Promise<string | null>;
|
|
6
|
+
export declare function findLatestArtifact(outDir: string, targetId: string, excludePath?: string): Promise<string | null>;
|
|
7
7
|
export declare function readArtifact(filePath: string): Promise<Artifact>;
|
package/dist/src/storage.js
CHANGED
|
@@ -15,7 +15,7 @@ export async function writeRunArtifact(artifact, outDir) {
|
|
|
15
15
|
await writeFile(filePath, JSON.stringify(artifact, null, 2) + "\n", "utf8");
|
|
16
16
|
return filePath;
|
|
17
17
|
}
|
|
18
|
-
export async function findLatestArtifact(outDir, targetId) {
|
|
18
|
+
export async function findLatestArtifact(outDir, targetId, excludePath) {
|
|
19
19
|
const slug = slugify(targetId);
|
|
20
20
|
const suffix = `--${slug}.json`;
|
|
21
21
|
try {
|
|
@@ -23,10 +23,12 @@ export async function findLatestArtifact(outDir, targetId) {
|
|
|
23
23
|
const matching = entries
|
|
24
24
|
.filter(f => f.endsWith(suffix))
|
|
25
25
|
.sort()
|
|
26
|
-
.reverse()
|
|
26
|
+
.reverse()
|
|
27
|
+
.map(f => path.join(outDir, f))
|
|
28
|
+
.filter(f => f !== excludePath);
|
|
27
29
|
if (matching.length === 0)
|
|
28
30
|
return null;
|
|
29
|
-
return
|
|
31
|
+
return matching[0];
|
|
30
32
|
}
|
|
31
33
|
catch {
|
|
32
34
|
return null;
|
package/dist/src/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAI1E,MAAM,UAAU,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,aAAqB;IACzD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAqB,EACrB,MAAc;IAEd,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CACrE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CACzB,OAAO,CAAC;IACT,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAgB;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kryptosai/mcp-observatory",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"description": "Test your MCP servers for breaking changes. Checks capabilities, invokes tools, detects schema drift between versions.",
|
|
5
5
|
"mcpName": "io.github.KryptosAI/mcp-observatory",
|
|
6
6
|
"license": "MIT",
|