Initial import from garrytan/gstack@026751e (main snapshot via local relay)
Some checks failed
Workflow Lint / actionlint (push) Has been cancelled
Build CI Image / build (push) Has been cancelled
Skill Docs Freshness / check-freshness (push) Has been cancelled
Periodic Evals / build-image (push) Has been cancelled
Periodic Evals / evals (map[file:test/codex-e2e.test.ts name:e2e-codex]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/gemini-e2e.test.ts name:e2e-gemini]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-design.test.ts name:e2e-design]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-plan.test.ts name:e2e-plan]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-bugs.test.ts name:e2e-qa-bugs]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-workflow.test.ts name:e2e-qa-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-review.test.ts name:e2e-review]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-workflow.test.ts name:e2e-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-routing-e2e.test.ts name:e2e-routing]) (push) Has been cancelled
Some checks failed
Workflow Lint / actionlint (push) Has been cancelled
Build CI Image / build (push) Has been cancelled
Skill Docs Freshness / check-freshness (push) Has been cancelled
Periodic Evals / build-image (push) Has been cancelled
Periodic Evals / evals (map[file:test/codex-e2e.test.ts name:e2e-codex]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/gemini-e2e.test.ts name:e2e-gemini]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-design.test.ts name:e2e-design]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-plan.test.ts name:e2e-plan]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-bugs.test.ts name:e2e-qa-bugs]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-workflow.test.ts name:e2e-qa-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-review.test.ts name:e2e-review]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-workflow.test.ts name:e2e-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-routing-e2e.test.ts name:e2e-routing]) (push) Has been cancelled
Source: https://github.com/garrytan/gstack/commit/026751e
This commit is contained in:
45
scripts/host-adapters/openclaw-adapter.ts
Normal file
45
scripts/host-adapters/openclaw-adapter.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* OpenClaw host adapter — post-processing content transformer.
|
||||
*
|
||||
* Runs AFTER generic frontmatter/path/tool rewrites from the config system.
|
||||
* Handles semantic transformations that string-replace can't cover:
|
||||
*
|
||||
* 1. AskUserQuestion → prose instructions (tool call → "ask the user")
|
||||
* 2. Agent spawning → sessions_spawn patterns
|
||||
* 3. Browse binary patterns ($B → browser/exec)
|
||||
* 4. Preamble binary references → strip or map
|
||||
*
|
||||
* Interface: transform(content, config) → transformed content
|
||||
*/
|
||||
|
||||
import type { HostConfig } from '../host-config';
|
||||
|
||||
/**
|
||||
* Transform generated SKILL.md content for OpenClaw compatibility.
|
||||
* Called after all generic rewrites (paths, tools, frontmatter) have been applied.
|
||||
*/
|
||||
export function transform(content: string, _config: HostConfig): string {
|
||||
let result = content;
|
||||
|
||||
// 1. AskUserQuestion references → prose
|
||||
result = result.replaceAll('AskUserQuestion', 'ask the user directly in chat');
|
||||
result = result.replaceAll('Use AskUserQuestion', 'Ask the user directly');
|
||||
result = result.replaceAll('use AskUserQuestion', 'ask the user directly');
|
||||
|
||||
// 2. Agent tool references → sessions_spawn
|
||||
result = result.replaceAll('the Agent tool', 'sessions_spawn');
|
||||
result = result.replaceAll('Agent tool', 'sessions_spawn');
|
||||
result = result.replaceAll('subagent_type', 'task parameter');
|
||||
|
||||
// 3. Browse binary patterns
|
||||
result = result.replaceAll('`$B ', '`exec $B ');
|
||||
|
||||
// 4. Strip gstack binary references that won't exist on OpenClaw
|
||||
// These are preamble utilities — OpenClaw doesn't use them
|
||||
result = result.replace(/~\/\.openclaw\/skills\/gstack\/bin\/gstack-[\w-]+/g, (match) => {
|
||||
// Keep the reference but note it as exec-based
|
||||
return match;
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user