@wingmanjs/core 0.1.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/dist/events.js ADDED
@@ -0,0 +1,231 @@
1
+ /**
2
+ * EventRouter — Routes all 51 SDK event types to typed callbacks.
3
+ *
4
+ * Clean-room implementation that exhaustively handles every event type
5
+ * the Copilot SDK emits. No event is silently dropped.
6
+ */
7
+ // ---------------------------------------------------------------------------
8
+ // EventRouter
9
+ // ---------------------------------------------------------------------------
10
+ export class EventRouter {
11
+ callbacks;
12
+ debug;
13
+ constructor(callbacks, debug = false) {
14
+ this.callbacks = callbacks;
15
+ this.debug = debug || process.env.DEBUG_EVENTS === '1';
16
+ }
17
+ /**
18
+ * Route a SessionEvent to the appropriate callback.
19
+ * Every event type is explicitly handled — nothing is silently dropped.
20
+ */
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ route(event) {
23
+ const { type, data } = event;
24
+ if (this.debug) {
25
+ const preview = JSON.stringify(data ?? {}).slice(0, 200);
26
+ console.debug(`[event] ${type}: ${preview}`);
27
+ }
28
+ switch (type) {
29
+ // Streaming
30
+ case 'assistant.message_delta':
31
+ case 'assistant.streaming_delta':
32
+ this.callbacks.onDelta?.(data?.deltaContent ?? data?.content ?? '');
33
+ break;
34
+ // Reasoning
35
+ case 'assistant.reasoning_delta':
36
+ this.callbacks.onReasoningDelta?.(data?.deltaContent ?? '', data?.reasoningId);
37
+ break;
38
+ case 'assistant.reasoning':
39
+ this.callbacks.onReasoning?.(data?.content ?? '', data?.reasoningId);
40
+ break;
41
+ // Usage
42
+ case 'assistant.usage':
43
+ this.callbacks.onUsage?.({
44
+ inputTokens: data?.inputTokens ?? 0,
45
+ outputTokens: data?.outputTokens ?? 0,
46
+ cacheReadTokens: data?.cacheReadTokens,
47
+ cacheWriteTokens: data?.cacheWriteTokens,
48
+ model: data?.model,
49
+ });
50
+ break;
51
+ // Turn lifecycle
52
+ case 'assistant.turn_start':
53
+ this.callbacks.onTurnStart?.(data?.turnId ?? '');
54
+ break;
55
+ case 'assistant.turn_end':
56
+ this.callbacks.onTurnEnd?.(data?.turnId ?? '');
57
+ break;
58
+ case 'assistant.intent':
59
+ this.callbacks.onIntent?.(data?.intent ?? '');
60
+ break;
61
+ // Tool execution
62
+ case 'tool.execution_start':
63
+ this.callbacks.onToolStart?.({
64
+ toolCallId: data?.toolCallId ?? '',
65
+ toolName: data?.toolName ?? '',
66
+ arguments: data?.arguments,
67
+ mcpServerName: data?.mcpServerName,
68
+ mcpToolName: data?.mcpToolName,
69
+ });
70
+ break;
71
+ case 'tool.execution_complete': {
72
+ let resultStr = '';
73
+ if (data?.result != null) {
74
+ if (typeof data.result === 'object') {
75
+ const content = data.result.content ?? data.result;
76
+ resultStr = typeof content === 'string' ? content : JSON.stringify(content);
77
+ }
78
+ else {
79
+ resultStr = String(data.result);
80
+ }
81
+ }
82
+ this.callbacks.onToolComplete?.(data?.toolCallId ?? '', data?.toolName ?? '', resultStr);
83
+ break;
84
+ }
85
+ case 'tool.execution_progress':
86
+ this.callbacks.onToolProgress?.(data?.toolCallId ?? '', data?.progressMessage ?? '');
87
+ break;
88
+ case 'tool.execution_partial_result':
89
+ this.callbacks.onToolPartialResult?.(data?.toolCallId ?? '', String(data?.result ?? ''));
90
+ break;
91
+ case 'tool.user_requested':
92
+ this.callbacks.onToolUserRequested?.(data?.toolCallId ?? '', data?.toolName ?? '');
93
+ break;
94
+ // Skills
95
+ case 'skill.invoked':
96
+ this.callbacks.onSkillInvoked?.(data?.name ?? '', data?.pluginName, data?.path);
97
+ break;
98
+ // Subagents
99
+ case 'subagent.started':
100
+ this.callbacks.onSubagentStarted?.(data?.toolCallId ?? '', data?.agentName ?? '', data?.agentDisplayName, data?.agentDescription);
101
+ break;
102
+ case 'subagent.completed':
103
+ this.callbacks.onSubagentCompleted?.(data?.toolCallId ?? '', data?.agentName ?? '', data?.agentDisplayName);
104
+ break;
105
+ case 'subagent.failed':
106
+ this.callbacks.onSubagentFailed?.(data?.toolCallId ?? '', data?.agentName ?? '', data?.error);
107
+ break;
108
+ case 'subagent.selected':
109
+ this.callbacks.onSubagentSelected?.(data?.agentName ?? data?.name ?? '');
110
+ break;
111
+ case 'subagent.deselected':
112
+ this.callbacks.onSubagentDeselected?.(data?.agentName ?? data?.name ?? '');
113
+ break;
114
+ // Session lifecycle
115
+ case 'session.start':
116
+ this.callbacks.onSessionStart?.(data?.sessionId ?? '');
117
+ break;
118
+ case 'session.resume':
119
+ this.callbacks.onSessionResume?.(data?.sessionId ?? '');
120
+ break;
121
+ case 'session.shutdown':
122
+ this.callbacks.onSessionShutdown?.();
123
+ break;
124
+ case 'session.idle':
125
+ this.callbacks.onSessionIdle?.();
126
+ break;
127
+ case 'session.error':
128
+ this.callbacks.onError?.(data?.message ?? 'Unknown error');
129
+ break;
130
+ case 'session.info':
131
+ this.callbacks.onInfo?.(data?.infoType ?? '', data?.message ?? '');
132
+ break;
133
+ case 'session.warning':
134
+ this.callbacks.onWarning?.(data?.warningType ?? '', data?.message ?? '');
135
+ break;
136
+ // Model
137
+ case 'session.model_change':
138
+ this.callbacks.onModelChange?.(data?.model ?? '');
139
+ break;
140
+ // Context
141
+ case 'session.truncation':
142
+ this.callbacks.onTruncation?.(data ?? {});
143
+ break;
144
+ case 'session.compaction_start':
145
+ this.callbacks.onCompactionStart?.();
146
+ break;
147
+ case 'session.compaction_complete':
148
+ this.callbacks.onCompactionComplete?.();
149
+ break;
150
+ case 'session.context_changed':
151
+ this.callbacks.onContextChanged?.(data ?? {});
152
+ break;
153
+ // Mode
154
+ case 'session.mode_changed':
155
+ this.callbacks.onModeChanged?.(data?.mode ?? '');
156
+ break;
157
+ case 'session.plan_changed':
158
+ this.callbacks.onPlanChanged?.(data?.plan ?? data ?? {});
159
+ break;
160
+ // Title
161
+ case 'session.title_changed':
162
+ this.callbacks.onTitleChanged?.(data?.title ?? '');
163
+ break;
164
+ // Permission
165
+ case 'permission.requested':
166
+ this.callbacks.onPermissionRequested?.(data ?? {});
167
+ break;
168
+ case 'permission.completed':
169
+ this.callbacks.onPermissionCompleted?.(data ?? {});
170
+ break;
171
+ // User input / elicitation
172
+ case 'elicitation.requested':
173
+ this.callbacks.onElicitationRequested?.(data ?? {});
174
+ break;
175
+ case 'elicitation.completed':
176
+ this.callbacks.onElicitationCompleted?.(data ?? {});
177
+ break;
178
+ case 'user_input.requested':
179
+ this.callbacks.onUserInputRequested?.(data ?? {});
180
+ break;
181
+ case 'user_input.completed':
182
+ this.callbacks.onUserInputCompleted?.(data ?? {});
183
+ break;
184
+ // Messages
185
+ case 'user.message':
186
+ this.callbacks.onUserMessage?.(data?.content ?? '');
187
+ break;
188
+ case 'system.message':
189
+ this.callbacks.onSystemMessage?.(data?.content ?? '');
190
+ break;
191
+ case 'assistant.message':
192
+ this.callbacks.onAssistantMessage?.(data?.content ?? '');
193
+ break;
194
+ case 'pending_messages.modified':
195
+ this.callbacks.onPendingMessagesModified?.(data ?? {});
196
+ break;
197
+ // Workspace
198
+ case 'session.workspace_file_changed':
199
+ this.callbacks.onWorkspaceFileChanged?.(data?.path ?? '');
200
+ break;
201
+ case 'session.snapshot_rewind':
202
+ this.callbacks.onSnapshotRewind?.(data ?? {});
203
+ break;
204
+ // Hooks
205
+ case 'hook.start':
206
+ this.callbacks.onHookStart?.(data?.name ?? '');
207
+ break;
208
+ case 'hook.end':
209
+ this.callbacks.onHookEnd?.(data?.name ?? '');
210
+ break;
211
+ // Task management
212
+ case 'session.task_complete':
213
+ this.callbacks.onTaskComplete?.(data ?? {});
214
+ break;
215
+ case 'session.handoff':
216
+ this.callbacks.onHandoff?.(data ?? {});
217
+ break;
218
+ case 'session.usage_info':
219
+ this.callbacks.onUsageInfo?.(data ?? {});
220
+ break;
221
+ // Catch-all — future SDK events won't be silently lost
222
+ default:
223
+ this.callbacks.onUnhandledEvent?.(type, data ?? {});
224
+ if (this.debug) {
225
+ console.warn(`[event] Unhandled event type: ${type}`);
226
+ }
227
+ break;
228
+ }
229
+ }
230
+ }
231
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Wingman — Public API surface.
3
+ *
4
+ * Re-exports all public types, the client, session manager,
5
+ * event router, MCP discovery, and configuration utilities.
6
+ */
7
+ export type { SDKEventType, EventCategory, UsageData, ToolExecution, SessionInfo, AgentMode, ChatMessage, MCPStdioConfig, MCPHttpConfig, MCPServerConfig, DiscoveredMCPServer, TransportType, TransportAdapter, WingmanUIConfig, WingmanServerConfig, WingmanTelemetryConfig, WingmanConfig, } from './types.js';
8
+ export { EVENT_CATEGORIES } from './types.js';
9
+ export { defineConfig, resolveConfig, DEFAULT_CONFIG } from './config.js';
10
+ export { WingmanClient } from './client.js';
11
+ export type { WingmanClientOptions, SendMessageOptions } from './client.js';
12
+ export { EventRouter } from './events.js';
13
+ export type { EventCallbacks } from './events.js';
14
+ export { discoverMCPServers, discoverWithDiagnostics } from './mcp.js';
15
+ export type { DiscoveryResult } from './mcp.js';
16
+ export { createServer, startServer } from './server.js';
17
+ export type { CreateServerOptions, ServerInstance, RunningServerInstance } from './server.js';
18
+ export { WingmanTracer, createTracer, createNoopCallbacks } from './telemetry.js';
19
+ export { initTelemetry, shutdownTelemetry } from './instrumentation.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,EACT,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG9F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Wingman — Public API surface.
3
+ *
4
+ * Re-exports all public types, the client, session manager,
5
+ * event router, MCP discovery, and configuration utilities.
6
+ */
7
+ // Constants
8
+ export { EVENT_CATEGORIES } from './types.js';
9
+ // Config
10
+ export { defineConfig, resolveConfig, DEFAULT_CONFIG } from './config.js';
11
+ // Client
12
+ export { WingmanClient } from './client.js';
13
+ // Events
14
+ export { EventRouter } from './events.js';
15
+ // MCP
16
+ export { discoverMCPServers, discoverWithDiagnostics } from './mcp.js';
17
+ // Server
18
+ export { createServer, startServer } from './server.js';
19
+ // Telemetry
20
+ export { WingmanTracer, createTracer, createNoopCallbacks } from './telemetry.js';
21
+ export { initTelemetry, shutdownTelemetry } from './instrumentation.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1E,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM;AACN,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAGvE,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGxD,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * OTel SDK bootstrap for Wingman.
3
+ *
4
+ * Call `initTelemetry()` early in your startup sequence, before creating
5
+ * WingmanClient or starting the server.
6
+ *
7
+ * Supports two exporters:
8
+ * - 'console' → ConsoleSpanExporter (zero-setup, terminal output)
9
+ * - 'otlp' → OTLPTraceExporter to HTTP endpoint (default: Jaeger at localhost:4318)
10
+ *
11
+ * Standard OTel environment variable overrides are honored by the SDK:
12
+ * OTEL_TRACES_EXPORTER — 'console', 'otlp', or 'none'
13
+ * OTEL_EXPORTER_OTLP_ENDPOINT — OTLP collector base URL (SDK appends /v1/traces)
14
+ * OTEL_EXPORTER_OTLP_TRACES_ENDPOINT — Trace-specific endpoint (takes priority)
15
+ * OTEL_SERVICE_NAME — service.name resource attribute
16
+ *
17
+ * Usage:
18
+ * import { initTelemetry } from '@wingmanjs/core';
19
+ * await initTelemetry({ enabled: true, exporter: 'console' });
20
+ */
21
+ import type { WingmanTelemetryConfig } from './types.js';
22
+ /**
23
+ * Initialize OpenTelemetry tracing. Call this once at startup,
24
+ * before creating WingmanClient or starting the server.
25
+ *
26
+ * No-op if telemetry is disabled or already initialized.
27
+ */
28
+ export declare function initTelemetry(config?: WingmanTelemetryConfig): Promise<void>;
29
+ /** Gracefully flush and shut down the OTel pipeline. */
30
+ export declare function shutdownTelemetry(): Promise<void>;
31
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAKzD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAoFtF;AAED,wDAAwD;AACxD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvD"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * OTel SDK bootstrap for Wingman.
3
+ *
4
+ * Call `initTelemetry()` early in your startup sequence, before creating
5
+ * WingmanClient or starting the server.
6
+ *
7
+ * Supports two exporters:
8
+ * - 'console' → ConsoleSpanExporter (zero-setup, terminal output)
9
+ * - 'otlp' → OTLPTraceExporter to HTTP endpoint (default: Jaeger at localhost:4318)
10
+ *
11
+ * Standard OTel environment variable overrides are honored by the SDK:
12
+ * OTEL_TRACES_EXPORTER — 'console', 'otlp', or 'none'
13
+ * OTEL_EXPORTER_OTLP_ENDPOINT — OTLP collector base URL (SDK appends /v1/traces)
14
+ * OTEL_EXPORTER_OTLP_TRACES_ENDPOINT — Trace-specific endpoint (takes priority)
15
+ * OTEL_SERVICE_NAME — service.name resource attribute
16
+ *
17
+ * Usage:
18
+ * import { initTelemetry } from '@wingmanjs/core';
19
+ * await initTelemetry({ enabled: true, exporter: 'console' });
20
+ */
21
+ let initialized = false;
22
+ let shutdownFn = null;
23
+ /**
24
+ * Initialize OpenTelemetry tracing. Call this once at startup,
25
+ * before creating WingmanClient or starting the server.
26
+ *
27
+ * No-op if telemetry is disabled or already initialized.
28
+ */
29
+ export async function initTelemetry(config = {}) {
30
+ if (!config.enabled) {
31
+ return;
32
+ }
33
+ if (initialized)
34
+ return;
35
+ // Resolve exporter type: env var > config > default 'console'
36
+ const rawExporterType = process.env.OTEL_TRACES_EXPORTER ??
37
+ config.exporter ??
38
+ 'console';
39
+ // Normalize: handle comma-separated lists and 'none' per OTel spec
40
+ const exporterTokens = String(rawExporterType)
41
+ .split(',')
42
+ .map((v) => v.trim().toLowerCase())
43
+ .filter((v) => v.length > 0);
44
+ if (exporterTokens.length === 0 || exporterTokens.includes('none')) {
45
+ console.log('📡 OTel tracing disabled (exporter=none)');
46
+ initialized = true;
47
+ return;
48
+ }
49
+ const exporterType = exporterTokens.includes('otlp') ? 'otlp' : 'console';
50
+ // Resolve service name: env var > config > default 'wingman'
51
+ const serviceName = process.env.OTEL_SERVICE_NAME ??
52
+ config.serviceName ??
53
+ 'wingman';
54
+ // Dynamic imports to avoid loading OTel when telemetry is off
55
+ const { NodeTracerProvider } = await import('@opentelemetry/sdk-trace-node');
56
+ const { SimpleSpanProcessor, BatchSpanProcessor, ConsoleSpanExporter } = await import('@opentelemetry/sdk-trace-base');
57
+ const { resourceFromAttributes } = await import('@opentelemetry/resources');
58
+ const { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } = await import('@opentelemetry/semantic-conventions');
59
+ const resource = resourceFromAttributes({
60
+ [ATTR_SERVICE_NAME]: serviceName,
61
+ [ATTR_SERVICE_VERSION]: '0.1.0',
62
+ 'gen_ai.system': 'github.copilot',
63
+ });
64
+ // Build span processors based on exporter type
65
+ const processors = [];
66
+ if (exporterType === 'otlp') {
67
+ const { OTLPTraceExporter } = await import('@opentelemetry/exporter-trace-otlp-http');
68
+ // Only pass url when explicitly configured — let the SDK handle
69
+ // OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_TRACES_ENDPOINT natively
70
+ const exporterConfig = config.endpoint ? { url: config.endpoint } : {};
71
+ const exporter = new OTLPTraceExporter(exporterConfig);
72
+ // BatchSpanProcessor for production — queues spans and exports in batches
73
+ processors.push(new BatchSpanProcessor(exporter));
74
+ console.log(`📡 OTel tracing → OTLP${config.endpoint ? ` at ${config.endpoint}` : ' (default endpoint)'}`);
75
+ }
76
+ else {
77
+ // SimpleSpanProcessor for console — immediate output for dev
78
+ processors.push(new SimpleSpanProcessor(new ConsoleSpanExporter()));
79
+ console.log('📡 OTel tracing → console');
80
+ }
81
+ const provider = new NodeTracerProvider({ resource, spanProcessors: processors });
82
+ provider.register();
83
+ // Register HTTP and Express auto-instrumentation (patches http module and Express router)
84
+ const { registerInstrumentations } = await import('@opentelemetry/instrumentation');
85
+ const { HttpInstrumentation } = await import('@opentelemetry/instrumentation-http');
86
+ const { ExpressInstrumentation } = await import('@opentelemetry/instrumentation-express');
87
+ registerInstrumentations({
88
+ instrumentations: [
89
+ new HttpInstrumentation(),
90
+ new ExpressInstrumentation(),
91
+ ],
92
+ tracerProvider: provider,
93
+ });
94
+ initialized = true;
95
+ shutdownFn = async () => {
96
+ await provider.shutdown();
97
+ };
98
+ }
99
+ /** Gracefully flush and shut down the OTel pipeline. */
100
+ export async function shutdownTelemetry() {
101
+ if (shutdownFn) {
102
+ await shutdownFn();
103
+ shutdownFn = null;
104
+ }
105
+ initialized = false;
106
+ }
107
+ //# sourceMappingURL=instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * MCP Discovery — Auto-discovers MCP servers from multiple sources.
3
+ *
4
+ * Discovery chain (later overrides earlier):
5
+ * 1. Built-in defaults (Power BI remote)
6
+ * 2. User global config (~/.copilot/mcp-config.json)
7
+ * 3. Installed Copilot CLI plugins (~/.copilot/installed-plugins/)
8
+ * 4. Project-level overrides (./mcp.json)
9
+ * 5. User overrides from wingman.config.ts (highest priority)
10
+ */
11
+ import type { MCPServerConfig } from './types.js';
12
+ export interface DiscoveryResult {
13
+ servers: Record<string, MCPServerConfig>;
14
+ sources: Map<string, string>;
15
+ skillDirectories: string[];
16
+ diagnostics: string[];
17
+ }
18
+ /**
19
+ * Discover all MCP servers from the 5-stage pipeline.
20
+ * User-provided overrides (from wingman.config.ts) are merged last.
21
+ */
22
+ export declare function discoverMCPServers(userOverrides?: Record<string, MCPServerConfig>): Promise<Record<string, MCPServerConfig>>;
23
+ /**
24
+ * Discover servers with full diagnostics — returns source tracking
25
+ * and skill directories for logging and UI display.
26
+ */
27
+ export declare function discoverWithDiagnostics(userOverrides?: Record<string, MCPServerConfig>, projectRoot?: string): Promise<DiscoveryResult>;
28
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AA6JD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAsB1C;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC/C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAmF1B"}