@intentic/sandbox-contract 1.140.1 → 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.
@@ -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;CAC3C;AAgBD,eAAO,MAAM,gBAAgB,OAAQ,MAAM,KAAG,aAAa,GAAG,SAG7D,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"}
@@ -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":"AAYA,MAAM,KAAK,GAA4D;IACnE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE;IACzH,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE;IACxH,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;IAC1G,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE;IACrI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;IAClH,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;IACxG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE;IACpH,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;IACjG,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE;IACvG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;IAC3F,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;CAC3E,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"}
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.140.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.140.1"
48
+ "@intentic/extension-api": "1.141.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/node": "24.13.2",
@@ -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 => {