@herbertgao/pi-extensions 2026.8.13 → 2026.8.14
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 +8 -6
- package/node_modules/@czottmann/pi-automode/CHANGELOG.md +12 -0
- package/node_modules/@czottmann/pi-automode/README.md +1 -1
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/classifier.ts +55 -4
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/config.ts +7 -3
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/constants.ts +2 -0
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/hard-deny.ts +134 -23
- package/node_modules/@czottmann/pi-automode/package.json +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/README.en.md +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/README.md +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/package.json +3 -3
- package/node_modules/@herbertgao/pi-subagents/CHANGELOG.md +6 -0
- package/node_modules/@herbertgao/pi-subagents/package.json +2 -1
- package/node_modules/@herbertgao/pi-subagents/src/ui/conversation-viewer.ts +8 -1
- package/node_modules/@tifan/pi-preferred-thinking/README.md +1 -1
- package/node_modules/@tifan/pi-preferred-thinking/package.json +1 -1
- package/node_modules/@tifan/pi-preferred-thinking/src/index.ts +15 -2
- package/node_modules/pi-mcp-adapter/CHANGELOG.md +20 -0
- package/node_modules/pi-mcp-adapter/README.md +3 -0
- package/node_modules/pi-mcp-adapter/cli.js +4 -4
- package/node_modules/pi-mcp-adapter/config.ts +1 -0
- package/node_modules/pi-mcp-adapter/dist/config.js +1 -0
- package/node_modules/pi-mcp-adapter/dist/config.js.map +1 -1
- package/node_modules/pi-mcp-adapter/dist/mcp-bearer-store.d.ts +24 -0
- package/node_modules/pi-mcp-adapter/dist/mcp-bearer-store.js +336 -0
- package/node_modules/pi-mcp-adapter/dist/mcp-bearer-store.js.map +1 -0
- package/node_modules/pi-mcp-adapter/dist/types.d.ts +2 -0
- package/node_modules/pi-mcp-adapter/dist/types.js.map +1 -1
- package/node_modules/pi-mcp-adapter/index.ts +90 -6
- package/node_modules/pi-mcp-adapter/mcp-auth-flow.ts +19 -0
- package/node_modules/pi-mcp-adapter/mcp-bearer-store.ts +0 -2
- package/node_modules/pi-mcp-adapter/mcp-oauth-provider.ts +89 -0
- package/node_modules/pi-mcp-adapter/mcp-references.ts +9 -1
- package/node_modules/pi-mcp-adapter/package.json +1 -1
- package/node_modules/pi-mcp-adapter/proxy-modes.ts +40 -10
- package/node_modules/pi-mcp-adapter/request-headers-command.ts +1 -1
- package/node_modules/pi-mcp-adapter/types.ts +2 -0
- package/node_modules/pi-web-access/CHANGELOG.md +22 -0
- package/node_modules/pi-web-access/README.md +11 -8
- package/node_modules/pi-web-access/curator-page.ts +12 -3
- package/node_modules/pi-web-access/curator-server.ts +3 -1
- package/node_modules/pi-web-access/extract.ts +31 -1
- package/node_modules/pi-web-access/gemini-search.ts +10 -5
- package/node_modules/pi-web-access/index.ts +39 -39
- package/node_modules/pi-web-access/package.json +1 -1
- package/node_modules/pi-web-access/xcrawl.ts +264 -0
- package/package.json +7 -10
- package/node_modules/@herbertgao/pi-stash/LICENSE +0 -22
- package/node_modules/@herbertgao/pi-stash/README.md +0 -34
- package/node_modules/@herbertgao/pi-stash/package.json +0 -51
- package/node_modules/@herbertgao/pi-stash/src/index.ts +0 -118
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,9 @@ export interface McpServerRegistration {
|
|
|
56
56
|
export const MCP_RUNTIME_REGISTER_EVENT = "pi-mcp-adapter:runtime-register:v1" as const;
|
|
57
57
|
export const MCP_RUNTIME_REGISTER_VERSION = 1 as const;
|
|
58
58
|
|
|
59
|
+
export const MCP_RUNTIME_SNAPSHOT_EVENT = "pi-mcp-adapter:runtime-snapshot:v1" as const;
|
|
60
|
+
export const MCP_RUNTIME_SNAPSHOT_VERSION = 1 as const;
|
|
61
|
+
|
|
59
62
|
export type McpRuntimeRegistrationResult =
|
|
60
63
|
| { ok: true; registration: McpServerRegistration }
|
|
61
64
|
| { ok: false; error: Error };
|
|
@@ -67,8 +70,26 @@ export interface McpRuntimeRegistrationRequest {
|
|
|
67
70
|
result?: McpRuntimeRegistrationResult;
|
|
68
71
|
}
|
|
69
72
|
|
|
73
|
+
export interface McpRuntimeServerSnapshot {
|
|
74
|
+
readonly name: string;
|
|
75
|
+
readonly definition: ServerEntry;
|
|
76
|
+
readonly runtime: true;
|
|
77
|
+
readonly persisted: false;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export type McpRuntimeSnapshotResult =
|
|
81
|
+
| { ok: true; snapshot: McpRuntimeServerSnapshot }
|
|
82
|
+
| { ok: false; error: Error };
|
|
83
|
+
|
|
84
|
+
export interface McpRuntimeSnapshotRequest {
|
|
85
|
+
version: typeof MCP_RUNTIME_SNAPSHOT_VERSION;
|
|
86
|
+
name: string;
|
|
87
|
+
result?: McpRuntimeSnapshotResult;
|
|
88
|
+
}
|
|
89
|
+
|
|
70
90
|
// Fast path for callers that share the adapter's module and ExtensionAPI.
|
|
71
91
|
const runtimeRegistrars = new WeakMap<ExtensionAPI, (name: string, definition: ServerEntry) => McpServerRegistration>();
|
|
92
|
+
const runtimeSnapshotters = new WeakMap<ExtensionAPI, (name: string) => McpRuntimeServerSnapshot>();
|
|
72
93
|
|
|
73
94
|
async function awaitWithTimeout<T>(promise: Promise<T>, timeoutMs: number): Promise<T | typeof INIT_WAIT_TIMED_OUT> {
|
|
74
95
|
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
@@ -213,7 +234,7 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
|
|
|
213
234
|
let directToolsFrozen = false;
|
|
214
235
|
// Session/runtime scoped server registrations from other extensions. They
|
|
215
236
|
// survive session restarts within this install and die with the process.
|
|
216
|
-
const runtimeServers = new Map<string, ServerEntry>();
|
|
237
|
+
const runtimeServers = new Map<string, { definition: ServerEntry; entry: ServerEntry }>();
|
|
217
238
|
|
|
218
239
|
// Mirrors init's per-server lifecycle registration so runtime servers get
|
|
219
240
|
// idle cleanup and keep-alive health recovery like configured servers.
|
|
@@ -428,8 +449,9 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
|
|
|
428
449
|
}
|
|
429
450
|
// Runtime-registered servers are proxy-tool-only: direct tools are frozen
|
|
430
451
|
// at startup and must not be rebuilt for late registrations.
|
|
431
|
-
const
|
|
432
|
-
|
|
452
|
+
const snapshotDefinition = structuredClone(definition);
|
|
453
|
+
const entry: ServerEntry = { ...structuredClone(snapshotDefinition), directTools: false };
|
|
454
|
+
runtimeServers.set(name, { definition: snapshotDefinition, entry });
|
|
433
455
|
const registeredState = state;
|
|
434
456
|
if (registeredState) {
|
|
435
457
|
registeredState.config.mcpServers[name] = entry;
|
|
@@ -453,7 +475,34 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
|
|
|
453
475
|
},
|
|
454
476
|
};
|
|
455
477
|
};
|
|
478
|
+
const getRuntimeServerSnapshot = (name: string): McpRuntimeServerSnapshot => {
|
|
479
|
+
if (typeof name !== "string" || name.trim() === "") {
|
|
480
|
+
throw new Error("MCP runtime server name must be a non-empty string");
|
|
481
|
+
}
|
|
482
|
+
const runtimeServer = runtimeServers.get(name);
|
|
483
|
+
if (!runtimeServer) {
|
|
484
|
+
throw new Error(`MCP runtime server "${name}" is not registered or has been disposed`);
|
|
485
|
+
}
|
|
486
|
+
const activeState = state;
|
|
487
|
+
if (!activeState) {
|
|
488
|
+
throw new Error(`MCP runtime server "${name}" is unavailable because the adapter has no active state`);
|
|
489
|
+
}
|
|
490
|
+
const activeEntry = activeState.config.mcpServers[name];
|
|
491
|
+
if (Object.hasOwn(activeState.config.mcpServers, name) && activeEntry !== runtimeServer.entry) {
|
|
492
|
+
throw new Error(`MCP runtime server "${name}" is shadowed by a configured server`);
|
|
493
|
+
}
|
|
494
|
+
if (activeEntry !== runtimeServer.entry) {
|
|
495
|
+
throw new Error(`MCP runtime server "${name}" is unavailable in the active adapter state`);
|
|
496
|
+
}
|
|
497
|
+
return {
|
|
498
|
+
name,
|
|
499
|
+
definition: structuredClone(runtimeServer.definition),
|
|
500
|
+
runtime: true,
|
|
501
|
+
persisted: false,
|
|
502
|
+
};
|
|
503
|
+
};
|
|
456
504
|
runtimeRegistrars.set(pi, registerRuntimeServer);
|
|
505
|
+
runtimeSnapshotters.set(pi, getRuntimeServerSnapshot);
|
|
457
506
|
pi.events.on(MCP_RUNTIME_REGISTER_EVENT, (rawRequest: unknown) => {
|
|
458
507
|
if (typeof rawRequest !== "object" || rawRequest === null || Array.isArray(rawRequest)) return;
|
|
459
508
|
const request = rawRequest as McpRuntimeRegistrationRequest;
|
|
@@ -468,6 +517,20 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
|
|
|
468
517
|
request.result = { ok: false, error: error instanceof Error ? error : new Error(String(error)) };
|
|
469
518
|
}
|
|
470
519
|
});
|
|
520
|
+
pi.events.on(MCP_RUNTIME_SNAPSHOT_EVENT, (rawRequest: unknown) => {
|
|
521
|
+
if (typeof rawRequest !== "object" || rawRequest === null || Array.isArray(rawRequest)) return;
|
|
522
|
+
const request = rawRequest as McpRuntimeSnapshotRequest;
|
|
523
|
+
if (request.result !== undefined) return;
|
|
524
|
+
if (request.version !== MCP_RUNTIME_SNAPSHOT_VERSION) {
|
|
525
|
+
request.result = { ok: false, error: new Error(`Unsupported MCP runtime snapshot version: ${String(request.version)}`) };
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
try {
|
|
529
|
+
request.result = { ok: true, snapshot: getRuntimeServerSnapshot(request.name) };
|
|
530
|
+
} catch (error) {
|
|
531
|
+
request.result = { ok: false, error: error instanceof Error ? error : new Error(String(error)) };
|
|
532
|
+
}
|
|
533
|
+
});
|
|
471
534
|
|
|
472
535
|
const getPiTools = (): ToolInfo[] => pi.getAllTools();
|
|
473
536
|
|
|
@@ -501,13 +564,13 @@ function installMcpAdapter(pi: ExtensionAPI, options: McpAdapterOptions) {
|
|
|
501
564
|
|
|
502
565
|
state = nextState;
|
|
503
566
|
clearRetainedInitFailure();
|
|
504
|
-
for (const [name,
|
|
567
|
+
for (const [name, { entry }] of runtimeServers) {
|
|
505
568
|
if (Object.hasOwn(nextState.config.mcpServers, name)) {
|
|
506
569
|
console.error(`MCP: runtime-registered server "${name}" now collides with a configured server; keeping the configured server`);
|
|
507
570
|
continue;
|
|
508
571
|
}
|
|
509
|
-
nextState.config.mcpServers[name] =
|
|
510
|
-
attachRuntimeServerLifecycle(nextState, name,
|
|
572
|
+
nextState.config.mcpServers[name] = entry;
|
|
573
|
+
attachRuntimeServerLifecycle(nextState, name, entry);
|
|
511
574
|
}
|
|
512
575
|
nextState.onToolMetadataUpdated = (_serverName, _reason) => {
|
|
513
576
|
if (state !== nextState || !owner.isActive()) return;
|
|
@@ -1204,4 +1267,25 @@ export function registerMcpServer(options: { pi: ExtensionAPI; name: string; def
|
|
|
1204
1267
|
return request.result.registration;
|
|
1205
1268
|
}
|
|
1206
1269
|
|
|
1270
|
+
/**
|
|
1271
|
+
* Return a detached, non-persisted snapshot of one runtime-registered MCP
|
|
1272
|
+
* server. Configured servers and runtime registrations shadowed by config are
|
|
1273
|
+
* never exported through this API.
|
|
1274
|
+
*/
|
|
1275
|
+
export function getRuntimeMcpServerSnapshot(options: { pi: ExtensionAPI; name: string }): McpRuntimeServerSnapshot {
|
|
1276
|
+
const { pi, name } = options;
|
|
1277
|
+
const getSnapshot = runtimeSnapshotters.get(pi);
|
|
1278
|
+
if (getSnapshot) return getSnapshot(name);
|
|
1279
|
+
const request: McpRuntimeSnapshotRequest = {
|
|
1280
|
+
version: MCP_RUNTIME_SNAPSHOT_VERSION,
|
|
1281
|
+
name,
|
|
1282
|
+
};
|
|
1283
|
+
pi.events.emit(MCP_RUNTIME_SNAPSHOT_EVENT, request);
|
|
1284
|
+
if (!request.result) {
|
|
1285
|
+
throw new Error("pi-mcp-adapter is not installed for this Pi instance");
|
|
1286
|
+
}
|
|
1287
|
+
if (!request.result.ok) throw request.result.error;
|
|
1288
|
+
return request.result.snapshot;
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1207
1291
|
export default createMcpAdapter();
|
|
@@ -238,6 +238,25 @@ export function extractOAuthConfig(definition: ServerEntry): McpOAuthConfig {
|
|
|
238
238
|
}
|
|
239
239
|
config.logoUri = logoUri
|
|
240
240
|
}
|
|
241
|
+
if (definition.oauth?.authServerMetadataUrl !== undefined) {
|
|
242
|
+
if (typeof definition.oauth.authServerMetadataUrl !== "string") {
|
|
243
|
+
throw new Error("OAuth authServerMetadataUrl must be a string")
|
|
244
|
+
}
|
|
245
|
+
const authServerMetadataUrl = interpolateEnvVars(definition.oauth.authServerMetadataUrl).trim()
|
|
246
|
+
if (!authServerMetadataUrl) {
|
|
247
|
+
throw new Error("OAuth authServerMetadataUrl must not be empty")
|
|
248
|
+
}
|
|
249
|
+
let parsed: URL
|
|
250
|
+
try {
|
|
251
|
+
parsed = new URL(authServerMetadataUrl)
|
|
252
|
+
} catch {
|
|
253
|
+
throw new Error("OAuth authServerMetadataUrl must be an absolute https:// URL")
|
|
254
|
+
}
|
|
255
|
+
if (parsed.protocol !== "https:") {
|
|
256
|
+
throw new Error("OAuth authServerMetadataUrl must be an absolute https:// URL")
|
|
257
|
+
}
|
|
258
|
+
config.authServerMetadataUrl = authServerMetadataUrl
|
|
259
|
+
}
|
|
241
260
|
if (definition.oauth?.skipIssuerMetadataValidation !== undefined) {
|
|
242
261
|
if (typeof definition.oauth.skipIssuerMetadataValidation !== "boolean") {
|
|
243
262
|
throw new Error("OAuth skipIssuerMetadataValidation must be a boolean")
|
|
@@ -43,8 +43,6 @@ export class BearerCredentialStoreError extends Error {
|
|
|
43
43
|
readonly code = "BEARER_CREDENTIAL_STORE_UNAVAILABLE";
|
|
44
44
|
readonly operation: "read" | "write" | "remove";
|
|
45
45
|
|
|
46
|
-
// No parameter properties: cli.js loads this module under plain Node
|
|
47
|
-
// type stripping, which rejects non-erasable TypeScript syntax.
|
|
48
46
|
constructor(message: string, operation: "read" | "write" | "remove", cause: unknown) {
|
|
49
47
|
super(message, { cause });
|
|
50
48
|
this.name = "BearerCredentialStoreError";
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
type StoredTokens,
|
|
30
30
|
type StoredClientInfo,
|
|
31
31
|
} from "./mcp-auth.ts"
|
|
32
|
+
import { OAuthMetadataSchema, OpenIdProviderDiscoveryMetadataSchema } from "@modelcontextprotocol/core"
|
|
32
33
|
import { resolveCommandSecret } from "./utils.ts"
|
|
33
34
|
import { getAppClientUri, getAppName } from "./agent-dir.ts"
|
|
34
35
|
|
|
@@ -130,6 +131,7 @@ export interface McpOAuthConfig {
|
|
|
130
131
|
clientName?: string
|
|
131
132
|
clientUri?: string
|
|
132
133
|
logoUri?: string
|
|
134
|
+
authServerMetadataUrl?: string
|
|
133
135
|
skipIssuerMetadataValidation?: boolean
|
|
134
136
|
}
|
|
135
137
|
|
|
@@ -161,6 +163,85 @@ export interface McpOAuthCallbacks {
|
|
|
161
163
|
onRedirect: (url: URL) => void | Promise<void>
|
|
162
164
|
}
|
|
163
165
|
|
|
166
|
+
function inferIssuerFromMetadataUrl(metadataUrl: string): string | undefined {
|
|
167
|
+
const url = new URL(metadataUrl)
|
|
168
|
+
const pathname = url.pathname.replace(/\/+$/, "") || "/"
|
|
169
|
+
const oauthPrefix = "/.well-known/oauth-authorization-server"
|
|
170
|
+
if (pathname === oauthPrefix || pathname.startsWith(`${oauthPrefix}/`)) {
|
|
171
|
+
const issuerPath = pathname.slice(oauthPrefix.length) || "/"
|
|
172
|
+
return new URL(issuerPath, url.origin).toString()
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const oidcPath = "/.well-known/openid-configuration"
|
|
176
|
+
if (pathname === oidcPath || pathname.startsWith(`${oidcPath}/`)) {
|
|
177
|
+
const issuerPath = pathname.slice(oidcPath.length) || "/"
|
|
178
|
+
return new URL(issuerPath, url.origin).toString()
|
|
179
|
+
}
|
|
180
|
+
if (pathname.endsWith(oidcPath)) {
|
|
181
|
+
const issuerPath = pathname.slice(0, -oidcPath.length) || "/"
|
|
182
|
+
return new URL(issuerPath, url.origin).toString()
|
|
183
|
+
}
|
|
184
|
+
return undefined
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function validateConfiguredIssuer(metadataUrl: string, issuer: string, skipIssuerValidation: boolean): void {
|
|
188
|
+
let parsedIssuer: URL
|
|
189
|
+
try {
|
|
190
|
+
parsedIssuer = new URL(issuer)
|
|
191
|
+
} catch (error) {
|
|
192
|
+
throw new Error("OAuth authorization-server metadata issuer must be an absolute URL", { cause: error })
|
|
193
|
+
}
|
|
194
|
+
if (parsedIssuer.protocol !== "http:" && parsedIssuer.protocol !== "https:") {
|
|
195
|
+
throw new Error("OAuth authorization-server metadata issuer must use http:// or https://")
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
const expectedIssuer = inferIssuerFromMetadataUrl(metadataUrl)
|
|
199
|
+
if (skipIssuerValidation) return
|
|
200
|
+
if (expectedIssuer !== undefined && !issuersMatch(expectedIssuer, issuer)) {
|
|
201
|
+
throw new Error(
|
|
202
|
+
`OAuth authorization-server metadata issuer does not match authServerMetadataUrl: expected ${expectedIssuer}`,
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
if (expectedIssuer === undefined && !issuersMatch(new URL(metadataUrl).origin, issuer)) {
|
|
206
|
+
throw new Error(
|
|
207
|
+
`OAuth authorization-server metadata issuer does not match authServerMetadataUrl origin: expected ${new URL(metadataUrl).origin}`,
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
async function loadConfiguredDiscoveryState(
|
|
213
|
+
metadataUrl: string,
|
|
214
|
+
serverUrl: string,
|
|
215
|
+
skipIssuerValidation: boolean,
|
|
216
|
+
signal?: AbortSignal,
|
|
217
|
+
): Promise<OAuthDiscoveryState> {
|
|
218
|
+
const response = await fetch(metadataUrl, {
|
|
219
|
+
headers: { accept: "application/json" },
|
|
220
|
+
...(signal !== undefined ? { signal } : {}),
|
|
221
|
+
})
|
|
222
|
+
if (!response.ok) {
|
|
223
|
+
await response.text().catch(() => {})
|
|
224
|
+
throw new Error(`OAuth authServerMetadataUrl request failed with HTTP ${response.status}`)
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
const payload = await response.json()
|
|
228
|
+
const oauthResult = OAuthMetadataSchema.safeParse(payload)
|
|
229
|
+
const metadata = oauthResult.success
|
|
230
|
+
? oauthResult.data
|
|
231
|
+
: OpenIdProviderDiscoveryMetadataSchema.parse(payload)
|
|
232
|
+
validateConfiguredIssuer(metadataUrl, metadata.issuer, skipIssuerValidation)
|
|
233
|
+
|
|
234
|
+
const resource = new URL(serverUrl)
|
|
235
|
+
resource.hash = ""
|
|
236
|
+
return {
|
|
237
|
+
authorizationServerUrl: metadata.issuer,
|
|
238
|
+
authorizationServerMetadata: metadata,
|
|
239
|
+
// The configured AS document is authoritative, so avoid a second PRM
|
|
240
|
+
// lookup while still binding the token request to the configured resource.
|
|
241
|
+
resourceMetadata: { resource: resource.toString() },
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
164
245
|
/**
|
|
165
246
|
* OAuth provider implementation for MCP servers.
|
|
166
247
|
* Implements the OAuthClientProvider interface from the MCP SDK.
|
|
@@ -525,6 +606,14 @@ export class McpOAuthProvider implements OAuthClientProvider {
|
|
|
525
606
|
|
|
526
607
|
async discoveryState(): Promise<OAuthDiscoveryState | undefined> {
|
|
527
608
|
this.throwIfInactive()
|
|
609
|
+
if (!this.flowDiscoveryState && this.config.authServerMetadataUrl !== undefined) {
|
|
610
|
+
this.flowDiscoveryState = await loadConfiguredDiscoveryState(
|
|
611
|
+
this.config.authServerMetadataUrl,
|
|
612
|
+
this.serverUrl,
|
|
613
|
+
this.config.skipIssuerMetadataValidation === true,
|
|
614
|
+
this.runtimeSignal,
|
|
615
|
+
)
|
|
616
|
+
}
|
|
528
617
|
return this.flowDiscoveryState ? structuredClone(this.flowDiscoveryState) : undefined
|
|
529
618
|
}
|
|
530
619
|
|
|
@@ -32,9 +32,17 @@ type DirectNameEntry = { name: string; originalName: string };
|
|
|
32
32
|
type CachedServer = { serverName: string; definition: ServerEntry; entry: ServerCacheEntry; prefix: ToolPrefix };
|
|
33
33
|
|
|
34
34
|
const BUILTIN_NAMES = new Set(["read", "bash", "edit", "write", "grep", "find", "ls", "mcp"]);
|
|
35
|
+
const ENCODED_NAMESPACE_MARKER = "_mcpns_";
|
|
36
|
+
|
|
37
|
+
function namespaceServerPart(serverName: string): string {
|
|
38
|
+
const normalized = serverName.replace(/-/g, "_");
|
|
39
|
+
if (normalized === "" || (/^[A-Za-z0-9_]+$/.test(normalized) && !normalized.startsWith(ENCODED_NAMESPACE_MARKER))) return normalized;
|
|
40
|
+
const codePoints = Array.from(normalized, char => char.codePointAt(0)!.toString(16)).join("_");
|
|
41
|
+
return `${ENCODED_NAMESPACE_MARKER}${codePoints}`;
|
|
42
|
+
}
|
|
35
43
|
|
|
36
44
|
export function namespaceProxyName(serverName: string): string {
|
|
37
|
-
return `mcp__${serverName
|
|
45
|
+
return `mcp__${namespaceServerPart(serverName)}`;
|
|
38
46
|
}
|
|
39
47
|
|
|
40
48
|
export function parseMcpReference(raw: string): ParsedMcpReference {
|
|
@@ -93,6 +93,24 @@ function getSingleToolMatch(metadata: ToolMetadata[] | undefined, toolName: stri
|
|
|
93
93
|
return matches.length > 1 ? "ambiguous" : matches[0];
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
type ServerScopedToolMatch = { tool: ToolMetadata; precedence: number } | "ambiguous";
|
|
97
|
+
|
|
98
|
+
function getServerScopedToolMatch(metadata: ToolMetadata[] | undefined, toolName: string): ServerScopedToolMatch | undefined {
|
|
99
|
+
if (!metadata) return undefined;
|
|
100
|
+
const normalizedName = toolName.replace(/-/g, "_");
|
|
101
|
+
const matchesByPrecedence = [
|
|
102
|
+
metadata.filter((tool) => tool.name === toolName),
|
|
103
|
+
metadata.filter((tool) => tool.originalName === toolName),
|
|
104
|
+
metadata.filter((tool) => tool.name.replace(/-/g, "_") === normalizedName),
|
|
105
|
+
metadata.filter((tool) => tool.originalName.replace(/-/g, "_") === normalizedName),
|
|
106
|
+
];
|
|
107
|
+
for (const [precedence, matches] of matchesByPrecedence.entries()) {
|
|
108
|
+
if (matches.length > 1) return "ambiguous";
|
|
109
|
+
if (matches.length === 1) return { tool: matches[0]!, precedence };
|
|
110
|
+
}
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
|
|
96
114
|
function ambiguousToolResult(mode: "call" | "describe", toolName: string): ProxyToolResult {
|
|
97
115
|
const message = `Tool "${toolName}" matches multiple servers. Specify a server.`;
|
|
98
116
|
return {
|
|
@@ -894,9 +912,9 @@ export async function executeCall(
|
|
|
894
912
|
};
|
|
895
913
|
}
|
|
896
914
|
if (serverName) {
|
|
897
|
-
const match =
|
|
915
|
+
const match = getServerScopedToolMatch(state.toolMetadata.get(serverName), toolName);
|
|
898
916
|
if (match === "ambiguous") return ambiguousToolResult("call", toolName);
|
|
899
|
-
toolMeta = match;
|
|
917
|
+
toolMeta = match?.tool;
|
|
900
918
|
if (isServerDisabled(state.config.mcpServers[serverName])) {
|
|
901
919
|
return disabledCallResult(serverName, toolMeta);
|
|
902
920
|
}
|
|
@@ -938,9 +956,15 @@ export async function executeCall(
|
|
|
938
956
|
if (serverName && !toolMeta) {
|
|
939
957
|
const connected = await lazyConnect(state, serverName, ownedSignal);
|
|
940
958
|
if (connected) {
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
959
|
+
if (serverOverride) {
|
|
960
|
+
const match = getServerScopedToolMatch(state.toolMetadata.get(serverName), toolName);
|
|
961
|
+
if (match === "ambiguous") return ambiguousToolResult("call", toolName);
|
|
962
|
+
toolMeta = match?.tool;
|
|
963
|
+
} else {
|
|
964
|
+
const match = getSingleToolMatch(state.toolMetadata.get(serverName), toolName);
|
|
965
|
+
if (match === "ambiguous") return ambiguousToolResult("call", toolName);
|
|
966
|
+
toolMeta = match;
|
|
967
|
+
}
|
|
944
968
|
} else {
|
|
945
969
|
const needsAuthConnection = state.manager.getConnection(serverName);
|
|
946
970
|
if (needsAuthConnection?.status === "needs-auth") {
|
|
@@ -958,9 +982,9 @@ export async function executeCall(
|
|
|
958
982
|
clearFailure(state, serverName);
|
|
959
983
|
const connectedAfterAuth = await lazyConnect(state, serverName, ownedSignal);
|
|
960
984
|
if (connectedAfterAuth) {
|
|
961
|
-
const match =
|
|
985
|
+
const match = getServerScopedToolMatch(state.toolMetadata.get(serverName), toolName);
|
|
962
986
|
if (match === "ambiguous") return ambiguousToolResult("call", toolName);
|
|
963
|
-
toolMeta = match;
|
|
987
|
+
toolMeta = match?.tool;
|
|
964
988
|
if (!toolMeta) {
|
|
965
989
|
const suggestions = rankSuggestions(state, toolName, 5);
|
|
966
990
|
const suggestionText = suggestions.length > 0 ? ` Did you mean: ${suggestions.join(", ")}` : "";
|
|
@@ -1157,9 +1181,15 @@ export async function executeCall(
|
|
|
1157
1181
|
if (!restored) notifyToolMetadataUpdated(state, serverName, "proxy-call-reconnect");
|
|
1158
1182
|
markKeepAliveAfterConnect(state, serverName);
|
|
1159
1183
|
updateStatusBar(state);
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1184
|
+
if (serverOverride) {
|
|
1185
|
+
const match = getServerScopedToolMatch(state.toolMetadata.get(serverName), toolName);
|
|
1186
|
+
if (match === "ambiguous") return ambiguousToolResult("call", toolName);
|
|
1187
|
+
toolMeta = match?.tool;
|
|
1188
|
+
} else {
|
|
1189
|
+
const match = getSingleToolMatch(state.toolMetadata.get(serverName), toolName);
|
|
1190
|
+
if (match === "ambiguous") return ambiguousToolResult("call", toolName);
|
|
1191
|
+
toolMeta = match;
|
|
1192
|
+
}
|
|
1163
1193
|
if (!toolMeta) {
|
|
1164
1194
|
const available = getToolNames(state, serverName);
|
|
1165
1195
|
const hint = available.length > 0
|
|
@@ -92,7 +92,7 @@ function killRequestHeadersCommand(child: ChildProcess, trackedPosixDescendantPi
|
|
|
92
92
|
encoding: "utf8",
|
|
93
93
|
windowsHide: true,
|
|
94
94
|
});
|
|
95
|
-
if (result.status === 0 || isTaskkillNoSuchProcess(result)) return;
|
|
95
|
+
if (result.status === 0 || result.status === 128 || isTaskkillNoSuchProcess(result)) return;
|
|
96
96
|
throw new Error(`HTTP request headers command cleanup failed: taskkill exited with code ${result.status ?? "unknown"}`);
|
|
97
97
|
}
|
|
98
98
|
|
|
@@ -386,6 +386,8 @@ export interface OAuthConfig {
|
|
|
386
386
|
clientUri?: string;
|
|
387
387
|
/** Client logo URL for dynamic registration; shown on consent screens */
|
|
388
388
|
logoUri?: string;
|
|
389
|
+
/** HTTPS URL for an authorization-server metadata document used instead of MCP discovery */
|
|
390
|
+
authServerMetadataUrl?: string;
|
|
389
391
|
/** Security-weakening escape hatch for known-misconfigured authorization servers. */
|
|
390
392
|
skipIssuerMetadataValidation?: boolean;
|
|
391
393
|
}
|
|
@@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.26.0] - 2026-08-28
|
|
8
|
+
|
|
9
|
+
### Highlights
|
|
10
|
+
- `web_search` now includes XCrawl as an explicit search provider.
|
|
11
|
+
- XCrawl results now produce safer clickable links, including relative redirect links from the API.
|
|
12
|
+
- Local models can send multiple web-search queries as a JSON string and still get separate searches.
|
|
13
|
+
- HTML fallback extraction is quieter and more accurate when Defuddle cannot process a page.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Added XCrawl as an explicit-only search provider (`provider: "xcrawl"`) with `xcrawlApiKey` / `XCRAWL_API_KEY` credentials, client-side domain filtering, fallback titles, and retriable provider-timeout errors. Thanks to [@zeroicey](https://github.com/zeroicey) for #312 and #313.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Refined the XCrawl provider docs, parser shape, availability metadata, and focused tests.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Expanded JSON-array strings supplied in the singular `web_search` `query` field into independent searches, with a clear no-query error for empty arrays. Thanks to [@alex-rs](https://github.com/alex-rs) for #317 and [@zeroicey](https://github.com/zeroicey) for PR #319.
|
|
26
|
+
- Kept Defuddle selector-processing failures out of the Pi console and stopped treating the raw page body as a successful extraction. Thanks to [@riabiy](https://github.com/riabiy) for #315.
|
|
27
|
+
- Resolved API-origin-relative XCrawl result links to absolute URLs and rejected blank result links instead of emitting fabricated source URLs. Thanks to [@zeroicey](https://github.com/zeroicey) for #318.
|
|
28
|
+
|
|
7
29
|
## [0.25.0] - 2026-08-25
|
|
8
30
|
|
|
9
31
|
### Highlights
|