@n24q02m/mcp-core 1.9.0 → 1.11.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/build/auth/credential-form.d.ts +48 -0
- package/build/auth/credential-form.d.ts.map +1 -1
- package/build/auth/credential-form.js +31 -0
- package/build/auth/credential-form.js.map +1 -1
- package/build/auth/local-oauth-app.d.ts +24 -1
- package/build/auth/local-oauth-app.d.ts.map +1 -1
- package/build/auth/local-oauth-app.js +133 -1
- package/build/auth/local-oauth-app.js.map +1 -1
- package/build/lifecycle/lock.d.ts +124 -0
- package/build/lifecycle/lock.d.ts.map +1 -0
- package/build/lifecycle/lock.js +318 -0
- package/build/lifecycle/lock.js.map +1 -0
- package/build/relay/session.d.ts +12 -0
- package/build/relay/session.d.ts.map +1 -0
- package/build/relay/session.js +55 -0
- package/build/relay/session.js.map +1 -0
- package/build/relay/tool-helpers.d.ts +56 -0
- package/build/relay/tool-helpers.d.ts.map +1 -0
- package/build/relay/tool-helpers.js +60 -0
- package/build/relay/tool-helpers.js.map +1 -0
- package/build/storage/config-file.d.ts +17 -0
- package/build/storage/config-file.d.ts.map +1 -1
- package/build/storage/config-file.js +22 -1
- package/build/storage/config-file.js.map +1 -1
- package/build/storage/session-lock.js +1 -1
- package/build/storage/session-lock.js.map +1 -1
- package/build/transport/cache.d.ts +19 -0
- package/build/transport/cache.d.ts.map +1 -0
- package/build/transport/cache.js +67 -0
- package/build/transport/cache.js.map +1 -0
- package/build/transport/local-server.d.ts.map +1 -1
- package/build/transport/local-server.js +47 -2
- package/build/transport/local-server.js.map +1 -1
- package/build/transport/smart-stdio.d.ts +64 -0
- package/build/transport/smart-stdio.d.ts.map +1 -1
- package/build/transport/smart-stdio.js +170 -0
- package/build/transport/smart-stdio.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,16 @@ export interface ConfigField {
|
|
|
17
17
|
helpUrl?: string;
|
|
18
18
|
required?: boolean;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Return true iff every required field in `schema` has a non-empty value in
|
|
22
|
+
* `config`. For schemas whose fields are all optional, requires the explicit
|
|
23
|
+
* `_setup_complete: "true"` flag — see core-py `is_schema_complete` docstring.
|
|
24
|
+
*
|
|
25
|
+
* Strict equality on the flag: only the literal string `"true"` counts. This
|
|
26
|
+
* guards against legacy / partial bootstrap entries (e.g. peer-shared cloud
|
|
27
|
+
* keys) tricking the auto-open gate into thinking the user has configured.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isSchemaComplete(config: Record<string, string> | null | undefined, schema: RelayConfigSchema): boolean;
|
|
20
30
|
export interface CapabilityInfo {
|
|
21
31
|
label: string;
|
|
22
32
|
priority?: string;
|
|
@@ -51,4 +61,42 @@ export interface RenderOptions {
|
|
|
51
61
|
* @returns Complete HTML document string, XSS-safe with all dynamic content escaped.
|
|
52
62
|
*/
|
|
53
63
|
export declare function renderCredentialForm(schema: RelayConfigSchema, options: RenderOptions): string;
|
|
64
|
+
/**
|
|
65
|
+
* Relay config field schema (D7).
|
|
66
|
+
*
|
|
67
|
+
* Each field supports:
|
|
68
|
+
* name (string, required): config.enc key
|
|
69
|
+
* label (string, required): UI label
|
|
70
|
+
* required (boolean, required): server gate
|
|
71
|
+
* secret (boolean, optional, default false): true = never re-render value to HTML
|
|
72
|
+
* oauthField (boolean, optional, default false): true = managed by OAuth flow,
|
|
73
|
+
* render as Re-authorize button instead of input
|
|
74
|
+
* type (string, optional, default "text"): UI input type
|
|
75
|
+
* description (string, optional): help text
|
|
76
|
+
* default (unknown, optional): default value if user submits empty
|
|
77
|
+
* pattern (string, optional): client-side regex validation
|
|
78
|
+
*
|
|
79
|
+
* Parity with core-py `RelayConfigField` (snake_case `oauth_field` -> camelCase
|
|
80
|
+
* `oauthField` per TS convention).
|
|
81
|
+
*/
|
|
82
|
+
export interface RelayConfigField {
|
|
83
|
+
name: string;
|
|
84
|
+
label: string;
|
|
85
|
+
required: boolean;
|
|
86
|
+
secret?: boolean;
|
|
87
|
+
oauthField?: boolean;
|
|
88
|
+
type?: 'text' | 'password' | 'url' | 'email';
|
|
89
|
+
description?: string;
|
|
90
|
+
default?: unknown;
|
|
91
|
+
pattern?: string;
|
|
92
|
+
}
|
|
93
|
+
/** Return true if field stores a credential that must not be re-rendered to HTML. */
|
|
94
|
+
export declare function isSecretField(field: RelayConfigField): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Return true if field represents an OAuth-managed credential.
|
|
97
|
+
*
|
|
98
|
+
* OAuth fields render as "Re-authorize" buttons, not raw input boxes.
|
|
99
|
+
* Examples: refresh_token, access_token, id_token.
|
|
100
|
+
*/
|
|
101
|
+
export declare function isOAuthField(field: RelayConfigField): boolean;
|
|
54
102
|
//# sourceMappingURL=credential-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-form.d.ts","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AA8ED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAotB9F"}
|
|
1
|
+
{"version":3,"file":"credential-form.d.ts","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACjD,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAUT;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AA8ED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAotB9F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE7D"}
|
|
@@ -8,6 +8,24 @@
|
|
|
8
8
|
* are kept verbatim so the rendered form has visual + behavioral parity between
|
|
9
9
|
* Python and TS servers.
|
|
10
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* Return true iff every required field in `schema` has a non-empty value in
|
|
13
|
+
* `config`. For schemas whose fields are all optional, requires the explicit
|
|
14
|
+
* `_setup_complete: "true"` flag — see core-py `is_schema_complete` docstring.
|
|
15
|
+
*
|
|
16
|
+
* Strict equality on the flag: only the literal string `"true"` counts. This
|
|
17
|
+
* guards against legacy / partial bootstrap entries (e.g. peer-shared cloud
|
|
18
|
+
* keys) tricking the auto-open gate into thinking the user has configured.
|
|
19
|
+
*/
|
|
20
|
+
export function isSchemaComplete(config, schema) {
|
|
21
|
+
if (!config)
|
|
22
|
+
return false;
|
|
23
|
+
const requiredKeys = (schema.fields ?? []).filter((field) => field.required === true).map((field) => field.key);
|
|
24
|
+
if (requiredKeys.length > 0) {
|
|
25
|
+
return requiredKeys.every((key) => Boolean(config[key]));
|
|
26
|
+
}
|
|
27
|
+
return config._setup_complete === 'true';
|
|
28
|
+
}
|
|
11
29
|
function escapeHtml(value) {
|
|
12
30
|
return String(value ?? '')
|
|
13
31
|
.replace(/&/g, '&')
|
|
@@ -804,4 +822,17 @@ export function renderCredentialForm(schema, options) {
|
|
|
804
822
|
</body>
|
|
805
823
|
</html>`;
|
|
806
824
|
}
|
|
825
|
+
/** Return true if field stores a credential that must not be re-rendered to HTML. */
|
|
826
|
+
export function isSecretField(field) {
|
|
827
|
+
return field.secret === true;
|
|
828
|
+
}
|
|
829
|
+
/**
|
|
830
|
+
* Return true if field represents an OAuth-managed credential.
|
|
831
|
+
*
|
|
832
|
+
* OAuth fields render as "Re-authorize" buttons, not raw input boxes.
|
|
833
|
+
* Examples: refresh_token, access_token, id_token.
|
|
834
|
+
*/
|
|
835
|
+
export function isOAuthField(field) {
|
|
836
|
+
return field.oauthField === true;
|
|
837
|
+
}
|
|
807
838
|
//# sourceMappingURL=credential-form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-form.js","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"credential-form.js","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* protocol, and TTL constants are kept identical for cross-language parity.
|
|
23
23
|
*/
|
|
24
24
|
import { JWTIssuer } from '../oauth/jwt-issuer.js';
|
|
25
|
-
import { type RelayConfigSchema } from './credential-form.js';
|
|
25
|
+
import { type RelayConfigField, type RelayConfigSchema } from './credential-form.js';
|
|
26
26
|
import { type RequestHandler } from './router.js';
|
|
27
27
|
/** Next-step hint returned by credential / step callbacks. */
|
|
28
28
|
export type NextStep = Record<string, unknown>;
|
|
@@ -119,4 +119,27 @@ export interface LocalOAuthAppResult {
|
|
|
119
119
|
* device code flow).
|
|
120
120
|
*/
|
|
121
121
|
export declare function createLocalOAuthApp(options: LocalOAuthAppOptions): Promise<LocalOAuthAppResult>;
|
|
122
|
+
/**
|
|
123
|
+
* Render an HTML ``<label>+<input>`` for a single relay field.
|
|
124
|
+
*
|
|
125
|
+
* Rules per D7:
|
|
126
|
+
* - oauth_field: render Re-authorize button (no plaintext exposed)
|
|
127
|
+
* - secret + value present: placeholder, empty input, "Replace" checkbox
|
|
128
|
+
* - secret + no value: empty input with field label as placeholder
|
|
129
|
+
* - non-secret: pre-fill with ``currentValue`` as input ``value`` attr
|
|
130
|
+
*/
|
|
131
|
+
export declare function renderField(field: RelayConfigField, currentValue: unknown): string;
|
|
132
|
+
/**
|
|
133
|
+
* Merge a form submission into the current config per D7 rules.
|
|
134
|
+
*
|
|
135
|
+
* Behavior:
|
|
136
|
+
* - Empty secret -> preserve the existing value (avoid clearing on a
|
|
137
|
+
* re-submit where the user did not retype the credential).
|
|
138
|
+
* - Non-empty secret -> replace.
|
|
139
|
+
* - Non-secret -> always replace (including with an empty string, so the
|
|
140
|
+
* user can intentionally blank a field).
|
|
141
|
+
* - oauth_field -> ignored here; OAuth fields are managed by their own
|
|
142
|
+
* Re-authorize flow, never by raw form input.
|
|
143
|
+
*/
|
|
144
|
+
export declare function mergeSubmission(current: Record<string, unknown>, submitted: Record<string, unknown>, schemaFields: RelayConfigField[]): Record<string, unknown>;
|
|
122
145
|
//# sourceMappingURL=local-oauth-app.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-oauth-app.d.ts","sourceRoot":"","sources":["../../src/auth/local-oauth-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"local-oauth-app.d.ts","sourceRoot":"","sources":["../../src/auth/local-oauth-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,aAAa,CAAA;AAGpB,8DAA8D;AAC9D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE9C;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,cAAc,KACpB,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,cAAc,KACpB,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;AAE/C,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,WAAW,EAAE,iBAAiB,CAAA;IAC9B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,mBAAmB,CAAA;IACxC,gEAAgE;IAChE,eAAe,CAAC,EAAE,YAAY,CAAA;IAC9B,iFAAiF;IACjF,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAE,CACzB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC7D,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,OAAO,EAAE,cAAc,CAAA;IACvB,yEAAyE;IACzE,SAAS,EAAE,SAAS,CAAA;IACpB,8EAA8E;IAC9E,iBAAiB,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACxD;AAqGD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwiBrG;AA0CD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CAwClF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,YAAY,EAAE,gBAAgB,EAAE,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB"}
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import { createHash, randomBytes, timingSafeEqual } from 'node:crypto';
|
|
25
25
|
import { JWTIssuer } from '../oauth/jwt-issuer.js';
|
|
26
|
-
import {
|
|
26
|
+
import { markSetupComplete as markConfigSetupComplete } from '../storage/config-file.js';
|
|
27
|
+
import { isOAuthField, isSecretField, renderCredentialForm } from './credential-form.js';
|
|
27
28
|
import { createRouter, htmlResponse, jsonResponse, parseFormBody, parseJsonBody } from './router.js';
|
|
28
29
|
import { authorizationServerMetadata, protectedResourceMetadata } from './well-known.js';
|
|
29
30
|
// Auth codes and PKCE sessions expire after 10 minutes.
|
|
@@ -151,6 +152,7 @@ export async function createLocalOAuthApp(options) {
|
|
|
151
152
|
// here via authorizePrefill which coerces every value through String()
|
|
152
153
|
// and rejects empty strings, but we restate the contract here so static
|
|
153
154
|
// analyzers don't flag the merge as a mass-assignment sink.
|
|
155
|
+
// nosemgrep: javascript.express.security.express-data-exfiltration.express-data-exfiltration
|
|
154
156
|
for (const [k, v] of Object.entries(stored.data)) {
|
|
155
157
|
prefill[k] = String(v);
|
|
156
158
|
}
|
|
@@ -251,6 +253,19 @@ export async function createLocalOAuthApp(options) {
|
|
|
251
253
|
return;
|
|
252
254
|
}
|
|
253
255
|
}
|
|
256
|
+
// Mark the persistent ``_setup_complete`` flag once the user submits
|
|
257
|
+
// successfully. Multi-step flows (OTP / 2FA) defer marking until the
|
|
258
|
+
// final step in ``otpHandler`` — see core-py parity. Best-effort: any
|
|
259
|
+
// storage error is logged via warning rather than failing the response.
|
|
260
|
+
const isMultiStep = nextStep !== null && (nextStep.type === 'otp_required' || nextStep.type === 'password_required');
|
|
261
|
+
if (!isMultiStep) {
|
|
262
|
+
try {
|
|
263
|
+
await markConfigSetupComplete(options.serverName);
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
console.warn(`Failed to mark _setup_complete=true for ${options.serverName}:`, err instanceof Error ? err.message : String(err));
|
|
267
|
+
}
|
|
268
|
+
}
|
|
254
269
|
// Generate auth code. Carry ``sub`` so /token can issue JWT with the
|
|
255
270
|
// same subject the credentials were saved under.
|
|
256
271
|
const authCode = randomBytes(32).toString('base64url');
|
|
@@ -454,6 +469,14 @@ export async function createLocalOAuthApp(options) {
|
|
|
454
469
|
return;
|
|
455
470
|
}
|
|
456
471
|
// Completion (callback returned null / undefined or unknown dict type).
|
|
472
|
+
// Mark persistent _setup_complete flag now that the multi-step chain has
|
|
473
|
+
// finished — single-step counterpart lives in authorizePost.
|
|
474
|
+
try {
|
|
475
|
+
await markConfigSetupComplete(options.serverName);
|
|
476
|
+
}
|
|
477
|
+
catch (err) {
|
|
478
|
+
console.warn(`Failed to mark _setup_complete=true for ${options.serverName}:`, err instanceof Error ? err.message : String(err));
|
|
479
|
+
}
|
|
457
480
|
clearPendingStep();
|
|
458
481
|
jsonResponse(res, 200, { ok: true });
|
|
459
482
|
}
|
|
@@ -574,4 +597,113 @@ export async function createLocalOAuthApp(options) {
|
|
|
574
597
|
]);
|
|
575
598
|
return { handler, jwtIssuer, markSetupComplete, markSetupFailed };
|
|
576
599
|
}
|
|
600
|
+
// ---------------------------------------------------------------------------
|
|
601
|
+
// D7 — Pre-fill renderer + form-submission merger.
|
|
602
|
+
//
|
|
603
|
+
// These helpers mirror the core-py exports of the same names. They are
|
|
604
|
+
// intentionally NOT wired into the default ``authorizeGet`` / ``authorizePost``
|
|
605
|
+
// above — that path stays on ``renderCredentialForm`` for legacy parity. New
|
|
606
|
+
// consumers (transparent-bridge Wave 1) compose ``renderField`` per field for
|
|
607
|
+
// secret-aware rendering, then call ``mergeSubmission`` to merge the POST body
|
|
608
|
+
// with their stored ``config.enc`` so a missing secret in the body preserves
|
|
609
|
+
// the previously stored value instead of clearing it.
|
|
610
|
+
// ---------------------------------------------------------------------------
|
|
611
|
+
const SECRET_PLACEHOLDER = '••••••••(configured)';
|
|
612
|
+
function escapeHtml(s) {
|
|
613
|
+
return s
|
|
614
|
+
.replace(/&/g, '&')
|
|
615
|
+
.replace(/</g, '<')
|
|
616
|
+
.replace(/>/g, '>')
|
|
617
|
+
.replace(/"/g, '"')
|
|
618
|
+
.replace(/'/g, ''');
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* Resolve the canonical config key for a relay field.
|
|
622
|
+
*
|
|
623
|
+
* Two schema styles coexist in the codebase: D7 ``RelayConfigField`` uses
|
|
624
|
+
* ``name``; legacy ``ConfigField`` (consumed by ``renderCredentialForm``)
|
|
625
|
+
* uses ``key``. ``renderField`` and ``mergeSubmission`` accept both so a
|
|
626
|
+
* consumer can mix or migrate without rewriting field dicts. ``name`` wins
|
|
627
|
+
* when both are present.
|
|
628
|
+
*/
|
|
629
|
+
function fieldName(field) {
|
|
630
|
+
const raw = field;
|
|
631
|
+
const name = typeof raw.name === 'string' ? raw.name : '';
|
|
632
|
+
if (name.length > 0)
|
|
633
|
+
return name;
|
|
634
|
+
const key = typeof raw.key === 'string' ? raw.key : '';
|
|
635
|
+
return key;
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Render an HTML ``<label>+<input>`` for a single relay field.
|
|
639
|
+
*
|
|
640
|
+
* Rules per D7:
|
|
641
|
+
* - oauth_field: render Re-authorize button (no plaintext exposed)
|
|
642
|
+
* - secret + value present: placeholder, empty input, "Replace" checkbox
|
|
643
|
+
* - secret + no value: empty input with field label as placeholder
|
|
644
|
+
* - non-secret: pre-fill with ``currentValue`` as input ``value`` attr
|
|
645
|
+
*/
|
|
646
|
+
export function renderField(field, currentValue) {
|
|
647
|
+
const name = fieldName(field);
|
|
648
|
+
const label = field.label ?? name;
|
|
649
|
+
const fieldType = field.type ?? 'text';
|
|
650
|
+
if (isOAuthField(field)) {
|
|
651
|
+
const status = currentValue ? 'Connected' : 'Not connected';
|
|
652
|
+
return (`<div class="field oauth-field"><label>${escapeHtml(label)}</label> ` +
|
|
653
|
+
`<span class="oauth-status">${status}</span> ` +
|
|
654
|
+
`<button type="button" class="oauth-reauth" data-field="${escapeHtml(name)}">` +
|
|
655
|
+
`Re-authorize</button></div>`);
|
|
656
|
+
}
|
|
657
|
+
if (isSecretField(field)) {
|
|
658
|
+
if (currentValue) {
|
|
659
|
+
return (`<div class="field secret-field"><label>${escapeHtml(label)}</label> ` +
|
|
660
|
+
`<input type="password" name="${escapeHtml(name)}" value="" ` +
|
|
661
|
+
`placeholder="${escapeHtml(SECRET_PLACEHOLDER)}" ` +
|
|
662
|
+
`data-secret-configured="true"> ` +
|
|
663
|
+
`<label class="replace-toggle"><input type="checkbox" ` +
|
|
664
|
+
`name="__replace_${escapeHtml(name)}" value="1"> Replace this credential</label>` +
|
|
665
|
+
`</div>`);
|
|
666
|
+
}
|
|
667
|
+
return (`<div class="field secret-field"><label>${escapeHtml(label)}</label> ` +
|
|
668
|
+
`<input type="password" name="${escapeHtml(name)}" value="" ` +
|
|
669
|
+
`placeholder="${escapeHtml(label)}"></div>`);
|
|
670
|
+
}
|
|
671
|
+
const valueAttr = currentValue !== null && currentValue !== undefined ? escapeHtml(String(currentValue)) : '';
|
|
672
|
+
return (`<div class="field"><label>${escapeHtml(label)}</label> ` +
|
|
673
|
+
`<input type="${escapeHtml(fieldType)}" name="${escapeHtml(name)}" ` +
|
|
674
|
+
`value="${valueAttr}"></div>`);
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Merge a form submission into the current config per D7 rules.
|
|
678
|
+
*
|
|
679
|
+
* Behavior:
|
|
680
|
+
* - Empty secret -> preserve the existing value (avoid clearing on a
|
|
681
|
+
* re-submit where the user did not retype the credential).
|
|
682
|
+
* - Non-empty secret -> replace.
|
|
683
|
+
* - Non-secret -> always replace (including with an empty string, so the
|
|
684
|
+
* user can intentionally blank a field).
|
|
685
|
+
* - oauth_field -> ignored here; OAuth fields are managed by their own
|
|
686
|
+
* Re-authorize flow, never by raw form input.
|
|
687
|
+
*/
|
|
688
|
+
export function mergeSubmission(current, submitted, schemaFields) {
|
|
689
|
+
const result = { ...current };
|
|
690
|
+
for (const field of schemaFields) {
|
|
691
|
+
const name = fieldName(field);
|
|
692
|
+
if (!name)
|
|
693
|
+
continue;
|
|
694
|
+
if (isOAuthField(field))
|
|
695
|
+
continue;
|
|
696
|
+
const newValue = submitted[name] ?? '';
|
|
697
|
+
if (isSecretField(field)) {
|
|
698
|
+
if (newValue === '' || newValue === null || newValue === undefined) {
|
|
699
|
+
continue;
|
|
700
|
+
}
|
|
701
|
+
result[name] = newValue;
|
|
702
|
+
}
|
|
703
|
+
else {
|
|
704
|
+
result[name] = newValue;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
return result;
|
|
708
|
+
}
|
|
577
709
|
//# sourceMappingURL=local-oauth-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-oauth-app.js","sourceRoot":"","sources":["../../src/auth/local-oauth-app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-oauth-app.js","sourceRoot":"","sources":["../../src/auth/local-oauth-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lock-file lifecycle helpers (D9 — hybrid TTL extension).
|
|
3
|
+
*
|
|
4
|
+
* The lock file written by `runLocalServer` may contain 4 lines (legacy
|
|
5
|
+
* v1) or 6 lines (D9 modern):
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
* {pid}
|
|
9
|
+
* {port}
|
|
10
|
+
* {token}
|
|
11
|
+
* {spawnedAt_iso8601_utc}
|
|
12
|
+
* {credState} # "configured" | "unconfigured" (D9)
|
|
13
|
+
* {lastActivityAt_iso8601_utc} # bumped by daemon refresh loop (D9)
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Stale locks are detected when *any* of:
|
|
17
|
+
* - file has legacy 3-line format (no timestamp) → migrate by deletion
|
|
18
|
+
* - timestamp older than the applicable TTL
|
|
19
|
+
* - configured credState → 24h
|
|
20
|
+
* - unconfigured credState → 30 min
|
|
21
|
+
* - writing PID does not exist on this host
|
|
22
|
+
*
|
|
23
|
+
* Dead-PID locks are reaped immediately. Past-TTL idle setup daemons
|
|
24
|
+
* (unconfigured) are terminated; configured daemons past TTL get their
|
|
25
|
+
* lock unlinked but the process is left alone (parity with pre-D9 sweep
|
|
26
|
+
* behavior so a long-running daemon never gets SIGKILL'd by a sweep
|
|
27
|
+
* race).
|
|
28
|
+
*
|
|
29
|
+
* TypeScript port of core-py's `mcp_core.lifecycle.lock`. Behaviour and
|
|
30
|
+
* TTL constants kept identical for cross-language parity.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEFAULT_LOCK_TTL_HOURS = 24;
|
|
33
|
+
/** D9 hybrid TTL constants — selected by `credState` in `sweepStaleLocks`. */
|
|
34
|
+
export declare const LIFECYCLE_TTL_CONFIGURED_MS: number;
|
|
35
|
+
export declare const LIFECYCLE_TTL_UNCONFIGURED_MS: number;
|
|
36
|
+
export type CredState = 'configured' | 'unconfigured';
|
|
37
|
+
/**
|
|
38
|
+
* Parsed lock metadata. `createdAt` is preserved as a backward-compat
|
|
39
|
+
* alias for `spawnedAt` so pre-D9 callers (test_lock format suite,
|
|
40
|
+
* `refreshLockTimestamp`) continue to work without source changes.
|
|
41
|
+
*/
|
|
42
|
+
export interface LockMetadata {
|
|
43
|
+
pid: number;
|
|
44
|
+
port: number;
|
|
45
|
+
token: string;
|
|
46
|
+
spawnedAt: Date;
|
|
47
|
+
credState: CredState;
|
|
48
|
+
lastActivityAt: Date;
|
|
49
|
+
/** @deprecated Alias for `spawnedAt`. New code should read `spawnedAt`. */
|
|
50
|
+
createdAt: Date;
|
|
51
|
+
}
|
|
52
|
+
export declare function locksDir(root?: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* No-arg lock-dir resolver — D9 sweep tests `vi.spyOn(lockModule, 'lockDir')`
|
|
55
|
+
* to redirect into a temp directory without threading a `root` arg.
|
|
56
|
+
*/
|
|
57
|
+
export declare function lockDir(): string;
|
|
58
|
+
/**
|
|
59
|
+
* Serialize `LockMetadata` to the 6-line on-disk format. Trailing
|
|
60
|
+
* newline included so writes always end in `\n` and the parser's
|
|
61
|
+
* `lines.length` checks behave deterministically.
|
|
62
|
+
*/
|
|
63
|
+
export declare function serializeLock(meta: LockMetadata): string;
|
|
64
|
+
/**
|
|
65
|
+
* Parse the textual lock payload into `LockMetadata`. Accepts 4-line
|
|
66
|
+
* legacy, 5-line transitional, and 6-line D9 modern formats. Throws on
|
|
67
|
+
* fewer than 4 lines or unparseable timestamp / pid / port.
|
|
68
|
+
*/
|
|
69
|
+
export declare function parseLock(raw: string): LockMetadata;
|
|
70
|
+
export declare function parseLockMetadata(path: string): LockMetadata | null;
|
|
71
|
+
export declare function isLockExpired(path: string, ttlHours?: number): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Cross-platform PID liveness check via `process.kill(pid, 0)`. Best-effort.
|
|
74
|
+
* Returns false on EPERM (different-user processes) so sweep does not steal
|
|
75
|
+
* locks owned by other users. Pre-D9 entry point — kept for backward compat.
|
|
76
|
+
*/
|
|
77
|
+
export declare function isPidAlive(pid: number): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Liveness check on a parsed `LockMetadata`. D9 sweep tests
|
|
80
|
+
* `vi.spyOn(lockModule, 'isAlive')` to control the alive/dead branch
|
|
81
|
+
* without needing a real PID. Wraps `isPidAlive` so the underlying
|
|
82
|
+
* cross-platform logic stays in one place.
|
|
83
|
+
*/
|
|
84
|
+
export declare function isAlive(meta: LockMetadata): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Kill the lock owner. D9 sweep tests `vi.spyOn(lockModule, 'terminateDaemon')`
|
|
87
|
+
* to assert the unconfigured-TTL branch invokes termination, without
|
|
88
|
+
* killing real PIDs. Used by `sweepStaleLocks` when an unconfigured
|
|
89
|
+
* daemon's idle TTL elapses.
|
|
90
|
+
*/
|
|
91
|
+
export declare function terminateDaemon(pid: number): void;
|
|
92
|
+
/**
|
|
93
|
+
* Refresh `spawnedAt` of an existing lock file. Silent no-op on legacy /
|
|
94
|
+
* malformed files so callers don't need try/except.
|
|
95
|
+
*
|
|
96
|
+
* Padded to 512 bytes so on-disk size stays stable while a Windows
|
|
97
|
+
* byte-range lock is held past the metadata region (parity with core-py).
|
|
98
|
+
* Preserves the on-disk line count: a 4-line legacy lock stays 4-line
|
|
99
|
+
* after refresh; a 6-line modern lock stays 6-line (with both `spawnedAt`
|
|
100
|
+
* and `lastActivityAt` bumped).
|
|
101
|
+
*/
|
|
102
|
+
export declare function refreshLockTimestamp(path: string): void;
|
|
103
|
+
/**
|
|
104
|
+
* Remove stale lock files for `serverName` (D9 hybrid TTL). Returns count removed.
|
|
105
|
+
*
|
|
106
|
+
* Called by `runLocalServer` at daemon startup before writing its own lock,
|
|
107
|
+
* preventing pile-up of dozens of `<server>-<port>.lock` files when daemons
|
|
108
|
+
* exit abnormally (Windows OOM, taskkill, signal).
|
|
109
|
+
*
|
|
110
|
+
* Backward-compat: the legacy signature `(serverName, ttlHours, root)` is
|
|
111
|
+
* preserved for pre-D9 callers. New D9 callers pass just `serverName` and
|
|
112
|
+
* rely on the hybrid TTL plus the `lockDir()` lookup (mockable in tests).
|
|
113
|
+
*/
|
|
114
|
+
export declare function sweepStaleLocks(serverName: string, ttlHours?: number, root?: string): number;
|
|
115
|
+
/**
|
|
116
|
+
* Write the 4-line lock payload (pid, port, token, ISO timestamp) padded
|
|
117
|
+
* to 512 bytes. Used by `runLocalServer` after the OS file lock is
|
|
118
|
+
* acquired. Continues to write 4-line for backward compat — D9 sweep
|
|
119
|
+
* treats 4-line as `credState='configured'` so behavior is equivalent.
|
|
120
|
+
*
|
|
121
|
+
* Returns the absolute path to the lock file.
|
|
122
|
+
*/
|
|
123
|
+
export declare function writeLockFile(serverName: string, port: number, token: string, root?: string): string;
|
|
124
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAcH,eAAO,MAAM,sBAAsB,KAAK,CAAA;AAExC,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,QAAmB,CAAA;AAC3D,eAAO,MAAM,6BAA6B,QAAiB,CAAA;AAE3D,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;AAErD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,IAAI,CAAA;IACpB,2EAA2E;IAC3E,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAUxD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAuBnD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkBnE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA+B,GAAG,OAAO,CAK9F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAU/C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAsBvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAsE5F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpG"}
|