ring/platforms/opencode/plugin/hooks/index.ts
Gandalf f85aa61440
feat: add OpenCode platform integration (consolidate ring-for-opencode)
Move OpenCode runtime plugin and installer into Ring monorepo under platforms/opencode/.
The installer reads skills, agents, and commands directly from the Ring monorepo's
canonical directories (default/, dev-team/, pm-team/, etc.) — zero asset duplication.

What's included:
- installer.sh: reads from Ring dirs, applies frontmatter/tool transforms, installs to ~/.config/opencode/
- plugin/: TypeScript runtime (RingUnifiedPlugin) with hooks, lifecycle, loaders
- src/: CLI (doctor, config-manager)
- prompts/: session-start and context-injection templates
- standards/: coding standards (from dev-team/docs/)
- ring.jsonc: default config with full 86-skill/35-agent/33-command inventory

What's NOT included (intentionally):
- assets/ directory: eliminated, content comes from Ring monorepo
- scripts/codereview/: eliminated, replaced by mithril
- using-ring-opencode skill: uses canonical using-ring instead

Transforms applied by installer:
- Agent: type→mode, strip version/changelog/output_schema/input_schema
- Skill: keep name+description frontmatter, body unchanged
- Command: strip argument-hint (unsupported by OpenCode)
- All: normalize tool names (Bash→bash, Read→read, etc.)
- All: strip Model Requirement sections from agents

Replaces: LerianStudio/ring-for-opencode repository
Generated-by: Gandalf
AI-Model: claude-opus-4
2026-03-07 22:46:47 -03:00

30 lines
581 B
TypeScript

/**
* Ring Hook System
*
* Exports all hook types, registry, and utilities.
*/
// Hook factories (will be populated as factories are created)
export * from "./factories/index.js"
export type { HookConfig } from "./registry.js"
// Registry
export {
HookRegistry,
hookRegistry,
isHookDisabled,
} from "./registry.js"
// Type definitions
export type {
Hook,
HookChatHandler,
HookCompactionHandler,
HookContext,
HookEventHandler,
HookFactory,
HookLifecycle,
HookName,
HookOutput,
HookRegistryEntry,
HookResult,
HookSystemHandler,
} from "./types.js"