@guuey/config 0.16.10 → 0.16.12
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 +101 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +198 -0
- package/dist/app.d.ts +3 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +9 -0
- package/dist/schema.d.ts +20 -1
- package/dist/schema.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/agent.d.ts
CHANGED
|
@@ -191,6 +191,42 @@ declare const RuntimeConfigSchema: z.ZodObject<{
|
|
|
191
191
|
declare const SystemPromptSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
192
192
|
file: z.ZodString;
|
|
193
193
|
}, z.core.$strict>]>;
|
|
194
|
+
/**
|
|
195
|
+
* One mode of a multi-mode agent (guuey#527). `systemPromptAppend` extends
|
|
196
|
+
* the base prompt (inline string or a `{ file }` the loader inlines);
|
|
197
|
+
* `systemPrompt` replaces it wholesale — exactly ONE of the two (the
|
|
198
|
+
* refine on {@link ModesSchema} enforces the xor). `tools.allowlist`, when
|
|
199
|
+
* present, must be a subset of the base allowlist — the WRITE GATE enforces
|
|
200
|
+
* that (the schema can't see the base), so a mode only ever narrows.
|
|
201
|
+
* `audience` is accepted for forward-compat but the SERVER hardcodes the
|
|
202
|
+
* binding for the recognized pair in tonight's slice.
|
|
203
|
+
*/
|
|
204
|
+
declare const ModeSchema: z.ZodObject<{
|
|
205
|
+
systemPromptAppend: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
206
|
+
file: z.ZodString;
|
|
207
|
+
}, z.core.$strict>]>>;
|
|
208
|
+
systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
209
|
+
file: z.ZodString;
|
|
210
|
+
}, z.core.$strict>]>>;
|
|
211
|
+
tools: z.ZodOptional<z.ZodObject<{
|
|
212
|
+
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
213
|
+
denylist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
214
|
+
}, z.core.$strict>>;
|
|
215
|
+
audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
216
|
+
guest: "guest";
|
|
217
|
+
authenticated: "authenticated";
|
|
218
|
+
byo: "byo";
|
|
219
|
+
}>>>;
|
|
220
|
+
}, z.core.$strict>;
|
|
221
|
+
/**
|
|
222
|
+
* Does the BASE tool allowlist permit `entry`? (guuey#527 subset rule.)
|
|
223
|
+
* A base pattern covers `entry` when it is `*`, an exact match, or a
|
|
224
|
+
* `prefix.*` wildcard whose prefix `entry` falls under. This is the SAME
|
|
225
|
+
* coverage semantics the pod's gate applies at call time, so "the mode's
|
|
226
|
+
* allowlist is a subset" means exactly "every mode tool the base already
|
|
227
|
+
* permits" — a mode can only ever NARROW, never widen.
|
|
228
|
+
*/
|
|
229
|
+
export declare function baseAllowlistPermits(baseAllowlist: readonly string[] | undefined, entry: string): boolean;
|
|
194
230
|
/**
|
|
195
231
|
* Bedrock-style invocation endpoint config.
|
|
196
232
|
*
|
|
@@ -328,6 +364,24 @@ export declare const AgentSectionV1: z.ZodObject<{
|
|
|
328
364
|
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
329
365
|
denylist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
330
366
|
}, z.core.$strict>>;
|
|
367
|
+
modes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
368
|
+
systemPromptAppend: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
369
|
+
file: z.ZodString;
|
|
370
|
+
}, z.core.$strict>]>>;
|
|
371
|
+
systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
372
|
+
file: z.ZodString;
|
|
373
|
+
}, z.core.$strict>]>>;
|
|
374
|
+
tools: z.ZodOptional<z.ZodObject<{
|
|
375
|
+
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
376
|
+
denylist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
377
|
+
}, z.core.$strict>>;
|
|
378
|
+
audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
379
|
+
guest: "guest";
|
|
380
|
+
authenticated: "authenticated";
|
|
381
|
+
byo: "byo";
|
|
382
|
+
}>>>;
|
|
383
|
+
}, z.core.$strict>>>;
|
|
384
|
+
defaultMode: z.ZodOptional<z.ZodString>;
|
|
331
385
|
runtime: z.ZodOptional<z.ZodObject<{
|
|
332
386
|
maxTurns: z.ZodOptional<z.ZodNumber>;
|
|
333
387
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
@@ -387,6 +441,45 @@ export type GuueyAgentRuntime = z.infer<typeof RuntimeConfigSchema>;
|
|
|
387
441
|
export type GuueyAgentSystemPrompt = z.infer<typeof SystemPromptSchema>;
|
|
388
442
|
/** Endpoint config type. */
|
|
389
443
|
export type GuueyAgentEndpoint = z.infer<typeof EndpointConfigSchema>;
|
|
444
|
+
/** One declared mode's shape. */
|
|
445
|
+
export type GuueyAgentMode = z.infer<typeof ModeSchema>;
|
|
446
|
+
/** The v1 mode axis — the caller's REAL auth state, server-derived. */
|
|
447
|
+
export type ModeAudienceClass = 'guest' | 'auth';
|
|
448
|
+
/** The result of {@link applyAgentMode} — the effective snapshot + provenance. */
|
|
449
|
+
export interface AppliedAgentMode {
|
|
450
|
+
/** The snapshot to SERVE this invoke (a new object when a mode applied; the same reference otherwise). */
|
|
451
|
+
agent: GuueyAgent;
|
|
452
|
+
/** The mode key actually applied, or `null` when serving the bare base. */
|
|
453
|
+
applied: string | null;
|
|
454
|
+
/** Present when the resolution took a non-obvious branch (all fail-soft). */
|
|
455
|
+
fallback?: 'unknown-mode' | 'pin-clamped' | 'auth-undeclared';
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Resolve + apply one invoke's agent mode (guuey#527/#566 — the guest/auth
|
|
459
|
+
* axis, founder-refined 2026-08-31: "letting them use guest mode vs auth
|
|
460
|
+
* mode is the correct definition").
|
|
461
|
+
*
|
|
462
|
+
* SELECTION is SERVER-DERIVED: `audience` is the caller's REAL auth state
|
|
463
|
+
* (the pod maps anonymous → 'guest', authenticated → 'auth') — never a
|
|
464
|
+
* client claim. The `pin` (the widget/SDK `mode` param) may only choose
|
|
465
|
+
* WITHIN permission: an authed caller may pin 'guest' (preview-as-visitor);
|
|
466
|
+
* a guest pinning 'auth' is CLAMPED to guest ('pin-clamped'), and an
|
|
467
|
+
* unrecognized pin key is ignored ('unknown-mode') — fail-soft always, an
|
|
468
|
+
* embed never breaks.
|
|
469
|
+
*
|
|
470
|
+
* Fallback chain: the selected key's def; an undeclared 'auth' falls to
|
|
471
|
+
* 'guest''s def ('auth-undeclared' — an app that only configures the
|
|
472
|
+
* visitor rep serves everyone that rep, which IS hire-a-rep); still
|
|
473
|
+
* nothing → base. `defaultMode` is deprecated and not consulted.
|
|
474
|
+
*
|
|
475
|
+
* Application (unchanged from the first cut, test-pinned): `systemPrompt`
|
|
476
|
+
* REPLACES the base; `systemPromptAppend` = base + "\n\n" + append; an
|
|
477
|
+
* EMPTY def serves the base by SAME REFERENCE (callers detect no-override
|
|
478
|
+
* by identity); `tools` replaces with the write-gate-proven subset; a
|
|
479
|
+
* `{ file }` prompt is unusable at serve time → base. Pure — never
|
|
480
|
+
* mutates inputs.
|
|
481
|
+
*/
|
|
482
|
+
export declare function applyAgentMode(agent: GuueyAgent, pin: string | undefined, audience: ModeAudienceClass): AppliedAgentMode;
|
|
390
483
|
/** Deploy config type. */
|
|
391
484
|
export type GuueyAgentDeploy = z.infer<typeof DeploySchema>;
|
|
392
485
|
/**
|
|
@@ -427,6 +520,14 @@ export declare const RESERVED_MEMORY_SERVER_NAME = "guuey-memory";
|
|
|
427
520
|
* platform entry at invoke time.
|
|
428
521
|
*/
|
|
429
522
|
export declare const RESERVED_PROFILE_SERVER_NAME = "guuey-profile";
|
|
523
|
+
/**
|
|
524
|
+
* The reserved colocated key the auto-injected human-handoff MCP is booted +
|
|
525
|
+
* spliced under (guuey#552, spec 2026-08-31-human-handoff-v1-design.md).
|
|
526
|
+
* NEVER builder-declarable — mirrors {@link RESERVED_MEMORY_SERVER_NAME}'s
|
|
527
|
+
* reservation for the same reason; the handoff child's own server advertises
|
|
528
|
+
* this name and its aud is `colocatedResourceUrl(appId, this)`.
|
|
529
|
+
*/
|
|
530
|
+
export declare const RESERVED_HANDOFF_SERVER_NAME = "guuey-handoff";
|
|
430
531
|
/**
|
|
431
532
|
* Every `mcpServers` map key the platform reserves. Extensible — one entry
|
|
432
533
|
* today ({@link RESERVED_MEMORY_SERVER_NAME}); future platform-injected
|
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;AAyIhE;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAInB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAA+C,CAAC;AACjF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,KAAK,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,QAAA,MAAM,eAAe;;;kBAGnB,CAAC;AAEH;;;;;;;;GAQG;AACH,QAAA,MAAM,mBAAmB;;;kBAGvB,CAAC;AAcH;;;;GAIG;AACH,QAAA,MAAM,kBAAkB;;oBAGtB,CAAC;AAEH;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB;;;kBAGxB,CAAC;AAEH;;;;;;;;;;GAUG;AACH,QAAA,MAAM,YAAY;;;;;;;;;kBAKhB,CAAC;AA8BH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,CAAA;CAAE,GAAG,SAAS,GAAG,OAAO,CAGxG;AAED;;;;;GAKG;AACH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAAoD,CAAC;AAEnF,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -279,6 +279,58 @@ const SystemPromptSchema = z.union([
|
|
|
279
279
|
z.string().min(1),
|
|
280
280
|
z.strictObject({ file: z.string().min(1) }),
|
|
281
281
|
]);
|
|
282
|
+
/**
|
|
283
|
+
* One mode of a multi-mode agent (guuey#527). `systemPromptAppend` extends
|
|
284
|
+
* the base prompt (inline string or a `{ file }` the loader inlines);
|
|
285
|
+
* `systemPrompt` replaces it wholesale — exactly ONE of the two (the
|
|
286
|
+
* refine on {@link ModesSchema} enforces the xor). `tools.allowlist`, when
|
|
287
|
+
* present, must be a subset of the base allowlist — the WRITE GATE enforces
|
|
288
|
+
* that (the schema can't see the base), so a mode only ever narrows.
|
|
289
|
+
* `audience` is accepted for forward-compat but the SERVER hardcodes the
|
|
290
|
+
* binding for the recognized pair in tonight's slice.
|
|
291
|
+
*/
|
|
292
|
+
const ModeSchema = z.strictObject({
|
|
293
|
+
systemPromptAppend: SystemPromptSchema.optional(),
|
|
294
|
+
systemPrompt: SystemPromptSchema.optional(),
|
|
295
|
+
tools: ToolGatesSchema.optional(),
|
|
296
|
+
audience: z.array(z.enum(['guest', 'authenticated', 'byo'])).optional(),
|
|
297
|
+
});
|
|
298
|
+
/**
|
|
299
|
+
* The `agent.modes` map (guuey#527). Mode keys are short machine
|
|
300
|
+
* identifiers (`rep`, `agent`, …) — the court-key grammar, reused. Each
|
|
301
|
+
* value is a {@link ModeSchema}; a mode declares AT MOST one of
|
|
302
|
+
* `systemPromptAppend` / `systemPrompt` (both = a contradiction the
|
|
303
|
+
* manifest must not carry).
|
|
304
|
+
*/
|
|
305
|
+
const MODE_KEY_RE = /^[a-z][a-z0-9-]{0,31}$/;
|
|
306
|
+
const ModesSchema = z
|
|
307
|
+
.record(z.string().regex(MODE_KEY_RE), ModeSchema)
|
|
308
|
+
.refine((modes) => Object.values(modes).every((m) => !(m.systemPromptAppend !== undefined && m.systemPrompt !== undefined)), { message: 'a mode declares at most one of systemPromptAppend / systemPrompt, never both' });
|
|
309
|
+
/**
|
|
310
|
+
* Does the BASE tool allowlist permit `entry`? (guuey#527 subset rule.)
|
|
311
|
+
* A base pattern covers `entry` when it is `*`, an exact match, or a
|
|
312
|
+
* `prefix.*` wildcard whose prefix `entry` falls under. This is the SAME
|
|
313
|
+
* coverage semantics the pod's gate applies at call time, so "the mode's
|
|
314
|
+
* allowlist is a subset" means exactly "every mode tool the base already
|
|
315
|
+
* permits" — a mode can only ever NARROW, never widen.
|
|
316
|
+
*/
|
|
317
|
+
export function baseAllowlistPermits(baseAllowlist, entry) {
|
|
318
|
+
// No base allowlist = the model may call anything, so any mode entry is
|
|
319
|
+
// trivially permitted (the mode is still a real narrowing of "anything").
|
|
320
|
+
if (baseAllowlist === undefined)
|
|
321
|
+
return true;
|
|
322
|
+
return baseAllowlist.some((b) => {
|
|
323
|
+
if (b === '*')
|
|
324
|
+
return true;
|
|
325
|
+
if (b === entry)
|
|
326
|
+
return true;
|
|
327
|
+
if (b.endsWith('.*')) {
|
|
328
|
+
const prefix = b.slice(0, -1); // keep the dot: "platform." covers "platform.whoami"
|
|
329
|
+
return entry.startsWith(prefix);
|
|
330
|
+
}
|
|
331
|
+
return false;
|
|
332
|
+
});
|
|
333
|
+
}
|
|
282
334
|
/**
|
|
283
335
|
* Bedrock-style invocation endpoint config.
|
|
284
336
|
*
|
|
@@ -423,6 +475,28 @@ export const AgentSectionV1 = z.strictObject({
|
|
|
423
475
|
})
|
|
424
476
|
.optional(),
|
|
425
477
|
tools: ToolGatesSchema.optional(),
|
|
478
|
+
/**
|
|
479
|
+
* Multi-mode agent (guuey#527) — ONE agent, per-mode prompt overlays on
|
|
480
|
+
* the base `systemPrompt` + a per-mode tool SUBSET of the base allowlist.
|
|
481
|
+
* THE AXIS (founder-refined 2026-08-31, the final word): modes are the
|
|
482
|
+
* AUDIENCE'S AUTH STATE — v1 recognizes exactly `guest` (website
|
|
483
|
+
* visitors; the hire-a-rep mode) and `auth` (signed-in users; navigated
|
|
484
|
+
* separately in studio). SELECTION is SERVER-DERIVED from the caller's
|
|
485
|
+
* REAL auth state ({@link applyAgentMode}) — an anonymous caller
|
|
486
|
+
* structurally cannot claim auth mode; the widget/SDK `mode` param is a
|
|
487
|
+
* PIN within permission (authed may pin `guest` to preview-as-visitor;
|
|
488
|
+
* a guest pinning `auth` clamps). `defaultMode` and per-mode `audience`
|
|
489
|
+
* are v1-DEPRECATED (parseable, not consulted — derivation replaced
|
|
490
|
+
* both); the grammar stays key-agnostic for future axes.
|
|
491
|
+
*
|
|
492
|
+
* Each mode: exactly one of `systemPromptAppend` (extend the base — the
|
|
493
|
+
* common case) or `systemPrompt` (full replace); an optional `tools`
|
|
494
|
+
* allowlist that must be a SUBSET of the base `agent.tools.allowlist`
|
|
495
|
+
* (the write gate enforces it — a mode can only ever NARROW).
|
|
496
|
+
*/
|
|
497
|
+
modes: ModesSchema.optional(),
|
|
498
|
+
/** The mode a caller with no audience match resolves to (a declared mode key). */
|
|
499
|
+
defaultMode: z.string().min(1).optional(),
|
|
426
500
|
runtime: RuntimeConfigSchema.optional(),
|
|
427
501
|
/** Claude Agent SDK-specific knobs. Only read when `framework: 'claude-agent-sdk'`. */
|
|
428
502
|
claude: ClaudeFrameworkConfigSchema.optional(),
|
|
@@ -444,7 +518,122 @@ export const AgentSectionV1 = z.strictObject({
|
|
|
444
518
|
endpoint: EndpointConfigSchema.optional(),
|
|
445
519
|
// ── Deploy ──
|
|
446
520
|
deploy: DeploySchema.optional(),
|
|
521
|
+
}).superRefine((agent, ctx) => {
|
|
522
|
+
// guuey#527 — the mode tool SUBSET rule, enforced at parse time (CLI
|
|
523
|
+
// loader AND server both run this): a mode's tool allowlist may only
|
|
524
|
+
// contain tools the BASE allowlist already permits. A mode narrows,
|
|
525
|
+
// never widens — the one privilege-adjacent axis, closed here.
|
|
526
|
+
if (agent.modes === undefined)
|
|
527
|
+
return;
|
|
528
|
+
const base = agent.tools?.allowlist;
|
|
529
|
+
for (const [mode, def] of Object.entries(agent.modes)) {
|
|
530
|
+
const modeAllow = def.tools?.allowlist;
|
|
531
|
+
if (modeAllow === undefined)
|
|
532
|
+
continue;
|
|
533
|
+
for (const entry of modeAllow) {
|
|
534
|
+
if (!baseAllowlistPermits(base, entry)) {
|
|
535
|
+
ctx.addIssue({
|
|
536
|
+
code: z.ZodIssueCode.custom,
|
|
537
|
+
path: ['modes', mode, 'tools', 'allowlist'],
|
|
538
|
+
message: `mode "${mode}" allows tool "${entry}" which the base agent.tools.allowlist does not permit — a mode can only narrow the base tools, never widen them`,
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
// A declared defaultMode must name a declared mode.
|
|
544
|
+
if (agent.defaultMode !== undefined && agent.modes[agent.defaultMode] === undefined) {
|
|
545
|
+
ctx.addIssue({
|
|
546
|
+
code: z.ZodIssueCode.custom,
|
|
547
|
+
path: ['defaultMode'],
|
|
548
|
+
message: `defaultMode "${agent.defaultMode}" is not a declared mode (${Object.keys(agent.modes).join(', ') || 'none'})`,
|
|
549
|
+
});
|
|
550
|
+
}
|
|
447
551
|
});
|
|
552
|
+
/**
|
|
553
|
+
* Resolve + apply one invoke's agent mode (guuey#527/#566 — the guest/auth
|
|
554
|
+
* axis, founder-refined 2026-08-31: "letting them use guest mode vs auth
|
|
555
|
+
* mode is the correct definition").
|
|
556
|
+
*
|
|
557
|
+
* SELECTION is SERVER-DERIVED: `audience` is the caller's REAL auth state
|
|
558
|
+
* (the pod maps anonymous → 'guest', authenticated → 'auth') — never a
|
|
559
|
+
* client claim. The `pin` (the widget/SDK `mode` param) may only choose
|
|
560
|
+
* WITHIN permission: an authed caller may pin 'guest' (preview-as-visitor);
|
|
561
|
+
* a guest pinning 'auth' is CLAMPED to guest ('pin-clamped'), and an
|
|
562
|
+
* unrecognized pin key is ignored ('unknown-mode') — fail-soft always, an
|
|
563
|
+
* embed never breaks.
|
|
564
|
+
*
|
|
565
|
+
* Fallback chain: the selected key's def; an undeclared 'auth' falls to
|
|
566
|
+
* 'guest''s def ('auth-undeclared' — an app that only configures the
|
|
567
|
+
* visitor rep serves everyone that rep, which IS hire-a-rep); still
|
|
568
|
+
* nothing → base. `defaultMode` is deprecated and not consulted.
|
|
569
|
+
*
|
|
570
|
+
* Application (unchanged from the first cut, test-pinned): `systemPrompt`
|
|
571
|
+
* REPLACES the base; `systemPromptAppend` = base + "\n\n" + append; an
|
|
572
|
+
* EMPTY def serves the base by SAME REFERENCE (callers detect no-override
|
|
573
|
+
* by identity); `tools` replaces with the write-gate-proven subset; a
|
|
574
|
+
* `{ file }` prompt is unusable at serve time → base. Pure — never
|
|
575
|
+
* mutates inputs.
|
|
576
|
+
*/
|
|
577
|
+
export function applyAgentMode(agent, pin, audience) {
|
|
578
|
+
const modes = agent.modes;
|
|
579
|
+
if (modes === undefined)
|
|
580
|
+
return { agent, applied: null };
|
|
581
|
+
// ── Selection: derived, then the pin within permission ──────────────
|
|
582
|
+
let fallback;
|
|
583
|
+
let selected = audience;
|
|
584
|
+
if (pin !== undefined && pin !== audience) {
|
|
585
|
+
if (pin !== 'guest' && pin !== 'auth') {
|
|
586
|
+
fallback = 'unknown-mode'; // ignored; pure derivation stands
|
|
587
|
+
}
|
|
588
|
+
else if (pin === 'auth' && audience === 'guest') {
|
|
589
|
+
fallback = 'pin-clamped'; // a guest cannot claim auth mode
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
selected = pin; // authed pinning 'guest' — preview-as-visitor
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
// ── Fallback chain: selected → guest → base ─────────────────────────
|
|
596
|
+
let applied = selected;
|
|
597
|
+
let def = modes[selected];
|
|
598
|
+
if (def === undefined && selected === 'auth') {
|
|
599
|
+
def = modes['guest'];
|
|
600
|
+
if (def !== undefined) {
|
|
601
|
+
applied = 'guest';
|
|
602
|
+
fallback = fallback ?? 'auth-undeclared';
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
if (def === undefined) {
|
|
606
|
+
return { agent, applied: null, ...(fallback !== undefined ? { fallback } : {}) };
|
|
607
|
+
}
|
|
608
|
+
// ── Application (unchanged) ─────────────────────────────────────────
|
|
609
|
+
// An EMPTY def (legal — "at most one") IS the base: same reference out,
|
|
610
|
+
// so callers can cheaply detect "nothing to override" by identity.
|
|
611
|
+
if (def.systemPrompt === undefined && def.systemPromptAppend === undefined && def.tools === undefined) {
|
|
612
|
+
return { agent, applied, ...(fallback !== undefined ? { fallback } : {}) };
|
|
613
|
+
}
|
|
614
|
+
const basePrompt = typeof agent.systemPrompt === 'string' ? agent.systemPrompt : undefined;
|
|
615
|
+
let systemPrompt = agent.systemPrompt;
|
|
616
|
+
if (typeof def.systemPrompt === 'string') {
|
|
617
|
+
systemPrompt = def.systemPrompt;
|
|
618
|
+
}
|
|
619
|
+
else if (typeof def.systemPromptAppend === 'string') {
|
|
620
|
+
systemPrompt =
|
|
621
|
+
basePrompt !== undefined ? `${basePrompt}\n\n${def.systemPromptAppend}` : def.systemPromptAppend;
|
|
622
|
+
}
|
|
623
|
+
else if (def.systemPrompt !== undefined || def.systemPromptAppend !== undefined) {
|
|
624
|
+
// { file } shape — unusable at serve time; base verbatim.
|
|
625
|
+
return { agent, applied: null, ...(fallback !== undefined ? { fallback } : {}) };
|
|
626
|
+
}
|
|
627
|
+
return {
|
|
628
|
+
agent: {
|
|
629
|
+
...agent,
|
|
630
|
+
...(systemPrompt !== undefined ? { systemPrompt } : {}),
|
|
631
|
+
...(def.tools !== undefined ? { tools: def.tools } : {}),
|
|
632
|
+
},
|
|
633
|
+
applied,
|
|
634
|
+
...(fallback !== undefined ? { fallback } : {}),
|
|
635
|
+
};
|
|
636
|
+
}
|
|
448
637
|
// ── No-literal-secrets validation (deploy-time contract enforcement) ──────────
|
|
449
638
|
//
|
|
450
639
|
// The schema (McpServerSchema JSDoc) requires secrets in `mcpServers[].headers`
|
|
@@ -613,6 +802,14 @@ export const RESERVED_MEMORY_SERVER_NAME = 'guuey-memory';
|
|
|
613
802
|
* platform entry at invoke time.
|
|
614
803
|
*/
|
|
615
804
|
export const RESERVED_PROFILE_SERVER_NAME = 'guuey-profile';
|
|
805
|
+
/**
|
|
806
|
+
* The reserved colocated key the auto-injected human-handoff MCP is booted +
|
|
807
|
+
* spliced under (guuey#552, spec 2026-08-31-human-handoff-v1-design.md).
|
|
808
|
+
* NEVER builder-declarable — mirrors {@link RESERVED_MEMORY_SERVER_NAME}'s
|
|
809
|
+
* reservation for the same reason; the handoff child's own server advertises
|
|
810
|
+
* this name and its aud is `colocatedResourceUrl(appId, this)`.
|
|
811
|
+
*/
|
|
812
|
+
export const RESERVED_HANDOFF_SERVER_NAME = 'guuey-handoff';
|
|
616
813
|
/**
|
|
617
814
|
* Every `mcpServers` map key the platform reserves. Extensible — one entry
|
|
618
815
|
* today ({@link RESERVED_MEMORY_SERVER_NAME}); future platform-injected
|
|
@@ -621,6 +818,7 @@ export const RESERVED_PROFILE_SERVER_NAME = 'guuey-profile';
|
|
|
621
818
|
export const RESERVED_MCP_SERVER_NAMES = [
|
|
622
819
|
RESERVED_MEMORY_SERVER_NAME,
|
|
623
820
|
RESERVED_PROFILE_SERVER_NAME,
|
|
821
|
+
RESERVED_HANDOFF_SERVER_NAME,
|
|
624
822
|
];
|
|
625
823
|
/**
|
|
626
824
|
* Validate that no `agent.mcpServers` entry uses a platform-RESERVED name
|
package/dist/app.d.ts
CHANGED
|
@@ -35,9 +35,9 @@ export type AppUserAuthMode = (typeof APP_USER_AUTH_MODES)[number];
|
|
|
35
35
|
*/
|
|
36
36
|
export declare const AppAccessV1: z.ZodObject<{
|
|
37
37
|
userAuthMode: z.ZodOptional<z.ZodEnum<{
|
|
38
|
+
byo: "byo";
|
|
38
39
|
anonymous: "anonymous";
|
|
39
40
|
native_pool: "native_pool";
|
|
40
|
-
byo: "byo";
|
|
41
41
|
}>>;
|
|
42
42
|
userAuthConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
43
43
|
issuerUrl: z.ZodString;
|
|
@@ -110,9 +110,9 @@ export declare const AppSectionV1: z.ZodObject<{
|
|
|
110
110
|
customDomain: z.ZodOptional<z.ZodString>;
|
|
111
111
|
access: z.ZodOptional<z.ZodObject<{
|
|
112
112
|
userAuthMode: z.ZodOptional<z.ZodEnum<{
|
|
113
|
+
byo: "byo";
|
|
113
114
|
anonymous: "anonymous";
|
|
114
115
|
native_pool: "native_pool";
|
|
115
|
-
byo: "byo";
|
|
116
116
|
}>>;
|
|
117
117
|
userAuthConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
118
118
|
issuerUrl: z.ZodString;
|
|
@@ -329,6 +329,7 @@ export declare const AppSectionV1: z.ZodObject<{
|
|
|
329
329
|
identityEndpointUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
330
330
|
noindex: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
331
331
|
}, z.core.$strict>>;
|
|
332
|
+
suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
332
333
|
}, z.core.$strict>;
|
|
333
334
|
/** Static TypeScript type for the app section. */
|
|
334
335
|
export type GuueyApp = z.infer<typeof AppSectionV1>;
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AA0C5D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,8CAA+C,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;kBAWtB,CAAC;AAEH,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS;;;;;;;kBAOpB,CAAC;AAEH,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAErD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc;;kBAA8C,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,GAAG,aAAa,GAClC,KAAK,IAAI,YAAY,CAEvB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AA0C5D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,8CAA+C,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;kBAWtB,CAAC;AAEH,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS;;;;;;;kBAOpB,CAAC;AAEH,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAErD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc;;kBAA8C,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,GAAG,aAAa,GAClC,KAAK,IAAI,YAAY,CAEvB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BvB,CAAC;AAEH,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
package/dist/app.js
CHANGED
|
@@ -142,4 +142,13 @@ export const AppSectionV1 = z.strictObject({
|
|
|
142
142
|
theme: z.union([ThemeFileRefV1, AppThemeV1]).optional(),
|
|
143
143
|
/** Standalone-page posture converged by `guuey agent apply` — see {@link AppPageV1}. */
|
|
144
144
|
page: AppPageV1.optional(),
|
|
145
|
+
/**
|
|
146
|
+
* Starter suggestion chips (guuey#533) — short prompts the widget/kit
|
|
147
|
+
* renders on the EMPTY transcript, one-tap-sends. Declared content on the
|
|
148
|
+
* theme/page precedent: converged by `guuey agent apply`, projected onto
|
|
149
|
+
* the public card, rendered by the kit's empty state. ≤24 stored (the
|
|
150
|
+
* kit shows the first 4); each ≤80 chars, control-chars rejected at the
|
|
151
|
+
* write gate. Absent = no chips (an honest empty state, never invented).
|
|
152
|
+
*/
|
|
153
|
+
suggestions: z.array(z.string().min(1).max(80)).max(24).optional(),
|
|
145
154
|
});
|
package/dist/schema.d.ts
CHANGED
|
@@ -189,6 +189,24 @@ export declare const GuueyJsonV1: z.ZodObject<{
|
|
|
189
189
|
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
190
190
|
denylist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
191
191
|
}, z.core.$strict>>;
|
|
192
|
+
modes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
193
|
+
systemPromptAppend: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
194
|
+
file: z.ZodString;
|
|
195
|
+
}, z.core.$strict>]>>;
|
|
196
|
+
systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
197
|
+
file: z.ZodString;
|
|
198
|
+
}, z.core.$strict>]>>;
|
|
199
|
+
tools: z.ZodOptional<z.ZodObject<{
|
|
200
|
+
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
201
|
+
denylist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
202
|
+
}, z.core.$strict>>;
|
|
203
|
+
audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
204
|
+
guest: "guest";
|
|
205
|
+
authenticated: "authenticated";
|
|
206
|
+
byo: "byo";
|
|
207
|
+
}>>>;
|
|
208
|
+
}, z.core.$strict>>>;
|
|
209
|
+
defaultMode: z.ZodOptional<z.ZodString>;
|
|
192
210
|
runtime: z.ZodOptional<z.ZodObject<{
|
|
193
211
|
maxTurns: z.ZodOptional<z.ZodNumber>;
|
|
194
212
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
@@ -245,9 +263,9 @@ export declare const GuueyJsonV1: z.ZodObject<{
|
|
|
245
263
|
customDomain: z.ZodOptional<z.ZodString>;
|
|
246
264
|
access: z.ZodOptional<z.ZodObject<{
|
|
247
265
|
userAuthMode: z.ZodOptional<z.ZodEnum<{
|
|
266
|
+
byo: "byo";
|
|
248
267
|
anonymous: "anonymous";
|
|
249
268
|
native_pool: "native_pool";
|
|
250
|
-
byo: "byo";
|
|
251
269
|
}>>;
|
|
252
270
|
userAuthConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
253
271
|
issuerUrl: z.ZodString;
|
|
@@ -464,6 +482,7 @@ export declare const GuueyJsonV1: z.ZodObject<{
|
|
|
464
482
|
identityEndpointUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
465
483
|
noindex: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
466
484
|
}, z.core.$strict>>;
|
|
485
|
+
suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
467
486
|
}, z.core.$strict>>;
|
|
468
487
|
ggui: z.ZodOptional<z.ZodObject<{
|
|
469
488
|
appId: z.ZodOptional<z.ZodString>;
|
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.12",
|
|
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.12"
|
|
39
39
|
},
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|