# Copilot Ld Copilot Ld Libtype

> libtype Skill

- Skill: `tomevault-io/copilot-ld-copilot-ld-libtype` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/copilot-ld-copilot-ld-libtype`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/copilot-ld-copilot-ld-libtype/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/copilot-ld-copilot-ld-libtype

---


# libtype Skill

## When to Use

- Creating typed protobuf messages
- Sharing types across services
- Working with gRPC request/response objects
- Generating resource identifiers

## Key Concepts

**Namespaces**: Types organized by domain (common, agent, memory, graph, etc.).

**fromObject()**: Preferred method to create type instances from plain objects.

**identifier()**: Method on common types to generate resource identifiers.

## Usage Patterns

### Pattern 1: Create typed message

```javascript
import { agent, common } from "@copilot-ld/libtype";

const request = agent.Request.fromObject({
  resourceId: common.ResourceId.fromObject({
    type: "conversation",
    id: "abc123",
  }),
  content: "Hello, assistant!",
});
```

### Pattern 2: Generate identifier

```javascript
import { common } from "@copilot-ld/libtype";

const resourceId = common.ResourceId.fromObject({ type: "message" });
const id = resourceId.identifier(); // "message:uuid"
```

## Integration

Generated by libcodegen from proto/ files. Used by all services and librpc.

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/copilot-ld) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

