@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.
Files changed (176) hide show
  1. package/CHANGELOG.md +750 -0
  2. package/LICENSE +21 -0
  3. package/OAUTH.md +462 -0
  4. package/README.md +820 -0
  5. package/abort.ts +34 -0
  6. package/agent-dir.ts +24 -0
  7. package/app-bridge.bundle.js +67 -0
  8. package/banner.png +0 -0
  9. package/checkpoint.ts +55 -0
  10. package/cli.js +222 -0
  11. package/commands.ts +619 -0
  12. package/config.ts +1204 -0
  13. package/consent-manager.ts +25 -0
  14. package/direct-tools.ts +408 -0
  15. package/dist/abort.d.ts +2 -0
  16. package/dist/abort.js +35 -0
  17. package/dist/agent-dir.d.ts +3 -0
  18. package/dist/agent-dir.js +21 -0
  19. package/dist/app-bridge.bundle.js +67 -0
  20. package/dist/checkpoint.d.ts +18 -0
  21. package/dist/checkpoint.js +53 -0
  22. package/dist/commands.d.ts +20 -0
  23. package/dist/commands.js +521 -0
  24. package/dist/config.d.ts +109 -0
  25. package/dist/config.js +1013 -0
  26. package/dist/consent-manager.d.ts +8 -0
  27. package/dist/consent-manager.js +21 -0
  28. package/dist/direct-tools.d.ts +10 -0
  29. package/dist/direct-tools.js +350 -0
  30. package/dist/docs/client-metadata.json +14 -0
  31. package/dist/elicitation-handler.d.ts +17 -0
  32. package/dist/elicitation-handler.js +308 -0
  33. package/dist/error-signal.d.ts +15 -0
  34. package/dist/error-signal.js +21 -0
  35. package/dist/glimpse-ui.d.ts +9 -0
  36. package/dist/glimpse-ui.js +75 -0
  37. package/dist/host-html-template.d.ts +15 -0
  38. package/dist/host-html-template.js +429 -0
  39. package/dist/index.d.ts +7 -0
  40. package/dist/index.js +840 -0
  41. package/dist/init.d.ts +25 -0
  42. package/dist/init.js +562 -0
  43. package/dist/legacy-migration.d.ts +18 -0
  44. package/dist/legacy-migration.js +45 -0
  45. package/dist/lifecycle.d.ts +40 -0
  46. package/dist/lifecycle.js +167 -0
  47. package/dist/logger.d.ts +38 -0
  48. package/dist/logger.js +102 -0
  49. package/dist/mcp-auth-flow.d.ts +113 -0
  50. package/dist/mcp-auth-flow.js +834 -0
  51. package/dist/mcp-auth.d.ts +127 -0
  52. package/dist/mcp-auth.js +658 -0
  53. package/dist/mcp-callback-server.d.ts +56 -0
  54. package/dist/mcp-callback-server.js +371 -0
  55. package/dist/mcp-code.d.ts +51 -0
  56. package/dist/mcp-code.js +366 -0
  57. package/dist/mcp-keyring-helper.cjs +89 -0
  58. package/dist/mcp-oauth-provider.d.ts +154 -0
  59. package/dist/mcp-oauth-provider.js +672 -0
  60. package/dist/mcp-output-guard.d.ts +59 -0
  61. package/dist/mcp-output-guard.js +332 -0
  62. package/dist/mcp-panel.d.ts +66 -0
  63. package/dist/mcp-panel.js +889 -0
  64. package/dist/mcp-script-worker.mjs +128 -0
  65. package/dist/mcp-setup-panel.d.ts +84 -0
  66. package/dist/mcp-setup-panel.js +561 -0
  67. package/dist/mcp-status.d.ts +11 -0
  68. package/dist/mcp-status.js +96 -0
  69. package/dist/mcp-trace.d.ts +95 -0
  70. package/dist/mcp-trace.js +233 -0
  71. package/dist/metadata-cache.d.ts +18 -0
  72. package/dist/metadata-cache.js +277 -0
  73. package/dist/npx-resolver.d.ts +6 -0
  74. package/dist/npx-resolver.js +448 -0
  75. package/dist/onboarding-state.d.ts +11 -0
  76. package/dist/onboarding-state.js +47 -0
  77. package/dist/panel-keys.d.ts +16 -0
  78. package/dist/panel-keys.js +15 -0
  79. package/dist/prompts.d.ts +56 -0
  80. package/dist/prompts.js +284 -0
  81. package/dist/proxy-modes.d.ts +38 -0
  82. package/dist/proxy-modes.js +1235 -0
  83. package/dist/resource-tools.d.ts +1 -0
  84. package/dist/resource-tools.js +14 -0
  85. package/dist/runtime-owner.d.ts +18 -0
  86. package/dist/runtime-owner.js +117 -0
  87. package/dist/sampling-handler.d.ts +15 -0
  88. package/dist/sampling-handler.js +211 -0
  89. package/dist/search-ranking.d.ts +20 -0
  90. package/dist/search-ranking.js +180 -0
  91. package/dist/server-manager.d.ts +114 -0
  92. package/dist/server-manager.js +1175 -0
  93. package/dist/session-recovery.d.ts +31 -0
  94. package/dist/session-recovery.js +310 -0
  95. package/dist/state.d.ts +63 -0
  96. package/dist/state.js +1 -0
  97. package/dist/tool-approval.d.ts +10 -0
  98. package/dist/tool-approval.js +42 -0
  99. package/dist/tool-metadata.d.ts +9 -0
  100. package/dist/tool-metadata.js +193 -0
  101. package/dist/tool-registrar.d.ts +10 -0
  102. package/dist/tool-registrar.js +64 -0
  103. package/dist/tool-result-renderer.d.ts +45 -0
  104. package/dist/tool-result-renderer.js +224 -0
  105. package/dist/ts-shape.d.ts +2 -0
  106. package/dist/ts-shape.js +147 -0
  107. package/dist/types.d.ts +516 -0
  108. package/dist/types.js +168 -0
  109. package/dist/ui-resource-handler.d.ts +17 -0
  110. package/dist/ui-resource-handler.js +209 -0
  111. package/dist/ui-server.d.ts +51 -0
  112. package/dist/ui-server.js +669 -0
  113. package/dist/ui-session.d.ts +39 -0
  114. package/dist/ui-session.js +463 -0
  115. package/dist/ui-stream-types.d.ts +104 -0
  116. package/dist/ui-stream-types.js +58 -0
  117. package/dist/ui-tool-visibility.d.ts +4 -0
  118. package/dist/ui-tool-visibility.js +26 -0
  119. package/dist/unix-socket-transport.d.ts +15 -0
  120. package/dist/unix-socket-transport.js +84 -0
  121. package/dist/utils.d.ts +30 -0
  122. package/dist/utils.js +276 -0
  123. package/docs/client-metadata.json +14 -0
  124. package/elicitation-handler.ts +349 -0
  125. package/error-signal.ts +21 -0
  126. package/glimpse-ui.ts +80 -0
  127. package/host-html-template.ts +456 -0
  128. package/index.ts +900 -0
  129. package/init.ts +627 -0
  130. package/legacy-migration.ts +47 -0
  131. package/lifecycle.ts +165 -0
  132. package/logger.ts +127 -0
  133. package/mcp-auth-flow.ts +975 -0
  134. package/mcp-auth.ts +793 -0
  135. package/mcp-callback-server.ts +450 -0
  136. package/mcp-code.ts +386 -0
  137. package/mcp-keyring-helper.cjs +89 -0
  138. package/mcp-oauth-provider.ts +774 -0
  139. package/mcp-output-guard.ts +412 -0
  140. package/mcp-panel.ts +978 -0
  141. package/mcp-script-worker.mjs +128 -0
  142. package/mcp-setup-panel.ts +666 -0
  143. package/mcp-status.ts +109 -0
  144. package/mcp-trace.ts +295 -0
  145. package/metadata-cache.ts +333 -0
  146. package/npx-resolver.ts +488 -0
  147. package/onboarding-state.ts +58 -0
  148. package/package.json +182 -0
  149. package/panel-keys.ts +37 -0
  150. package/prompts.ts +337 -0
  151. package/proxy-modes.ts +1361 -0
  152. package/resource-tools.ts +17 -0
  153. package/runtime-owner.ts +123 -0
  154. package/sampling-handler.ts +273 -0
  155. package/scripts/build.mjs +131 -0
  156. package/scripts/prepare.mjs +102 -0
  157. package/search-ranking.ts +196 -0
  158. package/server-manager.ts +1320 -0
  159. package/session-recovery.ts +316 -0
  160. package/skills/mcp-scripting/SKILL.md +38 -0
  161. package/state.ts +64 -0
  162. package/tool-approval.ts +78 -0
  163. package/tool-metadata.ts +235 -0
  164. package/tool-registrar.ts +69 -0
  165. package/tool-result-renderer.ts +286 -0
  166. package/ts-shape.ts +145 -0
  167. package/tsconfig.build.json +13 -0
  168. package/tsconfig.json +16 -0
  169. package/types.ts +810 -0
  170. package/ui-resource-handler.ts +249 -0
  171. package/ui-server.ts +808 -0
  172. package/ui-session.ts +568 -0
  173. package/ui-stream-types.ts +89 -0
  174. package/ui-tool-visibility.ts +25 -0
  175. package/unix-socket-transport.ts +85 -0
  176. 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 {};