@stigmer/react 0.4.1 → 0.4.2
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/models/ModelSelector.d.ts +34 -18
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +76 -47
- package/models/ModelSelector.js.map +1 -1
- package/models/__tests__/useModelRegistry.test.js +4 -2
- package/models/__tests__/useModelRegistry.test.js.map +1 -1
- package/models/harness.d.ts +26 -2
- package/models/harness.d.ts.map +1 -1
- package/models/harness.js +29 -4
- package/models/harness.js.map +1 -1
- package/models/index.d.ts +5 -5
- package/models/index.d.ts.map +1 -1
- package/models/index.js +2 -2
- package/models/index.js.map +1 -1
- package/models/registry.d.ts +49 -2
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js +45 -3
- package/models/registry.js.map +1 -1
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +7 -12
- package/models/useModelRegistry.js.map +1 -1
- package/package.json +4 -4
- package/src/models/ModelSelector.tsx +234 -97
- package/src/models/__tests__/useModelRegistry.test.tsx +4 -2
- package/src/models/harness.ts +51 -5
- package/src/models/index.ts +5 -5
- package/src/models/registry.ts +96 -3
- package/src/models/useModelRegistry.ts +6 -8
- package/styles.css +1 -1
|
@@ -1,45 +1,61 @@
|
|
|
1
1
|
import { type HarnessOption } from "./harness";
|
|
2
2
|
/** Props for {@link ModelSelector}. */
|
|
3
3
|
export interface ModelSelectorProps {
|
|
4
|
-
/** Currently selected
|
|
4
|
+
/** Currently selected model ID. */
|
|
5
5
|
readonly value?: string;
|
|
6
6
|
/** Called when the user picks a different model. Receives the `modelId`. */
|
|
7
7
|
readonly onValueChange: (modelId: string) => void;
|
|
8
8
|
/**
|
|
9
|
-
* When provided
|
|
10
|
-
* When omitted, shows the
|
|
9
|
+
* Current harness. When provided as a single value, locks the selector
|
|
10
|
+
* to that harness (dropdown hidden). When omitted, shows the harness dropdown.
|
|
11
11
|
*/
|
|
12
12
|
readonly harness?: HarnessOption;
|
|
13
|
+
/** Called when user changes harness in the dropdown. */
|
|
14
|
+
readonly onHarnessChange?: (harness: HarnessOption) => void;
|
|
13
15
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
+
* Restrict which harnesses appear in the dropdown.
|
|
17
|
+
* When omitted, shows all registered harnesses that have models in the registry.
|
|
16
18
|
*/
|
|
17
|
-
readonly
|
|
19
|
+
readonly availableHarnesses?: readonly HarnessOption[];
|
|
20
|
+
/** Override the curated (featured) list for the current harness. */
|
|
21
|
+
readonly curatedModels?: readonly string[];
|
|
22
|
+
/** Grouping in the "Show All" expanded view. Default: "provider". */
|
|
23
|
+
readonly groupBy?: "provider" | "tier" | "none";
|
|
24
|
+
/** Show speed tier badge. Default: true. */
|
|
25
|
+
readonly showSpeedBadge?: boolean;
|
|
26
|
+
/** Show short descriptions in curated view. Default: true. */
|
|
27
|
+
readonly showDescriptions?: boolean;
|
|
28
|
+
/** Compact mode: smaller trigger, no descriptions. Default: false. */
|
|
29
|
+
readonly compact?: boolean;
|
|
18
30
|
/** Additional CSS class names for the trigger button. */
|
|
19
31
|
readonly className?: string;
|
|
20
32
|
/** When true, disables the selector. */
|
|
21
33
|
readonly disabled?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated Use {@link onHarnessChange} instead.
|
|
36
|
+
*/
|
|
37
|
+
readonly onHarnessResolved?: (harness: HarnessOption) => void;
|
|
22
38
|
}
|
|
23
39
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* Shows a curated list of featured models by default. The user can
|
|
27
|
-
* expand via "Show All Models" or type to search the full catalog.
|
|
40
|
+
* Combined harness + model picker with a compact trigger button.
|
|
28
41
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
42
|
+
* Shows a harness dropdown at the top of the popover (when not locked
|
|
43
|
+
* to a single harness), followed by a curated model list scoped to
|
|
44
|
+
* the selected harness. Supports search and progressive disclosure
|
|
45
|
+
* via "Show All Models."
|
|
31
46
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
47
|
+
* The trigger button displays the current selection in compact format:
|
|
48
|
+
* `Harness · Model Name ▾` (or just `Model Name ▾` when harness is locked).
|
|
34
49
|
*
|
|
35
50
|
* @example
|
|
36
51
|
* ```tsx
|
|
37
52
|
* <ModelSelector
|
|
38
|
-
* value={
|
|
39
|
-
* onValueChange={
|
|
40
|
-
*
|
|
53
|
+
* value={modelId}
|
|
54
|
+
* onValueChange={setModelId}
|
|
55
|
+
* harness={harness}
|
|
56
|
+
* onHarnessChange={setHarness}
|
|
41
57
|
* />
|
|
42
58
|
* ```
|
|
43
59
|
*/
|
|
44
|
-
export declare function ModelSelector({ value, onValueChange, harness, onHarnessResolved, className, disabled, }: ModelSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export declare function ModelSelector({ value, onValueChange, harness, onHarnessChange, onHarnessResolved, availableHarnesses, curatedModels, groupBy, showSpeedBadge, showDescriptions, compact, className, disabled, }: ModelSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
45
61
|
//# sourceMappingURL=ModelSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../src/models/ModelSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../src/models/ModelSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAe9E,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,wDAAwD;IACxD,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5D;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACvD,oEAAoE;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,qEAAqE;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAChD,4CAA4C;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,aAAa,EACb,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,OAAoB,EACpB,cAAqB,EACrB,gBAAuB,EACvB,OAAe,EACf,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CAqSpB"}
|
package/models/ModelSelector.js
CHANGED
|
@@ -4,66 +4,97 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
|
4
4
|
import { Popover } from "@base-ui/react/popover";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
6
|
import { useModelRegistry } from "./useModelRegistry";
|
|
7
|
-
import {
|
|
8
|
-
import { HARNESS_LABELS } from "./harness";
|
|
7
|
+
import { HARNESS_META, HARNESS_OPTIONS } from "./harness";
|
|
9
8
|
const COST_TIER_LABEL = {
|
|
10
9
|
economy: "$",
|
|
11
10
|
standard: "$$",
|
|
12
11
|
premium: "$$$",
|
|
13
12
|
};
|
|
13
|
+
const SPEED_TIER_LABEL = {
|
|
14
|
+
fastest: "Fastest",
|
|
15
|
+
fast: "Fast",
|
|
16
|
+
balanced: "Balanced",
|
|
17
|
+
slow: "Powerful",
|
|
18
|
+
};
|
|
14
19
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* Shows a curated list of featured models by default. The user can
|
|
18
|
-
* expand via "Show All Models" or type to search the full catalog.
|
|
20
|
+
* Combined harness + model picker with a compact trigger button.
|
|
19
21
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
+
* Shows a harness dropdown at the top of the popover (when not locked
|
|
23
|
+
* to a single harness), followed by a curated model list scoped to
|
|
24
|
+
* the selected harness. Supports search and progressive disclosure
|
|
25
|
+
* via "Show All Models."
|
|
22
26
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
27
|
+
* The trigger button displays the current selection in compact format:
|
|
28
|
+
* `Harness · Model Name ▾` (or just `Model Name ▾` when harness is locked).
|
|
25
29
|
*
|
|
26
30
|
* @example
|
|
27
31
|
* ```tsx
|
|
28
32
|
* <ModelSelector
|
|
29
|
-
* value={
|
|
30
|
-
* onValueChange={
|
|
31
|
-
*
|
|
33
|
+
* value={modelId}
|
|
34
|
+
* onValueChange={setModelId}
|
|
35
|
+
* harness={harness}
|
|
36
|
+
* onHarnessChange={setHarness}
|
|
32
37
|
* />
|
|
33
38
|
* ```
|
|
34
39
|
*/
|
|
35
|
-
export function ModelSelector({ value, onValueChange, harness, onHarnessResolved, className, disabled, }) {
|
|
36
|
-
const
|
|
37
|
-
const
|
|
40
|
+
export function ModelSelector({ value, onValueChange, harness, onHarnessChange, onHarnessResolved, availableHarnesses, curatedModels, groupBy = "provider", showSpeedBadge = true, showDescriptions = true, compact = false, className, disabled, }) {
|
|
41
|
+
const isHarnessLocked = harness !== undefined;
|
|
42
|
+
const [internalHarness, setInternalHarness] = useState(harness ?? "native");
|
|
43
|
+
const activeHarness = harness ?? internalHarness;
|
|
44
|
+
const { models, featured, defaultModel, getModel, byProvider } = useModelRegistry({ harness: activeHarness });
|
|
38
45
|
const [open, setOpen] = useState(false);
|
|
39
46
|
const [searchQuery, setSearchQuery] = useState("");
|
|
40
47
|
const [showAll, setShowAll] = useState(false);
|
|
41
48
|
const [highlightIdx, setHighlightIdx] = useState(-1);
|
|
42
49
|
const searchRef = useRef(null);
|
|
43
50
|
const listRef = useRef(null);
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return getModel(value);
|
|
53
|
-
}, [value, isUnified, getByKey, getModel]);
|
|
54
|
-
const selectedModel = resolveSelected() ?? defaultModel;
|
|
51
|
+
const resolvedHarnesses = useMemo(() => {
|
|
52
|
+
if (availableHarnesses)
|
|
53
|
+
return availableHarnesses;
|
|
54
|
+
// For now, show native and cursor (the two harnesses with models in the registry).
|
|
55
|
+
// Future harnesses will be added to the registry and appear here automatically.
|
|
56
|
+
return HARNESS_OPTIONS.filter((h) => h === "native" || h === "cursor");
|
|
57
|
+
}, [availableHarnesses]);
|
|
58
|
+
const selectedModel = (value ? getModel(value) : undefined) ?? defaultModel;
|
|
55
59
|
const isSearching = searchQuery.length > 0;
|
|
56
60
|
const lowerQuery = searchQuery.toLowerCase();
|
|
61
|
+
const curatedSet = useMemo(() => {
|
|
62
|
+
if (curatedModels)
|
|
63
|
+
return new Set(curatedModels);
|
|
64
|
+
return null;
|
|
65
|
+
}, [curatedModels]);
|
|
66
|
+
const featuredModels = useMemo(() => {
|
|
67
|
+
if (curatedSet) {
|
|
68
|
+
return models.filter((m) => curatedSet.has(m.modelId));
|
|
69
|
+
}
|
|
70
|
+
return featured;
|
|
71
|
+
}, [models, featured, curatedSet]);
|
|
57
72
|
const visibleModels = useMemo(() => {
|
|
58
73
|
if (isSearching) {
|
|
59
74
|
return models.filter((m) => m.displayName.toLowerCase().includes(lowerQuery)
|
|
60
75
|
|| m.modelId.toLowerCase().includes(lowerQuery)
|
|
61
|
-
||
|
|
76
|
+
|| m.shortDescription.toLowerCase().includes(lowerQuery));
|
|
62
77
|
}
|
|
63
78
|
if (showAll)
|
|
64
79
|
return models;
|
|
65
|
-
return
|
|
66
|
-
}, [models,
|
|
80
|
+
return featuredModels.length > 0 ? featuredModels : models;
|
|
81
|
+
}, [models, featuredModels, isSearching, showAll, lowerQuery]);
|
|
82
|
+
const groupedModels = useMemo(() => {
|
|
83
|
+
if (!showAll || groupBy === "none" || isSearching)
|
|
84
|
+
return null;
|
|
85
|
+
const groups = new Map();
|
|
86
|
+
for (const model of models) {
|
|
87
|
+
const key = groupBy === "provider" ? model.provider : model.costTier;
|
|
88
|
+
const group = groups.get(key);
|
|
89
|
+
if (group) {
|
|
90
|
+
group.push(model);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
groups.set(key, [model]);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return groups;
|
|
97
|
+
}, [models, showAll, groupBy, isSearching]);
|
|
67
98
|
useEffect(() => {
|
|
68
99
|
setHighlightIdx(-1);
|
|
69
100
|
}, [visibleModels]);
|
|
@@ -79,14 +110,17 @@ export function ModelSelector({ value, onValueChange, harness, onHarnessResolved
|
|
|
79
110
|
requestAnimationFrame(() => searchRef.current?.focus());
|
|
80
111
|
}
|
|
81
112
|
}, [open]);
|
|
113
|
+
const handleHarnessChange = useCallback((newHarness) => {
|
|
114
|
+
setInternalHarness(newHarness);
|
|
115
|
+
onHarnessChange?.(newHarness);
|
|
116
|
+
onHarnessResolved?.(newHarness);
|
|
117
|
+
setShowAll(false);
|
|
118
|
+
setSearchQuery("");
|
|
119
|
+
}, [onHarnessChange, onHarnessResolved]);
|
|
82
120
|
const selectModel = useCallback((model) => {
|
|
83
|
-
|
|
84
|
-
onValueChange(key);
|
|
85
|
-
if (isUnified && onHarnessResolved && model.harness !== selectedModel?.harness) {
|
|
86
|
-
onHarnessResolved(model.harness);
|
|
87
|
-
}
|
|
121
|
+
onValueChange(model.modelId);
|
|
88
122
|
setOpen(false);
|
|
89
|
-
}, [
|
|
123
|
+
}, [onValueChange]);
|
|
90
124
|
const scrollHighlightIntoView = useCallback((idx) => {
|
|
91
125
|
const container = listRef.current;
|
|
92
126
|
if (!container)
|
|
@@ -126,18 +160,13 @@ export function ModelSelector({ value, onValueChange, harness, onHarnessResolved
|
|
|
126
160
|
break;
|
|
127
161
|
}
|
|
128
162
|
}, [visibleModels, highlightIdx, selectModel, scrollHighlightIntoView]);
|
|
129
|
-
const showShowAllButton = !isSearching && !showAll &&
|
|
163
|
+
const showShowAllButton = !isSearching && !showAll && featuredModels.length > 0 && featuredModels.length < models.length;
|
|
130
164
|
const triggerLabel = selectedModel.displayName;
|
|
131
|
-
const triggerHarness =
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
? model.harness === selectedModel.harness && model.modelId === selectedModel.modelId
|
|
137
|
-
: false;
|
|
138
|
-
const isHighlighted = idx === highlightIdx;
|
|
139
|
-
return (_jsxs("button", { "data-model-option": "", role: "option", "aria-selected": isSelected, type: "button", className: cn("flex w-full cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-xs outline-none", "transition-colors", isHighlighted && "bg-accent text-accent-foreground", !isHighlighted && "hover:bg-accent-hover", isSelected && "font-medium"), onClick: () => selectModel(model), onMouseEnter: () => setHighlightIdx(idx), children: [_jsx("span", { className: "flex-1 truncate text-left", children: model.displayName }), isUnified && (_jsx("span", { className: "shrink-0 rounded bg-muted px-1 py-0.5 text-[0.55rem] font-medium text-muted-foreground", children: HARNESS_LABELS[model.harness] })), _jsx("span", { className: "shrink-0 text-[0.6rem] text-muted-foreground", children: COST_TIER_LABEL[model.costTier] }), isSelected && (_jsx(CheckIcon, { className: "shrink-0 text-primary" }))] }, key));
|
|
140
|
-
}), showShowAllButton && (_jsx("button", { type: "button", className: cn("mt-1 flex w-full items-center justify-center rounded-md border border-dashed border-border", "px-2 py-1.5 text-xs text-muted-foreground", "hover:bg-accent-hover hover:text-foreground transition-colors cursor-pointer"), onClick: () => setShowAll(true), children: "Show All Models" }))] })] }) }) })] }));
|
|
165
|
+
const triggerHarness = !isHarnessLocked ? HARNESS_META[activeHarness].label : undefined;
|
|
166
|
+
return (_jsxs(Popover.Root, { open: open, onOpenChange: setOpen, children: [_jsxs(Popover.Trigger, { disabled: disabled, className: cn("inline-flex items-center gap-1.5 rounded-md border border-border", "bg-background px-2.5 py-1.5 text-xs text-foreground", "hover:bg-accent-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50", "transition-colors max-w-[20rem] max-sm:max-w-[12rem]", className), children: [triggerHarness && (_jsx("span", { className: "shrink-0 text-muted-foreground", children: triggerHarness })), triggerHarness && (_jsx("span", { className: "shrink-0 text-border", "aria-hidden": true, children: "\u00B7" })), _jsx("span", { className: "truncate", children: triggerLabel }), _jsx(ChevronIcon, {})] }), _jsx(Popover.Portal, { children: _jsx(Popover.Positioner, { sideOffset: 4, children: _jsxs(Popover.Popup, { role: "dialog", "aria-label": "Model selector", className: cn("z-popover w-80 rounded-lg border border-border bg-popover shadow-md", "text-popover-foreground"), children: [!isHarnessLocked && (_jsxs("div", { className: "border-b border-border px-3 py-2", children: [_jsx("label", { className: "mb-1 block text-[0.6rem] font-medium uppercase tracking-wider text-muted-foreground", children: "Harness" }), _jsx("select", { value: activeHarness, onChange: (e) => handleHarnessChange(e.target.value), className: cn("w-full rounded-md border border-border bg-background px-2 py-1.5 text-xs text-foreground", "focus:outline-none focus:ring-2 focus:ring-ring"), "aria-label": "Select harness", children: resolvedHarnesses.map((h) => (_jsx("option", { value: h, children: HARNESS_META[h].label }, h))) })] })), _jsx("div", { className: "border-b border-border px-3 py-1.5", children: _jsx("input", { ref: searchRef, role: "searchbox", "aria-label": "Search models", placeholder: "Search models\u2026", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), onKeyDown: handleKeyDown, className: cn("w-full bg-transparent text-xs text-foreground placeholder:text-muted-foreground", "outline-none") }) }), _jsxs("div", { ref: listRef, role: "listbox", "aria-label": "Available models", className: "max-h-72 overflow-y-auto p-1", children: [visibleModels.length === 0 && (_jsx("div", { className: "px-2 py-3 text-center text-xs text-muted-foreground", children: "No models found" })), groupedModels ? (Array.from(groupedModels.entries()).map(([group, groupModels]) => (_jsxs("div", { children: [_jsx("div", { className: "px-2 pb-0.5 pt-2 text-[0.6rem] font-medium uppercase tracking-wider text-muted-foreground", children: group }), groupModels.map((model) => (_jsx(ModelRow, { model: model, isSelected: model.modelId === selectedModel.modelId, showDescription: false, showSpeedBadge: showSpeedBadge, onClick: () => selectModel(model) }, model.modelId)))] }, group)))) : (visibleModels.map((model, idx) => (_jsx(ModelRow, { model: model, isSelected: model.modelId === selectedModel.modelId, isHighlighted: idx === highlightIdx, showDescription: showDescriptions && !compact && !isSearching && !showAll, showSpeedBadge: showSpeedBadge, onClick: () => selectModel(model), onMouseEnter: () => setHighlightIdx(idx) }, model.modelId)))), showShowAllButton && (_jsx("button", { type: "button", className: cn("mt-1 flex w-full items-center justify-center rounded-md border border-dashed border-border", "px-2 py-1.5 text-xs text-muted-foreground", "hover:bg-accent-hover hover:text-foreground transition-colors cursor-pointer"), onClick: () => setShowAll(true), children: "Show all models" }))] })] }) }) })] }));
|
|
167
|
+
}
|
|
168
|
+
function ModelRow({ model, isSelected, isHighlighted, showDescription, showSpeedBadge, onClick, onMouseEnter, }) {
|
|
169
|
+
return (_jsxs("button", { "data-model-option": "", role: "option", "aria-selected": isSelected, type: "button", className: cn("flex w-full cursor-pointer flex-col rounded-md px-2 py-1.5 text-xs outline-none", "transition-colors", isHighlighted && "bg-accent text-accent-foreground", !isHighlighted && "hover:bg-accent-hover", isSelected && "font-medium"), onClick: onClick, onMouseEnter: onMouseEnter, children: [_jsxs("div", { className: "flex w-full items-center gap-2", children: [_jsx("span", { className: "flex-1 truncate text-left", children: model.displayName }), showSpeedBadge && (_jsx("span", { className: "shrink-0 text-[0.6rem] text-muted-foreground", children: SPEED_TIER_LABEL[model.speedTier] })), _jsx("span", { className: "shrink-0 text-[0.6rem] text-muted-foreground", children: COST_TIER_LABEL[model.costTier] }), isSelected && _jsx(CheckIcon, { className: "shrink-0 text-primary" })] }), showDescription && model.shortDescription && (_jsx("span", { className: "mt-0.5 block text-left text-[0.6rem] text-muted-foreground", children: model.shortDescription }))] }));
|
|
141
170
|
}
|
|
142
171
|
function ChevronIcon() {
|
|
143
172
|
return (_jsx("svg", { className: "shrink-0 text-muted-foreground", width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M2.5 3.75L5 6.25L7.5 3.75" }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../src/models/ModelSelector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../src/models/ModelSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -102,9 +102,11 @@ describe("useModelRegistry", () => {
|
|
|
102
102
|
const cursorModels = result.current.models.filter((m) => m.harness === "cursor");
|
|
103
103
|
expect(cursorModels).toHaveLength(0);
|
|
104
104
|
});
|
|
105
|
-
it("resolves defaultModel to
|
|
105
|
+
it("resolves defaultModel to the first featured native model", () => {
|
|
106
106
|
const { result } = renderHook(() => useModelRegistry({ harness: "native" }));
|
|
107
|
-
|
|
107
|
+
const featured = result.current.featured;
|
|
108
|
+
expect(featured.length).toBeGreaterThan(0);
|
|
109
|
+
expect(result.current.defaultModel.modelId).toBe(featured[0].modelId);
|
|
108
110
|
});
|
|
109
111
|
});
|
|
110
112
|
describe("cursor harness", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModelRegistry.test.js","sourceRoot":"","sources":["../../../src/models/__tests__/useModelRegistry.test.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useModelRegistry.test.js","sourceRoot":"","sources":["../../../src/models/__tests__/useModelRegistry.test.tsx"],"names":[],"mappings":"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"}
|
package/models/harness.d.ts
CHANGED
|
@@ -4,10 +4,34 @@ import { Harness } from "@stigmer/protos/ai/stigmer/agentic/session/v1/enum_pb";
|
|
|
4
4
|
*
|
|
5
5
|
* Used on component props and hook options so platform builders
|
|
6
6
|
* do not need to import proto enums to use the SDK.
|
|
7
|
+
*
|
|
8
|
+
* This union grows as new execution engines are integrated.
|
|
9
|
+
* Each value must have a corresponding entry in {@link HARNESS_META}.
|
|
10
|
+
*/
|
|
11
|
+
export type HarnessOption = "native" | "cursor" | "copilot" | "claude_code" | "codex" | "devin";
|
|
12
|
+
/** Display metadata for a single harness. */
|
|
13
|
+
export interface HarnessDisplayInfo {
|
|
14
|
+
/** User-facing label shown in the harness dropdown. */
|
|
15
|
+
readonly label: string;
|
|
16
|
+
/** One-line description shown as a tooltip or subtitle. */
|
|
17
|
+
readonly description: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Display metadata for all registered harnesses.
|
|
21
|
+
*
|
|
22
|
+
* Drives the harness dropdown in {@link ModelSelector} and provides
|
|
23
|
+
* labels for the compact trigger button.
|
|
24
|
+
*/
|
|
25
|
+
export declare const HARNESS_META: Readonly<Record<HarnessOption, HarnessDisplayInfo>>;
|
|
26
|
+
/**
|
|
27
|
+
* User-facing labels for each harness option.
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Use {@link HARNESS_META} instead for full display metadata.
|
|
30
|
+
* Kept for backward compatibility with existing consumers.
|
|
7
31
|
*/
|
|
8
|
-
export type HarnessOption = "native" | "cursor";
|
|
9
|
-
/** User-facing labels for each harness option. */
|
|
10
32
|
export declare const HARNESS_LABELS: Readonly<Record<HarnessOption, string>>;
|
|
33
|
+
/** Ordered list of all registered harness IDs. */
|
|
34
|
+
export declare const HARNESS_OPTIONS: readonly HarnessOption[];
|
|
11
35
|
/** Platform default — resolves to the native engine. */
|
|
12
36
|
export declare const DEFAULT_HARNESS: HarnessOption;
|
|
13
37
|
/** Convert a {@link HarnessOption} string to the proto {@link Harness} enum. */
|
package/models/harness.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/models/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAEhF
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/models/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAEhF;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,aAAa,GACb,OAAO,GACP,OAAO,CAAC;AAEZ,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAO5E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAEjC,CAAC;AAEnC,kDAAkD;AAClD,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAOnD,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,eAAe,EAAE,aAAwB,CAAC;AAEvD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAS1D"}
|
package/models/harness.js
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import { Harness } from "@stigmer/protos/ai/stigmer/agentic/session/v1/enum_pb";
|
|
2
|
-
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Display metadata for all registered harnesses.
|
|
4
|
+
*
|
|
5
|
+
* Drives the harness dropdown in {@link ModelSelector} and provides
|
|
6
|
+
* labels for the compact trigger button.
|
|
7
|
+
*/
|
|
8
|
+
export const HARNESS_META = {
|
|
9
|
+
native: { label: "Stigmer", description: "Stigmer's native agent runtime" },
|
|
10
|
+
cursor: { label: "Cursor", description: "Cursor IDE agent with codebase indexing" },
|
|
11
|
+
copilot: { label: "GitHub Copilot", description: "GitHub-native sub-agent orchestration" },
|
|
12
|
+
claude_code: { label: "Claude Agent SDK", description: "Anthropic's agent SDK with built-in tools" },
|
|
13
|
+
codex: { label: "OpenAI Codex", description: "Thread-based execution with structured output" },
|
|
14
|
+
devin: { label: "Devin", description: "Full autonomous engineer, session-based" },
|
|
6
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* User-facing labels for each harness option.
|
|
18
|
+
*
|
|
19
|
+
* @deprecated Use {@link HARNESS_META} instead for full display metadata.
|
|
20
|
+
* Kept for backward compatibility with existing consumers.
|
|
21
|
+
*/
|
|
22
|
+
export const HARNESS_LABELS = Object.fromEntries(Object.entries(HARNESS_META).map(([k, v]) => [k, v.label]));
|
|
23
|
+
/** Ordered list of all registered harness IDs. */
|
|
24
|
+
export const HARNESS_OPTIONS = [
|
|
25
|
+
"native",
|
|
26
|
+
"cursor",
|
|
27
|
+
"copilot",
|
|
28
|
+
"claude_code",
|
|
29
|
+
"codex",
|
|
30
|
+
"devin",
|
|
31
|
+
];
|
|
7
32
|
/** Platform default — resolves to the native engine. */
|
|
8
33
|
export const DEFAULT_HARNESS = "native";
|
|
9
34
|
/** Convert a {@link HarnessOption} string to the proto {@link Harness} enum. */
|
package/models/harness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/models/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/models/harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AA2BhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAwD;IAC/E,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC3E,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;IACnF,OAAO,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC1F,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,2CAA2C,EAAE;IACpG,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,+CAA+C,EAAE;IAC9F,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,yCAAyC,EAAE;CAClF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4C,MAAM,CAAC,WAAW,CACvF,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAC1B,CAAC;AAEnC,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,aAAa;IACb,OAAO;IACP,OAAO;CACR,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAkB,QAAQ,CAAC;AAEvD,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,CAAgB;IAC7C,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,MAAM,CAAC;QACxB,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAU;IACzC,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO,CAAC,MAAM;YACjB,OAAO,QAAQ,CAAC;QAClB,KAAK,OAAO,CAAC,MAAM,CAAC;QACpB,KAAK,OAAO,CAAC,WAAW,CAAC;QACzB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC"}
|
package/models/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { MODEL_REGISTRY, DEFAULT_MODEL_ID, DEFAULT_CURSOR_MODEL_ID, DISABLED_PROVIDERS, modelKey, parseModelKey } from "./registry";
|
|
2
|
-
export type { ParsedModelKey } from "./registry";
|
|
3
|
-
export type { ModelInfo, Provider, CostTier } from "./registry";
|
|
1
|
+
export { MODEL_REGISTRY, DEFAULT_MODEL_ID, DEFAULT_CURSOR_MODEL_ID, DISABLED_PROVIDERS, modelKey, parseModelKey, resolveDefaultModelId } from "./registry";
|
|
2
|
+
export type { ParsedModelKey, DefaultModelResolution, DefaultModelSource } from "./registry";
|
|
3
|
+
export type { ModelInfo, Provider, CostTier, SpeedTier } from "./registry";
|
|
4
4
|
export { useModelRegistry } from "./useModelRegistry";
|
|
5
5
|
export type { UseModelRegistryReturn, UseModelRegistryOptions } from "./useModelRegistry";
|
|
6
6
|
export { ModelSelector } from "./ModelSelector";
|
|
7
7
|
export type { ModelSelectorProps } from "./ModelSelector";
|
|
8
8
|
export { HarnessSelector } from "./HarnessSelector";
|
|
9
9
|
export type { HarnessSelectorProps } from "./HarnessSelector";
|
|
10
|
-
export { DEFAULT_HARNESS, HARNESS_LABELS, toProtoHarness, fromProtoHarness } from "./harness";
|
|
11
|
-
export type { HarnessOption } from "./harness";
|
|
10
|
+
export { DEFAULT_HARNESS, HARNESS_LABELS, HARNESS_META, HARNESS_OPTIONS, toProtoHarness, fromProtoHarness } from "./harness";
|
|
11
|
+
export type { HarnessOption, HarnessDisplayInfo } from "./harness";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/models/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC3J,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC7F,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7H,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
|
package/models/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { MODEL_REGISTRY, DEFAULT_MODEL_ID, DEFAULT_CURSOR_MODEL_ID, DISABLED_PROVIDERS, modelKey, parseModelKey } from "./registry";
|
|
1
|
+
export { MODEL_REGISTRY, DEFAULT_MODEL_ID, DEFAULT_CURSOR_MODEL_ID, DISABLED_PROVIDERS, modelKey, parseModelKey, resolveDefaultModelId } from "./registry";
|
|
2
2
|
export { useModelRegistry } from "./useModelRegistry";
|
|
3
3
|
export { ModelSelector } from "./ModelSelector";
|
|
4
4
|
export { HarnessSelector } from "./HarnessSelector";
|
|
5
|
-
export { DEFAULT_HARNESS, HARNESS_LABELS, toProtoHarness, fromProtoHarness } from "./harness";
|
|
5
|
+
export { DEFAULT_HARNESS, HARNESS_LABELS, HARNESS_META, HARNESS_OPTIONS, toProtoHarness, fromProtoHarness } from "./harness";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/models/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAG3J,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
package/models/registry.d.ts
CHANGED
|
@@ -16,6 +16,15 @@ import type { HarnessOption } from "./harness";
|
|
|
16
16
|
* - `premium` — highest-capability models for complex reasoning or critical tasks
|
|
17
17
|
*/
|
|
18
18
|
export type CostTier = "economy" | "standard" | "premium";
|
|
19
|
+
/**
|
|
20
|
+
* Latency characteristic of a model, shown as a badge in the selector.
|
|
21
|
+
*
|
|
22
|
+
* - `fastest` — minimal latency, small models (Haiku, Mini, Nano, Flash)
|
|
23
|
+
* - `fast` — good balance of speed and capability (Sonnet, Codex, standard)
|
|
24
|
+
* - `balanced` — moderate latency, larger context (Pro, GPT-4 Turbo)
|
|
25
|
+
* - `slow` — highest capability, longer response times (Opus, GPT-5.5, o1)
|
|
26
|
+
*/
|
|
27
|
+
export type SpeedTier = "fastest" | "fast" | "balanced" | "slow";
|
|
19
28
|
/**
|
|
20
29
|
* LLM provider identifier. Each provider maps to a distinct inference
|
|
21
30
|
* backend (or intermediary, in the case of Cursor-served third-party
|
|
@@ -51,6 +60,10 @@ export interface ModelInfo {
|
|
|
51
60
|
readonly provider: Provider;
|
|
52
61
|
/** Human-readable name shown in the model picker. */
|
|
53
62
|
readonly displayName: string;
|
|
63
|
+
/** 3-6 word pitch explaining why to pick this model. Shown in the curated view. */
|
|
64
|
+
readonly shortDescription: string;
|
|
65
|
+
/** Latency characteristic shown as a badge (Fastest / Fast / Balanced / Slow). */
|
|
66
|
+
readonly speedTier: SpeedTier;
|
|
54
67
|
/** Pricing bracket used for cost-tier indicators in the UI. */
|
|
55
68
|
readonly costTier: CostTier;
|
|
56
69
|
/** Which execution engine serves this model. */
|
|
@@ -100,8 +113,42 @@ export declare function parseModelKey(key: string): ParsedModelKey | undefined;
|
|
|
100
113
|
* lookup helpers on top of this list.
|
|
101
114
|
*/
|
|
102
115
|
export declare const MODEL_REGISTRY: readonly ModelInfo[];
|
|
103
|
-
/**
|
|
104
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Model ID used when no user preference is set (native harness).
|
|
118
|
+
*
|
|
119
|
+
* @deprecated Use {@link resolveDefaultModelId} for dynamic resolution
|
|
120
|
+
* based on the active harness and featured models. This constant is kept
|
|
121
|
+
* as the last-resort platform fallback.
|
|
122
|
+
*/
|
|
123
|
+
export declare const DEFAULT_MODEL_ID = "claude-sonnet-4.6";
|
|
105
124
|
/** Model ID used when the Cursor harness is selected and no user preference is set. */
|
|
106
125
|
export declare const DEFAULT_CURSOR_MODEL_ID = "default";
|
|
126
|
+
/**
|
|
127
|
+
* Resolution source for the default model selection.
|
|
128
|
+
*
|
|
129
|
+
* Tells the caller how the default was determined, enabling
|
|
130
|
+
* UI affordances like "Using org default" or "Your last choice."
|
|
131
|
+
*/
|
|
132
|
+
export type DefaultModelSource = "user_preference" | "org_default" | "agent_default" | "harness_default" | "platform_fallback";
|
|
133
|
+
/** Result of the default model resolution. */
|
|
134
|
+
export interface DefaultModelResolution {
|
|
135
|
+
readonly modelId: string;
|
|
136
|
+
readonly source: DefaultModelSource;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Resolve the default model for a given harness using a priority chain.
|
|
140
|
+
*
|
|
141
|
+
* Priority (Phase 1 — no backend):
|
|
142
|
+
* 1. localStorage user preference (passed in as `userPreference`)
|
|
143
|
+
* 2. First featured model for the harness from the registry
|
|
144
|
+
* 3. Hardcoded platform fallback
|
|
145
|
+
*
|
|
146
|
+
* Future phases will add org-level and agent-level defaults between
|
|
147
|
+
* user preference and harness default.
|
|
148
|
+
*/
|
|
149
|
+
export declare function resolveDefaultModelId(harness: HarnessOption, options?: {
|
|
150
|
+
userPreference?: string;
|
|
151
|
+
orgDefault?: string;
|
|
152
|
+
agentDefault?: string;
|
|
153
|
+
}): DefaultModelResolution;
|
|
107
154
|
//# sourceMappingURL=registry.d.ts.map
|
package/models/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/models/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAEnD,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACxB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,aAAa,CAAC;IACvB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAMrE;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/models/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAEnD,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACxB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,aAAa,CAAC;IACvB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAMrE;AAsCD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EAa1C,CAAC;AAEN;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAEpD,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B,iBAAiB,GACjB,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,sBAAsB,CA6BxB"}
|