@uluops/registry-mcp 0.2.11 → 0.2.13

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 CHANGED
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - **`format` parameter on `get_language`** (`compact` default | `full`). `compact` returns a condensed schema digest — leaf fields collapse to one-line signature strings (`"req · string enum[a|b|c] · description"`), `$defs` stay flat with `→name` ref-pointers, `enum`s are complete, and `if`/`then`/`oneOf`/`allOf` conditional requirements (including `forbidden` fields) are preserved — sufficient to author a valid definition while ~50–75% smaller as emitted (ADL 87.6 KB → 41.8 KB). Dropped vs. full: patterns, length/range bounds, examples, `format`, `additionalProperties`. `format:'full'` returns the complete JSON Schema unchanged (default behavior preserved for that mode). Pure MCP-layer transform — no registry-api/SDK change. Live-verified end-to-end against a local registry (authored and validated a real ADL agent from the compact digest alone).
13
+
14
+ ## [0.2.12] - 2026-06-16
15
+
16
+ ### Changed
17
+
18
+ - **Bump `@uluops/registry-sdk` 0.33.0 → 0.35.0 and `@uluops/sdk-core` 0.11.1 → 0.13.0** (both exact). registry-sdk 0.34.0 added the real `ResponseValidationError` (response-schema failures now stay inside the `RegistryApiError` hierarchy) plus root exports for the safety/`riskProfile` types and `RetranslateResult`; 0.35.0 re-pinned `sdk-core` to 0.13.0. The direct `sdk-core` pin is moved in lockstep so the tree resolves a single `sdk-core` copy (consistent error-class `instanceof`). sdk-core 0.13.0 fixes pulled in: `retries: 0` makes one attempt and surfaces the real typed error; actionable 401 (server reason preserved + guidance); `isApiKey()` enforces minimum length. Pure passthrough — no tool-schema change. 348 tests green.
19
+
10
20
  ## [0.2.11] - 2026-06-16
11
21
 
12
22
  ### Changed
package/README.md CHANGED
@@ -155,7 +155,7 @@ compare_effectiveness({ type: "agent", name: "code-validator", versions: ["1.0.0
155
155
  | `list_providers` | List AI providers |
156
156
  | `list_aliases` | List all model aliases |
157
157
  | `list_languages` | List supported definition languages (ADL, CDL, WDL, PDL) |
158
- | `get_language` | Get a definition language with its current JSON Schema |
158
+ | `get_language` | Get a definition language with its JSON Schema. `format`: `compact` (default — condensed digest sufficient to author a definition, ~50–75% smaller), `full` (complete JSON Schema with patterns, bounds, and examples) |
159
159
 
160
160
  ### Execution & users (P2)
161
161
  | Tool | Description |
@@ -1,17 +1,22 @@
1
1
  /**
2
2
  * get_language tool
3
3
  *
4
- * Get a definition language with its current JSON Schema.
4
+ * Get a definition language with its JSON Schema. Returns a compact schema
5
+ * digest by default (sufficient to author a definition); pass format:'full'
6
+ * for the complete JSON Schema with exact validation constraints.
5
7
  */
6
8
  import { z } from 'zod';
7
9
  import type { RegistryClient } from '@uluops/registry-sdk';
8
10
  import { type McpServerToolRegistration } from '../types/index.js';
9
11
  export declare const GetLanguageInputSchema: z.ZodObject<{
10
12
  language_id: z.ZodEnum<["adl", "cdl", "wdl", "pdl"]>;
13
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["compact", "full"]>>>;
11
14
  }, "strip", z.ZodTypeAny, {
15
+ format: "full" | "compact";
12
16
  language_id: "adl" | "cdl" | "wdl" | "pdl";
13
17
  }, {
14
18
  language_id: "adl" | "cdl" | "wdl" | "pdl";
19
+ format?: "full" | "compact" | undefined;
15
20
  }>;
16
21
  export declare function registerGetLanguageTool(server: McpServerToolRegistration, registryClient: RegistryClient): void;
17
22
  //# sourceMappingURL=get-language.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-language.d.ts","sourceRoot":"","sources":["../../src/tools/get-language.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAEH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CAON"}
1
+ {"version":3,"file":"get-language.d.ts","sourceRoot":"","sources":["../../src/tools/get-language.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAInE,eAAO,MAAM,sBAAsB;;;;;;;;;EAYjC,CAAC;AAEH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,cAAc,GAC7B,IAAI,CAqBN"}
@@ -1,14 +1,39 @@
1
1
  /**
2
2
  * get_language tool
3
3
  *
4
- * Get a definition language with its current JSON Schema.
4
+ * Get a definition language with its JSON Schema. Returns a compact schema
5
+ * digest by default (sufficient to author a definition); pass format:'full'
6
+ * for the complete JSON Schema with exact validation constraints.
5
7
  */
6
8
  import { z } from 'zod';
7
9
  import { createToolHandler } from '../utils/tool-handler.js';
10
+ import { compactSchemaContent } from '../utils/compact-schema.js';
8
11
  export const GetLanguageInputSchema = z.object({
9
12
  language_id: z.enum(['adl', 'cdl', 'wdl', 'pdl']).describe('Language identifier'),
13
+ format: z
14
+ .enum(['compact', 'full'])
15
+ .optional()
16
+ .default('compact')
17
+ .describe("Response verbosity. 'compact' (default) returns a condensed digest — field names, types, " +
18
+ 'required flags, complete enums, $defs as ref-pointers, one-line descriptions — sufficient ' +
19
+ "to author a definition (~50-75% smaller). 'full' returns the complete JSON Schema with " +
20
+ 'patterns, length/range bounds, and examples for exact validation.'),
10
21
  });
11
22
  export function registerGetLanguageTool(server, registryClient) {
12
- server.tool('get_language', 'Get a definition language with its current JSON Schema. Returns metadata and the full schema document.', GetLanguageInputSchema.shape, createToolHandler(GetLanguageInputSchema, (n) => registryClient.languages.get(n.languageId)));
23
+ server.tool('get_language', 'Get a definition language with its JSON Schema. Returns a compact schema digest by default ' +
24
+ "(sufficient to author a definition); pass format:'full' for the complete JSON Schema.", GetLanguageInputSchema.shape, createToolHandler(GetLanguageInputSchema, async (n) => {
25
+ const language = await registryClient.languages.get(n.languageId);
26
+ if (n.format === 'full') {
27
+ return language;
28
+ }
29
+ return {
30
+ ...language,
31
+ schema: {
32
+ ...language.schema,
33
+ format: 'compact',
34
+ content: compactSchemaContent(language.schema.content),
35
+ },
36
+ };
37
+ }));
13
38
  }
14
39
  //# sourceMappingURL=get-language.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-language.js","sourceRoot":"","sources":["../../src/tools/get-language.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAClF,CAAC,CAAC;AAEH,MAAM,UAAU,uBAAuB,CACrC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,cAAc,EACd,wGAAwG,EACxG,sBAAsB,CAAC,KAAK,EAC5B,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAC7F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-language.js","sourceRoot":"","sources":["../../src/tools/get-language.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjF,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SACzB,QAAQ,EAAE;SACV,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CACP,2FAA2F;QACzF,4FAA4F;QAC5F,yFAAyF;QACzF,mEAAmE,CACtE;CACJ,CAAC,CAAC;AAEH,MAAM,UAAU,uBAAuB,CACrC,MAAiC,EACjC,cAA8B;IAE9B,MAAM,CAAC,IAAI,CACT,cAAc,EACd,6FAA6F;QAC3F,uFAAuF,EACzF,sBAAsB,CAAC,KAAK,EAC5B,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO;YACL,GAAG,QAAQ;YACX,MAAM,EAAE;gBACN,GAAG,QAAQ,CAAC,MAAM;gBAClB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;aACvD;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Compact schema digest
3
+ *
4
+ * Condenses a full JSON Schema document (ADL/CDL/WDL/PDL) into a digest that
5
+ * preserves everything needed to author a valid definition — field names,
6
+ * types, required flags, complete enums, conditional requirements, and
7
+ * structure — while dropping the keywords that only matter for exact
8
+ * validation ($id, patterns, length/range bounds, examples, format,
9
+ * additionalProperties).
10
+ *
11
+ * Two shape choices keep it small *and* readable as emitted (the MCP layer
12
+ * pretty-prints with 2-space indent, so deeply-nested object forms inflate
13
+ * badly):
14
+ * 1. Leaf fields collapse to a single signature STRING — "req · string ·
15
+ * <desc>" — so indentation has almost nothing to inflate.
16
+ * 2. $defs stay flat; refs become "→name" pointers rather than being inlined
17
+ * (the source schema is already ref-based, so inlining would only
18
+ * duplicate structure).
19
+ *
20
+ * Roughly 40–60% smaller than the full schema as emitted. For exact validation
21
+ * constraints, callers request format:'full'.
22
+ */
23
+ /**
24
+ * Compact a full JSON Schema document into `{ legend, root, defs }`.
25
+ *
26
+ * `root` is the top-level schema (minus `$defs`); `defs` is the flat map of
27
+ * compacted definitions that `root` and its descendants point into via "→name".
28
+ */
29
+ export declare function compactSchemaContent(content: Record<string, unknown>): Record<string, unknown>;
30
+ //# sourceMappingURL=compact-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-schema.d.ts","sourceRoot":"","sources":["../../src/utils/compact-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAqIH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgB9F"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Compact schema digest
3
+ *
4
+ * Condenses a full JSON Schema document (ADL/CDL/WDL/PDL) into a digest that
5
+ * preserves everything needed to author a valid definition — field names,
6
+ * types, required flags, complete enums, conditional requirements, and
7
+ * structure — while dropping the keywords that only matter for exact
8
+ * validation ($id, patterns, length/range bounds, examples, format,
9
+ * additionalProperties).
10
+ *
11
+ * Two shape choices keep it small *and* readable as emitted (the MCP layer
12
+ * pretty-prints with 2-space indent, so deeply-nested object forms inflate
13
+ * badly):
14
+ * 1. Leaf fields collapse to a single signature STRING — "req · string ·
15
+ * <desc>" — so indentation has almost nothing to inflate.
16
+ * 2. $defs stay flat; refs become "→name" pointers rather than being inlined
17
+ * (the source schema is already ref-based, so inlining would only
18
+ * duplicate structure).
19
+ *
20
+ * Roughly 40–60% smaller than the full schema as emitted. For exact validation
21
+ * constraints, callers request format:'full'.
22
+ */
23
+ const MAX_DESC = 100;
24
+ /** Clip a description to its first sentence, capped in length. */
25
+ function firstSentence(desc) {
26
+ const trimmed = desc.trim();
27
+ if (!trimmed)
28
+ return undefined;
29
+ const idx = trimmed.indexOf('. ');
30
+ let s = idx === -1 ? trimmed : trimmed.slice(0, idx);
31
+ s = s.replace(/\.$/, '');
32
+ return s.length > MAX_DESC ? `${s.slice(0, MAX_DESC - 1)}…` : s;
33
+ }
34
+ function isObject(v) {
35
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
36
+ }
37
+ const COMPOSITE_ARRAY_KEYS = ['oneOf', 'anyOf', 'allOf'];
38
+ const COMPOSITE_NODE_KEYS = ['if', 'then', 'else', 'not'];
39
+ /** Does this node carry structure that forces an object (vs. string) form? */
40
+ function hasStructure(obj) {
41
+ if (isObject(obj.properties) && Object.keys(obj.properties).length > 0)
42
+ return true;
43
+ if (Array.isArray(obj.required) && obj.required.length > 0)
44
+ return true;
45
+ for (const k of COMPOSITE_ARRAY_KEYS)
46
+ if (Array.isArray(obj[k]))
47
+ return true;
48
+ for (const k of COMPOSITE_NODE_KEYS)
49
+ if (obj[k] !== undefined)
50
+ return true;
51
+ return false;
52
+ }
53
+ /** Build the inline scalar part of a signature: "string", "string enum[a|b]", "const=…". */
54
+ function scalarSignature(obj) {
55
+ const parts = [];
56
+ const t = obj.type;
57
+ if (Array.isArray(t))
58
+ parts.push(t.join('|'));
59
+ else if (typeof t === 'string')
60
+ parts.push(t);
61
+ if (obj.const !== undefined)
62
+ parts.push(`const=${JSON.stringify(obj.const)}`);
63
+ if (Array.isArray(obj.enum))
64
+ parts.push(`enum[${obj.enum.map((e) => String(e)).join('|')}]`);
65
+ return parts.length > 0 ? parts.join(' ') : 'any';
66
+ }
67
+ /**
68
+ * Compact a schema node.
69
+ *
70
+ * Returns a STRING for leaves/refs/scalar-arrays (the signature), or an OBJECT
71
+ * for nodes that carry properties, required lists, or composite keywords.
72
+ */
73
+ function compactNode(node) {
74
+ // Boolean schemas: `false` forbids the field, `true` allows anything.
75
+ if (node === false)
76
+ return 'forbidden';
77
+ if (node === true)
78
+ return 'any';
79
+ if (!isObject(node))
80
+ return node;
81
+ // A $ref collapses to a bare pointer.
82
+ if (typeof node.$ref === 'string') {
83
+ const name = node.$ref.split('/').pop() ?? node.$ref;
84
+ return `→${name}`;
85
+ }
86
+ const desc = typeof node.description === 'string' ? firstSentence(node.description) : undefined;
87
+ // ---- Array: "array[itemsig]" when items is a leaf/ref, else { array_of }. ----
88
+ if (node.type === 'array' && node.items !== undefined) {
89
+ const itemSig = compactNode(node.items);
90
+ if (typeof itemSig === 'string') {
91
+ const base = `array[${itemSig}]`;
92
+ return desc !== undefined ? `${base} · ${desc}` : base;
93
+ }
94
+ const out = { array_of: itemSig };
95
+ if (desc !== undefined)
96
+ out._d = desc;
97
+ return out;
98
+ }
99
+ // ---- Structured node (object / composite / pure-required constraint). ----
100
+ if (hasStructure(node)) {
101
+ const out = {};
102
+ if (desc !== undefined)
103
+ out._d = desc;
104
+ const required = new Set(Array.isArray(node.required) ? node.required.filter((r) => typeof r === 'string') : []);
105
+ const propKeys = isObject(node.properties) ? Object.keys(node.properties) : [];
106
+ if (propKeys.length > 0) {
107
+ const props = {};
108
+ for (const [key, value] of Object.entries(node.properties)) {
109
+ const child = compactNode(value);
110
+ if (typeof child === 'string') {
111
+ props[key] = required.has(key) ? `req · ${child}` : child;
112
+ }
113
+ else if (isObject(child)) {
114
+ props[key] = required.has(key) ? { _req: 1, ...child } : child;
115
+ }
116
+ else {
117
+ props[key] = child;
118
+ }
119
+ }
120
+ out.props = props;
121
+ }
122
+ // Required names not represented in `props` (pure constraint nodes, or a
123
+ // `then` clause that requires a field while only forbidding others).
124
+ const orphanRequired = [...required].filter((r) => !propKeys.includes(r));
125
+ if (orphanRequired.length > 0) {
126
+ out.require = orphanRequired;
127
+ }
128
+ for (const k of COMPOSITE_ARRAY_KEYS) {
129
+ if (Array.isArray(node[k]))
130
+ out[k] = node[k].map(compactNode);
131
+ }
132
+ for (const k of COMPOSITE_NODE_KEYS) {
133
+ if (node[k] !== undefined)
134
+ out[k] = compactNode(node[k]);
135
+ }
136
+ return out;
137
+ }
138
+ // ---- Leaf: single signature string. ----
139
+ const sig = scalarSignature(node);
140
+ return desc !== undefined ? `${sig} · ${desc}` : sig;
141
+ }
142
+ const LEGEND = 'Compact schema digest (format:compact). How to read it: ' +
143
+ 'each field is a signature string "[req ·] <type> [enum[a|b|c]] [· description]". ' +
144
+ '"→name" is a pointer — resolve it in `defs`. "array[X]" is an array of X. ' +
145
+ 'Structured fields are objects with `props`; `_req:1` marks a required object field, ' +
146
+ '`require:[…]` lists conditionally-required fields, `oneOf`/`anyOf`/`allOf`/`if`/`then` ' +
147
+ 'carry conditional schema. Dropped vs. the full schema: patterns, length/range bounds, ' +
148
+ "examples, format, additionalProperties. Call get_language with format:'full' for those.";
149
+ /**
150
+ * Compact a full JSON Schema document into `{ legend, root, defs }`.
151
+ *
152
+ * `root` is the top-level schema (minus `$defs`); `defs` is the flat map of
153
+ * compacted definitions that `root` and its descendants point into via "→name".
154
+ */
155
+ export function compactSchemaContent(content) {
156
+ const top = { ...content };
157
+ const rawDefs = (top.$defs ?? top.definitions ?? {});
158
+ delete top.$defs;
159
+ delete top.definitions;
160
+ const defs = {};
161
+ for (const [name, body] of Object.entries(rawDefs)) {
162
+ defs[name] = compactNode(body);
163
+ }
164
+ return {
165
+ legend: LEGEND,
166
+ root: compactNode(top),
167
+ defs,
168
+ };
169
+ }
170
+ //# sourceMappingURL=compact-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-schema.js","sourceRoot":"","sources":["../../src/utils/compact-schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uluops/registry-mcp",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
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,8 +62,8 @@
62
62
  },
63
63
  "dependencies": {
64
64
  "@modelcontextprotocol/sdk": "1.29.0",
65
- "@uluops/registry-sdk": "0.33.0",
66
- "@uluops/sdk-core": "0.11.1",
65
+ "@uluops/registry-sdk": "0.36.0",
66
+ "@uluops/sdk-core": "0.13.0",
67
67
  "mcp-secure-server": "0.0.16-security",
68
68
  "zod": "3.25.76"
69
69
  },
@@ -79,5 +79,8 @@
79
79
  "typescript": "5.9.3",
80
80
  "typescript-eslint": "8.55.0",
81
81
  "vitest": "4.1.8"
82
+ },
83
+ "overrides": {
84
+ "hono": "4.12.25"
82
85
  }
83
86
  }