From ed1c2d061c3a023a2dc95725ef298598152bb4b5 Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 10 Apr 2026 09:42:52 +0200 Subject: [PATCH] feat(abstractions): add IAcDreamPlugin, IPluginHost, ILogger --- src/AcDream.Plugin.Abstractions/IAcDreamPlugin.cs | 9 +++++++++ src/AcDream.Plugin.Abstractions/ILogger.cs | 9 +++++++++ src/AcDream.Plugin.Abstractions/IPluginHost.cs | 11 +++++++++++ src/AcDream.Plugin.Abstractions/Placeholder.cs | 3 --- 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 src/AcDream.Plugin.Abstractions/IAcDreamPlugin.cs create mode 100644 src/AcDream.Plugin.Abstractions/ILogger.cs create mode 100644 src/AcDream.Plugin.Abstractions/IPluginHost.cs delete mode 100644 src/AcDream.Plugin.Abstractions/Placeholder.cs diff --git a/src/AcDream.Plugin.Abstractions/IAcDreamPlugin.cs b/src/AcDream.Plugin.Abstractions/IAcDreamPlugin.cs new file mode 100644 index 0000000..ba59c63 --- /dev/null +++ b/src/AcDream.Plugin.Abstractions/IAcDreamPlugin.cs @@ -0,0 +1,9 @@ +// src/AcDream.Plugin.Abstractions/IAcDreamPlugin.cs +namespace AcDream.Plugin.Abstractions; + +public interface IAcDreamPlugin +{ + void Initialize(IPluginHost host); + void Enable(); + void Disable(); +} diff --git a/src/AcDream.Plugin.Abstractions/ILogger.cs b/src/AcDream.Plugin.Abstractions/ILogger.cs new file mode 100644 index 0000000..a7199cf --- /dev/null +++ b/src/AcDream.Plugin.Abstractions/ILogger.cs @@ -0,0 +1,9 @@ +// src/AcDream.Plugin.Abstractions/ILogger.cs +namespace AcDream.Plugin.Abstractions; + +public interface ILogger +{ + void Info(string message); + void Warn(string message); + void Error(string message, Exception? exception = null); +} diff --git a/src/AcDream.Plugin.Abstractions/IPluginHost.cs b/src/AcDream.Plugin.Abstractions/IPluginHost.cs new file mode 100644 index 0000000..065a533 --- /dev/null +++ b/src/AcDream.Plugin.Abstractions/IPluginHost.cs @@ -0,0 +1,11 @@ +// src/AcDream.Plugin.Abstractions/IPluginHost.cs +namespace AcDream.Plugin.Abstractions; + +/// +/// Entry point for a plugin into the acdream runtime. The surface will grow +/// across phases as more systems come online. For Phase 1 only ILogger is real. +/// +public interface IPluginHost +{ + ILogger Log { get; } +} diff --git a/src/AcDream.Plugin.Abstractions/Placeholder.cs b/src/AcDream.Plugin.Abstractions/Placeholder.cs deleted file mode 100644 index 1cbfb0f..0000000 --- a/src/AcDream.Plugin.Abstractions/Placeholder.cs +++ /dev/null @@ -1,3 +0,0 @@ -// src/AcDream.Plugin.Abstractions/Placeholder.cs -namespace AcDream.Plugin.Abstractions; -internal static class Placeholder { }