Skip to content

Commit 470913b

Browse files
committed
Pass CI and add FireFox
1 parent 49a968e commit 470913b

2 files changed

Lines changed: 28 additions & 3 deletions

File tree

dashboard/src/routes/integrations/+page.svelte

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import { instances, refreshState } from "$lib/stores/app.svelte";
77
import { onMount } from "svelte";
88
9-
const apiUrl = browser ? window.location.origin.replace("localhost", "127.0.0.1") : "http://127.0.0.1:52415";
9+
const apiUrl = browser
10+
? window.location.origin.replace("localhost", "127.0.0.1")
11+
: "http://127.0.0.1:52415";
1012
1113
const instancesData = $derived(instances());
1214
@@ -195,7 +197,9 @@
195197
{
196198
id: openClawModel,
197199
name: "exo local",
198-
input: (modelCapabilities[openClawModel] || []).includes("vision")
200+
input: (modelCapabilities[openClawModel] || []).includes(
201+
"vision",
202+
)
199203
? ["text", "image"]
200204
: ["text"],
201205
},
@@ -259,13 +263,23 @@
259263
].join("\n"),
260264
);
261265
266+
const firefoxConfig = $derived(
267+
[
268+
`1. Open about:config in Firefox`,
269+
`2. Set browser.ml.chat.enabled to true`,
270+
`3. Set browser.ml.chat.hideLocalhost to false`,
271+
`4. Set browser.ml.chat.provider to: ${apiUrl}/`,
272+
].join("\n"),
273+
);
274+
262275
const tabs = [
263276
"Claude Code",
264277
"OpenCode",
265278
"Codex",
266279
"OpenClaw",
267280
"Open WebUI",
268281
"n8n",
282+
"Firefox",
269283
] as const;
270284
type Tab = (typeof tabs)[number];
271285
const stored = browser ? localStorage.getItem("exo-integrations-tab") : null;
@@ -477,7 +491,10 @@
477491
{:else if activeTab === "OpenClaw"}
478492
{#if runningModels.length > 1}
479493
<div class="text-xs">
480-
<span class="text-exo-light-gray/50 text-[10px] uppercase tracking-wider block mb-1">Model</span>
494+
<span
495+
class="text-exo-light-gray/50 text-[10px] uppercase tracking-wider block mb-1"
496+
>Model</span
497+
>
481498
<select bind:value={openClawModel} class={selectClass}>
482499
{#each runningModels as model}
483500
<option value={model}>{model.split("/").pop()}</option>
@@ -547,6 +564,13 @@
547564
description="Create a workflow that uses your exo-powered model."
548565
config={n8nWorkflowSteps}
549566
/>
567+
{:else if activeTab === "Firefox"}
568+
<IntegrationCard
569+
title="Firefox AI Chatbot"
570+
subtitle="about:config"
571+
description="Use the exo dashboard as Firefox's built-in AI chatbot. Requires Firefox 130+."
572+
config={firefoxConfig}
573+
/>
550574
{/if}
551575
</div>
552576
</main>

src/exo/shared/models/model_cards.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ class ConfigData(BaseModel):
242242
"decoder_layers",
243243
)
244244
)
245+
max_position_embeddings: int = 0
245246
vision: VisionCardConfig | None = None
246247

247248
@property

0 commit comments

Comments
 (0)