diff --git a/scripts/resolvers/preamble.ts b/scripts/resolvers/preamble.ts index f7057452..6404ae78 100644 --- a/scripts/resolvers/preamble.ts +++ b/scripts/resolvers/preamble.ts @@ -13,12 +13,14 @@ import type { TemplateContext } from './types'; */ function generatePreambleBash(ctx: TemplateContext): string { - const runtimeRoot = ctx.host === 'codex' + const hostConfigDir: Record = { codex: '.codex', factory: '.factory' }; + const runtimeRoot = (ctx.host !== 'claude') ? `_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) -GSTACK_ROOT="$HOME/.codex/skills/gstack" -[ -n "$_ROOT" ] && [ -d "$_ROOT/.agents/skills/gstack" ] && GSTACK_ROOT="$_ROOT/.agents/skills/gstack" +GSTACK_ROOT="$HOME/${hostConfigDir[ctx.host]}/skills/gstack" +[ -n "$_ROOT" ] && [ -d "$_ROOT/${ctx.paths.localSkillRoot}" ] && GSTACK_ROOT="$_ROOT/${ctx.paths.localSkillRoot}" GSTACK_BIN="$GSTACK_ROOT/bin" GSTACK_BROWSE="$GSTACK_ROOT/browse/dist" +GSTACK_DESIGN="$GSTACK_ROOT/design/dist" ` : ''; diff --git a/scripts/resolvers/types.ts b/scripts/resolvers/types.ts index f2ba80c9..891ea0cd 100644 --- a/scripts/resolvers/types.ts +++ b/scripts/resolvers/types.ts @@ -1,4 +1,4 @@ -export type Host = 'claude' | 'codex'; +export type Host = 'claude' | 'codex' | 'factory'; export interface HostPaths { skillRoot: string; @@ -23,6 +23,13 @@ export const HOST_PATHS: Record = { browseDir: '$GSTACK_BROWSE', designDir: '$GSTACK_DESIGN', }, + factory: { + skillRoot: '$GSTACK_ROOT', + localSkillRoot: '.factory/skills/gstack', + binDir: '$GSTACK_BIN', + browseDir: '$GSTACK_BROWSE', + designDir: '$GSTACK_DESIGN', + }, }; export interface TemplateContext { diff --git a/scripts/resolvers/utility.ts b/scripts/resolvers/utility.ts index 48e9c0d8..660e4ec5 100644 --- a/scripts/resolvers/utility.ts +++ b/scripts/resolvers/utility.ts @@ -370,5 +370,8 @@ export function generateCoAuthorTrailer(ctx: TemplateContext): string { if (ctx.host === 'codex') { return 'Co-Authored-By: OpenAI Codex '; } + if (ctx.host === 'factory') { + return 'Co-Authored-By: Factory Droid '; + } return 'Co-Authored-By: Claude Opus 4.6 '; }