@uluops/registry-mcp 0.8.2 → 0.9.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/CHANGELOG.md +13 -0
- package/README.md +15 -2
- package/dist/tools/compare-effectiveness.d.ts +3 -0
- package/dist/tools/compare-effectiveness.d.ts.map +1 -1
- package/dist/tools/compare-effectiveness.js +2 -1
- package/dist/tools/compare-effectiveness.js.map +1 -1
- package/dist/tools/diff-versions.d.ts +3 -0
- package/dist/tools/diff-versions.d.ts.map +1 -1
- package/dist/tools/diff-versions.js +2 -1
- package/dist/tools/diff-versions.js.map +1 -1
- package/dist/tools/get-diff-impact.d.ts +5 -0
- package/dist/tools/get-diff-impact.d.ts.map +1 -1
- package/dist/tools/get-diff-impact.js +2 -1
- package/dist/tools/get-diff-impact.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.9.0] - 2026-09-26
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `diff_versions.diff_contract="combined-v1"` selects applicable unified patches with exact source/target YAML when `full=true`. Updated SDK negotiates support; omitted selectors retain legacy full precedence.
|
|
10
|
+
|
|
11
|
+
## [0.8.3] - 2026-09-24
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Add opt-in `nullable-v1` comparison/diff quality contracts with capability negotiation, nullable agent gate rates and explicit run-weighted fraction/denominator metadata. Omitted selection preserves the legacy contract.
|
|
16
|
+
|
|
17
|
+
|
|
5
18
|
## [0.8.2] - 2026-09-24
|
|
6
19
|
|
|
7
20
|
### Fixed
|
package/README.md
CHANGED
|
@@ -88,7 +88,7 @@ update_and_publish({ type: "agent", name: "my-agent", version: "1.1.0", yaml: ".
|
|
|
88
88
|
// Compare versions in three different formats
|
|
89
89
|
diff_versions({ type: "agent", name: "code-validator", from: "1.0.0", to: "1.1.0" }) // section summary
|
|
90
90
|
diff_versions({ type: "agent", name: "code-validator", from: "1.0.0", to: "1.1.0", format: "fields" }) // structural diff + suggested bump
|
|
91
|
-
diff_versions({ type: "agent", name: "code-validator", from: "1.0.0", to: "1.1.0", format: "unified" }) //
|
|
91
|
+
diff_versions({ type: "agent", name: "code-validator", from: "1.0.0", to: "1.1.0", format: "unified", diff_contract: "combined-v1", full: true }) // patch + exact YAML
|
|
92
92
|
|
|
93
93
|
// Analytics
|
|
94
94
|
get_effectiveness({ type: "agent", name: "code-validator", version: "1.1.0" })
|
|
@@ -128,7 +128,7 @@ compare_effectiveness({ type: "agent", name: "code-validator", versions: ["1.0.0
|
|
|
128
128
|
| Tool | Description |
|
|
129
129
|
|------|-------------|
|
|
130
130
|
| `list_versions` | List all versions of a definition |
|
|
131
|
-
| `diff_versions` | Compare two versions. `format`: `sections` (default), `fields` (structural + suggested bump), `unified`
|
|
131
|
+
| `diff_versions` | Compare two versions. `format`: `sections` (default), `fields` (structural + suggested bump), `unified`. Select `diff_contract="combined-v1"` for an applicable patch; `full=true` adds exact YAML. |
|
|
132
132
|
| `get_dependencies` | Forward dependency graph |
|
|
133
133
|
| `get_dependents` | Reverse dependency graph |
|
|
134
134
|
| `get_execution_stats` | Execution statistics for a definition version |
|
|
@@ -244,3 +244,16 @@ npm run lint
|
|
|
244
244
|
## License
|
|
245
245
|
|
|
246
246
|
MIT
|
|
247
|
+
|
|
248
|
+
## Quality metric contracts (F04)
|
|
249
|
+
|
|
250
|
+
`compare_effectiveness` and `get_diff_impact` accept optional `quality_contract: "nullable-v1"`. Select it to preserve absent gate rates/deltas as null with run-weighted basis, gate denominator, and fraction units. Agent gate rates are null. Omission keeps legacy behavior. Requires the F04-capable Registry SDK and producer capability; unsupported selection returns `UNSUPPORTED_CONTRACT` instead of legacy numbers. Release the tolerant SDK and producer before enabling this option.
|
|
251
|
+
|
|
252
|
+
### Applicable unified diffs
|
|
253
|
+
|
|
254
|
+
Call `diff_versions` with `format: "unified"` and `diff_contract: "combined-v1"`.
|
|
255
|
+
Add `full: true` to receive exact `sourceYaml`/`targetYaml` alongside `unified`.
|
|
256
|
+
An unchanged pair returns an empty patch. The SDK negotiates support and refuses
|
|
257
|
+
unsupported servers without falling back. Legacy omission keeps `full=true`
|
|
258
|
+
precedence (raw `fromYaml`/`toYaml`, no patch) until a future major release with
|
|
259
|
+
at least 90 days notice.
|
|
@@ -9,15 +9,18 @@ import { type McpServerToolRegistration } from '../types/index.js';
|
|
|
9
9
|
export declare const CompareEffectivenessInputSchema: z.ZodObject<{
|
|
10
10
|
type: z.ZodOptional<z.ZodEnum<["agent", "command", "workflow", "pipeline"]>>;
|
|
11
11
|
name: z.ZodString;
|
|
12
|
+
quality_contract: z.ZodOptional<z.ZodLiteral<"nullable-v1">>;
|
|
12
13
|
versions: z.ZodArray<z.ZodString, "many">;
|
|
13
14
|
}, "strip", z.ZodTypeAny, {
|
|
14
15
|
name: string;
|
|
15
16
|
versions: string[];
|
|
16
17
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
18
|
+
quality_contract?: "nullable-v1" | undefined;
|
|
17
19
|
}, {
|
|
18
20
|
name: string;
|
|
19
21
|
versions: string[];
|
|
20
22
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
23
|
+
quality_contract?: "nullable-v1" | undefined;
|
|
21
24
|
}>;
|
|
22
25
|
export declare function registerCompareEffectivenessTool(server: McpServerToolRegistration, registryClient: RegistryClient): void;
|
|
23
26
|
//# sourceMappingURL=compare-effectiveness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-effectiveness.d.ts","sourceRoot":"","sources":["../../src/tools/compare-effectiveness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,eAAO,MAAM,+BAA+B
|
|
1
|
+
{"version":3,"file":"compare-effectiveness.d.ts","sourceRoot":"","sources":["../../src/tools/compare-effectiveness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;EAK1C,CAAC;AAEH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CASN"}
|
|
@@ -9,9 +9,10 @@ import { createToolHandler } from '../utils/tool-handler.js';
|
|
|
9
9
|
export const CompareEffectivenessInputSchema = z.object({
|
|
10
10
|
type: DefinitionTypeWithDefaultSchema,
|
|
11
11
|
name: z.string().min(1),
|
|
12
|
+
quality_contract: z.literal('nullable-v1').optional().describe('Preserve absent gate rates as null with run-weighted basis, gate denominator and fraction units; requires advertised server support'),
|
|
12
13
|
versions: z.array(z.string().min(1)).min(2).max(5),
|
|
13
14
|
});
|
|
14
15
|
export function registerCompareEffectivenessTool(server, registryClient) {
|
|
15
|
-
server.tool('compare_effectiveness', 'Compare effectiveness metrics across 2-5 definition versions side-by-side: pass rate, avg score, run count, health score, and translator version.', CompareEffectivenessInputSchema.shape, createToolHandler(CompareEffectivenessInputSchema, (n) => registryClient.analytics.compare(n.type, n.name, n.versions), { toolName: 'compare_effectiveness' }));
|
|
16
|
+
server.tool('compare_effectiveness', 'Compare effectiveness metrics across 2-5 definition versions side-by-side: pass rate, avg score, run count, health score, and translator version. Select quality_contract=nullable-v1 for truthful absent gate rates; agent gate rates are null and scores remain a separate metric.', CompareEffectivenessInputSchema.shape, createToolHandler(CompareEffectivenessInputSchema, (n) => registryClient.analytics.compare(n.type, n.name, n.versions, n.qualityContract === 'nullable-v1' ? { qualityContract: n.qualityContract } : undefined), { toolName: 'compare_effectiveness' }));
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=compare-effectiveness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-effectiveness.js","sourceRoot":"","sources":["../../src/tools/compare-effectiveness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,+BAA+B,EAAkC,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,UAAU,gCAAgC,CAC9C,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"compare-effectiveness.js","sourceRoot":"","sources":["../../src/tools/compare-effectiveness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,+BAA+B,EAAkC,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qIAAqI,CAAC;IACrM,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,UAAU,gCAAgC,CAC9C,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,sRAAsR,EACtR,+BAA+B,CAAC,KAAK,EACrC,iBAAiB,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,EAAE,CACvD,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAe,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACtJ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,CACzC,CAAC;AACJ,CAAC"}
|
|
@@ -13,6 +13,7 @@ export declare const DiffVersionsInputSchema: z.ZodObject<{
|
|
|
13
13
|
to: z.ZodString;
|
|
14
14
|
full: z.ZodDefault<z.ZodBoolean>;
|
|
15
15
|
format: z.ZodDefault<z.ZodEnum<["sections", "fields", "unified"]>>;
|
|
16
|
+
diff_contract: z.ZodOptional<z.ZodLiteral<"combined-v1">>;
|
|
16
17
|
}, "strip", z.ZodTypeAny, {
|
|
17
18
|
name: string;
|
|
18
19
|
full: boolean;
|
|
@@ -20,6 +21,7 @@ export declare const DiffVersionsInputSchema: z.ZodObject<{
|
|
|
20
21
|
from: string;
|
|
21
22
|
to: string;
|
|
22
23
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
24
|
+
diff_contract?: "combined-v1" | undefined;
|
|
23
25
|
}, {
|
|
24
26
|
name: string;
|
|
25
27
|
from: string;
|
|
@@ -27,6 +29,7 @@ export declare const DiffVersionsInputSchema: z.ZodObject<{
|
|
|
27
29
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
28
30
|
full?: boolean | undefined;
|
|
29
31
|
format?: "fields" | "sections" | "unified" | undefined;
|
|
32
|
+
diff_contract?: "combined-v1" | undefined;
|
|
30
33
|
}>;
|
|
31
34
|
export declare function registerDiffVersionsTool(server: McpServerToolRegistration, registryClient: RegistryClient): void;
|
|
32
35
|
//# sourceMappingURL=diff-versions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-versions.d.ts","sourceRoot":"","sources":["../../src/tools/diff-versions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"diff-versions.d.ts","sourceRoot":"","sources":["../../src/tools/diff-versions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AAEH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CASN"}
|
|
@@ -13,8 +13,9 @@ export const DiffVersionsInputSchema = z.object({
|
|
|
13
13
|
to: z.string().min(1),
|
|
14
14
|
full: z.boolean().default(false),
|
|
15
15
|
format: z.enum(['sections', 'fields', 'unified']).default('sections'),
|
|
16
|
+
diff_contract: z.literal('combined-v1').optional().describe('Opt-in applicable unified patch; requires format=unified. With full=true also returns exact sourceYaml/targetYaml.'),
|
|
16
17
|
});
|
|
17
18
|
export function registerDiffVersionsTool(server, registryClient) {
|
|
18
|
-
server.tool('diff_versions', 'Compare two versions of a definition. Returns a section-level summary by default — note that for ADL agents everything nests under one "agent" section, so sectionsModified is always ["agent"]; prefer format="fields" for anything ADL. format="fields" gives a field-level structural diff with classification; its valueDiff entries use diff-match-patch opcodes: [0,"…"]=unchanged, [-1,"…"]=removed, [1,"…"]=added. format="unified" gives a git-style line diff.
|
|
19
|
+
server.tool('diff_versions', 'Compare two versions of a definition. Returns a section-level summary by default — note that for ADL agents everything nests under one "agent" section, so sectionsModified is always ["agent"]; prefer format="fields" for anything ADL. format="fields" gives a field-level structural diff with classification; its valueDiff entries use diff-match-patch opcodes: [0,"…"]=unchanged, [-1,"…"]=removed, [1,"…"]=added. format="unified" gives a git-style line diff. Select diff_contract="combined-v1" with format="unified" for an applicable patch (empty string for no changes); full=true additionally returns exact sourceYaml/targetYaml. Without the selector, full=true returns raw fromYaml/toYaml and overrides format.', DiffVersionsInputSchema.shape, createToolHandler(DiffVersionsInputSchema, (n) => registryClient.versions.diff(n.type, n.name, n.from, n.to, { full: n.full, format: n.format, ...(n.diffContract !== undefined && { diffContract: n.diffContract }) }), { toolName: 'diff_versions' }));
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=diff-versions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-versions.js","sourceRoot":"","sources":["../../src/tools/diff-versions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,+BAA+B,EAAkC,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"diff-versions.js","sourceRoot":"","sources":["../../src/tools/diff-versions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,+BAA+B,EAAkC,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACrE,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oHAAoH,CAAC;CAClL,CAAC,CAAC;AAEH,MAAM,UAAU,wBAAwB,CACtC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,eAAe,EACf,wsBAAwsB,EACxsB,uBAAuB,CAAC,KAAK,EAC7B,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAC/C,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EACrK,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CACjC,CAAC;AACJ,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { type McpServerToolRegistration } from '../types/index.js';
|
|
|
9
9
|
export declare const GetDiffImpactInputSchema: z.ZodEffects<z.ZodObject<{
|
|
10
10
|
type: z.ZodOptional<z.ZodEnum<["agent", "command", "workflow", "pipeline"]>>;
|
|
11
11
|
name: z.ZodString;
|
|
12
|
+
quality_contract: z.ZodOptional<z.ZodLiteral<"nullable-v1">>;
|
|
12
13
|
from_version: z.ZodOptional<z.ZodString>;
|
|
13
14
|
to_version: z.ZodOptional<z.ZodString>;
|
|
14
15
|
from: z.ZodOptional<z.ZodString>;
|
|
@@ -18,6 +19,7 @@ export declare const GetDiffImpactInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
18
19
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
19
20
|
from?: string | undefined;
|
|
20
21
|
to?: string | undefined;
|
|
22
|
+
quality_contract?: "nullable-v1" | undefined;
|
|
21
23
|
from_version?: string | undefined;
|
|
22
24
|
to_version?: string | undefined;
|
|
23
25
|
}, {
|
|
@@ -25,6 +27,7 @@ export declare const GetDiffImpactInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
25
27
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
26
28
|
from?: string | undefined;
|
|
27
29
|
to?: string | undefined;
|
|
30
|
+
quality_contract?: "nullable-v1" | undefined;
|
|
28
31
|
from_version?: string | undefined;
|
|
29
32
|
to_version?: string | undefined;
|
|
30
33
|
}>, {
|
|
@@ -32,6 +35,7 @@ export declare const GetDiffImpactInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
32
35
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
33
36
|
from?: string | undefined;
|
|
34
37
|
to?: string | undefined;
|
|
38
|
+
quality_contract?: "nullable-v1" | undefined;
|
|
35
39
|
from_version?: string | undefined;
|
|
36
40
|
to_version?: string | undefined;
|
|
37
41
|
}, {
|
|
@@ -39,6 +43,7 @@ export declare const GetDiffImpactInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
39
43
|
type?: "agent" | "command" | "workflow" | "pipeline" | undefined;
|
|
40
44
|
from?: string | undefined;
|
|
41
45
|
to?: string | undefined;
|
|
46
|
+
quality_contract?: "nullable-v1" | undefined;
|
|
42
47
|
from_version?: string | undefined;
|
|
43
48
|
to_version?: string | undefined;
|
|
44
49
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-diff-impact.d.ts","sourceRoot":"","sources":["../../src/tools/get-diff-impact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"get-diff-impact.d.ts","sourceRoot":"","sources":["../../src/tools/get-diff-impact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcpC,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CASN"}
|
|
@@ -9,6 +9,7 @@ import { createToolHandler } from '../utils/tool-handler.js';
|
|
|
9
9
|
export const GetDiffImpactInputSchema = z.object({
|
|
10
10
|
type: DefinitionTypeWithDefaultSchema,
|
|
11
11
|
name: z.string().min(1),
|
|
12
|
+
quality_contract: z.literal('nullable-v1').optional().describe('Preserve absent gate rates and deltas as null; requires advertised server support'),
|
|
12
13
|
// RG14: diff_versions uses from/to; this tool used from_version/to_version —
|
|
13
14
|
// same concept, adjacent tools, a coin-flip for callers. Both spellings are
|
|
14
15
|
// accepted here; from/to win when both are present (they match the sibling).
|
|
@@ -18,6 +19,6 @@ export const GetDiffImpactInputSchema = z.object({
|
|
|
18
19
|
to: z.string().min(1).optional().describe('Alias for to_version (matches diff_versions)'),
|
|
19
20
|
}).refine((v) => Boolean(v.from ?? v.from_version) && Boolean(v.to ?? v.to_version), { message: "Provide the version pair as either from/to or from_version/to_version." });
|
|
20
21
|
export function registerGetDiffImpactTool(server, registryClient) {
|
|
21
|
-
server.tool('get_diff_impact', 'Get structural diff combined with metric deltas between two definition versions. Accepts from/to (matching diff_versions) or from_version/to_version. Deltas are observational, not causal — caveats are always included.', GetDiffImpactInputSchema.innerType().shape, createToolHandler(GetDiffImpactInputSchema, (n) => registryClient.analytics.getDiffImpact(n.type, n.name, n.from ?? n.fromVersion, n.to ?? n.toVersion), { toolName: 'get_diff_impact' }));
|
|
22
|
+
server.tool('get_diff_impact', 'Get structural diff combined with metric deltas between two definition versions. Accepts from/to (matching diff_versions) or from_version/to_version. Deltas are observational, not causal — caveats are always included. Select quality_contract=nullable-v1 for null absent gate rates and deltas, with explicit denominator and fraction units.', GetDiffImpactInputSchema.innerType().shape, createToolHandler(GetDiffImpactInputSchema, (n) => registryClient.analytics.getDiffImpact(n.type, n.name, n.from ?? n.fromVersion, n.to ?? n.toVersion, n.qualityContract === 'nullable-v1' ? { qualityContract: n.qualityContract } : undefined), { toolName: 'get_diff_impact' }));
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=get-diff-impact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-diff-impact.js","sourceRoot":"","sources":["../../src/tools/get-diff-impact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,+BAA+B,EAAkC,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC7F,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CAC1F,CAAC,CAAC,MAAM,CACP,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,EACzE,EAAE,OAAO,EAAE,wEAAwE,EAAE,CACtF,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"get-diff-impact.js","sourceRoot":"","sources":["../../src/tools/get-diff-impact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,+BAA+B,EAAkC,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;IACnJ,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC7F,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;CAC1F,CAAC,CAAC,MAAM,CACP,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,EACzE,EAAE,OAAO,EAAE,wEAAwE,EAAE,CACtF,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,oVAAoV,EACnV,wBAAuF,CAAC,SAAS,EAAE,CAAC,KAAK,EAC1G,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,CAChD,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC9L,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CACnC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uluops/registry-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "MCP server for the UluOps Registry API — definition management, versioning, and analytics",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
65
|
-
"@uluops/registry-sdk": "0.
|
|
65
|
+
"@uluops/registry-sdk": "0.55.0",
|
|
66
66
|
"@uluops/sdk-core": "0.18.0",
|
|
67
67
|
"mcp-secure-server": "0.0.25-security",
|
|
68
68
|
"zod": "3.25.76"
|