@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/LICENSE +21 -0
- package/dist/client.d.ts +55 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +227 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +55 -0
- package/dist/config.js.map +1 -0
- package/dist/events.d.ts +77 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +231 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation.d.ts +31 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +107 -0
- package/dist/instrumentation.js.map +1 -0
- package/dist/mcp.d.ts +28 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +241 -0
- package/dist/mcp.js.map +1 -0
- package/dist/server.d.ts +31 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +317 -0
- package/dist/server.js.map +1 -0
- package/dist/telemetry.d.ts +52 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +313 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/types.d.ts +132 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +62 -0
- package/dist/types.js.map +1 -0
- package/package.json +70 -0
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":"AAAA;;;;;GAKG;AAsGH,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,OAAO,WAAW;IACd,SAAS,CAAiB;IAC1B,KAAK,CAAU;IAEvB,YAAY,SAAyB,EAAE,KAAK,GAAG,KAAK;QAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,8DAA8D;IAC9D,KAAK,CAAC,KAAmC;QACvC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAE7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,QAAQ,IAAoB,EAAE,CAAC;YAC7B,YAAY;YACZ,KAAK,yBAAyB,CAAC;YAC/B,KAAK,2BAA2B;gBAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACpE,MAAM;YAER,YAAY;YACZ,KAAK,2BAA2B;gBAC9B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,YAAY,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC/E,MAAM;YACR,KAAK,qBAAqB;gBACxB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBACrE,MAAM;YAER,QAAQ;YACR,KAAK,iBAAiB;gBACpB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvB,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC;oBACnC,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,CAAC;oBACrC,eAAe,EAAE,IAAI,EAAE,eAAe;oBACtC,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;oBACxC,KAAK,EAAE,IAAI,EAAE,KAAK;iBACnB,CAAC,CAAC;gBACH,MAAM;YAER,iBAAiB;YACjB,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,oBAAoB;gBACvB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,kBAAkB;gBACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC9C,MAAM;YAER,iBAAiB;YACjB,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;oBAC3B,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE;oBAClC,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;oBAC9B,SAAS,EAAE,IAAI,EAAE,SAAS;oBAC1B,aAAa,EAAE,IAAI,EAAE,aAAa;oBAClC,WAAW,EAAE,IAAI,EAAE,WAAW;iBAC/B,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC/B,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;oBACzB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC;wBACnD,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC9E,CAAC;yBAAM,CAAC;wBACN,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAC7B,IAAI,EAAE,UAAU,IAAI,EAAE,EACtB,IAAI,EAAE,QAAQ,IAAI,EAAE,EACpB,SAAS,CACV,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,yBAAyB;gBAC5B,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC;gBACrF,MAAM;YACR,KAAK,+BAA+B;gBAClC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzF,MAAM;YACR,KAAK,qBAAqB;gBACxB,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACnF,MAAM;YAER,SAAS;YACT,KAAK,eAAe;gBAClB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChF,MAAM;YAER,YAAY;YACZ,KAAK,kBAAkB;gBACrB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBAClI,MAAM;YACR,KAAK,oBAAoB;gBACvB,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBAC5G,MAAM;YACR,KAAK,iBAAiB;gBACpB,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9F,MAAM;YACR,KAAK,mBAAmB;gBACtB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBACzE,MAAM;YACR,KAAK,qBAAqB;gBACxB,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC3E,MAAM;YAER,oBAAoB;YACpB,KAAK,eAAe;gBAClB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;gBACvD,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,kBAAkB;gBACrB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBACrC,MAAM;YACR,KAAK,cAAc;gBACjB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;gBACjC,MAAM;YACR,KAAK,eAAe;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,eAAe,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,cAAc;gBACjB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACnE,MAAM;YACR,KAAK,iBAAiB;gBACpB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACzE,MAAM;YAER,QAAQ;YACR,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM;YAER,UAAU;YACV,KAAK,oBAAoB;gBACvB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,0BAA0B;gBAC7B,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBACrC,MAAM;YACR,KAAK,6BAA6B;gBAChC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACxC,MAAM;YACR,KAAK,yBAAyB;gBAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9C,MAAM;YAER,OAAO;YACP,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;gBACzD,MAAM;YAER,QAAQ;YACR,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACnD,MAAM;YAER,aAAa;YACb,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACnD,MAAM;YAER,2BAA2B;YAC3B,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,sBAAsB;gBACzB,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM;YAER,WAAW;YACX,KAAK,cAAc;gBACjB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACtD,MAAM;YACR,KAAK,mBAAmB;gBACtB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACzD,MAAM;YACR,KAAK,2BAA2B;gBAC9B,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACvD,MAAM;YAER,YAAY;YACZ,KAAK,gCAAgC;gBACnC,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC1D,MAAM;YACR,KAAK,yBAAyB;gBAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9C,MAAM;YAER,QAAQ;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC7C,MAAM;YAER,kBAAkB;YAClB,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,iBAAiB;gBACpB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,oBAAoB;gBACvB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM;YAER,uDAAuD;YACvD;gBACE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|