mirror of
https://github.com/andy-stack/vaultkeeper-ai.git
synced 2026-07-22 06:42:03 +00:00
Refactor plugin to replace DmsAssistant with AIAgent, updating imports, services, and manifest files accordingly
This commit is contained in:
parent
ac70bc2f6f
commit
370c5d54bb
12 changed files with 34 additions and 35 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import type DmsAssistantPlugin from "main";
|
||||
import type AIAgentPlugin from "main";
|
||||
import type { Vault } from "obsidian";
|
||||
import { Resolve } from "Services/DependencyService";
|
||||
import { Services } from "Services/Services";
|
||||
|
|
@ -15,7 +15,7 @@ export class AIPrompt implements IPrompt {
|
|||
private vault: Vault;
|
||||
|
||||
public constructor() {
|
||||
this.vault = Resolve<DmsAssistantPlugin>(Services.DmsAssistantPlugin).app.vault;
|
||||
this.vault = Resolve<AIAgentPlugin>(Services.AIAgentPlugin).app.vault;
|
||||
}
|
||||
|
||||
public getDirectories(): string {
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@ import type { IActioner } from "./IActioner";
|
|||
import type { Vault } from "obsidian";
|
||||
import { Resolve } from "Services/DependencyService";
|
||||
import { Services } from "Services/Services";
|
||||
import type DmsAssistantPlugin from "main";
|
||||
import type AIAgentPlugin from "main";
|
||||
|
||||
export class Actioner implements IActioner {
|
||||
|
||||
private vault: Vault;
|
||||
|
||||
public constructor() {
|
||||
this.vault = Resolve<DmsAssistantPlugin>(Services.DmsAssistantPlugin).app.vault;
|
||||
this.vault = Resolve<AIAgentPlugin>(Services.AIAgentPlugin).app.vault;
|
||||
}
|
||||
|
||||
public async [create_file](action: CreateFileRequest) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
export enum Path {
|
||||
Root = "DM's Assistant",
|
||||
Schemas = "DM's Assistant/Schemas",
|
||||
Records = "DM's Assistant/Records"
|
||||
Root = "AI Agent",
|
||||
Schemas = "AI Agent/Schemas",
|
||||
Records = "AI Agent/Records"
|
||||
};
|
||||
|
|
@ -4,7 +4,7 @@ import { validate as uuidValidate } from 'uuid';
|
|||
import type { OdbCache } from './OdbCache';
|
||||
import { Resolve } from 'Services/DependencyService';
|
||||
import { Services } from 'Services/Services';
|
||||
import type DmsAssistantPlugin from 'main';
|
||||
import type AIAgentPlugin from 'main';
|
||||
import { TAbstractFile, TFile, type Vault } from 'obsidian';
|
||||
|
||||
interface DynamicProps {
|
||||
|
|
@ -25,7 +25,7 @@ export class DynamicRecord {
|
|||
|
||||
public constructor(recordPath: string, schema: object, record: { [key: string]: any }) {
|
||||
this.odbCache = Resolve<OdbCache>(Services.OdbCache);
|
||||
this.vault = Resolve<DmsAssistantPlugin>(Services.DmsAssistantPlugin).app.vault;
|
||||
this.vault = Resolve<AIAgentPlugin>(Services.AIAgentPlugin).app.vault;
|
||||
|
||||
this.schema = schema;
|
||||
this.recordPath = recordPath;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { TAbstractFile, TFile, TFolder, Vault } from "obsidian";
|
||||
import { DynamicRecord } from "./DynamicRecord";
|
||||
import { Resolve } from "Services/DependencyService";
|
||||
import type DmsAssistantPlugin from "main";
|
||||
import type AIAgentPlugin from "main";
|
||||
import { Services } from "Services/Services";
|
||||
import { Path } from "Enums/Path";
|
||||
import { DynamicRecordProp } from "Enums/DynamicRecord";
|
||||
|
|
@ -16,7 +16,7 @@ export class OdbCache {
|
|||
private cache: Map<string, DynamicRecord> = new Map<string, DynamicRecord>();
|
||||
|
||||
public constructor() {
|
||||
this.vault = Resolve<DmsAssistantPlugin>(Services.DmsAssistantPlugin).app.vault;
|
||||
this.vault = Resolve<AIAgentPlugin>(Services.AIAgentPlugin).app.vault;
|
||||
}
|
||||
|
||||
public getSchemas(): Map<string, object> {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import type DmsAssistantPlugin from "main";
|
||||
import type AIAgentPlugin from "main";
|
||||
import { TAbstractFile, TFile, type Vault } from "obsidian";
|
||||
import { Resolve } from "./DependencyService";
|
||||
import { Services } from "./Services";
|
||||
|
|
@ -9,7 +9,7 @@ export class FileSystemService {
|
|||
private vault: Vault;
|
||||
|
||||
public constructor() {
|
||||
this.vault = Resolve<DmsAssistantPlugin>(Services.DmsAssistantPlugin).app.vault;
|
||||
this.vault = Resolve<AIAgentPlugin>(Services.AIAgentPlugin).app.vault;
|
||||
}
|
||||
|
||||
public async readObjectFromFile(filePath: string): Promise<object | null> {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { AIProvider } from "Enums/ApiProvider";
|
||||
import type DmsAssistantPlugin from "main";
|
||||
import type AIAgentPlugin from "main";
|
||||
import { OdbCache } from "ODB/Core/OdbCache";
|
||||
import { RegisterSingleton, RegisterTransient } from "./DependencyService";
|
||||
import { ModalService } from "./ModalService";
|
||||
|
|
@ -16,9 +16,9 @@ import { MessageService } from "./MessageService";
|
|||
import { FileSystemService } from "./FileSystemService";
|
||||
import { ConversationFileSystemService } from "./ConversationFileSystemService";
|
||||
|
||||
export function RegisterDependencies(plugin: DmsAssistantPlugin) {
|
||||
export function RegisterDependencies(plugin: AIAgentPlugin) {
|
||||
RegisterSingleton(Services.MessageService, new MessageService());
|
||||
RegisterSingleton(Services.DmsAssistantPlugin, plugin);
|
||||
RegisterSingleton(Services.AIAgentPlugin, plugin);
|
||||
RegisterSingleton(Services.OdbCache, new OdbCache());
|
||||
RegisterSingleton(Services.ModalService, new ModalService())
|
||||
RegisterSingleton(Services.FileSystemService, new FileSystemService());
|
||||
|
|
@ -32,7 +32,7 @@ export function RegisterDependencies(plugin: DmsAssistantPlugin) {
|
|||
RegisterAiProvider(plugin);
|
||||
}
|
||||
|
||||
export function RegisterAiProvider(plugin: DmsAssistantPlugin) {
|
||||
export function RegisterAiProvider(plugin: AIAgentPlugin) {
|
||||
if (plugin.settings.apiProvider == AIProvider.Gemini && plugin.settings.apiKey != "") {
|
||||
RegisterTransient<IActionDefinitions>(Services.IActionDefinitions, () => new GeminiActionDefinitions());
|
||||
RegisterSingleton<IAIClass>(Services.IAIClass, new Gemini(plugin.settings.apiKey));
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
export class Services {
|
||||
static MessageService = Symbol("MessageService");
|
||||
static DmsAssistantPlugin = Symbol("DmsAssistantPlugin");
|
||||
static AIAgentPlugin = Symbol("AIAgentPlugin");
|
||||
static OdbCache = Symbol("OdbCache");
|
||||
static ModalService = Symbol("ModalService");
|
||||
static FileSystemService = Symbol("FileSystemService");
|
||||
|
|
|
|||
19
main.ts
19
main.ts
|
|
@ -8,20 +8,19 @@ import { OdbCache } from 'ODB/Core/OdbCache';
|
|||
import { FileAction } from 'Enums/FileAction';
|
||||
import { Path } from 'Enums/Path';
|
||||
import { RegisterAiProvider, RegisterDependencies } from 'Services/ServiceRegistration';
|
||||
import { loadExternalCSS } from 'Helpers/Helpers';
|
||||
|
||||
interface DmsAssistantSettings {
|
||||
interface AIAgentSettings {
|
||||
apiProvider: string;
|
||||
apiKey: string;
|
||||
}
|
||||
|
||||
const DEFAULT_SETTINGS: DmsAssistantSettings = {
|
||||
const DEFAULT_SETTINGS: AIAgentSettings = {
|
||||
apiProvider: AIProvider.Gemini,
|
||||
apiKey: ""
|
||||
}
|
||||
|
||||
export default class DmsAssistantPlugin extends Plugin {
|
||||
settings: DmsAssistantSettings;
|
||||
export default class AIAgentPlugin extends Plugin {
|
||||
settings: AIAgentSettings;
|
||||
|
||||
async onload() {
|
||||
const script = document.createElement('script');
|
||||
|
|
@ -83,7 +82,7 @@ export default class DmsAssistantPlugin extends Plugin {
|
|||
});
|
||||
|
||||
// This adds a settings tab so the user can configure various aspects of the plugin
|
||||
this.addSettingTab(new DmsAssistantSettingTab(this.app, this));
|
||||
this.addSettingTab(new AIAgentSettingTab(this.app, this));
|
||||
|
||||
// If the plugin hooks up any global DOM events (on parts of the app that doesn't belong to this plugin)
|
||||
// Using this function will automatically remove the event listener when this plugin is disabled.
|
||||
|
|
@ -163,10 +162,10 @@ class SampleModal extends Modal {
|
|||
}
|
||||
}
|
||||
|
||||
class DmsAssistantSettingTab extends PluginSettingTab {
|
||||
plugin: DmsAssistantPlugin;
|
||||
class AIAgentSettingTab extends PluginSettingTab {
|
||||
plugin: AIAgentPlugin;
|
||||
|
||||
constructor(app: App, plugin: DmsAssistantPlugin) {
|
||||
constructor(app: App, plugin: AIAgentPlugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
|
@ -203,7 +202,7 @@ class DmsAssistantSettingTab extends PluginSettingTab {
|
|||
}
|
||||
}
|
||||
|
||||
function CreateDirectories(plugin: DmsAssistantPlugin) {
|
||||
function CreateDirectories(plugin: AIAgentPlugin) {
|
||||
this.app.workspace.onLayoutReady(async () => {
|
||||
const vault = plugin.app.vault;
|
||||
if (vault.getAbstractFileByPath(Path.Root) == null) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"id": "dms_assistant",
|
||||
"name": "DM's Assistant",
|
||||
"id": "ai_agent",
|
||||
"name": "AI Agent",
|
||||
"version": "1.0.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "AI powered Dungeon Master's assistant.",
|
||||
"description": "AI powered agent assistant.",
|
||||
"author": "Obsidian",
|
||||
"authorUrl": "https://obsidian.md",
|
||||
"fundingUrl": "https://obsidian.md/pricing",
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"name": "dms_assistant",
|
||||
"name": "ai_agent",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "dms_assistant",
|
||||
"name": "ai_agent",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "dms_assistant",
|
||||
"name": "ai_agent",
|
||||
"version": "1.0.0",
|
||||
"description": "AI powered Dungeon Master's assistant.",
|
||||
"description": "AI powered agent assistant.",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"dev": "node esbuild.config.mjs",
|
||||
|
|
|
|||
Loading…
Reference in a new issue