From 93e0fb4842a9877a0bd051a446240d43f5da884e Mon Sep 17 00:00:00 2001 From: Nils Kruthoff Date: Tue, 24 Feb 2026 11:28:42 +0100 Subject: [PATCH] set up handling of asset files from the plugin directory --- app/MindWork AI Studio/MindWork AI Studio.csproj | 4 ++++ app/MindWork AI Studio/Tools/PluginSystem/PluginBase.cs | 7 ++++++- .../Tools/PluginSystem/PluginFactory.Starting.cs | 3 ++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/MindWork AI Studio/MindWork AI Studio.csproj b/app/MindWork AI Studio/MindWork AI Studio.csproj index 57d4d077..3e288717 100644 --- a/app/MindWork AI Studio/MindWork AI Studio.csproj +++ b/app/MindWork AI Studio/MindWork AI Studio.csproj @@ -61,6 +61,10 @@ + + + + diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginBase.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginBase.cs index e6e8707a..828b0355 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginBase.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginBase.cs @@ -56,6 +56,11 @@ public abstract partial class PluginBase : IPluginMetadata /// public bool IsInternal { get; } + + /// + /// The absolute path to the plugin directory (where `plugin.lua` lives). + /// + public string PluginPath { get; internal set; } = string.Empty; /// /// The issues that occurred during the initialization of this plugin. @@ -494,4 +499,4 @@ public abstract partial class PluginBase : IPluginMetadata } #endregion -} \ No newline at end of file +} diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs index b2228bbf..18ef703f 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.Starting.cs @@ -95,6 +95,7 @@ public static partial class PluginFactory var code = await File.ReadAllTextAsync(pluginMainFile, Encoding.UTF8, cancellationToken); var plugin = await Load(meta.LocalPath, code, cancellationToken); + plugin.PluginPath = meta.LocalPath; if (plugin is NoPlugin noPlugin) { LOG.LogError($"Was not able to start plugin: Id='{meta.Id}', Type='{meta.Type}', Name='{meta.Name}', Version='{meta.Version}'. Reason: {noPlugin.Issues.First()}"); @@ -119,4 +120,4 @@ public static partial class PluginFactory LOG.LogError($"Was not able to start plugin: Id='{meta.Id}', Type='{meta.Type}', Name='{meta.Name}', Version='{meta.Version}'. Reasons: {string.Join("; ", plugin.Issues)}"); return new NoPlugin($"Was not able to start plugin: Id='{meta.Id}', Type='{meta.Type}', Name='{meta.Name}', Version='{meta.Version}'. Reasons: {string.Join("; ", plugin.Issues)}"); } -} \ No newline at end of file +}