1import type { ClaudeModelCatalog } from "./ClaudeModelCatalog.ts";
2
3// Transport tests must stay independent of bundled or remote manifest contents.
4// Keep every model, alias, capability, and runtime mapping in this fixture synthetic.
5export const SYNTHETIC_CLAUDE_CAPABLE_MODEL = "claude-synthetic-capable";
6export const SYNTHETIC_CLAUDE_COLLIDING_ALIAS = "synthetic-collision";
7export const SYNTHETIC_CLAUDE_STANDARD_MODEL = "claude-synthetic-standard";
8export const SYNTHETIC_CLAUDE_THINKING_MODEL = "claude-synthetic-thinking";
9
10const effort = {
11 id: "effort",
12 label: "Reasoning",
13 type: "select" as const,
14 options: [
15 { id: "low", label: "Low" },
16 { id: "high", label: "High", isDefault: true },
17 { id: "max", label: "Max" },
18 { id: "ultrathink", label: "Ultrathink" },
19 ],
20 promptInjectedValues: ["ultrathink"],
21};
22
23const contextWindow = {
24 id: "contextWindow",
25 label: "Context Window",
26 type: "select" as const,
27 options: [
28 { id: "standard", label: "Standard" },
29 { id: "expanded", label: "Expanded", isDefault: true },
30 ],
31};
32
33const runtime = {
34 effortMap: { ultrathink: null },
35 modelSuffixes: { contextWindow: { expanded: "[expanded]" } },
36 contextWindowTokens: { standard: 200_000, expanded: 1_000_000 },
37};
38
39export const SYNTHETIC_CLAUDE_MODEL_CATALOG: ClaudeModelCatalog = {
40 models: [
41 {
42 model: {
43 slug: SYNTHETIC_CLAUDE_CAPABLE_MODEL,
44 name: "Claude Synthetic Capable",
45 aliases: [SYNTHETIC_CLAUDE_COLLIDING_ALIAS],
46 isCustom: false,
47 capabilities: {
48 optionDescriptors: [
49 effort,
50 { id: "fastMode", label: "Fast Mode", type: "boolean" },
51 contextWindow,
52 ],
53 },
54 },
55 runtime,
56 compatibility: {},
57 },
58 {
59 model: {
60 slug: SYNTHETIC_CLAUDE_STANDARD_MODEL,
61 name: "Claude Synthetic Standard",
62 isCustom: false,
63 capabilities: {
64 optionDescriptors: [effort, contextWindow],
65 },
66 },
67 runtime,
68 compatibility: {},
69 },
70 {
71 model: {
72 slug: SYNTHETIC_CLAUDE_THINKING_MODEL,
73 name: "Claude Synthetic Thinking",
74 isCustom: false,
75 capabilities: {
76 optionDescriptors: [{ id: "thinking", label: "Thinking", type: "boolean" }],
77 },
78 },
79 runtime: {},
80 compatibility: {},
81 },
82 ],
83};