> // AFTER initial render. Astro's ClientRouter swaps / on // navigation, detaching those injected nodes: the banner disappears and // openAxeptioCookies() stops working (SDK DOM refs point to detached // nodes). A full reload re-runs GTM → re-injects Axeptio → works again. // // Fix: tag every node injected post-render, park the exact same nodes // under (outside head/body) during the swap, then move them back // after. Nodes stay in the same document throughout — no cross-document // adoption — so the Axeptio SDK's JS references remain valid. Scripts // are skipped so the SDK is never re-executed (no duplicate banner). var PERSIST = 'data-consent-persist' var PARK = 'data-consent-park' var observer = null function tag(node) { if (!node || node.nodeType !== 1) return if (node.tagName === 'SCRIPT') return if (node.hasAttribute(PERSIST) || node.hasAttribute(PARK)) return // Don't tag Astro's own transition/runtime nodes if (node.id === 'main' || node.id === 'mistral-data') return if (node.tagName === 'HEADER' || node.tagName === 'MAIN' || node.tagName === 'FOOTER') return node.setAttribute(PERSIST, '') } function observeTarget(target) { if (!target || !observer) return observer.observe(target, { childList: true }) } // Start after DOM is parsed so we don't tag server-rendered head/body // elements still being added by the HTML parser. Axeptio is injected // by GTM via requestIdleCallback, which fires after DOMContentLoaded. function startObserver() { if (observer) return observer = new MutationObserver(function (records) { for (var i = 0; i < records.length; i++) { var added = records[i].addedNodes for (var j = 0; j < added.length; j++) tag(added[j]) } }) observeTarget(document.head) observeTarget(document.body) } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', startObserver) } else { startObserver() } // Park tagged nodes under so they survive the head/body swap. document.addEventListener('astro:before-swap', function () { var nodes = document.querySelectorAll('[' + PERSIST + ']') for (var i = 0; i < nodes.length; i++) { var n = nodes[i] if (!n.parentNode) continue n.setAttribute(PARK, document.head.contains(n) ? 'head' : 'body') document.documentElement.appendChild(n) } }) // Move parked nodes back into head or body. document.addEventListener('astro:after-swap', function () { var parked = document.querySelectorAll('[' + PARK + ']') for (var i = 0; i < parked.length; i++) { var n = parked[i] var origin = n.getAttribute(PARK) n.removeAttribute(PARK) if (origin === 'head' || n.tagName === 'STYLE' || n.tagName === 'LINK' || n.tagName === 'META') { document.head.appendChild(n) } else { document.body.appendChild(n) } } // Re-observe body in case it was replaced if (observer) observeTarget(document.body) }) })()
AXA (black)
ASML (black)
Cisco (black)
Snowflake (black)
CMA CGM (black)
HSBC (black)
Ericsson (black)
TotalEnergies (black)
ESA (black)
BMW (black)

No one else should hold the strings to your

Process knowledge

Intellectual property

Invention

Data

Core product development

Quality standards

Discovery

Proprietary AI

Private code base

Decision logic

Engineering practices

Design tradeoffs

Mistral lets you decide
how AI works in your organization.

We make the models. You keep them.

Start with Mistral’s frontier and specialist open-weight models. Use them as they are, or make them specific to your organization.

We give you the tools. You tailor the models.

Customize models around your data, use cases, and requirements with Forge. The intelligence you create is uniquely yours.

We build the software. You put AI to work.

Build, govern and improve agents and applications with Studio. Vibe brings that AI into research, coding, and everyday tasks.

We host it. Or you do.

Run on-prem, in your VPC, or have us run it for you. Keep inference in-region and reserve dedicated GPU capacity for predictable throughput without managing hardware.

See Sovereign AI at work.

Learn about our customers

5 of the world's largest energy companies trust Mistral.

TotalEnergies (black)

TotalEnergies is accelerating reservoir exploration.

“By combining a century of geoscience data, the expertise of our teams and Mistral's capabilities, we aim to develop a new generation of tools capable of supporting our experts in analyzing the most complex data and in their decision-making.”

CEO, TotalEnergies

The world’s largest semiconductor equipment and aircraft manufacturers trust Mistral.

ASML is identifying sub-system errors 70% faster.

“Thanks to the high-performance models and made-to-measure support of Mistral experts, we are building the foundations necessary to power our current and future products and services, enabling us to serve our customers better.”

Executive Vice President Digital, Airbus

Europe’s three largest banks trust Mistral.

BNP Paribas - quote as feature (black)

BNP Paribas is speeding up the KYC process from weeks to days.

“Mistral has delivered productivity gains across coding, research, and surveillance while maintaining the data control and compliance our business requires.”

Head of Digital Global Markets, BNP Paribas

NATO and 20+ national government entities trust Mistral.

The European Patent Office is cutting transcription from days to minutes.

“Our partnership with Mistral has accelerated the development of safer and smarter AI solutions which has greatly enhanced the productivity of public safety officers in Singapore.”

Chief AI Officer and Assistant Chief Executive, HTX

Go deeper.

Research

Explore the science and research behind Mistral’s frontier models.

Sovereign AI

Learn about AI dependencies, where control matters, and what it takes to stay sovereign.

Cloud

Access models, regional inference, and dedicated compute on Mistral infrastructure.

gradient background
cat sitting