diff --git a/.changeset/scaffold-gpt5-pnpm.md b/.changeset/scaffold-gpt5-pnpm.md new file mode 100644 index 00000000..f4f66125 --- /dev/null +++ b/.changeset/scaffold-gpt5-pnpm.md @@ -0,0 +1,5 @@ +--- +"@dawn-ai/evals": patch +--- + +Default example/scaffold model is now `gpt-5-mini` (the basic scaffold template, README/package-README examples, landing snippets, AGENTS.md template, prompts, and the `llmJudge` default) — finishing the move off `gpt-4o-mini`. Scaffold templates also pre-approve esbuild's build script (`pnpm.onlyBuiltDependencies`) so `pnpm install` works non-interactively in CI and Docker. diff --git a/README.md b/README.md index a53ff903..22ad0c34 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ const greet = tool(async ({ name }) => `Hello, ${name}!`, { schema: z.object({ name: z.string() }), }) -const model = new ChatOpenAI({ model: "gpt-4o-mini" }).bindTools([greet]) +const model = new ChatOpenAI({ model: "gpt-5-mini" }).bindTools([greet]) const tools = new ToolNode([greet]) async function callModel(state: typeof MessagesAnnotation.State) { @@ -82,7 +82,7 @@ export const graph = new StateGraph(MessagesAnnotation) import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "You are a helpful assistant for the {tenant} organization.", }) ``` @@ -131,7 +131,7 @@ Dawn routes live under `src/app` and export one runtime entry. New agent routes import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "You are a helpful assistant for the {tenant} organization.", retry: { maxAttempts: 3, baseDelay: 250 }, }) diff --git a/apps/web/app/components/landing/FeatureRouting.tsx b/apps/web/app/components/landing/FeatureRouting.tsx index 06d217ca..d087526e 100644 --- a/apps/web/app/components/landing/FeatureRouting.tsx +++ b/apps/web/app/components/landing/FeatureRouting.tsx @@ -6,7 +6,7 @@ const ROUTE_CODE = `// src/app/(public)/support/index.ts import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "Answer for {tenant}.", }) diff --git a/apps/web/app/components/landing/Hero.tsx b/apps/web/app/components/landing/Hero.tsx index 71c1adf1..d98cff8d 100644 --- a/apps/web/app/components/landing/Hero.tsx +++ b/apps/web/app/components/landing/Hero.tsx @@ -8,7 +8,7 @@ import { Eyebrow } from "../ui/Eyebrow" const ROUTE_CODE = `import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "Answer for {tenant}.", })` diff --git a/apps/web/content/prompts/index.ts b/apps/web/content/prompts/index.ts index 84b96dee..cfe66cbd 100644 --- a/apps/web/content/prompts/index.ts +++ b/apps/web/content/prompts/index.ts @@ -125,7 +125,7 @@ const WRITE_A_ROUTE = `Help me add a new route to an existing Dawn app. Routes a import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "You are a helpful assistant.", }) \`\`\` diff --git a/apps/web/content/templates/AGENTS.md b/apps/web/content/templates/AGENTS.md index f74846f4..d29c1e45 100644 --- a/apps/web/content/templates/AGENTS.md +++ b/apps/web/content/templates/AGENTS.md @@ -34,7 +34,7 @@ Example: `src/app/(public)/hello/[tenant]/index.ts` → pathname `/hello/[tenant import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "You are a helpful assistant for the {tenant} organization.", // Optional retry policy: diff --git a/packages/devkit/templates/app-basic/package.json.template b/packages/devkit/templates/app-basic/package.json.template index d6066b2d..544821b2 100644 --- a/packages/devkit/templates/app-basic/package.json.template +++ b/packages/devkit/templates/app-basic/package.json.template @@ -23,5 +23,8 @@ "@types/node": "25.6.0", "typescript": "6.0.2", "vitest": "4.1.4" + }, + "pnpm": { + "onlyBuiltDependencies": ["esbuild"] } } diff --git a/packages/devkit/templates/app-basic/src/app/(public)/hello/[tenant]/index.ts b/packages/devkit/templates/app-basic/src/app/(public)/hello/[tenant]/index.ts index 65cb48df..2a2db7af 100644 --- a/packages/devkit/templates/app-basic/src/app/(public)/hello/[tenant]/index.ts +++ b/packages/devkit/templates/app-basic/src/app/(public)/hello/[tenant]/index.ts @@ -1,7 +1,7 @@ import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "You are a helpful assistant for the {tenant} organization. Answer questions about the tenant.", }) diff --git a/packages/devkit/templates/app-research/package.json.template b/packages/devkit/templates/app-research/package.json.template index d6066b2d..544821b2 100644 --- a/packages/devkit/templates/app-research/package.json.template +++ b/packages/devkit/templates/app-research/package.json.template @@ -23,5 +23,8 @@ "@types/node": "25.6.0", "typescript": "6.0.2", "vitest": "4.1.4" + }, + "pnpm": { + "onlyBuiltDependencies": ["esbuild"] } } diff --git a/packages/evals/src/llm-judge.ts b/packages/evals/src/llm-judge.ts index 63f64d35..ea512602 100644 --- a/packages/evals/src/llm-judge.ts +++ b/packages/evals/src/llm-judge.ts @@ -20,7 +20,7 @@ function interpolate(template: string, vars: Record): string { } export function llmJudge(opts: LlmJudgeOptions): Scorer { - const model = opts.model ?? "gpt-4o-mini" + const model = opts.model ?? "gpt-5-mini" return { name: opts.name ?? "llmJudge", ...(opts.threshold !== undefined ? { threshold: opts.threshold } : {}), diff --git a/packages/sdk/README.md b/packages/sdk/README.md index ebdde46c..63f8f2eb 100644 --- a/packages/sdk/README.md +++ b/packages/sdk/README.md @@ -35,7 +35,7 @@ A Dawn route's `index.ts` exports an `agent()` descriptor. The `model` field is import { agent } from "@dawn-ai/sdk" export default agent({ - model: "gpt-4o-mini", + model: "gpt-5-mini", systemPrompt: "You are a helpful assistant.", retry: { maxAttempts: 3, baseDelay: 250 }, }) diff --git a/test/generated/fixtures/basic.expected.json b/test/generated/fixtures/basic.expected.json index dfbd68e0..e971cf72 100644 --- a/test/generated/fixtures/basic.expected.json +++ b/test/generated/fixtures/basic.expected.json @@ -24,6 +24,11 @@ "@types/node": "", "typescript": "", "vitest": "" + }, + "pnpm": { + "onlyBuiltDependencies": [ + "esbuild" + ] } }, "verifyJson": { @@ -48,8 +53,14 @@ "status": "passed" }, { - "missingEnvVars": ["OPENAI_API_KEY"], - "missingPackages": ["@langchain/core", "@langchain/openai", "@langchain/langgraph"], + "missingEnvVars": [ + "OPENAI_API_KEY" + ], + "missingPackages": [ + "@langchain/core", + "@langchain/openai", + "@langchain/langgraph" + ], "name": "deps", "status": "warning" } diff --git a/test/generated/fixtures/custom-app-dir.expected.json b/test/generated/fixtures/custom-app-dir.expected.json index 5d83a51d..19e41bc9 100644 --- a/test/generated/fixtures/custom-app-dir.expected.json +++ b/test/generated/fixtures/custom-app-dir.expected.json @@ -24,6 +24,11 @@ "@types/node": "", "typescript": "", "vitest": "" + }, + "pnpm": { + "onlyBuiltDependencies": [ + "esbuild" + ] } }, "verifyJson": { @@ -48,8 +53,14 @@ "status": "passed" }, { - "missingEnvVars": ["OPENAI_API_KEY"], - "missingPackages": ["@langchain/core", "@langchain/openai", "@langchain/langgraph"], + "missingEnvVars": [ + "OPENAI_API_KEY" + ], + "missingPackages": [ + "@langchain/core", + "@langchain/openai", + "@langchain/langgraph" + ], "name": "deps", "status": "warning" } diff --git a/test/generated/run-generated-app.test.ts b/test/generated/run-generated-app.test.ts index 45308612..1e9157dd 100644 --- a/test/generated/run-generated-app.test.ts +++ b/test/generated/run-generated-app.test.ts @@ -478,6 +478,7 @@ async function createExpectedInternalFixture( "@dawn-ai/testing": "", }, pnpm: { + onlyBuiltDependencies: ["esbuild"], overrides: repoOverrides, }, },