name: libresource description: > libresource - Typed resource management with access control. ResourceIndex stores and retrieves resources with policy-based authorization. toInstance converts objects to typed instances. toResourceId parses URI strings. createResourceIndex factory. Use for persisting structured data, managing entities, and enforcing access control.
libresource Skill
When to Use
- Storing and retrieving typed resources
- Managing entities with access control
- Converting between resource formats
- Building resource-based APIs
Key Concepts
ResourceIndex: Storage-backed index with policy enforcement for resource access.
Resource identifiers: URIs that identify resource type and instance (e.g.,
conversation:abc123).
toInstance: Converts plain objects to properly typed resource instances.
Usage Patterns
Pattern 1: Get resource
import { createResourceIndex } from "@copilot-ld/libresource";
const index = await createResourceIndex(storage, policyIndex);
const resource = await index.get("conversation:abc123", actor);
Pattern 2: Parse resource ID
import { toResourceId } from "@copilot-ld/libresource";
const id = toResourceId("conversation:abc123");
// { type: "conversation", id: "abc123" }
Integration
Used by Memory and Agent services. Works with libpolicy for access control.