Skip to content

Commit 47e4ad6

Browse files
authored
Release AIKernel.Core v0.1.2 runtime and governance boundary (#8)
## Summary This PR releases AIKernel.Core v0.1.2 as the deterministic runtime and governance boundary for AIKernel. ## Changes - Aligns Core package references with official AIKernel.NET v0.1.2 packages. - Stabilizes ROM, Context, Execution, Fail-Closed, Replay, and CTG-related runtime surfaces. - Ensures AIKernel.TestKit v0.1.2 is packageable for downstream validation. - Removes local package feed dependency from the release configuration. ## Validation - dotnet restore - dotnet build - dotnet test - AIKernel.TestKit.0.1.2.nupkg generated and inspected ## Release This PR prepares AIKernel.Core v0.1.2 and AIKernel.TestKit v0.1.2 for release.
1 parent bce2103 commit 47e4ad6

252 files changed

Lines changed: 26547 additions & 1250 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.

.github/workflows/publish-pypi.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Publish Python package to PyPI
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
- "py-aikernel-net-*"
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
build:
15+
name: Build aikernel-net
16+
runs-on: ubuntu-latest
17+
defaults:
18+
run:
19+
working-directory: python
20+
steps:
21+
- name: Check out repository
22+
uses: actions/checkout@v4
23+
24+
- name: Set up Python
25+
uses: actions/setup-python@v5
26+
with:
27+
python-version: "3.11"
28+
29+
- name: Install build tooling
30+
run: python -m pip install --upgrade build twine
31+
32+
- name: Build distributions
33+
run: python -m build --wheel --outdir dist
34+
35+
- name: Check distributions
36+
run: python -m twine check dist/*
37+
38+
- name: Upload distributions
39+
uses: actions/upload-artifact@v4
40+
with:
41+
name: pypi-dist-aikernel-net
42+
path: python/dist/*
43+
if-no-files-found: error
44+
45+
publish:
46+
name: Publish aikernel-net
47+
runs-on: ubuntu-latest
48+
needs: build
49+
environment:
50+
name: pypi
51+
permissions:
52+
contents: read
53+
id-token: write
54+
steps:
55+
- name: Download distributions
56+
uses: actions/download-artifact@v4
57+
with:
58+
name: pypi-dist-aikernel-net
59+
path: dist
60+
61+
- name: Publish distributions to PyPI
62+
uses: pypa/gh-action-pypi-publish@release/v1

Directory.Build.props

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@
44
<Nullable>enable</Nullable>
55
<ImplicitUsings>enable</ImplicitUsings>
66

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>
7+
<StablePackageVersion>0.1.2</StablePackageVersion>
8+
<LocalPackageVersionPrefix>0.1.2</LocalPackageVersionPrefix>
9+
<LocalPackageBuildNumber Condition="'$(LocalPackageBuildNumber)' == ''">0</LocalPackageBuildNumber>
10+
<UseLocalPackageVersion Condition="'$(UseLocalPackageVersion)' == ''">false</UseLocalPackageVersion>
11+
<PackageVersion Condition="'$(UseLocalPackageVersion)' == 'true'">$(LocalPackageVersionPrefix)-dev$(LocalPackageBuildNumber)</PackageVersion>
12+
<PackageVersion Condition="'$(UseLocalPackageVersion)' != 'true'">$(StablePackageVersion)</PackageVersion>
13+
<Version>$(PackageVersion)</Version>
14+
<AssemblyVersion>$(StablePackageVersion)</AssemblyVersion>
15+
<FileVersion>$(StablePackageVersion)</FileVersion>
16+
<InformationalVersion>$(PackageVersion)</InformationalVersion>
17+
<AIKernelContractPackageVersion Condition="'$(AIKernelContractPackageVersion)' == ''">[$(StablePackageVersion)]</AIKernelContractPackageVersion>
18+
<AIKernelProviderPackageVersion Condition="'$(AIKernelProviderPackageVersion)' == ''">[0.1.2]</AIKernelProviderPackageVersion>
1319
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1420

1521
<Authors>Takuya Sogawa</Authors>
@@ -20,7 +26,7 @@
2026
<Copyright>Copyright © 2026 Takuya Sogawa of AIKernel-NET</Copyright>
2127
<PackageTags>aikernel;aikernel-core;ai-os;kernel;provider;hosting;rom;vfs;context;execution;immutability;fail-closed;capability-modules;dynamicslm;seedslm;hatl;admissibility;semantic-compilation</PackageTags>
2228
<PackageReleaseNotes>
23-
AIKernel.Core package family v0.1.1 - Release build aligned with official AIKernel.NET contract packages v0.1.1. Adds Core-owned ROM storage and VFS Git capability contracts, built-in SkillProvider, LocalExecutionProvider, MinimalRuntimeProvider, VfsProvider, SystemInfoProvider, dynamic provider registry surfaces, matching Python descriptors, broader monadic DSL/ROM/VFS parsing, validation, invocation, metadata boundaries, ResultStep Match projection, safer DSL/ROM/Kernel execution branching, and additional Result/Either/Option adapter projection cleanup.
29+
AIKernel.Core package family v0.1.2 - Release build aligned with official AIKernel.NET contract packages v0.1.2, synchronized Python wrapper package aikernel-net v0.1.2, and local development package outputs using 0.1.2-dev{build-number}.
2430
</PackageReleaseNotes>
2531
</PropertyGroup>
2632

NuGet.config

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

README-jp.md

Lines changed: 66 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,41 @@ runtime 側へ分離します。Control layer は EventBus を通じて
8383

8484
---
8585

86+
## CTG Governance Core
87+
88+
AIKernel.Core 0.1.2 は、Canonical Triadic Governance (CTG) の Core 実装面を
89+
含みます。CTG は AIKernel.NET contract DTO / enum を消費する決定論的 Core service
90+
として実装され、ROM、Canon、Council、Gate、RejectPolicy、YAML、DTO の意味論は変更しません。
91+
92+
Core CTG surface は次を含みます。
93+
94+
- vote extraction と `CouncilDecision` から `GateInput` への adapter
95+
- pure Decision Gate evaluation
96+
- pure Trajectory Gate aggregation
97+
- reject reason serialization / classification
98+
- canon reference resolution と locale YAML adaptation
99+
- step / trajectory governance trace assembly
100+
- Core 側 integration facade としての `ICtgGovernanceService`
101+
102+
CTG service だけを登録する場合:
103+
104+
```csharp
105+
services.AddCtgGovernance();
106+
```
107+
108+
`AddAIKernelCore()` も CTG surface を登録します。既存の `IDecisionGate`
109+
`ITrajectoryGate` 登録は置き換えません。
110+
111+
実装境界は [CTG Governance Integration Guide](docs/development/ctg-governance-integration-jp.md)
112+
を参照してください。
113+
114+
配布メモ: 0.1.2 更新では NuGet package と同期 Python wrapper を公開します。
115+
116+
---
117+
86118
## ソリューション構造
87119

88-
本リポジトリは、ランタイム、Provider、検証レイヤーで構成されています。
120+
本リポジトリは、ランタイム、Provider integration、検証レイヤーで構成されています。
89121

90122
```text
91123
src/
@@ -94,7 +126,7 @@ src/
94126
AIKernel.Kernel
95127
AIKernel.Hosting
96128
Providers/
97-
AIKernel.Providers.MicrosoftAI
129+
(external provider integration workspace)
98130
99131
tests/
100132
AIKernel.TestKit
@@ -154,11 +186,13 @@ ASP.NET Core / Generic Host 向けに、`IServiceCollection` 拡張と既定の
154186

155187
#### `Providers/`
156188

157-
AIKernel と外部モデル・外部サービスを接続する Provider 実装群です。
189+
AIKernel と外部モデル・外部サービスを接続する Provider package の integration
190+
workspace です。0.1.2 Core package line では、この repository から Provider
191+
package は公開しません。
158192

159193
##### `AIKernel.Providers.MicrosoftAI`
160194

161-
`Microsoft.Extensions.AI`(MEAI)を利用した OpenAI 互換 Provider 実装です
195+
`Microsoft.Extensions.AI`(MEAI)を利用した外部 OpenAI 互換 Provider package です
162196

163197
Microsoft の AI 抽象レイヤーを活用して開発速度を高めつつ、AIKernel の Capability ベース実行モデルを維持します。
164198

@@ -185,12 +219,13 @@ ABI と振る舞いの規律を検証するための Contract Test Framework で
185219
#### `AIKernel.Python`
186220

187221
AIKernel.Core の関数型プリミティブと managed assembly discovery を提供する薄い
188-
Python binding です。
222+
Python binding です。Python package release が明示的に予定された場合にのみ公開します。
189223

190-
`aikernel-net` Python package として install でき、既定では CPU-only / CUDA-free です。
191-
Python monad helper と managed assembly discovery を公開し、CUDA、LibTorch、
192-
native `libtorch_bridge` ABI は同梱しません。Python package は OS 固有 memory
193-
mapping、Kernel 内部構造、Capability 内部実装を再実装しません。
224+
公開済みの Python release は `aikernel-net` package として install でき、既定では
225+
CPU-only / CUDA-free です。Python monad helper と managed assembly discovery を公開し、
226+
CUDA、LibTorch、native `libtorch_bridge` ABI は同梱しません。Python package は OS 固有
227+
memory mapping、Kernel 内部構造、Capability 内部実装を再実装しません。0.1.2 CTG Core
228+
更新では PyPI package を公開しません。
194229

195230
---
196231

@@ -202,17 +237,21 @@ mapping、Kernel 内部構造、Capability 内部実装を再実装しません
202237
### 1. パッケージのインストール
203238

204239
```bash
205-
dotnet add package AIKernel.Core --version 0.1.1
206-
dotnet add package AIKernel.Hosting --version 0.1.1
207-
dotnet add package AIKernel.Kernel --version 0.1.1
208-
dotnet add package AIKernel.Providers.MicrosoftAI --version 0.1.1
240+
dotnet add package AIKernel.Core --version 0.1.2
241+
dotnet add package AIKernel.Hosting --version 0.1.2
242+
dotnet add package AIKernel.Kernel --version 0.1.2
243+
dotnet add package AIKernel.Providers.MicrosoftAI --version 0.1.2
209244
```
210245

246+
`AIKernel.Providers.MicrosoftAI` は Provider repository の更新まで 0.1.2
247+
provider package line のまま扱います。0.1.2 Core 更新は Core、Hosting、
248+
Kernel、Common、TestKit、AIKernel.NET contract packages を中心とした更新です。
249+
211250
関数型プリミティブや Contract Test helper を直接利用する場合:
212251

213252
```bash
214-
dotnet add package AIKernel.Common --version 0.1.1
215-
dotnet add package AIKernel.TestKit --version 0.1.1
253+
dotnet add package AIKernel.Common --version 0.1.2
254+
dotnet add package AIKernel.TestKit --version 0.1.2
216255
```
217256

218257
CUDA は任意機能であり、このリポジトリの外側に分離されています。GPU ホストでは、
@@ -224,7 +263,7 @@ full `.nupkg` を取得し、そのフォルダを local NuGet source として
224263

225264
```bash
226265
dotnet nuget add source <folder-containing-full-cuda-nupkg> --name AIKernel-CUDA
227-
dotnet add package AIKernel.Cuda13.0.Libtorch2.12.win-x64 --version 0.1.1
266+
dotnet add package AIKernel.Cuda13.0.Libtorch2.12.win-x64 --version 0.1.2
228267
```
229268

230269
CUDA を直接利用したい LLM / SLM 開発者向けの仮想メモリレイヤー、仕様、
@@ -233,22 +272,24 @@ CUDA を直接利用したい LLM / SLM 開発者向けの仮想メモリレイ
233272
を参照してください。他の CUDA version、model runtime、Linux CUDA host では、
234273
CUDA Capability repository を fork して新しい Capability module を作成します。
235274

236-
Python language binding は CPU-only 既定で install します。GPU integration は、
275+
既存の Python language binding は CPU-only 既定で install できます。GPU integration は、
237276
対応する外部 Capability package を明示的に追加します。
238277

239278
```bash
240279
pip install aikernel-net
241280
```
242281

243282
base Python package は Windows / Linux 向けの CPU-only universal
244-
`py3-none-any` wheel として公開します。C# ホストでは NuGet package を利用し、
245-
Python ホストでは `aikernel-net` distribution を利用します。import package は
283+
`py3-none-any` wheel として公開されています。0.1.2 CTG Core 更新では PyPI package を
284+
公開しません。既存の Python ホストは、Python release が別途予定されるまで、最新の
285+
公開済み `aikernel-net` distribution を利用してください。import package は
246286
`aikernel_net` です。PyPI の `aikernel` は別プロジェクトです。GPU / native runtime は
247287
明示的に追加する Capability install として扱います。
248288

249-
安定版 Python release は PyPI に `aikernel-net` として公開します。開発 build は
250-
CI/CD 検証向けに使う場合がありますが、利用者向け release note は公開 package
251-
のみを単位とし、開発中の変更は次の公開 release entry に統合して記載します。
289+
安定版 Python release は、Python release が明示的に予定された場合のみ PyPI に
290+
`aikernel-net` として公開します。開発 build は CI/CD 検証向けに使う場合がありますが、
291+
利用者向け release note は公開 package のみを単位とし、開発中の変更は次の公開
292+
release entry に統合して記載します。
252293

253294
source-based local validation では repository subdirectory から install できます。
254295

@@ -259,8 +300,8 @@ pip install git+https://github.com/AIKernel-NET/AIKernel.Core.git#subdirectory=p
259300
native toolchain の前提条件と wrapper-only 開発手順は
260301
[python/README.md](python/README.md) を参照してください。
261302

262-
v0.1.1 package family は、AIKernel.NET の契約パッケージ
263-
`AIKernel.Abstractions``AIKernel.Dtos``AIKernel.Enums` v0.1.1 と同期しています。
303+
v0.1.2 Core package family は、AIKernel.NET の契約パッケージ
304+
`AIKernel.Abstractions``AIKernel.Dtos``AIKernel.Enums` v0.1.2 と同期しています。
264305
`AIKernel.Vfs` は独立した NuGet 依存ではなくなり、VFS 契約は
265306
`AIKernel.Abstractions` から提供されます。`AIKernel.Vfs` namespace は、
266307
in-process VFS provider / store の Core 実装 namespace として残りますが、
@@ -398,7 +439,7 @@ asset と同じ ROM signature verification path を使い、hash mismatch や既
398439
## 目標とする起動体験
399440

400441
```text
401-
[KERNEL] Initializing AIKernel.NET Core v0.1.1...
442+
[KERNEL] Initializing AIKernel.NET Core v0.1.2...
402443
[KERNEL] Loading VFS Provider: local... [OK]
403444
[KERNEL] Mounting ROM root... [OK]
404445
[KERNEL] Building ContextSnapshot... [OK]

0 commit comments

Comments
 (0)