@intentic/sandbox-contract 1.140.0 → 1.141.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-catalog.d.ts +1 -2
- package/dist/agent-catalog.d.ts.map +1 -1
- package/dist/agent-catalog.js +1 -8
- package/dist/agent-catalog.js.map +1 -1
- package/dist/model-metadata.d.ts +1 -0
- package/dist/model-metadata.d.ts.map +1 -1
- package/dist/model-metadata.js +15 -11
- package/dist/model-metadata.js.map +1 -1
- package/package.json +2 -2
- package/src/agent-catalog.ts +8 -20
- package/src/model-metadata.ts +23 -11
package/dist/agent-catalog.d.ts
CHANGED
|
@@ -12,6 +12,5 @@ export declare const HARNESSES: readonly {
|
|
|
12
12
|
label: string;
|
|
13
13
|
value: AgentHarness;
|
|
14
14
|
}[];
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const modelsFor: (provider: AgentProvider, harness: AgentHarness) => CatalogOption[];
|
|
15
|
+
export declare const modelsFor: (provider: AgentProvider) => CatalogOption[];
|
|
17
16
|
//# sourceMappingURL=agent-catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-catalog.d.ts","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOhF,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B;AAKD,eAAO,MAAM,SAAS,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,EAIxE,CAAC;AAIF,eAAO,MAAM,aAAa,aAAc,aAAa,KAAG,MAAwE,CAAC;AAKjI,eAAO,MAAM,SAAS,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,EAGtE,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-catalog.d.ts","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOhF,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B;AAKD,eAAO,MAAM,SAAS,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,EAIxE,CAAC;AAIF,eAAO,MAAM,aAAa,aAAc,aAAa,KAAG,MAAwE,CAAC;AAKjI,eAAO,MAAM,SAAS,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,EAGtE,CAAC;AAQF,eAAO,MAAM,SAAS,aAAc,aAAa,KAAG,aAAa,EAUhE,CAAC"}
|
package/dist/agent-catalog.js
CHANGED
|
@@ -8,14 +8,7 @@ export const HARNESSES = [
|
|
|
8
8
|
{ label: "Native", value: "native" },
|
|
9
9
|
{ label: "Claude Code", value: "claude-code" },
|
|
10
10
|
];
|
|
11
|
-
export const
|
|
12
|
-
export const modelsFor = (provider, harness) => {
|
|
13
|
-
if (provider === "codex") {
|
|
14
|
-
return harness === "claude-code" ? [{ label: "GPT-5 Codex", value: "gpt-5-codex" }] : [];
|
|
15
|
-
}
|
|
16
|
-
if (provider === "grok") {
|
|
17
|
-
return harness === "claude-code" ? [{ label: "Grok 4", value: "grok-4" }] : [];
|
|
18
|
-
}
|
|
11
|
+
export const modelsFor = (provider) => {
|
|
19
12
|
if (provider === "claude") {
|
|
20
13
|
return [
|
|
21
14
|
{ label: "Opus", value: "opus" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-catalog.js","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,SAAS,GAAwD;IAC1E,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAClC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACnC,CAAC;AAIF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAuB,EAAU,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC;AAKjI,MAAM,CAAC,MAAM,SAAS,GAAsD;IACxE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;CACjD,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-catalog.js","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,SAAS,GAAwD;IAC1E,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAClC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACnC,CAAC;AAIF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAuB,EAAU,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC;AAKjI,MAAM,CAAC,MAAM,SAAS,GAAsD;IACxE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;CACjD,CAAC;AAQF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAuB,EAAmB,EAAE;IAClE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO;YACH,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SACrC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC,CAAC"}
|
package/dist/model-metadata.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type ModelBadge = "reasoning" | "vision" | "fast" | "agentic";
|
|
|
2
2
|
export interface ModelMetadata {
|
|
3
3
|
readonly description?: string;
|
|
4
4
|
readonly badges?: readonly ModelBadge[];
|
|
5
|
+
readonly rank?: number;
|
|
5
6
|
}
|
|
6
7
|
export declare const modelMetadataFor: (id: string) => ModelMetadata | undefined;
|
|
7
8
|
//# sourceMappingURL=model-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-metadata.d.ts","sourceRoot":"","sources":["../src/model-metadata.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"model-metadata.d.ts","sourceRoot":"","sources":["../src/model-metadata.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAIxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwBD,eAAO,MAAM,gBAAgB,OAAQ,MAAM,KAAG,aAAa,GAAG,SAG7D,CAAC"}
|
package/dist/model-metadata.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
const FLAGSHIP = 90;
|
|
2
|
+
const BALANCED = 80;
|
|
3
|
+
const CODING = 65;
|
|
4
|
+
const FAST = 50;
|
|
1
5
|
const RULES = [
|
|
2
|
-
{ pattern: /opus/, metadata: { description: `Deepest reasoning, most capable Claude`, badges: [`reasoning`, `vision`] } },
|
|
3
|
-
{ pattern: /sonnet/, metadata: { description: `Balanced Claude for everyday coding`, badges: [`reasoning`, `vision`] } },
|
|
4
|
-
{ pattern: /haiku/, metadata: { description: `Fastest Claude, light tasks`, badges: [`fast`, `vision`] } },
|
|
5
|
-
{ pattern: /codex.*(mini|nano)|(mini|nano).*codex/, metadata: { description: `Smaller, faster Codex`, badges: [`agentic`, `fast`] } },
|
|
6
|
-
{ pattern: /codex/, metadata: { description: `OpenAI's agentic coding model`, badges: [`agentic`, `reasoning`] } },
|
|
7
|
-
{ pattern: /gpt.*(mini|nano)/, metadata: { description: `Small, fast OpenAI model`, badges: [`fast`] } },
|
|
8
|
-
{ pattern: /gpt/, metadata: { description: `OpenAI flagship, general reasoning`, badges: [`reasoning`, `vision`] } },
|
|
9
|
-
{ pattern: /grok.*(fast|mini)/, metadata: { description: `Speed-first Grok`, badges: [`fast`] } },
|
|
10
|
-
{ pattern: /grok.*code/, metadata: { description: `xAI's coding model`, badges: [`agentic`, `fast`] } },
|
|
11
|
-
{ pattern: /grok/, metadata: { description: `xAI frontier model`, badges: [`reasoning`] } },
|
|
12
|
-
{ pattern: /fast|mini|nano|lite|flash/, metadata: { badges: [`fast`] } },
|
|
6
|
+
{ pattern: /opus/, metadata: { description: `Deepest reasoning, most capable Claude`, badges: [`reasoning`, `vision`], rank: FLAGSHIP } },
|
|
7
|
+
{ pattern: /sonnet/, metadata: { description: `Balanced Claude for everyday coding`, badges: [`reasoning`, `vision`], rank: BALANCED } },
|
|
8
|
+
{ pattern: /haiku/, metadata: { description: `Fastest Claude, light tasks`, badges: [`fast`, `vision`], rank: FAST } },
|
|
9
|
+
{ pattern: /codex.*(mini|nano)|(mini|nano).*codex/, metadata: { description: `Smaller, faster Codex`, badges: [`agentic`, `fast`], rank: FAST } },
|
|
10
|
+
{ pattern: /codex/, metadata: { description: `OpenAI's agentic coding model`, badges: [`agentic`, `reasoning`], rank: CODING } },
|
|
11
|
+
{ pattern: /gpt.*(mini|nano)/, metadata: { description: `Small, fast OpenAI model`, badges: [`fast`], rank: FAST } },
|
|
12
|
+
{ pattern: /gpt/, metadata: { description: `OpenAI flagship, general reasoning`, badges: [`reasoning`, `vision`], rank: FLAGSHIP } },
|
|
13
|
+
{ pattern: /grok.*(fast|mini)/, metadata: { description: `Speed-first Grok`, badges: [`fast`], rank: FAST } },
|
|
14
|
+
{ pattern: /grok.*code/, metadata: { description: `xAI's coding model`, badges: [`agentic`, `fast`], rank: CODING } },
|
|
15
|
+
{ pattern: /grok/, metadata: { description: `xAI frontier model`, badges: [`reasoning`], rank: FLAGSHIP } },
|
|
16
|
+
{ pattern: /fast|mini|nano|lite|flash/, metadata: { badges: [`fast`], rank: FAST } },
|
|
13
17
|
];
|
|
14
18
|
export const modelMetadataFor = (id) => {
|
|
15
19
|
const normalized = id.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-metadata.js","sourceRoot":"","sources":["../src/model-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-metadata.js","sourceRoot":"","sources":["../src/model-metadata.ts"],"names":[],"mappings":"AAmBA,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,IAAI,GAAG,EAAE,CAAC;AAEhB,MAAM,KAAK,GAA4D;IACnE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IACzI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IACxI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACtH,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACjJ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAChI,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACpH,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IACpI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC7G,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACrH,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAC3G,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;CACvF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAA6B,EAAE;IACtE,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC;AACzE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/sandbox-contract",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.141.0",
|
|
4
4
|
"description": "oRPC wire contract for the intentic sandbox daemon — shared by the daemon and its browser client",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@orpc/contract": "1.14.3",
|
|
46
46
|
"tslib": "2.8.1",
|
|
47
47
|
"zod": "4.4.3",
|
|
48
|
-
"@intentic/extension-api": "1.
|
|
48
|
+
"@intentic/extension-api": "1.141.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@types/node": "24.13.2",
|
package/src/agent-catalog.ts
CHANGED
|
@@ -31,25 +31,13 @@ export const HARNESSES: readonly { label: string; value: AgentHarness }[] = [
|
|
|
31
31
|
{ label: "Claude Code", value: "claude-code" },
|
|
32
32
|
];
|
|
33
33
|
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
// (/claude/models · /codex/models · /grok/models — discovery with a persisted/seed floor, never empty), which
|
|
42
|
-
// consumers layer on top. Native codex/grok are empty here (nothing sensible to offer before the live load);
|
|
43
|
-
// Claude's stable tier aliases always resolve to the newest version of each tier, so they double as the
|
|
44
|
-
// pre-load fallback. UNDER the Claude Code harness a non-Claude provider routes through the translator, which
|
|
45
|
-
// needs a concrete id, so codex/grok return one.
|
|
46
|
-
export const modelsFor = (provider: AgentProvider, harness: AgentHarness): CatalogOption[] => {
|
|
47
|
-
if (provider === "codex") {
|
|
48
|
-
return harness === "claude-code" ? [{ label: "GPT-5 Codex", value: "gpt-5-codex" }] : [];
|
|
49
|
-
}
|
|
50
|
-
if (provider === "grok") {
|
|
51
|
-
return harness === "claude-code" ? [{ label: "Grok 4", value: "grok-4" }] : [];
|
|
52
|
-
}
|
|
34
|
+
// The STATIC floor of the model catalog, harness-independent: every provider's real list is the daemon's live
|
|
35
|
+
// catalog (/claude/models · /codex/models · /grok/models — discovery with a persisted/seed floor, never empty),
|
|
36
|
+
// which consumers layer on top. Codex/grok are empty here (nothing sensible to offer before the live load — and
|
|
37
|
+
// under the Claude Code harness they route through the translator, which serves the SAME subscription model ids
|
|
38
|
+
// as the native catalog, so the harness no longer changes the list). Claude's stable tier aliases always resolve
|
|
39
|
+
// to the newest version of each tier, so they double as the pre-load fallback.
|
|
40
|
+
export const modelsFor = (provider: AgentProvider): CatalogOption[] => {
|
|
53
41
|
if (provider === "claude") {
|
|
54
42
|
return [
|
|
55
43
|
{ label: "Opus", value: "opus" },
|
|
@@ -57,6 +45,6 @@ export const modelsFor = (provider: AgentProvider, harness: AgentHarness): Catal
|
|
|
57
45
|
{ label: "Haiku", value: "haiku" },
|
|
58
46
|
];
|
|
59
47
|
}
|
|
60
|
-
//
|
|
48
|
+
// Codex/Grok (live catalog only) and ACP providers (the agent owns its model): nothing static to pick.
|
|
61
49
|
return [];
|
|
62
50
|
};
|
package/src/model-metadata.ts
CHANGED
|
@@ -8,20 +8,32 @@ export type ModelBadge = "reasoning" | "vision" | "fast" | "agentic";
|
|
|
8
8
|
export interface ModelMetadata {
|
|
9
9
|
readonly description?: string;
|
|
10
10
|
readonly badges?: readonly ModelBadge[];
|
|
11
|
+
// Relative capability, strongest-first — the picker sorts each provider's models by this (a version number
|
|
12
|
+
// breaks ties, so within a tier the newest generation leads). Only ever compared WITHIN one provider, so the
|
|
13
|
+
// scale is coarse: FLAGSHIP (deepest) > BALANCED (everyday) > CODING (specialized) > FAST (light/small).
|
|
14
|
+
readonly rank?: number;
|
|
11
15
|
}
|
|
12
16
|
|
|
17
|
+
// The coarse capability tiers `rank` draws from. Compared only within a provider, so absolute values are
|
|
18
|
+
// arbitrary — only the ordering FLAGSHIP > BALANCED > CODING > FAST matters. An id matching no rule below
|
|
19
|
+
// renders rankless and the picker floors it just under BALANCED (a new flagship surfaces rather than sinks).
|
|
20
|
+
const FLAGSHIP = 90;
|
|
21
|
+
const BALANCED = 80;
|
|
22
|
+
const CODING = 65;
|
|
23
|
+
const FAST = 50;
|
|
24
|
+
|
|
13
25
|
const RULES: readonly { pattern: RegExp; metadata: ModelMetadata }[] = [
|
|
14
|
-
{ pattern: /opus/, metadata: { description: `Deepest reasoning, most capable Claude`, badges: [`reasoning`, `vision`] } },
|
|
15
|
-
{ pattern: /sonnet/, metadata: { description: `Balanced Claude for everyday coding`, badges: [`reasoning`, `vision`] } },
|
|
16
|
-
{ pattern: /haiku/, metadata: { description: `Fastest Claude, light tasks`, badges: [`fast`, `vision`] } },
|
|
17
|
-
{ pattern: /codex.*(mini|nano)|(mini|nano).*codex/, metadata: { description: `Smaller, faster Codex`, badges: [`agentic`, `fast`] } },
|
|
18
|
-
{ pattern: /codex/, metadata: { description: `OpenAI's agentic coding model`, badges: [`agentic`, `reasoning`] } },
|
|
19
|
-
{ pattern: /gpt.*(mini|nano)/, metadata: { description: `Small, fast OpenAI model`, badges: [`fast`] } },
|
|
20
|
-
{ pattern: /gpt/, metadata: { description: `OpenAI flagship, general reasoning`, badges: [`reasoning`, `vision`] } },
|
|
21
|
-
{ pattern: /grok.*(fast|mini)/, metadata: { description: `Speed-first Grok`, badges: [`fast`] } },
|
|
22
|
-
{ pattern: /grok.*code/, metadata: { description: `xAI's coding model`, badges: [`agentic`, `fast`] } },
|
|
23
|
-
{ pattern: /grok/, metadata: { description: `xAI frontier model`, badges: [`reasoning`] } },
|
|
24
|
-
{ pattern: /fast|mini|nano|lite|flash/, metadata: { badges: [`fast`] } },
|
|
26
|
+
{ pattern: /opus/, metadata: { description: `Deepest reasoning, most capable Claude`, badges: [`reasoning`, `vision`], rank: FLAGSHIP } },
|
|
27
|
+
{ pattern: /sonnet/, metadata: { description: `Balanced Claude for everyday coding`, badges: [`reasoning`, `vision`], rank: BALANCED } },
|
|
28
|
+
{ pattern: /haiku/, metadata: { description: `Fastest Claude, light tasks`, badges: [`fast`, `vision`], rank: FAST } },
|
|
29
|
+
{ pattern: /codex.*(mini|nano)|(mini|nano).*codex/, metadata: { description: `Smaller, faster Codex`, badges: [`agentic`, `fast`], rank: FAST } },
|
|
30
|
+
{ pattern: /codex/, metadata: { description: `OpenAI's agentic coding model`, badges: [`agentic`, `reasoning`], rank: CODING } },
|
|
31
|
+
{ pattern: /gpt.*(mini|nano)/, metadata: { description: `Small, fast OpenAI model`, badges: [`fast`], rank: FAST } },
|
|
32
|
+
{ pattern: /gpt/, metadata: { description: `OpenAI flagship, general reasoning`, badges: [`reasoning`, `vision`], rank: FLAGSHIP } },
|
|
33
|
+
{ pattern: /grok.*(fast|mini)/, metadata: { description: `Speed-first Grok`, badges: [`fast`], rank: FAST } },
|
|
34
|
+
{ pattern: /grok.*code/, metadata: { description: `xAI's coding model`, badges: [`agentic`, `fast`], rank: CODING } },
|
|
35
|
+
{ pattern: /grok/, metadata: { description: `xAI frontier model`, badges: [`reasoning`], rank: FLAGSHIP } },
|
|
36
|
+
{ pattern: /fast|mini|nano|lite|flash/, metadata: { badges: [`fast`], rank: FAST } },
|
|
25
37
|
];
|
|
26
38
|
|
|
27
39
|
export const modelMetadataFor = (id: string): ModelMetadata | undefined => {
|