@guuey/config 0.16.15 → 0.16.16
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.d.ts +4 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +37 -0
- package/dist/registry.d.ts +45 -3
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +71 -15
- package/dist/schema.d.ts +1 -0
- package/dist/schema.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/agent.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ declare const McpServerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
94
94
|
caller: "caller";
|
|
95
95
|
oauth: "oauth";
|
|
96
96
|
}>>;
|
|
97
|
+
authMode: z.ZodOptional<z.ZodLiteral<"upfront">>;
|
|
97
98
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
98
99
|
devPort: z.ZodOptional<z.ZodNumber>;
|
|
99
100
|
mcpResourceUrl: z.ZodOptional<z.ZodURL>;
|
|
@@ -128,6 +129,7 @@ export declare const McpServerEntrySchema: z.ZodUnion<readonly [z.ZodDiscriminat
|
|
|
128
129
|
caller: "caller";
|
|
129
130
|
oauth: "oauth";
|
|
130
131
|
}>>;
|
|
132
|
+
authMode: z.ZodOptional<z.ZodLiteral<"upfront">>;
|
|
131
133
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
132
134
|
devPort: z.ZodOptional<z.ZodNumber>;
|
|
133
135
|
mcpResourceUrl: z.ZodOptional<z.ZodURL>;
|
|
@@ -303,6 +305,7 @@ export declare const McpServersSection: z.ZodRecord<z.ZodString, z.ZodUnion<read
|
|
|
303
305
|
caller: "caller";
|
|
304
306
|
oauth: "oauth";
|
|
305
307
|
}>>;
|
|
308
|
+
authMode: z.ZodOptional<z.ZodLiteral<"upfront">>;
|
|
306
309
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
307
310
|
devPort: z.ZodOptional<z.ZodNumber>;
|
|
308
311
|
mcpResourceUrl: z.ZodOptional<z.ZodURL>;
|
|
@@ -352,6 +355,7 @@ export declare const AgentSectionV1: z.ZodObject<{
|
|
|
352
355
|
caller: "caller";
|
|
353
356
|
oauth: "oauth";
|
|
354
357
|
}>>;
|
|
358
|
+
authMode: z.ZodOptional<z.ZodLiteral<"upfront">>;
|
|
355
359
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
356
360
|
devPort: z.ZodOptional<z.ZodNumber>;
|
|
357
361
|
mcpResourceUrl: z.ZodOptional<z.ZodURL>;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,6EAKnB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAS/D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;EAAiC,CAAC;AAClE,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -121,6 +121,9 @@ const HostedMcp = z
|
|
|
121
121
|
* declaration — nothing is builder-registered; discovery does the rest.
|
|
122
122
|
* - `credential: 'caller'` forwards the invoke's own byo-verified bearer as
|
|
123
123
|
* this server's per-turn credential (guuey#179) — see the field doc.
|
|
124
|
+
* - `authMode: 'upfront'` (only beside `credential: 'oauth'`, guuey#605)
|
|
125
|
+
* fronts the sign-in: the consent card surfaces at session start instead
|
|
126
|
+
* of on demand — see the field doc for the exact engagement contract.
|
|
124
127
|
*/
|
|
125
128
|
const ExternalMcp = z
|
|
126
129
|
.strictObject({
|
|
@@ -163,6 +166,37 @@ const ExternalMcp = z
|
|
|
163
166
|
* injects the only Authorization this server ever sees).
|
|
164
167
|
*/
|
|
165
168
|
credential: z.enum(['caller', 'oauth']).optional(),
|
|
169
|
+
/**
|
|
170
|
+
* `'upfront'` — require sign-in BEFORE use (guuey#605, the claude.ai
|
|
171
|
+
* "Always required" parity flavor). Valid ONLY beside
|
|
172
|
+
* `credential: 'oauth'` (schema-refused otherwise — no other credential
|
|
173
|
+
* mode has a sign-in to front-load).
|
|
174
|
+
*
|
|
175
|
+
* WHEN IT ENGAGES: at SESSION START of auth-mode (authenticated-caller)
|
|
176
|
+
* sessions, on an agent-runtime image carrying the guuey#605 pod half —
|
|
177
|
+
* an upfront server with no live connection surfaces the OAuth consent
|
|
178
|
+
* card as the turn's ONLY content (the pod holds the turn; no agent
|
|
179
|
+
* answer) until the user connects the account, instead of appending the
|
|
180
|
+
* card after the agent's first tool-less turn. Unchanged postures:
|
|
181
|
+
* guests (D6 — no card, no credential, tool-less), an explicit `denied`
|
|
182
|
+
* grant (no card, tool-less — a "no" never bricks the chat), a failed /
|
|
183
|
+
* slow preflight (fail-open tool-less turn, never held), and a client
|
|
184
|
+
* that cannot render the consent card (falls back to on-demand consent
|
|
185
|
+
* — an embed never dead-ends on a card it cannot show). Absent =
|
|
186
|
+
* today's on-demand behavior everywhere: connect anonymous-first, the
|
|
187
|
+
* consent card rides after the agent's turn.
|
|
188
|
+
*
|
|
189
|
+
* SERVING (the guuey#566 Settings-truth rule — this doc is the exact
|
|
190
|
+
* engagement contract): NO environment honors this field until infra
|
|
191
|
+
* rolls the agent-runtime image carrying the guuey#605 pod half — as of
|
|
192
|
+
* this schema's cut, dev, staging and release all serve pre-roll images
|
|
193
|
+
* that do not. A pod PREDATING the roll refuses a snapshot carrying the
|
|
194
|
+
* field at config parse (strict schema — not parse-and-ignore), so the
|
|
195
|
+
* platform must not accept it at the deploy door until the rolled image
|
|
196
|
+
* serves that environment. The oss cohort cut carries this schema bump;
|
|
197
|
+
* the image roll arms serving.
|
|
198
|
+
*/
|
|
199
|
+
authMode: z.literal('upfront').optional(),
|
|
166
200
|
/** Static headers forwarded on every request. Values may use `${env.NAME}` placeholders. */
|
|
167
201
|
headers: HeadersSchema.optional(),
|
|
168
202
|
/** Local dev-loop port (`guuey dev`) this MCP is served on for name→localhost URL resolution. */
|
|
@@ -189,6 +223,9 @@ const ExternalMcp = z
|
|
|
189
223
|
.refine((v) => !(v.credential === 'oauth' &&
|
|
190
224
|
Object.keys(v.headers ?? {}).some((h) => h.toLowerCase() === 'authorization')), {
|
|
191
225
|
message: "credential: 'oauth' cannot be combined with an `authorization` header — the credential broker injects the user's OAuth token as the only Authorization this server sees",
|
|
226
|
+
})
|
|
227
|
+
.refine((v) => !(v.authMode === 'upfront' && v.credential !== 'oauth'), {
|
|
228
|
+
message: "authMode: 'upfront' is only valid beside credential: 'oauth' — upfront sign-in fronts the OAuth broker's consent flow; no other credential mode has a sign-in to front-load",
|
|
192
229
|
});
|
|
193
230
|
/**
|
|
194
231
|
* A single MCP server entry inside `agent.mcpServers`.
|
package/dist/registry.d.ts
CHANGED
|
@@ -10,6 +10,26 @@ export interface ModelEntry {
|
|
|
10
10
|
readonly status: ModelStatus;
|
|
11
11
|
readonly isDefault?: true;
|
|
12
12
|
readonly sunset?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The picker's FRONT SLICE. `lineup` entries are what a model picker shows
|
|
15
|
+
* without asking; every other invocable entry is reachable only behind the
|
|
16
|
+
* picker's "See all models" door (founder ruling 2026-09-02, guuey#635:
|
|
17
|
+
* "let's provide there 'see all models' and put fable5 there").
|
|
18
|
+
*
|
|
19
|
+
* This is a CURATION flag, not a claim about a model's provider lifecycle —
|
|
20
|
+
* a non-`lineup` model is still Active, still served, still selectable. The
|
|
21
|
+
* lifecycle lives in `status`/`sunset`, and Anthropic's own deprecations
|
|
22
|
+
* page is the authority there (claude-fable-5 is Active with no deprecation
|
|
23
|
+
* date, so it stays `ga` and merely moves behind the door).
|
|
24
|
+
*
|
|
25
|
+
* Anthropic's lineup is the current generation as of the 2026-09-02 wave
|
|
26
|
+
* (Fable 5.1, Opus 5, Sonnet 5, Haiku 4.5 — the same four ggui pins, one
|
|
27
|
+
* vocabulary across both fleets). OpenAI's and Google's stay deliberately
|
|
28
|
+
* curated to their newest two, which is exactly the set those providers
|
|
29
|
+
* showed before the door existed — the door widened what is REACHABLE, it
|
|
30
|
+
* did not change what is shown up front.
|
|
31
|
+
*/
|
|
32
|
+
readonly lineup?: true;
|
|
13
33
|
}
|
|
14
34
|
export interface FrameworkEntry {
|
|
15
35
|
readonly framework: "claude-agent-sdk" | "openai-agents-sdk" | "google-adk" | "vanilla";
|
|
@@ -20,9 +40,15 @@ export interface FrameworkEntry {
|
|
|
20
40
|
}
|
|
21
41
|
/**
|
|
22
42
|
* Array order is picker order AFTER `modelsForProvider` floats the default to
|
|
23
|
-
* the front
|
|
24
|
-
*
|
|
25
|
-
*
|
|
43
|
+
* the front.
|
|
44
|
+
*
|
|
45
|
+
* WHAT a picker shows up front is `lineup`, not a positional slice: the
|
|
46
|
+
* platform's app-behavior picker renders `lineupForProvider` and puts
|
|
47
|
+
* `legacyForProvider` behind a "See all models" door (guuey#637). Before that
|
|
48
|
+
* door, the picker took google + openai's front slice with `.slice(0, 2)`, so
|
|
49
|
+
* the second array entry per provider was product-visible by POSITION — that
|
|
50
|
+
* is now carried by the flag instead, and array order only orders within each
|
|
51
|
+
* half. Both halves are pinned by
|
|
26
52
|
* `apps/platform/.../ModelSection/ModelSection.test.ts`.
|
|
27
53
|
*/
|
|
28
54
|
export declare const MODEL_REGISTRY: readonly ModelEntry[];
|
|
@@ -31,6 +57,22 @@ export declare const FRAMEWORK_REGISTRY: readonly FrameworkEntry[];
|
|
|
31
57
|
* Get all models for a provider, filtered to ga|preview only, with default first.
|
|
32
58
|
*/
|
|
33
59
|
export declare function modelsForProvider(p: ModelEntry["provider"]): readonly ModelEntry[];
|
|
60
|
+
/**
|
|
61
|
+
* The picker's FRONT SLICE for a provider — the `lineup` half of
|
|
62
|
+
* `modelsForProvider`, default first (guuey#637).
|
|
63
|
+
*
|
|
64
|
+
* Together with {@link legacyForProvider} this PARTITIONS `modelsForProvider`:
|
|
65
|
+
* every invocable model appears in exactly one half, so a picker built from
|
|
66
|
+
* both can never silently drop a model the way a positional `.slice()` could.
|
|
67
|
+
*/
|
|
68
|
+
export declare function lineupForProvider(p: ModelEntry["provider"]): readonly ModelEntry[];
|
|
69
|
+
/**
|
|
70
|
+
* The other half — invocable models NOT in the front slice, in registry order.
|
|
71
|
+
* These are what the picker's "See all models" door reveals: still Active,
|
|
72
|
+
* still selectable, just superseded (Claude Fable 5, Sonnet 4.6, Opus 4.8 and
|
|
73
|
+
* the older Gemini/GPT rows as of the 2026-09-02 wave).
|
|
74
|
+
*/
|
|
75
|
+
export declare function legacyForProvider(p: ModelEntry["provider"]): readonly ModelEntry[];
|
|
34
76
|
/**
|
|
35
77
|
* Get the default model id for a framework's default provider.
|
|
36
78
|
*/
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,YAAY,GAAG,SAAS,CAAC;IACxF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC7D;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAmD/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAkCvD,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,UAAU,EAAE,CAQlF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,UAAU,EAAE,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,UAAU,EAAE,CAElF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,MAAM,CAM9E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE7D"}
|
package/dist/registry.js
CHANGED
|
@@ -4,17 +4,48 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Array order is picker order AFTER `modelsForProvider` floats the default to
|
|
7
|
-
* the front
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* the front.
|
|
8
|
+
*
|
|
9
|
+
* WHAT a picker shows up front is `lineup`, not a positional slice: the
|
|
10
|
+
* platform's app-behavior picker renders `lineupForProvider` and puts
|
|
11
|
+
* `legacyForProvider` behind a "See all models" door (guuey#637). Before that
|
|
12
|
+
* door, the picker took google + openai's front slice with `.slice(0, 2)`, so
|
|
13
|
+
* the second array entry per provider was product-visible by POSITION — that
|
|
14
|
+
* is now carried by the flag instead, and array order only orders within each
|
|
15
|
+
* half. Both halves are pinned by
|
|
10
16
|
* `apps/platform/.../ModelSection/ModelSection.test.ts`.
|
|
11
17
|
*/
|
|
12
18
|
export const MODEL_REGISTRY = [
|
|
13
|
-
{ id: "claude-sonnet-5", provider: "anthropic", label: "Claude Sonnet 5", status: "ga", isDefault: true },
|
|
19
|
+
{ id: "claude-sonnet-5", provider: "anthropic", label: "Claude Sonnet 5", status: "ga", isDefault: true, lineup: true },
|
|
20
|
+
// guuey#635 (2026-09-02 wave): id verified against
|
|
21
|
+
// platform.claude.com/docs/en/models/overview — never hand-typed.
|
|
22
|
+
// `announced` = known, NOT invocable on our runtime yet (the registry's own
|
|
23
|
+
// vocabulary): the model gate is the Claude Code binary — 2.1.247 in the
|
|
24
|
+
// fat image 400s ("version 2.1.251 or newer is required", infra's dev turn
|
|
25
|
+
// on guuey#638). Flips to `ga` in the cut after #659's image rolls to prod
|
|
26
|
+
// (SDK 0.3.258 → binary ≥ 2.1.251). Pickers exclude it until then: an
|
|
27
|
+
// announced row is in NEITHER picker half (`lineupForProvider` /
|
|
28
|
+
// `legacyForProvider` partition the ga|preview allowlist). THE GA FLIP IS
|
|
29
|
+
// TWO FIELDS: `status: "ga"` AND `lineup: true` — the marker is withheld
|
|
30
|
+
// here only because `lineup` ⇒ invocable is a pinned invariant
|
|
31
|
+
// (registry.test.ts), and it belongs to the front slice the moment the
|
|
32
|
+
// model is invocable (guuey#637 step 2).
|
|
33
|
+
{ id: "claude-fable-5-1", provider: "anthropic", label: "Claude Fable 5.1", status: "announced" },
|
|
34
|
+
// Stays `ga` on purpose: the deprecations page (read 2026-09-02) lists
|
|
35
|
+
// claude-fable-5 as Active, Deprecated: N/A, tentative retirement "Not
|
|
36
|
+
// sooner than June 9, 2027". `sunset` is an ISO date for DEPRECATED
|
|
37
|
+
// entries; a not-sooner-than floor is not one. Flip only on a real
|
|
38
|
+
// deprecation notice, quoting the page.
|
|
39
|
+
//
|
|
40
|
+
// Superseded by Fable 5.1, so it is NOT in the lineup — the founder's
|
|
41
|
+
// 2026-09-02 ruling put it behind the picker's "See all models" door rather
|
|
42
|
+
// than hiding it: apps already pinned to Fable 5 keep their edit flow,
|
|
43
|
+
// because the door's expanded list carries their value.
|
|
14
44
|
{ id: "claude-fable-5", provider: "anthropic", label: "Claude Fable 5", status: "ga" },
|
|
15
|
-
{ id: "claude-opus-5", provider: "anthropic", label: "Claude Opus 5", status: "ga" },
|
|
45
|
+
{ id: "claude-opus-5", provider: "anthropic", label: "Claude Opus 5", status: "ga", lineup: true },
|
|
16
46
|
{ id: "claude-sonnet-4-6", provider: "anthropic", label: "Claude Sonnet 4.6", status: "ga" },
|
|
17
|
-
{ id: "claude-haiku-4-5", provider: "anthropic", label: "Claude Haiku 4.5", status: "ga" },
|
|
47
|
+
{ id: "claude-haiku-4-5", provider: "anthropic", label: "Claude Haiku 4.5", status: "ga", lineup: true },
|
|
48
|
+
// Superseded by Opus 5 at the same published price — behind the door.
|
|
18
49
|
{ id: "claude-opus-4-8", provider: "anthropic", label: "Claude Opus 4.8", status: "ga" },
|
|
19
50
|
// Terra — guuey's OpenAI default (founder call 2026-07-25). This DELIBERATELY
|
|
20
51
|
// diverges from OpenAI's own `gpt-5.6` alias, which routes to Sol: Terra is
|
|
@@ -22,15 +53,15 @@ export const MODEL_REGISTRY = [
|
|
|
22
53
|
// workloads. The bare `gpt-5.6` alias is intentionally NOT a registry id
|
|
23
54
|
// (never offered in a picker) — the rate card still rows it at Sol's price so
|
|
24
55
|
// an alias call from BYO config can't under-meter.
|
|
25
|
-
{ id: "gpt-5.6-terra", provider: "openai", label: "GPT-5.6 Terra", status: "ga", isDefault: true },
|
|
26
|
-
{ id: "gpt-5.6-sol", provider: "openai", label: "GPT-5.6 Sol", status: "ga" },
|
|
56
|
+
{ id: "gpt-5.6-terra", provider: "openai", label: "GPT-5.6 Terra", status: "ga", isDefault: true, lineup: true },
|
|
57
|
+
{ id: "gpt-5.6-sol", provider: "openai", label: "GPT-5.6 Sol", status: "ga", lineup: true },
|
|
27
58
|
{ id: "gpt-5.6-luna", provider: "openai", label: "GPT-5.6 Luna", status: "ga" },
|
|
28
59
|
{ id: "gpt-5.5", provider: "openai", label: "GPT-5.5", status: "ga" },
|
|
29
60
|
{ id: "gpt-5.4", provider: "openai", label: "GPT-5.4", status: "ga" },
|
|
30
61
|
{ id: "gpt-4o", provider: "openai", label: "GPT-4o", status: "ga" },
|
|
31
62
|
{ id: "gpt-4o-mini", provider: "openai", label: "GPT-4o Mini", status: "ga" },
|
|
32
|
-
{ id: "gemini-3.6-flash", provider: "google", label: "Gemini 3.6 Flash", status: "ga", isDefault: true },
|
|
33
|
-
{ id: "gemini-3.5-flash-lite", provider: "google", label: "Gemini 3.5 Flash Lite", status: "ga" },
|
|
63
|
+
{ id: "gemini-3.6-flash", provider: "google", label: "Gemini 3.6 Flash", status: "ga", isDefault: true, lineup: true },
|
|
64
|
+
{ id: "gemini-3.5-flash-lite", provider: "google", label: "Gemini 3.5 Flash Lite", status: "ga", lineup: true },
|
|
34
65
|
{ id: "gemini-3.5-flash", provider: "google", label: "Gemini 3.5 Flash", status: "ga" },
|
|
35
66
|
{ id: "gemini-3.1-pro", provider: "google", label: "Gemini 3.1 Pro", status: "ga" },
|
|
36
67
|
{ id: "gemini-2.5-flash", provider: "google", label: "Gemini 2.5 Flash", status: "ga" },
|
|
@@ -40,22 +71,27 @@ export const FRAMEWORK_REGISTRY = [
|
|
|
40
71
|
{
|
|
41
72
|
framework: "claude-agent-sdk",
|
|
42
73
|
sdkPackage: "@anthropic-ai/claude-agent-sdk",
|
|
43
|
-
platformPinnedVersion
|
|
74
|
+
// platformPinnedVersion = what the fat image ships. Guarded twice
|
|
75
|
+
// (guuey#648/#653): scripts/check-pin-coherence.mjs (CI + pre-push,
|
|
76
|
+
// the whole host-shared==registry==image==host==facet-peer chain) and
|
|
77
|
+
// registry.pins.test.ts (always-on vs @guuey/host — the publish-time
|
|
78
|
+
// belt that also runs where the root script does not exist).
|
|
79
|
+
platformPinnedVersion: "0.3.258",
|
|
44
80
|
facetSupportedRange: ">=0.2.76 <0.4",
|
|
45
81
|
defaultProvider: "anthropic",
|
|
46
82
|
},
|
|
47
83
|
{
|
|
48
84
|
framework: "openai-agents-sdk",
|
|
49
85
|
sdkPackage: "@openai/agents",
|
|
50
|
-
platformPinnedVersion: "0.
|
|
51
|
-
facetSupportedRange: ">=0.2.0 <0.
|
|
86
|
+
platformPinnedVersion: "0.17.0",
|
|
87
|
+
facetSupportedRange: ">=0.2.0 <0.18",
|
|
52
88
|
defaultProvider: "openai",
|
|
53
89
|
},
|
|
54
90
|
{
|
|
55
91
|
framework: "google-adk",
|
|
56
92
|
sdkPackage: "@google/adk", // the OFFICIAL JS ADK (the Python lane retired with guuey_adk_host)
|
|
57
|
-
platformPinnedVersion: "1.
|
|
58
|
-
facetSupportedRange: ">=1.0.0 <
|
|
93
|
+
platformPinnedVersion: "1.6.0", // pinned in @guuey-private/host-shared (guuey#659 rails; 1.x line — the 2.0 migration is #657)
|
|
94
|
+
facetSupportedRange: ">=1.0.0 <3", // @silverprotocol/google-adk@0.5.4 peer range (ADK 2.x admitted; the 1.x image pin short of 2.0 is a deliberate HOLD, guuey#657)
|
|
59
95
|
defaultProvider: "google",
|
|
60
96
|
},
|
|
61
97
|
{
|
|
@@ -78,6 +114,26 @@ export function modelsForProvider(p) {
|
|
|
78
114
|
return 0;
|
|
79
115
|
});
|
|
80
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* The picker's FRONT SLICE for a provider — the `lineup` half of
|
|
119
|
+
* `modelsForProvider`, default first (guuey#637).
|
|
120
|
+
*
|
|
121
|
+
* Together with {@link legacyForProvider} this PARTITIONS `modelsForProvider`:
|
|
122
|
+
* every invocable model appears in exactly one half, so a picker built from
|
|
123
|
+
* both can never silently drop a model the way a positional `.slice()` could.
|
|
124
|
+
*/
|
|
125
|
+
export function lineupForProvider(p) {
|
|
126
|
+
return modelsForProvider(p).filter((m) => m.lineup === true);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The other half — invocable models NOT in the front slice, in registry order.
|
|
130
|
+
* These are what the picker's "See all models" door reveals: still Active,
|
|
131
|
+
* still selectable, just superseded (Claude Fable 5, Sonnet 4.6, Opus 4.8 and
|
|
132
|
+
* the older Gemini/GPT rows as of the 2026-09-02 wave).
|
|
133
|
+
*/
|
|
134
|
+
export function legacyForProvider(p) {
|
|
135
|
+
return modelsForProvider(p).filter((m) => m.lineup !== true);
|
|
136
|
+
}
|
|
81
137
|
/**
|
|
82
138
|
* Get the default model id for a framework's default provider.
|
|
83
139
|
*/
|
package/dist/schema.d.ts
CHANGED
|
@@ -177,6 +177,7 @@ export declare const GuueyJsonV1: z.ZodObject<{
|
|
|
177
177
|
caller: "caller";
|
|
178
178
|
oauth: "oauth";
|
|
179
179
|
}>>;
|
|
180
|
+
authMode: z.ZodOptional<z.ZodLiteral<"upfront">>;
|
|
180
181
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
181
182
|
devPort: z.ZodOptional<z.ZodNumber>;
|
|
182
183
|
mcpResourceUrl: z.ZodOptional<z.ZodURL>;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAY5E;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,IAAI,EAAE,gBAAgB,GAAG,oBAAoB;aAC7C,KAAK,EAAE,MAAM;gBADb,IAAI,EAAE,gBAAgB,GAAG,oBAAoB,EAC7C,KAAK,EAAE,MAAM,EAC7B,OAAO,EAAE,MAAM;CAKlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAkBjE;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAY5E;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,IAAI,EAAE,gBAAgB,GAAG,oBAAoB;aAC7C,KAAK,EAAE,MAAM;gBADb,IAAI,EAAE,gBAAgB,GAAG,oBAAoB,EAC7C,KAAK,EAAE,MAAM,EAC7B,OAAO,EAAE,MAAM;CAKlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAkBjE;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmDtB,CAAC;AAEH,kDAAkD;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAG3D,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAExD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,GACX,UAAU,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAE1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guuey/config",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.16",
|
|
4
4
|
"description": "Open-source schemas + loaders for the three guuey config files: agent.json (declarative agent definition), guuey.json (hosted-deploy overlay), and the helper types around them. Consumed by @guuey/cli, the guuey backend, and devs writing their own agent or MCP server.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@types/node": "^24.0.0",
|
|
36
36
|
"typescript": "^5.0.0",
|
|
37
37
|
"vitest": "^3.2.7",
|
|
38
|
-
"@guuey/chat": "0.16.
|
|
38
|
+
"@guuey/chat": "0.16.16"
|
|
39
39
|
},
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|