andy-stack_vaultkeeper-ai/Services/ServiceRegistration.ts
Andrew Beal 7efdac24cf Remove deprecated CSS files and enhance markdown processing service
- Deleted highlight-default.min.css, katex.min.css, and markdown.css as they are no longer needed.
- Implemented StreamingMarkdownService for improved markdown processing with support for math and syntax highlighting.
- Added StreamingService for handling streaming requests to the Gemini API with error handling and chunk parsing.
- Introduced styles_old.css for enhanced code block styling and better readability.
2025-09-26 20:48:05 +01:00

37 lines
No EOL
1.8 KiB
TypeScript

import { AIProvider } from "Enums/ApiProvider";
import type DmsAssistantPlugin from "main";
import { OdbCache } from "ODB/Core/OdbCache";
import { RegisterSingleton, RegisterTransient } from "./DependencyService";
import { ModalService } from "./ModalService";
import { Services } from "./Services";
import { AIPrompt, type IPrompt } from "AIClasses/IPrompt";
import { Actioner } from "Actioner/Actioner";
import type { IActioner } from "Actioner/IActioner";
import type { IAIClass } from "AIClasses/IAIClass";
import { GeminiActionDefinitions } from "Actioner/Gemini/GeminiActionDefinitions";
import type { IActionDefinitions } from "Actioner/IActionDefinitions";
import { Gemini, type IAIClassStreaming } from "AIClasses/Gemini/Gemini";
import { MarkdownService } from "./MarkdownService";
import { StreamingMarkdownService } from "./StreamingMarkdownService";
export function RegisterDependencies(plugin: DmsAssistantPlugin) {
RegisterSingleton(Services.DmsAssistantPlugin, plugin);
RegisterSingleton(Services.OdbCache, new OdbCache());
RegisterSingleton(Services.ModalService, new ModalService())
RegisterSingleton<IPrompt>(Services.IPrompt, new AIPrompt());
RegisterSingleton<IActioner>(Services.IActioner, new Actioner());
RegisterTransient<MarkdownService>(Services.MarkdownService, () => new MarkdownService());
RegisterTransient<StreamingMarkdownService>(Services.StreamingMarkdownService, () => new StreamingMarkdownService());
RegisterAiProvider(plugin);
}
export function RegisterAiProvider(plugin: DmsAssistantPlugin) {
if (plugin.settings.apiProvider == AIProvider.Gemini && plugin.settings.apiKey != "") {
RegisterTransient<IActionDefinitions>(Services.IActionDefinitions, () => new GeminiActionDefinitions());
RegisterSingleton<IAIClass>(Services.IAIClass, new Gemini(plugin.settings.apiKey));
}
}