@ggui-ai/mcp-server 0.27.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/build-mcp.d.ts +84 -1
- package/dist/build-mcp.d.ts.map +1 -1
- package/dist/build-mcp.js +306 -3
- package/dist/console-config-routes.js +1 -1
- package/dist/console-mcp-tools-routes.d.ts +1 -1
- package/dist/console-mcp-tools-routes.d.ts.map +1 -1
- package/dist/console-mcp-tools-routes.js +1 -1
- package/dist/control-service.d.ts +1 -1
- package/dist/control-service.d.ts.map +1 -1
- package/dist/control-service.js +1 -1
- package/dist/ggui-session-channel/subscribe.d.ts.map +1 -1
- package/dist/ggui-session-channel/subscribe.js +24 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -2
- package/dist/llm-backed-negotiator.d.ts +10 -48
- package/dist/llm-backed-negotiator.d.ts.map +1 -1
- package/dist/llm-backed-negotiator.js +5 -135
- package/dist/mcp-apps-outbound.d.ts.map +1 -1
- package/dist/mcp-apps-outbound.js +24 -3
- package/dist/mcp-endpoint-routes.d.ts.map +1 -1
- package/dist/mcp-endpoint-routes.js +27 -2
- package/dist/oauth-as-routes.d.ts +3 -0
- package/dist/oauth-as-routes.d.ts.map +1 -1
- package/dist/oauth-as-routes.js +20 -13
- package/dist/oauth.d.ts +24 -18
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +42 -40
- package/dist/request-context.d.ts +19 -0
- package/dist/request-context.d.ts.map +1 -1
- package/dist/request-context.js +17 -1
- package/dist/server.d.ts +33 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +44 -2
- package/dist/storage.d.ts +11 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +4 -3
- package/package.json +16 -16
package/dist/oauth.d.ts
CHANGED
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
* server validates PKCE, returns the user's `ggui_user_*` key as
|
|
29
29
|
* the `access_token`.
|
|
30
30
|
* 8. Client retries `/mcp` with `Authorization: Bearer ggui_user_*`
|
|
31
|
-
* →
|
|
31
|
+
* → the configured {@link AuthAdapter} accepts it, as it would
|
|
32
|
+
* any bearer it issued. ✅
|
|
32
33
|
*
|
|
33
34
|
* ## Why the access token IS the API key
|
|
34
35
|
*
|
|
@@ -48,13 +49,14 @@
|
|
|
48
49
|
*
|
|
49
50
|
* ## Storage
|
|
50
51
|
*
|
|
51
|
-
* Auth codes + DCR clients live in-memory ({@link InMemoryOAuthStorage})
|
|
52
|
-
*
|
|
53
|
-
* balancer),
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
52
|
+
* Auth codes + DCR clients live in-memory ({@link InMemoryOAuthStorage}),
|
|
53
|
+
* which is correct for a single replica. With more than one replica
|
|
54
|
+
* (2+ processes behind one load balancer), one sign-in's requests can
|
|
55
|
+
* reach different replicas: the client registers and exchanges the code,
|
|
56
|
+
* while the user's browser approves at `/oauth/authorize`. Sticky
|
|
57
|
+
* sessions do not help, because those are two different clients. Pass a
|
|
58
|
+
* shared {@link OAuthStorage} (one every replica reads) through the
|
|
59
|
+
* `oauth.storage` config option.
|
|
58
60
|
*
|
|
59
61
|
* DCR clients are short-lived in practice — Claude Desktop registers
|
|
60
62
|
* once per install + caches the `client_id`. A server restart drops all
|
|
@@ -73,9 +75,13 @@ export interface OAuthConfig {
|
|
|
73
75
|
readonly issuerUrl?: string;
|
|
74
76
|
/**
|
|
75
77
|
* Storage seam for auth codes + DCR clients. Defaults to
|
|
76
|
-
* {@link InMemoryOAuthStorage}
|
|
77
|
-
*
|
|
78
|
-
*
|
|
78
|
+
* {@link InMemoryOAuthStorage}, which holds them in this server
|
|
79
|
+
* process: correct for a single replica. With more than one replica,
|
|
80
|
+
* one sign-in's requests can land on different replicas (the client
|
|
81
|
+
* registers and exchanges the code, the user's browser approves), so a
|
|
82
|
+
* multi-replica deployment must provide a shared implementation of
|
|
83
|
+
* {@link OAuthStorage}. Session affinity does not help: the browser and
|
|
84
|
+
* the client are different clients.
|
|
79
85
|
*/
|
|
80
86
|
readonly storage?: OAuthStorage;
|
|
81
87
|
/**
|
|
@@ -87,7 +93,7 @@ export interface OAuthConfig {
|
|
|
87
93
|
* user's chosen `api_key`.
|
|
88
94
|
*
|
|
89
95
|
* Trade-off: the consent UI sees every OAuth param + the user's
|
|
90
|
-
*
|
|
96
|
+
* signed-in session — it MUST be operator-controlled (same trust
|
|
91
97
|
* boundary as the MCP server itself). Cross-origin POST is fine
|
|
92
98
|
* (form-encoded → no CORS preflight); the response is a 302 to the
|
|
93
99
|
* client's `redirect_uri` which the browser follows transparently.
|
|
@@ -150,8 +156,7 @@ export interface AuthCodeRecord {
|
|
|
150
156
|
* issued by /token are opaque static keys (`ggui_user_*`); the
|
|
151
157
|
* appId-from-resource binding is enforced at the auth-code →
|
|
152
158
|
* token boundary, not via JWT claims. Runtime appId resolution
|
|
153
|
-
* keeps reading the key
|
|
154
|
-
* `GguiUserApiKey` row).
|
|
159
|
+
* keeps reading it from the key itself.
|
|
155
160
|
*/
|
|
156
161
|
readonly resource?: string;
|
|
157
162
|
}
|
|
@@ -164,7 +169,7 @@ export interface ClientRecord {
|
|
|
164
169
|
readonly createdAt: number;
|
|
165
170
|
/**
|
|
166
171
|
* RFC 8707 resource indicator from this client's most recent
|
|
167
|
-
* `/oauth/authorize` request
|
|
172
|
+
* `/oauth/authorize` request. Captured
|
|
168
173
|
* each time `handleAuthorizePost` consumes the params — surfaces
|
|
169
174
|
* "Connected to: <App>" on the operator's Connected Apps console
|
|
170
175
|
* once that surface goes live. DCR itself doesn't carry resource
|
|
@@ -316,9 +321,8 @@ export declare function handleAuthorizeGet(req: Request, res: Response, config:
|
|
|
316
321
|
* Validation flow:
|
|
317
322
|
* 1. Re-validate the OAuth params (defense — caller could skip /GET).
|
|
318
323
|
* 2. Resolve the pasted key through `auth.authenticate()` — accepts
|
|
319
|
-
* any key the adapter accepts.
|
|
320
|
-
*
|
|
321
|
-
* `lookupUser` binding.
|
|
324
|
+
* any key the configured adapter accepts, e.g. a `ggui_user_*` key
|
|
325
|
+
* it issued.
|
|
322
326
|
* 3. On success: write {code, accessToken=key, codeChallenge,
|
|
323
327
|
* redirectUri, clientId} to storage. 5-minute TTL.
|
|
324
328
|
* 4. Redirect to `redirect_uri?code=<code>&state=<state>&iss=<issuer>`
|
|
@@ -347,5 +351,7 @@ export declare function handleAuthorizePost(req: Request, res: Response, config:
|
|
|
347
351
|
* 400 status code.
|
|
348
352
|
*/
|
|
349
353
|
export declare function handleToken(req: Request, res: Response, storage: OAuthStorage): Promise<void>;
|
|
354
|
+
/** The OAuth routes' HTML error page (also used by the routes' failure handler). */
|
|
355
|
+
export declare function renderErrorPage(message: string): string;
|
|
350
356
|
export {};
|
|
351
357
|
//# sourceMappingURL=oauth.d.ts.map
|
package/dist/oauth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth.js
CHANGED
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
* server validates PKCE, returns the user's `ggui_user_*` key as
|
|
29
29
|
* the `access_token`.
|
|
30
30
|
* 8. Client retries `/mcp` with `Authorization: Bearer ggui_user_*`
|
|
31
|
-
* →
|
|
31
|
+
* → the configured {@link AuthAdapter} accepts it, as it would
|
|
32
|
+
* any bearer it issued. ✅
|
|
32
33
|
*
|
|
33
34
|
* ## Why the access token IS the API key
|
|
34
35
|
*
|
|
@@ -48,13 +49,14 @@
|
|
|
48
49
|
*
|
|
49
50
|
* ## Storage
|
|
50
51
|
*
|
|
51
|
-
* Auth codes + DCR clients live in-memory ({@link InMemoryOAuthStorage})
|
|
52
|
-
*
|
|
53
|
-
* balancer),
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
52
|
+
* Auth codes + DCR clients live in-memory ({@link InMemoryOAuthStorage}),
|
|
53
|
+
* which is correct for a single replica. With more than one replica
|
|
54
|
+
* (2+ processes behind one load balancer), one sign-in's requests can
|
|
55
|
+
* reach different replicas: the client registers and exchanges the code,
|
|
56
|
+
* while the user's browser approves at `/oauth/authorize`. Sticky
|
|
57
|
+
* sessions do not help, because those are two different clients. Pass a
|
|
58
|
+
* shared {@link OAuthStorage} (one every replica reads) through the
|
|
59
|
+
* `oauth.storage` config option.
|
|
58
60
|
*
|
|
59
61
|
* DCR clients are short-lived in practice — Claude Desktop registers
|
|
60
62
|
* once per install + caches the `client_id`. A server restart drops all
|
|
@@ -443,9 +445,8 @@ export async function handleAuthorizeGet(req, res, config, storage) {
|
|
|
443
445
|
* Validation flow:
|
|
444
446
|
* 1. Re-validate the OAuth params (defense — caller could skip /GET).
|
|
445
447
|
* 2. Resolve the pasted key through `auth.authenticate()` — accepts
|
|
446
|
-
* any key the adapter accepts.
|
|
447
|
-
*
|
|
448
|
-
* `lookupUser` binding.
|
|
448
|
+
* any key the configured adapter accepts, e.g. a `ggui_user_*` key
|
|
449
|
+
* it issued.
|
|
449
450
|
* 3. On success: write {code, accessToken=key, codeChallenge,
|
|
450
451
|
* redirectUri, clientId} to storage. 5-minute TTL.
|
|
451
452
|
* 4. Redirect to `redirect_uri?code=<code>&state=<state>&iss=<issuer>`
|
|
@@ -510,14 +511,39 @@ export async function handleAuthorizePost(req, res, config, storage, auth, pairi
|
|
|
510
511
|
}
|
|
511
512
|
throw err;
|
|
512
513
|
}
|
|
513
|
-
// Mint auth code. 32 bytes random → base64url ≈ 43 chars.
|
|
514
|
-
const code = randomBytes(32).toString('base64url');
|
|
515
|
-
const FIVE_MINUTES_MS = 5 * 60 * 1000;
|
|
516
514
|
// RFC 8707 §2 — capture the resource indicator so /token can
|
|
517
515
|
// enforce the same target on exchange. Absence is permitted (the
|
|
518
516
|
// record's `resource` stays undefined; tokens issued under that
|
|
519
517
|
// code carry universal scoping).
|
|
520
518
|
const resource = params['resource'];
|
|
519
|
+
// Record this authorize on the client (its latest resource and time)
|
|
520
|
+
// BEFORE any code is minted. The stamp is load-bearing: a shared store
|
|
521
|
+
// may key a client's lifetime on it (a short life from registration,
|
|
522
|
+
// extended once the client authorizes), and the operator's Connected
|
|
523
|
+
// Apps view reads it. A store that cannot record the authorize must
|
|
524
|
+
// throw; the authorize then fails closed: no code is issued, and the
|
|
525
|
+
// user sees an error page and can try again. A code issued for an
|
|
526
|
+
// authorize the store did not record would work now and fail later,
|
|
527
|
+
// when the client's registration lapses, with nothing to show why.
|
|
528
|
+
try {
|
|
529
|
+
await storage.putClient({
|
|
530
|
+
...validation.client,
|
|
531
|
+
lastAuthorizeAt: Date.now(),
|
|
532
|
+
...(typeof resource === 'string' && resource.length > 0
|
|
533
|
+
? { lastResource: resource }
|
|
534
|
+
: {}),
|
|
535
|
+
});
|
|
536
|
+
}
|
|
537
|
+
catch {
|
|
538
|
+
res
|
|
539
|
+
.status(503)
|
|
540
|
+
.type('html')
|
|
541
|
+
.send(renderErrorPage('This sign-in could not be recorded. Please try again.'));
|
|
542
|
+
return;
|
|
543
|
+
}
|
|
544
|
+
// Mint auth code. 32 bytes random → base64url ≈ 43 chars.
|
|
545
|
+
const code = randomBytes(32).toString('base64url');
|
|
546
|
+
const FIVE_MINUTES_MS = 5 * 60 * 1000;
|
|
521
547
|
await storage.putAuthCode({
|
|
522
548
|
code,
|
|
523
549
|
accessToken: apiKey,
|
|
@@ -529,31 +555,6 @@ export async function handleAuthorizePost(req, res, config, storage, auth, pairi
|
|
|
529
555
|
? { resource }
|
|
530
556
|
: {}),
|
|
531
557
|
});
|
|
532
|
-
// Snapshot the resource + authorize timestamp onto the client
|
|
533
|
-
// record (Q7 RESOLVED 2026-05-06). Lets the operator's Connected
|
|
534
|
-
// Apps console surface "Connected to: <App>" without the
|
|
535
|
-
// listClients caller having to join against the auth-code table
|
|
536
|
-
// (which is short-lived; codes have already been consumed by the
|
|
537
|
-
// time the operator opens the page). Best-effort — failure to
|
|
538
|
-
// snapshot doesn't fail the authorize flow; the client just
|
|
539
|
-
// shows "Universal" in the UI until the next authorize.
|
|
540
|
-
try {
|
|
541
|
-
const client = await storage.getClient(params['client_id']);
|
|
542
|
-
if (client) {
|
|
543
|
-
await storage.putClient({
|
|
544
|
-
...client,
|
|
545
|
-
lastAuthorizeAt: Date.now(),
|
|
546
|
-
...(typeof resource === 'string' && resource.length > 0
|
|
547
|
-
? { lastResource: resource }
|
|
548
|
-
: {}),
|
|
549
|
-
});
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
catch {
|
|
553
|
-
// Swallow — auth flow stays green even if the client-record
|
|
554
|
-
// snapshot fails. The user gets their token; UI display is the
|
|
555
|
-
// only thing that lags.
|
|
556
|
-
}
|
|
557
558
|
// Build redirect URL — preserve the client's `state`, and name the
|
|
558
559
|
// issuer (RFC 9207, ggui#1270): the SAME `resolveIssuerUrl` value the
|
|
559
560
|
// metadata publishes as `issuer`, because a client compares the two
|
|
@@ -863,7 +864,8 @@ ${hiddenFields}
|
|
|
863
864
|
</form></div>`;
|
|
864
865
|
return renderShell('01 / authorize', 'Authorize MCP connection.', 'An OAuth client is requesting access to this server.', body, 'Authorize MCP Connection');
|
|
865
866
|
}
|
|
866
|
-
|
|
867
|
+
/** The OAuth routes' HTML error page (also used by the routes' failure handler). */
|
|
868
|
+
export function renderErrorPage(message) {
|
|
867
869
|
const body = `<div class="ggui-card"><div class="ggui-stack">
|
|
868
870
|
<div class="ggui-callout"><span class="ggui-callout__label">error</span><span>${escapeHtml(message)}</span></div>
|
|
869
871
|
<p class="ggui-muted">Close this tab and retry from your client. If the problem persists, the request was rejected before reaching the consent step.</p>
|
|
@@ -43,6 +43,12 @@
|
|
|
43
43
|
* Each callsite that wants auto-derive opts in explicitly via
|
|
44
44
|
* `resolvePublicBaseUrl(configuredOrUndefined)`. Everything not opting
|
|
45
45
|
* in stays static-config-only.
|
|
46
|
+
*
|
|
47
|
+
* `userAgent` is the other kind of field: the raw `User-Agent` header,
|
|
48
|
+
* set by whatever client sent the request, from any peer. It is for
|
|
49
|
+
* attribution only (a log line can say which client it served). It is
|
|
50
|
+
* never an auth, trust or routing input, it sits outside the loopback
|
|
51
|
+
* gate, and nothing is derived from it.
|
|
46
52
|
*/
|
|
47
53
|
import type { NextFunction, Request, Response } from 'express';
|
|
48
54
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
@@ -64,6 +70,11 @@ export interface RequestContext {
|
|
|
64
70
|
* value) requires both — direct localhost browser hits don't get
|
|
65
71
|
* their URLs rewritten, only proxy-fronted ones do. */
|
|
66
72
|
readonly forwardedHostHonored: boolean;
|
|
73
|
+
/** The request's raw `User-Agent` header, or undefined when it sent
|
|
74
|
+
* none. CLIENT-SET AND UNTRUSTED: any caller can send any value, so
|
|
75
|
+
* read it for attribution only, never for auth, trust or routing.
|
|
76
|
+
* See the file header. */
|
|
77
|
+
readonly userAgent: string | undefined;
|
|
67
78
|
}
|
|
68
79
|
export declare const requestContextStore: AsyncLocalStorage<RequestContext>;
|
|
69
80
|
/**
|
|
@@ -79,6 +90,14 @@ export declare function buildRequestContextMiddleware(): (req: Request, _res: Re
|
|
|
79
90
|
/** Read the request context out of the ALS store. Returns undefined
|
|
80
91
|
* when called outside any request (background workers, boot setup). */
|
|
81
92
|
export declare function getRequestContext(): RequestContext | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* The `User-Agent` of the request this code is running for, or undefined
|
|
95
|
+
* outside any request (boot, background work) or when the client sent
|
|
96
|
+
* none. For attribution only, such as marking a log line with the client
|
|
97
|
+
* that caused it: the value is client-set, so it never decides auth,
|
|
98
|
+
* trust or routing.
|
|
99
|
+
*/
|
|
100
|
+
export declare function currentRequestUserAgent(): string | undefined;
|
|
82
101
|
/**
|
|
83
102
|
* Resolve the public base URL for a request.
|
|
84
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B;2CACuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC;;yCAEqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;0DACsD;IACtD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;4DAIwD;IACxD,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC;;;+BAG2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,eAAO,MAAM,mBAAmB,mCAA0C,CAAC;AAW3E;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,KACnC,KAAK,OAAO,EAAE,MAAM,QAAQ,EAAE,MAAM,YAAY,UAoCzD;AAED;wEACwE;AACxE,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAE5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAa5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,MAAM,GAAG,SAAS,CAOrB"}
|
package/dist/request-context.js
CHANGED
|
@@ -43,6 +43,12 @@
|
|
|
43
43
|
* Each callsite that wants auto-derive opts in explicitly via
|
|
44
44
|
* `resolvePublicBaseUrl(configuredOrUndefined)`. Everything not opting
|
|
45
45
|
* in stays static-config-only.
|
|
46
|
+
*
|
|
47
|
+
* `userAgent` is the other kind of field: the raw `User-Agent` header,
|
|
48
|
+
* set by whatever client sent the request, from any peer. It is for
|
|
49
|
+
* attribution only (a log line can say which client it served). It is
|
|
50
|
+
* never an auth, trust or routing input, it sits outside the loopback
|
|
51
|
+
* gate, and nothing is derived from it.
|
|
46
52
|
*/
|
|
47
53
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
48
54
|
export const requestContextStore = new AsyncLocalStorage();
|
|
@@ -93,7 +99,7 @@ export function buildRequestContextMiddleware() {
|
|
|
93
99
|
}
|
|
94
100
|
}
|
|
95
101
|
}
|
|
96
|
-
requestContextStore.run({ proto, host, peerIsLocal, forwardedHostHonored }, next);
|
|
102
|
+
requestContextStore.run({ proto, host, peerIsLocal, forwardedHostHonored, userAgent: req.get('user-agent') }, next);
|
|
97
103
|
};
|
|
98
104
|
}
|
|
99
105
|
/** Read the request context out of the ALS store. Returns undefined
|
|
@@ -101,6 +107,16 @@ export function buildRequestContextMiddleware() {
|
|
|
101
107
|
export function getRequestContext() {
|
|
102
108
|
return requestContextStore.getStore();
|
|
103
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* The `User-Agent` of the request this code is running for, or undefined
|
|
112
|
+
* outside any request (boot, background work) or when the client sent
|
|
113
|
+
* none. For attribution only, such as marking a log line with the client
|
|
114
|
+
* that caused it: the value is client-set, so it never decides auth,
|
|
115
|
+
* trust or routing.
|
|
116
|
+
*/
|
|
117
|
+
export function currentRequestUserAgent() {
|
|
118
|
+
return getRequestContext()?.userAgent;
|
|
119
|
+
}
|
|
104
120
|
/**
|
|
105
121
|
* Resolve the public base URL for a request.
|
|
106
122
|
*
|
package/dist/server.d.ts
CHANGED
|
@@ -2398,6 +2398,18 @@ export interface CreateGguiServerOptions {
|
|
|
2398
2398
|
* `BuildMcpServerOptions.withholdResultMeta` for the full rationale.
|
|
2399
2399
|
*/
|
|
2400
2400
|
readonly withholdResultMeta?: boolean;
|
|
2401
|
+
/**
|
|
2402
|
+
* The tool-input element ceiling every mount this server builds applies
|
|
2403
|
+
* (ggui#1993): how many array elements and object members one
|
|
2404
|
+
* `tools/call`'s `arguments` may carry before the SDK refuses the call
|
|
2405
|
+
* ahead of any handler. Default `MAX_TOOL_INPUT_ELEMENTS` (10,000);
|
|
2406
|
+
* `Infinity` is "no limit" (the request body limit is then the only
|
|
2407
|
+
* bound). A value below 1 or NaN is refused here, at composition — a
|
|
2408
|
+
* configuration error at boot, never at the first call (ggui#1996). A
|
|
2409
|
+
* deployment whose tools legitimately carry larger inputs (a data-dense
|
|
2410
|
+
* dashboard in `props`) raises it instead of forking the factory.
|
|
2411
|
+
*/
|
|
2412
|
+
readonly maxToolInputElements?: number;
|
|
2401
2413
|
/**
|
|
2402
2414
|
* Dep seam for the operator-class `ggui_ops_*` apps handlers. Like
|
|
2403
2415
|
* every ops domain it is optional — `buildOpsBundleHandlers`
|
|
@@ -2501,6 +2513,23 @@ export interface CreateGguiServerOptions {
|
|
|
2501
2513
|
* it ends them (ggui#1631), in milliseconds.
|
|
2502
2514
|
*/
|
|
2503
2515
|
export declare const DEFAULT_CLOSE_GRACE_MS = 5000;
|
|
2516
|
+
/**
|
|
2517
|
+
* Idle timeouts {@link GguiServer.listen} sets on the `node:http` server it
|
|
2518
|
+
* returns (ggui#1772). Node's own default is `keepAliveTimeout` 5 s, which
|
|
2519
|
+
* is shorter than any proxy's pooled upstream keepalive (ingress-nginx
|
|
2520
|
+
* defaults to `upstream-keepalive-timeout` 60 s): the proxy reuses a
|
|
2521
|
+
* connection Node has just idle-closed, the request meets a TCP RST, and a
|
|
2522
|
+
* non-idempotent POST — every `tools/call` — reaches the client as a 502.
|
|
2523
|
+
* The rule is the standard one: the upstream's idle timeout must exceed
|
|
2524
|
+
* the proxy's, so 65 s clears the 60 s default; and `headersTimeout` must
|
|
2525
|
+
* exceed `keepAliveTimeout` (Node documents that order, and the default
|
|
2526
|
+
* `requestTimeout`, 300 s, sits above both). A deployment whose proxy
|
|
2527
|
+
* keeps connections longer than 60 s raises the proxy's side below these
|
|
2528
|
+
* or sets its own values on the returned server after `listen()` resolves.
|
|
2529
|
+
*/
|
|
2530
|
+
export declare const DEFAULT_KEEP_ALIVE_TIMEOUT_MS = 65000;
|
|
2531
|
+
/** See {@link DEFAULT_KEEP_ALIVE_TIMEOUT_MS}: strictly above it, as Node requires. */
|
|
2532
|
+
export declare const DEFAULT_HEADERS_TIMEOUT_MS = 66000;
|
|
2504
2533
|
export interface GguiServer {
|
|
2505
2534
|
/**
|
|
2506
2535
|
* The Express app. Mount it under your own parent router if you want
|
|
@@ -2509,7 +2538,10 @@ export interface GguiServer {
|
|
|
2509
2538
|
readonly app: Express;
|
|
2510
2539
|
/**
|
|
2511
2540
|
* Bind the app to a port and return the underlying `node:http` server.
|
|
2512
|
-
* Resolves once the listener is accepting connections.
|
|
2541
|
+
* Resolves once the listener is accepting connections. The returned
|
|
2542
|
+
* server carries {@link DEFAULT_KEEP_ALIVE_TIMEOUT_MS} and
|
|
2543
|
+
* {@link DEFAULT_HEADERS_TIMEOUT_MS} (ggui#1772), so behind a proxy its
|
|
2544
|
+
* idle connections outlive the proxy's pooled upstream keepalive.
|
|
2513
2545
|
*/
|
|
2514
2546
|
listen(port?: number, host?: string): Promise<NodeHttpServer>;
|
|
2515
2547
|
/**
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -780,6 +780,23 @@ export function buildOpsBundleHandlers(deps) {
|
|
|
780
780
|
* it ends them (ggui#1631), in milliseconds.
|
|
781
781
|
*/
|
|
782
782
|
export const DEFAULT_CLOSE_GRACE_MS = 5000;
|
|
783
|
+
/**
|
|
784
|
+
* Idle timeouts {@link GguiServer.listen} sets on the `node:http` server it
|
|
785
|
+
* returns (ggui#1772). Node's own default is `keepAliveTimeout` 5 s, which
|
|
786
|
+
* is shorter than any proxy's pooled upstream keepalive (ingress-nginx
|
|
787
|
+
* defaults to `upstream-keepalive-timeout` 60 s): the proxy reuses a
|
|
788
|
+
* connection Node has just idle-closed, the request meets a TCP RST, and a
|
|
789
|
+
* non-idempotent POST — every `tools/call` — reaches the client as a 502.
|
|
790
|
+
* The rule is the standard one: the upstream's idle timeout must exceed
|
|
791
|
+
* the proxy's, so 65 s clears the 60 s default; and `headersTimeout` must
|
|
792
|
+
* exceed `keepAliveTimeout` (Node documents that order, and the default
|
|
793
|
+
* `requestTimeout`, 300 s, sits above both). A deployment whose proxy
|
|
794
|
+
* keeps connections longer than 60 s raises the proxy's side below these
|
|
795
|
+
* or sets its own values on the returned server after `listen()` resolves.
|
|
796
|
+
*/
|
|
797
|
+
export const DEFAULT_KEEP_ALIVE_TIMEOUT_MS = 65_000;
|
|
798
|
+
/** See {@link DEFAULT_KEEP_ALIVE_TIMEOUT_MS}: strictly above it, as Node requires. */
|
|
799
|
+
export const DEFAULT_HEADERS_TIMEOUT_MS = 66_000;
|
|
783
800
|
/**
|
|
784
801
|
* The ws-token TTL and refresh window a server mints with (ggui#1496 part
|
|
785
802
|
* B). Both are positive whole seconds, and the window is at least the TTL:
|
|
@@ -1891,6 +1908,15 @@ export function createGguiServer(opts = {}) {
|
|
|
1891
1908
|
const appIdFromIdentity = opts.appIdFromIdentity ?? defaultAppIdFromIdentity;
|
|
1892
1909
|
const als = new AsyncLocalStorage();
|
|
1893
1910
|
const app = express();
|
|
1911
|
+
// ggui#1997 — a mount is served at exactly its declared path. Express folds
|
|
1912
|
+
// case by default, so `POST /CONTROL` reached the `/control` handler while
|
|
1913
|
+
// a per-path edge policy (ingress-nginx's case-sensitive `Prefix` location,
|
|
1914
|
+
// such as the control plane's 256k body cap) never saw it. The router reads
|
|
1915
|
+
// this setting when it is first created, so it is set before any route or
|
|
1916
|
+
// middleware is registered. An odd-cased path is a 404 from the router,
|
|
1917
|
+
// before any handler runs; no first-party client sends one (the published
|
|
1918
|
+
// connect URLs are lower-case literals).
|
|
1919
|
+
app.set("case sensitive routing", true);
|
|
1894
1920
|
// Per-request context (ALS-backed) — captures forwarded host/proto
|
|
1895
1921
|
// when the TCP peer is loopback, so deps that build absolute URLs
|
|
1896
1922
|
// (render/update resultMeta.runtimeUrl) can adapt to the tunnel host.
|
|
@@ -1935,11 +1961,14 @@ export function createGguiServer(opts = {}) {
|
|
|
1935
1961
|
// own ACAO (runtime-bundle, /code, /api/renders — all `*`) win: they
|
|
1936
1962
|
// setHeader later, which replaces this layer's value.
|
|
1937
1963
|
app.use(createBrowserCorsMiddleware({ policy: originHostPolicy }));
|
|
1938
|
-
|
|
1964
|
+
// Bodies are read as sent: neither parser decodes a `Content-Encoding`
|
|
1965
|
+
// (a compressed body answers 415). MCP clients post plain JSON, so
|
|
1966
|
+
// nothing known is refused, and no request body reaches a decoder.
|
|
1967
|
+
app.use(express.json({ limit: bodyLimit, inflate: false }));
|
|
1939
1968
|
// Form-urlencoded body parser for /oauth/token (RFC 6749 §4.1.3
|
|
1940
1969
|
// requires application/x-www-form-urlencoded). JSON bodies still
|
|
1941
1970
|
// work via the JSON parser above — handlers tolerate both.
|
|
1942
|
-
app.use(express.urlencoded({ extended: false, limit: "64kb" }));
|
|
1971
|
+
app.use(express.urlencoded({ extended: false, limit: "64kb", inflate: false }));
|
|
1943
1972
|
// End-user browser-session cookie bridge. When a request
|
|
1944
1973
|
// arrives with `ggui_user_session` cookie but no `Authorization`
|
|
1945
1974
|
// header, synthesize the header from the cookie value so every
|
|
@@ -2078,6 +2107,7 @@ export function createGguiServer(opts = {}) {
|
|
|
2078
2107
|
: {}),
|
|
2079
2108
|
auth,
|
|
2080
2109
|
getPairingService: () => pairingService,
|
|
2110
|
+
logger,
|
|
2081
2111
|
});
|
|
2082
2112
|
}
|
|
2083
2113
|
// Live-channel render endpoint reference is declared earlier (above
|
|
@@ -2138,8 +2168,16 @@ export function createGguiServer(opts = {}) {
|
|
|
2138
2168
|
// Per-boot `buildMcpServer` options — every input below is fixed at
|
|
2139
2169
|
// composition time, so the bundle is assembled once and the MCP
|
|
2140
2170
|
// endpoint family spreads a fresh copy per request.
|
|
2171
|
+
// ggui#1996 — the SDK refuses a bad ceiling at `new McpServer`, which this
|
|
2172
|
+
// factory runs per request; refuse it here instead, at composition.
|
|
2173
|
+
if (opts.maxToolInputElements !== undefined &&
|
|
2174
|
+
opts.maxToolInputElements !== Infinity &&
|
|
2175
|
+
(Number.isNaN(opts.maxToolInputElements) || opts.maxToolInputElements < 1)) {
|
|
2176
|
+
throw new Error(`createGguiServer: maxToolInputElements must be a number of at least 1, or Infinity, got ${String(opts.maxToolInputElements)}`);
|
|
2177
|
+
}
|
|
2141
2178
|
const buildMcpOptions = {
|
|
2142
2179
|
mcpAppsOutbound: mcpAppsEnabled,
|
|
2180
|
+
...(opts.maxToolInputElements !== undefined ? { maxToolInputElements: opts.maxToolInputElements } : {}),
|
|
2143
2181
|
...(viewProofGate !== undefined ? { viewProofGate } : {}),
|
|
2144
2182
|
// Caller-provided `shellHtml` overrides the default (and the
|
|
2145
2183
|
// inline-runtime shell); `installMcpAppsOutbound` falls back to
|
|
@@ -3296,6 +3334,10 @@ export function createGguiServer(opts = {}) {
|
|
|
3296
3334
|
resolve(server);
|
|
3297
3335
|
});
|
|
3298
3336
|
server.on("error", reject);
|
|
3337
|
+
// ggui#1772 — outlive any proxy's upstream keepalive; see the
|
|
3338
|
+
// constants' docblock for the rule and the numbers.
|
|
3339
|
+
server.keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT_MS;
|
|
3340
|
+
server.headersTimeout = DEFAULT_HEADERS_TIMEOUT_MS;
|
|
3299
3341
|
// Wire live-channel upgrade handling onto the same http server.
|
|
3300
3342
|
// Only routes matching the channel path actually become WebSockets;
|
|
3301
3343
|
// other paths (or a future second WS endpoint) are rejected.
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GguiSessionStore, GguiSessionStreamBuffer, ThreadStore, VectorStore } from '@ggui-ai/mcp-server-core';
|
|
1
|
+
import type { BlueprintIndex, GguiSessionStore, GguiSessionStreamBuffer, ThreadStore, VectorStore } from '@ggui-ai/mcp-server-core';
|
|
2
2
|
import type { StorageConfig } from '@ggui-ai/project-config';
|
|
3
3
|
export interface ResolveStorageFromConfigOptions {
|
|
4
4
|
/**
|
|
@@ -22,6 +22,16 @@ export interface ResolvedStorageStores {
|
|
|
22
22
|
/** Concrete VectorStore, iff the config declared one. Undefined =
|
|
23
23
|
* caller falls back to createGguiServer's in-memory default. */
|
|
24
24
|
readonly vectors?: VectorStore;
|
|
25
|
+
/**
|
|
26
|
+
* The blueprint identity index, present iff `vectors` declares sqlite: a
|
|
27
|
+
* `SqliteBlueprintIndex` on the same database file, so the index persists
|
|
28
|
+
* exactly when the vectors do. Pass it to `createGguiServer({ index })`
|
|
29
|
+
* beside `vectors`. An in-memory index over persistent vectors starts
|
|
30
|
+
* empty after every restart, and each restart then registers the same
|
|
31
|
+
* blueprints again as new rows (ggui#1907). Absent otherwise, and
|
|
32
|
+
* `createGguiServer` keeps its in-memory index.
|
|
33
|
+
*/
|
|
34
|
+
readonly index?: BlueprintIndex;
|
|
25
35
|
/** Concrete ThreadStore, iff the config declared one. Undefined
|
|
26
36
|
* ONLY when `storage.threads` is absent from the manifest — in
|
|
27
37
|
* that case the caller skips the `threads:` opt-in on
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,+BAA+B;IAC9C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC;oEACgE;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC;oEACgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B;;;;;;;;;;;;;;;;;yCAiBqC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACpD;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,IAAI,GAAE,+BAAoC,GACzC,OAAO,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,+BAA+B;IAC9C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC;oEACgE;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC;oEACgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC;;;;;;;;;;;;;;;;;yCAiBqC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACpD;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,IAAI,GAAE,+BAAoC,GACzC,OAAO,CAAC,qBAAqB,CAAC,CAoDhC"}
|
package/dist/storage.js
CHANGED
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
* who want storage from config write:
|
|
42
42
|
*
|
|
43
43
|
* ```ts
|
|
44
|
-
* const { renderStore, vectors, streamBuffer } =
|
|
44
|
+
* const { renderStore, vectors, index, streamBuffer } =
|
|
45
45
|
* await resolveStorageFromConfig(manifest.storage, { baseDir: projectRoot });
|
|
46
|
-
* const server = createGguiServer({ renderStore, vectors, streamBuffer });
|
|
46
|
+
* const server = createGguiServer({ renderStore, vectors, index, streamBuffer });
|
|
47
47
|
* ```
|
|
48
48
|
*
|
|
49
49
|
* Explicit instances passed to `createGguiServer` still win — this
|
|
@@ -113,7 +113,7 @@ export async function resolveStorageFromConfig(config, opts = {}) {
|
|
|
113
113
|
// Single dynamic import serves every sqlite adapter — better-sqlite3's
|
|
114
114
|
// N-API binding loads once even if the import lands twice; the
|
|
115
115
|
// subpath barrel is cached by Node's module loader.
|
|
116
|
-
const { SqliteGguiSessionStore, SqliteGguiSessionStreamBuffer, SqliteVectorStore, SqliteThreadStore } = await import('@ggui-ai/mcp-server-core/sqlite');
|
|
116
|
+
const { SqliteBlueprintIndex, SqliteGguiSessionStore, SqliteGguiSessionStreamBuffer, SqliteVectorStore, SqliteThreadStore } = await import('@ggui-ai/mcp-server-core/sqlite');
|
|
117
117
|
if (config.renders && config.renders.driver === 'sqlite') {
|
|
118
118
|
const filename = resolveStoragePath(config.renders.path, opts.baseDir);
|
|
119
119
|
ensureParentDir(filename);
|
|
@@ -124,6 +124,7 @@ export async function resolveStorageFromConfig(config, opts = {}) {
|
|
|
124
124
|
const filename = resolveStoragePath(config.vectors.path, opts.baseDir);
|
|
125
125
|
ensureParentDir(filename);
|
|
126
126
|
result.vectors = new SqliteVectorStore({ filename });
|
|
127
|
+
result.index = new SqliteBlueprintIndex({ filename });
|
|
127
128
|
}
|
|
128
129
|
if (config.threads && config.threads.driver === 'sqlite') {
|
|
129
130
|
const filename = resolveStoragePath(config.threads.path, opts.baseDir);
|