package scenes import ( "sync" "gitea.maximumdirect.net/eric/notarius/internal/framework/llm" "gitea.maximumdirect.net/eric/notarius/internal/modules/dnd/promptassets" ) const scriptoriumPromptRoot = "assets/scriptorium/prompts" func RegisterPromptAssets(registry *llm.AssetRegistry) error { if err := registry.RegisterPromptFS(embeddedAssets, scriptoriumPromptRoot); err != nil { return err } return registry.RegisterSchemaFS(embeddedAssets, "assets/schemas") } func scriptoriumPromptMetadata() (string, error) { scriptoriumPromptHashOnce.Do(func() { parts := append([]llm.AssetHashPart{ {FS: embeddedAssets, Path: "assets/scriptorium/prompts/dnd.scenes.yaml"}, {FS: embeddedAssets, Path: "assets/scriptorium/prompts/dnd/scenes/task.md"}, {FS: embeddedAssets, Path: "assets/scriptorium/prompts/dnd/scenes/instructions.md"}, }, promptassets.CommonHashParts()...) scriptoriumPromptHash, scriptoriumPromptHashErr = llm.HashAssets(parts) }) return scriptoriumPromptHash, scriptoriumPromptHashErr } var ( scriptoriumPromptHashOnce sync.Once scriptoriumPromptHash string scriptoriumPromptHashErr error )