@agnt5/sdk 0.2.1

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 (126) hide show
  1. package/README.md +183 -0
  2. package/dist/__tests__/integration/helpers.d.ts +41 -0
  3. package/dist/__tests__/integration/helpers.d.ts.map +1 -0
  4. package/dist/__tests__/integration/helpers.js +78 -0
  5. package/dist/__tests__/integration/helpers.js.map +1 -0
  6. package/dist/agent.d.ts +260 -0
  7. package/dist/agent.d.ts.map +1 -0
  8. package/dist/agent.js +493 -0
  9. package/dist/agent.js.map +1 -0
  10. package/dist/async-context.d.ts +57 -0
  11. package/dist/async-context.d.ts.map +1 -0
  12. package/dist/async-context.js +52 -0
  13. package/dist/async-context.js.map +1 -0
  14. package/dist/batch.d.ts +116 -0
  15. package/dist/batch.d.ts.map +1 -0
  16. package/dist/batch.js +98 -0
  17. package/dist/batch.js.map +1 -0
  18. package/dist/chat.d.ts +137 -0
  19. package/dist/chat.d.ts.map +1 -0
  20. package/dist/chat.js +278 -0
  21. package/dist/chat.js.map +1 -0
  22. package/dist/client.d.ts +394 -0
  23. package/dist/client.d.ts.map +1 -0
  24. package/dist/client.js +757 -0
  25. package/dist/client.js.map +1 -0
  26. package/dist/context.d.ts +47 -0
  27. package/dist/context.d.ts.map +1 -0
  28. package/dist/context.js +244 -0
  29. package/dist/context.js.map +1 -0
  30. package/dist/errors.d.ts +148 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +201 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/eval.d.ts +242 -0
  35. package/dist/eval.d.ts.map +1 -0
  36. package/dist/eval.js +452 -0
  37. package/dist/eval.js.map +1 -0
  38. package/dist/event-emitter.d.ts +28 -0
  39. package/dist/event-emitter.d.ts.map +1 -0
  40. package/dist/event-emitter.js +79 -0
  41. package/dist/event-emitter.js.map +1 -0
  42. package/dist/events.d.ts +285 -0
  43. package/dist/events.d.ts.map +1 -0
  44. package/dist/events.js +256 -0
  45. package/dist/events.js.map +1 -0
  46. package/dist/function.d.ts +61 -0
  47. package/dist/function.d.ts.map +1 -0
  48. package/dist/function.js +78 -0
  49. package/dist/function.js.map +1 -0
  50. package/dist/index.d.ts +67 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +80 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/lm.d.ts +301 -0
  55. package/dist/lm.d.ts.map +1 -0
  56. package/dist/lm.js +283 -0
  57. package/dist/lm.js.map +1 -0
  58. package/dist/logging.d.ts +68 -0
  59. package/dist/logging.d.ts.map +1 -0
  60. package/dist/logging.js +165 -0
  61. package/dist/logging.js.map +1 -0
  62. package/dist/mcp-server.d.ts +98 -0
  63. package/dist/mcp-server.d.ts.map +1 -0
  64. package/dist/mcp-server.js +307 -0
  65. package/dist/mcp-server.js.map +1 -0
  66. package/dist/mcp.d.ts +73 -0
  67. package/dist/mcp.d.ts.map +1 -0
  68. package/dist/mcp.js +224 -0
  69. package/dist/mcp.js.map +1 -0
  70. package/dist/memory.d.ts +234 -0
  71. package/dist/memory.d.ts.map +1 -0
  72. package/dist/memory.js +609 -0
  73. package/dist/memory.js.map +1 -0
  74. package/dist/platform-adapters.d.ts +121 -0
  75. package/dist/platform-adapters.d.ts.map +1 -0
  76. package/dist/platform-adapters.js +174 -0
  77. package/dist/platform-adapters.js.map +1 -0
  78. package/dist/platform-context.d.ts +55 -0
  79. package/dist/platform-context.d.ts.map +1 -0
  80. package/dist/platform-context.js +196 -0
  81. package/dist/platform-context.js.map +1 -0
  82. package/dist/retry-utils.d.ts +169 -0
  83. package/dist/retry-utils.d.ts.map +1 -0
  84. package/dist/retry-utils.js +304 -0
  85. package/dist/retry-utils.js.map +1 -0
  86. package/dist/sandbox.d.ts +103 -0
  87. package/dist/sandbox.d.ts.map +1 -0
  88. package/dist/sandbox.js +168 -0
  89. package/dist/sandbox.js.map +1 -0
  90. package/dist/schema-utils.d.ts +250 -0
  91. package/dist/schema-utils.d.ts.map +1 -0
  92. package/dist/schema-utils.js +444 -0
  93. package/dist/schema-utils.js.map +1 -0
  94. package/dist/scorer.d.ts +130 -0
  95. package/dist/scorer.d.ts.map +1 -0
  96. package/dist/scorer.js +211 -0
  97. package/dist/scorer.js.map +1 -0
  98. package/dist/state.d.ts +92 -0
  99. package/dist/state.d.ts.map +1 -0
  100. package/dist/state.js +151 -0
  101. package/dist/state.js.map +1 -0
  102. package/dist/tool.d.ts +120 -0
  103. package/dist/tool.d.ts.map +1 -0
  104. package/dist/tool.js +215 -0
  105. package/dist/tool.js.map +1 -0
  106. package/dist/tracing.d.ts +82 -0
  107. package/dist/tracing.d.ts.map +1 -0
  108. package/dist/tracing.js +206 -0
  109. package/dist/tracing.js.map +1 -0
  110. package/dist/types.d.ts +139 -0
  111. package/dist/types.d.ts.map +1 -0
  112. package/dist/types.js +2 -0
  113. package/dist/types.js.map +1 -0
  114. package/dist/worker.d.ts +111 -0
  115. package/dist/worker.d.ts.map +1 -0
  116. package/dist/worker.js +944 -0
  117. package/dist/worker.js.map +1 -0
  118. package/dist/workflow-utils.d.ts +257 -0
  119. package/dist/workflow-utils.d.ts.map +1 -0
  120. package/dist/workflow-utils.js +370 -0
  121. package/dist/workflow-utils.js.map +1 -0
  122. package/dist/workflow.d.ts +78 -0
  123. package/dist/workflow.d.ts.map +1 -0
  124. package/dist/workflow.js +138 -0
  125. package/dist/workflow.js.map +1 -0
  126. package/package.json +86 -0
package/dist/lm.js ADDED
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Language Model (LLM) integration for AGNT5 TypeScript SDK
3
+ *
4
+ * Provides unified interface to multiple LLM providers:
5
+ * - OpenAI (GPT-4, o1, o3)
6
+ * - Anthropic (Claude)
7
+ * - Azure OpenAI
8
+ * - AWS Bedrock
9
+ * - Groq
10
+ * - OpenRouter
11
+ * - DeepSeek
12
+ * - Google (Gemini)
13
+ * - Mistral
14
+ * - Ollama (local LLM)
15
+ * - xAI (Grok)
16
+ * - HuggingFace
17
+ * - OpenAI Chat (custom OpenAI-compatible APIs)
18
+ */
19
+ import { createRequire } from 'module';
20
+ import { fileURLToPath } from 'url';
21
+ import { dirname, join } from 'path';
22
+ // Native bindings (loaded dynamically)
23
+ let nativeBindings = null;
24
+ /**
25
+ * Load native bindings
26
+ * @internal
27
+ */
28
+ function loadNativeBindings() {
29
+ if (nativeBindings)
30
+ return nativeBindings;
31
+ const __filename = fileURLToPath(import.meta.url);
32
+ const __dirname = dirname(__filename);
33
+ const require = createRequire(import.meta.url);
34
+ // Try multiple paths to find the native module
35
+ const possiblePaths = [
36
+ join(__dirname, '../../native/agnt5-sdk-native.darwin-arm64.node'),
37
+ join(__dirname, '../native/agnt5-sdk-native.darwin-arm64.node'),
38
+ join(__dirname, '../../native/agnt5-sdk-native.linux-x64-gnu.node'),
39
+ join(__dirname, '../native/agnt5-sdk-native.linux-x64-gnu.node'),
40
+ join(__dirname, '../../native/agnt5-sdk-native.linux-x64.node'),
41
+ join(__dirname, '../native/agnt5-sdk-native.linux-x64.node'),
42
+ ];
43
+ for (const nativePath of possiblePaths) {
44
+ try {
45
+ nativeBindings = require(nativePath);
46
+ return nativeBindings;
47
+ }
48
+ catch (e) {
49
+ continue;
50
+ }
51
+ }
52
+ throw new Error('Could not find native LM bindings');
53
+ }
54
+ // ============================================================================
55
+ // LM Class (TypeScript wrapper)
56
+ // ============================================================================
57
+ export class LM {
58
+ constructor(model) {
59
+ this.model = model;
60
+ }
61
+ /**
62
+ * Create OpenAI provider
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const lm = LM.openai({ apiKey: process.env.OPENAI_API_KEY });
67
+ * const response = await lm.generate({
68
+ * model: 'gpt-4',
69
+ * messages: [{ role: 'user', content: 'Hello!' }]
70
+ * });
71
+ * ```
72
+ */
73
+ static openai(config) {
74
+ const bindings = loadNativeBindings();
75
+ return new LM(bindings.LanguageModel.openai(config));
76
+ }
77
+ /**
78
+ * Create Anthropic (Claude) provider
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const lm = LM.anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
83
+ * const response = await lm.generate({
84
+ * model: 'claude-3-5-sonnet-20241022',
85
+ * messages: [{ role: 'user', content: 'Hello!' }]
86
+ * });
87
+ * ```
88
+ */
89
+ static anthropic(config) {
90
+ const bindings = loadNativeBindings();
91
+ return new LM(bindings.LanguageModel.anthropic(config));
92
+ }
93
+ /**
94
+ * Create Azure OpenAI provider
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const lm = LM.azure({
99
+ * apiKey: process.env.AZURE_OPENAI_API_KEY,
100
+ * endpoint: 'https://your-resource.openai.azure.com',
101
+ * });
102
+ * ```
103
+ */
104
+ static azure(config) {
105
+ const bindings = loadNativeBindings();
106
+ return new LM(bindings.LanguageModel.azure(config));
107
+ }
108
+ /**
109
+ * Create AWS Bedrock provider
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * const lm = LM.bedrock({
114
+ * region: 'us-east-1',
115
+ * accessKeyId: process.env.AWS_ACCESS_KEY_ID,
116
+ * secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
117
+ * });
118
+ * ```
119
+ */
120
+ static bedrock(config) {
121
+ const bindings = loadNativeBindings();
122
+ return new LM(bindings.LanguageModel.bedrock(config));
123
+ }
124
+ /**
125
+ * Create Groq provider (fast inference)
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const lm = LM.groq({ apiKey: process.env.GROQ_API_KEY });
130
+ * const response = await lm.generate({
131
+ * model: 'mixtral-8x7b-32768',
132
+ * messages: [{ role: 'user', content: 'Hello!' }]
133
+ * });
134
+ * ```
135
+ */
136
+ static groq(config) {
137
+ const bindings = loadNativeBindings();
138
+ return new LM(bindings.LanguageModel.groq(config));
139
+ }
140
+ /**
141
+ * Create OpenRouter provider (model aggregation)
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const lm = LM.openrouter({ apiKey: process.env.OPENROUTER_API_KEY });
146
+ * const response = await lm.generate({
147
+ * model: 'anthropic/claude-3-opus',
148
+ * messages: [{ role: 'user', content: 'Hello!' }]
149
+ * });
150
+ * ```
151
+ */
152
+ static openrouter(config) {
153
+ const bindings = loadNativeBindings();
154
+ return new LM(bindings.LanguageModel.openrouter(config));
155
+ }
156
+ /** Create DeepSeek provider */
157
+ static deepseek(config) {
158
+ const bindings = loadNativeBindings();
159
+ return new LM(bindings.LanguageModel.deepseek(config));
160
+ }
161
+ /** Create Google (Gemini) provider */
162
+ static google(config) {
163
+ const bindings = loadNativeBindings();
164
+ return new LM(bindings.LanguageModel.google(config));
165
+ }
166
+ /** Create Mistral provider */
167
+ static mistral(config) {
168
+ const bindings = loadNativeBindings();
169
+ return new LM(bindings.LanguageModel.mistral(config));
170
+ }
171
+ /** Create Ollama provider (local LLM) */
172
+ static ollama(config) {
173
+ const bindings = loadNativeBindings();
174
+ return new LM(bindings.LanguageModel.ollama(config));
175
+ }
176
+ /** Create xAI (Grok) provider */
177
+ static xai(config) {
178
+ const bindings = loadNativeBindings();
179
+ return new LM(bindings.LanguageModel.xai(config));
180
+ }
181
+ /** Create HuggingFace provider */
182
+ static huggingface(config) {
183
+ const bindings = loadNativeBindings();
184
+ return new LM(bindings.LanguageModel.huggingface(config));
185
+ }
186
+ /** Create OpenAI Chat-compatible provider (for custom OpenAI-compatible APIs) */
187
+ static openaiChat(config) {
188
+ const bindings = loadNativeBindings();
189
+ return new LM(bindings.LanguageModel.openaiChat(config));
190
+ }
191
+ /**
192
+ * Generate a completion
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * const response = await lm.generate({
197
+ * model: 'gpt-4',
198
+ * messages: [
199
+ * { role: 'system', content: 'You are a helpful assistant.' },
200
+ * { role: 'user', content: 'What is 2+2?' }
201
+ * ],
202
+ * config: {
203
+ * temperature: 0.7,
204
+ * maxOutputTokens: 100
205
+ * }
206
+ * });
207
+ * console.log(response.text);
208
+ * ```
209
+ */
210
+ async generate(request) {
211
+ return await this.model.generate(request);
212
+ }
213
+ /**
214
+ * Stream a completion
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * await lm.stream({
219
+ * model: 'gpt-4',
220
+ * messages: [{ role: 'user', content: 'Tell me a story' }]
221
+ * }, (chunk) => {
222
+ * if (chunk.chunkType === 'delta' && chunk.content) {
223
+ * process.stdout.write(chunk.content);
224
+ * } else if (chunk.chunkType === 'completed' && chunk.response) {
225
+ * console.log('\n\nTokens used:', chunk.response.usage);
226
+ * }
227
+ * });
228
+ * ```
229
+ */
230
+ async stream(request, callback) {
231
+ return await this.model.stream(request, callback);
232
+ }
233
+ }
234
+ // ============================================================================
235
+ // Helper functions
236
+ // ============================================================================
237
+ /**
238
+ * Create a system message
239
+ */
240
+ export function systemMessage(content) {
241
+ return { role: 'system', content };
242
+ }
243
+ /**
244
+ * Create a user message
245
+ */
246
+ export function userMessage(content) {
247
+ return { role: 'user', content };
248
+ }
249
+ /**
250
+ * Create an assistant message
251
+ */
252
+ export function assistantMessage(content) {
253
+ return { role: 'assistant', content };
254
+ }
255
+ /**
256
+ * Create a tool definition from a JSON schema
257
+ */
258
+ export function createTool(name, description, parameters) {
259
+ return {
260
+ name,
261
+ description,
262
+ parameters: JSON.stringify(parameters),
263
+ strict: true,
264
+ };
265
+ }
266
+ /**
267
+ * Parse tool call arguments
268
+ */
269
+ export function parseToolArguments(toolCall) {
270
+ return JSON.parse(toolCall.arguments);
271
+ }
272
+ /**
273
+ * Create a JSON schema response format
274
+ */
275
+ export function jsonSchemaFormat(name, schema, strict = true) {
276
+ return {
277
+ formatType: 'json_schema',
278
+ schemaName: name,
279
+ schema: JSON.stringify(schema),
280
+ strict,
281
+ };
282
+ }
283
+ //# sourceMappingURL=lm.js.map
package/dist/lm.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lm.js","sourceRoot":"","sources":["../src/lm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Logging utilities for AGNT5 TypeScript SDK.
3
+ *
4
+ * Provides ContextLogger (structured context injection) and getLogger/setLogLevel
5
+ * for consistent, NAPI-backed logging that mirrors the Python SDK's _telemetry module.
6
+ */
7
+ import type { Logger } from './types.js';
8
+ export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
9
+ /**
10
+ * Set the global log level for all context loggers.
11
+ * Accepts 'DEBUG', 'INFO', 'WARN', or 'ERROR'.
12
+ */
13
+ export declare function setLogLevel(level: LogLevel): void;
14
+ /** Get the current global log level. */
15
+ export declare function getLogLevel(): LogLevel;
16
+ /**
17
+ * Logger with structured context injection.
18
+ *
19
+ * Logs to both console and NAPI/OTLP when available.
20
+ * Extra context (runId, traceId, spanId) is automatically injected.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const logger = new ContextLogger('my-agent', { runId: 'run-123' });
25
+ * logger.info('Processing request', { userId: 'u-456' });
26
+ * ```
27
+ */
28
+ export declare class ContextLogger implements Logger {
29
+ private _name;
30
+ private _runId;
31
+ private _traceId;
32
+ private _spanId;
33
+ private _defaultAttrs;
34
+ constructor(name: string, context?: {
35
+ runId?: string;
36
+ traceId?: string;
37
+ spanId?: string;
38
+ attrs?: Record<string, string>;
39
+ });
40
+ /** Create a child logger with additional context. */
41
+ child(extra: {
42
+ runId?: string;
43
+ traceId?: string;
44
+ spanId?: string;
45
+ attrs?: Record<string, string>;
46
+ }): ContextLogger;
47
+ private log;
48
+ info(message: string, meta?: Record<string, any>): void;
49
+ error(message: string, meta?: Record<string, any>): void;
50
+ warn(message: string, meta?: Record<string, any>): void;
51
+ debug(message: string, meta?: Record<string, any>): void;
52
+ }
53
+ /**
54
+ * Get a named logger with AGNT5-consistent formatting.
55
+ *
56
+ * Respects AGNT5_DEBUG env var and setLogLevel() calls.
57
+ * Logs to NAPI/OTLP when available, always to console.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * import { getLogger } from 'agnt5';
62
+ * const logger = getLogger('my-module');
63
+ * logger.info('Ready');
64
+ * logger.debug('Details', { key: 'value' });
65
+ * ```
66
+ */
67
+ export declare function getLogger(name: string): ContextLogger;
68
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIzC,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAW3D;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED,wCAAwC;AACxC,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAuDD;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAyB;gBAG5C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC;IASH,qDAAqD;IACrD,KAAK,CAAC,KAAK,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC,GAAG,aAAa;IASjB,OAAO,CAAC,GAAG;IA4BX,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAGzD;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAErD"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Logging utilities for AGNT5 TypeScript SDK.
3
+ *
4
+ * Provides ContextLogger (structured context injection) and getLogger/setLogLevel
5
+ * for consistent, NAPI-backed logging that mirrors the Python SDK's _telemetry module.
6
+ */
7
+ import { createRequire } from 'module';
8
+ import { fileURLToPath } from 'url';
9
+ import { dirname, join } from 'path';
10
+ const LOG_LEVEL_PRIORITY = {
11
+ DEBUG: 0,
12
+ INFO: 1,
13
+ WARN: 2,
14
+ ERROR: 3,
15
+ };
16
+ let _globalLogLevel = (process.env.AGNT5_DEBUG ? 'DEBUG' : 'INFO');
17
+ /**
18
+ * Set the global log level for all context loggers.
19
+ * Accepts 'DEBUG', 'INFO', 'WARN', or 'ERROR'.
20
+ */
21
+ export function setLogLevel(level) {
22
+ _globalLogLevel = level;
23
+ }
24
+ /** Get the current global log level. */
25
+ export function getLogLevel() {
26
+ return _globalLogLevel;
27
+ }
28
+ function shouldLog(level) {
29
+ return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[_globalLogLevel];
30
+ }
31
+ // ─── NAPI binding loader ─────────────────────────────────────────────
32
+ let _nativeLogFn;
33
+ function getNativeLogFn() {
34
+ if (_nativeLogFn !== undefined)
35
+ return _nativeLogFn;
36
+ try {
37
+ const __filename = fileURLToPath(import.meta.url);
38
+ const __dirname = dirname(__filename);
39
+ const require = createRequire(import.meta.url);
40
+ const paths = [
41
+ join(__dirname, '../../native/agnt5-sdk-native.darwin-arm64.node'),
42
+ join(__dirname, '../native/agnt5-sdk-native.darwin-arm64.node'),
43
+ join(__dirname, '../../native/agnt5-sdk-native.linux-x64-gnu.node'),
44
+ join(__dirname, '../native/agnt5-sdk-native.linux-x64-gnu.node'),
45
+ ];
46
+ for (const p of paths) {
47
+ try {
48
+ const native = require(p);
49
+ if (native.logFromTypescript) {
50
+ _nativeLogFn = native.logFromTypescript;
51
+ return _nativeLogFn;
52
+ }
53
+ }
54
+ catch {
55
+ continue;
56
+ }
57
+ }
58
+ }
59
+ catch { /* native not available */ }
60
+ _nativeLogFn = null;
61
+ return null;
62
+ }
63
+ // ─── Console formatting ──────────────────────────────────────────────
64
+ function formatConsole(level, name, message, attrs) {
65
+ const ts = new Date().toISOString();
66
+ const attrStr = attrs && Object.keys(attrs).length > 0
67
+ ? ' ' + Object.entries(attrs).map(([k, v]) => `${k}=${v}`).join(' ')
68
+ : '';
69
+ return `${ts} [${level}] ${name}: ${message}${attrStr}`;
70
+ }
71
+ // ─── ContextLogger ───────────────────────────────────────────────────
72
+ /**
73
+ * Logger with structured context injection.
74
+ *
75
+ * Logs to both console and NAPI/OTLP when available.
76
+ * Extra context (runId, traceId, spanId) is automatically injected.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const logger = new ContextLogger('my-agent', { runId: 'run-123' });
81
+ * logger.info('Processing request', { userId: 'u-456' });
82
+ * ```
83
+ */
84
+ export class ContextLogger {
85
+ constructor(name, context) {
86
+ this._name = name;
87
+ this._runId = context?.runId ?? null;
88
+ this._traceId = context?.traceId ?? null;
89
+ this._spanId = context?.spanId ?? null;
90
+ this._defaultAttrs = context?.attrs ?? {};
91
+ }
92
+ /** Create a child logger with additional context. */
93
+ child(extra) {
94
+ return new ContextLogger(this._name, {
95
+ runId: extra.runId ?? this._runId ?? undefined,
96
+ traceId: extra.traceId ?? this._traceId ?? undefined,
97
+ spanId: extra.spanId ?? this._spanId ?? undefined,
98
+ attrs: { ...this._defaultAttrs, ...extra.attrs },
99
+ });
100
+ }
101
+ log(level, message, meta) {
102
+ if (!shouldLog(level))
103
+ return;
104
+ // Merge meta into string attrs
105
+ const attrs = { ...this._defaultAttrs };
106
+ if (meta) {
107
+ for (const [k, v] of Object.entries(meta)) {
108
+ attrs[k] = typeof v === 'string' ? v : JSON.stringify(v);
109
+ }
110
+ }
111
+ const attrOrNull = Object.keys(attrs).length > 0 ? attrs : null;
112
+ // Try NAPI first
113
+ const nativeLog = getNativeLogFn();
114
+ if (nativeLog) {
115
+ nativeLog(level, `${this._name}: ${message}`, this._runId, this._traceId, this._spanId, attrOrNull);
116
+ }
117
+ // Always log to console
118
+ const formatted = formatConsole(level, this._name, message, attrOrNull ?? undefined);
119
+ switch (level) {
120
+ case 'ERROR':
121
+ console.error(formatted);
122
+ break;
123
+ case 'WARN':
124
+ console.warn(formatted);
125
+ break;
126
+ case 'DEBUG':
127
+ console.debug(formatted);
128
+ break;
129
+ default:
130
+ console.log(formatted);
131
+ break;
132
+ }
133
+ }
134
+ info(message, meta) {
135
+ this.log('INFO', message, meta);
136
+ }
137
+ error(message, meta) {
138
+ this.log('ERROR', message, meta);
139
+ }
140
+ warn(message, meta) {
141
+ this.log('WARN', message, meta);
142
+ }
143
+ debug(message, meta) {
144
+ this.log('DEBUG', message, meta);
145
+ }
146
+ }
147
+ // ─── getLogger ───────────────────────────────────────────────────────
148
+ /**
149
+ * Get a named logger with AGNT5-consistent formatting.
150
+ *
151
+ * Respects AGNT5_DEBUG env var and setLogLevel() calls.
152
+ * Logs to NAPI/OTLP when available, always to console.
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * import { getLogger } from 'agnt5';
157
+ * const logger = getLogger('my-module');
158
+ * logger.info('Ready');
159
+ * logger.debug('Details', { key: 'value' });
160
+ * ```
161
+ */
162
+ export function getLogger(name) {
163
+ return new ContextLogger(name);
164
+ }
165
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAOrC,MAAM,kBAAkB,GAA6B;IACnD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,IAAI,eAAe,GAAa,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;AAC1E,CAAC;AAED,wEAAwE;AAExE,IAAI,YAOyB,CAAC;AAE9B,SAAS,cAAc;IACrB,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,SAAS,EAAE,iDAAiD,CAAC;YAClE,IAAI,CAAC,SAAS,EAAE,8CAA8C,CAAC;YAC/D,IAAI,CAAC,SAAS,EAAE,kDAAkD,CAAC;YACnE,IAAI,CAAC,SAAS,EAAE,+CAA+C,CAAC;SACjE,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC7B,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;oBACxC,OAAO,YAAY,CAAC;gBACtB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACtC,YAAY,GAAG,IAAI,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AAExE,SAAS,aAAa,CAAC,KAAe,EAAE,IAAY,EAAE,OAAe,EAAE,KAA8B;IACnG,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACpE,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,GAAG,EAAE,KAAK,KAAK,KAAK,IAAI,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;AAC1D,CAAC;AAED,wEAAwE;AAExE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IAOxB,YACE,IAAY,EACZ,OAKC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,KAKL;QACC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;YACnC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;YAC9C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS;YACpD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;YACjD,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAA0B;QACtE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAE9B,+BAA+B;QAC/B,MAAM,KAAK,GAA2B,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAChE,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhE,iBAAiB;QACjB,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;QACnC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACtG,CAAC;QAED,wBAAwB;QACxB,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC;QACrF,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAAC,MAAM;YAC9C,KAAK,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAAC,MAAM;YAC5C,KAAK,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAAC,MAAM;YAC9C;gBAAS,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAAC,MAAM;QACzC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA0B;QAC9C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA0B;QAC/C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA0B;QAC9C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA0B;QAC/C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,wEAAwE;AAExE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,98 @@
1
+ import type { JSONSchema } from './types.js';
2
+ import { Tool } from './tool.js';
3
+ import { Agent } from './agent.js';
4
+ export declare class MCPServerError extends Error {
5
+ constructor(message: string);
6
+ }
7
+ export interface PromptMessage {
8
+ role: string;
9
+ content: {
10
+ type: string;
11
+ text?: string;
12
+ [key: string]: any;
13
+ };
14
+ }
15
+ export interface PromptOptions {
16
+ name: string;
17
+ description?: string;
18
+ argumentsSchema?: JSONSchema;
19
+ handler: (args: Record<string, any>) => Promise<{
20
+ messages: PromptMessage[];
21
+ } | PromptMessage[] | string | any>;
22
+ }
23
+ export declare class Prompt {
24
+ readonly name: string;
25
+ readonly description?: string;
26
+ readonly argumentsSchema?: JSONSchema;
27
+ readonly handler: PromptOptions['handler'];
28
+ constructor(options: PromptOptions);
29
+ }
30
+ export interface ResourceOptions {
31
+ uri: string;
32
+ name: string;
33
+ description?: string;
34
+ mimeType?: string;
35
+ read: () => Promise<any>;
36
+ }
37
+ export declare class Resource {
38
+ readonly uri: string;
39
+ readonly name: string;
40
+ readonly description?: string;
41
+ readonly mimeType?: string;
42
+ readonly read: () => Promise<any>;
43
+ constructor(options: ResourceOptions);
44
+ static text(options: ResourceOptions): Resource;
45
+ }
46
+ export interface MCPServerOptions {
47
+ id: string;
48
+ name: string;
49
+ version: string;
50
+ tools?: Record<string, Tool>;
51
+ agents?: Record<string, Agent>;
52
+ workflows?: Record<string, any>;
53
+ prompts?: Record<string, Prompt>;
54
+ resources?: Record<string, Resource>;
55
+ instructions?: string;
56
+ metadata?: Record<string, any>;
57
+ }
58
+ export declare class MCPServer {
59
+ readonly id: string;
60
+ readonly name: string;
61
+ readonly version: string;
62
+ readonly instructions?: string;
63
+ readonly metadata: Record<string, any>;
64
+ private tools;
65
+ private agents;
66
+ private workflows;
67
+ private prompts;
68
+ private resources;
69
+ constructor(options: MCPServerOptions);
70
+ addTool(name: string, tool: Tool): void;
71
+ addAgent(name: string, agent: Agent): void;
72
+ addWorkflow(name: string, workflow: any): void;
73
+ addPrompt(name: string, prompt: Prompt): void;
74
+ addResource(name: string, resource: Resource): void;
75
+ runStdio(): Promise<void>;
76
+ runSSE(_options?: {
77
+ host?: string;
78
+ port?: number;
79
+ }): Promise<void>;
80
+ runHTTP(_options?: {
81
+ host?: string;
82
+ port?: number;
83
+ path?: string;
84
+ }): Promise<void>;
85
+ dispatch(request: Record<string, any>): Promise<Record<string, any>>;
86
+ private tryParseMessage;
87
+ private writeMessage;
88
+ private handleRequest;
89
+ private listTools;
90
+ private callTool;
91
+ private listPrompts;
92
+ private getPrompt;
93
+ private listResources;
94
+ private readResource;
95
+ private wrapTextResult;
96
+ private createContext;
97
+ }
98
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}