unstale

npm / @a2ui/web_core

@a2ui/web_core

What changed in @a2ui/web_core 0.10 to 0.14, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

33 breaking2 security5 deprecations30 new APIs and options1 performance13 behavior and defaults16 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.0 on npm

@a2ui/web_core 0.1435 changes

Breaking changes 13

  • Basic catalog elements now use a2ui-prefixed classes, preventing application rules such as .error, .active, and .container from matching element internals.

    0.14.0release notes

  • No longer strips a leading @ before checking UAX 31 syntax.

    0.14.0release notes

  • Rejects @-prefixed catalog function names and validates function parameter names.

    0.14.0release notes

  • External implementations must now provide toJson() and validationSchema.

    0.14.0release notes

  • The catalog property and constructor argument are required; models are not created without a resolved catalog.

    0.14.0release notes

  • Throws A2uiCatalogError on a surface without a default catalog instead of returning undefined.

    0.14.0release notes

  • Removed; use DataContext.atLeastV10, which is true for v1.0 and later versions.

    0.14.0release notes

  • No longer strips a leading @ before checking UAX 31 syntax.

    0.14.0release notes

  • On v1.0, validates each function call against its resolved catalog and throws A2uiCatalogError when resolution fails, even without validationConfig.

    0.14.0release notes

  • Checks nested function calls under id and component property keys, including catalog selection according to protocol version.

    0.14.0release notes

  • Takes a Catalog again, not undefined, and resolves components against their own catalog without falling back to the surface default.

    0.14.0release notes

  • May be undefined; v1.0 components and function calls without catalogId resolve to it and fail if no default catalog exists.

    0.14.0release notes

  • Function schemas now describe wire function calls rather than bare argument schemas; loaded and basic-catalog schemas are built from definitions.

    0.14.0release notes

Deprecations 4

  • Deprecated in favor of Catalog.validationSchema.

    0.14.0release notes

  • Deprecated in favor of Catalog.fromJson.

    0.14.0release notes

  • Deprecated in favor of generateValidationSchema.

    0.14.0release notes

  • The deprecated getter may return undefined, like defaultCatalog.

    0.14.0release notes

New APIs and options 14

  • Loads a catalog document into a model, with optional protocol version and catalog ID overrides.

    0.14.0release notes

  • Assembles the unbundled catalog document from its model, computing the anyComponent and anyFunction unions.

    0.14.0release notes

  • Provides a bundled, self-contained schema computed from the catalog model.

    0.14.0release notes

  • Derives a catalog with different entries and drops $defs referenced only by removed entries.

    0.14.0release notes

  • Returns a new catalog linked to the specified peers without changing the receiver.

    0.14.0release notes

  • Sets how references to common types are written.

    0.14.0release notes

  • Adds model definitions to $defs when generating catalog entries from annotated schemas.

    0.14.0release notes

  • Controls whether the theme is written under $defs.theme or under styles.

    0.14.0release notes

  • Inlines local and peer references in a schema.

    0.14.0release notes

  • Returns catalog copies linked to each other and to any extra peers.

    0.14.0release notes

  • Annotates a Zod schema with catalog-document details that Zod does not express; annotations do not change validation.

    0.14.0release notes

  • Annotates a Zod schema with catalog-document details, including the $defs name of a model.

    0.14.0release notes

  • Adds a surface protocol version, including a constructor argument for surfaces without a default catalog; stores it as vMAJOR.MINOR.

    0.14.0release notes

  • Resolves a catalogId for MessageProcessor and DataContext so validation and execution report the same catalog errors.

    0.14.0release notes

Behavior and default changes 3

  • Below v1.0, ignores catalogId on function calls and runs them in the surface catalog.

    0.14.0release notes

  • Allows the reserved @index system function on v1.0+ surfaces while validating user-defined function names against UAX 31.

    0.14.0release notes

  • Reserved @-prefixed system functions validate and run without a default catalog, bypass catalog resolution, and reject calls that name a catalogId.

    0.14.0release notes

Fixes and other changes 1

  • Reports unresolved function-call catalogs on the surface error channel as CATALOG_ERROR instead of EXPRESSION_ERROR.

    0.14.0release notes

@a2ui/web_core 0.1339 changes

Breaking changes 7

  • Component trees now name a component under component rather than type, and write id, component, and metadata after component properties; read the component type from tree.component.

    0.13.0release notes

  • The v1.0 basic catalog evaluates ValidationResult operands through their valid member; the truthy option is accepted to configure this behavior.

    0.13.0release notes

  • Rejects number literals outside the double range with Number literal is out of range instead of returning Infinity.

    0.13.0release notes

  • Returns an empty string for nonexistent dates instead of rolling them into the next month.

    0.13.0release notes

  • Functions requiring user activation are enforced: openUrl throws A2uiExpressionError(USER_ACTIVATION_REQUIRED) when evaluated passively or without a user activation gesture.

    0.13.0release notes

  • Adds a pattern complexity checker to mitigate ReDoS, instantly rejecting unsafe nested repetitions and enforcing pattern and input length limits.

    0.13.0release notes

  • v1.0 validation now checks path syntax in @path and function-call nesting depth in @call expressions.

    0.13.0release notes

Security 1

  • Avoids a direct window.open property check to prevent errors in security-restricted environments.

    0.13.0release notes

New APIs and options 9

  • Adds v1.0 basic catalog custom elements at this package export path.

    0.13.0release notes

  • Universal elements accept an optional node; A2uiLitElement derives context from it and passes each child its own node, while context remains supported for incremental migration.

    0.13.0release notes

  • Adds a name for a schema-only Catalog<ComponentApi, FunctionApi>; Catalog.fromSchema now returns it.

    0.13.0release notes

  • Exposes the context the resolver bound the node with; it is undefined on placeholders.

    0.13.0release notes

  • Adds a document-unique string stable for the node's lifetime, suitable as a rendering key or base for DOM ids and accessibility references.

    0.13.0release notes

  • The v1.0 basic catalog evaluates ValidationResult operands through their valid member; the truthy option is accepted to configure this behavior.

    0.13.0release notes

  • The v1.0 basic catalog evaluates ValidationResult operands through their valid member; the truthy option is accepted to configure this behavior.

    0.13.0release notes

  • Now accepts a ComponentNode.

    0.13.0release notes

  • Adds universal runtime exports for v1.0 at this package export path.

    0.13.0release notes

Performance 1

  • Avoids recreating A2uiController when an incoming ComponentContext binds the same component and data path.

    0.13.0release notes

Behavior and default changes 9

  • Universal host elements apply aria-label, aria-description, aria-live, and aria-hidden; basic catalog input components render validation errors.

    0.13.0release notes

  • The v1.0 basic catalog evaluates ValidationResult operands through their valid member; executeAnd accepts a truthy argument.

    0.13.0release notes

  • The v1.0 basic catalog evaluates ValidationResult operands through their valid member; executeNot accepts a truthy argument.

    0.13.0release notes

  • The v1.0 basic catalog evaluates ValidationResult operands through their valid member; executeOr accepts a truthy argument.

    0.13.0release notes

  • Accepts number literals with a leading decimal point, including as function-call arguments, while .foo and ./x remain paths.

    0.13.0release notes

  • Falls back to the catalog's protocolVersion when no protocolVersion option is given; versions at or above 1.0 without their own definitions use v1.0 definitions.

    0.13.0release notes

  • Action closures now return Promise<void> and await async functionCall actions so callers can detect when action handling settles.

    0.13.0release notes

  • v1.0 dynamic resolution supports reserved @path and @call keys, doubled-prefix unescaping, and validation of unknown single-@ keys while retaining v0.8 and v0.9 support.

    0.13.0release notes

  • Supports non-ASCII Unicode characters in template expressions and data model keys.

    0.13.0release notes

Fixes and other changes 12

  • Disposal now detaches componentsModel.onCreated and binder subscriptions to fix a memory leak in universal elements.

    0.13.0release notes

  • Styles now survive Closure-optimized builds.

    0.13.0release notes

  • Fills $defs with standard definitions for the catalog's protocol version rather than using v0.9 definitions for every catalog.

    0.13.0release notes

  • No longer drops properties mixed in through an external allOf reference, allowing Checkable components in basic catalogs to accept checks.

    0.13.0release notes

  • In v1.0, resolves common_types.json#/$defs/Child so single-child properties such as Card.child are recognized as child references.

    0.13.0release notes

  • Includes FunctionCall and @call expressions in dynamic setter typing following the @ prefix protocol migration.

    0.13.0release notes

  • Setter parameters for properties declared as bindings with no literal branch now fall back to unknown instead of never, making the setter callable.

    0.13.0release notes

  • Includes FunctionCall and @call expressions in dynamic setter typing following the @ prefix protocol migration.

    0.13.0release notes

  • Returns null when the written date and time fields do not survive parsing.

    0.13.0release notes

  • Re-rendering a parent preserves existing child elements, preventing stateful children from reloading when a sibling is added; the function now returns a Lit directive result.

    0.13.0release notes

  • Props declared as Record<string, unknown> resolve to their data type rather than action thunks.

    0.13.0release notes

  • Reads the updated component tree, so properties named component or id no longer replace the model's own values when child references are found.

    0.13.0release notes

@a2ui/web_core 0.1225 changes

Breaking changes 13

  • The v0.9 basic catalog no longer includes non-spec math and comparison functions; applications needing them must register them in a custom catalog.

    0.12.0release notes

  • Universal Web Component symbols moved from the v0.9 root export to this subpath; update import paths.

    0.12.0release notes

  • Deleting an array index past the end is now a no-op instead of extending the array's length.

    0.12.0release notes

  • v1.0 catalog loading validates component property names, function names, and function argument names against UAX #31.

    0.12.0release notes

  • The constructor now requires protocolVersion as its second parameter.

    0.12.0release notes

  • Assigns dataModel at the root so keys containing / or ~ are treated as literal property names rather than nested paths or escape sequences.

    0.12.0release notes

  • In v1.0, a currency code rejected by Intl is placed according to the locale's currency pattern rather than always prefixed.

    0.12.0release notes

  • In v1.0, formatNumber, formatCurrency, and pluralize default to en-US instead of the host locale.

    0.12.0release notes

  • Function arguments are typed unknown instead of any, requiring explicit validation or schema parsing.

    0.12.0release notes

  • In v1.0, evaluating @index outside a collection template raises A2uiValidationError instead of returning 0.

    0.12.0release notes

  • v0.9 basic catalog components no longer define custom elements when imported; registerUniversalElement is needed when code relies on import-time registration.

    0.12.0release notes

  • The constructor takes availableCatalogs as its third positional argument and theme as its fourth; an invalid third argument throws a TypeError.

    0.12.0release notes

  • Now requires an element field holding the custom element constructor.

    0.12.0release notes

Deprecations 1

  • SurfaceModel.catalog is deprecated in favor of SurfaceModel.defaultCatalog; the old property remains as a compatibility getter.

    0.12.0release notes

New APIs and options 7

  • The root export now provides shared core APIs across protocol versions; v0.8 protocol API consumers should import from @a2ui/web_core/v0_8.

    0.12.0release notes

  • Re-exports DataBindingType, FunctionCallType, and MAX_FUNCTION_CALL_ARGS.

    0.12.0release notes

  • Exports isWebComponentImplementation and registerUniversalElement for universal web component integrations.

    0.12.0release notes

  • Adds A2uiRpcError and RpcErrorCode for structured RPC error responses at @a2ui/web_core/rpc.

    0.12.0release notes

  • Adds the DOM contract for an A2UI custom element: an HTMLElement that accepts a context property.

    0.12.0release notes

  • Adds single-catalog component and function schema validation at @a2ui/web_core/validation.

    0.12.0release notes

  • Adds setMarkdownRenderer and getMarkdownRenderer for setting and getting the default MarkdownRenderer for basic catalog text components.

    0.12.0release notes

Behavior and default changes 1

  • In v1.0, an unusable locale tag falls back to en-US instead of throwing or using the host's ambient locale.

    0.12.0release notes

Fixes and other changes 3

  • The v1.0 basic catalog now exports function bodies through BASIC_FUNCTIONS and createBasicCatalogFunctions, matching the v0.9 shape.

    0.12.0release notes

  • In v1.0, TR35 tokens are expanded in the timestamp's written offset, so output does not vary by machine.

    0.12.0release notes

  • Resolves event.userMessage before dispatch, so DynamicString paths and calls are not forwarded to the agent unresolved.

    0.12.0release notes

@a2ui/web_core 0.101 changes

Security 1

  • @a2ui/web_core: openUrl permits javascript: URI execution via agent-supplied button actions

    0.10.2security advisory