@inkeep/agents-core 0.0.0-chat-to-edit-20251119071712

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 (57) hide show
  1. package/LICENSE.md +56 -0
  2. package/README.md +458 -0
  3. package/SUPPLEMENTAL_TERMS.md +40 -0
  4. package/dist/auth-detection-CGqhPDnj.d.cts +435 -0
  5. package/dist/auth-detection-CGqhPDnj.d.ts +435 -0
  6. package/dist/chunk-7CLFCY6J.js +36 -0
  7. package/dist/chunk-A6JWG7FI.js +1689 -0
  8. package/dist/chunk-CMNLBV2A.js +39 -0
  9. package/dist/chunk-E6R6PML7.js +19 -0
  10. package/dist/chunk-OP3KPT4T.js +442 -0
  11. package/dist/chunk-TLSKVSBR.js +1234 -0
  12. package/dist/chunk-WG46C2WU.js +394 -0
  13. package/dist/chunk-YECQCT5N.js +223 -0
  14. package/dist/chunk-YFHT5M2R.js +18 -0
  15. package/dist/client-exports.cjs +3421 -0
  16. package/dist/client-exports.d.cts +292 -0
  17. package/dist/client-exports.d.ts +292 -0
  18. package/dist/client-exports.js +178 -0
  19. package/dist/constants/models.cjs +40 -0
  20. package/dist/constants/models.d.cts +42 -0
  21. package/dist/constants/models.d.ts +42 -0
  22. package/dist/constants/models.js +1 -0
  23. package/dist/db/schema.cjs +1686 -0
  24. package/dist/db/schema.d.cts +7 -0
  25. package/dist/db/schema.d.ts +7 -0
  26. package/dist/db/schema.js +1 -0
  27. package/dist/index.cjs +229792 -0
  28. package/dist/index.d.cts +5138 -0
  29. package/dist/index.d.ts +5138 -0
  30. package/dist/index.js +224908 -0
  31. package/dist/props-validation-BMR1qNiy.d.cts +15 -0
  32. package/dist/props-validation-BMR1qNiy.d.ts +15 -0
  33. package/dist/schema-C90zXlqp.d.ts +8012 -0
  34. package/dist/schema-keglUDw0.d.cts +8012 -0
  35. package/dist/types/index.cjs +64 -0
  36. package/dist/types/index.d.cts +175 -0
  37. package/dist/types/index.d.ts +175 -0
  38. package/dist/types/index.js +2 -0
  39. package/dist/utility-CXEG5391.d.cts +17265 -0
  40. package/dist/utility-CXEG5391.d.ts +17265 -0
  41. package/dist/utils/schema-conversion.cjs +236 -0
  42. package/dist/utils/schema-conversion.d.cts +26 -0
  43. package/dist/utils/schema-conversion.d.ts +26 -0
  44. package/dist/utils/schema-conversion.js +1 -0
  45. package/dist/validation/index.cjs +3521 -0
  46. package/dist/validation/index.d.cts +279 -0
  47. package/dist/validation/index.d.ts +279 -0
  48. package/dist/validation/index.js +2 -0
  49. package/drizzle/0000_exotic_mysterio.sql +398 -0
  50. package/drizzle/0001_greedy_the_phantom.sql +4 -0
  51. package/drizzle/0002_add_evaluation_features.sql +252 -0
  52. package/drizzle/0003_brave_micromax.sql +2 -0
  53. package/drizzle/meta/0000_snapshot.json +2519 -0
  54. package/drizzle/meta/0001_snapshot.json +2892 -0
  55. package/drizzle/meta/0002_snapshot.json +4485 -0
  56. package/drizzle/meta/_journal.json +34 -0
  57. package/package.json +133 -0
@@ -0,0 +1,39 @@
1
+ // src/types/a2a.ts
2
+ var TaskState = /* @__PURE__ */ ((TaskState2) => {
3
+ TaskState2["Submitted"] = "submitted";
4
+ TaskState2["Working"] = "working";
5
+ TaskState2["InputRequired"] = "input-required";
6
+ TaskState2["Completed"] = "completed";
7
+ TaskState2["Canceled"] = "canceled";
8
+ TaskState2["Failed"] = "failed";
9
+ TaskState2["Rejected"] = "rejected";
10
+ TaskState2["AuthRequired"] = "auth-required";
11
+ TaskState2["Unknown"] = "unknown";
12
+ return TaskState2;
13
+ })(TaskState || {});
14
+
15
+ // src/types/tool-policies.ts
16
+ function normalizeToolSelections(selections) {
17
+ if (!selections || selections.length === 0) {
18
+ return { selectedTools: [], toolPolicies: {} };
19
+ }
20
+ const selectedTools = [];
21
+ const toolPolicies = {};
22
+ for (const selection of selections) {
23
+ if (typeof selection === "string") {
24
+ selectedTools.push(selection);
25
+ } else {
26
+ selectedTools.push(selection.name);
27
+ const policy = {};
28
+ if (selection.needsApproval !== void 0) {
29
+ policy.needsApproval = selection.needsApproval;
30
+ }
31
+ if (Object.keys(policy).length > 0) {
32
+ toolPolicies[selection.name] = policy;
33
+ }
34
+ }
35
+ }
36
+ return { selectedTools, toolPolicies };
37
+ }
38
+
39
+ export { TaskState, normalizeToolSelections };
@@ -0,0 +1,19 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
5
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
6
+ }) : x)(function(x) {
7
+ if (typeof require !== "undefined") return require.apply(this, arguments);
8
+ throw Error('Dynamic require of "' + x + '" is not supported');
9
+ });
10
+ var __commonJS = (cb, mod) => function __require2() {
11
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12
+ };
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
18
+
19
+ export { __commonJS, __export, __publicField, __require };
@@ -0,0 +1,442 @@
1
+ import { registerClient, startAuthorization, exchangeAuthorization, discoverOAuthProtectedResourceMetadata, discoverAuthorizationServerMetadata } from '@modelcontextprotocol/sdk/client/auth.js';
2
+
3
+ // src/constants/otel-attributes.ts
4
+ var DELEGATION_FROM_SUB_AGENT_ID = "delegation.from_sub_agent_id";
5
+ var DELEGATION_TO_SUB_AGENT_ID = "delegation.to_sub_agent_id";
6
+ var DELEGATION_ID = "delegation.id";
7
+ var TRANSFER_FROM_SUB_AGENT_ID = "transfer.from_sub_agent_id";
8
+ var TRANSFER_TO_SUB_AGENT_ID = "transfer.to_sub_agent_id";
9
+ var SPAN_NAMES = {
10
+ AI_TOOL_CALL: "ai.toolCall",
11
+ CONTEXT_RESOLUTION: "context-resolver.resolve_single_fetch_definition",
12
+ CONTEXT_HANDLE: "context.handle_context_resolution",
13
+ AGENT_GENERATION: "agent.generate",
14
+ CONTEXT_FETCHER: "context-fetcher.http-request",
15
+ ARTIFACT_PROCESSING: "agent_session.process_artifact"
16
+ };
17
+ var AI_OPERATIONS = {
18
+ GENERATE_TEXT: "ai.generateText.doGenerate",
19
+ STREAM_TEXT: "ai.streamText.doStream",
20
+ STREAM_OBJECT: "ai.streamObject.doStream"
21
+ };
22
+ var SPAN_KEYS = {
23
+ // Core span attributes
24
+ SPAN_ID: "spanID",
25
+ TRACE_ID: "traceID",
26
+ DURATION_NANO: "durationNano",
27
+ TIMESTAMP: "timestamp",
28
+ HAS_ERROR: "hasError",
29
+ STATUS_MESSAGE: "status_message",
30
+ OTEL_STATUS_CODE: "otel.status_code",
31
+ OTEL_STATUS_DESCRIPTION: "otel.status_description",
32
+ // Agent attributesa
33
+ AGENT_ID: "agent.id",
34
+ AGENT_NAME: "agent.name",
35
+ TENANT_ID: "tenant.id",
36
+ PROJECT_ID: "project.id",
37
+ SUB_AGENT_NAME: "subAgent.name",
38
+ SUB_AGENT_ID: "subAgent.id",
39
+ // AI/Agent attributes
40
+ AI_OPERATION_ID: "ai.operationId",
41
+ AI_RESPONSE_TIMESTAMP: "ai.response.timestamp",
42
+ AI_RESPONSE_CONTENT: "ai.response.content",
43
+ AI_RESPONSE_TEXT: "ai.response.text",
44
+ AI_RESPONSE_OBJECT: "ai.response.object",
45
+ AI_RESPONSE_MODEL: "ai.response.model",
46
+ AI_RESPONSE_TOOL_CALLS: "ai.response.toolCalls",
47
+ AI_PROMPT_MESSAGES: "ai.prompt.messages",
48
+ AI_MODEL_PROVIDER: "ai.model.provider",
49
+ AI_TELEMETRY_FUNCTION_ID: "ai.telemetry.functionId",
50
+ AI_TELEMETRY_SUB_AGENT_ID: "ai.telemetry.metadata.subAgentId",
51
+ AI_TELEMETRY_SUB_AGENT_NAME: "ai.telemetry.metadata.subAgentName",
52
+ AI_MODEL_ID: "ai.model.id",
53
+ // Tool attributes
54
+ AI_TOOL_CALL_NAME: "ai.toolCall.name",
55
+ AI_TOOL_CALL_RESULT: "ai.toolCall.result",
56
+ AI_TOOL_CALL_ARGS: "ai.toolCall.args",
57
+ AI_TOOL_CALL_ID: "ai.toolCall.id",
58
+ AI_TOOL_TYPE: "ai.toolType",
59
+ TOOL_PURPOSE: "tool.purpose",
60
+ // Token usage
61
+ GEN_AI_USAGE_INPUT_TOKENS: "gen_ai.usage.input_tokens",
62
+ GEN_AI_USAGE_OUTPUT_TOKENS: "gen_ai.usage.output_tokens",
63
+ // Context attributes
64
+ CONTEXT_URL: "context.url",
65
+ CONTEXT_CONFIG_ID: "context.context_config_id",
66
+ CONTEXT_AGENT_ID: "context.agent_id",
67
+ CONTEXT_HEADERS_KEYS: "context.headers_keys",
68
+ // Message attributes
69
+ MESSAGE_CONTENT: "message.content",
70
+ MESSAGE_TIMESTAMP: "message.timestamp",
71
+ MCP_TOOL_DESCRIPTION: "mcp.tool.description",
72
+ // Delegation/Transfer attributes
73
+ DELEGATION_FROM_SUB_AGENT_ID,
74
+ DELEGATION_TO_SUB_AGENT_ID,
75
+ DELEGATION_ID,
76
+ TRANSFER_FROM_SUB_AGENT_ID,
77
+ TRANSFER_TO_SUB_AGENT_ID,
78
+ // HTTP attributes
79
+ HTTP_URL: "http.url",
80
+ HTTP_STATUS_CODE: "http.status_code",
81
+ HTTP_RESPONSE_BODY_SIZE: "http.response.body_size",
82
+ // Core attributes
83
+ NAME: "name",
84
+ PARENT_SPAN_ID: "parentSpanID",
85
+ CONVERSATION_ID: "conversation.id",
86
+ // Artifact processing attributes
87
+ ARTIFACT_ID: "artifact.id",
88
+ ARTIFACT_TYPE: "artifact.type",
89
+ ARTIFACT_TOOL_CALL_ID: "artifact.tool_call_id",
90
+ ARTIFACT_DATA: "artifact.data",
91
+ ARTIFACT_NAME: "artifact.name",
92
+ ARTIFACT_DESCRIPTION: "artifact.description"
93
+ };
94
+ var UNKNOWN_VALUE = "unknown";
95
+ var ACTIVITY_TYPES = {
96
+ TOOL_CALL: "tool_call",
97
+ AI_GENERATION: "ai_generation",
98
+ AGENT_GENERATION: "agent_generation",
99
+ CONTEXT_FETCH: "context_fetch",
100
+ CONTEXT_RESOLUTION: "context_resolution",
101
+ USER_MESSAGE: "user_message",
102
+ AI_ASSISTANT_MESSAGE: "ai_assistant_message",
103
+ AI_MODEL_STREAMED_TEXT: "ai_model_streamed_text",
104
+ AI_MODEL_STREAMED_OBJECT: "ai_model_streamed_object"
105
+ };
106
+ var ACTIVITY_STATUS = {
107
+ SUCCESS: "success",
108
+ ERROR: "error",
109
+ PENDING: "pending"
110
+ };
111
+ var AGENT_IDS = {
112
+ USER: "user",
113
+ AI_ASSISTANT: "ai-assistant"
114
+ };
115
+ var ACTIVITY_NAMES = {
116
+ CONTEXT_FETCH: "Context Fetch",
117
+ USER_MESSAGE: "User Message",
118
+ AI_ASSISTANT_MESSAGE: "AI Assistant Message",
119
+ AI_TEXT_GENERATION: "AI Text Generation",
120
+ AI_STREAMING_TEXT: "AI Streaming Text",
121
+ AI_STREAMING_OBJECT: "AI Streaming Object",
122
+ UNKNOWN_AGENT: "Unknown Agent",
123
+ USER: "User"
124
+ };
125
+ var AI_TOOL_TYPES = {
126
+ MCP: "mcp",
127
+ TRANSFER: "transfer",
128
+ DELEGATION: "delegation"
129
+ };
130
+
131
+ // src/constants/signoz-queries.ts
132
+ var DATA_TYPES = {
133
+ STRING: "string",
134
+ INT64: "int64",
135
+ FLOAT64: "float64",
136
+ BOOL: "bool"
137
+ };
138
+ var FIELD_TYPES = {
139
+ TAG: "tag",
140
+ RESOURCE: "resource"
141
+ };
142
+ var QUERY_FIELD_CONFIGS = {
143
+ // String tag fields
144
+ STRING_TAG: {
145
+ dataType: DATA_TYPES.STRING,
146
+ type: FIELD_TYPES.TAG,
147
+ isColumn: false
148
+ },
149
+ STRING_TAG_COLUMN: {
150
+ dataType: DATA_TYPES.STRING,
151
+ type: FIELD_TYPES.TAG,
152
+ isColumn: true
153
+ },
154
+ // Numeric tag fields
155
+ INT64_TAG: {
156
+ dataType: DATA_TYPES.INT64,
157
+ type: FIELD_TYPES.TAG,
158
+ isColumn: false
159
+ },
160
+ INT64_TAG_COLUMN: {
161
+ dataType: DATA_TYPES.INT64,
162
+ type: FIELD_TYPES.TAG,
163
+ isColumn: true
164
+ },
165
+ FLOAT64_TAG: {
166
+ dataType: DATA_TYPES.FLOAT64,
167
+ type: FIELD_TYPES.TAG,
168
+ isColumn: false
169
+ },
170
+ FLOAT64_TAG_COLUMN: {
171
+ dataType: DATA_TYPES.FLOAT64,
172
+ type: FIELD_TYPES.TAG,
173
+ isColumn: true
174
+ },
175
+ // Boolean tag fields
176
+ BOOL_TAG: {
177
+ dataType: DATA_TYPES.BOOL,
178
+ type: FIELD_TYPES.TAG,
179
+ isColumn: false
180
+ },
181
+ BOOL_TAG_COLUMN: {
182
+ dataType: DATA_TYPES.BOOL,
183
+ type: FIELD_TYPES.TAG,
184
+ isColumn: true
185
+ }
186
+ };
187
+ var OPERATORS = {
188
+ // Comparison operators
189
+ EQUALS: "=",
190
+ NOT_EQUALS: "!=",
191
+ LESS_THAN: "<",
192
+ GREATER_THAN: ">",
193
+ LESS_THAN_OR_EQUAL: "<=",
194
+ GREATER_THAN_OR_EQUAL: ">=",
195
+ // String operators
196
+ LIKE: "like",
197
+ NOT_LIKE: "nlike",
198
+ // Existence operators
199
+ EXISTS: "exists",
200
+ NOT_EXISTS: "nexists",
201
+ // Set operators
202
+ IN: "in",
203
+ NOT_IN: "nin",
204
+ // Logical operators
205
+ AND: "AND",
206
+ OR: "OR"
207
+ };
208
+ var QUERY_EXPRESSIONS = {
209
+ SPAN_NAMES: "spanNames",
210
+ AGENT_MODEL_CALLS: "agentModelCalls",
211
+ MODEL_CALLS: "modelCalls",
212
+ LAST_ACTIVITY: "lastActivity",
213
+ CONVERSATION_METADATA: "conversationMetadata",
214
+ FILTERED_CONVERSATIONS: "filteredConversations",
215
+ TOOLS: "tools",
216
+ TRANSFERS: "transfers",
217
+ DELEGATIONS: "delegations",
218
+ AI_CALLS: "aiCalls",
219
+ CONTEXT_ERRORS: "contextErrors",
220
+ AGENT_GENERATION_ERRORS: "agentGenerationErrors",
221
+ USER_MESSAGES: "userMessages",
222
+ UNIQUE_AGENTS: "uniqueAgents",
223
+ UNIQUE_MODELS: "uniqueModels",
224
+ // Route-specific query names
225
+ TOOL_CALLS: "toolCalls",
226
+ CONTEXT_RESOLUTION: "contextResolution",
227
+ CONTEXT_HANDLE: "contextHandle",
228
+ AI_ASSISTANT_MESSAGES: "aiAssistantMessages",
229
+ AI_GENERATIONS: "aiGenerations",
230
+ AI_STREAMING_TEXT: "aiStreamingText",
231
+ AI_STREAMING_OBJECT: "aiStreamingObject",
232
+ CONTEXT_FETCHERS: "contextFetchers",
233
+ DURATION_SPANS: "durationSpans",
234
+ AGENT_GENERATIONS: "agentGenerations",
235
+ SPANS_WITH_ERRORS: "spansWithErrors",
236
+ ARTIFACT_PROCESSING: "artifactProcessing"
237
+ };
238
+ var REDUCE_OPERATIONS = {
239
+ SUM: "sum",
240
+ MAX: "max",
241
+ MIN: "min",
242
+ AVG: "avg",
243
+ COUNT: "count"
244
+ };
245
+ var ORDER_DIRECTIONS = {
246
+ ASC: "asc",
247
+ DESC: "desc"
248
+ };
249
+ var QUERY_TYPES = {
250
+ BUILDER: "builder",
251
+ CLICKHOUSE: "clickhouse",
252
+ PROMQL: "promql"
253
+ };
254
+ var PANEL_TYPES = {
255
+ LIST: "list",
256
+ TABLE: "table",
257
+ AGENT: "agent",
258
+ VALUE: "value"
259
+ };
260
+ var DATA_SOURCES = {
261
+ TRACES: "traces",
262
+ METRICS: "metrics",
263
+ LOGS: "logs"
264
+ };
265
+ var AGGREGATE_OPERATORS = {
266
+ COUNT: "count",
267
+ COUNT_DISTINCT: "count_distinct",
268
+ SUM: "sum",
269
+ AVG: "avg",
270
+ MIN: "min",
271
+ MAX: "max",
272
+ NOOP: "noop"
273
+ };
274
+ var QUERY_DEFAULTS = {
275
+ STEP: 60,
276
+ STEP_INTERVAL: 60,
277
+ OFFSET: 0,
278
+ DISABLED: false,
279
+ HAVING: [],
280
+ LEGEND: "",
281
+ LIMIT_UNLIMITED: 1e4,
282
+ EMPTY_GROUP_BY: []
283
+ };
284
+ function discoverScopes(resourceMetadata, metadata) {
285
+ const resourceScopes = resourceMetadata?.scopes_supported;
286
+ const oauthScopes = metadata?.scopes_supported;
287
+ const scopes = (resourceScopes?.length ? resourceScopes : oauthScopes) || [];
288
+ return scopes.length > 0 ? scopes.join(" ") : void 0;
289
+ }
290
+ async function discoverMcpMetadata(mcpServerUrl, logger) {
291
+ try {
292
+ let resourceMetadata = null;
293
+ let authServerUrl = new URL(mcpServerUrl);
294
+ try {
295
+ resourceMetadata = await discoverOAuthProtectedResourceMetadata(mcpServerUrl);
296
+ if (resourceMetadata?.authorization_servers?.length && resourceMetadata.authorization_servers[0]) {
297
+ authServerUrl = new URL(resourceMetadata.authorization_servers[0]);
298
+ }
299
+ } catch {
300
+ }
301
+ const metadata = await discoverAuthorizationServerMetadata(authServerUrl.href);
302
+ if (!metadata) {
303
+ throw new Error("Failed to discover OAuth authorization server metadata");
304
+ }
305
+ logger?.debug(
306
+ {
307
+ tokenEndpoint: metadata.token_endpoint,
308
+ authEndpoint: metadata.authorization_endpoint
309
+ },
310
+ "MCP metadata discovery successful"
311
+ );
312
+ const discoveredScopes = discoverScopes(resourceMetadata ?? void 0, metadata);
313
+ return {
314
+ success: true,
315
+ metadata,
316
+ ...resourceMetadata && { resourceMetadata },
317
+ ...discoveredScopes && { scopes: discoveredScopes }
318
+ };
319
+ } catch (err) {
320
+ const errorMessage = err instanceof Error ? err.message : String(err);
321
+ logger?.debug({ error: errorMessage }, "MCP metadata discovery failed");
322
+ return { success: false, error: errorMessage };
323
+ }
324
+ }
325
+ async function initiateMcpOAuthFlow({
326
+ mcpServerUrl,
327
+ redirectUri,
328
+ state,
329
+ clientName = "Inkeep Agent Framework",
330
+ clientUri = "https://inkeep.com",
331
+ logoUri,
332
+ defaultClientId = "mcp-client",
333
+ logger
334
+ }) {
335
+ const discoveryResult = await discoverMcpMetadata(mcpServerUrl, logger);
336
+ if (!discoveryResult.success || !discoveryResult.metadata) {
337
+ throw new Error(`OAuth not supported by this server: ${discoveryResult.error}`);
338
+ }
339
+ const { metadata, resourceMetadata, scopes: discoveredScopes } = discoveryResult;
340
+ const clientMetadata = {
341
+ redirect_uris: [redirectUri],
342
+ token_endpoint_auth_method: "none",
343
+ // PKCE - no client secret
344
+ grant_types: ["authorization_code", "refresh_token"],
345
+ response_types: ["code"],
346
+ client_name: clientName,
347
+ client_uri: clientUri,
348
+ ...logoUri && { logo_uri: logoUri }
349
+ };
350
+ let clientInformation;
351
+ if (metadata.registration_endpoint) {
352
+ clientInformation = await registerClient(mcpServerUrl, {
353
+ metadata,
354
+ clientMetadata
355
+ });
356
+ } else {
357
+ clientInformation = {
358
+ client_id: defaultClientId,
359
+ ...clientMetadata
360
+ };
361
+ }
362
+ const resource = resourceMetadata?.resource ? new globalThis.URL(resourceMetadata.resource) : void 0;
363
+ const authResult = await startAuthorization(mcpServerUrl, {
364
+ metadata,
365
+ clientInformation,
366
+ redirectUrl: redirectUri,
367
+ state,
368
+ scope: discoveredScopes || "",
369
+ ...resource && { resource }
370
+ });
371
+ logger?.debug(
372
+ {
373
+ authorizationUrl: authResult.authorizationUrl.href,
374
+ scopes: discoveredScopes,
375
+ clientId: clientInformation.client_id
376
+ },
377
+ "MCP OAuth flow initiated successfully"
378
+ );
379
+ return {
380
+ authorizationUrl: authResult.authorizationUrl.href,
381
+ codeVerifier: authResult.codeVerifier,
382
+ state,
383
+ clientInformation,
384
+ metadata,
385
+ resourceUrl: resource?.href || void 0,
386
+ ...discoveredScopes && { scopes: discoveredScopes }
387
+ };
388
+ }
389
+ async function exchangeMcpAuthorizationCode({
390
+ mcpServerUrl,
391
+ metadata,
392
+ clientInformation,
393
+ authorizationCode,
394
+ codeVerifier,
395
+ redirectUri,
396
+ resourceUrl,
397
+ logger
398
+ }) {
399
+ const resource = resourceUrl ? new globalThis.URL(resourceUrl) : void 0;
400
+ const tokens = await exchangeAuthorization(mcpServerUrl, {
401
+ metadata,
402
+ clientInformation,
403
+ authorizationCode,
404
+ codeVerifier,
405
+ redirectUri,
406
+ ...resource && { resource }
407
+ });
408
+ logger?.debug(
409
+ {
410
+ tokenType: tokens.token_type,
411
+ hasRefreshToken: !!tokens.refresh_token,
412
+ expiresIn: tokens.expires_in
413
+ },
414
+ "MCP token exchange successful"
415
+ );
416
+ return {
417
+ access_token: tokens.access_token,
418
+ refresh_token: tokens.refresh_token,
419
+ expires_at: tokens.expires_in ? new Date(Date.now() + tokens.expires_in * 1e3) : void 0,
420
+ token_type: tokens.token_type || "Bearer",
421
+ scope: tokens.scope
422
+ };
423
+ }
424
+ var detectAuthenticationRequired = async ({
425
+ serverUrl,
426
+ error,
427
+ logger
428
+ }) => {
429
+ try {
430
+ const discoveryResult = await discoverMcpMetadata(serverUrl, logger);
431
+ if (discoveryResult.success && discoveryResult.metadata) {
432
+ logger?.info({ serverUrl }, "MCP OAuth support confirmed via metadata discovery");
433
+ return true;
434
+ }
435
+ } catch (discoveryError) {
436
+ logger?.debug({ discoveryError }, "MCP OAuth metadata discovery failed");
437
+ }
438
+ logger?.debug({ error: error?.message }, "No MCP OAuth authentication requirement detected");
439
+ return false;
440
+ };
441
+
442
+ export { ACTIVITY_NAMES, ACTIVITY_STATUS, ACTIVITY_TYPES, AGENT_IDS, AGGREGATE_OPERATORS, AI_OPERATIONS, AI_TOOL_TYPES, DATA_SOURCES, DATA_TYPES, DELEGATION_FROM_SUB_AGENT_ID, DELEGATION_ID, DELEGATION_TO_SUB_AGENT_ID, FIELD_TYPES, OPERATORS, ORDER_DIRECTIONS, PANEL_TYPES, QUERY_DEFAULTS, QUERY_EXPRESSIONS, QUERY_FIELD_CONFIGS, QUERY_TYPES, REDUCE_OPERATIONS, SPAN_KEYS, SPAN_NAMES, TRANSFER_FROM_SUB_AGENT_ID, TRANSFER_TO_SUB_AGENT_ID, UNKNOWN_VALUE, detectAuthenticationRequired, exchangeMcpAuthorizationCode, initiateMcpOAuthFlow };