@stigmer/react 0.4.1 → 0.4.3
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/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +1 -2
- package/composer/ComposerToolbar.js.map +1 -1
- package/github/useGitHubConnection.d.ts.map +1 -1
- package/github/useGitHubConnection.js +2 -4
- package/github/useGitHubConnection.js.map +1 -1
- package/models/ModelSelector.d.ts +34 -18
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +96 -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/composer/ComposerToolbar.tsx +2 -3
- package/src/github/useGitHubConnection.ts +2 -4
- package/src/models/ModelSelector.tsx +274 -96
- 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/src/workspace/WorkspaceEditor.tsx +37 -11
- package/styles.css +1 -1
- package/workspace/WorkspaceEditor.js +18 -4
- package/workspace/WorkspaceEditor.js.map +1 -1
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"}
|
package/models/registry.js
CHANGED
|
@@ -43,7 +43,8 @@ export function parseModelKey(key) {
|
|
|
43
43
|
return { harness, modelId: key.slice(idx + 1) };
|
|
44
44
|
}
|
|
45
45
|
const VALID_COST_TIERS = new Set(["economy", "standard", "premium"]);
|
|
46
|
-
const
|
|
46
|
+
const VALID_SPEED_TIERS = new Set(["fastest", "fast", "balanced", "slow"]);
|
|
47
|
+
const VALID_HARNESSES = new Set(["native", "cursor", "copilot", "claude_code", "codex", "devin"]);
|
|
47
48
|
function isModelEntry(entry) {
|
|
48
49
|
return (typeof entry.id === "string" &&
|
|
49
50
|
typeof entry.displayName === "string" &&
|
|
@@ -64,12 +65,53 @@ export const MODEL_REGISTRY = registryData.models
|
|
|
64
65
|
modelId: m.id,
|
|
65
66
|
provider: m.provider,
|
|
66
67
|
displayName: m.displayName,
|
|
68
|
+
shortDescription: m.shortDescription ?? "",
|
|
69
|
+
speedTier: (VALID_SPEED_TIERS.has(m.speedTier ?? "") ? m.speedTier : "fast"),
|
|
67
70
|
costTier: m.costTier,
|
|
68
71
|
harness: m.harness,
|
|
69
72
|
featured: m.featured ?? false,
|
|
70
73
|
}));
|
|
71
|
-
/**
|
|
72
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Model ID used when no user preference is set (native harness).
|
|
76
|
+
*
|
|
77
|
+
* @deprecated Use {@link resolveDefaultModelId} for dynamic resolution
|
|
78
|
+
* based on the active harness and featured models. This constant is kept
|
|
79
|
+
* as the last-resort platform fallback.
|
|
80
|
+
*/
|
|
81
|
+
export const DEFAULT_MODEL_ID = "claude-sonnet-4.6";
|
|
73
82
|
/** Model ID used when the Cursor harness is selected and no user preference is set. */
|
|
74
83
|
export const DEFAULT_CURSOR_MODEL_ID = "default";
|
|
84
|
+
/**
|
|
85
|
+
* Resolve the default model for a given harness using a priority chain.
|
|
86
|
+
*
|
|
87
|
+
* Priority (Phase 1 — no backend):
|
|
88
|
+
* 1. localStorage user preference (passed in as `userPreference`)
|
|
89
|
+
* 2. First featured model for the harness from the registry
|
|
90
|
+
* 3. Hardcoded platform fallback
|
|
91
|
+
*
|
|
92
|
+
* Future phases will add org-level and agent-level defaults between
|
|
93
|
+
* user preference and harness default.
|
|
94
|
+
*/
|
|
95
|
+
export function resolveDefaultModelId(harness, options) {
|
|
96
|
+
if (options?.userPreference) {
|
|
97
|
+
const model = MODEL_REGISTRY.find((m) => m.harness === harness && m.modelId === options.userPreference);
|
|
98
|
+
if (model)
|
|
99
|
+
return { modelId: model.modelId, source: "user_preference" };
|
|
100
|
+
}
|
|
101
|
+
if (options?.orgDefault) {
|
|
102
|
+
const model = MODEL_REGISTRY.find((m) => m.harness === harness && m.modelId === options.orgDefault);
|
|
103
|
+
if (model)
|
|
104
|
+
return { modelId: model.modelId, source: "org_default" };
|
|
105
|
+
}
|
|
106
|
+
if (options?.agentDefault) {
|
|
107
|
+
const model = MODEL_REGISTRY.find((m) => m.harness === harness && m.modelId === options.agentDefault);
|
|
108
|
+
if (model)
|
|
109
|
+
return { modelId: model.modelId, source: "agent_default" };
|
|
110
|
+
}
|
|
111
|
+
const featured = MODEL_REGISTRY.find((m) => m.harness === harness && m.featured);
|
|
112
|
+
if (featured)
|
|
113
|
+
return { modelId: featured.modelId, source: "harness_default" };
|
|
114
|
+
const fallbackId = harness === "cursor" ? DEFAULT_CURSOR_MODEL_ID : DEFAULT_MODEL_ID;
|
|
115
|
+
return { modelId: fallbackId, source: "platform_fallback" };
|
|
116
|
+
}
|
|
75
117
|
//# sourceMappingURL=registry.js.map
|
package/models/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/models/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,YAAY,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/models/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModelRegistry.d.ts","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"useModelRegistry.d.ts","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;CAClC;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC,CAAC;IACjE,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,sBAAsB,CA2D1F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
import { MODEL_REGISTRY, DEFAULT_MODEL_ID,
|
|
3
|
+
import { MODEL_REGISTRY, DEFAULT_MODEL_ID, DISABLED_PROVIDERS, resolveDefaultModelId, modelKey, } from "./registry";
|
|
4
4
|
/**
|
|
5
5
|
* Data hook that exposes the platform model registry with grouping
|
|
6
6
|
* and lookup helpers.
|
|
@@ -26,10 +26,10 @@ import { MODEL_REGISTRY, DEFAULT_MODEL_ID, DEFAULT_CURSOR_MODEL_ID, DISABLED_PRO
|
|
|
26
26
|
export function useModelRegistry(options) {
|
|
27
27
|
const harness = options?.harness;
|
|
28
28
|
return useMemo(() => {
|
|
29
|
-
const isCursor = harness === "cursor";
|
|
30
|
-
const isNative = harness === "native";
|
|
31
29
|
const isUnified = harness === undefined;
|
|
32
|
-
const
|
|
30
|
+
const { modelId: defaultId } = harness
|
|
31
|
+
? resolveDefaultModelId(harness)
|
|
32
|
+
: { modelId: DEFAULT_MODEL_ID };
|
|
33
33
|
const byProvider = new Map();
|
|
34
34
|
const byId = new Map();
|
|
35
35
|
const byCompoundKey = new Map();
|
|
@@ -37,18 +37,13 @@ export function useModelRegistry(options) {
|
|
|
37
37
|
const featuredModels = [];
|
|
38
38
|
let defaultModel;
|
|
39
39
|
for (const model of MODEL_REGISTRY) {
|
|
40
|
-
if (
|
|
41
|
-
if (model.harness !== "cursor")
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
else if (isNative) {
|
|
45
|
-
if (model.harness !== "native")
|
|
46
|
-
continue;
|
|
40
|
+
if (isUnified) {
|
|
47
41
|
if (DISABLED_PROVIDERS.has(model.provider))
|
|
48
42
|
continue;
|
|
49
43
|
}
|
|
50
44
|
else {
|
|
51
|
-
|
|
45
|
+
if (model.harness !== harness)
|
|
46
|
+
continue;
|
|
52
47
|
if (DISABLED_PROVIDERS.has(model.provider))
|
|
53
48
|
continue;
|
|
54
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModelRegistry.js","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,cAAc,EACd,gBAAgB,
|
|
1
|
+
{"version":3,"file":"useModelRegistry.js","sourceRoot":"","sources":["../../src/models/useModelRegistry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/react",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "React provider and client hook for the Stigmer platform SDK",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@stigmer/theme": "0.4.
|
|
38
|
+
"@stigmer/theme": "0.4.3",
|
|
39
39
|
"react-markdown": "^10.1.0",
|
|
40
40
|
"remark-gfm": "^4.0.1",
|
|
41
41
|
"streamdown": "^2.5.0",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@base-ui/react": "^1.0.0",
|
|
46
46
|
"@bufbuild/protobuf": "^2.0.0",
|
|
47
|
-
"@stigmer/protos": "0.4.
|
|
48
|
-
"@stigmer/sdk": "0.4.
|
|
47
|
+
"@stigmer/protos": "0.4.3",
|
|
48
|
+
"@stigmer/sdk": "0.4.3",
|
|
49
49
|
"lucide-react": ">=0.400.0",
|
|
50
50
|
"react": "^19.0.0",
|
|
51
51
|
"react-dom": "^19.0.0",
|
|
@@ -97,7 +97,6 @@ export function ComposerToolbar({
|
|
|
97
97
|
const hasTier2 = configureItems.length > 0;
|
|
98
98
|
const showHarnessSeparate = showHarnessSelector && !showModelSelector;
|
|
99
99
|
const hasExecParams = showHarnessSeparate || showModelSelector;
|
|
100
|
-
const harnessLocked = harness !== undefined;
|
|
101
100
|
|
|
102
101
|
return (
|
|
103
102
|
<div className="flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2">
|
|
@@ -174,8 +173,8 @@ export function ComposerToolbar({
|
|
|
174
173
|
<ModelSelector
|
|
175
174
|
value={modelId}
|
|
176
175
|
onValueChange={onModelChange}
|
|
177
|
-
harness={
|
|
178
|
-
|
|
176
|
+
harness={showHarnessSelector ? undefined : harness}
|
|
177
|
+
onHarnessChange={showHarnessSelector ? onHarnessChange : undefined}
|
|
179
178
|
disabled={disabled}
|
|
180
179
|
/>
|
|
181
180
|
)}
|
|
@@ -480,10 +480,8 @@ export function useGitHubConnection(
|
|
|
480
480
|
const tokenVar = {
|
|
481
481
|
[GITHUB_TOKEN_KEY]: { value: accessToken, isSecret: true },
|
|
482
482
|
};
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
await personalEnvRef.current.addVariables(tokenVar);
|
|
486
|
-
}
|
|
483
|
+
await personalEnvRef.current.getOrCreate();
|
|
484
|
+
await personalEnvRef.current.addVariables(tokenVar);
|
|
487
485
|
|
|
488
486
|
setToken(accessToken);
|
|
489
487
|
|