Skip to content

chore(deps): update all non-major dependencies (main) - #4268

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/main-all-minor-patch
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/main-all-minor-patch

Conversation

@renovate

@renovate renovate Bot commented Jun 13, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence Type Update Pending
@crxjs/vite-plugin (source) ~2.4.0 → ~2.7.0 age confidence dependencies minor
@figma/plugin-typings 1.138.0 → 1.141.0 age confidence devDependencies minor
@figma/rest-api-spec ~0.40.0 → ~0.44.0 age confidence devDependencies minor
@formatjs/intl-numberformat ~9.3.0 → ~9.4.0 age confidence dependencies minor
@jsverse/transloco (source) ~8.3.0 → ~8.4.0 age confidence devDependencies minor
@jsverse/transloco (source) ~8.3.0 → ~8.4.0 age confidence dependencies minor
@jsverse/transloco-messageformat (source) ~8.3.0 → ~8.4.0 age confidence devDependencies minor
@jsverse/transloco-messageformat (source) ~8.3.0 → ~8.4.0 age confidence dependencies minor
@microsoft/tsdoc (source) ~0.16.0 → ~0.17.0 age confidence dependencies minor
@modelcontextprotocol/server (source) ~2.0.0 → ~2.3.0 age confidence devDependencies minor
@modelcontextprotocol/server (source) ~2.0.0 → ~2.3.0 age confidence dependencies minor
@openapitools/openapi-generator-cli ~2.39.1 → ~2.41.0 age confidence devDependencies minor
@openapitools/openapi-generator-cli ~2.39.1 → ~2.41.0 age confidence dependencies minor
@redocly/openapi-core ~2.31.0 → ~2.62.0 age confidence devDependencies minor 2.63.0 (+1)
@types/chrome (source) ^0.1.0 → ^0.3.0 age confidence devDependencies minor
@types/node (source) ~24.13.0 → ~24.19.0 age confidence devDependencies minor
@types/node (source) ~24.13.0 → ~24.19.0 age confidence resolutions minor
@types/node (source) ~24.13.0 → ~24.19.0 age confidence dependencies minor
@types/vscode (source) ~1.120.0 → ~1.140.0 age confidence devDependencies minor
@vercel/ncc ~0.38.0 → ~0.45.0 age confidence devDependencies minor
actions/cache v6.0.0 → v6.1.0 age confidence action minor
actions/setup-node v7.0.0 → v7.1.0 age confidence action minor
ajv (source) ~8.18.0 → ~8.20.0 age confidence resolutions minor
codecov/codecov-action v7.0.0 → v7.1.1 age confidence action minor
dorny/test-reporter v3.0.0 → v3.2.0 age confidence action minor
github/codeql-action v4.36.3 → v4.38.3 age confidence action minor
lighthouse ~13.3.0 → ~13.5.0 age confidence dependencies minor
lighthouse ~13.3.0 → ~13.5.0 age confidence devDependencies minor
memfs ~4.57.0 → ~4.80.0 age confidence devDependencies minor
monaco-editor ~0.56.0 → ~0.57.0 age confidence dependencies minor
ngx-markdown ~22.0.0 → ~22.1.0 age confidence dependencies minor
node (source) 24.16 → 24.21 age confidence minor v24.22.0
node 24.16 → 24.21 age confidence uses-with minor
sass ~1.100.0 → ~1.105.0 age confidence dependencies minor
stefanzweifel/git-auto-commit-action v7.1.0 → v7.2.0 age confidence action minor
style-dictionary (source) ~5.4.0 → ~5.6.0 age confidence devDependencies minor 5.6.1
type-fest 5.9.0 → 5.10.0 age confidence devDependencies minor
type-fest 5.9.0 → 5.10.0 age confidence dependencies minor
undici (source) 6.28.1 → 6.29.0 age confidence resolutions minor
verdaccio (source) ~6.7.0 → ~6.10.0 age confidence dependencies minor
vite (source) ~8.0.0 → ~8.3.0 age confidence resolutions minor
vite (source) ~8.0.0 → ~8.3.0 age confidence dependencies minor
vite (source) ~8.0.0 → ~8.3.0 age confidence devDependencies minor
vm2 ~3.11.4 → ~3.12.0 age confidence resolutions minor
wait-on ~9.0.5 → ~9.5.0 age confidence dependencies minor
webpack ~5.107.0 → ~5.111.0 age confidence devDependencies minor
webpack ~5.107.0 → ~5.111.0 age confidence dependencies minor
yargs (source) ~18.0.0 → ~18.2.0 age confidence dependencies minor
zod (source) ~4.4.0 → ~4.6.0 age confidence devDependencies minor 4.6.7 (+1)
zod (source) ~4.4.0 → ~4.6.0 age confidence dependencies minor 4.6.7 (+1)

Release Notes

crxjs/chrome-extension-tools (@​crxjs/vite-plugin)

v2.7.1

Patch Changes
  • efa9c63: Update direct dependency ranges for convert-source-map, debug,
    and fs-extra.
  • 6efde9d: Filter Vite 8/Rolldown-only options before the dev file writer calls
    Rollup, removing Unknown input options: platform warnings.

v2.7.0

Minor Changes
  • 9f00943: Add dev HMR support for manifest-declared MAIN world content scripts.
Patch Changes
  • a9cc89a: Remove unused vite-plugin dependencies and update selected dependency
    versions.

v2.6.1

Patch Changes
  • 2b88621: Coalesce file writer readiness waits so large dev-server graph
    updates do not repeatedly recompute the same dependency traversal. This also
    fixes late HMR readiness waits that could miss the shared ready event and
    delay content script updates.

v2.6.0

Minor Changes
  • 4f5d2ec: feat: add IIFE content script bundling

    Content scripts named with .iife.ts extension are automatically bundled as
    self-contained IIFE files with all dependencies inlined. This is useful for
    MAIN world content scripts used with chrome.scripting.executeScript or
    chrome.scripting.registerContentScripts.

Patch Changes
  • 5316e9c: Allow chrome-extension:// and moz-extension:// origins in Vite
    dev-server CORS automatically. This keeps extension pages able to fetch
    dev-server files on Vite releases with the stricter localhost-only CORS
    default, including Vite 4.5.6, 5.4.12, and 6.0.9+, without requiring
    projects to configure server.cors.origin manually.
  • 1aee9ad: fix: dynamic content scripts failing in build --watch mode
  • 2f8bab5: Fix the dev-mode loading page so it waits for the requested extension
    HTML file, preserves the page URL query string, allows extension-origin
    readiness polling, and throttles automatic reloads to avoid rapid flicker.
  • 1681511: Expand vite-plugin CI to run e2e tests against supported Vite
    versions and fix compatibility issues exposed by the matrix.
  • 0593d58: fix: publish ESM declarations for the Vite plugin entrypoint

v2.5.0

Minor Changes
  • 4756baf: feat: add HMR support for CSS declared in manifest content_scripts

  • 4756baf: add: browser_specific_settings.gecko properties

  • 4756baf: Fix "TypeError: plugins is not iterable" error when using
    rolldown-vite (Vite 7).

    In rolldown-vite, the buildStart hook doesn't receive options.plugins. This
    fix uses the configResolved hook to get plugins from the resolved config, with
    buildStart kept as a fallback for older Vite versions.

  • 4756baf: Fixed
    #​852, the plugin
    now emits a correct URL in service-worker-loader.js when the Vite option
    server.https is enabled.

  • 4756baf: fix: resolve TypeScript types correctly for ESM and CJS consumers

  • 4756baf: feat: add Vite 8 beta support

Patch Changes
  • 4756baf: ci: migrate release workflow to npm trusted publishers

  • 570312a: fix: sanitize colons from output filenames on Windows

  • 4756baf: fix: copy CSS files declared in manifest content_scripts to output

  • 4756baf: Replace cheerio with node-html-parser to fix npm deprecation warning
    for whatwg-encoding.

    Also adds explicit vite peerDependency declaration (^3.0.0 through ^7.0.0) to
    enable proper version resolution when used with different vite versions.

  • 4756baf: ci: run compat tests against stable Vite 8, make the vite8 available
    as a peer dependency

  • 4756baf: fix: UnoCSS/TailwindCSS HMR issues with virtual CSS modules

  • 8a99b4f: made data_collection_permissions optional

  • 4756baf: fix: respect user's build.manifest setting in Vite 4+

    When users set build.manifest: false in their Vite config, the Vite manifest
    file (.vite/manifest.json in Vite 5+, or manifest.json in older versions)
    is now properly removed from the output bundle.

    CRXJS internally requires the Vite manifest to derive content script resources
    during build, so it forces build.manifest: true. Previously, this meant the
    Vite manifest was always included in the output even if the user explicitly
    disabled it. Now, CRXJS removes the manifest from the bundle after processing
    if the user didn't want it.

    Closes #​1077

  • d364bd8: chore: upgrade chokidar to 5.0.0

  • 4756baf: feat(client): Update the style and content of the development mode
    loading page

figma/plugin-typings (@​figma/plugin-typings)

v1.141.0

Compare Source

v1.140.0

Compare Source

v1.139.0

Compare Source

figma/rest-api-spec (@​figma/rest-api-spec)

v0.44.0

Compare Source

v0.43.0

Compare Source

v0.42.0

Compare Source

v0.41.0

Compare Source

jsverse/transloco (@​jsverse/transloco)

v8.4.0

Compare Source

🚀 Features
  • transloco: transpile function arguments in FunctionalTranspiler
🩹 Fixes
  • translateSignal utility missing injector for toSignal
  • transloco-scoped-libs: multi-scope i18n with join strategy
❤️ Thank You
  • Dafnik
  • f-aubert
  • Ilshat Khamitov
microsoft/tsdoc (@​microsoft/tsdoc)

v0.17.1

Tue, 29 Sep 2026 18:52:33 GMT

Patches
  • Add missing tsdoc-unsupported-html-name to TSDocConfiguration.allTsdocMessageIds so eslint-plugin-tsdoc does not crash when reportUnsupportedHtmlElements is enabled (GitHub #​453)
  • Fix an issue where TSDocEmitter dropped a line break that appeared before an inline node such as a code span, {@link} tag, or HTML element, joining the adjacent words.

v0.17.0

Wed, 16 Sep 2026 01:24:29 GMT

Minor changes
  • Update emitter to not replace line breaks
modelcontextprotocol/typescript-sdk (@​modelcontextprotocol/server)

v2.3.1

Compare Source

Patch Changes

v2.3.0

Compare Source

Minor Changes
  • #​2901 433eb41 Thanks @​claude! - The HTTP client transports and the OAuth client helpers now follow a redirect only when it stays within the origin of the request (same scheme, host and port, or http to https on the same host with default ports) and keeps the method (a 307 or 308, or any redirect of a GET). Any other redirect is not followed. A transport then fails the request with an error that names the target; the session is kept and later messages still send. OAuth metadata discovery moves on to the next well-known URL, and any other OAuth request fails with an error that gives the status. Same-origin redirects that keep the method keep working on Node, up to five in a row, and no code changes are needed there. If your endpoint redirects to another origin, configure the transport with the URL it redirects to. A requestInit.redirect of 'error' or 'manual' is passed to fetch as it is for the requests a transport sends to the server (POST, GET and DELETE of the Streamable HTTP transport, POST of the SSE transport); for its OAuth requests, and for any other value, requestInit.redirect is not consulted by default. Browsers do not expose the target of a redirect to a page, so there a redirected request fails instead of being followed. Setting redirectPolicy: 'follow' on a transport leaves its redirects to the fetch implementation, as before this change.
Patch Changes
  • #​2599 5238fba Thanks @​freya0926! - A server can now serve, and a client can now call, tasks/get and tasks/cancel of the Tasks extension (SEP-2663) on a 2026-07-28 connection, when the handler is registered and the request is sent with an explicit schema. Every other method that a protocol revision removed is still refused. If one server factory serves both eras and such a handler is meant for 2025-era clients only, register it only when ctx.era === 'legacy'.

  • #​2846 63c0fca Thanks @​Sthreal! - Receiving a large message as a single SSE event over Streamable HTTP, such as a tool result of tens of megabytes, is now fast: a 50 MB result that took about 13 seconds arrives in under a second. The client now requires eventsource-parser 3.0.8 or later. SSEClientTransport reads through the eventsource package and gets the same speed-up once that also resolves eventsource-parser 3.0.8 or later.

  • #​2908 633dd3e Thanks @​claude! - The license field of the package manifests is now Apache-2.0; the LICENSE file shipped in each package carries the full terms, including the MIT text for earlier contributions. No code change.

  • #​2903 e765b3b Thanks @​claude! - With versionNegotiation in 'auto' or pin mode, a server/discover probe answered with a 2xx that carries no usable reply (a body that
    is not JSON under application/json, a bare 204, a missing or unaccepted content type) still rejects connect() with
    EraNegotiationFailed; an empty SSE stream or a 202 surfaces as the probe timeout instead. The message now says
    the server answered with an unusable reply (...) instead of reading like a network failure. To connect to a 2025 server behind a front that
    answers the probe this way, pass connect(transport, { prior: { kind: 'legacy' } }) or use mode: 'legacy'.

  • #​2905 c0cd01a Thanks @​claude! - SSEClientTransport now retries the SSE connection once after onUnauthorized() resolves, as documented. If the retry is also answered with 401, start() rejects with SdkHttpError (ClientHttpAuthentication) instead of calling onUnauthorized() again. A 401 on a later reconnect of a stream that had opened still gets one refresh.

  • Updated dependencies [633dd3e]:

v2.2.0

Compare Source

Minor Changes
  • #​2887 edd12e2 Thanks @​maxisbey! - Constructing ClientCredentialsProvider, PrivateKeyJwtProvider, StaticPrivateKeyJwtProvider or CrossAppAccessProvider without expectedIssuer is deprecated: the constructor logs one console.warn and that call signature is marked @deprecated. Behaviour is otherwise unchanged. Pass the issuer of the authorization server the credentials were registered with.

    fetchToken() throws AuthorizationServerMismatchError, before sending anything, when the provider's client information is bound to a different authorization server than the one it is called with. The AuthorizationServerMismatchError message no longer assumes the authorization-code callback; its fields are unchanged.

    OAuthTokensSchema and OAuthClientInformationSchema accept the optional issuer stamp, so a provider that reads storage back through them keeps it. auth() overwrites it on every save.

Patch Changes
  • #​2885 9dd722f Thanks @​claude! - Sending a notification on a closed connection no longer produces a briefly unhandled promise rejection (seen as unhandledrejection on Cloudflare Workers) in addition to the returned rejection.

  • #​2883 c0f7aec Thanks @​claude! - Fix a type-check failure for CommonJS TypeScript projects introduced in 2.1.0: dist/index.d.cts imported types from jose, which is ESM-only, so tsc with module: node16/node18 and skipLibCheck: false failed with TS1479. The two jose types used by the DPoP API (CryptoKey, JWK) are now inlined into the declaration files. No runtime change.

  • #​2768 efebf5b Thanks @​web-abin! - Correct the JSDoc for insecure OAuth token endpoints. The TLS requirement comes from the MCP authorization specification's OAuth 2.1 communication-security rules, not SEP-2207, which covers OIDC-flavored refresh-token guidance. Documentation only; no runtime behavior change.

  • #​2729 a4ae2f9 Thanks @​claude! - Correct the registerClient @deprecated notice: Dynamic Client Registration was deprecated by spec PR #​2858 (Client ID Metadata Documents), not SEP-2577 (which deprecates roots, sampling, and logging). The notice now also names the earliest possible removal date under the feature lifecycle policy (2027-07-28) and clarifies that the client_id_metadata_document_supported gating lives in the built-in auth() flow — registerClient called directly always sends the registration request. Documentation only; no runtime behavior change.

  • #​2862 e780e13 Thanks @​SyedTashfin! - Preserve _meta on input_required results. The 2026-07-28 decode seam rebuilt the payload from inputRequests and requestState only, so result-level metadata a server sent on an input_required result (including io.modelcontextprotocol/serverInfo) was dropped before an allowInputRequired: true caller could see it. Result._meta is a result-level field, so input_required carries it exactly like any other result.

  • #​2886 ef39308 Thanks @​claude! - listTools(), listPrompts(), listResources() and listResourceTemplates() called without a cursor now follow nextCursor until the server stops sending one, instead of stopping silently with a short list when a cursor repeats; a page that has the same items and the same nextCursor as the page before it ends the walk and is not added twice, and listMaxPages still caps the walk.

  • #​2642 cfa09db Thanks @​claude! - Fix Client.listen() rejections escaping as process-level unhandled rejections. The internal opening promise could reject (ack timeout, transport close, server cancel, caller abort) while listen() was still serially awaiting transport.send(...), so no rejection handler was attached yet — the rejection surfaced as an unhandledRejection that caller-side handling cannot prevent, and a send that never settles (e.g. a stdio write parked on 'drain') left listen() suspended forever even though the ack timer had already fired. listen() now suspends on the opening state machine directly and routes send failures into it, so every termination path rejects the returned promise and nothing escapes.

  • #​2597 7f7a94c Thanks @​arimu1! - Treat hostnames ending in .localhost as loopback for the SEP-2207 token-endpoint https guard (RFC 6761 §6.3), so host-based multi-tenant local OAuth works. The SDK does not resolve the name itself: *.localhost reaches the local machine only if the system resolver follows RFC 6761.

  • Updated dependencies [edd12e2]:

v2.1.0

Compare Source

Minor Changes
  • #​2629 dcc0102 Thanks @​gbshankar! - Add DPoP (RFC 9449 / SEP-1932) sender-constrained access token support to the client.
    • Opt in by implementing OAuthClientProvider.dpop() returning a DpopSession (new, along with generateDpopKeyPair, accessTokenHash, isDpopNonceChallenge). auth() / exchangeAuthorization / refreshAuthorization / fetchToken then sign a DPoP proof into token requests (retrying once on an authorization-server use_dpop_nonce challenge, with client authentication re-applied per attempt), and StreamableHTTPClientTransport, SSEClientTransport and withOAuth present a token_type: "DPoP" access token as Authorization: DPoP <token> plus a fresh per-request proof, retry a resource-server use_dpop_nonce challenge once, and pick up a DPoP-Nonce delivered on any response. Tokens the AS issued as Bearer are still presented as Bearer.
    • DPoP is applied at the fetch layer: the transports wrap their resource-server fetch (including a caller-supplied fetch / eventSourceInit.fetch) with the new withDpopFromProvider(provider) middleware, so proofs are always bound to the request actually sent. withDpop(session, getToken) is exported for callers that manage tokens themselves (e.g. alongside a minimal AuthProvider); the AuthProvider interface itself is unchanged.
    • auth() now recovers from invalid_dpop_proof on refresh (e.g. a refresh token bound to a key that is no longer held) by discarding the tokens and re-authorizing, like invalid_grant. OAuthErrorCode gains InvalidDpopProof and UseDpopNonce; extractWWWAuthenticateParams recognizes the DPoP challenge scheme; OAuthMetadataSchema gains dpop_signing_alg_values_supported.
Patch Changes
  • #​2726 6fa4227 Thanks @​LuckTerence! - SdkError and SdkHttpError accept standard ErrorOptions as an optional fourth constructor argument and forward it to Error, so a wrapped error is reachable through the standard Error.cause chain. Version-negotiation probe failures (SdkErrorCode.EraNegotiationFailed) now use it: the underlying TypeError: fetch failed and the DNS or socket error beneath it surface via error.cause, so pino, Sentry, and util.inspect render ENOTFOUND / ECONNREFUSED / ETIMEDOUT instead of stopping at the SdkError (#​2657). The previous error.data.cause slot is still populated for compatibility but is deprecated and slated for removal; read error.cause instead.

  • #​2654 03842cd Thanks @​pshah19! - Treat request id 0 as a real id. Two guards tested a RequestId for truthiness, so the legal JSON-RPC ids 0 and '' were read as absent. Id 0 is not a corner case: the outbound request counter is zero-based, so it is the first id every peer assigns, which on the server→client leg is the first sampling/createMessage, elicitation/create, or roots/list a server sends.

    • notifications/cancelled carrying id 0 was ignored, and the in-flight handler ran to completion with its AbortSignal never fired.
    • A notification sent with relatedRequestId: 0 wrongly passed the debounce gate (for methods opted into debouncedNotificationMethods). Because the pending set is keyed by method alone, a second such notification in the same tick was silently dropped rather than sent.

    Absent is now the only value that means "no id".

  • #​2043 c4248a9 Thanks @​ChrisJr404! - On Windows, stdio servers spawned by StdioClientTransport now also inherit COMSPEC, PATHEXT, PROGRAMDATA, PROGRAMFILES(X86), PROGRAMW6432, and WINDIR (added to DEFAULT_INHERITED_ENV_VARS). Programs a server launches can depend on them: PowerShell finds no native executables without PATHEXT, and Windows OpenSSH exits 255 without ProgramData.

  • #​2668 3e90449 Thanks @​KKonstantinov! - Stop sending notifications/cancelled for the initialize handshake. The spec is explicit that a client MUST NOT attempt to cancel its initialize request, but the outbound cancel path fired for any in-flight request: aborting the AbortSignal passed to connect(), or letting the handshake hit its timeout, put a forbidden cancellation on the wire naming the initialize request id.

    The local behaviour is unchanged — the caller's promise still rejects with the same abort/timeout error, and connect() still tears the connection down. Only the wire notification is suppressed. Every other method keeps the existing cancellation path.

  • #​2475 b654261 Thanks @​sanjibani! - StreamableHTTPClientTransport and SSEClientTransport now give their transport-managed headers precedence over same-named entries in requestInit.headers: Authorization when authProvider yields a token, mcp-protocol-version, and (Streamable HTTP) mcp-session-id. Header names compare case-insensitively and every HeadersInit form is covered (plain object, tuple array, Headers instance). Previously the caller-supplied value won, so a static Authorization placeholder (e.g. an env-var API key) kept overriding the OAuth token even after the provider obtained one and the fallback-to-OAuth flow never completed; a Headers instance or lowercase key produced a combined Bearer <fresh>, Bearer <stale> value instead. A configured Authorization is still sent while the provider has no token, and other configured headers pass through unchanged. Closes #​2208.

  • #​2581 5119ee7 Thanks @​hugosmoreira! - Preserve the exact OAuth resource indicator from protected resource metadata when building authorization and token requests. Previously a pathless resource such as https://example.com was normalized to https://example.com/ via URL.href, which breaks authorization servers that require the resource parameter to match the published value exactly (Microsoft Entra ID rejects it with AADSTS9010010). The exported OAuth helpers (startAuthorization, exchangeAuthorization, refreshAuthorization, fetchToken, executeTokenRequest) now also accept a string for resource; selectResourceURL still returns a URL, and a provider's validateResourceURL result is used unchanged. Fixes #​1968.

  • 3924de9 - Let saveTokens failures surface after a successful token refresh. In auth(), one try
    wrapped both refreshAuthorization() and the provider.saveTokens() that persists its
    result, and the catch deliberately swallows anything that is not an OAuthError — plus
    ServerError — so that a failed refresh falls through to a fresh authorization request.
    A persistence error thrown by the provider landed in that same branch: it was discarded
    with no log and no rethrow, and auth() continued to startAuthorization() and returned
    'REDIRECT'.

    Against an authorization server that rotates refresh tokens (the OAuth 2.1 default, and
    Keycloak's) this loses credentials rather than merely hiding an error. The exchange has
    already succeeded server-side, so the old refresh token is invalidated at the moment the
    new one is issued; dropping the new token set leaves nothing usable on either side. On a
    headless or CLI client, where redirectToAuthorization is typically a no-op, the fallthrough
    is silent and the client is left with stale tokens and no indication of why.

    The try/catch now covers only refreshAuthorization(). Persisting the result happens
    after it, on an unguarded path, so a provider's I/O error propagates to the caller.

    Refresh-request failures keep their existing control flow exactly: a ServerError or an
    unknown error still falls through to a new authorization flow, a non-ServerError
    OAuthError is still rethrown, and InsecureTokenEndpointError is still surfaced. The
    SEP-2352 issuer stamp written with the refreshed tokens is unchanged.

    Those fallbacks no longer happen in silence, though. Both routes to an unexplained
    re-authorization now emit a console.warn naming the cause: the in-place fallthrough in
    the refresh block, and auth()'s outer recovery for invalid_grant, invalid_client,
    and unauthorized_client, which discards stored credentials and retries. The second one
    matters most in practice — an expired, revoked, or rotation-reuse-detected refresh token
    is reported as invalid_grant, which is precisely the state a dropped token set leaves
    behind for the next call.

    Consumers whose OAuthClientProvider.saveTokens can reject should note that auth() may
    now reject where it previously returned 'REDIRECT' — that rejection is the failure that
    was being discarded.

  • #​2613 70de0c8 Thanks @​jwcarman! - Emit and validate the Mcp-Name header for tasks requests per SEP-2663's Streamable HTTP binding: the client transport now mirrors params.taskId into Mcp-Name on tasks/get / tasks/update / tasks/cancel (previously omitted, causing conforming servers to reject every task poll with -32020 HeaderMismatch), and the server-side standard-header validation cross-checks it via the same shared MCP_NAME_HEADER_SOURCE table.

    On the server, createMcpHandler now answers a modern (2026-07-28) tasks/get / tasks/update / tasks/cancel POST that omits Mcp-Name, or whose header disagrees with params.taskId, with 400 / -32020 (HeaderMismatch) at the standard-header-validation rung, the same treatment tools/call / prompts/get / resources/read already get. Legacy-era (2025-11-25) tasks traffic is unaffected. Clients built with this SDK release send the header; hand-rolled clients that omitted it must add it.

  • Updated dependencies [[dcc0102](h

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Paris)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a team as a code owner June 13, 2026 17:10
@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Jun 13, 2026
@nx-cloud

nx-cloud Bot commented Jun 13, 2026 •

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit b678039

Command Status Duration Result
nx affected --target=lint --configuration ci ❌ Failed 14m 43s View ↗
nx run-many --target=build,build-jar ❌ Failed 11m 54s View ↗
nx affected --target=test --coverage --configur... ✅ Succeeded 4m View ↗
nx run-many --target=documentation ✅ Succeeded 1m 36s View ↗
nx run-many --tui=false --target=build --projec... ✅ Succeeded 1m 40s View ↗
nx affected --target=package-github-action ✅ Succeeded 51s View ↗

💡 Dealing with memory or CPU issues? See memory and CPU details with the resource usage add-on ↗.


☁️ Nx Cloud last updated this comment at 2026-10-14 20:25:30 UTC

@codecov

codecov Bot commented Jun 13, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 70.54%. Comparing base (31da3de) to head (b678039).

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

@renovate
renovate Bot force-pushed the renovate/main-all-minor-patch branch from c3bebff to 8005984 Compare June 14, 2026 21:21
nx-cloud[bot]

This comment was marked as outdated.

@renovate
renovate Bot force-pushed the renovate/main-all-minor-patch branch from 8005984 to 54d7516 Compare June 15, 2026 09:37
nx-cloud[bot]

This comment was marked as outdated.

@renovate
renovate Bot force-pushed the renovate/main-all-minor-patch branch from 54d7516 to 21c34b0 Compare June 15, 2026 10:06
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

@renovate
renovate Bot force-pushed the renovate/main-all-minor-patch branch from 21c34b0 to 90d9ead Compare June 16, 2026 09:12

@nx-cloud nx-cloud Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We believe these changes will fix the lint failure. The @types/chrome bump to ^0.3.0 reworked chrome.devtools.inspectedWindow.eval's overloads, and because EvalOptions has only optional properties, our existing two-argument callback call was structurally matching the Promise-returning overload instead of the callback overload, so ESLint flagged an unhandled floating promise. Passing undefined explicitly for the options argument forces TypeScript to resolve the callback overload, and widening updateSelectedComponentInfo's signature to accept the new exceptionInfo parameter keeps the callback type-compatible with that overload's stricter tuple signature.

Tip

✅ We verified this fix by re-running chrome-devtools:lint:ci.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..7727fb9ff 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -152,12 +152,13 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
+      undefined,
       this.updateSelectedComponentInfoCallback
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally VVoq-7Rji

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@github-actions

Copy link
Copy Markdown

⚠️ Yarn detected 2 errors during the install process.


List of reported errors
Error Description
YN0060 monaco-editor is listed by your project with version 0.57.0 (p2f2fe8), which doesn't satisfy what ngx-monaco-editor-v2 requests (~0.56.0).
YN0060 monaco-editor is listed by your project with version 0.57.0 (pee5413), which doesn't satisfy what ngx-monaco-editor-v2 requests (~0.56.0).

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We updated the chrome.devtools.inspectedWindow.eval callback in app.ts to match the new signature introduced by the @types/chrome bump (^0.1.0 → ^0.3.0), which now types the callback as a rest-parameter tuple (...args: [result, exceptionInfo]) instead of a single optional argument. This fixes the TS2769 build failure by passing an inline two-parameter arrow function so TypeScript can correctly resolve the overload, instead of a pre-bound single-argument callback reference.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..48679883a 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,8 +115,6 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
-
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 
   constructor() {
@@ -152,7 +150,7 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
-      this.updateSelectedComponentInfoCallback
+      (info, _exceptionInfo) => this.updateSelectedComponentInfo(info)
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally cOEl-3YxR

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We updated the chrome.devtools.inspectedWindow.eval call in app.ts so it will fix the build-components compile failure introduced by the @types/chrome bump (^0.1.0 → ^0.3.0). The new type definitions changed the callback signature to a two-element rest-tuple (result/exceptionInfo), which the previously bound single-argument callback no longer satisfied. Passing an inline two-parameter arrow function lets TypeScript contextually infer the matching overload, resolving the TS2769 error without changing runtime behavior.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..48679883a 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,8 +115,6 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
-
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 
   constructor() {
@@ -152,7 +150,7 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
-      this.updateSelectedComponentInfoCallback
+      (info, _exceptionInfo) => this.updateSelectedComponentInfo(info)
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally pYRb-FWIv

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We've updated the updateSelectedComponentInfo callback signature to fix the chrome-devtools:build-components compile failure. The @types/chrome bump in this PR (^0.1.0 → ^0.3.0) changed chrome.devtools.inspectedWindow.eval's callback type to a two-element tuple (result, exceptionInfo), which the existing single-parameter callback no longer satisfied (TS2769). Adding the optional exceptionInfo parameter aligns the callback with the new typings and resolves the overload mismatch without altering runtime behavior.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally lrDf-5uJs

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the lint failure by marking the chrome.devtools.inspectedWindow.eval call with the void operator. After the @types/chrome bump to ^0.3.0, that call most likely returns a Promise, which @typescript-eslint/no-floating-promises flags. The result is already handled through the callback, so the promise is now explicitly ignored. ESLint on the changed file passes locally.

Tip

✅ We verified this fix by re-running chrome-devtools:lint:ci.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..f320cfbdd 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -148,7 +148,7 @@ export class App {
 
   private requestSelectedComponentInfo() {
     /* eslint-disable @typescript-eslint/restrict-template-expressions -- we want to print the content of the functions */
-    chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
+    void chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally 2rWs-RBPe

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the build error by updating our updateSelectedComponentInfo callback to accept the second exceptionInfo argument. The @types/chrome 0.3 bump changed the inspectedWindow.eval callback to a (result, exceptionInfo) tuple, and our one-argument callback no longer matched it. With the extra optional parameter the call type-checks again and the callback behaves as before.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..b2b400739 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: unknown) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally lhig-e4my

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the TS2769 build error in chrome-devtools:build-components by changing the callback signature. The @types/chrome upgrade to ^0.3.0 now types the inspectedWindow.eval callback as (result, exceptionInfo), so our single-parameter callback no longer matched any overload. Our callback now also accepts the optional exceptionInfo argument, so it matches the new typings without loosening type safety.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..9c2c0a797 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(...[info]: [info?: OtterLikeComponentInfo, exceptionInfo?: unknown]) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally x7ce-VXaE

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

Our @types/chrome upgrade (0.1 → 0.3) most likely changed chrome.devtools.inspectedWindow.eval to return a Promise, which @typescript-eslint/no-floating-promises now flags. We fixed it by prefixing the call with void, which marks the promise as intentionally ignored. This should clear the lint error in chrome-devtools:lint:ci.

Tip

✅ We verified this fix by re-running chrome-devtools:lint:ci.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..f320cfbdd 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -148,7 +148,7 @@ export class App {
 
   private requestSelectedComponentInfo() {
     /* eslint-disable @typescript-eslint/restrict-template-expressions -- we want to print the content of the functions */
-    chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
+    void chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally II50-RinF

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We bumped @types/chrome from 0.1 to 0.3, which changed the chrome.devtools.inspectedWindow.eval callback to receive (result, exceptionInfo) tuples, so our one-argument callback no longer matched any overload (TS2769). With these changes, updateSelectedComponentInfo also accepts the optional exceptionInfo argument, so it matches the new callback signature and chrome-devtools:build-components should compile again.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally Tlhc-udgF

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We bumped @types/chrome to 0.3, which now types the chrome.devtools.inspectedWindow.eval callback as (result, exceptionInfo) tuple args, so our one-parameter callback no longer type-checked. With this change, updateSelectedComponentInfo accepts an optional second exceptionInfo parameter, so it matches the new signature and chrome-devtools:build-components should compile again.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally ThlY-eNOw

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We updated the callback passed to chrome.devtools.inspectedWindow.eval so it matches the @types/chrome 0.3 callback signature, which also passes the exception info as a second argument. Our old one-argument callback matched no overload, so TypeScript fell back to the Promise overload and no-floating-promises flagged the call. With the matching signature the callback overload is selected and the lint error goes away.

Tip

✅ We verified this fix by re-running chrome-devtools:lint:ci.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally EKea-93I9

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We bumped @types/chrome to ^0.3.0, whose inspectedWindow.eval callback is now typed as (result, exceptionInfo) => void. That made our pre-bound updateSelectedComponentInfo callback fail with TS2769. Wrapping it in an arrow function (info) => this.updateSelectedComponentInfo(info) matches the new overload and should fix the build-components error.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..018bd7a2f 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,8 +115,6 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
-
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 
   constructor() {
@@ -152,7 +150,7 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
-      this.updateSelectedComponentInfoCallback
+      (info, exceptionInfo) => this.updateSelectedComponentInfo(exceptionInfo ? undefined : info)
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally LdtS-BhM3

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the chrome-devtools:build-components failure caused by the @types/chrome upgrade to 0.3.x. The inspectedWindow.eval callback is now typed with (result, exceptionInfo) tuple arguments, so we updated updateSelectedComponentInfo to accept the optional second exceptionInfo parameter. This makes the bound callback assignable again, with no loosening of types.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally NH4Q-VhWJ

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We bumped @types/chrome to 0.3, which types the chrome.devtools.inspectedWindow.eval callback as (result, exceptionInfo). Our one-argument bound callback no longer matched, which caused the TS2769 build error. With this change the callback accepts the new two-element argument list and still forwards only result, so chrome-devtools:build-components should compile again.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..80c2053ce 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,7 +115,7 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
+  private readonly updateSelectedComponentInfoCallback = (...[info]: [result: OtterLikeComponentInfo | undefined, exceptionInfo?: unknown]) => this.updateSelectedComponentInfo(info);
 
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally 7cth-THZ5

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the lint failure by marking the chrome.devtools.inspectedWindow.eval call as intentionally ignored with void. The @types/chrome upgrade means the call is now flagged by @typescript-eslint/no-floating-promises, and the existing callback still handles the result. yarn nx lint chrome-devtools now passes with 0 errors.

Tip

✅ We verified this fix by re-running chrome-devtools:lint:ci.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..f320cfbdd 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -148,7 +148,7 @@ export class App {
 
   private requestSelectedComponentInfo() {
     /* eslint-disable @typescript-eslint/restrict-template-expressions -- we want to print the content of the functions */
-    chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
+    void chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally QZyq-RBa6

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We're fixing the TS2769 error in chrome-devtools:build-components with these changes. The @types/chrome 0.3 bump types the inspectedWindow.eval callback with (result, exceptionInfo) arguments, which the old single-parameter bound callback didn't match. Our inline lambda lets TypeScript infer the new argument types and forwards only the result.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..b5ab967fd 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,8 +115,6 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
-
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 
   constructor() {
@@ -152,7 +150,7 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
-      this.updateSelectedComponentInfoCallback
+      (...[info]) => this.updateSelectedComponentInfo(info)
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally ucjZ-gUvq

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the build by passing an inline arrow function to chrome.devtools.inspectedWindow.eval, instead of the pre-bound method reference. The new @types/chrome 0.3 typings declare the callback as a (result, exceptionInfo) tuple union, and our explicitly typed (info?) callback was not assignable to it. With the inline arrow, TypeScript infers the parameter types from the new signature, so the TS2769 error goes away.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..48679883a 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,8 +115,6 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
-
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 
   constructor() {
@@ -152,7 +150,7 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
-      this.updateSelectedComponentInfoCallback
+      (info, _exceptionInfo) => this.updateSelectedComponentInfo(info)
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally B0lA-T3Pu

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed our build by widening the updateSelectedComponentInfo callback in the chrome-devtools app so it also accepts the exceptionInfo argument. The updated @types/chrome typings now call the inspectedWindow.eval callback with (result, exceptionInfo), which our one-parameter handler no longer matched. With this change the TS2769 error is gone, and build-components for chrome-devtools now completes successfully.

Tip

✅ We verified this fix by re-running chrome-devtools:build-components.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally N0CL-2hTZ

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed both compile failures caused by the dependency bumps. In ama-mcp-core, our registerPrompt override now declares the same overloads as McpServer 2.3 (without argsSchema, and with a Standard Schema argsSchema). In chrome-devtools, updateSelectedComponentInfo now accepts the extra exceptionInfo argument that the new @types/chrome passes to the inspectedWindow.eval callback. ama-mcp-core:compile and chrome-devtools:build-components now succeed locally, and lint passes for both projects.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..b2b400739 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: unknown) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..1e9ce860b 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -44,12 +47,32 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
+  public override registerPrompt(
+    name: string,
+    config: { title?: string; description?: string; argsSchema?: undefined; icons?: Icon[]; scopeChallenge?: ScopeChallengeHandler; _meta?: Record<string, unknown> },
+    promptCallback: PromptCallback
+  ): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(
+    name: string,
+    config: { title?: string; description?: string; argsSchema?: Args; icons?: Icon[]; scopeChallenge?: ScopeChallengeHandler; _meta?: Record<string, unknown> },
+    promptCallback: PromptCallback<Args>
+  ): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(
+    name: string,
+    config: { title?: string; description?: string; argsSchema?: Args; icons?: Icon[]; scopeChallenge?: ScopeChallengeHandler; _meta?: Record<string, unknown> },
+    promptCallback: PromptCallback | PromptCallback<Args>
+  ): RegisteredPrompt {
     const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      // Cast is required because the overload typing on MCP SDK is not correct
+      return super.registerPrompt(name, config as any, callback as any);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally ZBJd-IvE3

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We adapted our code to the typings introduced by the dependency bumps in this PR. AmaMcpServer.registerPrompt now declares explicit overloads matching the MCP SDK 2.3 prompt callback types, and the chrome-devtools eval callback accepts the new (result, exceptionInfo) arguments from @types/chrome 0.3. This resolves the TS2416 error in ama-mcp-core:compile and the TS2769 error in chrome-devtools:build-components.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..4a38253f0 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -33,6 +36,15 @@ const sendMetricsIfAuthorized = async (...args: Parameters<typeof sendGenAIEvent
   return sendGenAIEventMetricsIfAuthorized(...args);
 };
 
+type PromptConfig<Args extends StandardSchemaWithJSON | undefined = undefined> = {
+  title?: string;
+  description?: string;
+  argsSchema?: Args;
+  icons?: Icon[];
+  scopeChallenge?: ScopeChallengeHandler;
+  _meta?: Record<string, unknown>;
+};
+
 /**
  * MCP server with telemetry support
  */
@@ -44,12 +56,23 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
-    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
+  public override registerPrompt(name: string, config: PromptConfig, promptCallback: PromptCallback): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(name: string, config: PromptConfig<Args>, promptCallback: PromptCallback<Args>): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(
+    name: string,
+    config: PromptConfig<Args | undefined>,
+    promptCallback: PromptCallback<Args> | PromptCallback
+  ): RegisteredPrompt {
+    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger }) as PromptCallback<Args>;
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      return super.registerPrompt(name, config as PromptConfig<Args>, callback);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally Eqgm-39qJ

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We updated our code to match the new typings that came in with this dependency bump. Our registerPrompt override now declares the same overloads as McpServer in @modelcontextprotocol/server 2.3.1. Our devtools eval callback now accepts the (result, exceptionInfo) arguments from @types/chrome 0.3. This should fix both TypeScript compile errors.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..b2b400739 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: unknown) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..1da56a003 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -33,6 +36,18 @@ const sendMetricsIfAuthorized = async (...args: Parameters<typeof sendGenAIEvent
   return sendGenAIEventMetricsIfAuthorized(...args);
 };
 
+/**
+ * Configuration of a prompt registration
+ */
+type PromptConfig<Args extends StandardSchemaWithJSON | undefined> = {
+  title?: string;
+  description?: string;
+  argsSchema?: Args;
+  icons?: Icon[];
+  scopeChallenge?: ScopeChallengeHandler;
+  _meta?: Record<string, unknown>;
+};
+
 /**
  * MCP server with telemetry support
  */
@@ -44,12 +59,19 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
+  public override registerPrompt(name: string, config: PromptConfig<undefined>, promptCallback: PromptCallback): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(name: string, config: PromptConfig<Args>, promptCallback: PromptCallback<Args>): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(name: string, config: PromptConfig<Args | undefined>, promptCallback: PromptCallback<Args> | PromptCallback): RegisteredPrompt {
     const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      return super.registerPrompt(name, config as PromptConfig<Args>, callback as PromptCallback<Args>);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally d40E-xdL8

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

Our dependency bumps changed two typings: McpServer.registerPrompt now has overloads with a ServerContext callback parameter, and chrome.devtools.inspectedWindow.eval callbacks now receive (result, exceptionInfo). We fix this by giving AmaMcpServer.registerPrompt explicit overloads that match the SDK, and by accepting the new optional exception argument in the devtools callback. Both ama-mcp-core:compile and chrome-devtools:build-components now pass.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..9ed9a60a2 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -22,6 +25,16 @@ import type {
   Logger,
 } from '../logger';
 
+/** Configuration of a prompt registered on the MCP server */
+type PromptConfig<Args extends StandardSchemaWithJSON | undefined> = {
+  title?: string;
+  description?: string;
+  argsSchema?: Args;
+  icons?: Icon[];
+  scopeChallenge?: ScopeChallengeHandler;
+  _meta?: Record<string, unknown>;
+};
+
 const createCallback = <T extends (...args: any[]) => any>(...args: Parameters<typeof createGenAICallbackWithMetrics>) => async (...callbackArgs: Parameters<T>) => {
   const { createGenAICallbackWithMetrics } = await import('@o3r/telemetry');
   const wrappedCallback = createGenAICallbackWithMetrics(...args);
@@ -44,12 +57,20 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
-    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
+  public override registerPrompt(name: string, config: PromptConfig<undefined>, promptCallback: PromptCallback): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(name: string, config: PromptConfig<Args>, promptCallback: PromptCallback<Args>): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON | undefined>(name: string, config: PromptConfig<Args>, promptCallback: PromptCallback<Args>): RegisteredPrompt {
+    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger }) as PromptCallback<Args>;
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      // Cast is required because the overload typing on MCP SDK does not accept a union of overload arguments
+      return super.registerPrompt(name, config as PromptConfig<StandardSchemaWithJSON>, callback as PromptCallback<StandardSchemaWithJSON>);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally 9UMS-DJCV

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the two compile failures introduced by the dependency bumps. AmaMcpServer.registerPrompt now uses an explicit generic signature compatible with @modelcontextprotocol/server 2.3, and the chrome-devtools eval callback now accepts the (result, exceptionInfo) arguments required by @types/chrome 0.3. Both ama-mcp-core:compile and chrome-devtools:build-components now succeed locally.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..45cb58f45 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -44,12 +47,16 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
-    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
+  public override registerPrompt<Args extends StandardSchemaWithJSON | undefined = undefined>(
+    name: string,
+    config: { title?: string; description?: string; argsSchema?: Args; icons?: Icon[]; scopeChallenge?: ScopeChallengeHandler; _meta?: Record<string, unknown> },
+    promptCallback: PromptCallback<Args>
+  ): RegisteredPrompt {
+    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger }) as PromptCallback<Args>;
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      // Cast is required because the overload typing on MCP SDK does not accept an optional schema generic
+      return super.registerPrompt(name, config as any, callback as any);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally w7Nd-YxMi

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We updated AmaMcpServer.registerPrompt and the chrome-devtools inspectedWindow.eval callback so they match the new typings from @modelcontextprotocol/server 2.3.x and @types/chrome 0.3.x. With these changes, ama-mcp-core:compile and chrome-devtools:build-components should compile again.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..48679883a 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,8 +115,6 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
-
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 
   constructor() {
@@ -152,7 +150,7 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
-      this.updateSelectedComponentInfoCallback
+      (info, _exceptionInfo) => this.updateSelectedComponentInfo(info)
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..dddde469e 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -33,6 +36,8 @@ const sendMetricsIfAuthorized = async (...args: Parameters<typeof sendGenAIEvent
   return sendGenAIEventMetricsIfAuthorized(...args);
 };
 
+type PromptConfig = { title?: string; description?: string; argsSchema?: StandardSchemaWithJSON; icons?: Icon[]; scopeChallenge?: ScopeChallengeHandler; _meta?: Record<string, unknown> };
+
 /**
  * MCP server with telemetry support
  */
@@ -44,12 +49,16 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
-    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
+  public override registerPrompt<Args extends StandardSchemaWithJSON | undefined = undefined>(
+    name: string,
+    config: { title?: string; description?: string; argsSchema?: Args; icons?: Icon[]; scopeChallenge?: ScopeChallengeHandler; _meta?: Record<string, unknown> },
+    promptCallback: PromptCallback<Args>
+  ): RegisteredPrompt {
+    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger }) as PromptCallback<Args>;
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      // Cast is required because the generic `Args` cannot be narrowed to a single SDK overload
+      return super.registerPrompt(name, config as PromptConfig, callback as PromptCallback<StandardSchemaWithJSON>);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally E5gs-l8jy

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the lint failure by marking the chrome.devtools.inspectedWindow.eval(...) call with the void operator. The @types/chrome upgrade most likely made eval return a Promise, which @typescript-eslint/no-floating-promises now flags. Results are still delivered through the existing callback, so behavior is unchanged. ESLint on the changed file now passes with no errors.

Tip

✅ We verified this fix by re-running chrome-devtools:lint:ci.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..f320cfbdd 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -148,7 +148,7 @@ export class App {
 
   private requestSelectedComponentInfo() {
     /* eslint-disable @typescript-eslint/restrict-template-expressions -- we want to print the content of the functions */
-    chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
+    void chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally 2cYc-Q3eV

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We updated the code to match the new typings from the dependency bumps. In ama-mcp-core, registerPrompt now has an explicit generic signature, as registerTool already does, instead of using Parameters<> on an overloaded method. In chrome-devtools, the inspectedWindow.eval callback now accepts the (result, exceptionInfo) arguments that the new @types/chrome expects. Together these should fix both compile errors.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..27f94d721 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -157,7 +157,7 @@ export class App {
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
 
-  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo) {
+  private updateSelectedComponentInfo(info?: OtterLikeComponentInfo, _exceptionInfo?: chrome.devtools.inspectedWindow.EvaluationExceptionInfo) {
     this.selectedComponentInfo.next(info);
     this.cd.detectChanges();
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..0689fa788 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -44,12 +47,16 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
-    const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
+  // TODO: revert to `...args: Parameters<typeof McpServer.prototype.registerPrompt>` once the LegacyPromptCallback overload is removed from the SDK
+  public override registerPrompt<Args extends StandardSchemaWithJSON | undefined = undefined>(
+    name: string,
+    config: { title?: string; description?: string; argsSchema?: Args; icons?: Icon[]; scopeChallenge?: ScopeChallengeHandler; _meta?: Record<string, unknown> },
+    promptCallback: PromptCallback<Args>
+  ): RegisteredPrompt {
+    const callback = createCallback(promptCallback as (...args: any[]) => any, name, 'promptCall', { logger: this.logger }) as PromptCallback<Args>;
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      return super.registerPrompt(name, config as any, callback as any);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally iPEX-yBZQ

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We fixed the lint failure by prefixing the chrome.devtools.inspectedWindow.eval call with the void operator. The @types/chrome bump to ^0.3.0 most likely makes eval return a Promise even when a callback is passed, so the existing call was flagged by @typescript-eslint/no-floating-promises. The callback still handles the result, so behavior is unchanged and the lint error is resolved.

Tip

✅ We verified this fix by re-running chrome-devtools:lint:ci.

diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..f320cfbdd 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -148,7 +148,7 @@ export class App {
 
   private requestSelectedComponentInfo() {
     /* eslint-disable @typescript-eslint/restrict-template-expressions -- we want to print the content of the functions */
-    chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
+    void chrome.devtools.inspectedWindow.eval<OtterLikeComponentInfo | undefined>(
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally 9kWr-RrNp

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@nx-cloud nx-cloud Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud is proposing a fix for your failed CI:

We updated our code so it compiles against the bumped dependencies. AmaMcpServer.registerPrompt now declares explicit overloads that mirror @modelcontextprotocol/server 2.3.1, and the chrome-devtools inspectedWindow.eval callback now matches the (result, exceptionInfo) signature from @types/chrome 0.3. This should fix both the ama-mcp-core:compile and chrome-devtools:build-components errors.

Tip

✅ We verified this fix by re-running ama-mcp-core:compile.

Suggested Fix changes
diff --git a/apps/chrome-devtools/src/app-components/app.ts b/apps/chrome-devtools/src/app-components/app.ts
index 2e256df01..71691c863 100644
--- a/apps/chrome-devtools/src/app-components/app.ts
+++ b/apps/chrome-devtools/src/app-components/app.ts
@@ -115,8 +115,6 @@ export class App {
 
   private readonly selectedComponentInfo = new BehaviorSubject<OtterLikeComponentInfo | undefined>(undefined);
 
-  private readonly updateSelectedComponentInfoCallback = this.updateSelectedComponentInfo.bind(this);
-
   public selectedComponentInfo$ = this.selectedComponentInfo.asObservable();
 
   constructor() {
@@ -152,7 +150,7 @@ export class App {
       `function getTranslations(node){ return (${getTranslationsRec})(node, getTranslations); } `
       + `function getAnalyticEvents(node){ return (${getAnalyticEventsRec})(node, getAnalyticEvents); } `
       + `(${getSelectedComponentInfo})(getTranslations, getAnalyticEvents);`,
-      this.updateSelectedComponentInfoCallback
+      (info: OtterLikeComponentInfo | undefined, _exceptionInfo?: unknown) => this.updateSelectedComponentInfo(info)
     );
     /* eslint-enable @typescript-eslint/restrict-template-expressions */
   }
diff --git a/packages/@ama-mcp/core/src/server/index.ts b/packages/@ama-mcp/core/src/server/index.ts
index 06acf55be..7f5a403bf 100644
--- a/packages/@ama-mcp/core/src/server/index.ts
+++ b/packages/@ama-mcp/core/src/server/index.ts
@@ -2,13 +2,16 @@ import {
   type Icon,
   type Implementation,
   McpServer,
+  type PromptCallback,
   type ReadResourceCallback,
   type ReadResourceTemplateCallback,
+  type RegisteredPrompt,
   type RegisteredResource,
   type RegisteredResourceTemplate,
   type RegisteredTool,
   type ResourceMetadata,
   type ResourceTemplate,
+  type ScopeChallengeHandler,
   type ServerOptions,
   type StandardSchemaWithJSON,
   type ToolAnnotations,
@@ -22,6 +25,15 @@ import type {
   Logger,
 } from '../logger';
 
+type PromptConfig<Args extends StandardSchemaWithJSON | undefined> = {
+  title?: string;
+  description?: string;
+  argsSchema?: Args;
+  icons?: Icon[];
+  scopeChallenge?: ScopeChallengeHandler;
+  _meta?: Record<string, unknown>;
+};
+
 const createCallback = <T extends (...args: any[]) => any>(...args: Parameters<typeof createGenAICallbackWithMetrics>) => async (...callbackArgs: Parameters<T>) => {
   const { createGenAICallbackWithMetrics } = await import('@o3r/telemetry');
   const wrappedCallback = createGenAICallbackWithMetrics(...args);
@@ -44,12 +56,19 @@ export class AmaMcpServer extends McpServer {
   /**
    * @inheritdoc
    */
-  public override registerPrompt(...args: Parameters<typeof McpServer.prototype.registerPrompt>) {
-    const [name, config, promptCallback] = args;
+  public override registerPrompt(name: string, config: PromptConfig<undefined>, cb: PromptCallback): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(name: string, config: PromptConfig<Args>, cb: PromptCallback<Args>): RegisteredPrompt;
+  /**
+   * @inheritdoc
+   */
+  public override registerPrompt<Args extends StandardSchemaWithJSON>(name: string, config: PromptConfig<Args | undefined>, promptCallback: PromptCallback<Args> | PromptCallback): RegisteredPrompt {
     const callback = createCallback(promptCallback, name, 'promptCall', { logger: this.logger });
     let error;
     try {
-      return super.registerPrompt(name, config, callback);
+      return super.registerPrompt(name, config as PromptConfig<Args>, callback as PromptCallback<Args>);
     } catch (e) {
       error = e;
       throw e;

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally xD51-YV7N

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment