programmatic subagents
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore(drivers): include claude haiku default and document catalog sources

+15 -1
+8
README.md
··· 87 87 | `@mill/driver-pi` | Pi driver | 88 88 | `pi-mill` | Pi extension for mill as execution backend | 89 89 90 + Model catalog source by driver: 91 + 92 + - `@mill/driver-pi`: reads `~/.pi/agent/settings.json` (`enabledModels`) by default, unless overridden in config. 93 + - `@mill/driver-claude`: built-in default catalog (`sonnet`, `opus`, `haiku`) unless overridden in config. 94 + - `@mill/driver-codex`: built-in default catalog (`openai-codex/gpt-5.3-codex`) unless overridden in config. 95 + 96 + These driver catalogs flow into CLI help (`mill --help`, `mill <command> --help`) through each driver's `codec.modelCatalog`. In short: driver registration is how model availability is communicated to the CLI/main agent. 97 + 90 98 ## Internals 91 99 92 100 Built on [Effect](https://effect.website). Public API is Promise-based (`src/public/**/*.api.ts`). Engine, drivers, and persistence are Effect-first with Schema-validated domain types.
+2
packages/driver-claude/src/public/index.api.test.ts
··· 26 26 const models = await Runtime.runPromise(runtime)(driver.codec.modelCatalog); 27 27 28 28 expect(models).toContain("anthropic/claude-sonnet-4-6"); 29 + expect(models).toContain("anthropic/claude-opus-4-6"); 30 + expect(models).toContain("anthropic/claude-haiku-4-5"); 29 31 }); 30 32 31 33 it("spawns runtime outputs via generic driver contracts", async () => {
+5 -1
packages/driver-claude/src/public/index.api.ts
··· 7 7 readonly models?: ReadonlyArray<string>; 8 8 } 9 9 10 - const DEFAULT_CLAUDE_MODELS = ["anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-6"] as const; 10 + const DEFAULT_CLAUDE_MODELS = [ 11 + "anthropic/claude-sonnet-4-6", 12 + "anthropic/claude-opus-4-6", 13 + "anthropic/claude-haiku-4-5", 14 + ] as const; 11 15 12 16 const normalizeModelCatalog = (models: ReadonlyArray<string>): ReadonlyArray<string> => 13 17 Array.from(new Set(models.map((model) => model.trim()).filter((model) => model.length > 0)));