CircleAI.Memory
1.0.0
dotnet add package CircleAI.Memory --version 1.0.0
NuGet\Install-Package CircleAI.Memory -Version 1.0.0
<PackageReference Include="CircleAI.Memory" Version="1.0.0" />
<PackageVersion Include="CircleAI.Memory" Version="1.0.0" />
<PackageReference Include="CircleAI.Memory" />
paket add CircleAI.Memory --version 1.0.0
#r "nuget: CircleAI.Memory, 1.0.0"
#:package CircleAI.Memory@1.0.0
#addin nuget:?package=CircleAI.Memory&version=1.0.0
#tool nuget:?package=CircleAI.Memory&version=1.0.0
Circle AI — 10-Language SDK
English · Français · Español · العربية · 中文简体 · 日本語 · Deutsch · Português (BR) · Русский · فارسی · 한국어
The portable core of the Circle AI companion stack. Runs natively alongside every Aether Protocol node — wearable, phone, IoT, HarmonyOS — with no FFI overhead and no runtime bridging.
Portable Core (8 modules)
| Module | Key types |
|---|---|
| models | ChatMessage, DownloadProgress |
| memory | AffectState, EpisodicMemoryEntry, PersonaState, Goal |
| identity | CircleIdentity, RegisteredDevice, IdentityTier |
| languages | LanguageTag, KnownLanguages (20 BCP-47 tags), WritingSystem |
| companion | CompanionContext, CompanionTurn, ICompanionSession |
| inference | GenerationOptions, IChatGenerator |
| tools | ToolDefinition, ToolInvocation, ToolResult, IToolBridge |
| sync | SyncDelta, SyncDeliveryMode, ISyncChannel |
Language Quickstart
C# (.NET)
dotnet add package CircleAI.Core
using CircleAI.Memory;
using CircleAI.Languages;
var state = new AffectState();
state.ApplyPositiveSignal();
Console.WriteLine(state.Engagement); // 0.52
var lang = KnownLanguages.Zulu;
Console.WriteLine(lang.BcpTag); // "zu"
Python
pip install circle-ai-sdk
from circle_ai.memory import AffectState
from circle_ai.languages import KnownLanguages
state = AffectState()
state.apply_positive_signal()
print(state.engagement) # 0.52
reg = KnownLanguages()
print(reg.find_by_bcp_tag("zu").english_name) # Zulu
TypeScript / Node.js
npm install @bhengubv/circle-ai
import { AffectState, KnownLanguages } from '@bhengubv/circle-ai';
const state = new AffectState();
state.applyPositiveSignal();
console.log(state.engagement); // 0.52
const reg = new KnownLanguages();
console.log(reg.findByBcpTag('zu')?.englishName); // Zulu
Go
go get github.com/bhengubv/CircleAI/go
import "github.com/bhengubv/CircleAI/go"
state := circleai.NewAffectState()
state.ApplyPositiveSignal()
fmt.Println(state.Engagement) // 0.52
lang := circleai.FindLanguage("zu")
fmt.Println(lang.EnglishName) // Zulu
Kotlin (JVM)
// build.gradle.kts
implementation("com.bhengubv:circle-ai:0.1.0")
import com.bhengubv.circleai.AffectState
import com.bhengubv.circleai.KnownLanguages
val state = AffectState()
state.applyPositiveSignal()
println(state.engagement) // 0.52
println(KnownLanguages.findByBcpTag("zu")?.englishName) // Zulu
Swift
// Package.swift
.package(url: "https://github.com/bhengubv/CircleAI.git", from: "0.1.0")
import CircleAI
let state = AffectState()
state.applyPositiveSignal()
print(state.engagement) // 0.52
let reg = KnownLanguages()
print(reg.findByBcpTag("zu")?.englishName ?? "") // Zulu
Rust
# Cargo.toml
circle-ai = "0.1.0"
use circle_ai::memory::AffectState;
use circle_ai::languages::KnownLanguages;
let mut state = AffectState::default();
state.apply_positive_signal();
println!("{}", state.engagement); // 0.52
let lang = KnownLanguages::find_by_bcp_tag("zu").unwrap();
println!("{}", lang.english_name); // Zulu
C (CMake)
# CMakeLists.txt
FetchContent_Declare(circle_ai
GIT_REPOSITORY https://github.com/bhengubv/CircleAI.git
GIT_TAG v0.1.0
SOURCE_SUBDIR c
)
FetchContent_MakeAvailable(circle_ai)
target_link_libraries(my_app circle_ai)
#include "circle_ai/circle_ai.h"
ca_affect_state_t s = ca_affect_state_default();
ca_affect_state_positive_signal(&s);
printf("%.2f\n", s.engagement); /* 0.52 */
const ca_language_tag_t* zu = ca_find_language("zu");
printf("%s\n", zu->english_name); /* Zulu */
Android (Kotlin)
// build.gradle.kts
implementation("com.bhengubv:circle-ai-android:0.1.0")
import com.bhengubv.circleai.AffectState
import com.bhengubv.circleai.KnownLanguages
val state = AffectState()
state.applyPositiveSignal()
Log.d("CircleAI", "Engagement: ${state.engagement}") // 0.52
HarmonyOS / ArkTS
// oh-package.json5
"dependencies": { "@bhengubv/circle-ai": "^0.1.0" }
import { AffectState, KnownLanguages } from '@bhengubv/circle-ai';
const state = new AffectState();
state.applyPositiveSignal();
console.log(state.engagement); // 0.52
AffectState — Cross-Language Math
All 10 implementations produce identical float results (ε ≤ 1e-5).
| Operation | Effect |
|---|---|
applyPositiveSignal() |
engagement +0.02, rapport +0.01, uncertainty −0.02 (clamped [0, 1]) |
applyNegativeSignal() |
engagement −0.03, uncertainty +0.03 (clamped) |
applyIdleDecay(hours) |
decay = min(0.3, hours × 0.02); engagement and energy lerp toward 0.5 |
Test vectors in fixtures/affect_state.json (12 vectors). Validated by CI across all 10 languages.
Languages Registry (20 BCP-47 tags)
zu · st · af · sw · ha · am · yo · ig · xh · nso · tn · so · om · ar · en · pt · fr · es · zh · hi
Repository Layout
CircleAI/
├── src/ C# reference implementation (CircleAI.*)
├── tests/ C# test suite
├── fixtures/ Cross-language test vectors (JSON)
├── docs/ CONTRACTS.md · MEMORY_SPEC.md · COMPANION_SPEC.md
├── android/ Kotlin/Android library
├── c/ Pure C99, CMake
├── go/ Go module
├── harmonyos/ ArkTS, OpenHarmony
├── kotlin/ Kotlin/JVM
├── python/ Python 3.12+
├── rust/ Rust, Cargo
├── swift/ Swift 5.9+, Swift Package Manager
└── typescript/ TypeScript, npm
CI
| Workflow | Trigger |
|---|---|
| Fixture Validation | push/PR to master — runs all 10 test suites |
| Publish | git tag v*.*.* — publishes to NuGet, crates.io, PyPI, npm, GitHub Packages |
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- CircleAI.Core (>= 1.0.0)
- CircleAI.Embeddings (>= 1.0.0)
- CircleAI.Search (>= 1.0.0)
- Microsoft.Data.Sqlite (>= 9.0.0)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on CircleAI.Memory:
| Package | Downloads |
|---|---|
|
CircleAI.Wearable.Biosignals
Biosignal ingestion (HR, HRV, SpO2, accelerometer, etc.) and projection into CircleAI.Memory.AffectState — the sensor layer of personal AI. |
|
|
CircleAI.Companion
Circle AI Companion — the HER + JARVIS concierge persona. Knows who you are, remembers everything across all devices, speaks your language, feels your mood, adapts its personality, initiates contact, and acts in the world. The crown jewel of the Circle AI platform. |
|
|
CircleAI.Simulation
GraphRAG/MiroFish simulation layer for Circle AI — builds knowledge graphs from episodic memory, runs offline network health forecasts. |
|
|
CircleAI.Orchestration
Host-side loki-mode agent orchestration layer for Circle AI — spawns Engineering, Operations, and Review agent swarms, routes incident triggers, and enforces quality gates before deployment. |
|
|
CircleAI.Knowledge
Markdown-on-disk knowledge store for Circle AI — episodic memory as user-editable .md files with YAML frontmatter. Git-diffable, exportable, user-owned. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 38 | 6/3/2026 |