package shared import ( "embed" "io/fs" "gitea.maximumdirect.net/eric/notarius/internal/framework/llm" "gitea.maximumdirect.net/eric/notarius/internal/framework/promptfs" ) //go:embed assets/prompts/*.md var embeddedAssets embed.FS var sharedPromptFiles = []string{ "common-dnd-system.md", "common-dnd-transcript.md", "common-dnd-references.md", "common-dnd-npcs.md", } func SharedPromptFiles() []promptfs.SharedPromptFile { files := make([]promptfs.SharedPromptFile, 0, len(sharedPromptFiles)) for _, name := range sharedPromptFiles { files = append(files, promptfs.SharedPromptFile{ Name: name, FS: embeddedAssets, Path: "assets/prompts/" + name, }) } return files } func CommonHashParts() []llm.AssetHashPart { return []llm.AssetHashPart{ {FS: embeddedAssets, Path: "assets/prompts/common-dnd-system.md"}, {FS: embeddedAssets, Path: "assets/prompts/common-dnd-transcript.md"}, } } func ReferenceHashParts() []llm.AssetHashPart { return []llm.AssetHashPart{ {FS: embeddedAssets, Path: "assets/prompts/common-dnd-references.md"}, {FS: embeddedAssets, Path: "assets/prompts/common-dnd-npcs.md"}, } } func ModulePromptFS(moduleDir string, moduleFS fs.FS, files []promptfs.ModulePromptFile) (fs.FS, error) { return promptfs.ModulePromptFS(moduleDir, moduleFS, files, SharedPromptFiles()...) }