diff --git a/build/invent/invent.mdx b/_snippets/invent.mdx
similarity index 77%
rename from build/invent/invent.mdx
rename to _snippets/invent.mdx
index e93a6e45..b3868ca6 100644
--- a/build/invent/invent.mdx
+++ b/_snippets/invent.mdx
@@ -1,35 +1,117 @@
----
-title: "Build with Invent"
-sidebarTitle: "Build with Invent"
-description: "Invent is a forward deployed agent that builds, manages, and improves the specialist Agents that run your business processes."
----
+Invent is a forward deployed AI Agent built into Relevance AI. You say how the work should run, and Invent builds and manages the Agent team that does it. It works across your entire project rather than inside any one Agent or Tool, so it can create, edit, and understand almost anything in the platform.
-
+
-## What is Invent
+## What can Invent do?
-Invent is a forward deployed agent built into Relevance AI. Give it a business process and it works with you to understand how that process runs, including the systems involved and the decisions that require judgment.
+Each area below is something Invent can reach directly. In all of them it acts with your own permissions, inside the project you have open.
-It then creates and coordinates the Agents, Tools, Triggers, and Workforces needed to carry out the process, with performance requirements in place before real work begins.
+
+
+ Invent builds and runs your Agents end to end.
+
+ - Create, update, publish, and delete an Agent
+ - Read, search, and edit its system prompt
+ - Attach and detach the Tools it can use
+ - Trigger a run and poll the result
+ - Read a task's summary, messages, and metadata
+ - Cancel a running task
+
+
+ Invent assembles Tools a step at a time, or starts from one that already exists.
+
+ - Create, update, publish, delete, and bulk delete Tools
+ - Add, update, reorder, and remove steps
+ - Set what the Tool returns
+ - Trigger a run, poll the result, and cancel one mid-flight
+ - Read the latest run or look back through previous runs
+ - Search and clone public Tools and Marketplace listings
+ - Browse the Tool step library, check what a step needs, and build a Tool from one
+
+
+ Invent wires Agents into a Workforce and runs it.
+
+ - Create, update, publish, and delete a Workforce
+ - Turn its Trigger on or off
+ - Trigger a run and poll the result
+ - Read a task's messages and metadata
+ - Cancel a running task
+
+
+ Invent manages the Knowledge tables your Agents read from.
-Its job continues after launch. Invent reviews live performance, detects quality problems, and proposes and tests improvements. You bring the process knowledge; Invent builds and manages the Agent team underneath it.
+ - Create, update, and delete Knowledge tables
+ - Add, update, and delete rows
+ - Read a whole table or a single row
+ - Export the contents
+
+
+ Invent sets up what starts an Agent without you.
-## What can Invent do?
+ - List the Triggers already on an Agent
+ - Create a Trigger
+ - Enable or disable one
+ - Delete one
+
+
+ Invent can build the whole quality setup, run it, and watch it.
+
+ - Build and maintain the reusable Checks library
+ - Create scenarios, and attach or detach Checks on them
+ - Configure how a scenario is simulated
+ - Group scenarios into test sets
+ - Run an evaluation, poll it, and cancel or delete a run
+ - Read run summaries and individual test results
+ - Create Performance dashboards and attach Checks to them
+ - Read a dashboard's time series and its run history
+ - Create, update, and delete alarms
+ - Configure the pre-publish check and poll its status
+
+
+ Agents, Tools, and Workforces all keep a version history, and Invent can move through it. It asks before restoring, and the live published version stays untouched until you publish.
-
-
- Invent works through your process with you, including its inputs, systems, judgment calls, exceptions, and definition of success. It can read the process back to you, identify missing information, and help determine which parts should become Tools, Agents, or Workforces.
-
-
- Invent creates the Agents needed for the process, equips them with the required Tools and context, connects the systems where the work happens, and wires the Triggers and Workforces that coordinate the process from end to end.
-
-
- Invent defines the checks each Agent must pass before launch and samples live runs after deployment. When quality drops, it diagnoses the problem and proposes changes to prompts, Tools, examples, models, or orchestration. It can test those changes against the same requirements before you approve them.
-
-
- Invent reviews Agent activity, errors, Evals, and performance dashboards to diagnose problems and recommend improvements. Describe a recurring process, and it can help identify where Agents, Tools, or Workforces could automate it.
-
-
+ - List the versions of an Agent, Tool, or Workforce
+ - Read any single version
+ - Rename a version
+ - Restore an earlier version into the current draft
+
+
+ Invent reads the same numbers you do when something looks wrong.
+
+ - Pull a scorecard for an Agent, Tool, or Workforce
+ - Read the error records behind a problem
+ - Chart usage over time, or break it down by resource
+ - Chart Agent activity over time
+ - Read the current task counts, including what is waiting for review, escalated, or errored
+ - List the tasks themselves
+
+
+ Invent uses what you have already connected; authenticating an account stays yours to do.
+
+ - See which accounts are connected and which providers are available
+ - Check whether a Tool has the integrations it needs
+ - Check whether an API key is available
+ - List the Slack channels it can post to
+ - List your project's MCP servers and the Tools they expose, and call them
+
+
+ Invent works in the open rather than silently.
+
+ - Ask you questions before it builds
+ - Read a plan back and confirm it with you
+ - Spawn subagents to work in parallel
+ - Read, write, edit, list, and delete the files in a conversation
+
+
+ Invent keeps the project around the work tidy.
+
+ - Read your project's details
+ - Create, rename, and delete folders
+ - List the LLM models available to you
+ - Set and clear task priority on a resource
+ - File a bug report to the Relevance AI engineering team
+
+
## Where to find Invent
@@ -187,12 +269,14 @@ Invent is available to organization admins by default. An organization admin can
+ Invent's job continues after launch. It watches live performance, spots where quality slips, and proposes improvements it has already tested.
+
- Before setting up a scheduled check-in, add an email or Slack notification channel in [Alerts](/build/invent/invent#alerts) so Invent can notify you about the result.
+ Before setting up a scheduled check-in, add an email or Slack notification channel in [Alerts](#alerts) so Invent can notify you about the result.
#### Schedule a check-in
@@ -291,7 +375,7 @@ Invent can build an initial Evals suite, review results, investigate failed Chec
#### Turn on auto-diagnosis
- Turn on **Auto-diagnosis by Invent** to investigate the first breach and send a diagnosis and proposed fix to the alarm creator's [Invent alert channels](/build/invent/invent#alerts). Invent still shares its findings if the cause is unclear and never applies changes without your approval.
+ Turn on **Auto-diagnosis by Invent** to investigate the first breach and send a diagnosis and proposed fix to the alarm creator's [Invent alert channels](#alerts). Invent still shares its findings if the cause is unclear and never applies changes without your approval.
Alarms are configured in an Agent or Workforce's **Evaluate → Monitor** area, not in Invent settings.
diff --git a/admin/invent.mdx b/admin/invent.mdx
new file mode 100644
index 00000000..494ad088
--- /dev/null
+++ b/admin/invent.mdx
@@ -0,0 +1,7 @@
+---
+title: "Use Invent"
+sidebarTitle: "Use Invent"
+description: "Meet your personal forward deployed agent built into Relevance AI."
+---
+
+
diff --git a/build/agents/build-your-agent/version-history.mdx b/build/agents/build-your-agent/version-history.mdx
index d08548c2..c5052ecd 100644
--- a/build/agents/build-your-agent/version-history.mdx
+++ b/build/agents/build-your-agent/version-history.mdx
@@ -49,7 +49,7 @@ The panel lists every saved version with its name, who saved it, and its descrip
The three-dot menu only lists **Versions** in the builder. It's hidden on an Agent's Use tab, when you're not on the Workforce Build tab, and in the Tool builder embedded inside the Agent builder, where you need to open the Tool on its own page instead.
-To restore a version, click the three-dot menu on that version in the panel, then select **Restore this version**. You can also ask [Invent](/build/invent/invent) in plain language. Either way the restored state lands in draft, so you review it and publish when ready.
+To restore a version, click the three-dot menu on that version in the panel, then select **Restore this version**. You can also ask [Invent](/build/invent) in plain language. Either way the restored state lands in draft, so you review it and publish when ready.
### With Invent
diff --git a/build/introduction.mdx b/build/introduction.mdx
index 2df0feeb..a2d33076 100644
--- a/build/introduction.mdx
+++ b/build/introduction.mdx
@@ -20,7 +20,7 @@ Invent is one of the main ways to build in Relevance AI. Describe a business pro
Invent creates and connects the Agents, Tools, Triggers, Knowledge, and Workforces needed to run the process. After launch, it can review Evals and live performance, diagnose quality problems, and propose tested improvements for your approval.
-
+
Learn how Invent helps you understand a process, build the Agent team, and maintain its quality after launch.
@@ -48,7 +48,7 @@ Invent can assemble and coordinate these components for you, or you can configur
You can work with Invent or configure each component directly:
-
+
Describe a business process in plain language. Invent builds and connects the Agents, Tools, Knowledge, Triggers, and Workforces needed to run it, then helps monitor and improve performance after launch.
@@ -58,4 +58,4 @@ You can work with Invent or configure each component directly:
## What's next?
-Start with [Invent](/build/invent/invent) to build and manage a process with natural language. To configure each component directly, begin with [building an agent's prompt](/build/agents/build-your-agent/prompt), then explore how to create [custom tools](/build/tools/customize-tool/tool-style-guide), connect [knowledge sources](/build/knowledge/create-knowledge), and wire it all together in a [workforce](/build/workforces/build-an-ai-workforce/add-triggers).
+Start with [Invent](/build/invent) to build and manage a process with natural language. To configure each component directly, begin with [building an agent's prompt](/build/agents/build-your-agent/prompt), then explore how to create [custom tools](/build/tools/customize-tool/tool-style-guide), connect [knowledge sources](/build/knowledge/create-knowledge), and wire it all together in a [workforce](/build/workforces/build-an-ai-workforce/add-triggers).
diff --git a/build/invent.mdx b/build/invent.mdx
new file mode 100644
index 00000000..494ad088
--- /dev/null
+++ b/build/invent.mdx
@@ -0,0 +1,7 @@
+---
+title: "Use Invent"
+sidebarTitle: "Use Invent"
+description: "Meet your personal forward deployed agent built into Relevance AI."
+---
+
+
diff --git a/changelog.mdx b/changelog.mdx
index 30e0edef..e0232d81 100644
--- a/changelog.mdx
+++ b/changelog.mdx
@@ -14,7 +14,7 @@ The newest version of Invent is now available.
Invent can create and edit Agents, Tools, Workforces, Knowledge tables, Triggers, and Evals, run tasks, pull your analytics, and much, much more. It has context over everything in your project and acts as a specialist who can help you create almost anything inside of Relevance AI.
-Open Invent from the badge tucked into the right edge of the screen, from the button in the bottom-right corner of the Home page, or from Invent in the left navigation menu. Invent is enabled per project: an organization admin opens Settings → Projects, selects the project, clicks Manage settings, and turns on the Invent toggle. See [Build with Invent](/build/invent/invent) for more information on using and configuring Invent.
+Open Invent from the badge tucked into the right edge of the screen, from the button in the bottom-right corner of the Home page, or from Invent in the left navigation menu. Invent is enabled per project: an organization admin opens Settings → Projects, selects the project, clicks Manage settings, and turns on the Invent toggle. See [Use Invent](/build/invent) for more information on using and configuring Invent.
diff --git a/docs.json b/docs.json
index ddf85285..aafb2516 100644
--- a/docs.json
+++ b/docs.json
@@ -29,6 +29,12 @@
"get-started/pricing"
]
},
+ {
+ "group": "Invent",
+ "pages": [
+ "get-started/invent"
+ ]
+ },
{
"group": "Core Concepts",
"pages": [
@@ -93,7 +99,15 @@
"get-started/support"
]
}
- ]
+ ],
+ "global": {
+ "anchors": [
+ {
+ "anchor": "Use Invent",
+ "href": "/get-started/invent"
+ }
+ ]
+ }
},
{
"tab": "Build with Relevance AI",
@@ -107,7 +121,7 @@
{
"group": "Invent",
"pages": [
- "build/invent/invent"
+ "build/invent"
]
},
{
@@ -392,7 +406,15 @@
"build/knowledge/use-snippets-for-quick-access"
]
}
- ]
+ ],
+ "global": {
+ "anchors": [
+ {
+ "anchor": "Use Invent",
+ "href": "/build/invent"
+ }
+ ]
+ }
},
{
"tab": "Integrations",
@@ -405,6 +427,12 @@
"integrations/remove-integrations"
]
},
+ {
+ "group": "Invent",
+ "pages": [
+ "integrations/invent"
+ ]
+ },
{
"group": "Model Context Protocol",
"pages": [
@@ -506,7 +534,15 @@
"integrations/integration-examples/email-warmups"
]
}
- ]
+ ],
+ "global": {
+ "anchors": [
+ {
+ "anchor": "Use Invent",
+ "href": "/integrations/invent"
+ }
+ ]
+ }
},
{
"tab": "Access & Administration",
@@ -520,6 +556,12 @@
"admin/account-management/account-deletion"
]
},
+ {
+ "group": "Invent",
+ "pages": [
+ "admin/invent"
+ ]
+ },
{
"group": "Organization & Project Management",
"pages": [
@@ -547,7 +589,15 @@
"admin/system-limits"
]
}
- ]
+ ],
+ "global": {
+ "anchors": [
+ {
+ "anchor": "Use Invent",
+ "href": "/admin/invent"
+ }
+ ]
+ }
},
{
"tab": "Enterprise",
@@ -559,6 +609,12 @@
"enterprise/org-structure-best-practices"
]
},
+ {
+ "group": "Invent",
+ "pages": [
+ "enterprise/invent"
+ ]
+ },
{
"group": "Access & Identity",
"pages": [
@@ -591,7 +647,15 @@
"enterprise/data-retention"
]
}
- ]
+ ],
+ "global": {
+ "anchors": [
+ {
+ "anchor": "Use Invent",
+ "href": "/enterprise/invent"
+ }
+ ]
+ }
},
{
"tab": "Guides",
@@ -602,6 +666,12 @@
"guides"
]
},
+ {
+ "group": "Invent",
+ "pages": [
+ "guides/invent"
+ ]
+ },
{
"group": "Sales",
"pages": [
@@ -689,7 +759,15 @@
}
]
}
- ]
+ ],
+ "global": {
+ "anchors": [
+ {
+ "anchor": "Use Invent",
+ "href": "/guides/invent"
+ }
+ ]
+ }
}
]
},
diff --git a/enterprise/invent.mdx b/enterprise/invent.mdx
new file mode 100644
index 00000000..494ad088
--- /dev/null
+++ b/enterprise/invent.mdx
@@ -0,0 +1,7 @@
+---
+title: "Use Invent"
+sidebarTitle: "Use Invent"
+description: "Meet your personal forward deployed agent built into Relevance AI."
+---
+
+
diff --git a/get-started/invent.mdx b/get-started/invent.mdx
new file mode 100644
index 00000000..494ad088
--- /dev/null
+++ b/get-started/invent.mdx
@@ -0,0 +1,7 @@
+---
+title: "Use Invent"
+sidebarTitle: "Use Invent"
+description: "Meet your personal forward deployed agent built into Relevance AI."
+---
+
+
diff --git a/guides/invent.mdx b/guides/invent.mdx
new file mode 100644
index 00000000..494ad088
--- /dev/null
+++ b/guides/invent.mdx
@@ -0,0 +1,7 @@
+---
+title: "Use Invent"
+sidebarTitle: "Use Invent"
+description: "Meet your personal forward deployed agent built into Relevance AI."
+---
+
+
diff --git a/images/invent-panel.png b/images/invent-panel.png
new file mode 100644
index 00000000..ef754578
Binary files /dev/null and b/images/invent-panel.png differ
diff --git a/integrations/invent.mdx b/integrations/invent.mdx
new file mode 100644
index 00000000..494ad088
--- /dev/null
+++ b/integrations/invent.mdx
@@ -0,0 +1,7 @@
+---
+title: "Use Invent"
+sidebarTitle: "Use Invent"
+description: "Meet your personal forward deployed agent built into Relevance AI."
+---
+
+
diff --git a/invent-callout.js b/invent-callout.js
index ab1ca8d6..532e2d9d 100644
--- a/invent-callout.js
+++ b/invent-callout.js
@@ -1,5 +1,7 @@
-// Blobby — the live Invent badge inside .invent-callout bubbles.
-// Auto-loaded by Mintlify on every page; no-ops on pages without a bubble.
+// Blobby — the live Invent badge. Two placements:
+// .invent-callout the bubble; he sits at its left edge
+// the sidebar the Invent-themed nav rows named in NAV_ROWS
+// Auto-loaded by Mintlify on every page; no-ops where neither applies.
//
// Ported from the product's useInventorEyes / InventorBuddyEyes so the eyes
// behave the same here as they do in-app: they follow the cursor across the
@@ -10,6 +12,24 @@
(function () {
var SEAL_SRC = "/images/invent-blobby-seal.svg";
+ // Nav rows styled as Invent buttons in style.css — he sits fixed in the
+ // right-hand corner. Each tab declares its own anchor (docs.json → the
+ // tab's global.anchors), pointing at that tab's Invent page. They all
+ // end in /invent, which is what this matches.
+ var NAV_ROWS = ['a.nav-anchor[href$="/invent"]'];
+
+ // The mobile drawer renders its own copy of the sidebar, so collect every
+ // match rather than the first.
+ function navRows() {
+ var rows = [];
+ NAV_ROWS.forEach(function (selector) {
+ document.querySelectorAll(selector).forEach(function (row) {
+ rows.push(row);
+ });
+ });
+ return rows;
+ }
+
// Eye travel limit, in viewBox units of the 2.4→45.6 badge.
var MAX_EYE_TRAVEL = 2.6;
var GAZE_DEADZONE_PX = 6;
@@ -66,7 +86,7 @@
var instance = 0;
- function buildBadge(bubble, seal) {
+ function buildBadge(seal) {
// Gradient ids are namespaced per badge so two bubbles on one page don't
// collide on the same defs.
var id = "ib" + ++instance;
@@ -95,12 +115,12 @@
"" +
"";
- bubble.insertBefore(link, bubble.firstChild);
- bubble.classList.add("has-blobby");
return link;
}
- function animate(link) {
+ // hoverTarget is what plays the ^ ^ greeting: the whole bubble, or the
+ // whole title when he's sitting in one.
+ function animate(link, hoverTarget) {
var shift = link.querySelector(".invent-blobby-shift");
var eyes = link.querySelector(".invent-blobby-eyes");
var smile = link.querySelector(".invent-blobby-smile");
@@ -141,7 +161,7 @@
// The ^ ^ greeting: plays once per hover of the whole bubble, then the
// eyes reopen on their own even if the pointer never leaves.
var happyTimer = null;
- link.closest(".invent-callout").addEventListener("mouseenter", function () {
+ hoverTarget.addEventListener("mouseenter", function () {
eyes.classList.add("is-happy");
smile.classList.add("is-happy");
if (happyTimer) clearTimeout(happyTimer);
@@ -178,15 +198,36 @@
requestAnimationFrame(update);
}
+ function mountBubbles(seal) {
+ document.querySelectorAll(".invent-callout:not(.has-blobby)").forEach(function (bubble) {
+ if (bubble.classList.contains("has-blobby")) return;
+ var link = buildBadge(seal);
+ bubble.insertBefore(link, bubble.firstChild);
+ bubble.classList.add("has-blobby");
+ animate(link, bubble);
+ });
+ }
+
+ function mountNav(seal) {
+ navRows().forEach(function (row) {
+ if (row.classList.contains("has-blobby")) return;
+ var link = buildBadge(seal);
+ link.classList.add("invent-blobby--nav");
+ row.appendChild(link);
+ row.classList.add("has-blobby");
+ // The greeting plays on the whole row, not just on him.
+ animate(link, row);
+ });
+ }
+
function mount() {
- var bubbles = document.querySelectorAll(".invent-callout:not(.has-blobby)");
- if (!bubbles.length) return;
+ var wanted =
+ document.querySelector(".invent-callout:not(.has-blobby)") || navRows().length;
+ if (!wanted) return;
loadSeal().then(function (seal) {
if (!seal) return;
- bubbles.forEach(function (bubble) {
- if (bubble.classList.contains("has-blobby")) return;
- animate(buildBadge(bubble, seal));
- });
+ mountBubbles(seal);
+ mountNav(seal);
});
}
diff --git a/style.css b/style.css
index 5dbb4eba..7b09232a 100644
--- a/style.css
+++ b/style.css
@@ -555,3 +555,230 @@ div#content-side-layout {
transition: none;
}
}
+
+/* =========================================================
+ "Build with Invent" — the Invent-themed row that sits above every
+ tab's groups. It is a global nav anchor, not a page in any tab:
+ Mintlify points a tab at its first page, so listing this page first
+ in each tab made all six tabs link to it and tab navigation died.
+ The anchor lives in docs.json under navigation.global.anchors.
+
+ Styled to read as one of the app's buttons rather than a nav link,
+ on the product's own tokens: brand #685FFF, hover #4D40EC, pressed
+ #321AD5, and the elevation-bulge shadow (0 2px 3px -1px + a 1px
+ inset ring).
+
+ Deliberately NOT a brand tint: Mintlify marks the page you are on
+ with bg-primary/10 + text-primary in a rounded pill, and a tinted
+ fill here read as a second active page. So this one carries a plain
+ surface with a hairline ring — emphasis by edge and elevation, which
+ the active row never uses.
+
+ Blobby sits fixed in the right-hand corner at full colour — only
+ his eyes move, tracking the cursor. The live badge
+ (.invent-blobby--nav) is mounted by /invent-callout.js; ::after is
+ the no-JS fallback, same geometry, minus the eyes.
+ ========================================================= */
+
+/* Each tab's Invent page needs a home in that tab's groups — without one
+ Mintlify can't tell which tab you're on while you're reading it, and the
+ tab's own anchor (the pill) doesn't render at all. `hidden: true` on the
+ group hides it from that resolution too, so the groups stay visible in
+ docs.json and their headings and rows are dropped here instead.
+
+ Every one of those pages is named `invent`, which is what the $= hooks
+ below match; the pill is a nav anchor, not one of these rows, so it is
+ untouched. Name a new one to that convention and it needs no CSS. */
+.sidebar-group-header:has(+ ul.sidebar-group li[id$="/invent"]),
+li[id$="/invent"] {
+ display: none;
+}
+
+/* The tab's own anchor renders ahead of the shared ones (Community,
+ Contact Support, JavaScript SDK, Changelog), which left four links
+ between the pill and the first group. They all share one , so a
+ flex column reorders it to last — flush against the group below. */
+#navigation-items > ul:has(> li > a.nav-anchor[href$="/invent"]) {
+ display: flex;
+ flex-direction: column;
+}
+
+#navigation-items > ul > li:has(> a.nav-anchor[href$="/invent"]) {
+ order: 1;
+}
+
+a.nav-anchor[href$="/invent"] {
+ /* Slight overshoot, so the row's lift settles rather than stops. */
+ --invent-pop: cubic-bezier(0.34, 1.46, 0.58, 1);
+
+ position: relative;
+ /* Keeps the gradient layers inside the corner radius. */
+ overflow: hidden;
+ /* Drops Mintlify's ml-4 so the pill starts at the rail edge and lines
+ up with the page rows below, and leaves him his corner on the
+ right so a long label never runs underneath. */
+ margin-left: 0;
+ /* Mintlify only gives the anchors a bottom margin, which left the pill
+ crowding the link above it. Inside the flex column above, margins no
+ longer collapse — they add — so 1rem on top of Changelog's mb-4 is
+ the ~2rem gap. The matching gap below is the first group's own mt-8,
+ which is why this row gives up its own bottom margin. */
+ margin-top: 1rem;
+ margin-bottom: 0;
+ padding: 0.375rem 1rem;
+ border-radius: 0.875rem;
+ font-weight: 600;
+ color: #4D40EC;
+ background: #FFFFFF;
+ box-shadow:
+ 0 2px 3px -1px rgba(13, 0, 26, 0.05),
+ 0 0 0 1px rgba(104, 95, 255, 0.22) inset;
+ transition:
+ background 260ms ease,
+ box-shadow 260ms ease,
+ color 180ms ease,
+ transform 260ms var(--invent-pop);
+}
+
+/* The other global anchors lead with a boxed icon. Blobby is this
+ row's mark, so the default one goes. */
+a.nav-anchor[href$="/invent"] > div:first-child {
+ display: none;
+}
+
+/* "New" badge. The schema has no tag/badge property on an anchor — only on
+ groups and versions — so the row grows its own.
+
+ It has to be ::before: ::after is already the no-JS Blobby fallback. The
+ label is a bare text node, which makes it an anonymous flex item at order
+ 0, so order:1 lands the badge after the words rather than in front of the
+ icon slot. Shortening the label to "Use Invent" is what made room for it
+ inside the padding Blobby reserves on the right. */
+a.nav-anchor[href$="/invent"]::before {
+ content: 'New';
+ /* Last in the row, pushed to the far edge by the auto margin — Blobby has
+ the spot beside the label. */
+ order: 2;
+ flex-shrink: 0;
+ margin-left: auto;
+ padding: 0.0625rem 0.375rem;
+ border-radius: 9999px;
+ background: rgba(104, 95, 255, 0.12);
+ color: #4D40EC;
+ font-size: 0.625rem;
+ font-weight: 600;
+ line-height: 1rem;
+ letter-spacing: 0.01em;
+}
+
+.dark a.nav-anchor[href$="/invent"]::before {
+ background: rgba(165, 180, 252, 0.18);
+ color: #C4B5FD;
+}
+
+/* Hover washes the surface faintly, firms the ring, and lifts the row a
+ single pixel — a button's response, not a page highlight. */
+a.nav-anchor[href$="/invent"]:hover {
+ color: #321AD5;
+ background:
+ linear-gradient(135deg, rgba(104, 95, 255, 0.06), rgba(104, 95, 255, 0.03)),
+ #FFFFFF;
+ box-shadow:
+ 0 4px 10px -7px rgba(104, 95, 255, 0.32),
+ 0 0 0 1px rgba(104, 95, 255, 0.34) inset;
+ transform: translateY(-1px);
+}
+
+/* Pressed: back down, the way the app's buttons settle. */
+a.nav-anchor[href$="/invent"]:active {
+ transform: translateY(0);
+ box-shadow:
+ 0 2px 3px -1px rgba(13, 0, 26, 0.05),
+ 0 0 0 1px rgba(104, 95, 255, 0.38) inset;
+}
+
+.dark a.nav-anchor[href$="/invent"] {
+ color: #C4B5FD;
+ background: rgba(255, 255, 255, 0.045);
+ box-shadow:
+ 0 2px 3px -1px rgba(0, 0, 0, 0.3),
+ 0 0 0 1px rgba(165, 180, 252, 0.2) inset;
+}
+
+.dark a.nav-anchor[href$="/invent"]:hover {
+ color: #EDE9FE;
+ background:
+ linear-gradient(135deg, rgba(104, 95, 255, 0.16), rgba(104, 95, 255, 0.09)),
+ rgba(255, 255, 255, 0.05);
+ box-shadow:
+ 0 4px 10px -7px rgba(104, 95, 255, 0.42),
+ 0 0 0 1px rgba(165, 180, 252, 0.3) inset;
+}
+
+/* Selected: you are on the Invent page. Held rather than hovering — a
+ firmer version of the hover wash, the ring at full strength, and no lift,
+ because this is where you are rather than somewhere to go. It outranks the
+ hover rules above, so the row stops responding to the pointer once you are
+ already there.
+
+ Hooked off Mintlify's own aria-current on the matching sidebar row rather
+ than off the page's title, so renaming the page can't quietly break it.
+ The row only renders on the Build tab, which is the only tab the page
+ lives in — so this can't light up anywhere else. */
+body:has(li[id$="/invent"] a[aria-current="page"]) a.nav-anchor[href$="/invent"] {
+ color: #321AD5;
+ background:
+ linear-gradient(135deg, rgba(104, 95, 255, 0.14), rgba(104, 95, 255, 0.08)),
+ #FFFFFF;
+ box-shadow:
+ 0 2px 3px -1px rgba(13, 0, 26, 0.05),
+ 0 0 0 1px rgba(104, 95, 255, 0.45) inset;
+ transform: none;
+}
+
+.dark body:has(li[id$="/invent"] a[aria-current="page"]) a.nav-anchor[href$="/invent"] {
+ color: #EDE9FE;
+ background:
+ linear-gradient(135deg, rgba(104, 95, 255, 0.22), rgba(104, 95, 255, 0.13)),
+ rgba(255, 255, 255, 0.05);
+ box-shadow:
+ 0 2px 3px -1px rgba(0, 0, 0, 0.3),
+ 0 0 0 1px rgba(165, 180, 252, 0.4) inset;
+ transform: none;
+}
+
+/* One geometry for the live badge and the no-JS fallback. He walks beside
+ the label rather than sitting pinned in the corner, so he is in the flex
+ flow here — unlike in the callout bubble, where he is absolute. */
+a.nav-anchor[href$="/invent"] .invent-blobby--nav,
+a.nav-anchor[href$="/invent"]::after {
+ position: static;
+ order: 1;
+ flex-shrink: 0;
+ width: 1.375rem;
+ height: 1.375rem;
+ margin: 0 0 0 0.5rem;
+}
+
+a.nav-anchor[href$="/invent"]::after {
+ content: '';
+ background-image: url("/images/invent-blobby.svg");
+ background-size: contain;
+ background-repeat: no-repeat;
+}
+
+a.nav-anchor[href$="/invent"].has-blobby::after {
+ display: none;
+}
+
+/* He is decorative; the whole row is the link. */
+a.nav-anchor[href$="/invent"] .invent-blobby--nav {
+ cursor: inherit;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ a.nav-anchor[href$="/invent"] {
+ transition: none;
+ transform: none;
+ }
+}