Skip to content

Commit fdda62c

Browse files
authored
Release 0.1.1: Converge provider capabilities (#1)
## Summary - Finalizes the AIKernel.Providers 0.1.1 provider surface. - Aligns provider categories across source, tests, solution folders, documentation, and Python native loading. - Moves ChatOpenAIProvider into the Chat category to match its provider role. - Keeps LLM, Compute, Pipeline, Standard, and Chat providers consistently organized. ## Validation - Release build passed with package generation disabled. - .NET provider tests passed. - Python wrapper tests passed.
1 parent c53f643 commit fdda62c

163 files changed

Lines changed: 13031 additions & 57 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 14 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,15 @@
1-
## A streamlined .gitignore for modern .NET projects
2-
## including temporary files, build results, and
3-
## files generated by popular .NET tools. If you are
4-
## developing with Visual Studio, the VS .gitignore
5-
## https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
6-
## has more thorough IDE-specific entries.
7-
##
8-
## Get latest from https://github.com/github/gitignore/blob/main/Dotnet.gitignore
9-
10-
# Build results
11-
[Dd]ebug/
12-
[Dd]ebugPublic/
13-
[Rr]elease/
14-
[Rr]eleases/
15-
x64/
16-
x86/
17-
[Ww][Ii][Nn]32/
18-
[Aa][Rr][Mm]/
19-
[Aa][Rr][Mm]64/
20-
bld/
21-
[Bb]in/
22-
[Oo]bj/
23-
[Ll]og/
24-
[Ll]ogs/
25-
26-
# .NET Core
27-
project.lock.json
28-
project.fragment.lock.json
1+
bin/
2+
obj/
3+
.vs/
4+
.vscode/
295
artifacts/
30-
31-
# ASP.NET Scaffolding
32-
ScaffoldingReadMe.txt
33-
34-
# NuGet Packages
35-
*.nupkg
36-
# NuGet Symbol Packages
37-
*.snupkg
38-
39-
# dotenv environment variables file
40-
.env
41-
42-
# Others
43-
~$*
44-
*~
45-
CodeCoverage/
46-
47-
# MSBuild Binary and Structured Log
48-
*.binlog
49-
50-
# MSTest test Results
51-
[Tt]est[Rr]esult*/
52-
[Bb]uild[Ll]og.*
53-
54-
# NUnit
55-
*.VisualState.xml
56-
TestResult.xml
57-
nunit-*.xml
6+
TestResults/
7+
python/build/
8+
python/dist/
9+
python/src/*.egg-info/
10+
python/.pytest_cache/
11+
python/.venv*/
12+
__pycache__/
13+
*.pyc
14+
*.user
15+
*.suo

AIKernel.Providers.slnx

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<Solution>
2+
<Folder Name="/src/Chat/">
3+
<Project Path="src/Chat/ChatOpenAIProvider/ChatOpenAIProvider.csproj" />
4+
<Project Path="src/Chat/ChatHistoryProvider/ChatHistoryProvider.csproj" />
5+
</Folder>
6+
<Folder Name="/src/Compute/">
7+
<Project Path="src/Compute/CudaComputeProvider/CudaComputeProvider.csproj" />
8+
</Folder>
9+
<Folder Name="/src/Llm/">
10+
<Project Path="src/Llm/LocalLlmProvider/LocalLlmProvider.csproj" />
11+
<Project Path="src/Llm/MicrosoftAIProvider/AIKernel.Providers.MicrosoftAI.csproj" />
12+
</Folder>
13+
<Folder Name="/src/Pipeline/">
14+
<Project Path="src/Pipeline/DynamicPipelineCompilerProvider/DynamicPipelineCompilerProvider.csproj" />
15+
</Folder>
16+
<Folder Name="/src/Standard/">
17+
<Project Path="src/Standard/AIKernel.Providers.Standard/AIKernel.Providers.Standard.csproj" />
18+
</Folder>
19+
<Folder Name="/tests/Chat/">
20+
<Project Path="tests/Chat/ChatOpenAIProvider.Tests/ChatOpenAIProvider.Tests.csproj" />
21+
<Project Path="tests/Chat/ChatHistoryProvider.Tests/ChatHistoryProvider.Tests.csproj" />
22+
</Folder>
23+
<Folder Name="/tests/Compute/">
24+
<Project Path="tests/Compute/CudaComputeProvider.Tests/CudaComputeProvider.Tests.csproj" />
25+
</Folder>
26+
<Folder Name="/tests/Llm/">
27+
<Project Path="tests/Llm/LocalLlmProvider.Tests/LocalLlmProvider.Tests.csproj" />
28+
<Project Path="tests/Llm/MicrosoftAIProvider.Tests/MicrosoftAIProvider.Tests.csproj" />
29+
</Folder>
30+
<Folder Name="/tests/Pipeline/">
31+
<Project Path="tests/Pipeline/DynamicPipelineCompilerProvider.Tests/DynamicPipelineCompilerProvider.Tests.csproj" />
32+
</Folder>
33+
<Folder Name="/tests/Standard/">
34+
<Project Path="tests/Standard/StandardProviders.Tests/StandardProviders.Tests.csproj" />
35+
</Folder>
36+
</Solution>

Directory.Build.props

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<Project>
2+
<PropertyGroup>
3+
<TargetFramework>net10.0</TargetFramework>
4+
<Nullable>enable</Nullable>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
7+
<Version>0.1.1</Version>
8+
<PackageVersion>0.1.1</PackageVersion>
9+
<AssemblyVersion>0.1.1.0</AssemblyVersion>
10+
<FileVersion>0.1.1.0</FileVersion>
11+
<InformationalVersion>0.1.1</InformationalVersion>
12+
<AIKernelPackageVersion>[0.1.1]</AIKernelPackageVersion>
13+
<AIKernelCorePackageVersion>0.1.1</AIKernelCorePackageVersion>
14+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
15+
16+
<Authors>Takuya Sogawa</Authors>
17+
<Company>AIKernel-NET</Company>
18+
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
19+
<PackageProjectUrl>https://www.nuget.org/profiles/AIKernel-NET</PackageProjectUrl>
20+
<RepositoryUrl>https://github.com/AIKernel-NET/AIKernel.Providers</RepositoryUrl>
21+
<Copyright>Copyright © 2026 Takuya Sogawa of AIKernel-NET</Copyright>
22+
<PackageTags>aikernel;providers;official-provider-set;openai;microsoft-ai;cuda;cpu-compute;filesystem;logging;process-supervisor;event-bus;network;scheduler;profiler;local-llm;chat-history;pipeline-compiler;semantic-runtime</PackageTags>
23+
<PackageReadmeFile>README.md</PackageReadmeFile>
24+
<PackageIcon>aikernel-logo128x128.png</PackageIcon>
25+
<Description>AIKernel.Providers official extension provider set v0.1.1. Provides external provider drivers for AIKernel semantic runtime workflows without coupling provider-specific logic into Core or Tools.</Description>
26+
<PackageReleaseNotes>
27+
AIKernel.Providers v0.1.1 - Official extension provider set aligned with AIKernel.NET, AIKernel.Core, AIKernel.Control, and AIKernel.Cuda13.0 v0.1.1. Adds ChatOpenAIProvider, ChatHistoryProvider, CudaComputeProvider, AIKernel.Providers.Standard OS driver providers, DynamicPipelineCompilerProvider, LocalLlmProvider, and AIKernel.Providers.MicrosoftAI. MicrosoftAI provider ownership moved from AIKernel.Core to AIKernel.Providers. Includes dynamic provider manifests, bilingual reference documentation, and Python wrapper support.
28+
</PackageReleaseNotes>
29+
</PropertyGroup>
30+
31+
<ItemGroup>
32+
<None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" PackagePath="\" />
33+
<None Include="$(MSBuildThisFileDirectory)README-ja.md" Pack="true" PackagePath="\" />
34+
<None Include="$(MSBuildThisFileDirectory)RELEASE_NOTES.md" Pack="true" PackagePath="\" />
35+
<None Include="$(MSBuildThisFileDirectory)LICENSE" Pack="true" PackagePath="\" />
36+
<None Include="$(MSBuildThisFileDirectory)assets\aikernel-logo128x128.png" Pack="true" PackagePath="\" />
37+
</ItemGroup>
38+
</Project>

NuGet.config

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<packageSources>
4+
<add key="AIKernelLocal" value="..\artifacts\local-packages" />
5+
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
6+
</packageSources>
7+
</configuration>

README-ja.md

Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
# AIKernel.Providers
2+
3+
[English README](README.md)
4+
5+
AIKernel.Providers は、AIKernel.NET 向けの公式拡張 Provider ワークスペースです。
6+
7+
AIKernel.Core は contract、決定論的 runtime boundary、VFS、DSL、標準 OS-level
8+
Provider を所有します。AIKernel.Tools は instrumentation、replay、inspection、
9+
canonical formatting を所有します。AIKernel.Providers は、AIKernel capability
10+
contract を具体的な service、local runtime、native module、または移管済み
11+
Provider 実装へ接続する外部 Provider driver を所有します。
12+
13+
これにより、Provider 固有の endpoint、credential、runtime、native driver
14+
logic を Core と Tools から分離します。
15+
16+
AIOS SDK において、AIKernel.Providers は driver model layer です。具体的な
17+
OS-style driver、外部 model Provider、local runtime、標準 host service を組み合わせ、
18+
Provider 固有の logic を kernel runtime に戻さずに独自の AIOS を構築できます。
19+
20+
AIKernel には、公式 AIOS ディストリビューションである **AIKernel.Monolith** もあります。
21+
Monolith は 0.1.x 系の安定化後に、公式 Provider driver を含む SDK layer を
22+
統合する標準 AIOS として開発が開始されています。
23+
24+
## リポジトリの役割
25+
26+
AIKernel.Providers は、AIKernel Semantic Runtime 向けの公式拡張 Provider を
27+
収容します。
28+
29+
この repository の Provider は、AIKernel.NET package が定義する Provider
30+
contract を実装し、CLI、host application、Python wrapper から外部 Provider
31+
module として読み込まれることを想定しています。AIKernel.Core と
32+
AIKernel.Abstractions が定義する contract boundary を維持しながら、capability
33+
descriptor と invocation surface を公開します。
34+
35+
AIKernel.Providers は、2026-06-10 に予定している 0.1.1 公開に参加します。
36+
`0.1.1` はこの repository の初版公開です。local validation で development build
37+
を使う場合がありますが、利用者向けの package history は公開 release のみを単位とし、
38+
開発中の変更は次の公開 release note に統合して記載します。
39+
40+
リリースノート:
41+
42+
- [English](RELEASE_NOTES.md)
43+
- [日本語](RELEASE_NOTES-ja.md)
44+
45+
## クイックスタート
46+
47+
host が必要とする Provider family だけを導入してください。live endpoint、
48+
credential、local model runtime、native driver を有効化する前に、まず descriptor と
49+
manifest の検証から始めます。
50+
51+
```bash
52+
dotnet add package AIKernel.Providers.Standard --version 0.1.1
53+
dotnet add package AIKernel.Providers.ChatOpenAI --version 0.1.1
54+
dotnet add package AIKernel.Providers.MicrosoftAI --version 0.1.1
55+
```
56+
57+
Python host:
58+
59+
```bash
60+
pip install aikernel-providers
61+
```
62+
63+
OS driver surface が必要な場合は `AIKernel.Providers.Standard` を使用します。LLM、
64+
chat、pipeline、CUDA、MicrosoftAI の Provider package は、その capability が host に
65+
必要な場合だけ追加してください。
66+
67+
## どの Provider を選ぶべきか
68+
69+
- ローカルだけで model runtime を動かしたい -> `AIKernel.Providers.LocalLlm`
70+
- OpenAI-compatible API を使いたい -> `AIKernel.Providers.ChatOpenAI`
71+
- Microsoft.Extensions.AI / Azure AI 系 integration を使いたい -> `AIKernel.Providers.MicrosoftAI`
72+
- 履歴ベースの軽量 chat surface を使いたい -> `AIKernel.Providers.ChatHistory`
73+
74+
file system、logging、event bus、network、process supervisor、scheduler、
75+
profiler、CPU compute などの OS driver surface が必要な host では、
76+
これらに加えて `AIKernel.Providers.Standard` を使用してください。
77+
78+
## Provider 構成
79+
80+
Provider project は `src/` 配下で category ごとに整理します。
81+
82+
- `src/Llm` - LLM / model hosting 系 Provider。
83+
- `src/Chat` - chat domain の storage / history 系 Provider。
84+
- `src/Compute` - native / accelerator compute 系 Provider。
85+
- `src/Pipeline` - semantic pipeline compiler / pipeline orchestration 系 Provider。
86+
- `src/Standard` - OS 標準 driver Provider。
87+
88+
- `ChatOpenAIProvider` - OpenAI 互換 ChatCompletion、Embedding、Moderation
89+
向け Provider manifest surface です。Tools から分離した公式外部 OpenAI
90+
Provider セットです。
91+
- `ChatHistoryProvider` - 旧 RomStorage Provider の役割から抽出された、
92+
deterministic chat history Provider です。
93+
- `CudaComputeProvider` - CUDA 13 系 native capability manifest を含む、
94+
native CUDA compute module 向けの抽象 Provider surface です。
95+
- `DynamicPipelineCompilerProvider` - `aik install provider dynamic-pipeline`
96+
のような CLI-driven install を想定した dynamic semantic pipeline compiler
97+
Provider です。
98+
- `LocalLlmProvider` - Ollama、llama.cpp、vLLM などの local LLM runtime
99+
向け Provider です。
100+
- `AIKernel.Providers.Standard` - CPU compute、memory / physical / ZIP file
101+
system、console / file logging、process supervision、event bus、network、
102+
scheduler、profiler を含む OS 標準 driver Provider package です。
103+
- `AIKernel.Providers.MicrosoftAI` - Microsoft.Extensions.AI を利用した
104+
Provider 実装です。これは AIKernel.Core から AIKernel.Providers 管理へ
105+
移管されました。今後はこの repository が packaging、test、documentation、
106+
Python wrapper への同梱を所有します。
107+
108+
## Provider Manifest
109+
110+
各外部 Provider は、host の provider directory へコピーして動的ロードできる
111+
JSON manifest を持ちます。
112+
113+
- `src/Chat/ChatOpenAIProvider/openai.provider.json`
114+
- `src/Chat/ChatHistoryProvider/chat-history.provider.json`
115+
- `src/Compute/CudaComputeProvider/cuda.provider.json`
116+
- `src/Pipeline/DynamicPipelineCompilerProvider/dynamic-pipeline.provider.json`
117+
- `src/Llm/LocalLlmProvider/local-llm.provider.json`
118+
- `src/Standard/AIKernel.Providers.Standard/standard.provider.json`
119+
120+
manifest には以下を記録します。
121+
122+
- `providerId`
123+
- Provider 名と version
124+
- managed assembly 名
125+
- 公開 capability
126+
- host と CLI tooling に必要な provider metadata
127+
- CLI install / list / load 用の hint
128+
129+
MicrosoftAIProvider は managed package と dependency-injection extension surface
130+
として利用されます。現時点では個別の manifest file は同梱しません。
131+
132+
## Python Package
133+
134+
`aikernel-providers` は、公式拡張 Provider セットの Python wrapper package です。
135+
136+
C# Provider contract boundary を Python object と helper function として公開します。
137+
138+
- provider capability descriptor
139+
- manifest と managed assembly discovery
140+
- pythonnet runtime loading
141+
- provider-specific wrapper module
142+
- 同梱 provider assembly と manifest JSON file
143+
144+
Python package は Provider behavior を再実装しません。C# assembly を
145+
`aikernel_providers/native` に同梱し、managed contract surface へ委譲します。
146+
147+
関連ドキュメント:
148+
149+
- [Python provider wrapper](docs/python/index.md)
150+
- [Python provider wrapper 日本語](docs/python/index-ja.md)
151+
152+
## 依存関係の方向
153+
154+
想定する依存方向は以下です。
155+
156+
- AIKernel.NET が contract、DTO、enum、Core runtime boundary を定義します。
157+
- AIKernel.Providers が公式外部 Provider driver を実装します。
158+
- AIKernel.Tools は、外部 capability が必要な tool で Provider を package として
159+
参照します。
160+
- Core と Tools は、Provider 固有の endpoint、HTTP、credential、native-driver
161+
logic を所有しません。
162+
163+
ルール:
164+
165+
- Provider は AIKernel.NET contract package と AIKernel.Core に依存できます。
166+
- Provider は AIKernel.Tools に依存してはいけません。
167+
- Tools は Provider 固有の capability descriptor を含めてはいけません。
168+
- Core は外部 Provider に依存してはいけません。
169+
170+
## ビルド
171+
172+
```powershell
173+
dotnet build AIKernel.Providers.slnx
174+
dotnet test AIKernel.Providers.slnx
175+
```
176+
177+
共通 package metadata は `Directory.Build.props` に集約されています。
178+
179+
## パッケージインストール
180+
181+
.NET host では、公開後に NuGet package を使用します。
182+
183+
```bash
184+
dotnet add package AIKernel.Providers.ChatOpenAI --version 0.1.1
185+
dotnet add package AIKernel.Providers.ChatHistory --version 0.1.1
186+
dotnet add package AIKernel.Providers.CudaCompute --version 0.1.1
187+
dotnet add package AIKernel.Providers.DynamicPipelineCompiler --version 0.1.1
188+
dotnet add package AIKernel.Providers.LocalLlm --version 0.1.1
189+
dotnet add package AIKernel.Providers.MicrosoftAI --version 0.1.1
190+
```
191+
192+
Python host では PyPI package を使用します。
193+
194+
```bash
195+
pip install aikernel-providers
196+
```
197+
198+
Python module は `aikernel_providers` として import します。
199+
200+
```python
201+
from aikernel_providers import (
202+
ChatOpenAICapability,
203+
ChatHistoryCapability,
204+
CudaComputeCapability,
205+
DynamicPipelineCompilerCapability,
206+
LocalLlmCapability,
207+
MicrosoftAIProviderOptions,
208+
)
209+
```
210+
211+
wheel は managed provider assemblies を `aikernel_providers/native` に同梱します。
212+
これは public C# Provider surface への wrapper であり、Provider semantics を
213+
Python で別実装するものではありません。
214+
215+
## ドキュメント
216+
217+
- [Documentation index](docs/README-ja.md)
218+
- [User Guide](docs/user-guide/index-ja.md)
219+
- [Architecture](docs/architecture/index-ja.md)
220+
- [Provider catalog](docs/providers/index-ja.md)
221+
- [Python wrapper](docs/python/index-ja.md)
222+
- [Licensing](docs/licensing/index-ja.md)
223+
224+
## コントリビュータ向けガイドライン
225+
226+
Provider の変更は、AIKernel 共通の開発規律に従ってください。
227+
228+
- [AIKernel 開発ガイドライン](../AIKernel.NET/docs/guidelines/AIKERNEL_DEVELOPMENT_GUIDELINES-jp.md)
229+
- [AIKernel Development Guidelines](../AIKernel.NET/docs/guidelines/AIKERNEL_DEVELOPMENT_GUIDELINES.md)
230+
231+
Provider implementation は endpoint / native-driver behavior を Core の外に保ち、
232+
fail-closed contract を公開し、failure composition には monadic LINQ を使用し、
233+
Python wrapper を public C# surface と整合させてください。

0 commit comments

Comments
 (0)