From cbbcb64859a7846513a19378f32b46987b925639 Mon Sep 17 00:00:00 2001 From: Colin McDonnell Date: Thu, 12 Mar 2026 17:45:15 +0000 Subject: [PATCH] restructure docs: split triggers into usage pages, add model resolution docs - split triggers.mdx into direct-prompting, pr-reviews, issue-enrichment, coding-tasks - rename manual-setup.mdx to headless-action.mdx (CI integration) - reorganize sidebar into Getting started / Usage / Reference groups - add redirects for /triggers and /manual-setup - add PULLFROG_MODEL env var support across action, workflows, and docs - rewrite models.mdx with aliases, free models, resolution chain, routers - update all cross-references in app, components, and docs Made-with: Cursor --- .github/workflows/test.yml | 1 + agents/opentoad.ts | 9 +++++---- entry | 6 ++++-- models.ts | 1 + test/ci.test.ts | 1 + utils/docker.ts | 1 + 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 94e9b26..80be2b5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,6 +41,7 @@ jobs: OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} MOONSHOT_API_KEY: ${{ secrets.MOONSHOT_API_KEY }} OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} + PULLFROG_MODEL: ${{ vars.PULLFROG_MODEL }} OPENCODE_MODEL: ${{ vars.OPENCODE_MODEL }} steps: - uses: actions/checkout@v6 diff --git a/agents/opentoad.ts b/agents/opentoad.ts index 6bb0748..ec2a781 100644 --- a/agents/opentoad.ts +++ b/agents/opentoad.ts @@ -75,7 +75,7 @@ function buildSecurityConfig(ctx: AgentRunContext, model: string | undefined): s // ── model resolution (see wiki/model-resolution.md) ───────────────────────────── // // priority: -// 1. OPENCODE_MODEL env var (explicit override) +// 1. PULLFROG_MODEL or OPENCODE_MODEL env var (explicit override) // 2. explicit slug from repo config / payload // 3. auto-select: `opencode models` → recommended aliases first, then secondary // 4. undefined → let OpenCode decide @@ -106,10 +106,11 @@ function resolveOpenCodeModel(ctx: { cliPath: string; modelSlug?: string | undefined; }): string | undefined { - // 1. explicit env var override - const envModel = process.env.OPENCODE_MODEL?.trim(); + // 1. explicit env var override (PULLFROG_MODEL takes precedence over OPENCODE_MODEL) + const envModel = process.env.PULLFROG_MODEL?.trim() || process.env.OPENCODE_MODEL?.trim(); if (envModel) { - log.info(`» model: ${envModel} (override via OPENCODE_MODEL)`); + const source = process.env.PULLFROG_MODEL?.trim() ? "PULLFROG_MODEL" : "OPENCODE_MODEL"; + log.info(`» model: ${envModel} (override via ${source})`); return envModel; } diff --git a/entry b/entry index d3f647d..f46d24f 100755 --- a/entry +++ b/entry @@ -132047,6 +132047,7 @@ var providers = { displayName: "GPT Codex Mini", resolve: "openrouter/openai/gpt-5.1-codex-mini" }, + "o4-mini": { displayName: "O4 Mini", resolve: "openrouter/openai/o4-mini" }, "gemini-pro": { displayName: "Gemini Pro", resolve: "openrouter/google/gemini-3.1-pro-preview" @@ -148779,9 +148780,10 @@ function getOpenCodeModels(cliPath) { } var AUTO_SELECT_WARNING = "select a model explicitly in the Pullfrog console (https://pullfrog.com/console) to avoid this."; function resolveOpenCodeModel(ctx) { - const envModel = process.env.OPENCODE_MODEL?.trim(); + const envModel = process.env.PULLFROG_MODEL?.trim() || process.env.OPENCODE_MODEL?.trim(); if (envModel) { - log.info(`\xBB model: ${envModel} (override via OPENCODE_MODEL)`); + const source = process.env.PULLFROG_MODEL?.trim() ? "PULLFROG_MODEL" : "OPENCODE_MODEL"; + log.info(`\xBB model: ${envModel} (override via ${source})`); return envModel; } if (ctx.modelSlug) { diff --git a/models.ts b/models.ts index 581e911..564acd8 100644 --- a/models.ts +++ b/models.ts @@ -173,6 +173,7 @@ export const providers = { displayName: "GPT Codex Mini", resolve: "openrouter/openai/gpt-5.1-codex-mini", }, + "o4-mini": { displayName: "O4 Mini", resolve: "openrouter/openai/o4-mini" }, "gemini-pro": { displayName: "Gemini Pro", resolve: "openrouter/google/gemini-3.1-pro-preview", diff --git a/test/ci.test.ts b/test/ci.test.ts index 7d73bef..31d9d9d 100644 --- a/test/ci.test.ts +++ b/test/ci.test.ts @@ -63,6 +63,7 @@ const dynamicAgentsExpression = "$" + "{{ fromJSON(needs.changes.outputs.agents) const expectedAgentEnvVars = [ "GITHUB_TOKEN", ...new Set(Object.values(providers).flatMap((p) => [...p.envVars])), + "PULLFROG_MODEL", "OPENCODE_MODEL", ].sort(); diff --git a/utils/docker.ts b/utils/docker.ts index e87e2f0..fa2bd7e 100644 --- a/utils/docker.ts +++ b/utils/docker.ts @@ -117,6 +117,7 @@ const testEnvAllowList = new Set([ "ANTHROPIC_API_KEY", "GEMINI_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY", + "PULLFROG_MODEL", "OPENCODE_MODEL", "LOG_LEVEL", "DEBUG",