@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.
- package/README.md +183 -0
- package/dist/__tests__/integration/helpers.d.ts +41 -0
- package/dist/__tests__/integration/helpers.d.ts.map +1 -0
- package/dist/__tests__/integration/helpers.js +78 -0
- package/dist/__tests__/integration/helpers.js.map +1 -0
- package/dist/agent.d.ts +260 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +493 -0
- package/dist/agent.js.map +1 -0
- package/dist/async-context.d.ts +57 -0
- package/dist/async-context.d.ts.map +1 -0
- package/dist/async-context.js +52 -0
- package/dist/async-context.js.map +1 -0
- package/dist/batch.d.ts +116 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/batch.js +98 -0
- package/dist/batch.js.map +1 -0
- package/dist/chat.d.ts +137 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +278 -0
- package/dist/chat.js.map +1 -0
- package/dist/client.d.ts +394 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +757 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +47 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +244 -0
- package/dist/context.js.map +1 -0
- package/dist/errors.d.ts +148 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +201 -0
- package/dist/errors.js.map +1 -0
- package/dist/eval.d.ts +242 -0
- package/dist/eval.d.ts.map +1 -0
- package/dist/eval.js +452 -0
- package/dist/eval.js.map +1 -0
- package/dist/event-emitter.d.ts +28 -0
- package/dist/event-emitter.d.ts.map +1 -0
- package/dist/event-emitter.js +79 -0
- package/dist/event-emitter.js.map +1 -0
- package/dist/events.d.ts +285 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +256 -0
- package/dist/events.js.map +1 -0
- package/dist/function.d.ts +61 -0
- package/dist/function.d.ts.map +1 -0
- package/dist/function.js +78 -0
- package/dist/function.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +80 -0
- package/dist/index.js.map +1 -0
- package/dist/lm.d.ts +301 -0
- package/dist/lm.d.ts.map +1 -0
- package/dist/lm.js +283 -0
- package/dist/lm.js.map +1 -0
- package/dist/logging.d.ts +68 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +165 -0
- package/dist/logging.js.map +1 -0
- package/dist/mcp-server.d.ts +98 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +307 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +73 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +224 -0
- package/dist/mcp.js.map +1 -0
- package/dist/memory.d.ts +234 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +609 -0
- package/dist/memory.js.map +1 -0
- package/dist/platform-adapters.d.ts +121 -0
- package/dist/platform-adapters.d.ts.map +1 -0
- package/dist/platform-adapters.js +174 -0
- package/dist/platform-adapters.js.map +1 -0
- package/dist/platform-context.d.ts +55 -0
- package/dist/platform-context.d.ts.map +1 -0
- package/dist/platform-context.js +196 -0
- package/dist/platform-context.js.map +1 -0
- package/dist/retry-utils.d.ts +169 -0
- package/dist/retry-utils.d.ts.map +1 -0
- package/dist/retry-utils.js +304 -0
- package/dist/retry-utils.js.map +1 -0
- package/dist/sandbox.d.ts +103 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +168 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/schema-utils.d.ts +250 -0
- package/dist/schema-utils.d.ts.map +1 -0
- package/dist/schema-utils.js +444 -0
- package/dist/schema-utils.js.map +1 -0
- package/dist/scorer.d.ts +130 -0
- package/dist/scorer.d.ts.map +1 -0
- package/dist/scorer.js +211 -0
- package/dist/scorer.js.map +1 -0
- package/dist/state.d.ts +92 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +151 -0
- package/dist/state.js.map +1 -0
- package/dist/tool.d.ts +120 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +215 -0
- package/dist/tool.js.map +1 -0
- package/dist/tracing.d.ts +82 -0
- package/dist/tracing.d.ts.map +1 -0
- package/dist/tracing.js +206 -0
- package/dist/tracing.js.map +1 -0
- package/dist/types.d.ts +139 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/worker.d.ts +111 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +944 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow-utils.d.ts +257 -0
- package/dist/workflow-utils.d.ts.map +1 -0
- package/dist/workflow-utils.js +370 -0
- package/dist/workflow-utils.js.map +1 -0
- package/dist/workflow.d.ts +78 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +138 -0
- package/dist/workflow.js.map +1 -0
- 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"}
|
package/dist/logging.js
ADDED
|
@@ -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":"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"}
|
|
@@ -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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"}
|