@fitchmultz/pi-mcp-adapter 5.0.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/CHANGELOG.md +750 -0
- package/LICENSE +21 -0
- package/OAUTH.md +462 -0
- package/README.md +820 -0
- package/abort.ts +34 -0
- package/agent-dir.ts +24 -0
- package/app-bridge.bundle.js +67 -0
- package/banner.png +0 -0
- package/checkpoint.ts +55 -0
- package/cli.js +222 -0
- package/commands.ts +619 -0
- package/config.ts +1204 -0
- package/consent-manager.ts +25 -0
- package/direct-tools.ts +408 -0
- package/dist/abort.d.ts +2 -0
- package/dist/abort.js +35 -0
- package/dist/agent-dir.d.ts +3 -0
- package/dist/agent-dir.js +21 -0
- package/dist/app-bridge.bundle.js +67 -0
- package/dist/checkpoint.d.ts +18 -0
- package/dist/checkpoint.js +53 -0
- package/dist/commands.d.ts +20 -0
- package/dist/commands.js +521 -0
- package/dist/config.d.ts +109 -0
- package/dist/config.js +1013 -0
- package/dist/consent-manager.d.ts +8 -0
- package/dist/consent-manager.js +21 -0
- package/dist/direct-tools.d.ts +10 -0
- package/dist/direct-tools.js +350 -0
- package/dist/docs/client-metadata.json +14 -0
- package/dist/elicitation-handler.d.ts +17 -0
- package/dist/elicitation-handler.js +308 -0
- package/dist/error-signal.d.ts +15 -0
- package/dist/error-signal.js +21 -0
- package/dist/glimpse-ui.d.ts +9 -0
- package/dist/glimpse-ui.js +75 -0
- package/dist/host-html-template.d.ts +15 -0
- package/dist/host-html-template.js +429 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +840 -0
- package/dist/init.d.ts +25 -0
- package/dist/init.js +562 -0
- package/dist/legacy-migration.d.ts +18 -0
- package/dist/legacy-migration.js +45 -0
- package/dist/lifecycle.d.ts +40 -0
- package/dist/lifecycle.js +167 -0
- package/dist/logger.d.ts +38 -0
- package/dist/logger.js +102 -0
- package/dist/mcp-auth-flow.d.ts +113 -0
- package/dist/mcp-auth-flow.js +834 -0
- package/dist/mcp-auth.d.ts +127 -0
- package/dist/mcp-auth.js +658 -0
- package/dist/mcp-callback-server.d.ts +56 -0
- package/dist/mcp-callback-server.js +371 -0
- package/dist/mcp-code.d.ts +51 -0
- package/dist/mcp-code.js +366 -0
- package/dist/mcp-keyring-helper.cjs +89 -0
- package/dist/mcp-oauth-provider.d.ts +154 -0
- package/dist/mcp-oauth-provider.js +672 -0
- package/dist/mcp-output-guard.d.ts +59 -0
- package/dist/mcp-output-guard.js +332 -0
- package/dist/mcp-panel.d.ts +66 -0
- package/dist/mcp-panel.js +889 -0
- package/dist/mcp-script-worker.mjs +128 -0
- package/dist/mcp-setup-panel.d.ts +84 -0
- package/dist/mcp-setup-panel.js +561 -0
- package/dist/mcp-status.d.ts +11 -0
- package/dist/mcp-status.js +96 -0
- package/dist/mcp-trace.d.ts +95 -0
- package/dist/mcp-trace.js +233 -0
- package/dist/metadata-cache.d.ts +18 -0
- package/dist/metadata-cache.js +277 -0
- package/dist/npx-resolver.d.ts +6 -0
- package/dist/npx-resolver.js +448 -0
- package/dist/onboarding-state.d.ts +11 -0
- package/dist/onboarding-state.js +47 -0
- package/dist/panel-keys.d.ts +16 -0
- package/dist/panel-keys.js +15 -0
- package/dist/prompts.d.ts +56 -0
- package/dist/prompts.js +284 -0
- package/dist/proxy-modes.d.ts +38 -0
- package/dist/proxy-modes.js +1235 -0
- package/dist/resource-tools.d.ts +1 -0
- package/dist/resource-tools.js +14 -0
- package/dist/runtime-owner.d.ts +18 -0
- package/dist/runtime-owner.js +117 -0
- package/dist/sampling-handler.d.ts +15 -0
- package/dist/sampling-handler.js +211 -0
- package/dist/search-ranking.d.ts +20 -0
- package/dist/search-ranking.js +180 -0
- package/dist/server-manager.d.ts +114 -0
- package/dist/server-manager.js +1175 -0
- package/dist/session-recovery.d.ts +31 -0
- package/dist/session-recovery.js +310 -0
- package/dist/state.d.ts +63 -0
- package/dist/state.js +1 -0
- package/dist/tool-approval.d.ts +10 -0
- package/dist/tool-approval.js +42 -0
- package/dist/tool-metadata.d.ts +9 -0
- package/dist/tool-metadata.js +193 -0
- package/dist/tool-registrar.d.ts +10 -0
- package/dist/tool-registrar.js +64 -0
- package/dist/tool-result-renderer.d.ts +45 -0
- package/dist/tool-result-renderer.js +224 -0
- package/dist/ts-shape.d.ts +2 -0
- package/dist/ts-shape.js +147 -0
- package/dist/types.d.ts +516 -0
- package/dist/types.js +168 -0
- package/dist/ui-resource-handler.d.ts +17 -0
- package/dist/ui-resource-handler.js +209 -0
- package/dist/ui-server.d.ts +51 -0
- package/dist/ui-server.js +669 -0
- package/dist/ui-session.d.ts +39 -0
- package/dist/ui-session.js +463 -0
- package/dist/ui-stream-types.d.ts +104 -0
- package/dist/ui-stream-types.js +58 -0
- package/dist/ui-tool-visibility.d.ts +4 -0
- package/dist/ui-tool-visibility.js +26 -0
- package/dist/unix-socket-transport.d.ts +15 -0
- package/dist/unix-socket-transport.js +84 -0
- package/dist/utils.d.ts +30 -0
- package/dist/utils.js +276 -0
- package/docs/client-metadata.json +14 -0
- package/elicitation-handler.ts +349 -0
- package/error-signal.ts +21 -0
- package/glimpse-ui.ts +80 -0
- package/host-html-template.ts +456 -0
- package/index.ts +900 -0
- package/init.ts +627 -0
- package/legacy-migration.ts +47 -0
- package/lifecycle.ts +165 -0
- package/logger.ts +127 -0
- package/mcp-auth-flow.ts +975 -0
- package/mcp-auth.ts +793 -0
- package/mcp-callback-server.ts +450 -0
- package/mcp-code.ts +386 -0
- package/mcp-keyring-helper.cjs +89 -0
- package/mcp-oauth-provider.ts +774 -0
- package/mcp-output-guard.ts +412 -0
- package/mcp-panel.ts +978 -0
- package/mcp-script-worker.mjs +128 -0
- package/mcp-setup-panel.ts +666 -0
- package/mcp-status.ts +109 -0
- package/mcp-trace.ts +295 -0
- package/metadata-cache.ts +333 -0
- package/npx-resolver.ts +488 -0
- package/onboarding-state.ts +58 -0
- package/package.json +182 -0
- package/panel-keys.ts +37 -0
- package/prompts.ts +337 -0
- package/proxy-modes.ts +1361 -0
- package/resource-tools.ts +17 -0
- package/runtime-owner.ts +123 -0
- package/sampling-handler.ts +273 -0
- package/scripts/build.mjs +131 -0
- package/scripts/prepare.mjs +102 -0
- package/search-ranking.ts +196 -0
- package/server-manager.ts +1320 -0
- package/session-recovery.ts +316 -0
- package/skills/mcp-scripting/SKILL.md +38 -0
- package/state.ts +64 -0
- package/tool-approval.ts +78 -0
- package/tool-metadata.ts +235 -0
- package/tool-registrar.ts +69 -0
- package/tool-result-renderer.ts +286 -0
- package/ts-shape.ts +145 -0
- package/tsconfig.build.json +13 -0
- package/tsconfig.json +16 -0
- package/types.ts +810 -0
- package/ui-resource-handler.ts +249 -0
- package/ui-server.ts +808 -0
- package/ui-session.ts +568 -0
- package/ui-stream-types.ts +89 -0
- package/ui-tool-visibility.ts +25 -0
- package/unix-socket-transport.ts +85 -0
- package/utils.ts +309 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { McpCheckpointEvent } from "./checkpoint.ts";
|
|
2
|
+
import { Client, type RequestOptions, type GetPromptResult, type ReadResourceResult, type UrlElicitationRequiredError } from "@modelcontextprotocol/client";
|
|
3
|
+
import { type McpTool, type McpResource, type McpPrompt, type ServerDefinition, type ServerStreamResultPatchNotification, type Transport, type McpTraceSettings } from "./types.ts";
|
|
4
|
+
import { type McpOAuthRuntime } from "./mcp-auth-flow.ts";
|
|
5
|
+
import { type AuthStorageOptions } from "./mcp-auth.ts";
|
|
6
|
+
import { type ServerSamplingConfig } from "./sampling-handler.ts";
|
|
7
|
+
import { type ServerElicitationConfig } from "./elicitation-handler.ts";
|
|
8
|
+
export interface ServerConnection {
|
|
9
|
+
client: Client;
|
|
10
|
+
transport: Transport;
|
|
11
|
+
definition: ServerDefinition;
|
|
12
|
+
tools: McpTool[];
|
|
13
|
+
resources: McpResource[];
|
|
14
|
+
prompts: McpPrompt[];
|
|
15
|
+
/** True when prompts were advertised but prompts/list failed. */
|
|
16
|
+
promptDiscoveryFailed?: boolean;
|
|
17
|
+
instructions?: string;
|
|
18
|
+
lastUsedAt: number;
|
|
19
|
+
inFlight: number;
|
|
20
|
+
status: "connected" | "closed" | "needs-auth";
|
|
21
|
+
/** Whether this connection was constructed with the native OAuth provider. */
|
|
22
|
+
oauthProvider?: boolean;
|
|
23
|
+
}
|
|
24
|
+
type UiStreamListener = (serverName: string, notification: ServerStreamResultPatchNotification["params"]) => void;
|
|
25
|
+
type MetadataListChangedListener = (serverName: string, reason: string) => void;
|
|
26
|
+
export declare class McpServerManager {
|
|
27
|
+
private readonly defaultCwd?;
|
|
28
|
+
private ownedClients;
|
|
29
|
+
private connections;
|
|
30
|
+
private connectPromises;
|
|
31
|
+
private reconnectPromises;
|
|
32
|
+
private retiredConnections;
|
|
33
|
+
private disposePromises;
|
|
34
|
+
private uiStreamListeners;
|
|
35
|
+
private samplingConfig;
|
|
36
|
+
private metadataListChangedListener;
|
|
37
|
+
private elicitationConfig;
|
|
38
|
+
private authStorageOptions;
|
|
39
|
+
private oauthRuntime;
|
|
40
|
+
private acceptedUrlElicitations;
|
|
41
|
+
private defaultRequestTimeoutMs;
|
|
42
|
+
private runtimeSignal;
|
|
43
|
+
private closePromises;
|
|
44
|
+
private closeGenerations;
|
|
45
|
+
private connectAttempts;
|
|
46
|
+
private traceSettings;
|
|
47
|
+
private traceWriter;
|
|
48
|
+
private stopped;
|
|
49
|
+
private checkpoint;
|
|
50
|
+
private readonly beforeActivity;
|
|
51
|
+
holdCheckpoint(event: McpCheckpointEvent): () => void;
|
|
52
|
+
getCheckpointBlocker(): string | undefined;
|
|
53
|
+
flushForCheckpoint(): Promise<void>;
|
|
54
|
+
private releaseClientWhenSettled;
|
|
55
|
+
/** Fence before SDK callbacks AND before trace observers; retain native transport identity.
|
|
56
|
+
* Preserve existing property setters (including tracing) rather than replacing their behavior. */
|
|
57
|
+
private fenceTransport;
|
|
58
|
+
/** Default cwd for stdio servers without an explicit config `cwd`. */
|
|
59
|
+
constructor(defaultCwd?: string | undefined);
|
|
60
|
+
setSamplingConfig(config: ServerSamplingConfig | undefined): void;
|
|
61
|
+
setMetadataListChangedListener(listener: MetadataListChangedListener | undefined): void;
|
|
62
|
+
setElicitationConfig(config: ServerElicitationConfig | undefined): void;
|
|
63
|
+
setRuntimeSignal(signal: AbortSignal | undefined): void;
|
|
64
|
+
setDefaultRequestTimeoutMs(timeoutMs: number | undefined): void;
|
|
65
|
+
setTraceConfig(settings: McpTraceSettings | undefined): void;
|
|
66
|
+
setAuthStorageOptions(options: AuthStorageOptions): void;
|
|
67
|
+
setOAuthRuntime(runtime: McpOAuthRuntime): void;
|
|
68
|
+
getRequestOptions(name: string, signal?: AbortSignal): RequestOptions | undefined;
|
|
69
|
+
private getResolvedRequestTimeoutMs;
|
|
70
|
+
private buildRequestOptions;
|
|
71
|
+
connect(name: string, definition: ServerDefinition, signal?: AbortSignal): Promise<ServerConnection>;
|
|
72
|
+
/**
|
|
73
|
+
* Reconnect a server whose connection was proven stale (e.g. by a 404
|
|
74
|
+
* "session no longer exists" response). Single-flight per server name —
|
|
75
|
+
* concurrent callers that raced to the same failure share one reconnect —
|
|
76
|
+
* and identity-guarded: `staleConnection` is only retired if it is
|
|
77
|
+
* still the manager's current connection for `name`. If a concurrent
|
|
78
|
+
* reconnect (or an unrelated connect()) already replaced it with a fresh
|
|
79
|
+
* connection, that fresh connection is returned untouched.
|
|
80
|
+
*/
|
|
81
|
+
reconnect(name: string, definition: ServerDefinition, staleConnection: ServerConnection, signal?: AbortSignal): Promise<ServerConnection>;
|
|
82
|
+
private doReconnect;
|
|
83
|
+
/** Retire only the expected current client; accepted native work drains before close. */
|
|
84
|
+
retire(name: string, connection: ServerConnection): void;
|
|
85
|
+
private createConnection;
|
|
86
|
+
private connectClientWithAbort;
|
|
87
|
+
private buildClientCapabilities;
|
|
88
|
+
private createClient;
|
|
89
|
+
private handleToolsListChanged;
|
|
90
|
+
private handlePromptsListChanged;
|
|
91
|
+
private handleResourcesListChanged;
|
|
92
|
+
handleUrlElicitationRequired(serverName: string, error: UrlElicitationRequiredError): Promise<"accept" | "decline" | "cancel">;
|
|
93
|
+
private rememberUrlElicitation;
|
|
94
|
+
private createHttpTransport;
|
|
95
|
+
private fetchAllTools;
|
|
96
|
+
private fetchAllPrompts;
|
|
97
|
+
private fetchAllResources;
|
|
98
|
+
private attachAdapterNotificationHandlers;
|
|
99
|
+
registerUiStreamListener(streamToken: string, listener: UiStreamListener): void;
|
|
100
|
+
removeUiStreamListener(streamToken: string): void;
|
|
101
|
+
getPrompt(name: string, promptName: string, args?: Record<string, string>, signal?: AbortSignal): Promise<GetPromptResult>;
|
|
102
|
+
readResource(name: string, uri: string, signal?: AbortSignal): Promise<ReadResourceResult>;
|
|
103
|
+
close(name: string): Promise<void>;
|
|
104
|
+
private disposeConnection;
|
|
105
|
+
closeAll(): Promise<void>;
|
|
106
|
+
private containsCleanupFailure;
|
|
107
|
+
getConnection(name: string): ServerConnection | undefined;
|
|
108
|
+
getAllConnections(): Map<string, ServerConnection>;
|
|
109
|
+
touch(name: string): void;
|
|
110
|
+
incrementInFlight(name: string): void;
|
|
111
|
+
decrementInFlight(name: string): void;
|
|
112
|
+
isIdle(name: string, timeoutMs: number): boolean;
|
|
113
|
+
}
|
|
114
|
+
export {};
|