Skip to content

SR-Agent/tinicore

Repository files navigation

tinicore

Universal AI agent runtime. The Core layer of the ARGO product stack.

  • Status (2026-04-18)clean-start scaffold, Phase 2 landed. Workspace holds tinicore-traits, tinicore, and tinimem; other crates land phase-by-phase per PLAN.md. Imported predecessor code preserved at tag pre-clean-start and branch legacy-import.
  • What it is — a Rust workspace implementing the agent loop, tool/skill/plugin registry, capability broker, memory substrate, hook manager, sub-agent orchestrator, and (incoming) A2A host. Platform-agnostic. Product-agnostic.
  • Who uses it — any product, built by us or a third party, that wants an on-device AI agent. The first consumer is SR-Agent/ARGO (Android assistant app). Future consumers will include messaging / health / productivity products on Android, Windows, Linux, and Tizen.
  • What it is NOT — a user-facing app. There is no UI here. Products wrap tinicore.

Supported targets

Target Adapter crate Transport
Android tiniffi UniFFI → Kotlin bindings consumed from an APK
Windows tinicapi C ABI (.dll) consumed from a Win32/UWP shell
Linux tinicapi C ABI (.so) consumed from any Linux shell
Tizen / embedded tinicapi C ABI (.so) consumed from Tizen apps / appliances
Desktop REPL / dev tinicli Standalone binary

iOS is not in scope. macOS is unscoped; revisit once the four supported targets are stable.

Ecosystem compatibility

tinicore is built to consume external ecosystems verbatim. We do not invent formats where live ones exist.

Ecosystem Source of truth How tinicore consumes it
OpenClaw Plugins openclaw/openclawdefinePluginEntry, api.on, api.registerTool, api.registerService Hosted in an embedded QuickJS runtime (rquickjs). Hook event names stay snake_case verbatim.
OpenClaw Skills SKILL.md frontmatter + _meta.json + scripts/ + hooks/ + assets/ Parsed verbatim; bundle layout preserved; .sh → tinish, .js → rquickjs, .py → Chaquopy (or platform Python)
MCP (Model Context Protocol) modelcontextprotocol.io MCP client + server; tools / resources / prompts / sampling / apps all first-class
A2A (Agent2Agent Protocol) a2aproject/A2Alf.a2a.v1.A2AService gRPC tinicore hosts both A2A client + server; AgentCard, Task, Message, Part, Artifact types are native (generated from specification/a2a.proto via tonic-build)

Workspace layout

tinicore/
├── tinicore-traits/    — platform-agnostic trait surface (Phase 1–2: Principal + audit + Capability + Broker)
├── tinicore/           — reference impl: DefaultBroker + SecretScope (Phase 2)
└── tinimem/            — vector-indexed memory store (ObjectBox planned; scaffold)

Only the three crates above exist today. Every other crate named in PLAN.md (tinish, tinivfs, tiniffi, tinicapi, tinicli, plus future tiniapp / tinilens / tinidiff) is created by the phase that needs it. See PLAN.md's "Crate recreation notes" section for the non-obvious Cargo.toml shape each future crate requires.

Releases & versioning

Each crate in this workspace carries its own semver; weekly CalVer snapshots (snapshot-YYYY.MM.DD) aggregate the current state into a GitHub Release with all build artifacts. Versions are conservative — pinned to observable external milestones, not phase counts: 0.1.x / 0.0.x during pre-replacement development, 0.2.0 only when tinicore entirely replaces ARGO's tinicore + tini* crates, and 1.0.0 when the Phase 16 Host + A2A contract is frozen. See VERSIONING.md for the full scheme.

Build

Toolchain pin: rust-toolchain.toml fixes the compiler version.

# Native build (Windows / Linux / macOS dev host)
cargo build --workspace
cargo test  --workspace

# Android libraries (requires Android NDK + cargo-ndk)
cargo ndk --target arm64-v8a build -p tiniffi --release
# → produces libtiniffi.so + (via uniffi-bindgen) tiniffi.kt

# C ABI libraries for Windows / Linux / Tizen
cargo build -p tinicapi --release
# → produces libtiniclaw.{so,dll} + header exposing stable symbols

Contributing

Read CLAUDE.md before submitting a PR. In particular:

  • Type-schema changes to tinicore-traits must fix every callsite in the same PR.
  • External ecosystem formats (OpenClaw SDK, MCP, A2A) are not ours to change. Consume them verbatim.
  • Every new tool origin is a new dispatch_kind branch + a new registry-write site, never a parallel orchestrator.

Relationship to ARGO

tinicore is consumed by SR-Agent/ARGO, currently as a sibling repo (git submodule pending). The architectural masterplan — including ecosystem compatibility matrices, the Host vs. Orchestrator distinction, the full 16-phase implementation order — lives in ARGO's masterplan. This repo's PLAN.md names only the Core-layer slice of that roadmap.

License

Apache-2.0. See LICENSE.

About

Universal AI agent runtime. Core layer of the ARGO product stack. Android / Windows / Linux / Tizen. OpenClaw, MCP, and A2A compatible.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages