Initial commit: add .gitignore and README
Some checks failed
Tests / test (3.10) (push) Has been cancelled
Tests / test (3.11) (push) Has been cancelled
Tests / test (3.12) (push) Has been cancelled
Tests / lint (push) Has been cancelled
Tests / docker (push) Has been cancelled

This commit is contained in:
defiQUG
2026-02-09 21:51:42 -08:00
commit c052b07662
3146 changed files with 808305 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
"""Skill schemas for AGI skill library and compilation."""
from datetime import datetime, timezone
from enum import Enum
from typing import Any
from pydantic import BaseModel, Field, field_validator
def _utc_now() -> datetime:
return datetime.now(timezone.utc)
class SkillKind(str, Enum):
"""Type of skill."""
WORKFLOW = "workflow"
PROCEDURE = "procedure"
TOOL_NATIVE = "tool_native"
COMPOSITE = "composite"
class Skill(BaseModel):
"""Reusable skill: declarative description + executable steps."""
skill_id: str = Field(..., min_length=1)
name: str = Field(..., min_length=1)
description: str = Field(default="")
kind: SkillKind = Field(default=SkillKind.WORKFLOW)
steps: list[dict[str, Any]] = Field(default_factory=list, description="Declarative steps (plan-like)")
tool_names: list[str] = Field(default_factory=list, description="Tools this skill uses")
version: int = Field(default=1, ge=1)
metadata: dict[str, Any] = Field(default_factory=dict)
created_at: datetime = Field(default_factory=_utc_now)
@field_validator("skill_id", "name")
@classmethod
def validate_non_whitespace(cls, v: str) -> str:
if not v.strip():
raise ValueError("Field cannot be empty or whitespace")
return v
class SkillVersionInfo(BaseModel):
"""Version and performance tracking for a skill."""
skill_id: str = Field(..., min_length=1)
version: int = Field(..., ge=1)
success_count: int = Field(default=0, ge=0)
failure_count: int = Field(default=0, ge=0)
last_success_at: datetime | None = Field(default=None)
regression_test_ids: list[str] = Field(default_factory=list)