diff --git a/packages/web-ui/src/dialogs/ModelSelector.ts b/packages/web-ui/src/dialogs/ModelSelector.ts
index f608120..ade5c8f 100644
--- a/packages/web-ui/src/dialogs/ModelSelector.ts
+++ b/packages/web-ui/src/dialogs/ModelSelector.ts
@@ -246,6 +246,9 @@ export class ModelSelector extends DialogBase {
if (this.filterVision) {
filteredModels = filteredModels.filter(({ model }) => model.input.includes("image"));
}
+ if (this.filterProvider) {
+ filteredModels = filteredModels.filter(({ provider }) => provider === this.filterProvider);
+ }
// Sort: when not searching, current model first then by provider.
// When searching, preserve the score-based order from above,
@@ -376,7 +379,9 @@ export class ModelSelector extends DialogBase {
children: html`${icon(ImageIcon, "sm")} ${i18n("Vision")}`,
})}
-
+
+ ${this.renderProviderTabs()}
+
diff --git a/packages/web-ui/src/index.ts b/packages/web-ui/src/index.ts
index 952b15d..b3c18b3 100644
--- a/packages/web-ui/src/index.ts
+++ b/packages/web-ui/src/index.ts
@@ -118,6 +118,7 @@ export type { ToolRenderer, ToolRenderResult } from "./tools/types.js";
export { createTTSTool, ttsTool } from "./tools/voice-tts.js";
// Venice / community tools
export { createWebSearchTool, webSearchTool } from "./tools/web-search.js";
+export { createMemoryTools, saveMemoryTool, recallMemoryTool } from "./tools/memory-tool.js";
export type { Attachment } from "./utils/attachment-utils.js";
// Utils
export { loadAttachment } from "./utils/attachment-utils.js";
diff --git a/packages/web-ui/src/tools/index.ts b/packages/web-ui/src/tools/index.ts
index a9b727d..8cb94bd 100644
--- a/packages/web-ui/src/tools/index.ts
+++ b/packages/web-ui/src/tools/index.ts
@@ -1,6 +1,7 @@
import type { ToolResultMessage } from "@jaeswift/jae-ai";
import "./javascript-repl.js"; // Auto-registers the renderer
-import "./extract-document.js"; // Auto-registers the renderer
+import "./extract-document.js";
+import "./memory-tool.js"; // Auto-registers the renderer
import { getToolRenderer, registerToolRenderer } from "./renderer-registry.js";
import { BashRenderer } from "./renderers/BashRenderer.js";
import { DefaultRenderer } from "./renderers/DefaultRenderer.js";
@@ -48,3 +49,4 @@ export { getToolRenderer, registerToolRenderer };
export { createImageGenTool, type ImageGenDetails, imageGenTool } from "./image-gen.js";
export { createTTSTool, type TTSDetails, ttsTool } from "./voice-tts.js";
export { createWebSearchTool, type WebSearchDetails, type WebSearchResult, webSearchTool } from "./web-search.js";
+export { createMemoryTools, saveMemoryTool, recallMemoryTool } from "./memory-tool.js";