mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-30 08:17:53 +00:00
Extract the skills system into a standalone `ironclaw_skills` crate (following the ironclaw_safety pattern) and wire it into the v2 engine for deterministic skill selection, CodeAct code injection, and confidence tracking. **ironclaw_skills crate** (94 tests): - Core types: SkillManifest, ActivationCriteria, LoadedSkill, SkillTrust - V2 types: V2SkillMetadata, CodeSnippet, SkillMetrics, V2SkillSource - Deterministic 4-phase selector (gating→scoring→budget→attenuation) - apply_confidence_factor() for extracted skill scoring - SKILL.md parser, validation/escaping, gating, registry, catalog - Feature-gated: catalog (reqwest), registry (filesystem) **Engine integration** (14 new tests): - DocType::Skill with retrieval weight 0.45 - SkillSelector bridges MemoryDoc→LoadedSkill for shared scoring - SkillTracker for usage/version/rollback confidence tracking - System prompt injection via <skill> XML blocks - CodeAct snippet injection via Monty NameLookup - Skill extraction mission replaces playbook extraction - ThreadManager.set_skill_selector() for runtime wiring **Bridge + migration**: - skill_migration.rs: v1 SKILL.md → v2 MemoryDoc (idempotent) - init_engine() migrates v1 skills, builds SkillSelector - src/skills/mod.rs → re-export shim **E2E test** (tests/engine_v2_skill_codeact.rs): - Full CodeAct loop: skill selected → LLM returns Python code → Monty executes http() → mock returns canned GitHub JSON → FINAL() terminates → thread completes with canned data - GitHub SKILL.md in skills/github/ as reference implementation Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
31 lines
958 B
TOML
31 lines
958 B
TOML
[package]
|
|
name = "ironclaw_engine"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
rust-version = "1.92"
|
|
description = "Unified thread-capability-CodeAct execution engine for IronClaw"
|
|
authors = ["NEAR AI <[email protected]>"]
|
|
license = "MIT OR Apache-2.0"
|
|
homepage = "https://github.com/nearai/ironclaw"
|
|
repository = "https://github.com/nearai/ironclaw"
|
|
publish = false
|
|
|
|
[package.metadata.dist]
|
|
dist = false
|
|
|
|
[dependencies]
|
|
async-trait = "0.1"
|
|
ironclaw_skills = { path = "../ironclaw_skills", default-features = false }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
monty = { git = "https://github.com/pydantic/monty.git", branch = "main" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
thiserror = "2"
|
|
tokio = { version = "1", features = ["sync", "time", "macros", "rt"] }
|
|
tracing = "0.1"
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions = "1"
|
|
tokio = { version = "1", features = ["full", "test-util"] }
|