Files
gstack/hosts/openclaw.ts
T
Garry TanandClaude Fable 5 3263fffea9 feat(hosts): instruction-only tier — a 2KB committed rules digest any agent host can read
New agents-digest/gstack-AGENTS.md (1,765 bytes, hard 2,048-byte budget):
gstack's ethos one-liners, the reuse ladder, and voice rules for hosts with
no install arm — Zed, Amp, Jules, or any AGENTS.md-reading agent. Generated
by scripts/gen-agents-digest.ts, auto-refreshed by gen:skill-docs, committed
like llms.txt so setup's explainer arms can point at it before any toolchain
exists. First line carries the gstack version as its own staleness nudge.

Delivery is print-path + user-performed copy ONLY: setup never writes or
overwrites a user's AGENTS.md (a test pins this — no cp/ln/mv/redirect into
AGENTS.md anywhere in setup). openclaw and hermes explainer arms print the
path; slate keeps routing to the full Claude install and gbrain ships from
its own repo. HostConfig gains the optional install.instructionTier slot,
declared by both instruction-tier hosts. README host table now matches what
setup actually does.

Inspired by dietrichgebert/ponytail's instruction-tier AGENTS.md fallback —
one generated source, never per-host hand copies.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 01:54:36 +00:00

26 lines
839 B
TypeScript

import { defineHost, CROSS_MODEL_RESOLVERS, GBRAIN_RESOLVERS, EXEC_STYLE_TOOL_REWRITES } from './define-host';
const openclaw = defineHost({
name: 'openclaw',
displayName: 'OpenClaw',
extraPathRewrites: [
{ from: 'CLAUDE.md', to: 'AGENTS.md' },
],
toolRewrites: { ...EXEC_STYLE_TOOL_REWRITES },
// Suppress Claude-specific preamble sections that don't apply to OpenClaw
suppressedResolvers: [...CROSS_MODEL_RESOLVERS, ...GBRAIN_RESOLVERS],
// No full install arm — users can hand-copy the instruction-only digest
// (setup's explainer arm prints this path; never auto-copied).
install: {
linkingStrategy: 'symlink-generated',
instructionTier: { rulesFile: 'agents-digest/gstack-AGENTS.md' },
},
coAuthorTrailer: 'Co-Authored-By: OpenClaw Agent <agent@openclaw.ai>',
});
export default openclaw;