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
This commit is contained in:
Colin McDonnell
2026-03-12 17:45:15 +00:00
committed by pullfrog[bot]
parent df9598ea5f
commit cbbcb64859
6 changed files with 13 additions and 6 deletions
+1
View File
@@ -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
+5 -4
View File
@@ -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;
}
+4 -2
View File
@@ -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) {
+1
View File
@@ -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",
+1
View File
@@ -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();
+1
View File
@@ -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",