add switch mode tool

This commit is contained in:
duanfuxiang
2025-03-17 09:12:49 +08:00
parent 9a5e5f3880
commit 4aa321dffc
14 changed files with 264 additions and 84 deletions

View File

@@ -16,7 +16,7 @@ import {
MentionableVault
} from '../types/mentionable'
import { InfioSettings } from '../types/settings'
import { defaultModeSlug, getFullModeDetails } from "../utils/modes"
import { Mode, defaultModeSlug, getFullModeDetails, getModeBySlug } from "../utils/modes"
import {
readTFileContent
@@ -157,8 +157,8 @@ export class PromptGenerator {
similaritySearchResults,
},
]
const systemMessage = await this.getSystemMessageNew()
console.log('this.settings.mode', this.settings.mode)
const systemMessage = await this.getSystemMessageNew(this.settings.mode)
const requestMessages: RequestMessage[] = [
systemMessage,
@@ -225,7 +225,7 @@ export class PromptGenerator {
details += `\n\n# Current Time\n${formatter.format(now)} (${timeZone}, UTC${timeZoneOffsetStr})`
// Add current mode details
const currentMode = defaultModeSlug
const currentMode = this.settings.mode
const modeDetails = await getFullModeDetails(currentMode)
details += `\n\n# Current Mode\n`
details += `<slug>${currentMode}</slug>\n`
@@ -446,8 +446,8 @@ export class PromptGenerator {
}
}
private async getSystemMessageNew(): Promise<RequestMessage> {
const systemPrompt = await SYSTEM_PROMPT(this.app.vault.getRoot().path, false)
private async getSystemMessageNew(mode: Mode): Promise<RequestMessage> {
const systemPrompt = await SYSTEM_PROMPT(this.app.vault.getRoot().path, false, mode)
return {
role: 'system',