./.agents/skills/rig/engines/anthropic.ts |
Implements anthropicEngine, an AgentFactory that wraps the Anthropic SDK’s beta tool-runner to send prompts and handle tool calls. It preserves conversation history across turns and supports configurable max tokens and iterations. |
./.agents/skills/rig/engines/codex.ts |
Implements codexEngine, an AgentFactory backed by OpenAI’s Codex SDK that creates a persistent thread for multi-turn conversations. It does not support Rig tools and forwards system messages as developer instructions. |
./.agents/skills/rig/engines/gemini.ts |
Implements geminiEngine, an AgentFactory that drives the Gemini CLI as a subprocess over stdin/stdout using JSON line-delimited messages. It manages session IDs across turns and does not support Rig tools. |
./.agents/skills/rig/engines/pi.ts |
Implements piEngine, an AgentFactory wrapping the @earendil-works/pi-agent-core library to run multi-turn agent conversations with tool support. It maps Rig tool definitions to the Pi agent’s tool schema format. |
./.agents/skills/rig/engines/utils.ts |
Provides two small shared utility functions for engine adapters: objectToolSchema validates that a Rig tool’s parameter schema is an object type, and toolResultText serializes a tool result to a string. |
./.agents/skills/rig/globals.ts |
Exports ambient workflow context helpers (call, pipeline, parallel) as module-level functions that delegate to the currently active workflow via currentWorkflow(). This allows rig programs to avoid threading context explicitly through every function. |
./.agents/skills/rig/rig.ts |
The core runtime module of the Rig framework, providing typed multi-agent orchestration with input/output schemas, prompt intents, sub-agent delegation, workflow management, and a Copilot SDK backend. It defines all central types (Agent, AgentFn, Tool, Schema, Workflow, etc.) and the launcher CLI. |
./scripts/haiku.integration.test.ts |
An integration test that spawns real rig sample programs (haiku, sonnet, complex) as subprocesses and verifies end-to-end output when a real Copilot token or SDK URI is available. Tests are skipped if no credentials are present. |
./scripts/run-sample.test.ts |
A test harness that runs rig sample programs with a stubbed Copilot SDK client that returns shape-conforming responses, enabling offline/unit-level testing of samples. It uses Vitest mocks to replace @github/copilot-sdk with controllable fakes. |
./skills/rig/engines/anthropic.ts |
Identical in purpose to .agents/skills/rig/engines/anthropic.ts — the production copy of the Anthropic engine adapter that wraps the Anthropic SDK tool-runner with conversation history management. |
./skills/rig/engines/codex.ts |
Identical in purpose to .agents/skills/rig/engines/codex.ts — the production copy of the Codex engine adapter that manages a persistent OpenAI Codex thread for multi-turn agent runs. |
./skills/rig/engines/gemini.ts |
Identical in purpose to .agents/skills/rig/engines/gemini.ts — the production copy of the Gemini engine adapter that spawns the Gemini CLI as a child process and communicates via JSON over stdio. |
./skills/rig/engines/pi.ts |
Identical in purpose to .agents/skills/rig/engines/pi.ts — the production copy of the Pi engine adapter that bridges Rig’s tool and agent interfaces to the @earendil-works/pi-agent-core library. |
./skills/rig/engines/utils.ts |
Shared utilities for engine adapters providing tool schema validation and result serialization. |
./skills/rig/globals.ts |
Exports ambient call/pipeline/parallel helpers that automatically resolve to the active workflow context. |
./skills/rig/rig.ts |
The authoritative production copy of the core Rig runtime, defining all types, the multi-agent orchestration engine, workflow system, and Copilot SDK integration. |
./src/engines/anthropic.test.ts |
Unit tests for anthropicEngine using Vitest with a mocked Anthropic SDK. Verifies tool runner invocation, conversation history preservation, tool call handling, and abort signal propagation. |
./src/engines/codex.test.ts |
Unit tests for codexEngine using Vitest with a mocked @openai/codex-sdk. Verifies thread creation, multi-turn conversation, system message forwarding, and that Rig tools are rejected with an error. |
./src/engines/copilot.test.ts |
Unit tests for copilotEngine (the default GitHub Copilot SDK engine) using a mocked @github/copilot-sdk. Covers URI vs stdio connection selection, session lifecycle, and request/response handling. |
./src/engines/gemini.test.ts |
Unit tests for geminiEngine using a mocked node:child_process spawn. Verifies subprocess spawning, JSON session ID persistence across turns, tool rejection, error handling, and process cleanup on close. |
Global Summary
Rig is a TypeScript multi-agent orchestration framework built around GitHub Copilot as its default LLM backend, with pluggable engine adapters for Anthropic, OpenAI Codex, Google Gemini CLI, and Pi-agent. It provides a strongly-typed agent definition system (with input/output schemas, prompt intents, tool definitions, and middleware addons), a workflow/pipeline orchestration layer, and a launcher CLI for running agent programs as subprocesses. The repository is structured with a canonical
skills/rig/source tree, a mirrored.agents/skills/rig/copy (likely used for self-hosting the agent), and asrc/directory containing unit tests and sample programs that exercise the full stack.Individual File Summaries
./.agents/skills/rig/engines/anthropic.tsanthropicEngine, anAgentFactorythat wraps the Anthropic SDK’s beta tool-runner to send prompts and handle tool calls. It preserves conversation history across turns and supports configurable max tokens and iterations../.agents/skills/rig/engines/codex.tscodexEngine, anAgentFactorybacked by OpenAI’s Codex SDK that creates a persistent thread for multi-turn conversations. It does not support Rig tools and forwards system messages as developer instructions../.agents/skills/rig/engines/gemini.tsgeminiEngine, anAgentFactorythat drives the Gemini CLI as a subprocess over stdin/stdout using JSON line-delimited messages. It manages session IDs across turns and does not support Rig tools../.agents/skills/rig/engines/pi.tspiEngine, anAgentFactorywrapping the@earendil-works/pi-agent-corelibrary to run multi-turn agent conversations with tool support. It maps Rig tool definitions to the Pi agent’s tool schema format../.agents/skills/rig/engines/utils.tsobjectToolSchemavalidates that a Rig tool’s parameter schema is an object type, andtoolResultTextserializes a tool result to a string../.agents/skills/rig/globals.tscall,pipeline,parallel) as module-level functions that delegate to the currently active workflow viacurrentWorkflow(). This allows rig programs to avoid threading context explicitly through every function../.agents/skills/rig/rig.ts./scripts/haiku.integration.test.ts./scripts/run-sample.test.ts@github/copilot-sdkwith controllable fakes../skills/rig/engines/anthropic.ts.agents/skills/rig/engines/anthropic.ts— the production copy of the Anthropic engine adapter that wraps the Anthropic SDK tool-runner with conversation history management../skills/rig/engines/codex.ts.agents/skills/rig/engines/codex.ts— the production copy of the Codex engine adapter that manages a persistent OpenAI Codex thread for multi-turn agent runs../skills/rig/engines/gemini.ts.agents/skills/rig/engines/gemini.ts— the production copy of the Gemini engine adapter that spawns the Gemini CLI as a child process and communicates via JSON over stdio../skills/rig/engines/pi.ts.agents/skills/rig/engines/pi.ts— the production copy of the Pi engine adapter that bridges Rig’s tool and agent interfaces to the@earendil-works/pi-agent-corelibrary../skills/rig/engines/utils.ts./skills/rig/globals.tscall/pipeline/parallelhelpers that automatically resolve to the active workflow context../skills/rig/rig.ts./src/engines/anthropic.test.tsanthropicEngineusing Vitest with a mocked Anthropic SDK. Verifies tool runner invocation, conversation history preservation, tool call handling, and abort signal propagation../src/engines/codex.test.tscodexEngineusing Vitest with a mocked@openai/codex-sdk. Verifies thread creation, multi-turn conversation, system message forwarding, and that Rig tools are rejected with an error../src/engines/copilot.test.tscopilotEngine(the default GitHub Copilot SDK engine) using a mocked@github/copilot-sdk. Covers URI vs stdio connection selection, session lifecycle, and request/response handling../src/engines/gemini.test.tsgeminiEngineusing a mockednode:child_processspawn. Verifies subprocess spawning, JSON session ID persistence across turns, tool rejection, error handling, and process cleanup on close.