@agentic-ui-experience/ui-mcp 0.0.1-beta.1 → 0.0.1-beta.3

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/README.md CHANGED
@@ -6,6 +6,12 @@ This package does not render or ingest UI. It exposes catalog discovery tools
6
6
  and a `send_ui_to_client` MCP tool that returns validated A2UI messages in
7
7
  `structuredContent`, so the host can forward them to `@agentic-ui-experience/ui-runtime`.
8
8
 
9
+ `@agentic-ui-experience/ui-mcp` is an MCP adapter over
10
+ `@agentic-ui-experience/ui-core/tool-mode`. Catalog registry, catalog resource
11
+ payloads, catalog filtering, and `send_ui_to_client` normalization live in
12
+ `ui-core`; this package only maps those provider-neutral operations onto MCP
13
+ resources and tools.
14
+
9
15
  The A2UI basic catalog is built in. Scenario-specific catalogs are registered
10
16
  when the MCP server is created, then discovered through tools or resources.
11
17
 
@@ -14,7 +20,7 @@ import { createUIMCPServer } from "@agentic-ui-experience/ui-mcp";
14
20
 
15
21
  const server = createUIMCPServer({
16
22
  catalogs: [weatherPromptDescriptor],
17
- defaultCatalogId: "com.agentic-ui-experience.a2ui-demo.weather.v1",
23
+ defaultCatalogId: "com.agentic-ui-experience.examples.weather.v1",
18
24
  catalogInstructionMode: "compact"
19
25
  });
20
26
 
@@ -87,7 +93,7 @@ Custom catalogs can be loaded from ESM modules:
87
93
  ax-ui-mcp \
88
94
  --transport http \
89
95
  --catalog ./weather-catalog.js \
90
- --default-catalog-id com.agentic-ui-experience.a2ui-demo.weather.v1 \
96
+ --default-catalog-id com.agentic-ui-experience.examples.weather.v1 \
91
97
  --catalog-instruction-mode compact
92
98
  ```
93
99
 
@@ -96,7 +102,7 @@ With the package scripts, append extra CLI flags after `--`:
96
102
  ```bash
97
103
  pnpm --filter @agentic-ui-experience/ui-mcp start:http -- \
98
104
  --catalog ./weather-catalog.js \
99
- --default-catalog-id com.agentic-ui-experience.a2ui-demo.weather.v1
105
+ --default-catalog-id com.agentic-ui-experience.examples.weather.v1
100
106
  ```
101
107
 
102
108
  The catalog module may export a descriptor directly, a `catalog`, a `catalogs`
@@ -121,7 +127,7 @@ list_ui_catalogs();
121
127
  // Step 2: fetch the catalog instructions and schemas for the components needed
122
128
  // by this UI. Use instructionMode: "full" when exact fields are needed.
123
129
  get_ui_catalog({
124
- catalogId: "com.agentic-ui-experience.a2ui-demo.weather.v1",
130
+ catalogId: "com.agentic-ui-experience.examples.weather.v1",
125
131
  componentNames: ["Card", "Text", "WeatherIcon"],
126
132
  instructionMode: "full"
127
133
  });
@@ -130,11 +136,11 @@ get_ui_catalog({
130
136
  send_ui_to_client({
131
137
  // Top-level catalogId is an expected-value guard for the MCP server.
132
138
  // The createSurface message must still repeat the same catalogId.
133
- catalogId: "com.agentic-ui-experience.a2ui-demo.weather.v1",
139
+ catalogId: "com.agentic-ui-experience.examples.weather.v1",
134
140
  surfaceId: "main",
135
141
  messages: [
136
- { version: "v0.9", createSurface: { surfaceId: "main", catalogId: "com.agentic-ui-experience.a2ui-demo.weather.v1" } },
137
- { version: "v0.9", updateComponents: { surfaceId: "main", components: [] } }
142
+ { version: "v0.9", createSurface: { surfaceId: "main", catalogId: "com.agentic-ui-experience.examples.weather.v1" } },
143
+ { version: "v0.9", updateComponents: { surfaceId: "main", components: [{ id: "root", component: "Text", text: "Current weather" }] } }
138
144
  ]
139
145
  });
140
146
  ```
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x5c41eb=_0x4cfc;(function(_0x7b26db,_0x40af55){const _0x51424d=_0x4cfc,_0x35b03=_0x7b26db();while(!![]){try{const _0x138791=-parseInt(_0x51424d(0x109))/0x1+parseInt(_0x51424d(0x106))/0x2*(parseInt(_0x51424d(0xeb))/0x3)+-parseInt(_0x51424d(0xd9))/0x4+-parseInt(_0x51424d(0x10e))/0x5*(parseInt(_0x51424d(0x10b))/0x6)+-parseInt(_0x51424d(0xdb))/0x7+-parseInt(_0x51424d(0xe2))/0x8*(-parseInt(_0x51424d(0xe8))/0x9)+-parseInt(_0x51424d(0x113))/0xa*(-parseInt(_0x51424d(0xd7))/0xb);if(_0x138791===_0x40af55)break;else _0x35b03['push'](_0x35b03['shift']());}catch(_0x1b59eb){_0x35b03['push'](_0x35b03['shift']());}}}(_0x259d,0xc6c5d));import{createServer}from'node:http';import{resolve}from'node:path';import{pathToFileURL}from'node:url';import{parseArgs}from'node:util';import{StreamableHTTPServerTransport}from'@modelcontextprotocol/sdk/server/streamableHttp.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';function _0x259d(){const _0x572065=['SIGTERM','url','25734xNdQRw','Unsupported\x20transport\x20\x22','stdio','catalogs','message','application/json','\x22\x20exported\x20an\x20invalid\x20catalog\x20descriptor.','http://','port','error','values','endpoint','compact','origin','help','name','full','Unsupported\x20catalog\x20instruction\x20mode\x20\x22','catalog','cors-origin','serverName','headersSent','SIGINT','@agentic-ui-experience/ui-mcp\x20listening\x20on\x20http://','isArray','stderr','headers','80roGBLE','3001','catalog-instruction-mode','345870uiNdbA','Catalog\x20module\x20\x22','2426802buegrC','/mcp','version','15iNgqux','isInteger','2.0','[@agentic-ui-experience/ui-mcp]\x20request\x20failed','GET,POST,DELETE,OPTIONS','510JqGkkN','Not\x20Found','push','connect','exit','catch','statusCode','Invalid\x20--port\x20\x22','serverVersion','475574yBaJdk','once','5977596tDcDNL','write','880047rltVbw','host','Access-Control-Allow-Origin','defaultCatalogId','corsOrigins','setHeader','length','30920EdQEyr','end','content-type','Content-Type,\x20Accept,\x20Authorization,\x20MCP-Protocol-Version,\x20Mcp-Session-Id,\x20Last-Event-ID','string','close','3366eZxItw'];_0x259d=function(){return _0x572065;};return _0x259d();}import{createUIMCPServer}from'./index.js';const helpText='@agentic-ui-experience/ui-mcp\x0a\x0aUsage:\x0a\x20\x20ax-ui-mcp\x20[options]\x0a\x0aOptions:\x0a\x20\x20--transport\x20<stdio|http>\x20\x20\x20\x20\x20\x20MCP\x20transport\x20to\x20start.\x20Default:\x20stdio\x0a\x20\x20--host\x20<host>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20HTTP\x20bind\x20host.\x20Default:\x20127.0.0.1\x0a\x20\x20--port\x20<port>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20HTTP\x20bind\x20port.\x20Default:\x203001\x0a\x20\x20--endpoint\x20<path>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20HTTP\x20MCP\x20endpoint.\x20Default:\x20/mcp\x0a\x20\x20--cors-origin\x20<origin>\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20a\x20browser\x20origin.\x20Repeatable.\x20Use\x20\x22*\x22\x20for\x20development.\x0a\x20\x20--catalog\x20<module>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ESM\x20module\x20exporting\x20a\x20CatalogPromptDescriptor\x20or\x20array.\x20Repeatable.\x0a\x20\x20--default-catalog-id\x20<id>\x20\x20\x20\x20\x20Default\x20catalog\x20id.\x0a\x20\x20--catalog-instruction-mode\x20<compact|full>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Default\x20get_ui_catalog\x20instruction\x20detail.\x20Default:\x20compact\x0a\x20\x20--name\x20<name>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20MCP\x20server\x20name.\x20Default:\x20@agentic-ui-experience/ui-mcp\x0a\x20\x20--version\x20<version>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20MCP\x20server\x20version.\x20Default:\x200.0.0\x0a\x20\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help.\x0a\x0aCatalog\x20modules\x20may\x20export\x20one\x20of:\x0a\x20\x20export\x20default\x20descriptor\x0a\x20\x20export\x20const\x20catalog\x20=\x20descriptor\x0a\x20\x20export\x20const\x20catalogs\x20=\x20[descriptor]\x0a\x20\x20export\x20const\x20defaultCatalogId\x20=\x20\x22...\x22\x0a';function stringValue(_0x57033a,_0x9bff82){const _0x5cf781=_0x4cfc;return typeof _0x57033a===_0x5cf781(0xe6)&&_0x57033a[_0x5cf781(0xe1)]>0x0?_0x57033a:_0x9bff82;}function optionalStringValue(_0x4e8482){const _0x5bd9d6=_0x4cfc;return typeof _0x4e8482===_0x5bd9d6(0xe6)&&_0x4e8482[_0x5bd9d6(0xe1)]>0x0?_0x4e8482:void 0x0;}function stringArrayValue(_0x49996a){if(Array['isArray'](_0x49996a))return _0x49996a;if(typeof _0x49996a==='string'&&_0x49996a['length']>0x0)return[_0x49996a];return[];}function parseTransport(_0x2e46ab){const _0x16b84c=_0x4cfc;if(_0x2e46ab===_0x16b84c(0xed)||_0x2e46ab==='http')return _0x2e46ab;throw new Error(_0x16b84c(0xec)+_0x2e46ab+'\x22.\x20Expected\x20\x22stdio\x22\x20or\x20\x22http\x22.');}function parseCatalogInstructionMode(_0x4200d1){const _0x259909=_0x4cfc;if(_0x4200d1===_0x259909(0xf7)||_0x4200d1===_0x259909(0xfb))return _0x4200d1;throw new Error(_0x259909(0xfc)+_0x4200d1+'\x22.\x20Expected\x20\x22compact\x22\x20or\x20\x22full\x22.');}function parsePort(_0xc2fc53){const _0x4b1dda=_0x4cfc,_0x2a925d=Number(_0xc2fc53);if(!Number[_0x4b1dda(0x10f)](_0x2a925d)||_0x2a925d<0x1||_0x2a925d>0xffff)throw new Error(_0x4b1dda(0xd5)+_0xc2fc53+'\x22.\x20Expected\x20an\x20integer\x20from\x201\x20to\x2065535.');return _0x2a925d;}function _0x4cfc(_0x588656,_0x11b581){_0x588656=_0x588656-0xd0;const _0x259d9a=_0x259d();let _0x4cfca2=_0x259d9a[_0x588656];return _0x4cfca2;}function normalizeEndpoint(_0x43f33f){if(!_0x43f33f['startsWith']('/'))return'/'+_0x43f33f;return _0x43f33f;}function isCatalogDescriptor(_0x5d99ae){const _0x4ae05f=_0x4cfc;return!!_0x5d99ae&&typeof _0x5d99ae==='object'&&!Array[_0x4ae05f(0x103)](_0x5d99ae)&&typeof _0x5d99ae['id']===_0x4ae05f(0xe6)&&Array['isArray'](_0x5d99ae['baseComponentNames']);}function readCatalogExports(_0x40ebe7,_0x353d78){const _0x2946a2=_0x4cfc,_0x6ac8e0=_0x40ebe7['catalogs']??_0x40ebe7[_0x2946a2(0xfd)]??_0x40ebe7['default'],_0x5eead9=[];if(Array[_0x2946a2(0x103)](_0x6ac8e0))for(const _0x1a9694 of _0x6ac8e0){if(!isCatalogDescriptor(_0x1a9694))throw new Error(_0x2946a2(0x10a)+_0x353d78+_0x2946a2(0xf1));_0x5eead9[_0x2946a2(0xd0)](_0x1a9694);}else{if(_0x6ac8e0!==void 0x0){if(!isCatalogDescriptor(_0x6ac8e0))throw new Error('Catalog\x20module\x20\x22'+_0x353d78+'\x22\x20exported\x20an\x20invalid\x20catalog\x20descriptor.');_0x5eead9['push'](_0x6ac8e0);}}if(_0x5eead9[_0x2946a2(0xe1)]===0x0)throw new Error('Catalog\x20module\x20\x22'+_0x353d78+'\x22\x20did\x20not\x20export\x20a\x20catalog\x20descriptor.');const _0x3ff69b=typeof _0x40ebe7[_0x2946a2(0xde)]===_0x2946a2(0xe6)&&_0x40ebe7['defaultCatalogId'][_0x2946a2(0xe1)]>0x0?_0x40ebe7['defaultCatalogId']:void 0x0;return{'catalogs':_0x5eead9,'defaultCatalogId':_0x3ff69b};}async function loadCatalogs(_0x211373){const _0xb62c7e=_0x4cfc,_0x16174e=[];let _0x24a25d;for(const _0x204218 of _0x211373){const _0x2d19ed=await import(pathToFileURL(resolve(_0x204218))['href']),_0xd20c0a=readCatalogExports(_0x2d19ed,_0x204218);_0x16174e['push'](..._0xd20c0a[_0xb62c7e(0xee)]),_0x24a25d??(_0x24a25d=_0xd20c0a[_0xb62c7e(0xde)]);}return{'catalogs':_0x16174e,'defaultCatalogId':_0x24a25d};}async function parseCliOptions(){const _0x38a8f3=_0x4cfc,_0x69245=parseArgs({'allowPositionals':![],'options':{'transport':{'type':'string'},'host':{'type':'string'},'port':{'type':_0x38a8f3(0xe6)},'endpoint':{'type':_0x38a8f3(0xe6)},'cors-origin':{'type':'string','multiple':!![]},'catalog':{'type':'string','multiple':!![]},'default-catalog-id':{'type':'string'},'catalog-instruction-mode':{'type':_0x38a8f3(0xe6)},'name':{'type':_0x38a8f3(0xe6)},'version':{'type':_0x38a8f3(0xe6)},'help':{'type':'boolean','short':'h'}}});_0x69245[_0x38a8f3(0xf5)][_0x38a8f3(0xf9)]&&(process['stdout'][_0x38a8f3(0xda)](helpText),process['exit'](0x0));const _0xd7f208=await loadCatalogs(stringArrayValue(_0x69245['values']['catalog'])),_0x364640=optionalStringValue(_0x69245['values']['default-catalog-id'])??_0xd7f208['defaultCatalogId'];return{'transport':parseTransport(stringValue(_0x69245[_0x38a8f3(0xf5)]['transport'],_0x38a8f3(0xed))),'host':stringValue(_0x69245['values'][_0x38a8f3(0xdc)],'127.0.0.1'),'port':parsePort(stringValue(_0x69245['values'][_0x38a8f3(0xf3)],_0x38a8f3(0x107))),'endpoint':normalizeEndpoint(stringValue(_0x69245[_0x38a8f3(0xf5)]['endpoint'],_0x38a8f3(0x10c))),'corsOrigins':stringArrayValue(_0x69245[_0x38a8f3(0xf5)][_0x38a8f3(0xfe)]),'catalogs':_0xd7f208['catalogs'],..._0x364640?{'defaultCatalogId':_0x364640}:{},'catalogInstructionMode':parseCatalogInstructionMode(stringValue(_0x69245[_0x38a8f3(0xf5)][_0x38a8f3(0x108)],'compact')),...optionalStringValue(_0x69245[_0x38a8f3(0xf5)][_0x38a8f3(0xfa)])?{'serverName':optionalStringValue(_0x69245[_0x38a8f3(0xf5)][_0x38a8f3(0xfa)])}:{},...optionalStringValue(_0x69245['values'][_0x38a8f3(0x10d)])?{'serverVersion':optionalStringValue(_0x69245[_0x38a8f3(0xf5)][_0x38a8f3(0x10d)])}:{}};}function createServerOptions(_0x201957){const _0x5d1504=_0x4cfc;return{'catalogs':_0x201957['catalogs'],..._0x201957['defaultCatalogId']?{'defaultCatalogId':_0x201957[_0x5d1504(0xde)]}:{},..._0x201957['catalogInstructionMode']?{'catalogInstructionMode':_0x201957['catalogInstructionMode']}:{},'server':{..._0x201957[_0x5d1504(0xff)]?{'name':_0x201957['serverName']}:{},..._0x201957[_0x5d1504(0xd6)]?{'version':_0x201957['serverVersion']}:{}}};}function setCorsHeaders(_0x44de0e,_0x311e4b,_0x573cf9){const _0xc0adbe=_0x4cfc;if(_0x573cf9['length']===0x0)return;const _0x37766e=_0x44de0e[_0xc0adbe(0x105)][_0xc0adbe(0xf8)],_0x4ddc7c=_0x573cf9['includes']('*'),_0x3988a6=_0x4ddc7c?'*':typeof _0x37766e==='string'&&_0x573cf9['includes'](_0x37766e)?_0x37766e:void 0x0;if(!_0x3988a6)return;_0x311e4b[_0xc0adbe(0xe0)](_0xc0adbe(0xdd),_0x3988a6),_0x311e4b[_0xc0adbe(0xe0)]('Vary','Origin'),_0x311e4b['setHeader']('Access-Control-Allow-Methods',_0xc0adbe(0x112)),_0x311e4b['setHeader']('Access-Control-Allow-Headers',_0xc0adbe(0xe5)),_0x311e4b['setHeader']('Access-Control-Expose-Headers','Mcp-Session-Id');}function writeJsonRpcError(_0x33aa2a,_0x4c4c7c,_0x172e65){const _0x15c8eb=_0x4cfc;_0x33aa2a['statusCode']=_0x4c4c7c,_0x33aa2a['setHeader'](_0x15c8eb(0xe4),_0x15c8eb(0xf0)),_0x33aa2a['end'](JSON['stringify']({'jsonrpc':_0x15c8eb(0x110),'error':{'code':-0x7f5b,'message':_0x172e65},'id':null}));}async function startStdio(_0x4e0733){const _0xa0c496=_0x4cfc,_0x4cbb3b=createUIMCPServer(createServerOptions(_0x4e0733));await _0x4cbb3b[_0xa0c496(0xd1)](new StdioServerTransport());}async function startHttp(_0x55ff26){const _0x67f350=_0x4cfc,_0x42ce92=createServer(async(_0x150897,_0x4e36c2)=>{const _0x16dd34=_0x4cfc,_0x2e28ac=new URL(_0x150897[_0x16dd34(0xea)]??'/',_0x16dd34(0xf2)+(_0x150897['headers'][_0x16dd34(0xdc)]??'localhost'));if(_0x2e28ac['pathname']!==_0x55ff26[_0x16dd34(0xf6)]){_0x4e36c2[_0x16dd34(0xd4)]=0x194,_0x4e36c2[_0x16dd34(0xe3)](_0x16dd34(0x114));return;}setCorsHeaders(_0x150897,_0x4e36c2,_0x55ff26[_0x16dd34(0xdf)]);if(_0x150897['method']==='OPTIONS'){_0x4e36c2['statusCode']=0xcc,_0x4e36c2[_0x16dd34(0xe3)]();return;}const _0x3c34a2=createUIMCPServer(createServerOptions(_0x55ff26)),_0xe70b4a=new StreamableHTTPServerTransport({'sessionIdGenerator':void 0x0});try{await _0x3c34a2[_0x16dd34(0xd1)](_0xe70b4a),await _0xe70b4a['handleRequest'](_0x150897,_0x4e36c2),_0x4e36c2['on'](_0x16dd34(0xe7),()=>{const _0x371ae2=_0x16dd34;void _0xe70b4a['close'](),void _0x3c34a2[_0x371ae2(0xe7)]();});}catch(_0x24e23d){console['error'](_0x16dd34(0x111),_0x24e23d),!_0x4e36c2[_0x16dd34(0x100)]&&writeJsonRpcError(_0x4e36c2,0x1f4,_0x24e23d instanceof Error?_0x24e23d[_0x16dd34(0xef)]:'Internal\x20MCP\x20server\x20error');}});await new Promise((_0x46168b,_0x4ebe4c)=>{const _0x32bd34=_0x4cfc;_0x42ce92[_0x32bd34(0xd8)](_0x32bd34(0xf4),_0x4ebe4c),_0x42ce92['listen'](_0x55ff26['port'],_0x55ff26[_0x32bd34(0xdc)],_0x46168b);});const _0x3b497b=()=>{const _0x172a04=_0x4cfc;_0x42ce92['close'](()=>process[_0x172a04(0xd2)](0x0));};process[_0x67f350(0xd8)](_0x67f350(0x101),_0x3b497b),process[_0x67f350(0xd8)](_0x67f350(0xe9),_0x3b497b),process[_0x67f350(0x104)][_0x67f350(0xda)](_0x67f350(0x102)+_0x55ff26['host']+':'+_0x55ff26['port']+_0x55ff26['endpoint']+'\x0a');}async function main(){const _0x59f7d8=_0x4cfc,_0x3a544e=await parseCliOptions();if(_0x3a544e['transport']===_0x59f7d8(0xed)){await startStdio(_0x3a544e);return;}await startHttp(_0x3a544e);}main()[_0x5c41eb(0xd3)](_0x552754=>{const _0x25b708=_0x5c41eb;process[_0x25b708(0x104)]['write']((_0x552754 instanceof Error?_0x552754[_0x25b708(0xef)]:String(_0x552754))+'\x0a'),process[_0x25b708(0xd2)](0x1);});
2
+ const _0x448f3b=_0x736e;(function(_0x548320,_0x26b48e){const _0x4dff72=_0x736e,_0x445ba0=_0x548320();while(!![]){try{const _0x1e99a5=parseInt(_0x4dff72(0xa0))/0x1*(-parseInt(_0x4dff72(0xad))/0x2)+-parseInt(_0x4dff72(0xc3))/0x3*(-parseInt(_0x4dff72(0xbe))/0x4)+parseInt(_0x4dff72(0x8b))/0x5+parseInt(_0x4dff72(0x99))/0x6*(parseInt(_0x4dff72(0xb7))/0x7)+parseInt(_0x4dff72(0xc4))/0x8+parseInt(_0x4dff72(0xc2))/0x9+-parseInt(_0x4dff72(0xac))/0xa;if(_0x1e99a5===_0x26b48e)break;else _0x445ba0['push'](_0x445ba0['shift']());}catch(_0x1534a1){_0x445ba0['push'](_0x445ba0['shift']());}}}(_0x4e82,0x5936e));import{createServer}from'node:http';import{resolve}from'node:path';import{pathToFileURL}from'node:url';import{parseArgs}from'node:util';import{StreamableHTTPServerTransport}from'@modelcontextprotocol/sdk/server/streamableHttp.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{createUIMCPServer}from'./index.js';const helpText=_0x448f3b(0xb9);function stringValue(_0x5b2be7,_0xb5511d){const _0xb595f0=_0x448f3b;return typeof _0x5b2be7===_0xb595f0(0x8c)&&_0x5b2be7[_0xb595f0(0x90)]>0x0?_0x5b2be7:_0xb5511d;}function optionalStringValue(_0x401556){const _0x1d295f=_0x448f3b;return typeof _0x401556==='string'&&_0x401556[_0x1d295f(0x90)]>0x0?_0x401556:void 0x0;}function stringArrayValue(_0x359ec1){const _0x11fd29=_0x448f3b;if(Array['isArray'](_0x359ec1))return _0x359ec1;if(typeof _0x359ec1===_0x11fd29(0x8c)&&_0x359ec1[_0x11fd29(0x90)]>0x0)return[_0x359ec1];return[];}function parseTransport(_0x52f906){const _0x38b60c=_0x448f3b;if(_0x52f906==='stdio'||_0x52f906===_0x38b60c(0x9e))return _0x52f906;throw new Error('Unsupported\x20transport\x20\x22'+_0x52f906+_0x38b60c(0xc8));}function _0x4e82(){const _0x367a74=['Internal\x20MCP\x20server\x20error','setHeader','\x22.\x20Expected\x20an\x20integer\x20from\x201\x20to\x2065535.','port','OPTIONS','catalog-instruction-mode','123137ezsUId','Origin','@agentic-ui-experience/ui-mcp\x0a\x0aUsage:\x0a\x20\x20ax-ui-mcp\x20[options]\x0a\x0aOptions:\x0a\x20\x20--transport\x20<stdio|http>\x20\x20\x20\x20\x20\x20MCP\x20transport\x20to\x20start.\x20Default:\x20stdio\x0a\x20\x20--host\x20<host>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20HTTP\x20bind\x20host.\x20Default:\x20127.0.0.1\x0a\x20\x20--port\x20<port>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20HTTP\x20bind\x20port.\x20Default:\x203001\x0a\x20\x20--endpoint\x20<path>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20HTTP\x20MCP\x20endpoint.\x20Default:\x20/mcp\x0a\x20\x20--cors-origin\x20<origin>\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20a\x20browser\x20origin.\x20Repeatable.\x20Use\x20\x22*\x22\x20for\x20development.\x0a\x20\x20--catalog\x20<module>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ESM\x20module\x20exporting\x20a\x20CatalogPromptDescriptor\x20or\x20array.\x20Repeatable.\x0a\x20\x20--default-catalog-id\x20<id>\x20\x20\x20\x20\x20Default\x20catalog\x20id.\x0a\x20\x20--catalog-instruction-mode\x20<compact|full>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Default\x20get_ui_catalog\x20instruction\x20detail.\x20Default:\x20compact\x0a\x20\x20--name\x20<name>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20MCP\x20server\x20name.\x20Default:\x20@agentic-ui-experience/ui-mcp\x0a\x20\x20--version\x20<version>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20MCP\x20server\x20version.\x20Default:\x200.0.0\x0a\x20\x20--help\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help.\x0a\x0aCatalog\x20modules\x20may\x20export\x20one\x20of:\x0a\x20\x20export\x20default\x20descriptor\x0a\x20\x20export\x20const\x20catalog\x20=\x20descriptor\x0a\x20\x20export\x20const\x20catalogs\x20=\x20[descriptor]\x0a\x20\x20export\x20const\x20defaultCatalogId\x20=\x20\x22...\x22\x0a','statusCode','help','serverVersion','serverName','376CFfCed','catalogs','\x22.\x20Expected\x20\x22compact\x22\x20or\x20\x22full\x22.','catalog','6220197KlMazO','20337ULIvXG','4470600nYmYKs','connect','compact','boolean','\x22.\x20Expected\x20\x22stdio\x22\x20or\x20\x22http\x22.','stdout','stdio','object','SIGTERM','baseComponentNames','method','defaultCatalogId','host','catch','localhost','3082355MSYqgv','string','once','message','Invalid\x20--port\x20\x22','length','Access-Control-Expose-Headers','Unsupported\x20catalog\x20instruction\x20mode\x20\x22','[@agentic-ui-experience/ui-mcp]\x20request\x20failed','origin','endpoint','stringify','headers','\x22\x20exported\x20an\x20invalid\x20catalog\x20descriptor.','222UZJvRt','href','transport','GET,POST,DELETE,OPTIONS','error','http','Content-Type,\x20Accept,\x20Authorization,\x20MCP-Protocol-Version,\x20Mcp-Session-Id,\x20Last-Event-ID','11zyxOWy','content-type','version','end','name','Not\x20Found','default','values','close','3001','includes','headersSent','23531590bxInDb','79262McRtAL','isArray','@agentic-ui-experience/ui-mcp\x20listening\x20on\x20http://','corsOrigins'];_0x4e82=function(){return _0x367a74;};return _0x4e82();}function parseCatalogInstructionMode(_0x47cf15){const _0x29d021=_0x448f3b;if(_0x47cf15==='compact'||_0x47cf15==='full')return _0x47cf15;throw new Error(_0x29d021(0x92)+_0x47cf15+_0x29d021(0xc0));}function parsePort(_0x2b4e8d){const _0x35f978=_0x448f3b,_0x4339a2=Number(_0x2b4e8d);if(!Number['isInteger'](_0x4339a2)||_0x4339a2<0x1||_0x4339a2>0xffff)throw new Error(_0x35f978(0x8f)+_0x2b4e8d+_0x35f978(0xb3));return _0x4339a2;}function _0x736e(_0x4cc1c0,_0x3c5a73){_0x4cc1c0=_0x4cc1c0-0x87;const _0x4e828a=_0x4e82();let _0x736e54=_0x4e828a[_0x4cc1c0];return _0x736e54;}function normalizeEndpoint(_0xc022f2){if(!_0xc022f2['startsWith']('/'))return'/'+_0xc022f2;return _0xc022f2;}function isCatalogDescriptor(_0x415437){const _0x30f057=_0x448f3b;return!!_0x415437&&typeof _0x415437===_0x30f057(0xcb)&&!Array['isArray'](_0x415437)&&typeof _0x415437['id']==='string'&&Array[_0x30f057(0xae)](_0x415437[_0x30f057(0xcd)]);}function readCatalogExports(_0x202a50,_0x12e0de){const _0x40cecf=_0x448f3b,_0x288d57=_0x202a50[_0x40cecf(0xbf)]??_0x202a50[_0x40cecf(0xc1)]??_0x202a50[_0x40cecf(0xa6)],_0x59953f=[];if(Array['isArray'](_0x288d57))for(const _0x1141ce of _0x288d57){if(!isCatalogDescriptor(_0x1141ce))throw new Error('Catalog\x20module\x20\x22'+_0x12e0de+_0x40cecf(0x98));_0x59953f['push'](_0x1141ce);}else{if(_0x288d57!==void 0x0){if(!isCatalogDescriptor(_0x288d57))throw new Error('Catalog\x20module\x20\x22'+_0x12e0de+_0x40cecf(0x98));_0x59953f['push'](_0x288d57);}}if(_0x59953f['length']===0x0)throw new Error('Catalog\x20module\x20\x22'+_0x12e0de+'\x22\x20did\x20not\x20export\x20a\x20catalog\x20descriptor.');const _0x3203af=typeof _0x202a50['defaultCatalogId']==='string'&&_0x202a50[_0x40cecf(0x87)][_0x40cecf(0x90)]>0x0?_0x202a50[_0x40cecf(0x87)]:void 0x0;return{'catalogs':_0x59953f,'defaultCatalogId':_0x3203af};}async function loadCatalogs(_0x3be76f){const _0x440621=_0x448f3b,_0x8d659d=[];let _0x27a098;for(const _0x5886e7 of _0x3be76f){const _0x43610e=await import(pathToFileURL(resolve(_0x5886e7))[_0x440621(0x9a)]),_0x94ccc4=readCatalogExports(_0x43610e,_0x5886e7);_0x8d659d['push'](..._0x94ccc4[_0x440621(0xbf)]),_0x27a098??(_0x27a098=_0x94ccc4[_0x440621(0x87)]);}return{'catalogs':_0x8d659d,'defaultCatalogId':_0x27a098};}async function parseCliOptions(){const _0x45dd94=_0x448f3b,_0x51d7c8=parseArgs({'allowPositionals':![],'options':{'transport':{'type':_0x45dd94(0x8c)},'host':{'type':'string'},'port':{'type':'string'},'endpoint':{'type':_0x45dd94(0x8c)},'cors-origin':{'type':'string','multiple':!![]},'catalog':{'type':_0x45dd94(0x8c),'multiple':!![]},'default-catalog-id':{'type':_0x45dd94(0x8c)},'catalog-instruction-mode':{'type':_0x45dd94(0x8c)},'name':{'type':'string'},'version':{'type':_0x45dd94(0x8c)},'help':{'type':_0x45dd94(0xc7),'short':'h'}}});_0x51d7c8['values'][_0x45dd94(0xbb)]&&(process[_0x45dd94(0xc9)]['write'](helpText),process['exit'](0x0));const _0x56746a=await loadCatalogs(stringArrayValue(_0x51d7c8['values'][_0x45dd94(0xc1)])),_0x2f1021=optionalStringValue(_0x51d7c8[_0x45dd94(0xa7)]['default-catalog-id'])??_0x56746a['defaultCatalogId'];return{'transport':parseTransport(stringValue(_0x51d7c8[_0x45dd94(0xa7)][_0x45dd94(0x9b)],_0x45dd94(0xca))),'host':stringValue(_0x51d7c8[_0x45dd94(0xa7)][_0x45dd94(0x88)],'127.0.0.1'),'port':parsePort(stringValue(_0x51d7c8[_0x45dd94(0xa7)][_0x45dd94(0xb4)],_0x45dd94(0xa9))),'endpoint':normalizeEndpoint(stringValue(_0x51d7c8['values'][_0x45dd94(0x95)],'/mcp')),'corsOrigins':stringArrayValue(_0x51d7c8['values']['cors-origin']),'catalogs':_0x56746a[_0x45dd94(0xbf)],..._0x2f1021?{'defaultCatalogId':_0x2f1021}:{},'catalogInstructionMode':parseCatalogInstructionMode(stringValue(_0x51d7c8[_0x45dd94(0xa7)][_0x45dd94(0xb6)],_0x45dd94(0xc6))),...optionalStringValue(_0x51d7c8[_0x45dd94(0xa7)]['name'])?{'serverName':optionalStringValue(_0x51d7c8['values'][_0x45dd94(0xa4)])}:{},...optionalStringValue(_0x51d7c8[_0x45dd94(0xa7)][_0x45dd94(0xa2)])?{'serverVersion':optionalStringValue(_0x51d7c8['values'][_0x45dd94(0xa2)])}:{}};}function createServerOptions(_0x3b8440){const _0x27ec3d=_0x448f3b;return{'catalogs':_0x3b8440[_0x27ec3d(0xbf)],..._0x3b8440[_0x27ec3d(0x87)]?{'defaultCatalogId':_0x3b8440[_0x27ec3d(0x87)]}:{},..._0x3b8440['catalogInstructionMode']?{'catalogInstructionMode':_0x3b8440['catalogInstructionMode']}:{},'server':{..._0x3b8440[_0x27ec3d(0xbd)]?{'name':_0x3b8440[_0x27ec3d(0xbd)]}:{},..._0x3b8440['serverVersion']?{'version':_0x3b8440[_0x27ec3d(0xbc)]}:{}}};}function setCorsHeaders(_0x1e0bf0,_0x2a3758,_0x3130f0){const _0xf341a6=_0x448f3b;if(_0x3130f0['length']===0x0)return;const _0x413ba2=_0x1e0bf0[_0xf341a6(0x97)][_0xf341a6(0x94)],_0x190c62=_0x3130f0[_0xf341a6(0xaa)]('*'),_0x545482=_0x190c62?'*':typeof _0x413ba2===_0xf341a6(0x8c)&&_0x3130f0[_0xf341a6(0xaa)](_0x413ba2)?_0x413ba2:void 0x0;if(!_0x545482)return;_0x2a3758[_0xf341a6(0xb2)]('Access-Control-Allow-Origin',_0x545482),_0x2a3758['setHeader']('Vary',_0xf341a6(0xb8)),_0x2a3758['setHeader']('Access-Control-Allow-Methods',_0xf341a6(0x9c)),_0x2a3758['setHeader']('Access-Control-Allow-Headers',_0xf341a6(0x9f)),_0x2a3758[_0xf341a6(0xb2)](_0xf341a6(0x91),'Mcp-Session-Id');}function writeJsonRpcError(_0x12b71e,_0x142f0b,_0x259cc9){const _0x486c96=_0x448f3b;_0x12b71e[_0x486c96(0xba)]=_0x142f0b,_0x12b71e['setHeader'](_0x486c96(0xa1),'application/json'),_0x12b71e[_0x486c96(0xa3)](JSON[_0x486c96(0x96)]({'jsonrpc':'2.0','error':{'code':-0x7f5b,'message':_0x259cc9},'id':null}));}async function startStdio(_0x5b9c84){const _0x29282f=createUIMCPServer(createServerOptions(_0x5b9c84));await _0x29282f['connect'](new StdioServerTransport());}async function startHttp(_0x31b19d){const _0x2836bc=_0x448f3b,_0x4c809e=createServer(async(_0x445358,_0x2e53ca)=>{const _0x563c18=_0x736e,_0x56e8cc=new URL(_0x445358['url']??'/','http://'+(_0x445358['headers']['host']??_0x563c18(0x8a)));if(_0x56e8cc['pathname']!==_0x31b19d['endpoint']){_0x2e53ca['statusCode']=0x194,_0x2e53ca[_0x563c18(0xa3)](_0x563c18(0xa5));return;}setCorsHeaders(_0x445358,_0x2e53ca,_0x31b19d[_0x563c18(0xb0)]);if(_0x445358[_0x563c18(0xce)]===_0x563c18(0xb5)){_0x2e53ca[_0x563c18(0xba)]=0xcc,_0x2e53ca[_0x563c18(0xa3)]();return;}const _0x23c0a0=createUIMCPServer(createServerOptions(_0x31b19d)),_0x1b7c27=new StreamableHTTPServerTransport({'sessionIdGenerator':void 0x0});try{await _0x23c0a0[_0x563c18(0xc5)](_0x1b7c27),await _0x1b7c27['handleRequest'](_0x445358,_0x2e53ca),_0x2e53ca['on'](_0x563c18(0xa8),()=>{const _0x5a3840=_0x563c18;void _0x1b7c27[_0x5a3840(0xa8)](),void _0x23c0a0[_0x5a3840(0xa8)]();});}catch(_0x3560ef){console['error'](_0x563c18(0x93),_0x3560ef),!_0x2e53ca[_0x563c18(0xab)]&&writeJsonRpcError(_0x2e53ca,0x1f4,_0x3560ef instanceof Error?_0x3560ef['message']:_0x563c18(0xb1));}});await new Promise((_0x3ddd32,_0x38fd01)=>{const _0x4b86ea=_0x736e;_0x4c809e[_0x4b86ea(0x8d)](_0x4b86ea(0x9d),_0x38fd01),_0x4c809e['listen'](_0x31b19d[_0x4b86ea(0xb4)],_0x31b19d[_0x4b86ea(0x88)],_0x3ddd32);});const _0x546283=()=>{const _0x2cfaac=_0x736e;_0x4c809e[_0x2cfaac(0xa8)](()=>process['exit'](0x0));};process[_0x2836bc(0x8d)]('SIGINT',_0x546283),process['once'](_0x2836bc(0xcc),_0x546283),process['stderr']['write'](_0x2836bc(0xaf)+_0x31b19d['host']+':'+_0x31b19d[_0x2836bc(0xb4)]+_0x31b19d['endpoint']+'\x0a');}async function main(){const _0x2f0a43=_0x448f3b,_0x5939ca=await parseCliOptions();if(_0x5939ca[_0x2f0a43(0x9b)]===_0x2f0a43(0xca)){await startStdio(_0x5939ca);return;}await startHttp(_0x5939ca);}main()[_0x448f3b(0x89)](_0x206766=>{const _0x51393c=_0x448f3b;process['stderr']['write']((_0x206766 instanceof Error?_0x206766[_0x51393c(0x8e)]:String(_0x206766))+'\x0a'),process['exit'](0x1);});
package/dist/index.d.ts CHANGED
@@ -1,52 +1,18 @@
1
1
  import { McpServer, ResourceTemplate, type RegisteredResource, type RegisteredResourceTemplate, type RegisteredTool } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { CallToolResult, ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
3
- import { type CatalogPromptDescriptor } from "@agentic-ui-experience/ui-core";
4
- export declare const LIST_UI_CATALOGS_TOOL_NAME = "list_ui_catalogs";
5
- export declare const GET_UI_CATALOG_TOOL_NAME = "get_ui_catalog";
6
- export declare const BASIC_CATALOG_RESOURCE_URI = "a2ui://catalog/basic";
7
- export declare const CATALOG_RESOURCE_URI_TEMPLATE = "a2ui://catalog/{catalogId}";
8
- export type UIMCPToolResult = Record<string, unknown> & {
9
- uiJson: string;
10
- uiMessages: unknown[];
11
- };
12
- export interface UIMCPToolArguments {
13
- messages: unknown;
14
- catalogId?: string | undefined;
15
- surfaceId?: string | undefined;
16
- }
17
- export type UIMCPCatalogInstructionMode = "compact" | "full";
18
- export interface UIMCPCatalogSummary {
19
- id: string;
20
- resourceUri: string;
21
- isDefault: boolean;
22
- baseCatalogId: string;
23
- baseComponentNames: readonly string[];
24
- customComponents: readonly string[];
25
- }
26
- export interface UIMCPCatalogDescription {
27
- id: string;
28
- resourceUri: string;
29
- isDefault: boolean;
30
- baseCatalogId: string;
31
- instructionMode: UIMCPCatalogInstructionMode;
32
- descriptor: CatalogPromptDescriptor;
33
- instructions: string;
34
- catalogPrompt: string;
35
- basicCatalogSchema?: unknown;
36
- }
37
- export interface UIMCPListCatalogsResult extends Record<string, unknown> {
38
- catalogs: UIMCPCatalogSummary[];
39
- }
40
- export interface UIMCPGetCatalogArguments {
41
- catalogId?: string | undefined;
42
- componentNames?: string[] | undefined;
43
- instructionMode?: UIMCPCatalogInstructionMode | undefined;
44
- }
45
- export interface UIMCPGetCatalogResult extends Record<string, unknown> {
46
- catalog: UIMCPCatalogDescription;
47
- }
3
+ import type { CatalogPromptDescriptor } from "@agentic-ui-experience/ui-core";
4
+ import { type UIGetCatalogArguments, type UIGetCatalogResult, type UIListCatalogsResult, type UISendToolArguments, type UISendToolResult, type UIToolCatalogInstructionMode, type UIToolCatalogRegistry } from "@agentic-ui-experience/ui-core/tool-mode";
5
+ export type UIMCPToolResult = UISendToolResult & Record<string, unknown>;
6
+ export type UIMCPToolArguments = UISendToolArguments;
7
+ export type UIMCPCatalogInstructionMode = UIToolCatalogInstructionMode;
8
+ export type UIMCPCatalogSummary = UIListCatalogsResult["catalogs"][number];
9
+ export type UIMCPCatalogDescription = UIGetCatalogResult["catalog"];
10
+ export type UIMCPListCatalogsResult = UIListCatalogsResult & Record<string, unknown>;
11
+ export type UIMCPGetCatalogArguments = UIGetCatalogArguments;
12
+ export type UIMCPGetCatalogResult = UIGetCatalogResult & Record<string, unknown>;
48
13
  export type UIMCPNormalize = (args: UIMCPToolArguments) => UIMCPToolResult | Promise<UIMCPToolResult>;
49
14
  export type UIMCPSyncNormalize = (args: UIMCPToolArguments) => UIMCPToolResult;
15
+ export type UIMCPCatalogRegistry = UIToolCatalogRegistry;
50
16
  export interface UIMCPNormalizeMessagesOptions {
51
17
  mode?: "strict" | "repair";
52
18
  surfaceId?: string;
@@ -65,12 +31,6 @@ export interface CreateUIMCPServerOptions {
65
31
  version?: string;
66
32
  };
67
33
  }
68
- export interface UIMCPCatalogRegistry {
69
- defaultCatalogId: string;
70
- catalogInstructionMode: UIMCPCatalogInstructionMode;
71
- catalogs: Map<string, CatalogPromptDescriptor>;
72
- }
73
- export declare function createCatalogRegistry(catalogs?: readonly CatalogPromptDescriptor[], defaultCatalogId?: string, catalogInstructionMode?: UIMCPCatalogInstructionMode): UIMCPCatalogRegistry;
74
34
  export declare function createUIMCPNormalize(options?: UIMCPNormalizeMessagesOptions): UIMCPSyncNormalize;
75
35
  /**
76
36
  * Execute a UI MCP call. This is intentionally pure: it parses and returns the
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- const _0x4504e0=_0x10d9;(function(_0x156f00,_0x3e1e2d){const _0x438e6d=_0x10d9,_0x2bf530=_0x156f00();while(!![]){try{const _0x4db080=parseInt(_0x438e6d(0x64))/0x1*(parseInt(_0x438e6d(0x75))/0x2)+-parseInt(_0x438e6d(0x9f))/0x3+parseInt(_0x438e6d(0x91))/0x4+-parseInt(_0x438e6d(0xaf))/0x5+parseInt(_0x438e6d(0x90))/0x6+-parseInt(_0x438e6d(0xa1))/0x7*(parseInt(_0x438e6d(0x68))/0x8)+parseInt(_0x438e6d(0xa9))/0x9;if(_0x4db080===_0x3e1e2d)break;else _0x2bf530['push'](_0x2bf530['shift']());}catch(_0x21e769){_0x2bf530['push'](_0x2bf530['shift']());}}}(_0x54b4,0x4a6df));import{McpServer,ResourceTemplate}from'@modelcontextprotocol/sdk/server/mcp.js';import{McpServer as _0x145b82,ResourceTemplate as _0x27b866}from'@modelcontextprotocol/sdk/server/mcp.js';function _0x10d9(_0x1f1489,_0x4ee8bb){_0x1f1489=_0x1f1489-0x64;const _0x54b441=_0x54b4();let _0x10d9f8=_0x54b441[_0x1f1489];return _0x10d9f8;}import{z}from'zod/v4';import{A2UI_BASIC_COMPONENTS,normalizeUIResponse,A2UI_BASIC_CATALOG_ID,parseSpecA2UIMessages,A2UI_PROTOCOL_VERSION,describeCatalogForPrompt,pickBasicCatalogSchemaComponents,buildUIInstructions}from'@agentic-ui-experience/ui-core';import{UI_TOOL_NAME}from'@agentic-ui-experience/ui-core/tool-mode';const LIST_UI_CATALOGS_TOOL_NAME='list_ui_catalogs',GET_UI_CATALOG_TOOL_NAME='get_ui_catalog',BASIC_CATALOG_RESOURCE_URI=_0x4504e0(0x88),CATALOG_RESOURCE_URI_TEMPLATE=_0x4504e0(0x7f),basicCatalogDescriptor={'id':A2UI_BASIC_CATALOG_ID,'baseComponentNames':A2UI_BASIC_COMPONENTS},A2UI_MCP_TOOL_WORKFLOW=['A2UI\x20MCP\x20tool\x20workflow:',_0x4504e0(0x74)+LIST_UI_CATALOGS_TOOL_NAME+_0x4504e0(0x6c),'2.\x20Call\x20'+GET_UI_CATALOG_TOOL_NAME+'\x20with\x20the\x20selected\x20catalogId\x20and\x20only\x20the\x20componentNames\x20needed\x20for\x20the\x20UI.\x20Use\x20instructionMode\x20\x22full\x22\x20when\x20exact\x20component\x20fields\x20are\x20needed.',_0x4504e0(0xb2)+UI_TOOL_NAME+'\x20last\x20with\x20A2UI\x20messages\x20built\x20from\x20the\x20catalog\x20returned\x20by\x20'+GET_UI_CATALOG_TOOL_NAME+_0x4504e0(0x9a)]['join']('\x0a'),sendUIOutputSchema={'uiJson':z['string'](),'uiMessages':z['array'](z['unknown']())},listCatalogsOutputSchema={'catalogs':z[_0x4504e0(0x73)](z[_0x4504e0(0x82)]({'id':z['string'](),'resourceUri':z[_0x4504e0(0xba)](),'isDefault':z[_0x4504e0(0x94)](),'baseCatalogId':z[_0x4504e0(0xba)](),'baseComponentNames':z['array'](z['string']()),'customComponents':z['array'](z[_0x4504e0(0xba)]())}))},getCatalogOutputSchema={'catalog':z['object']({'id':z[_0x4504e0(0xba)](),'resourceUri':z['string'](),'isDefault':z['boolean'](),'baseCatalogId':z[_0x4504e0(0xba)](),'instructionMode':z['enum']([_0x4504e0(0x95),_0x4504e0(0xb4)]),'descriptor':z['unknown'](),'instructions':z[_0x4504e0(0xba)](),'catalogPrompt':z['string'](),'basicCatalogSchema':z[_0x4504e0(0x84)]()[_0x4504e0(0x6d)]()})},basicComponentNames=new Set(A2UI_BASIC_COMPONENTS),componentSchema=z[_0x4504e0(0x69)](z[_0x4504e0(0xba)](),z['unknown']()),createSurfaceMessageSchema=z[_0x4504e0(0x82)]({'version':z[_0x4504e0(0xa8)]('v0.9'),'createSurface':z[_0x4504e0(0x82)]({'surfaceId':z['string'](),'catalogId':z['string']()})}),updateComponentsMessageSchema=z['object']({'version':z['literal']('v0.9'),'updateComponents':z['object']({'surfaceId':z['string'](),'components':z['array'](componentSchema)})}),updateDataModelMessageSchema=z['object']({'version':z['literal']('v0.9'),'updateDataModel':z['object']({'surfaceId':z[_0x4504e0(0xba)](),'path':z[_0x4504e0(0xba)](),'value':z[_0x4504e0(0x84)]()[_0x4504e0(0x6d)]()})}),deleteSurfaceMessageSchema=z[_0x4504e0(0x82)]({'version':z['literal'](_0x4504e0(0x76)),'deleteSurface':z['object']({'surfaceId':z['string']()})});function createSendUIInputSchema(){const _0x4278e9=_0x4504e0;return{'catalogId':z[_0x4278e9(0xba)]()[_0x4278e9(0x6d)]()[_0x4278e9(0xa4)]('Optional\x20expected\x20catalog\x20id\x20for\x20this\x20UI\x20call.\x20This\x20is\x20a\x20validator\x20only:\x20still\x20include\x20the\x20same\x20value\x20in\x20`messages[0].createSurface.catalogId`.\x20Defaults\x20to\x20the\x20MCP\x20server\x20default\x20catalog\x20id,\x20then\x20the\x20A2UI\x20basic\x20catalog\x20id.'),'surfaceId':z['string']()[_0x4278e9(0x6d)]()['describe'](_0x4278e9(0x72)),'messages':z[_0x4278e9(0x73)](z['union']([createSurfaceMessageSchema,updateComponentsMessageSchema,updateDataModelMessageSchema,deleteSurfaceMessageSchema]))[_0x4278e9(0xa4)]([_0x4278e9(0xa5),_0x4278e9(0x6e)+LIST_UI_CATALOGS_TOOL_NAME+_0x4278e9(0xbb)+GET_UI_CATALOG_TOOL_NAME+'.','Build\x20component\x20objects\x20from\x20the\x20schema\x20returned\x20by\x20'+GET_UI_CATALOG_TOOL_NAME+';\x20do\x20not\x20guess\x20component\x20fields\x20from\x20this\x20tool\x20schema.',_0x4278e9(0xa7),'Every\x20entry\x20contains\x20`version`\x20and\x20exactly\x20one\x20of\x20`createSurface`/`updateComponents`/`updateDataModel`/`deleteSurface`.',_0x4278e9(0x81),_0x4278e9(0x71),_0x4278e9(0xb8)]['join']('\x20'))};}function createGetCatalogInputSchema(){const _0xe2fa33=_0x4504e0;return{'catalogId':z['string']()['optional']()['describe'](_0xe2fa33(0x65)),'componentNames':z['array'](z[_0xe2fa33(0xba)]())['min'](0x1)['optional']()[_0xe2fa33(0xa4)](_0xe2fa33(0x77)),'instructionMode':z[_0xe2fa33(0x86)]([_0xe2fa33(0x95),_0xe2fa33(0xb4)])[_0xe2fa33(0x6d)]()[_0xe2fa33(0xa4)]('Optional\x20instruction\x20detail\x20level\x20for\x20the\x20returned\x20catalog\x20instructions.\x20Defaults\x20to\x20the\x20MCP\x20server\x20catalogInstructionMode.\x20Use\x20compact\x20for\x20a\x20concise\x20field\x20cheat\x20sheet;\x20use\x20full\x20when\x20the\x20model\x20needs\x20the\x20authoritative\x20JSON\x20schema\x20in\x20the\x20instructions.')};}function createCatalogRegistry(_0x392c2d=[],_0x284c2d,_0x1896ef=_0x4504e0(0x95)){const _0x3fd66b=_0x4504e0,_0x4b9546=new Map();_0x4b9546[_0x3fd66b(0x70)](A2UI_BASIC_CATALOG_ID,basicCatalogDescriptor);for(const _0x5f16a4 of _0x392c2d){_0x4b9546['set'](_0x5f16a4['id'],_0x5f16a4);}const _0xce48fc=_0x284c2d??A2UI_BASIC_CATALOG_ID;if(!_0x4b9546['has'](_0xce48fc))throw new Error(_0x3fd66b(0xaa)+_0xce48fc+_0x3fd66b(0xb1));return{'defaultCatalogId':_0xce48fc,'catalogInstructionMode':_0x1896ef,'catalogs':_0x4b9546};}function getCatalogOrThrow(_0x2cf1b8,_0x1a2b6b){const _0x238146=_0x4504e0,_0x48d8c4=_0x2cf1b8['catalogs']['get'](_0x1a2b6b);if(!_0x48d8c4)throw new Error(_0x238146(0x8f)+_0x1a2b6b+_0x238146(0xb5));return _0x48d8c4;}function resolveExpectedCatalogId(_0x419af8,_0x923d86){return _0x923d86??_0x419af8['defaultCatalogId'];}function catalogResourceUri(_0x577778){const _0x6b105d=_0x4504e0;if(_0x577778===A2UI_BASIC_CATALOG_ID)return BASIC_CATALOG_RESOURCE_URI;return _0x6b105d(0x7e)+encodeURIComponent(_0x577778);}function catalogIdFromResourceVariable(_0x2f4068){const _0x51afd7=_0x4504e0;return _0x2f4068===_0x51afd7(0xc2)?A2UI_BASIC_CATALOG_ID:decodeURIComponent(_0x2f4068);}function createCatalogInstructions(_0x3f95af,_0x4809d3,_0x54a990='compact'){const _0x392ce4=_0x3f95af['id']!==A2UI_BASIC_CATALOG_ID||_0x4809d3!==void 0x0;return buildUIInstructions({'mode':_0x54a990,'envelope':![],..._0x392ce4?{'customCatalog':_0x3f95af}:{},..._0x4809d3===void 0x0?{}:{'basicComponentNames':_0x4809d3}});}function uniqueComponentNames(_0x5c68b6){return[...new Set(_0x5c68b6)];}function filterCatalogForComponents(_0x2f41af,_0x33db46){const _0x32ad8c=_0x4504e0,_0x170651=uniqueComponentNames(_0x33db46),_0x1d5c0e=new Set(_0x2f41af[_0x32ad8c(0xb9)]),_0xbdf4ce=_0x2f41af['customComponents']??[],_0x50a70d=new Map(_0xbdf4ce['map'](_0xe0108a=>[_0xe0108a[_0x32ad8c(0x87)],_0xe0108a])),_0x36d899=[],_0x1e3d80=[];for(const _0x2b4b29 of _0x170651){if(_0x1d5c0e['has'](_0x2b4b29)){_0x36d899[_0x32ad8c(0x6f)](_0x2b4b29);continue;}const _0x5ef5ab=_0x50a70d[_0x32ad8c(0x99)](_0x2b4b29);if(_0x5ef5ab){_0x1e3d80['push'](_0x5ef5ab);continue;}throw new Error(_0x32ad8c(0x92)+_0x2b4b29+'\x22\x20for\x20catalog\x20\x22'+_0x2f41af['id']+'\x22.\x20Use\x20list_ui_catalogs\x20to\x20inspect\x20available\x20components.');}const _0x4f4e26={..._0x2f41af,'baseComponentNames':_0x36d899,'customComponents':_0x1e3d80};return{'descriptor':_0x4f4e26,'basicComponentNames':_0x36d899,'basicCatalogSchema':pickBasicCatalogSchemaComponents(_0x36d899)};}function createCatalogDescription(_0x3390d5,_0x4344f4,_0x1ca573,_0x5cd0c8){const _0x48189c=_0x4504e0,_0x30bcb6=_0x1ca573===void 0x0?void 0x0:filterCatalogForComponents(_0x4344f4,_0x1ca573),_0x467f68=_0x30bcb6?.[_0x48189c(0xc1)]??_0x4344f4,_0x4213e6=_0x30bcb6?.['basicComponentNames'],_0x38b08b=_0x5cd0c8??_0x3390d5[_0x48189c(0x6b)];return{'id':_0x467f68['id'],'resourceUri':catalogResourceUri(_0x467f68['id']),'isDefault':_0x467f68['id']===_0x3390d5['defaultCatalogId'],'baseCatalogId':A2UI_BASIC_CATALOG_ID,'instructionMode':_0x38b08b,'descriptor':_0x467f68,'instructions':createCatalogInstructions(_0x467f68,_0x4213e6,_0x38b08b),'catalogPrompt':describeCatalogForPrompt(_0x467f68,{'format':_0x48189c(0x80)}),..._0x30bcb6===void 0x0?{}:{'basicCatalogSchema':_0x30bcb6['basicCatalogSchema']}};}function createCatalogSummary(_0x4c794a,_0xd9e922){const _0x12355d=_0x4504e0;return{'id':_0xd9e922['id'],'resourceUri':catalogResourceUri(_0xd9e922['id']),'isDefault':_0xd9e922['id']===_0x4c794a[_0x12355d(0x67)],'baseCatalogId':A2UI_BASIC_CATALOG_ID,'baseComponentNames':_0xd9e922[_0x12355d(0xb9)],'customComponents':(_0xd9e922['customComponents']??[])[_0x12355d(0x9e)](_0x2fbd37=>_0x2fbd37[_0x12355d(0x87)])};}function listCatalogs(_0x1dd843){const _0x34c8fd=_0x4504e0;return{'catalogs':[..._0x1dd843[_0x34c8fd(0x83)]['values']()]['map'](_0x30de69=>createCatalogSummary(_0x1dd843,_0x30de69))};}function getCatalogDescription(_0x4641aa,_0x3c36e2,_0x178388,_0x3c104f){const _0x4164a1=resolveExpectedCatalogId(_0x4641aa,_0x3c36e2);return{'catalog':createCatalogDescription(_0x4641aa,getCatalogOrThrow(_0x4641aa,_0x4164a1),_0x178388,_0x3c104f)};}function createGenericToolDescription(_0x24fe4d){const _0x444055=_0x4504e0,_0x415739=listCatalogs(_0x24fe4d)['catalogs'];return['Final\x20step:\x20render\x20UI\x20on\x20the\x20client\x20by\x20submitting\x20structured\x20A2UI\x20messages.',A2UI_MCP_TOOL_WORKFLOW,_0x444055(0x9b),_0x444055(0xa2)+_0x24fe4d[_0x444055(0x67)]+'.','Registered\x20catalogs:\x20'+_0x415739['map'](_0x32a9c9=>_0x32a9c9['id'])['join'](',\x20')+'.','Message\x20list\x20rules:',_0x444055(0xbd)+A2UI_PROTOCOL_VERSION+'\x22.','-\x20The\x20first\x20message\x20must\x20be\x20createSurface.','-\x20createSurface.surfaceId\x20must\x20match\x20the\x20top-level\x20surfaceId\x20when\x20supplied.','-\x20createSurface.catalogId\x20must\x20be\x20present\x20and\x20must\x20match\x20the\x20top-level\x20catalogId\x20when\x20supplied;\x20otherwise\x20it\x20must\x20match\x20the\x20MCP\x20server\x20default\x20catalog\x20id.','-\x20Later\x20updateComponents/updateDataModel/deleteSurface\x20messages\x20must\x20target\x20the\x20same\x20surface.','-\x20Component\x20objects\x20belong\x20only\x20inside\x20updateComponents.components\x20and\x20must\x20conform\x20to\x20the\x20schemas\x20returned\x20by\x20get_ui_catalog.',_0x444055(0x9c),_0x444055(0xac)]['join']('\x0a\x0a');}function createCatalogAwareComponentValidator(_0x19ec2f){const _0x7850d5=_0x4504e0,_0x40bf6f=new Set((_0x19ec2f[_0x7850d5(0xae)]??[])[_0x7850d5(0x9e)](_0x15cf5a=>_0x15cf5a['name']));return(_0x459f08,_0xf57cdb)=>{const _0x270d78=_0x7850d5;if(!basicComponentNames[_0x270d78(0x66)](_0x459f08)){if(_0x40bf6f[_0x270d78(0x66)](_0x459f08))return[];return['Unknown\x20A2UI\x20component\x20\x22'+_0x459f08+_0x270d78(0x98)+_0x19ec2f['id']+_0x270d78(0x8a)];}try{return parseSpecA2UIMessages([{'version':A2UI_PROTOCOL_VERSION,'createSurface':{'surfaceId':_0x270d78(0x93),'catalogId':A2UI_BASIC_CATALOG_ID}},{'version':A2UI_PROTOCOL_VERSION,'updateComponents':{'surfaceId':'basic-validation','components':[_0xf57cdb]}}]),[];}catch(_0x249efd){return[_0x249efd instanceof Error?_0x249efd['message']:String(_0x249efd)];}};}function createUIMCPNormalize(_0x390dc0={}){const _0x35bfb8=_0x4504e0,_0x46c62e=_0x390dc0[_0x35bfb8(0xa3)]??'strict',_0x57230f=createCatalogRegistry(_0x390dc0['catalogs'],_0x390dc0[_0x35bfb8(0x67)]);return _0x5ce415=>{const _0x58c38b=_0x35bfb8,_0x4d85e3=resolveExpectedCatalogId(_0x57230f,_0x5ce415[_0x58c38b(0x85)]),_0x3fd2fa=getCatalogOrThrow(_0x57230f,_0x4d85e3),_0xcc286d=normalizeUIResponse(_0x5ce415[_0x58c38b(0x8e)],{'mode':_0x46c62e,'validateComponent':createCatalogAwareComponentValidator(_0x3fd2fa)})['uiMessages'],_0x53a417=_0xcc286d[0x0],_0x5595a5=_0x5ce415['surfaceId']??_0x390dc0[_0x58c38b(0x7c)];if(!_0x53a417||!(_0x58c38b(0x9d)in _0x53a417))throw new Error(_0x58c38b(0xab));if(_0x5595a5!==void 0x0&&_0x53a417[_0x58c38b(0x9d)]['surfaceId']!==_0x5595a5)throw new Error(_0x58c38b(0x78)+_0x5595a5+'\x27.');if(_0x53a417['createSurface'][_0x58c38b(0x85)]!==_0x4d85e3)throw new Error('messages\x20createSurface.catalogId\x20must\x20be\x20\x27'+_0x4d85e3+'\x27.');return{'uiJson':JSON['stringify'](_0xcc286d),'uiMessages':_0xcc286d};};}const defaultNormalize=createUIMCPNormalize();function toToolError(_0x22b045){const _0x5b8253=_0x4504e0;return{'isError':!![],'content':[{'type':_0x5b8253(0x89),'text':_0x22b045}]};}function toToolResult(_0x22758c){const _0x14764b=_0x4504e0;return{'content':[{'type':'text','text':'Accepted\x20'+_0x22758c[_0x14764b(0xa6)]['length']+_0x14764b(0xbc)}],'structuredContent':_0x22758c};}function toCatalogToolResult(_0x3e2ef6){return{'content':[{'type':'text','text':JSON['stringify'](_0x3e2ef6)}],'structuredContent':_0x3e2ef6};}async function createUIToolCallResult(_0x1055a8,_0x28ea1a=defaultNormalize){try{return toToolResult(await _0x28ea1a(_0x1055a8));}catch(_0x1e4256){const _0x1b4a90=_0x1e4256 instanceof Error?_0x1e4256['message']:String(_0x1e4256);return toToolError(_0x1b4a90);}}function createCatalogResourceResult(_0x35ff1f,_0x51032e,_0x24c95b){const _0x3edbd3=_0x4504e0,_0x28e6af=getCatalogDescription(_0x35ff1f,_0x51032e);return{'contents':[{'uri':_0x24c95b,'mimeType':'application/json','text':JSON[_0x3edbd3(0xa0)](_0x28e6af['catalog'])}]};}function registerUICatalogResources(_0x2bc1f1,_0x5a656d){const _0x1df86a=_0x4504e0,_0x215336=_0x2bc1f1['registerResource']('a2ui-basic-catalog',BASIC_CATALOG_RESOURCE_URI,{'title':_0x1df86a(0xc0),'description':'Built-in\x20A2UI\x20basic\x20catalog\x20instructions\x20and\x20component\x20schema.','mimeType':_0x1df86a(0xad)},_0x4ebbec=>createCatalogResourceResult(_0x5a656d,A2UI_BASIC_CATALOG_ID,_0x4ebbec['href'])),_0x4373e8=[..._0x5a656d[_0x1df86a(0x83)]['values']()][_0x1df86a(0x8b)](_0xcccf7f=>_0xcccf7f['id']!==A2UI_BASIC_CATALOG_ID)[_0x1df86a(0x9e)](_0x155da1=>_0x2bc1f1[_0x1df86a(0x96)]('a2ui-catalog-'+_0x155da1['id'],catalogResourceUri(_0x155da1['id']),{'title':_0x1df86a(0xb3)+_0x155da1['id'],'description':'Registered\x20A2UI\x20catalog\x20instructions\x20and\x20custom\x20component\x20schema.','mimeType':_0x1df86a(0xad)},_0x488935=>createCatalogResourceResult(_0x5a656d,_0x155da1['id'],_0x488935['href']))),_0x297c08=_0x2bc1f1[_0x1df86a(0x96)]('a2ui-catalog',new ResourceTemplate(CATALOG_RESOURCE_URI_TEMPLATE,{'list':()=>({'resources':[..._0x5a656d[_0x1df86a(0x83)][_0x1df86a(0x7a)]()][_0x1df86a(0x9e)](_0x4900e9=>({'uri':catalogResourceUri(_0x4900e9['id']),'name':_0x4900e9['id'],'title':_0x4900e9['id'],'mimeType':'application/json'}))}),'complete':{'catalogId':_0x49d8ee=>{const _0x10d9dc=_0x1df86a,_0x195023=_0x49d8ee[_0x10d9dc(0x79)]();return[..._0x5a656d['catalogs']['keys']()]['map'](_0x1383ae=>_0x1383ae===A2UI_BASIC_CATALOG_ID?'basic':encodeURIComponent(_0x1383ae))['filter'](_0x50cf6a=>_0x50cf6a['toLowerCase']()[_0x10d9dc(0x7b)](_0x195023));}}}),{'title':_0x1df86a(0x97),'description':_0x1df86a(0xbe),'mimeType':_0x1df86a(0xad)},(_0x413cb5,_0x351492)=>createCatalogResourceResult(_0x5a656d,catalogIdFromResourceVariable(String(_0x351492[_0x1df86a(0x85)])),_0x413cb5[_0x1df86a(0x7d)]));return{'basic':_0x215336,'catalogs':_0x4373e8,'template':_0x297c08};}function registerUICatalogTools(_0x340cf1,_0x145007){const _0x5cd0e1=_0x4504e0,_0x384497=_0x340cf1['registerTool'](LIST_UI_CATALOGS_TOOL_NAME,{'title':'List\x20A2UI\x20Catalogs','description':['Step\x201\x20of\x20the\x20A2UI\x20MCP\x20workflow.\x20Call\x20this\x20before\x20get_ui_catalog\x20or\x20send_ui_to_client.',A2UI_MCP_TOOL_WORKFLOW,'Returns\x20registered\x20catalog\x20ids,\x20the\x20default\x20catalog,\x20base\x20component\x20names,\x20and\x20custom\x20component\x20names.\x20Use\x20the\x20returned\x20component\x20names\x20to\x20choose\x20the\x20componentNames\x20for\x20get_ui_catalog.'][_0x5cd0e1(0x8d)]('\x0a\x0a'),'outputSchema':listCatalogsOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]}},async()=>toCatalogToolResult(listCatalogs(_0x145007))),_0x3a97eb=_0x340cf1['registerTool'](GET_UI_CATALOG_TOOL_NAME,{'title':'Get\x20A2UI\x20Catalog','description':['Step\x202\x20of\x20the\x20A2UI\x20MCP\x20workflow.\x20Call\x20this\x20after\x20list_ui_catalogs\x20and\x20before\x20send_ui_to_client.',A2UI_MCP_TOOL_WORKFLOW,'Returns\x20LLM-facing\x20A2UI\x20message\x20rules,\x20basic\x20catalog\x20schema,\x20custom\x20component\x20schemas,\x20style\x20guide,\x20and\x20examples\x20for\x20a\x20registered\x20catalog.','Pass\x20only\x20the\x20componentNames\x20needed\x20for\x20the\x20current\x20UI\x20response.\x20Omit\x20componentNames\x20only\x20when\x20the\x20complete\x20catalog\x20is\x20needed.','Use\x20instructionMode\x20\x22full\x22\x20for\x20forms,\x20unfamiliar\x20components,\x20validation\x20failures,\x20or\x20when\x20exact\x20required\x20fields\x20are\x20needed.']['join']('\x0a\x0a'),'inputSchema':createGetCatalogInputSchema(),'outputSchema':getCatalogOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]}},async _0x44e254=>{const _0x2e6785=_0x5cd0e1;try{return toCatalogToolResult(getCatalogDescription(_0x145007,_0x44e254[_0x2e6785(0x85)],_0x44e254[_0x2e6785(0xb0)],_0x44e254[_0x2e6785(0xb6)]));}catch(_0x216b96){const _0x5d263b=_0x216b96 instanceof Error?_0x216b96['message']:String(_0x216b96);return toToolError(_0x5d263b);}});return{'list':_0x384497,'get':_0x3a97eb};}function registerGenericUITool(_0x2746f6,_0x4f50cc,_0x50629d={}){const _0x77813b=_0x4504e0;return _0x2746f6['registerTool'](UI_TOOL_NAME,{'title':_0x50629d['title'],'description':createGenericToolDescription(_0x4f50cc),'inputSchema':createSendUIInputSchema(),'outputSchema':sendUIOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![],..._0x50629d[_0x77813b(0xb7)]}},async _0x55116b=>createUIToolCallResult(_0x55116b,_0x50629d['normalize']));}function _0x54b4(){const _0x59b47a=['describe','The\x20complete\x20A2UI\x20v0.9-compatible\x20UI\x20message\x20array.','uiMessages','Do\x20not\x20pass\x20a\x20JSON\x20string\x20and\x20do\x20not\x20use\x20a\x20ui_json\x20field.','literal','5716944ZUGxEJ','Default\x20A2UI\x20catalog\x20\x22','messages\x20must\x20begin\x20with\x20a\x20createSurface\x20A2UI\x20message.','Top-level\x20`catalogId`\x20is\x20only\x20an\x20expected-value\x20guard;\x20it\x20does\x20not\x20populate\x20the\x20A2UI\x20message.\x20The\x20first\x20message\x20must\x20repeat\x20the\x20catalog\x20id\x20at\x20`messages[0].createSurface.catalogId`.','application/json','customComponents','2891510LUgriM','componentNames','\x22\x20is\x20not\x20registered.','3.\x20Call\x20','A2UI\x20Catalog\x20','full','\x22\x20is\x20not\x20registered\x20on\x20this\x20MCP\x20server.','instructionMode','annotations','Component\x20objects\x20belong\x20inside\x20a\x20later\x20`updateComponents.components`\x20array.','baseComponentNames','string','\x20and\x20','\x20A2UI\x20UI\x20message(s).','-\x20Every\x20message\x20must\x20include\x20\x22version\x22:\x20\x22','Registered\x20A2UI\x20catalog\x20instructions\x20and\x20custom\x20component\x20schema.','server','A2UI\x20Basic\x20Catalog','descriptor','basic','389orRUIN','Optional\x20catalog\x20id.\x20Defaults\x20to\x20the\x20MCP\x20server\x20default\x20catalog\x20id,\x20then\x20the\x20A2UI\x20basic\x20catalog\x20id.','has','defaultCatalogId','6184LzXPHe','record','@agentic-ui-experience/ui-mcp','catalogInstructionMode','\x20first\x20to\x20discover\x20the\x20default\x20catalog\x20id\x20and\x20available\x20component\x20names.','optional','Use\x20this\x20only\x20as\x20workflow\x20step\x203,\x20after\x20inspecting\x20catalog\x20metadata\x20with\x20','push','set','If\x20the\x20tool\x20call\x20includes\x20top-level\x20`catalogId`,\x20`messages[0].createSurface.catalogId`\x20must\x20repeat\x20the\x20same\x20value.','Optional\x20expected\x20surface\x20id\x20for\x20this\x20UI\x20call.\x20When\x20supplied,\x20`messages[0].createSurface.surfaceId`\x20must\x20match\x20it.','array','1.\x20Call\x20','930KhYOKX','v0.9','Optional\x20component\x20names\x20to\x20fetch.\x20Use\x20list_ui_catalogs\x20first,\x20then\x20pass\x20only\x20the\x20basic\x20or\x20custom\x20components\x20needed\x20for\x20this\x20UI\x20response.\x20Omit\x20to\x20fetch\x20the\x20complete\x20catalog.','messages\x20createSurface.surfaceId\x20must\x20be\x20\x27','toLowerCase','values','startsWith','surfaceId','href','a2ui://catalog/','a2ui://catalog/{catalogId}','minified','The\x20first\x20entry\x20must\x20be\x20`createSurface`\x20with\x20both\x20`surfaceId`\x20and\x20`catalogId`\x20inside\x20`createSurface`.','object','catalogs','unknown','catalogId','enum','name','a2ui://catalog/basic','text','\x22.\x20Register\x20it\x20in\x20the\x20MCP\x20server\x20catalog\x20descriptor.','filter','normalize','join','messages','A2UI\x20catalog\x20\x22','1748742UcEHKb','1531948XyOiEJ','Unknown\x20A2UI\x20component\x20\x22','basic-validation','boolean','compact','registerResource','A2UI\x20Catalog','\x22\x20for\x20catalog\x20\x22','get','.\x20Do\x20not\x20guess\x20component\x20schemas.','Do\x20not\x20call\x20this\x20tool\x20before\x20using\x20the\x20catalog\x20discovery\x20tools\x20in\x20the\x20same\x20task.\x20This\x20tool\x20validates\x20and\x20returns\x20A2UI\x20messages;\x20it\x20is\x20not\x20the\x20source\x20of\x20component\x20schemas.','Do\x20not\x20send\x20`ui_json`;\x20do\x20not\x20serialize\x20the\x20messages\x20into\x20a\x20JSON\x20string.','createSurface','map','1321236pZJqnN','stringify','1512dUnqXx','Default\x20catalog\x20id:\x20','mode'];_0x54b4=function(){return _0x59b47a;};return _0x54b4();}function createUIMCPServer(_0x593c9a={}){const _0x1c8319=_0x4504e0,_0x31b43f=createCatalogRegistry(_0x593c9a[_0x1c8319(0x83)],_0x593c9a['defaultCatalogId'],_0x593c9a['catalogInstructionMode']),_0x2ac376=_0x593c9a[_0x1c8319(0x8c)]??createUIMCPNormalize({'catalogs':_0x593c9a[_0x1c8319(0x83)],'defaultCatalogId':_0x593c9a[_0x1c8319(0x67)]}),_0x40c0e0=new McpServer({'name':_0x593c9a[_0x1c8319(0xbf)]?.[_0x1c8319(0x87)]??_0x1c8319(0x6a),'version':_0x593c9a[_0x1c8319(0xbf)]?.['version']??'0.0.0'});return registerUICatalogResources(_0x40c0e0,_0x31b43f),registerUICatalogTools(_0x40c0e0,_0x31b43f),registerGenericUITool(_0x40c0e0,_0x31b43f,{..._0x593c9a,'normalize':_0x2ac376}),_0x40c0e0;}export{BASIC_CATALOG_RESOURCE_URI,CATALOG_RESOURCE_URI_TEMPLATE,GET_UI_CATALOG_TOOL_NAME,LIST_UI_CATALOGS_TOOL_NAME,_0x145b82 as McpServer,_0x27b866 as ResourceTemplate,createCatalogRegistry,createUIMCPNormalize,createUIMCPServer,createUIToolCallResult,registerGenericUITool,registerUICatalogResources,registerUICatalogTools};
1
+ const _0x32dd7e=_0x1500;(function(_0x59384c,_0x5dab4b){const _0x35a13b=_0x1500,_0x5b9344=_0x59384c();while(!![]){try{const _0x3aaddf=parseInt(_0x35a13b(0x175))/0x1+parseInt(_0x35a13b(0x161))/0x2+-parseInt(_0x35a13b(0x16c))/0x3*(-parseInt(_0x35a13b(0x166))/0x4)+-parseInt(_0x35a13b(0x155))/0x5*(parseInt(_0x35a13b(0x151))/0x6)+-parseInt(_0x35a13b(0x185))/0x7*(-parseInt(_0x35a13b(0x186))/0x8)+parseInt(_0x35a13b(0x168))/0x9*(-parseInt(_0x35a13b(0x148))/0xa)+-parseInt(_0x35a13b(0x14b))/0xb*(parseInt(_0x35a13b(0x158))/0xc);if(_0x3aaddf===_0x5dab4b)break;else _0x5b9344['push'](_0x5b9344['shift']());}catch(_0x29406d){_0x5b9344['push'](_0x5b9344['shift']());}}}(_0x43ac,0x7dbe7));import{McpServer,ResourceTemplate}from'@modelcontextprotocol/sdk/server/mcp.js';import{McpServer as _0x13fec9,ResourceTemplate as _0x32ec85}from'@modelcontextprotocol/sdk/server/mcp.js';import{z}from'zod/v4';import{createUISendNormalizer,createUICatalogRegistry,BASIC_CATALOG_RESOURCE_URI,catalogIdFromResourceVariable,catalogResourceUri,CATALOG_RESOURCE_URI_TEMPLATE,LIST_UI_CATALOGS_TOOL_NAME,UI_TOOL_WORKFLOW,listUICatalogs,GET_UI_CATALOG_TOOL_NAME,getUICatalog,UI_TOOL_NAME,createUICatalogResourcePayload,normalizeUISendToolArguments}from'@agentic-ui-experience/ui-core/tool-mode';const sendUIOutputSchema={'uiJson':z['string'](),'uiMessages':z['array'](z[_0x32dd7e(0x176)]())},listCatalogsOutputSchema={'catalogs':z['array'](z['object']({'id':z['string'](),'resourceUri':z[_0x32dd7e(0x146)](),'isDefault':z['boolean'](),'baseCatalogId':z['string'](),'baseComponentNames':z[_0x32dd7e(0x157)](z[_0x32dd7e(0x146)]()),'customComponents':z['array'](z['string']())}))},getCatalogOutputSchema={'catalog':z['object']({'id':z['string'](),'resourceUri':z['string'](),'isDefault':z['boolean'](),'baseCatalogId':z['string'](),'instructionMode':z['enum'](['compact','full']),'descriptor':z[_0x32dd7e(0x176)](),'instructions':z[_0x32dd7e(0x146)](),'catalogPrompt':z['string'](),'basicCatalogSchema':z['unknown']()[_0x32dd7e(0x17b)]()})},componentSchema=z[_0x32dd7e(0x165)](z['string'](),z[_0x32dd7e(0x176)]()),createSurfaceMessageSchema=z[_0x32dd7e(0x14a)]({'version':z[_0x32dd7e(0x16e)]('v0.9'),'createSurface':z['object']({'surfaceId':z['string'](),'catalogId':z['string']()})[_0x32dd7e(0x15c)]()})['passthrough'](),updateComponentsMessageSchema=z['object']({'version':z['literal'](_0x32dd7e(0x18b)),'updateComponents':z[_0x32dd7e(0x14a)]({'surfaceId':z[_0x32dd7e(0x146)](),'components':z['array'](componentSchema)})['passthrough']()})['passthrough'](),updateDataModelMessageSchema=z[_0x32dd7e(0x14a)]({'version':z[_0x32dd7e(0x16e)](_0x32dd7e(0x18b)),'updateDataModel':z['object']({'surfaceId':z[_0x32dd7e(0x146)](),'path':z['string']()['optional'](),'value':z[_0x32dd7e(0x176)]()['optional']()})[_0x32dd7e(0x15c)]()})['passthrough'](),deleteSurfaceMessageSchema=z[_0x32dd7e(0x14a)]({'version':z['literal']('v0.9'),'deleteSurface':z[_0x32dd7e(0x14a)]({'surfaceId':z[_0x32dd7e(0x146)]()})[_0x32dd7e(0x15c)]()})[_0x32dd7e(0x15c)]();function createSendUIInputSchema(){const _0xf23b15=_0x32dd7e;return{'catalogId':z['string']()['optional']()['describe']('Optional\x20expected\x20catalog\x20id\x20for\x20this\x20UI\x20call.\x20This\x20is\x20a\x20validator\x20only:\x20still\x20include\x20the\x20same\x20value\x20in\x20`messages[0].createSurface.catalogId`.\x20Defaults\x20to\x20the\x20MCP\x20server\x20default\x20catalog\x20id,\x20then\x20the\x20A2UI\x20basic\x20catalog\x20id.'),'surfaceId':z['string']()['optional']()['describe']('Optional\x20expected\x20surface\x20id\x20for\x20this\x20UI\x20call.\x20When\x20supplied,\x20`messages[0].createSurface.surfaceId`\x20must\x20match\x20it.'),'messages':z[_0xf23b15(0x157)](z['union']([createSurfaceMessageSchema,updateComponentsMessageSchema,updateDataModelMessageSchema,deleteSurfaceMessageSchema]))[_0xf23b15(0x180)](['The\x20complete\x20A2UI\x20v0.9-compatible\x20UI\x20message\x20array.',_0xf23b15(0x15b)+LIST_UI_CATALOGS_TOOL_NAME+'\x20and\x20'+GET_UI_CATALOG_TOOL_NAME+'.',_0xf23b15(0x18d)+GET_UI_CATALOG_TOOL_NAME+_0xf23b15(0x184),_0xf23b15(0x159),_0xf23b15(0x178),'The\x20first\x20entry\x20must\x20be\x20`createSurface`\x20with\x20both\x20`surfaceId`\x20and\x20`catalogId`\x20inside\x20`createSurface`.','If\x20the\x20tool\x20call\x20includes\x20top-level\x20`catalogId`,\x20`messages[0].createSurface.catalogId`\x20must\x20repeat\x20the\x20same\x20value.',_0xf23b15(0x17c)]['join']('\x20'))};}function createGetCatalogInputSchema(){const _0x190f77=_0x32dd7e;return{'catalogId':z[_0x190f77(0x146)]()['optional']()[_0x190f77(0x180)](_0x190f77(0x167)),'componentNames':z['array'](z[_0x190f77(0x146)]())[_0x190f77(0x189)](0x1)['optional']()[_0x190f77(0x180)](_0x190f77(0x174)),'instructionMode':z['enum']([_0x190f77(0x182),_0x190f77(0x147)])['optional']()[_0x190f77(0x180)]('Optional\x20instruction\x20detail\x20level\x20for\x20the\x20returned\x20catalog\x20instructions.\x20Defaults\x20to\x20the\x20MCP\x20server\x20catalogInstructionMode.\x20Use\x20compact\x20for\x20a\x20concise\x20field\x20cheat\x20sheet;\x20use\x20full\x20when\x20the\x20model\x20needs\x20the\x20authoritative\x20JSON\x20schema\x20in\x20the\x20instructions.')};}function createGenericToolDescription(_0x4e1f32){const _0x54a9ad=_0x32dd7e,_0x2a37d0=listUICatalogs(_0x4e1f32)[_0x54a9ad(0x172)];return[_0x54a9ad(0x17f),UI_TOOL_WORKFLOW,_0x54a9ad(0x17e),_0x54a9ad(0x173)+_0x4e1f32['defaultCatalogId']+'.','Registered\x20catalogs:\x20'+_0x2a37d0[_0x54a9ad(0x152)](_0x358de5=>_0x358de5['id'])[_0x54a9ad(0x14c)](',\x20')+'.','Message\x20list\x20rules:',_0x54a9ad(0x188),'-\x20The\x20first\x20message\x20must\x20be\x20createSurface.',_0x54a9ad(0x16d),_0x54a9ad(0x17a),'-\x20Later\x20updateComponents/updateDataModel/deleteSurface\x20messages\x20must\x20target\x20the\x20same\x20surface.','-\x20Component\x20objects\x20belong\x20only\x20inside\x20updateComponents.components\x20and\x20must\x20conform\x20to\x20the\x20schemas\x20returned\x20by\x20get_ui_catalog.',_0x54a9ad(0x16a),_0x54a9ad(0x16b)]['join']('\x0a\x0a');}function createUIMCPNormalize(_0x1ef7e9={}){const _0x4fb648=_0x32dd7e;return createUISendNormalizer({'mode':_0x1ef7e9[_0x4fb648(0x15a)],'surfaceId':_0x1ef7e9[_0x4fb648(0x183)],'defaultCatalogId':_0x1ef7e9[_0x4fb648(0x169)],'catalogs':_0x1ef7e9[_0x4fb648(0x172)]});}const defaultNormalize=createUIMCPNormalize();function _0x43ac(){const _0x221c58=['a2ui-basic-catalog','values','1317786LhWmrM','map','Accepted\x20','keys','10KPOyvR','catalogId','array','338028kHPfyK','Do\x20not\x20pass\x20a\x20JSON\x20string\x20and\x20do\x20not\x20use\x20a\x20ui_json\x20field.','mode','Use\x20this\x20only\x20as\x20workflow\x20step\x203,\x20after\x20inspecting\x20catalog\x20metadata\x20with\x20','passthrough','componentNames','text','List\x20A2UI\x20Catalogs','application/json','1130792JzxVix','name','href','basic','record','412NvjEeo','Optional\x20catalog\x20id.\x20Defaults\x20to\x20the\x20MCP\x20server\x20default\x20catalog\x20id,\x20then\x20the\x20A2UI\x20basic\x20catalog\x20id.','542421HGLuLr','defaultCatalogId','Do\x20not\x20send\x20`ui_json`;\x20do\x20not\x20serialize\x20the\x20messages\x20into\x20a\x20JSON\x20string.','Top-level\x20`catalogId`\x20is\x20only\x20an\x20expected-value\x20guard;\x20it\x20does\x20not\x20populate\x20the\x20A2UI\x20message.\x20The\x20first\x20message\x20must\x20repeat\x20the\x20catalog\x20id\x20at\x20`messages[0].createSurface.catalogId`.','10215xzfpUz','-\x20createSurface.surfaceId\x20must\x20match\x20the\x20top-level\x20surfaceId\x20when\x20supplied.','literal','instructionMode','server','Step\x201\x20of\x20the\x20A2UI\x20MCP\x20workflow.\x20Call\x20this\x20before\x20get_ui_catalog\x20or\x20send_ui_to_client.','catalogs','Default\x20catalog\x20id:\x20','Optional\x20component\x20names\x20to\x20fetch.\x20Use\x20list_ui_catalogs\x20first,\x20then\x20pass\x20only\x20the\x20basic\x20or\x20custom\x20components\x20needed\x20for\x20this\x20UI\x20response.\x20Omit\x20to\x20fetch\x20the\x20complete\x20catalog.','896050bGZwkj','unknown','annotations','Every\x20entry\x20contains\x20`version`\x20and\x20exactly\x20one\x20of\x20`createSurface`/`updateComponents`/`updateDataModel`/`deleteSurface`.','normalize','-\x20createSurface.catalogId\x20must\x20be\x20present\x20and\x20must\x20match\x20the\x20top-level\x20catalogId\x20when\x20supplied;\x20otherwise\x20it\x20must\x20match\x20the\x20registered\x20default\x20catalog\x20id.','optional','Component\x20objects\x20belong\x20inside\x20a\x20later\x20`updateComponents.components`\x20array.','toLowerCase','Do\x20not\x20call\x20this\x20tool\x20before\x20using\x20the\x20catalog\x20discovery\x20tools\x20in\x20the\x20same\x20task.\x20This\x20tool\x20validates\x20and\x20returns\x20A2UI\x20messages;\x20it\x20is\x20not\x20the\x20source\x20of\x20component\x20schemas.','Final\x20step:\x20render\x20UI\x20on\x20the\x20client\x20by\x20submitting\x20structured\x20A2UI\x20messages.','describe','Registered\x20A2UI\x20catalog\x20instructions\x20and\x20custom\x20component\x20schema.','compact','surfaceId',';\x20do\x20not\x20guess\x20component\x20fields\x20from\x20this\x20tool\x20schema.','63ibpwgD','521448mPRtxc','message','-\x20Every\x20message\x20must\x20include\x20\x22version\x22:\x20\x22v0.9\x22.','min','Returns\x20LLM-facing\x20A2UI\x20message\x20rules,\x20basic\x20catalog\x20schema,\x20custom\x20component\x20schemas,\x20style\x20guide,\x20and\x20examples\x20for\x20a\x20registered\x20catalog.','v0.9','Pass\x20only\x20the\x20componentNames\x20needed\x20for\x20the\x20current\x20UI\x20response.\x20Omit\x20componentNames\x20only\x20when\x20the\x20complete\x20catalog\x20is\x20needed.','Build\x20component\x20objects\x20from\x20the\x20schema\x20returned\x20by\x20','string','full','20FaRran','\x20A2UI\x20UI\x20message(s).','object','517ublcJn','join','@agentic-ui-experience/ui-mcp','A2UI\x20Catalog'];_0x43ac=function(){return _0x221c58;};return _0x43ac();}function toToolError(_0x40a984){return{'isError':!![],'content':[{'type':'text','text':_0x40a984}]};}function toToolResult(_0x5a23d5){const _0xbc1cd3=_0x32dd7e;return{'content':[{'type':'text','text':_0xbc1cd3(0x153)+_0x5a23d5['uiMessages']['length']+_0xbc1cd3(0x149)}],'structuredContent':_0x5a23d5};}function toCatalogToolResult(_0x4686fd){const _0x3774e9=_0x32dd7e;return{'content':[{'type':_0x3774e9(0x15e),'text':JSON['stringify'](_0x4686fd)}],'structuredContent':_0x4686fd};}async function createUIToolCallResult(_0x2420e7,_0x43c141=defaultNormalize){try{const _0x3fdb0c=await _0x43c141(_0x2420e7);return toToolResult(normalizeUISendToolArguments(_0x2420e7,()=>_0x3fdb0c));}catch(_0x52e480){const _0x3aabbd=_0x52e480 instanceof Error?_0x52e480['message']:String(_0x52e480);return toToolError(_0x3aabbd);}}function toMCPResourceResult(_0x12293d){return _0x12293d;}function createCatalogResourceResult(_0x3f6b5a,_0x1930ac,_0x62f94b){return toMCPResourceResult(createUICatalogResourcePayload(_0x3f6b5a,_0x1930ac,_0x62f94b));}function registerUICatalogResources(_0x365009,_0x33fda2){const _0x35b1b2=_0x32dd7e,_0x6b7c49=_0x365009['registerResource'](_0x35b1b2(0x14f),BASIC_CATALOG_RESOURCE_URI,{'title':'A2UI\x20Basic\x20Catalog','description':'Built-in\x20A2UI\x20basic\x20catalog\x20instructions\x20and\x20component\x20schema.','mimeType':'application/json'},_0x4193dd=>createCatalogResourceResult(_0x33fda2,catalogIdFromResourceVariable(_0x35b1b2(0x164)),_0x4193dd[_0x35b1b2(0x163)])),_0x52fa9b=[..._0x33fda2[_0x35b1b2(0x172)][_0x35b1b2(0x150)]()]['filter'](_0x20b2b0=>catalogResourceUri(_0x20b2b0['id'])!==BASIC_CATALOG_RESOURCE_URI)['map'](_0x463735=>_0x365009['registerResource']('a2ui-catalog-'+_0x463735['id'],catalogResourceUri(_0x463735['id']),{'title':'A2UI\x20Catalog\x20'+_0x463735['id'],'description':_0x35b1b2(0x181),'mimeType':_0x35b1b2(0x160)},_0x3b0684=>createCatalogResourceResult(_0x33fda2,_0x463735['id'],_0x3b0684['href']))),_0x11f624=_0x365009['registerResource']('a2ui-catalog',new ResourceTemplate(CATALOG_RESOURCE_URI_TEMPLATE,{'list':()=>({'resources':[..._0x33fda2['catalogs']['values']()]['map'](_0x2ea7dc=>({'uri':catalogResourceUri(_0x2ea7dc['id']),'name':_0x2ea7dc['id'],'title':_0x2ea7dc['id'],'mimeType':'application/json'}))}),'complete':{'catalogId':_0x454ef7=>{const _0x2898d7=_0x35b1b2,_0x26038c=_0x454ef7['toLowerCase']();return[..._0x33fda2[_0x2898d7(0x172)][_0x2898d7(0x154)]()][_0x2898d7(0x152)](_0x368466=>catalogResourceUri(_0x368466)===BASIC_CATALOG_RESOURCE_URI?'basic':encodeURIComponent(_0x368466))['filter'](_0x2085a=>_0x2085a[_0x2898d7(0x17d)]()['startsWith'](_0x26038c));}}}),{'title':_0x35b1b2(0x14e),'description':_0x35b1b2(0x181),'mimeType':_0x35b1b2(0x160)},(_0x27846a,_0x35afcf)=>createCatalogResourceResult(_0x33fda2,catalogIdFromResourceVariable(String(_0x35afcf[_0x35b1b2(0x156)])),_0x27846a[_0x35b1b2(0x163)]));return{'basic':_0x6b7c49,'catalogs':_0x52fa9b,'template':_0x11f624};}function _0x1500(_0xaa13d6,_0x1c406c){_0xaa13d6=_0xaa13d6-0x146;const _0x43ac42=_0x43ac();let _0x15002b=_0x43ac42[_0xaa13d6];return _0x15002b;}function registerUICatalogTools(_0x1816ec,_0x4f586c){const _0x4a8692=_0x32dd7e,_0x1ae6a8=_0x1816ec['registerTool'](LIST_UI_CATALOGS_TOOL_NAME,{'title':_0x4a8692(0x15f),'description':[_0x4a8692(0x171),UI_TOOL_WORKFLOW,'Returns\x20registered\x20catalog\x20ids,\x20the\x20default\x20catalog,\x20base\x20component\x20names,\x20and\x20custom\x20component\x20names.\x20Use\x20the\x20returned\x20component\x20names\x20to\x20choose\x20the\x20componentNames\x20for\x20get_ui_catalog.']['join']('\x0a\x0a'),'outputSchema':listCatalogsOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]}},async()=>toCatalogToolResult(listUICatalogs(_0x4f586c))),_0x133979=_0x1816ec['registerTool'](GET_UI_CATALOG_TOOL_NAME,{'title':'Get\x20A2UI\x20Catalog','description':['Step\x202\x20of\x20the\x20A2UI\x20MCP\x20workflow.\x20Call\x20this\x20after\x20list_ui_catalogs\x20and\x20before\x20send_ui_to_client.',UI_TOOL_WORKFLOW,_0x4a8692(0x18a),_0x4a8692(0x18c),'Use\x20instructionMode\x20\x22full\x22\x20for\x20forms,\x20unfamiliar\x20components,\x20validation\x20failures,\x20or\x20when\x20exact\x20required\x20fields\x20are\x20needed.']['join']('\x0a\x0a'),'inputSchema':createGetCatalogInputSchema(),'outputSchema':getCatalogOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]}},async _0x49dd48=>{const _0x59624a=_0x4a8692;try{return toCatalogToolResult(getUICatalog(_0x4f586c,{'catalogId':_0x49dd48[_0x59624a(0x156)],'componentNames':_0x49dd48[_0x59624a(0x15d)],'instructionMode':_0x49dd48[_0x59624a(0x16f)]}));}catch(_0x3f6d05){const _0xc1f529=_0x3f6d05 instanceof Error?_0x3f6d05[_0x59624a(0x187)]:String(_0x3f6d05);return toToolError(_0xc1f529);}});return{'list':_0x1ae6a8,'get':_0x133979};}function registerGenericUITool(_0x17b9ee,_0x7a0d21,_0x26b2e9={}){const _0x181bf3=_0x32dd7e,_0x2c5cda=_0x26b2e9[_0x181bf3(0x179)]??createUISendNormalizer({'registry':_0x7a0d21});return _0x17b9ee['registerTool'](UI_TOOL_NAME,{'title':_0x26b2e9['title'],'description':createGenericToolDescription(_0x7a0d21),'inputSchema':createSendUIInputSchema(),'outputSchema':sendUIOutputSchema,'annotations':{'readOnlyHint':![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![],..._0x26b2e9[_0x181bf3(0x177)]}},async _0x1d11e6=>createUIToolCallResult(_0x1d11e6,_0x2c5cda));}function createUIMCPServer(_0x50e42c={}){const _0x7243d1=_0x32dd7e,_0x2abdf4=createUICatalogRegistry(_0x50e42c['catalogs'],_0x50e42c[_0x7243d1(0x169)],_0x50e42c['catalogInstructionMode']),_0x4df67c=_0x50e42c[_0x7243d1(0x179)]??createUIMCPNormalize({'catalogs':_0x50e42c[_0x7243d1(0x172)],'defaultCatalogId':_0x50e42c[_0x7243d1(0x169)]}),_0x455eb0=new McpServer({'name':_0x50e42c['server']?.[_0x7243d1(0x162)]??_0x7243d1(0x14d),'version':_0x50e42c[_0x7243d1(0x170)]?.['version']??'0.0.0'});return registerUICatalogResources(_0x455eb0,_0x2abdf4),registerUICatalogTools(_0x455eb0,_0x2abdf4),registerGenericUITool(_0x455eb0,_0x2abdf4,{..._0x50e42c,'normalize':_0x4df67c}),_0x455eb0;}export{_0x13fec9 as McpServer,_0x32ec85 as ResourceTemplate,createUIMCPNormalize,createUIMCPServer,createUIToolCallResult,registerGenericUITool,registerUICatalogResources,registerUICatalogTools};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentic-ui-experience/ui-mcp",
3
- "version": "0.0.1-beta.1",
3
+ "version": "0.0.1-beta.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,8 +22,8 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@modelcontextprotocol/sdk": "^1.29.0",
25
- "zod": "^4.0.0",
26
- "@agentic-ui-experience/ui-core": "0.0.1-beta.1"
25
+ "zod": "^3.25.76",
26
+ "@agentic-ui-experience/ui-core": "0.0.1-beta.3"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "^24.10.1"
@@ -37,6 +37,7 @@
37
37
  "start:http:cors": "node dist/cli.js --transport http --host 127.0.0.1 --port 3001 --endpoint /mcp --cors-origin \"*\"",
38
38
  "start:help": "node dist/cli.js --help",
39
39
  "inspector": "pnpm run build && pnpm dlx @modelcontextprotocol/inspector --transport stdio node dist/cli.js --transport stdio",
40
- "clean": "rm -rf dist tsconfig.tsbuildinfo"
40
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
41
+ "test": "pnpm run build && node --test \"tests/**/*.test.mjs\""
41
42
  }
42
43
  }