Skip to content

Commit 95e336f

Browse files
author
Stealth Crew
committed
docs: add OpenSIN-Code documentation - core engine, rust engine, 14 plugins
- docs/guide/opensin-code.md: Complete OpenSIN-Code architecture overview - docs/guide/opensin-code-rust-engine.md: Rust Engine documentation - docs/plugins/opensin-code-plugins.md: All 14 migrated plugins documented - .vitepress/config.js: Navigation entries added
1 parent 0f636be commit 95e336f

4 files changed

Lines changed: 689 additions & 0 deletions

File tree

.vitepress/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ export default defineConfig({
2828
{ text: 'Scaling', link: '/docs/guide/scaling' },
2929
{ text: 'Troubleshooting', link: '/docs/guide/troubleshooting' },
3030
{ text: 'Changelog', link: '/docs/guide/changelog' },
31+
{ text: 'OpenSIN Code', link: '/docs/guide/opensin-code' },
32+
{ text: 'Rust Engine', link: '/docs/guide/opensin-code-rust-engine' },
3133
],
3234
},
3335
{
Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
# OpenSIN Code Rust Engine
2+
3+
Die Rust Engine (`opensin-engine`) ist das performante Backend von OpenSIN-Code.
4+
5+
> **Pfad:** `packages/opensin-engine/`
6+
> **Umfang:** 71 Dateien | 48 Rust-Files | 37.731 Zeilen
7+
8+
---
9+
10+
## Struktur
11+
12+
```
13+
packages/opensin-engine/
14+
├── Cargo.toml # Workspace Definition
15+
├── Cargo.lock # Dependency Lockfile
16+
├── SIN.md # OpenSIN Code Dokumentation
17+
├── PARITY.md # Feature Parity mit TypeScript
18+
├── README.md # Engine Dokumentation
19+
├── CONTRIBUTING.md # Contributing Guidelines
20+
└── crates/
21+
├── api/ # API Layer (7 Dateien)
22+
│ └── src/
23+
│ ├── lib.rs # Module Exports
24+
│ ├── client.rs # ProviderClient Abstraction
25+
│ ├── types.rs # StreamEvent, MessageRequest
26+
│ ├── error.rs # ApiError Enum
27+
│ ├── sse.rs # SSE Parser
28+
│ └── providers/
29+
│ ├── mod.rs # Provider Trait, Model Registry
30+
│ ├── openai_provider.rs # OpenAI API Client
31+
│ └── openai_compat.rs # OpenAI/xAI via OCI Proxy
32+
├── runtime/ # Runtime Layer (18 Dateien)
33+
│ └── src/
34+
│ ├── lib.rs # Module Exports
35+
│ ├── conversation.rs # Core Agent Loop
36+
│ ├── config.rs # Multi-source Config Loading
37+
│ ├── session.rs # Session Persistence
38+
│ ├── compact.rs # Session Compaction Algorithm
39+
│ ├── bash.rs # Bash Execution with Sandbox
40+
│ ├── file_ops.rs # Read/Write/Edit/Glob/Grep
41+
│ ├── oauth.rs # OAuth Flow with PKCE
42+
│ ├── sandbox.rs # Linux Namespace Isolation
43+
│ ├── hooks.rs # Pre/Post Tool Hooks
44+
│ ├── prompt.rs # System Prompt Building
45+
│ ├── mcp.rs # MCP Tool Naming
46+
│ ├── mcp_client.rs # Transport Abstraction
47+
│ ├── mcp_stdio.rs # JSON-RPC over stdio
48+
│ ├── permissions.rs # Permission Mode Enforcement
49+
│ ├── remote.rs # Upstream Proxy Support
50+
│ ├── usage.rs # Token Usage Tracking
51+
│ ├── sse.rs # SSE Event Parsing
52+
│ ├── bootstrap.rs # Bootstrap Phases
53+
│ └── json.rs # Custom JSON Parser/Renderer
54+
├── tools/ # Tools Layer (1 Datei, ~2.500 Zeilen)
55+
│ └── src/
56+
│ └── lib.rs # 19 Built-in Tools
57+
├── commands/ # Commands Layer (1 Datei, ~1.800 Zeilen)
58+
│ └── src/
59+
│ └── lib.rs # 27+ Slash Commands
60+
├── sin-cli/ # CLI Layer (6 Dateien)
61+
│ └── src/
62+
│ ├── main.rs # CLI Entry, REPL, OAuth Login
63+
│ ├── app.rs # SessionApp, Slash Command Handling
64+
│ ├── args.rs # Clap Argument Parsing
65+
│ ├── render.rs # Terminal Renderer, Markdown, Spinners
66+
│ ├── init.rs # Repo Initialization, Auto-detection
67+
│ └── input.rs # Vim-mode Terminal Line Editor
68+
├── plugins/ # Plugin System (2 Dateien + bundled)
69+
│ └── src/
70+
│ ├── lib.rs # Full Plugin System
71+
│ └── hooks.rs # Hook Execution
72+
├── lsp/ # LSP Layer (5 Dateien)
73+
│ └── src/
74+
│ ├── lib.rs # LSP Re-exports
75+
│ ├── client.rs # JSON-RPC over stdio
76+
│ ├── manager.rs # Multi-server Manager
77+
│ ├── types.rs # LSP Context Enrichment
78+
│ └── error.rs # LSP Error Types
79+
├── server/ # Server Layer (1 Datei)
80+
│ └── src/
81+
│ └── lib.rs # Axum HTTP API, SSE Streaming
82+
└── compat-harness/ # Compat-Harness (1 Datei)
83+
└── src/
84+
└── lib.rs # Upstream TS Source Extraction
85+
```
86+
87+
---
88+
89+
## API Layer
90+
91+
Der API Layer abstrahiert den Zugriff auf verschiedene LLM-Provider:
92+
93+
```rust
94+
// Provider Trait
95+
pub trait Provider {
96+
async fn stream(&self, request: MessageRequest) -> Result<StreamEvent>;
97+
fn models(&self) -> Vec<ModelInfo>;
98+
}
99+
100+
// OpenAI Provider
101+
let client = OpenSinApiClient::new(api_key, base_url);
102+
let events = client.stream(request).await?;
103+
```
104+
105+
### Unterstützte Provider
106+
107+
- **OpenSinApi** — OpenAI API via OCI Proxy
108+
- **OpenAICompat** — OpenAI/xAI kompatible Endpunkte
109+
110+
---
111+
112+
## Runtime Layer
113+
114+
### Core Agent Loop
115+
116+
```rust
117+
let mut conversation = Conversation::new(config);
118+
loop {
119+
let response = client.stream(conversation.messages()).await?;
120+
conversation.add_assistant(response);
121+
122+
for tool_call in response.tool_calls {
123+
let result = tools.execute(&tool_call).await?;
124+
conversation.add_tool_result(tool_call.id, result);
125+
}
126+
}
127+
```
128+
129+
### Session Compaction
130+
131+
Der Compaction-Algorithmus reduziert den Kontext wenn das Token-Limit erreicht wird:
132+
133+
1. **Micro-Compact** — Einzelne Tool-Aufrufe zusammenfassen
134+
2. **Session Memory Compact** — Ältere Nachrichten komprimieren
135+
3. **Full Compact** — Gesamte Konversation zusammenfassen
136+
137+
---
138+
139+
## Built-in Tools (19)
140+
141+
| Tool | Beschreibung |
142+
|------|-------------|
143+
| BashTool | Shell Command Execution |
144+
| ReadFileTool | Datei lesen |
145+
| WriteFileTool | Datei schreiben |
146+
| EditFileTool | Datei bearbeiten (Suchen/Ersetzen) |
147+
| GlobSearchTool | Datei-Globbing |
148+
| GrepSearchTool | Text-Suche |
149+
| WebFetchTool | URL-Inhalte abrufen |
150+
| WebSearchTool | Websuche |
151+
| TodoWriteTool | Todo-Liste verwalten |
152+
| SkillTool | Skill-Ausführung |
153+
| AgentTool | Sub-Agent spawnen |
154+
| ToolSearchTool | Deferred Tool Discovery |
155+
| NotebookEditTool | Jupyter Notebook bearbeiten |
156+
| SleepTool | Verzögerung |
157+
| BriefTool | Session-Zusammenfassung |
158+
| ConfigTool | Konfiguration (internal) |
159+
| StructuredOutputTool | Strukturierte Ausgabe |
160+
| REPLTool | REPL VM (internal) |
161+
| PowerShellTool | PowerShell Execution |
162+
163+
---
164+
165+
## CLI Layer
166+
167+
Der Rust CLI (`sin-cli`) bietet einen vollständigen REPL-Modus:
168+
169+
```bash
170+
# Interaktiver Modus
171+
sin
172+
173+
# Mit Prompt
174+
sin "Erkläre die Codebasis"
175+
176+
# Non-interactive
177+
sin --print "Review this file"
178+
179+
# Mit Model
180+
sin --model opus "Analyse this"
181+
```
182+
183+
### Features
184+
185+
- **REPL** — Interaktive Eingabe mit History
186+
- **Vim-Mode** — Vim-style Line Editor
187+
- **Markdown Rendering** — Syntax Highlighting, Code Blocks
188+
- **Spinner** — Animierte Ladeanzeige
189+
- **Slash Commands** — 27+ integrierte Befehle
190+
191+
---
192+
193+
## Plugin System
194+
195+
Plugins können Hooks, Commands, Agents und Skills registrieren:
196+
197+
```json
198+
{
199+
"name": "sin-mein-plugin",
200+
"version": "1.0.0",
201+
"hooks": {
202+
"PreToolUse": [
203+
{
204+
"matcher": "Bash",
205+
"command": "python3 ${OPENSIN_PLUGIN_ROOT}/hooks/validate.py"
206+
}
207+
]
208+
}
209+
}
210+
```
211+
212+
---
213+
214+
## Bauen
215+
216+
```bash
217+
cd packages/opensin-engine
218+
cargo build --release
219+
cargo test
220+
```
221+
222+
---
223+
224+
*Zuletzt aktualisiert: 2026-04-07 | OpenSIN-AI*

0 commit comments

Comments
 (0)