repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
Mirrored from https://github.com/yingqi-z20/Agent-libOS
stars
latest
clone command
git clone gitlawb://did:key:z6MkqRzA...RfoM/yingqi-z20-Agen...git clone gitlawb://did:key:z6MkqRzA.../yingqi-z20-Agen...d98dd2c9IPC1d ago| #1 | from __future__ import annotations |
| #2 | |
| #3 | from dataclasses import dataclass, field |
| #4 | from typing import Any |
| #5 | |
| #6 | from agent_libos.models.base import CapabilityID, PID, ToolID, StrEnum |
| #7 | from agent_libos.models.memory import ObjectHandle |
| #8 | |
| #9 | |
| #10 | class ToolCandidateStatus(StrEnum): |
| #11 | PROPOSED = "proposed" |
| #12 | VALIDATED = "validated" |
| #13 | REJECTED = "rejected" |
| #14 | REGISTERED = "registered" |
| #15 | |
| #16 | |
| #17 | @dataclass(frozen=True) |
| #18 | class ToolSpec: |
| #19 | name: str |
| #20 | description: str |
| #21 | version: str = "1.0.0" |
| #22 | input_schema: dict[str, Any] = field(default_factory=dict) |
| #23 | output_schema: dict[str, Any] = field(default_factory=dict) |
| #24 | policy: dict[str, Any] = field(default_factory=dict) |
| #25 | tags: list[str] = field(default_factory=list) |
| #26 | metadata: dict[str, Any] = field(default_factory=dict) |
| #27 | required_capabilities: list[dict[str, Any]] = field(default_factory=list) |
| #28 | side_effects: list[str] = field(default_factory=list) |
| #29 | |
| #30 | |
| #31 | @dataclass |
| #32 | class ToolCandidate: |
| #33 | candidate_id: str |
| #34 | pid: PID |
| #35 | spec: ToolSpec |
| #36 | source_code: str |
| #37 | tests: list[dict[str, Any]] |
| #38 | requested_capabilities: list[dict[str, Any]] |
| #39 | status: ToolCandidateStatus |
| #40 | validation: dict[str, Any] | None |
| #41 | created_at: str |
| #42 | updated_at: str |
| #43 | |
| #44 | |
| #45 | @dataclass(frozen=True) |
| #46 | class ValidationResult: |
| #47 | ok: bool |
| #48 | errors: list[str] = field(default_factory=list) |
| #49 | warnings: list[str] = field(default_factory=list) |
| #50 | logs: str = "" |
| #51 | |
| #52 | |
| #53 | @dataclass(frozen=True) |
| #54 | class ToolHandle: |
| #55 | tool_id: ToolID |
| #56 | name: str |
| #57 | capability_id: CapabilityID | None |
| #58 | scope: str = "ephemeral_process" |
| #59 | |
| #60 | |
| #61 | @dataclass(frozen=True) |
| #62 | class ToolCallResult: |
| #63 | call_id: str |
| #64 | tool_id: ToolID |
| #65 | result_handle: ObjectHandle | None |
| #66 | payload: Any |
| #67 | ok: bool |
| #68 | error: str | None = None |
| #69 |