@inkeep/agents-sdk 0.39.5 → 0.40.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 (59) hide show
  1. package/dist/_virtual/rolldown_runtime.js +7 -0
  2. package/dist/agent.d.ts +186 -0
  3. package/dist/agent.js +720 -0
  4. package/dist/agentFullClient.d.ts +22 -0
  5. package/dist/agentFullClient.js +120 -0
  6. package/dist/artifact-component.d.ts +34 -0
  7. package/dist/artifact-component.js +104 -0
  8. package/dist/builderFunctions.d.ts +283 -0
  9. package/dist/builderFunctions.js +327 -0
  10. package/dist/builderFunctionsExperimental.d.ts +24 -0
  11. package/dist/builderFunctionsExperimental.js +27 -0
  12. package/dist/builders.d.ts +111 -0
  13. package/dist/builders.js +52 -0
  14. package/dist/credential-provider.d.ts +176 -0
  15. package/dist/credential-provider.js +237 -0
  16. package/dist/credential-ref.d.ts +60 -0
  17. package/dist/credential-ref.js +33 -0
  18. package/dist/data-component.d.ts +39 -0
  19. package/dist/data-component.js +109 -0
  20. package/dist/environment-settings.d.ts +27 -0
  21. package/dist/environment-settings.js +41 -0
  22. package/dist/external-agent.d.ts +64 -0
  23. package/dist/external-agent.js +156 -0
  24. package/dist/function-tool.d.ts +37 -0
  25. package/dist/function-tool.js +66 -0
  26. package/dist/index.d.ts +19 -1825
  27. package/dist/index.js +19 -4058
  28. package/dist/module-hosted-tool-manager.d.ts +40 -0
  29. package/dist/module-hosted-tool-manager.js +359 -0
  30. package/dist/project.d.ts +214 -0
  31. package/dist/project.js +615 -0
  32. package/dist/projectFullClient.d.ts +23 -0
  33. package/dist/projectFullClient.js +162 -0
  34. package/dist/runner.d.ts +41 -0
  35. package/dist/runner.js +145 -0
  36. package/dist/status-component.d.ts +22 -0
  37. package/dist/status-component.js +36 -0
  38. package/dist/subAgent.d.ts +52 -0
  39. package/dist/subAgent.js +616 -0
  40. package/dist/telemetry-provider.d.ts +218 -0
  41. package/dist/telemetry-provider.js +390 -0
  42. package/dist/tool.d.ts +53 -0
  43. package/dist/tool.js +130 -0
  44. package/dist/types.d.ts +296 -0
  45. package/dist/types.js +39 -0
  46. package/dist/utils/generateIdFromName.d.ts +9 -0
  47. package/dist/utils/generateIdFromName.js +12 -0
  48. package/dist/utils/getFunctionToolDeps.d.ts +17 -0
  49. package/dist/utils/getFunctionToolDeps.js +131 -0
  50. package/dist/utils/tool-normalization.d.ts +42 -0
  51. package/dist/utils/tool-normalization.js +41 -0
  52. package/dist/utils/validateFunction.d.ts +10 -0
  53. package/dist/utils/validateFunction.js +13 -0
  54. package/package.json +11 -16
  55. package/dist/index.cjs +0 -4147
  56. package/dist/index.d.cts +0 -1825
  57. package/dist/index.d.cts.map +0 -1
  58. package/dist/index.d.ts.map +0 -1
  59. package/dist/index.js.map +0 -1
@@ -0,0 +1,218 @@
1
+ //#region src/telemetry-provider.d.ts
2
+ /**
3
+ * TelemetryProvider - Abstraction for Telemetry/Observability
4
+ *
5
+ * This module provides a clean abstraction over telemetry implementations.
6
+ * Cloud customers can use this without needing to install or configure
7
+ * OpenTelemetry or Signoz directly.
8
+ *
9
+ * Telemetry is OPT-IN - if not configured, a no-op provider is used.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // Opt-in to telemetry with default console logger
14
+ * import { InkeepTelemetryProvider, createConsoleTelemetryProvider } from '@inkeep/agents-sdk'
15
+ *
16
+ * const telemetry = createConsoleTelemetryProvider()
17
+ *
18
+ * // Or with OpenTelemetry (requires @opentelemetry packages)
19
+ * const telemetry = createOpenTelemetryProvider({
20
+ * serviceName: 'my-agent',
21
+ * endpoint: 'http://localhost:4318'
22
+ * })
23
+ * ```
24
+ */
25
+ /**
26
+ * Span status codes
27
+ */
28
+ declare const SpanStatus: {
29
+ readonly OK: "ok";
30
+ readonly ERROR: "error";
31
+ readonly UNSET: "unset";
32
+ };
33
+ type SpanStatusType = (typeof SpanStatus)[keyof typeof SpanStatus];
34
+ /**
35
+ * Span interface for tracing
36
+ */
37
+ interface TelemetrySpan {
38
+ /** Set span attributes */
39
+ setAttributes(attributes: Record<string, unknown>): TelemetrySpan;
40
+ /** Set a single attribute */
41
+ setAttribute(key: string, value: unknown): TelemetrySpan;
42
+ /** Record an exception */
43
+ recordException(error: Error): TelemetrySpan;
44
+ /** Set span status */
45
+ setStatus(status: SpanStatusType, message?: string): TelemetrySpan;
46
+ /** Add an event to the span */
47
+ addEvent(name: string, attributes?: Record<string, unknown>): TelemetrySpan;
48
+ /** End the span */
49
+ end(): void;
50
+ /** Check if span is recording */
51
+ isRecording(): boolean;
52
+ /** Update span name */
53
+ updateName(name: string): TelemetrySpan;
54
+ }
55
+ /**
56
+ * Span options
57
+ */
58
+ interface SpanOptions {
59
+ /** Span attributes */
60
+ attributes?: Record<string, unknown>;
61
+ /** Parent span (for context propagation) */
62
+ parent?: TelemetrySpan;
63
+ }
64
+ /**
65
+ * Tracer interface for creating spans
66
+ */
67
+ interface TelemetryTracer {
68
+ /** Start a new active span and execute callback */
69
+ startActiveSpan<T>(name: string, fn: (span: TelemetrySpan) => T): T;
70
+ startActiveSpan<T>(name: string, options: SpanOptions, fn: (span: TelemetrySpan) => T): T;
71
+ /** Start a new span without making it active */
72
+ startSpan(name: string, options?: SpanOptions): TelemetrySpan;
73
+ }
74
+ /**
75
+ * Logger interface for structured logging
76
+ */
77
+ interface TelemetryLogger {
78
+ debug(message: string, context?: Record<string, unknown>): void;
79
+ info(message: string, context?: Record<string, unknown>): void;
80
+ warn(message: string, context?: Record<string, unknown>): void;
81
+ error(message: string, context?: Record<string, unknown>): void;
82
+ }
83
+ /**
84
+ * Metrics interface for recording measurements
85
+ */
86
+ interface TelemetryMetrics {
87
+ /** Increment a counter */
88
+ increment(name: string, value?: number, attributes?: Record<string, unknown>): void;
89
+ /** Record a gauge value */
90
+ gauge(name: string, value: number, attributes?: Record<string, unknown>): void;
91
+ /** Record a histogram value */
92
+ histogram(name: string, value: number, attributes?: Record<string, unknown>): void;
93
+ }
94
+ /**
95
+ * Main telemetry provider interface
96
+ */
97
+ interface TelemetryProvider {
98
+ /** Get a tracer for creating spans */
99
+ getTracer(name: string, version?: string): TelemetryTracer;
100
+ /** Get a logger for structured logging */
101
+ getLogger(name: string): TelemetryLogger;
102
+ /** Get metrics for recording measurements */
103
+ getMetrics(name: string): TelemetryMetrics;
104
+ /** Shutdown the telemetry provider */
105
+ shutdown(): Promise<void>;
106
+ /** Check if telemetry is enabled */
107
+ isEnabled(): boolean;
108
+ }
109
+ /**
110
+ * Configuration for telemetry provider
111
+ */
112
+ interface TelemetryConfig {
113
+ /** Whether telemetry is enabled (default: false) */
114
+ enabled?: boolean;
115
+ /** Service name for identifying the source */
116
+ serviceName?: string;
117
+ /** Service version */
118
+ serviceVersion?: string;
119
+ /** Custom provider implementation */
120
+ provider?: TelemetryProvider;
121
+ }
122
+ /**
123
+ * No-op telemetry provider (default)
124
+ */
125
+ declare class NoOpTelemetryProvider implements TelemetryProvider {
126
+ getTracer(_name: string, _version?: string): TelemetryTracer;
127
+ getLogger(_name: string): TelemetryLogger;
128
+ getMetrics(_name: string): TelemetryMetrics;
129
+ shutdown(): Promise<void>;
130
+ isEnabled(): boolean;
131
+ }
132
+ /**
133
+ * Console-based telemetry provider for development/debugging
134
+ */
135
+ declare class ConsoleTelemetryProvider implements TelemetryProvider {
136
+ private serviceName;
137
+ constructor(serviceName?: string);
138
+ getTracer(name: string, _version?: string): TelemetryTracer;
139
+ getLogger(name: string): TelemetryLogger;
140
+ getMetrics(name: string): TelemetryMetrics;
141
+ shutdown(): Promise<void>;
142
+ isEnabled(): boolean;
143
+ }
144
+ /**
145
+ * InkeepTelemetryProvider - Main telemetry management class
146
+ *
147
+ * Provides a unified interface for telemetry across the SDK.
148
+ * Telemetry is OPT-IN - by default, a no-op provider is used.
149
+ */
150
+ declare class InkeepTelemetryProvider {
151
+ private provider;
152
+ constructor(config?: TelemetryConfig);
153
+ /**
154
+ * Get a tracer for creating spans
155
+ */
156
+ getTracer(name: string, version?: string): TelemetryTracer;
157
+ /**
158
+ * Get a logger for structured logging
159
+ */
160
+ getLogger(name: string): TelemetryLogger;
161
+ /**
162
+ * Get metrics recorder
163
+ */
164
+ getMetrics(name: string): TelemetryMetrics;
165
+ /**
166
+ * Check if telemetry is enabled
167
+ */
168
+ isEnabled(): boolean;
169
+ /**
170
+ * Shutdown the provider
171
+ */
172
+ shutdown(): Promise<void>;
173
+ /**
174
+ * Get the underlying provider
175
+ */
176
+ getProvider(): TelemetryProvider;
177
+ /**
178
+ * Set as the global telemetry provider
179
+ */
180
+ setAsGlobal(): void;
181
+ }
182
+ /**
183
+ * Get the global telemetry provider
184
+ */
185
+ declare function getGlobalTelemetryProvider(): TelemetryProvider;
186
+ /**
187
+ * Set the global telemetry provider
188
+ */
189
+ declare function setGlobalTelemetryProvider(provider: TelemetryProvider): void;
190
+ /**
191
+ * Create a no-op telemetry provider (default, does nothing)
192
+ */
193
+ declare function createNoOpTelemetryProvider(): InkeepTelemetryProvider;
194
+ /**
195
+ * Create a console-based telemetry provider for development
196
+ */
197
+ declare function createConsoleTelemetryProvider(serviceName?: string): InkeepTelemetryProvider;
198
+ /**
199
+ * Configuration for OpenTelemetry provider
200
+ */
201
+ interface OpenTelemetryConfig {
202
+ /** Service name */
203
+ serviceName: string;
204
+ /** Service version */
205
+ serviceVersion?: string;
206
+ /** OTLP endpoint URL */
207
+ endpoint?: string;
208
+ /** Additional resource attributes */
209
+ resourceAttributes?: Record<string, string>;
210
+ }
211
+ /**
212
+ * Create an OpenTelemetry-based provider
213
+ *
214
+ * Note: Requires @opentelemetry packages to be installed
215
+ */
216
+ declare function createOpenTelemetryProvider(config: OpenTelemetryConfig): Promise<InkeepTelemetryProvider>;
217
+ //#endregion
218
+ export { ConsoleTelemetryProvider, InkeepTelemetryProvider, NoOpTelemetryProvider, OpenTelemetryConfig, SpanOptions, SpanStatus, SpanStatusType, TelemetryConfig, TelemetryLogger, TelemetryMetrics, TelemetryProvider, TelemetrySpan, TelemetryTracer, createConsoleTelemetryProvider, createNoOpTelemetryProvider, createOpenTelemetryProvider, getGlobalTelemetryProvider, setGlobalTelemetryProvider };
@@ -0,0 +1,390 @@
1
+ import { __require } from "./_virtual/rolldown_runtime.js";
2
+
3
+ //#region src/telemetry-provider.ts
4
+ /**
5
+ * TelemetryProvider - Abstraction for Telemetry/Observability
6
+ *
7
+ * This module provides a clean abstraction over telemetry implementations.
8
+ * Cloud customers can use this without needing to install or configure
9
+ * OpenTelemetry or Signoz directly.
10
+ *
11
+ * Telemetry is OPT-IN - if not configured, a no-op provider is used.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Opt-in to telemetry with default console logger
16
+ * import { InkeepTelemetryProvider, createConsoleTelemetryProvider } from '@inkeep/agents-sdk'
17
+ *
18
+ * const telemetry = createConsoleTelemetryProvider()
19
+ *
20
+ * // Or with OpenTelemetry (requires @opentelemetry packages)
21
+ * const telemetry = createOpenTelemetryProvider({
22
+ * serviceName: 'my-agent',
23
+ * endpoint: 'http://localhost:4318'
24
+ * })
25
+ * ```
26
+ */
27
+ /**
28
+ * Span status codes
29
+ */
30
+ const SpanStatus = {
31
+ OK: "ok",
32
+ ERROR: "error",
33
+ UNSET: "unset"
34
+ };
35
+ /**
36
+ * No-op span implementation
37
+ */
38
+ const createNoOpSpan = () => ({
39
+ setAttributes: function() {
40
+ return this;
41
+ },
42
+ setAttribute: function() {
43
+ return this;
44
+ },
45
+ recordException: function() {
46
+ return this;
47
+ },
48
+ setStatus: function() {
49
+ return this;
50
+ },
51
+ addEvent: function() {
52
+ return this;
53
+ },
54
+ end: () => {},
55
+ isRecording: () => false,
56
+ updateName: function() {
57
+ return this;
58
+ }
59
+ });
60
+ /**
61
+ * No-op tracer implementation
62
+ */
63
+ const createNoOpTracer = () => ({
64
+ startActiveSpan(_name, arg1, arg2) {
65
+ const fn = typeof arg1 === "function" ? arg1 : arg2;
66
+ if (!fn) throw new Error("No callback function provided");
67
+ return fn(createNoOpSpan());
68
+ },
69
+ startSpan(_name, _options) {
70
+ return createNoOpSpan();
71
+ }
72
+ });
73
+ /**
74
+ * No-op logger implementation
75
+ */
76
+ const createNoOpLogger = () => ({
77
+ debug: () => {},
78
+ info: () => {},
79
+ warn: () => {},
80
+ error: () => {}
81
+ });
82
+ /**
83
+ * No-op metrics implementation
84
+ */
85
+ const createNoOpMetrics = () => ({
86
+ increment: () => {},
87
+ gauge: () => {},
88
+ histogram: () => {}
89
+ });
90
+ /**
91
+ * No-op telemetry provider (default)
92
+ */
93
+ var NoOpTelemetryProvider = class {
94
+ getTracer(_name, _version) {
95
+ return createNoOpTracer();
96
+ }
97
+ getLogger(_name) {
98
+ return createNoOpLogger();
99
+ }
100
+ getMetrics(_name) {
101
+ return createNoOpMetrics();
102
+ }
103
+ async shutdown() {}
104
+ isEnabled() {
105
+ return false;
106
+ }
107
+ };
108
+ /**
109
+ * Console-based telemetry provider for development/debugging
110
+ */
111
+ var ConsoleTelemetryProvider = class {
112
+ serviceName;
113
+ constructor(serviceName = "inkeep-agent") {
114
+ this.serviceName = serviceName;
115
+ }
116
+ getTracer(name, _version) {
117
+ const serviceName = this.serviceName;
118
+ const createConsoleSpan = (spanName) => {
119
+ const startTime = Date.now();
120
+ const attributes = {};
121
+ const events = [];
122
+ return {
123
+ setAttributes: function(attrs) {
124
+ Object.assign(attributes, attrs);
125
+ return this;
126
+ },
127
+ setAttribute: function(key, value) {
128
+ attributes[key] = value;
129
+ return this;
130
+ },
131
+ recordException: function(error) {
132
+ console.error(`[${serviceName}:${name}] Exception in ${spanName}:`, error.message);
133
+ return this;
134
+ },
135
+ setStatus: function(status, message) {
136
+ if (status === SpanStatus.ERROR) console.error(`[${serviceName}:${name}] ${spanName} ERROR:`, message);
137
+ return this;
138
+ },
139
+ addEvent: function(eventName, eventAttrs) {
140
+ events.push({
141
+ name: eventName,
142
+ attributes: eventAttrs
143
+ });
144
+ return this;
145
+ },
146
+ end: () => {
147
+ const duration = Date.now() - startTime;
148
+ console.log(`[${serviceName}:${name}] ${spanName} completed in ${duration}ms`, {
149
+ attributes,
150
+ events
151
+ });
152
+ },
153
+ isRecording: () => true,
154
+ updateName: function(newName) {
155
+ console.log(`[${serviceName}:${name}] Span renamed: ${spanName} -> ${newName}`);
156
+ return this;
157
+ }
158
+ };
159
+ };
160
+ return {
161
+ startActiveSpan(spanName, arg1, arg2) {
162
+ const fn = typeof arg1 === "function" ? arg1 : arg2;
163
+ if (!fn) throw new Error("No callback function provided");
164
+ const span = createConsoleSpan(spanName);
165
+ try {
166
+ return fn(span);
167
+ } finally {
168
+ span.end();
169
+ }
170
+ },
171
+ startSpan(spanName, _options) {
172
+ return createConsoleSpan(spanName);
173
+ }
174
+ };
175
+ }
176
+ getLogger(name) {
177
+ const prefix = `[${this.serviceName}:${name}]`;
178
+ return {
179
+ debug: (message, context) => console.debug(prefix, message, context),
180
+ info: (message, context) => console.info(prefix, message, context),
181
+ warn: (message, context) => console.warn(prefix, message, context),
182
+ error: (message, context) => console.error(prefix, message, context)
183
+ };
184
+ }
185
+ getMetrics(name) {
186
+ const prefix = `[${this.serviceName}:${name}]`;
187
+ return {
188
+ increment: (metricName, value = 1, attributes) => console.log(`${prefix} COUNTER ${metricName}: +${value}`, attributes),
189
+ gauge: (metricName, value, attributes) => console.log(`${prefix} GAUGE ${metricName}: ${value}`, attributes),
190
+ histogram: (metricName, value, attributes) => console.log(`${prefix} HISTOGRAM ${metricName}: ${value}`, attributes)
191
+ };
192
+ }
193
+ async shutdown() {
194
+ console.log(`[${this.serviceName}] Telemetry provider shutting down`);
195
+ }
196
+ isEnabled() {
197
+ return true;
198
+ }
199
+ };
200
+ let globalProvider = new NoOpTelemetryProvider();
201
+ /**
202
+ * InkeepTelemetryProvider - Main telemetry management class
203
+ *
204
+ * Provides a unified interface for telemetry across the SDK.
205
+ * Telemetry is OPT-IN - by default, a no-op provider is used.
206
+ */
207
+ var InkeepTelemetryProvider = class {
208
+ provider;
209
+ constructor(config = {}) {
210
+ if (config.provider) this.provider = config.provider;
211
+ else if (config.enabled) this.provider = new ConsoleTelemetryProvider(config.serviceName);
212
+ else this.provider = new NoOpTelemetryProvider();
213
+ }
214
+ /**
215
+ * Get a tracer for creating spans
216
+ */
217
+ getTracer(name, version) {
218
+ return this.provider.getTracer(name, version);
219
+ }
220
+ /**
221
+ * Get a logger for structured logging
222
+ */
223
+ getLogger(name) {
224
+ return this.provider.getLogger(name);
225
+ }
226
+ /**
227
+ * Get metrics recorder
228
+ */
229
+ getMetrics(name) {
230
+ return this.provider.getMetrics(name);
231
+ }
232
+ /**
233
+ * Check if telemetry is enabled
234
+ */
235
+ isEnabled() {
236
+ return this.provider.isEnabled();
237
+ }
238
+ /**
239
+ * Shutdown the provider
240
+ */
241
+ async shutdown() {
242
+ return this.provider.shutdown();
243
+ }
244
+ /**
245
+ * Get the underlying provider
246
+ */
247
+ getProvider() {
248
+ return this.provider;
249
+ }
250
+ /**
251
+ * Set as the global telemetry provider
252
+ */
253
+ setAsGlobal() {
254
+ globalProvider = this.provider;
255
+ }
256
+ };
257
+ /**
258
+ * Get the global telemetry provider
259
+ */
260
+ function getGlobalTelemetryProvider() {
261
+ return globalProvider;
262
+ }
263
+ /**
264
+ * Set the global telemetry provider
265
+ */
266
+ function setGlobalTelemetryProvider(provider) {
267
+ globalProvider = provider;
268
+ }
269
+ /**
270
+ * Create a no-op telemetry provider (default, does nothing)
271
+ */
272
+ function createNoOpTelemetryProvider() {
273
+ return new InkeepTelemetryProvider({ enabled: false });
274
+ }
275
+ /**
276
+ * Create a console-based telemetry provider for development
277
+ */
278
+ function createConsoleTelemetryProvider(serviceName) {
279
+ return new InkeepTelemetryProvider({
280
+ enabled: true,
281
+ serviceName,
282
+ provider: new ConsoleTelemetryProvider(serviceName)
283
+ });
284
+ }
285
+ /**
286
+ * Wrap an OpenTelemetry span in our TelemetrySpan interface
287
+ */
288
+ function wrapOtelSpan(otelSpan) {
289
+ return {
290
+ setAttributes: function(attributes) {
291
+ otelSpan.setAttributes(attributes);
292
+ return this;
293
+ },
294
+ setAttribute: function(key, value) {
295
+ otelSpan.setAttribute(key, value);
296
+ return this;
297
+ },
298
+ recordException: function(error) {
299
+ otelSpan.recordException(error);
300
+ return this;
301
+ },
302
+ setStatus: function(status, message) {
303
+ const statusCode = status === SpanStatus.ERROR ? 2 : status === SpanStatus.OK ? 1 : 0;
304
+ otelSpan.setStatus({
305
+ code: statusCode,
306
+ message
307
+ });
308
+ return this;
309
+ },
310
+ addEvent: function(name, attributes) {
311
+ otelSpan.addEvent(name, attributes);
312
+ return this;
313
+ },
314
+ end: () => otelSpan.end(),
315
+ isRecording: () => otelSpan.isRecording(),
316
+ updateName: function(name) {
317
+ otelSpan.updateName(name);
318
+ return this;
319
+ }
320
+ };
321
+ }
322
+ /**
323
+ * Check if OpenTelemetry is available
324
+ */
325
+ function isOpenTelemetryAvailable() {
326
+ try {
327
+ /** @lintignore Skip report as unlisted dependencies by Knip */
328
+ __require.resolve("@opentelemetry/api");
329
+ return true;
330
+ } catch {
331
+ return false;
332
+ }
333
+ }
334
+ /**
335
+ * Load OpenTelemetry module dynamically
336
+ */
337
+ async function loadOpenTelemetryModule() {
338
+ return new Function("specifier", "return import(specifier)")("@opentelemetry/api");
339
+ }
340
+ /**
341
+ * Create an OpenTelemetry-based provider
342
+ *
343
+ * Note: Requires @opentelemetry packages to be installed
344
+ */
345
+ async function createOpenTelemetryProvider(config) {
346
+ if (!isOpenTelemetryAvailable()) {
347
+ console.warn("OpenTelemetry packages not installed. Install with: npm install @opentelemetry/api @opentelemetry/sdk-node");
348
+ return createNoOpTelemetryProvider();
349
+ }
350
+ try {
351
+ const { trace } = await loadOpenTelemetryModule();
352
+ return new InkeepTelemetryProvider({
353
+ enabled: true,
354
+ provider: {
355
+ getTracer(name, version) {
356
+ const otelTracer = trace.getTracer(name, version);
357
+ return {
358
+ startActiveSpan(spanName, arg1, arg2) {
359
+ const fn = typeof arg1 === "function" ? arg1 : arg2;
360
+ const options = typeof arg1 === "object" ? arg1 : void 0;
361
+ if (!fn) throw new Error("No callback function provided");
362
+ return otelTracer.startActiveSpan(spanName, options?.attributes ? { attributes: options.attributes } : {}, (otelSpan) => {
363
+ return fn(wrapOtelSpan(otelSpan));
364
+ });
365
+ },
366
+ startSpan(spanName, options) {
367
+ return wrapOtelSpan(otelTracer.startSpan(spanName, options?.attributes ? { attributes: options.attributes } : {}));
368
+ }
369
+ };
370
+ },
371
+ getLogger(name) {
372
+ return new ConsoleTelemetryProvider(config.serviceName).getLogger(name);
373
+ },
374
+ getMetrics(_name) {
375
+ return createNoOpMetrics();
376
+ },
377
+ async shutdown() {},
378
+ isEnabled() {
379
+ return true;
380
+ }
381
+ }
382
+ });
383
+ } catch (error) {
384
+ console.warn("Failed to initialize OpenTelemetry:", error instanceof Error ? error.message : "Unknown error");
385
+ return createNoOpTelemetryProvider();
386
+ }
387
+ }
388
+
389
+ //#endregion
390
+ export { ConsoleTelemetryProvider, InkeepTelemetryProvider, NoOpTelemetryProvider, SpanStatus, createConsoleTelemetryProvider, createNoOpTelemetryProvider, createOpenTelemetryProvider, getGlobalTelemetryProvider, setGlobalTelemetryProvider };
package/dist/tool.d.ts ADDED
@@ -0,0 +1,53 @@
1
+ import { AgentMcpConfig, AgentMcpConfigInput } from "./builders.js";
2
+ import { MCPToolConfig } from "@inkeep/agents-core";
3
+
4
+ //#region src/tool.d.ts
5
+ interface ToolInterface {
6
+ config: MCPToolConfig;
7
+ init(): Promise<void>;
8
+ getId(): string;
9
+ getName(): string;
10
+ getDescription(): string;
11
+ getServerUrl(): string;
12
+ getActiveTools(): string[] | undefined;
13
+ getCredentialReferenceId(): string | null | undefined;
14
+ with(config: AgentMcpConfigInput): AgentMcpConfig;
15
+ }
16
+ declare class Tool implements ToolInterface {
17
+ config: MCPToolConfig;
18
+ private baseURL;
19
+ private tenantId;
20
+ private initialized;
21
+ private projectId;
22
+ constructor(config: Omit<MCPToolConfig, 'tenantId' | 'projectId'>);
23
+ setContext(tenantId: string, projectId: string, baseURL?: string): void;
24
+ getId(): string;
25
+ getName(): string;
26
+ getDescription(): string;
27
+ getServerUrl(): string;
28
+ getActiveTools(): string[] | undefined;
29
+ getCredentialReferenceId(): string | null | undefined;
30
+ init(options?: {
31
+ skipDatabaseRegistration?: boolean;
32
+ }): Promise<void>;
33
+ private upsertTool;
34
+ /**
35
+ * Creates a new AgentMcpConfig with the given configuration.
36
+ *
37
+ * @param config - The configuration for the AgentMcpConfig
38
+ * @returns A new AgentMcpConfig
39
+ *
40
+ * example:
41
+ * ```typescript
42
+ * const tool = new Tool({
43
+ * id: 'tool-id',
44
+ * name: 'Tool Name',
45
+ * serverUrl: 'https://example.com/mcp',
46
+ * });
47
+ * const agentMcpConfig = tool.with({ selectedTools: ['tool-1', 'tool-2'], headers: { 'Authorization': 'Bearer token' } });
48
+ * ```
49
+ */
50
+ with(config: AgentMcpConfigInput): AgentMcpConfig;
51
+ }
52
+ //#endregion
53
+ export { Tool, ToolInterface };