@golemui/gui-mcp 1.5.0-rc.0 → 1.5.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## 1.5.0-rc.0 (2026-09-04)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **lit:** shim querySelector and export safeDefine for SSR ([#351](https://github.com/golemui/golemui/pull/351))
6
+ - **vue:** nuxt support ([#335](https://github.com/golemui/golemui/pull/335))
7
+ - **gui-components:** add file upload widgets ([#332](https://github.com/golemui/golemui/pull/332))
8
+
9
+ ### ❤️ Thank You
10
+
11
+ - Raúl Jiménez @Elecash
12
+
1
13
  ## 1.4.0 (2026-08-26)
2
14
 
3
15
  ### 🚀 Features
package/cli.js CHANGED
@@ -5,8 +5,8 @@ import { fileURLToPath } from "node:url";
5
5
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
6
6
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
7
  import { ListToolsRequestSchema, CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js";
8
- import { d as checkDxCode, r as resolveDxFramework, f as listDxFactoriesCatalog, b as DX_LIST_FACTORIES_TOOL, g as getDxSpec, a as DX_GET_SPEC_TOOL, D as DX_CHECK_CODE_TOOL } from "./list-dx-factories-q0Z0pNnF.js";
9
- import { v as validateFormDefinition, c as JSON_VALIDATE_FORM_DEFINITION_TOOL, g as generateFromJsonSchema, a as JSON_GENERATE_FROM_SCHEMA_TOOL, d as generateFromOpenapi, J as JSON_GENERATE_FROM_OPENAPI_TOOL, f as getWidgetSpec, b as JSON_GET_WIDGET_SPEC_TOOL, e as getConcept, G as GET_CONCEPT_TOOL } from "./get-concept-BWtZV7zN.js";
8
+ import { d as checkDxCode, r as resolveDxFramework, f as listDxFactoriesCatalog, b as DX_LIST_FACTORIES_TOOL, g as getDxSpec, a as DX_GET_SPEC_TOOL, D as DX_CHECK_CODE_TOOL } from "./list-dx-factories-C2wmIt62.js";
9
+ import { v as validateFormDefinition, c as JSON_VALIDATE_FORM_DEFINITION_TOOL, g as generateFromJsonSchema, a as JSON_GENERATE_FROM_SCHEMA_TOOL, d as generateFromOpenapi, J as JSON_GENERATE_FROM_OPENAPI_TOOL, f as getWidgetSpec, b as JSON_GET_WIDGET_SPEC_TOOL, e as getConcept, G as GET_CONCEPT_TOOL } from "./get-concept-CsLx7Y5b.js";
10
10
  const USAGE = `Usage: golemui-mcp [command]
11
11
 
12
12
  Validate GolemUI forms from the command line (no MCP client needed).
@@ -502,9 +502,9 @@ const $schema$w = "https://json-schema.org/draft/2020-12/schema";
502
502
  const $id$w = "https://golemui.com/schemas/gui/components/fileupload.schema.json";
503
503
  const title$w = "File Upload Widget";
504
504
  const type$w = "object";
505
- const $defs$w = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "fileItem": { "type": "object", "description": 'One uploaded file as stored in the form value. `data` is whatever the host\'s `uploadService.upload` resolved with, verbatim. Preloaded values should carry `status: "uploaded"`.', "properties": { "id": { "type": "string", "description": "Synthetic id, stable for the life of the item" }, "name": { "type": "string" }, "size": { "type": "number", "description": "Size in bytes" }, "type": { "type": "string", "description": "MIME type" }, "status": { "enum": ["uploading", "uploaded", "error"] }, "error": { "type": "string", "description": "Human-readable reason when `status` is `error`" }, "data": { "description": "The server response, verbatim" } }, "required": ["id", "name", "size", "type", "status"], "additionalProperties": false }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "acceptProp": { "type": "array", "description": 'Accepted file types, e.g. `["image/*", ".pdf"]`. Files that do not match are refused before uploading.', "items": { "type": "string" } }, "maxSizeProp": { "type": "number", "description": "Maximum size per file, in bytes. Larger files are refused before uploading." }, "buttonLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "retryLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" }, "maxSizeMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "acceptMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "missingServiceMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "uploadedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "failedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
505
+ const $defs$w = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "fileItem": { "type": "object", "description": 'One uploaded file as stored in the form value. `data` is whatever the host\'s `uploadService.upload` resolved with, verbatim. Preloaded values should carry `status: "uploaded"`.', "properties": { "id": { "type": "string", "description": "Synthetic id, stable for the life of the item" }, "name": { "type": "string" }, "size": { "type": "number", "description": "Size in bytes" }, "type": { "type": "string", "description": "MIME type" }, "status": { "enum": ["uploading", "uploaded", "error"] }, "error": { "type": "string", "description": "Human-readable reason when `status` is `error`" }, "data": { "description": "The server response, verbatim" } }, "required": ["id", "name", "size", "type", "status"], "additionalProperties": false }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "acceptProp": { "type": "array", "description": 'Accepted file types, e.g. `["image/*", ".pdf"]`. Files that do not match are refused before uploading.', "items": { "type": "string" } }, "maxSizeProp": { "type": "number", "description": "Maximum size per file, in bytes. Larger files are refused before uploading." }, "buttonLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "retryAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" }, "retryIconProp": { "type": "string" }, "maxSizeMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "acceptMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "interruptedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "missingServiceMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "uploadedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "failedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
506
506
  const allOf$w = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
507
- const properties$v = { "kind": { "const": "input" }, "type": { "const": "fileUpload" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "oneOf": [{ "$ref": "#/$defs/fileItem" }, { "type": "null" }] }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "accept": { "$ref": "#/$defs/acceptProp" }, "maxSize": { "$ref": "#/$defs/maxSizeProp" }, "buttonLabel": { "$ref": "#/$defs/buttonLabelProp" }, "removeAriaLabel": { "$ref": "#/$defs/removeAriaLabelProp" }, "cancelAriaLabel": { "$ref": "#/$defs/cancelAriaLabelProp" }, "retryLabel": { "$ref": "#/$defs/retryLabelProp" }, "removeIcon": { "$ref": "#/$defs/removeIconProp" }, "maxSizeMessage": { "$ref": "#/$defs/maxSizeMessageProp" }, "acceptMessage": { "$ref": "#/$defs/acceptMessageProp" }, "missingServiceMessage": { "$ref": "#/$defs/missingServiceMessageProp" }, "uploadedMessage": { "$ref": "#/$defs/uploadedMessageProp" }, "removedMessage": { "$ref": "#/$defs/removedMessageProp" }, "failedMessage": { "$ref": "#/$defs/failedMessageProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^accept\\.[^.]+$": { "$ref": "#/$defs/acceptProp" }, "^maxSize\\.[^.]+$": { "$ref": "#/$defs/maxSizeProp" }, "^buttonLabel\\.[^.]+$": { "$ref": "#/$defs/buttonLabelProp" }, "^removeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removeAriaLabelProp" }, "^cancelAriaLabel\\.[^.]+$": { "$ref": "#/$defs/cancelAriaLabelProp" }, "^retryLabel\\.[^.]+$": { "$ref": "#/$defs/retryLabelProp" }, "^removeIcon\\.[^.]+$": { "$ref": "#/$defs/removeIconProp" }, "^maxSizeMessage\\.[^.]+$": { "$ref": "#/$defs/maxSizeMessageProp" }, "^acceptMessage\\.[^.]+$": { "$ref": "#/$defs/acceptMessageProp" }, "^missingServiceMessage\\.[^.]+$": { "$ref": "#/$defs/missingServiceMessageProp" }, "^uploadedMessage\\.[^.]+$": { "$ref": "#/$defs/uploadedMessageProp" }, "^removedMessage\\.[^.]+$": { "$ref": "#/$defs/removedMessageProp" }, "^failedMessage\\.[^.]+$": { "$ref": "#/$defs/failedMessageProp" } }, "additionalProperties": false } };
507
+ const properties$v = { "kind": { "const": "input" }, "type": { "const": "fileUpload" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "oneOf": [{ "$ref": "#/$defs/fileItem" }, { "type": "null" }] }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "accept": { "$ref": "#/$defs/acceptProp" }, "maxSize": { "$ref": "#/$defs/maxSizeProp" }, "buttonLabel": { "$ref": "#/$defs/buttonLabelProp" }, "removeAriaLabel": { "$ref": "#/$defs/removeAriaLabelProp" }, "cancelAriaLabel": { "$ref": "#/$defs/cancelAriaLabelProp" }, "retryAriaLabel": { "$ref": "#/$defs/retryAriaLabelProp" }, "removeIcon": { "$ref": "#/$defs/removeIconProp" }, "retryIcon": { "$ref": "#/$defs/retryIconProp" }, "maxSizeMessage": { "$ref": "#/$defs/maxSizeMessageProp" }, "acceptMessage": { "$ref": "#/$defs/acceptMessageProp" }, "interruptedMessage": { "$ref": "#/$defs/interruptedMessageProp" }, "missingServiceMessage": { "$ref": "#/$defs/missingServiceMessageProp" }, "uploadedMessage": { "$ref": "#/$defs/uploadedMessageProp" }, "removedMessage": { "$ref": "#/$defs/removedMessageProp" }, "failedMessage": { "$ref": "#/$defs/failedMessageProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^accept\\.[^.]+$": { "$ref": "#/$defs/acceptProp" }, "^maxSize\\.[^.]+$": { "$ref": "#/$defs/maxSizeProp" }, "^buttonLabel\\.[^.]+$": { "$ref": "#/$defs/buttonLabelProp" }, "^removeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removeAriaLabelProp" }, "^cancelAriaLabel\\.[^.]+$": { "$ref": "#/$defs/cancelAriaLabelProp" }, "^retryAriaLabel\\.[^.]+$": { "$ref": "#/$defs/retryAriaLabelProp" }, "^removeIcon\\.[^.]+$": { "$ref": "#/$defs/removeIconProp" }, "^retryIcon\\.[^.]+$": { "$ref": "#/$defs/retryIconProp" }, "^maxSizeMessage\\.[^.]+$": { "$ref": "#/$defs/maxSizeMessageProp" }, "^acceptMessage\\.[^.]+$": { "$ref": "#/$defs/acceptMessageProp" }, "^interruptedMessage\\.[^.]+$": { "$ref": "#/$defs/interruptedMessageProp" }, "^missingServiceMessage\\.[^.]+$": { "$ref": "#/$defs/missingServiceMessageProp" }, "^uploadedMessage\\.[^.]+$": { "$ref": "#/$defs/uploadedMessageProp" }, "^removedMessage\\.[^.]+$": { "$ref": "#/$defs/removedMessageProp" }, "^failedMessage\\.[^.]+$": { "$ref": "#/$defs/failedMessageProp" } }, "additionalProperties": false } };
508
508
  const patternProperties$p = { "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
509
509
  const required$v = ["kind", "type", "path"];
510
510
  const unevaluatedProperties$w = false;
@@ -590,9 +590,9 @@ const $schema$s = "https://json-schema.org/draft/2020-12/schema";
590
590
  const $id$s = "https://golemui.com/schemas/gui/components/multifileupload.schema.json";
591
591
  const title$s = "Multi File Upload Widget";
592
592
  const type$s = "object";
593
- const $defs$s = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "fileItem": { "type": "object", "description": 'One uploaded file as stored in the form value. `data` is whatever the host\'s `uploadService.upload` resolved with, verbatim. Preloaded values should carry `status: "uploaded"`.', "properties": { "id": { "type": "string", "description": "Synthetic id, stable for the life of the item" }, "name": { "type": "string" }, "size": { "type": "number", "description": "Size in bytes" }, "type": { "type": "string", "description": "MIME type" }, "status": { "enum": ["uploading", "uploaded", "error"] }, "error": { "type": "string", "description": "Human-readable reason when `status` is `error`" }, "data": { "description": "The server response, verbatim" } }, "required": ["id", "name", "size", "type", "status"], "additionalProperties": false }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "acceptProp": { "type": "array", "description": 'Accepted file types, e.g. `["image/*", ".pdf"]`. Files that do not match are refused before uploading.', "items": { "type": "string" } }, "maxSizeProp": { "type": "number", "description": "Maximum size per file, in bytes. Larger files are refused before uploading." }, "buttonLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "retryLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" }, "maxSizeMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "acceptMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "missingServiceMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "uploadedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "failedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
593
+ const $defs$s = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "fileItem": { "type": "object", "description": 'One uploaded file as stored in the form value. `data` is whatever the host\'s `uploadService.upload` resolved with, verbatim. Preloaded values should carry `status: "uploaded"`.', "properties": { "id": { "type": "string", "description": "Synthetic id, stable for the life of the item" }, "name": { "type": "string" }, "size": { "type": "number", "description": "Size in bytes" }, "type": { "type": "string", "description": "MIME type" }, "status": { "enum": ["uploading", "uploaded", "error"] }, "error": { "type": "string", "description": "Human-readable reason when `status` is `error`" }, "data": { "description": "The server response, verbatim" } }, "required": ["id", "name", "size", "type", "status"], "additionalProperties": false }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "acceptProp": { "type": "array", "description": 'Accepted file types, e.g. `["image/*", ".pdf"]`. Files that do not match are refused before uploading.', "items": { "type": "string" } }, "maxSizeProp": { "type": "number", "description": "Maximum size per file, in bytes. Larger files are refused before uploading." }, "buttonLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "retryAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" }, "retryIconProp": { "type": "string" }, "maxSizeMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "acceptMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "interruptedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "missingServiceMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "uploadedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "failedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
594
594
  const allOf$s = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
595
- const properties$r = { "kind": { "const": "input" }, "type": { "const": "multiFileUpload" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "#/$defs/fileItem" } }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "accept": { "$ref": "#/$defs/acceptProp" }, "maxSize": { "$ref": "#/$defs/maxSizeProp" }, "buttonLabel": { "$ref": "#/$defs/buttonLabelProp" }, "removeAriaLabel": { "$ref": "#/$defs/removeAriaLabelProp" }, "cancelAriaLabel": { "$ref": "#/$defs/cancelAriaLabelProp" }, "retryLabel": { "$ref": "#/$defs/retryLabelProp" }, "removeIcon": { "$ref": "#/$defs/removeIconProp" }, "maxSizeMessage": { "$ref": "#/$defs/maxSizeMessageProp" }, "acceptMessage": { "$ref": "#/$defs/acceptMessageProp" }, "missingServiceMessage": { "$ref": "#/$defs/missingServiceMessageProp" }, "uploadedMessage": { "$ref": "#/$defs/uploadedMessageProp" }, "removedMessage": { "$ref": "#/$defs/removedMessageProp" }, "failedMessage": { "$ref": "#/$defs/failedMessageProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^accept\\.[^.]+$": { "$ref": "#/$defs/acceptProp" }, "^maxSize\\.[^.]+$": { "$ref": "#/$defs/maxSizeProp" }, "^buttonLabel\\.[^.]+$": { "$ref": "#/$defs/buttonLabelProp" }, "^removeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removeAriaLabelProp" }, "^cancelAriaLabel\\.[^.]+$": { "$ref": "#/$defs/cancelAriaLabelProp" }, "^retryLabel\\.[^.]+$": { "$ref": "#/$defs/retryLabelProp" }, "^removeIcon\\.[^.]+$": { "$ref": "#/$defs/removeIconProp" }, "^maxSizeMessage\\.[^.]+$": { "$ref": "#/$defs/maxSizeMessageProp" }, "^acceptMessage\\.[^.]+$": { "$ref": "#/$defs/acceptMessageProp" }, "^missingServiceMessage\\.[^.]+$": { "$ref": "#/$defs/missingServiceMessageProp" }, "^uploadedMessage\\.[^.]+$": { "$ref": "#/$defs/uploadedMessageProp" }, "^removedMessage\\.[^.]+$": { "$ref": "#/$defs/removedMessageProp" }, "^failedMessage\\.[^.]+$": { "$ref": "#/$defs/failedMessageProp" } }, "additionalProperties": false } };
595
+ const properties$r = { "kind": { "const": "input" }, "type": { "const": "multiFileUpload" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "#/$defs/fileItem" } }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "accept": { "$ref": "#/$defs/acceptProp" }, "maxSize": { "$ref": "#/$defs/maxSizeProp" }, "buttonLabel": { "$ref": "#/$defs/buttonLabelProp" }, "removeAriaLabel": { "$ref": "#/$defs/removeAriaLabelProp" }, "cancelAriaLabel": { "$ref": "#/$defs/cancelAriaLabelProp" }, "retryAriaLabel": { "$ref": "#/$defs/retryAriaLabelProp" }, "removeIcon": { "$ref": "#/$defs/removeIconProp" }, "retryIcon": { "$ref": "#/$defs/retryIconProp" }, "maxSizeMessage": { "$ref": "#/$defs/maxSizeMessageProp" }, "acceptMessage": { "$ref": "#/$defs/acceptMessageProp" }, "interruptedMessage": { "$ref": "#/$defs/interruptedMessageProp" }, "missingServiceMessage": { "$ref": "#/$defs/missingServiceMessageProp" }, "uploadedMessage": { "$ref": "#/$defs/uploadedMessageProp" }, "removedMessage": { "$ref": "#/$defs/removedMessageProp" }, "failedMessage": { "$ref": "#/$defs/failedMessageProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^accept\\.[^.]+$": { "$ref": "#/$defs/acceptProp" }, "^maxSize\\.[^.]+$": { "$ref": "#/$defs/maxSizeProp" }, "^buttonLabel\\.[^.]+$": { "$ref": "#/$defs/buttonLabelProp" }, "^removeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removeAriaLabelProp" }, "^cancelAriaLabel\\.[^.]+$": { "$ref": "#/$defs/cancelAriaLabelProp" }, "^retryAriaLabel\\.[^.]+$": { "$ref": "#/$defs/retryAriaLabelProp" }, "^removeIcon\\.[^.]+$": { "$ref": "#/$defs/removeIconProp" }, "^retryIcon\\.[^.]+$": { "$ref": "#/$defs/retryIconProp" }, "^maxSizeMessage\\.[^.]+$": { "$ref": "#/$defs/maxSizeMessageProp" }, "^acceptMessage\\.[^.]+$": { "$ref": "#/$defs/acceptMessageProp" }, "^interruptedMessage\\.[^.]+$": { "$ref": "#/$defs/interruptedMessageProp" }, "^missingServiceMessage\\.[^.]+$": { "$ref": "#/$defs/missingServiceMessageProp" }, "^uploadedMessage\\.[^.]+$": { "$ref": "#/$defs/uploadedMessageProp" }, "^removedMessage\\.[^.]+$": { "$ref": "#/$defs/removedMessageProp" }, "^failedMessage\\.[^.]+$": { "$ref": "#/$defs/failedMessageProp" } }, "additionalProperties": false } };
596
596
  const patternProperties$l = { "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
597
597
  const required$r = ["kind", "type", "path"];
598
598
  const unevaluatedProperties$s = false;
@@ -2888,9 +2888,9 @@ const NOTES = {
2888
2888
  fileUpload: [
2889
2889
  "Single-file upload rendered as a one-line input: the box is the drop target and holds the upload button; while the file uploads the box itself becomes the progress bar; once done it shows the file name with a remove button.",
2890
2890
  'REQUIRES a host transport in the form init config: `dependencies: { uploadService: { upload(file, { id, path, onProgress, signal }) => Promise<unknown>, remove?(item) => Promise<void> } }` (a sibling of `dependencies.markdown`). Keep the object reference stable — a new config identity re-initializes the form. Without it the widget renders disabled with an inline error. Call `get_concept({ concept: "host-services" })`.',
2891
- 'The value is a plain envelope, never the `File`: `{ id, name, size, type, status: "uploading" | "uploaded" | "error", error?, data? }` where `data` is exactly what `upload` resolved with. Preload from the server with `status: "uploaded"`. Removing awaits `uploadService.remove(item)` (when provided) before clearing.',
2891
+ 'The value is a plain envelope, never the `File`: `{ id, name, size, type, status: "uploading" | "uploaded" | "error", error?, data? }` where `data` is exactly what `upload` resolved with. Preload from the server with `status: "uploaded"`. Removing awaits `uploadService.remove(item)` (when provided) before clearing. An item restored with `status: "uploading"` cannot resume — the `File` only existed in the session that picked it — so the widget commits it back as `"error"` with `props.interruptedMessage` (default: `{name} was not uploaded. Remove it and pick the file again.`).',
2892
2892
  'Validate with a `fileValidator`: `{ type: "file", required, blockPendingUploads }`. `blockPendingUploads` defaults to true and fails while the file is uploading or failed, so an unfinished upload cannot be submitted. Message keys: `invalid`, `required`, `pendingUploads`.',
2893
- '`props.accept` (`[".pdf", "image/*"]`) and `props.maxSize` (bytes) are checked BEFORE uploading; a refused or failed file stays in the box with the reason plus retry/remove buttons — never dropped silently. Text props: `buttonLabel`, `acceptMessage`, `maxSizeMessage`, `missingServiceMessage`, `removeAriaLabel`, `cancelAriaLabel`, `retryLabel`, `uploadedMessage`, `removedMessage`, `failedMessage` (`{name}` token).'
2893
+ '`props.accept` (`[".pdf", "image/*"]`) and `props.maxSize` (bytes) are checked BEFORE uploading; a refused or failed file stays in the box with retry/remove icon buttons — never dropped silently. The reason (server `reject(new Error(...))` message, or the default) surfaces in the standard error area below the input, like a date widget\'s invalid-date error. Text props: `buttonLabel`, `acceptMessage`, `maxSizeMessage`, `missingServiceMessage`, `removeAriaLabel`, `cancelAriaLabel`, `retryAriaLabel`, `uploadedMessage`, `removedMessage`, `failedMessage` (`{name}` token); icon overrides: `removeIcon`, `retryIcon`.'
2894
2894
  ],
2895
2895
  multiFileUpload: [
2896
2896
  "The array variant of `fileUpload`: same box, button, progress bar and `uploadService`. Files upload ONE AT A TIME; every finished file becomes a pill inside the box and the value is an array of envelopes.",
package/json.js CHANGED
@@ -1,4 +1,4 @@
1
- import { G, J, a, b, c, g, d, e, f, v } from "./get-concept-BWtZV7zN.js";
1
+ import { G, J, a, b, c, g, d, e, f, v } from "./get-concept-CsLx7Y5b.js";
2
2
  export {
3
3
  G as GET_CONCEPT_TOOL,
4
4
  J as JSON_GENERATE_FROM_OPENAPI_TOOL,
package/lib.js CHANGED
@@ -1,5 +1,5 @@
1
- import { G, J, a, b, c, g, d, e, f, v } from "./get-concept-BWtZV7zN.js";
2
- import { D, a as a2, b as b2, c as c2, d as d2, e as e2, g as g2, l, f as f2, t } from "./list-dx-factories-q0Z0pNnF.js";
1
+ import { G, J, a, b, c, g, d, e, f, v } from "./get-concept-CsLx7Y5b.js";
2
+ import { D, a as a2, b as b2, c as c2, d as d2, e as e2, g as g2, l, f as f2, t } from "./list-dx-factories-C2wmIt62.js";
3
3
  export {
4
4
  D as DX_CHECK_CODE_TOOL,
5
5
  a2 as DX_GET_SPEC_TOOL,
@@ -1,4 +1,4 @@
1
- import { h as checkReactiveExpression, i as checkBooleanValidatorRules } from "./get-concept-BWtZV7zN.js";
1
+ import { h as checkReactiveExpression, i as checkBooleanValidatorRules } from "./get-concept-CsLx7Y5b.js";
2
2
  import { existsSync } from "node:fs";
3
3
  import { createRequire } from "node:module";
4
4
  import { resolve, join, dirname } from "node:path";
@@ -795,9 +795,9 @@ const INPUTS = [
795
795
  notes: [
796
796
  "Single-file upload rendered as a one-line input: the box is the drop target and holds the upload button; while the file uploads the box itself becomes the progress bar, and once done it shows the file name with a remove button.",
797
797
  "REQUIRES a host transport: pass `dependencies: { uploadService: { upload(file, { id, path, onProgress, signal }) => Promise<unknown>, remove?(item) => Promise<void> } }` in the init config (next to `markdown`). Keep the object reference stable (module level) — a new `config` identity re-initializes the form. Without it the widget renders disabled with an inline error.",
798
- 'The value is a plain envelope, never the `File`: `{ id, name, size, type, status: "uploading" | "uploaded" | "error", error?, data? }` where `data` is exactly what `upload` resolved with. Preload a value from the server with `status: "uploaded"`. Removing awaits `uploadService.remove(item)` (when provided) before clearing.',
798
+ 'The value is a plain envelope, never the `File`: `{ id, name, size, type, status: "uploading" | "uploaded" | "error", error?, data? }` where `data` is exactly what `upload` resolved with. Preload a value from the server with `status: "uploaded"`. Removing awaits `uploadService.remove(item)` (when provided) before clearing. An item restored with `status: "uploading"` cannot resume — the `File` only existed in the session that picked it — so the widget commits it back as `"error"` with `interruptedMessage` (default: `{name} was not uploaded. Remove it and pick the file again.`).',
799
799
  "The validator auto-supplies `type: 'file'`. `blockPendingUploads` (default true) fails while the file is still uploading or failed, so a half-finished upload can never be submitted; message keys: `invalid`, `required`, `pendingUploads`.",
800
- '`accept` (`[".pdf", "image/*", "application/pdf"]`) and `maxSize` (bytes) are checked BEFORE uploading; a refused or failed file stays in the box with the reason, a retry and a remove button — it is never dropped silently. Messages: `acceptMessage`, `maxSizeMessage`; accessible names: `removeAriaLabel`, `cancelAriaLabel`, `retryLabel` (`{name}` token).'
800
+ '`accept` (`[".pdf", "image/*", "application/pdf"]`) and `maxSize` (bytes) are checked BEFORE uploading; a refused or failed file stays in the box with retry/remove icon buttons — it is never dropped silently. The reason (server `reject(new Error(...))` message, or the default) surfaces in the standard error area below the input, like a date widget\'s invalid-date error. Messages: `acceptMessage`, `maxSizeMessage`; accessible names: `removeAriaLabel`, `cancelAriaLabel`, `retryAriaLabel` (`{name}` token); icon overrides: `removeIcon`, `retryIcon`.'
801
801
  ]
802
802
  },
803
803
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemui/gui-mcp",
3
- "version": "1.5.0-rc.0",
3
+ "version": "1.5.0-rc.1",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -43,10 +43,10 @@
43
43
  "ajv": "^8.17.1",
44
44
  "ajv-formats": "^3.0.1",
45
45
  "typescript": "^5.9.2",
46
- "@golemui/gui-schemas": "1.5.0-rc.0",
47
- "@golemui/gui-shared": "1.5.0-rc.0",
48
- "@golemui/gui-validators": "1.5.0-rc.0",
49
- "@golemui/core": "1.5.0-rc.0",
46
+ "@golemui/gui-schemas": "1.5.0-rc.1",
47
+ "@golemui/gui-shared": "1.5.0-rc.1",
48
+ "@golemui/gui-validators": "1.5.0-rc.1",
49
+ "@golemui/core": "1.5.0-rc.1",
50
50
  "@modelcontextprotocol/sdk": "^1.0.0",
51
51
  "zod": "^4.0.0",
52
52
  "@standard-schema/spec": "^1.0.0"