@xynehq/jaf 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +596 -0
- package/dist/a2a/agent-card.d.ts +28 -0
- package/dist/a2a/agent-card.d.ts.map +1 -0
- package/dist/a2a/agent-card.js +250 -0
- package/dist/a2a/agent-card.js.map +1 -0
- package/dist/a2a/agent.d.ts +38 -0
- package/dist/a2a/agent.d.ts.map +1 -0
- package/dist/a2a/agent.js +223 -0
- package/dist/a2a/agent.js.map +1 -0
- package/dist/a2a/client.d.ts +35 -0
- package/dist/a2a/client.d.ts.map +1 -0
- package/dist/a2a/client.js +337 -0
- package/dist/a2a/client.js.map +1 -0
- package/dist/a2a/examples/client-example.d.ts +104 -0
- package/dist/a2a/examples/client-example.d.ts.map +1 -0
- package/dist/a2a/examples/client-example.js +232 -0
- package/dist/a2a/examples/client-example.js.map +1 -0
- package/dist/a2a/examples/server-example.d.ts +9 -0
- package/dist/a2a/examples/server-example.d.ts.map +1 -0
- package/dist/a2a/examples/server-example.js +209 -0
- package/dist/a2a/examples/server-example.js.map +1 -0
- package/dist/a2a/examples/weather-agent.d.ts +8 -0
- package/dist/a2a/examples/weather-agent.d.ts.map +1 -0
- package/dist/a2a/examples/weather-agent.js +232 -0
- package/dist/a2a/examples/weather-agent.js.map +1 -0
- package/dist/a2a/executor.d.ts +43 -0
- package/dist/a2a/executor.d.ts.map +1 -0
- package/dist/a2a/executor.js +507 -0
- package/dist/a2a/executor.js.map +1 -0
- package/dist/a2a/index.d.ts +378 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +72 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/memory/cleanup.d.ts +58 -0
- package/dist/a2a/memory/cleanup.d.ts.map +1 -0
- package/dist/a2a/memory/cleanup.js +281 -0
- package/dist/a2a/memory/cleanup.js.map +1 -0
- package/dist/a2a/memory/factory.d.ts +38 -0
- package/dist/a2a/memory/factory.d.ts.map +1 -0
- package/dist/a2a/memory/factory.js +369 -0
- package/dist/a2a/memory/factory.js.map +1 -0
- package/dist/a2a/memory/index.d.ts +13 -0
- package/dist/a2a/memory/index.d.ts.map +1 -0
- package/dist/a2a/memory/index.js +16 -0
- package/dist/a2a/memory/index.js.map +1 -0
- package/dist/a2a/memory/providers/in-memory.d.ts +10 -0
- package/dist/a2a/memory/providers/in-memory.d.ts.map +1 -0
- package/dist/a2a/memory/providers/in-memory.js +539 -0
- package/dist/a2a/memory/providers/in-memory.js.map +1 -0
- package/dist/a2a/memory/providers/postgres.d.ts +10 -0
- package/dist/a2a/memory/providers/postgres.d.ts.map +1 -0
- package/dist/a2a/memory/providers/postgres.js +404 -0
- package/dist/a2a/memory/providers/postgres.js.map +1 -0
- package/dist/a2a/memory/providers/redis.d.ts +10 -0
- package/dist/a2a/memory/providers/redis.d.ts.map +1 -0
- package/dist/a2a/memory/providers/redis.js +435 -0
- package/dist/a2a/memory/providers/redis.js.map +1 -0
- package/dist/a2a/memory/serialization.d.ts +53 -0
- package/dist/a2a/memory/serialization.d.ts.map +1 -0
- package/dist/a2a/memory/serialization.js +233 -0
- package/dist/a2a/memory/serialization.js.map +1 -0
- package/dist/a2a/memory/types.d.ts +395 -0
- package/dist/a2a/memory/types.d.ts.map +1 -0
- package/dist/a2a/memory/types.js +85 -0
- package/dist/a2a/memory/types.js.map +1 -0
- package/dist/a2a/protocol.d.ts +38 -0
- package/dist/a2a/protocol.d.ts.map +1 -0
- package/dist/a2a/protocol.js +211 -0
- package/dist/a2a/protocol.js.map +1 -0
- package/dist/a2a/server.d.ts +343 -0
- package/dist/a2a/server.d.ts.map +1 -0
- package/dist/a2a/server.js +362 -0
- package/dist/a2a/server.js.map +1 -0
- package/dist/a2a/types.d.ts +730 -0
- package/dist/a2a/types.d.ts.map +1 -0
- package/dist/a2a/types.js +73 -0
- package/dist/a2a/types.js.map +1 -0
- package/dist/adk/agents/index.d.ts +48 -0
- package/dist/adk/agents/index.d.ts.map +1 -0
- package/dist/adk/agents/index.js +277 -0
- package/dist/adk/agents/index.js.map +1 -0
- package/dist/adk/artifacts/index.d.ts +62 -0
- package/dist/adk/artifacts/index.d.ts.map +1 -0
- package/dist/adk/artifacts/index.js +394 -0
- package/dist/adk/artifacts/index.js.map +1 -0
- package/dist/adk/config/llm-config.d.ts +75 -0
- package/dist/adk/config/llm-config.d.ts.map +1 -0
- package/dist/adk/config/llm-config.js +422 -0
- package/dist/adk/config/llm-config.js.map +1 -0
- package/dist/adk/content/index.d.ts +58 -0
- package/dist/adk/content/index.d.ts.map +1 -0
- package/dist/adk/content/index.js +220 -0
- package/dist/adk/content/index.js.map +1 -0
- package/dist/adk/examples/advanced-features.d.ts +22 -0
- package/dist/adk/examples/advanced-features.d.ts.map +1 -0
- package/dist/adk/examples/advanced-features.js +380 -0
- package/dist/adk/examples/advanced-features.js.map +1 -0
- package/dist/adk/examples/basic-agent.d.ts +28 -0
- package/dist/adk/examples/basic-agent.d.ts.map +1 -0
- package/dist/adk/examples/basic-agent.js +207 -0
- package/dist/adk/examples/basic-agent.js.map +1 -0
- package/dist/adk/examples/multi-agent.d.ts +24 -0
- package/dist/adk/examples/multi-agent.d.ts.map +1 -0
- package/dist/adk/examples/multi-agent.js +321 -0
- package/dist/adk/examples/multi-agent.js.map +1 -0
- package/dist/adk/examples/streaming-example.d.ts +9 -0
- package/dist/adk/examples/streaming-example.d.ts.map +1 -0
- package/dist/adk/examples/streaming-example.js +193 -0
- package/dist/adk/examples/streaming-example.js.map +1 -0
- package/dist/adk/index.d.ts +65 -0
- package/dist/adk/index.d.ts.map +1 -0
- package/dist/adk/index.js +251 -0
- package/dist/adk/index.js.map +1 -0
- package/dist/adk/models.d.ts +338 -0
- package/dist/adk/models.d.ts.map +1 -0
- package/dist/adk/models.js +466 -0
- package/dist/adk/models.js.map +1 -0
- package/dist/adk/providers/error-handler.d.ts +100 -0
- package/dist/adk/providers/error-handler.d.ts.map +1 -0
- package/dist/adk/providers/error-handler.js +289 -0
- package/dist/adk/providers/error-handler.js.map +1 -0
- package/dist/adk/providers/llm-service.d.ts +41 -0
- package/dist/adk/providers/llm-service.d.ts.map +1 -0
- package/dist/adk/providers/llm-service.js +520 -0
- package/dist/adk/providers/llm-service.js.map +1 -0
- package/dist/adk/providers/type-converters.d.ts +34 -0
- package/dist/adk/providers/type-converters.d.ts.map +1 -0
- package/dist/adk/providers/type-converters.js +436 -0
- package/dist/adk/providers/type-converters.js.map +1 -0
- package/dist/adk/runners/index.d.ts +33 -0
- package/dist/adk/runners/index.d.ts.map +1 -0
- package/dist/adk/runners/index.js +466 -0
- package/dist/adk/runners/index.js.map +1 -0
- package/dist/adk/schemas/index.d.ts +85 -0
- package/dist/adk/schemas/index.d.ts.map +1 -0
- package/dist/adk/schemas/index.js +363 -0
- package/dist/adk/schemas/index.js.map +1 -0
- package/dist/adk/sessions/examples/session-provider-usage.d.ts +10 -0
- package/dist/adk/sessions/examples/session-provider-usage.d.ts.map +1 -0
- package/dist/adk/sessions/examples/session-provider-usage.js +145 -0
- package/dist/adk/sessions/examples/session-provider-usage.js.map +1 -0
- package/dist/adk/sessions/index.d.ts +53 -0
- package/dist/adk/sessions/index.d.ts.map +1 -0
- package/dist/adk/sessions/index.js +451 -0
- package/dist/adk/sessions/index.js.map +1 -0
- package/dist/adk/sessions/postgres-provider.d.ts +22 -0
- package/dist/adk/sessions/postgres-provider.d.ts.map +1 -0
- package/dist/adk/sessions/postgres-provider.js +293 -0
- package/dist/adk/sessions/postgres-provider.js.map +1 -0
- package/dist/adk/sessions/redis-provider.d.ts +19 -0
- package/dist/adk/sessions/redis-provider.d.ts.map +1 -0
- package/dist/adk/sessions/redis-provider.js +237 -0
- package/dist/adk/sessions/redis-provider.js.map +1 -0
- package/dist/adk/streaming/index.d.ts +76 -0
- package/dist/adk/streaming/index.d.ts.map +1 -0
- package/dist/adk/streaming/index.js +419 -0
- package/dist/adk/streaming/index.js.map +1 -0
- package/dist/adk/tools/index.d.ts +27 -0
- package/dist/adk/tools/index.d.ts.map +1 -0
- package/dist/adk/tools/index.js +506 -0
- package/dist/adk/tools/index.js.map +1 -0
- package/dist/adk/types.d.ts +351 -0
- package/dist/adk/types.d.ts.map +1 -0
- package/dist/adk/types.js +107 -0
- package/dist/adk/types.js.map +1 -0
- package/dist/core/engine.d.ts +3 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +438 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/errors.d.ts +8 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +84 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/tool-results.d.ts +57 -0
- package/dist/core/tool-results.d.ts.map +1 -0
- package/dist/core/tool-results.js +133 -0
- package/dist/core/tool-results.js.map +1 -0
- package/dist/core/tracing.d.ts +32 -0
- package/dist/core/tracing.d.ts.map +1 -0
- package/dist/core/tracing.js +132 -0
- package/dist/core/tracing.js.map +1 -0
- package/dist/core/types.d.ts +165 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/demo/agents.d.ts +23 -0
- package/dist/demo/agents.d.ts.map +1 -0
- package/dist/demo/agents.js +69 -0
- package/dist/demo/agents.js.map +1 -0
- package/dist/demo/index.d.ts +2 -0
- package/dist/demo/index.d.ts.map +1 -0
- package/dist/demo/index.js +250 -0
- package/dist/demo/index.js.map +1 -0
- package/dist/demo/mock-provider.d.ts +22 -0
- package/dist/demo/mock-provider.d.ts.map +1 -0
- package/dist/demo/mock-provider.js +138 -0
- package/dist/demo/mock-provider.js.map +1 -0
- package/dist/demo/tools.d.ts +14 -0
- package/dist/demo/tools.d.ts.map +1 -0
- package/dist/demo/tools.js +115 -0
- package/dist/demo/tools.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/factory.d.ts +22 -0
- package/dist/memory/factory.d.ts.map +1 -0
- package/dist/memory/factory.js +88 -0
- package/dist/memory/factory.js.map +1 -0
- package/dist/memory/providers/in-memory.d.ts +7 -0
- package/dist/memory/providers/in-memory.d.ts.map +1 -0
- package/dist/memory/providers/in-memory.js +287 -0
- package/dist/memory/providers/in-memory.js.map +1 -0
- package/dist/memory/providers/postgres.d.ts +15 -0
- package/dist/memory/providers/postgres.d.ts.map +1 -0
- package/dist/memory/providers/postgres.js +495 -0
- package/dist/memory/providers/postgres.js.map +1 -0
- package/dist/memory/providers/redis.d.ts +18 -0
- package/dist/memory/providers/redis.d.ts.map +1 -0
- package/dist/memory/providers/redis.js +354 -0
- package/dist/memory/providers/redis.js.map +1 -0
- package/dist/memory/types.d.ts +296 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +93 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/policies/handoff.d.ts +16 -0
- package/dist/policies/handoff.d.ts.map +1 -0
- package/dist/policies/handoff.js +20 -0
- package/dist/policies/handoff.js.map +1 -0
- package/dist/policies/validation.d.ts +14 -0
- package/dist/policies/validation.d.ts.map +1 -0
- package/dist/policies/validation.js +92 -0
- package/dist/policies/validation.js.map +1 -0
- package/dist/providers/mcp.d.ts +17 -0
- package/dist/providers/mcp.d.ts.map +1 -0
- package/dist/providers/mcp.js +111 -0
- package/dist/providers/mcp.js.map +1 -0
- package/dist/providers/model.d.ts +3 -0
- package/dist/providers/model.d.ts.map +1 -0
- package/dist/providers/model.js +113 -0
- package/dist/providers/model.js.map +1 -0
- package/dist/server/index.d.ts +35 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +66 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/server.d.ts +12 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +394 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/types.d.ts +456 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +75 -0
- package/dist/server/types.js.map +1 -0
- package/dist/test-utils/db-setup.d.ts +34 -0
- package/dist/test-utils/db-setup.d.ts.map +1 -0
- package/dist/test-utils/db-setup.js +149 -0
- package/dist/test-utils/db-setup.js.map +1 -0
- package/dist/utils/logger.d.ts +63 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +199 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/safe-math.d.ts +31 -0
- package/dist/utils/safe-math.d.ts.map +1 -0
- package/dist/utils/safe-math.js +86 -0
- package/dist/utils/safe-math.js.map +1 -0
- package/dist/visualization/example.d.ts +9 -0
- package/dist/visualization/example.d.ts.map +1 -0
- package/dist/visualization/example.js +236 -0
- package/dist/visualization/example.js.map +1 -0
- package/dist/visualization/graphviz.d.ts +42 -0
- package/dist/visualization/graphviz.d.ts.map +1 -0
- package/dist/visualization/graphviz.js +403 -0
- package/dist/visualization/graphviz.js.map +1 -0
- package/dist/visualization/index.d.ts +10 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +12 -0
- package/dist/visualization/index.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// Common error codes
|
|
2
|
+
export const ToolErrorCodes = {
|
|
3
|
+
// Validation errors
|
|
4
|
+
INVALID_INPUT: 'INVALID_INPUT',
|
|
5
|
+
MISSING_REQUIRED_FIELD: 'MISSING_REQUIRED_FIELD',
|
|
6
|
+
INVALID_FORMAT: 'INVALID_FORMAT',
|
|
7
|
+
// Permission errors
|
|
8
|
+
PERMISSION_DENIED: 'PERMISSION_DENIED',
|
|
9
|
+
INSUFFICIENT_PERMISSIONS: 'INSUFFICIENT_PERMISSIONS',
|
|
10
|
+
// Resource errors
|
|
11
|
+
NOT_FOUND: 'NOT_FOUND',
|
|
12
|
+
RESOURCE_UNAVAILABLE: 'RESOURCE_UNAVAILABLE',
|
|
13
|
+
// Execution errors
|
|
14
|
+
EXECUTION_FAILED: 'EXECUTION_FAILED',
|
|
15
|
+
TIMEOUT: 'TIMEOUT',
|
|
16
|
+
EXTERNAL_SERVICE_ERROR: 'EXTERNAL_SERVICE_ERROR',
|
|
17
|
+
// Generic
|
|
18
|
+
UNKNOWN_ERROR: 'UNKNOWN_ERROR'
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Helper functions for creating standardized tool results
|
|
22
|
+
*/
|
|
23
|
+
export class ToolResponse {
|
|
24
|
+
static success(data, metadata) {
|
|
25
|
+
return {
|
|
26
|
+
status: 'success',
|
|
27
|
+
data,
|
|
28
|
+
metadata
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
static error(code, message, details, metadata) {
|
|
32
|
+
return {
|
|
33
|
+
status: 'error',
|
|
34
|
+
error: {
|
|
35
|
+
code,
|
|
36
|
+
message,
|
|
37
|
+
details
|
|
38
|
+
},
|
|
39
|
+
metadata
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
static validationError(message, details, metadata) {
|
|
43
|
+
return {
|
|
44
|
+
status: 'validation_error',
|
|
45
|
+
error: {
|
|
46
|
+
code: ToolErrorCodes.INVALID_INPUT,
|
|
47
|
+
message,
|
|
48
|
+
details
|
|
49
|
+
},
|
|
50
|
+
metadata
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
static permissionDenied(message, requiredPermissions, metadata) {
|
|
54
|
+
return {
|
|
55
|
+
status: 'permission_denied',
|
|
56
|
+
error: {
|
|
57
|
+
code: ToolErrorCodes.PERMISSION_DENIED,
|
|
58
|
+
message,
|
|
59
|
+
details: { requiredPermissions }
|
|
60
|
+
},
|
|
61
|
+
metadata
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
static notFound(resource, identifier, metadata) {
|
|
65
|
+
return {
|
|
66
|
+
status: 'not_found',
|
|
67
|
+
error: {
|
|
68
|
+
code: ToolErrorCodes.NOT_FOUND,
|
|
69
|
+
message: `${resource} not found${identifier ? `: ${identifier}` : ''}`,
|
|
70
|
+
details: { resource, identifier }
|
|
71
|
+
},
|
|
72
|
+
metadata
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Tool execution wrapper that provides standardized error handling
|
|
78
|
+
*/
|
|
79
|
+
export function withErrorHandling(toolName, executor) {
|
|
80
|
+
return async (args, context) => {
|
|
81
|
+
const startTime = Date.now();
|
|
82
|
+
try {
|
|
83
|
+
console.log(`[TOOL:${toolName}] Starting execution with args:`, args);
|
|
84
|
+
const result = await executor(args, context);
|
|
85
|
+
const executionTime = Date.now() - startTime;
|
|
86
|
+
console.log(`[TOOL:${toolName}] Completed successfully in ${executionTime}ms`);
|
|
87
|
+
return ToolResponse.success(result, {
|
|
88
|
+
executionTimeMs: executionTime,
|
|
89
|
+
toolName
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
const executionTime = Date.now() - startTime;
|
|
94
|
+
console.error(`[TOOL:${toolName}] Failed after ${executionTime}ms:`, error);
|
|
95
|
+
if (error instanceof Error) {
|
|
96
|
+
return ToolResponse.error(ToolErrorCodes.EXECUTION_FAILED, error.message, { stack: error.stack }, { executionTimeMs: executionTime, toolName });
|
|
97
|
+
}
|
|
98
|
+
return ToolResponse.error(ToolErrorCodes.UNKNOWN_ERROR, 'Unknown error occurred', error, { executionTimeMs: executionTime, toolName });
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Permission checking helper
|
|
104
|
+
*/
|
|
105
|
+
export function requirePermissions(requiredPermissions) {
|
|
106
|
+
return (context) => {
|
|
107
|
+
const userPermissions = context.permissions || [];
|
|
108
|
+
const missingPermissions = requiredPermissions.filter(perm => !userPermissions.includes(perm));
|
|
109
|
+
if (missingPermissions.length > 0) {
|
|
110
|
+
return ToolResponse.permissionDenied(`Missing required permissions: ${missingPermissions.join(', ')}`, requiredPermissions);
|
|
111
|
+
}
|
|
112
|
+
return null; // No error
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Convert ToolResult to string for backward compatibility with existing tools
|
|
117
|
+
*/
|
|
118
|
+
export function toolResultToString(result) {
|
|
119
|
+
if (result.status === 'success') {
|
|
120
|
+
return typeof result.data === 'string' ? result.data : JSON.stringify(result.data);
|
|
121
|
+
}
|
|
122
|
+
// For errors, return a structured error message
|
|
123
|
+
const error = result.error;
|
|
124
|
+
const errorObj = {
|
|
125
|
+
error: result.status,
|
|
126
|
+
code: error.code,
|
|
127
|
+
message: error.message,
|
|
128
|
+
...(error.details && { details: error.details }),
|
|
129
|
+
...(result.metadata && { metadata: result.metadata })
|
|
130
|
+
};
|
|
131
|
+
return JSON.stringify(errorObj, null, 2);
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=tool-results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-results.js","sourceRoot":"","sources":["../../src/core/tool-results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TraceEvent, TraceId } from './types.js';
|
|
2
|
+
export interface TraceCollector {
|
|
3
|
+
collect(event: TraceEvent): void;
|
|
4
|
+
getTrace(traceId: TraceId): TraceEvent[];
|
|
5
|
+
getAllTraces(): Map<TraceId, TraceEvent[]>;
|
|
6
|
+
clear(traceId?: TraceId): void;
|
|
7
|
+
}
|
|
8
|
+
export declare class InMemoryTraceCollector implements TraceCollector {
|
|
9
|
+
private traces;
|
|
10
|
+
collect(event: TraceEvent): void;
|
|
11
|
+
getTrace(traceId: TraceId): TraceEvent[];
|
|
12
|
+
getAllTraces(): Map<TraceId, TraceEvent[]>;
|
|
13
|
+
clear(traceId?: TraceId): void;
|
|
14
|
+
}
|
|
15
|
+
export declare class ConsoleTraceCollector implements TraceCollector {
|
|
16
|
+
private inMemory;
|
|
17
|
+
collect(event: TraceEvent): void;
|
|
18
|
+
getTrace(traceId: TraceId): TraceEvent[];
|
|
19
|
+
getAllTraces(): Map<TraceId, TraceEvent[]>;
|
|
20
|
+
clear(traceId?: TraceId): void;
|
|
21
|
+
}
|
|
22
|
+
export declare class FileTraceCollector implements TraceCollector {
|
|
23
|
+
private filePath;
|
|
24
|
+
private inMemory;
|
|
25
|
+
constructor(filePath: string);
|
|
26
|
+
collect(event: TraceEvent): void;
|
|
27
|
+
getTrace(traceId: TraceId): TraceEvent[];
|
|
28
|
+
getAllTraces(): Map<TraceId, TraceEvent[]>;
|
|
29
|
+
clear(traceId?: TraceId): void;
|
|
30
|
+
}
|
|
31
|
+
export declare function createCompositeTraceCollector(...collectors: TraceCollector[]): TraceCollector;
|
|
32
|
+
//# sourceMappingURL=tracing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/core/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAS,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,CAAC;IACzC,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,MAAM,CAAoC;IAElD,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAmBhC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAIxC,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAI1C,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;CAO/B;AAED,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAgC;IAEhD,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAyChC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAIxC,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAI1C,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;CAG/B;AAED,qBAAa,kBAAmB,YAAW,cAAc;IAG3C,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,QAAQ,CAAgC;gBAE5B,QAAQ,EAAE,MAAM;IAEpC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAiBhC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAIxC,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAI1C,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;CAG/B;AAED,wBAAgB,6BAA6B,CAAC,GAAG,UAAU,EAAE,cAAc,EAAE,GAAG,cAAc,CAkB7F"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export class InMemoryTraceCollector {
|
|
2
|
+
traces = new Map();
|
|
3
|
+
collect(event) {
|
|
4
|
+
let traceId = null;
|
|
5
|
+
if ('traceId' in event.data) {
|
|
6
|
+
traceId = event.data.traceId;
|
|
7
|
+
}
|
|
8
|
+
else if ('runId' in event.data) {
|
|
9
|
+
traceId = event.data.runId;
|
|
10
|
+
}
|
|
11
|
+
if (!traceId)
|
|
12
|
+
return;
|
|
13
|
+
if (!this.traces.has(traceId)) {
|
|
14
|
+
this.traces.set(traceId, []);
|
|
15
|
+
}
|
|
16
|
+
const events = this.traces.get(traceId);
|
|
17
|
+
events.push(event);
|
|
18
|
+
}
|
|
19
|
+
getTrace(traceId) {
|
|
20
|
+
return this.traces.get(traceId) || [];
|
|
21
|
+
}
|
|
22
|
+
getAllTraces() {
|
|
23
|
+
return new Map(this.traces);
|
|
24
|
+
}
|
|
25
|
+
clear(traceId) {
|
|
26
|
+
if (traceId) {
|
|
27
|
+
this.traces.delete(traceId);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.traces.clear();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class ConsoleTraceCollector {
|
|
35
|
+
inMemory = new InMemoryTraceCollector();
|
|
36
|
+
collect(event) {
|
|
37
|
+
this.inMemory.collect(event);
|
|
38
|
+
const timestamp = new Date().toISOString();
|
|
39
|
+
const prefix = `[${timestamp}] JAF:${event.type}`;
|
|
40
|
+
switch (event.type) {
|
|
41
|
+
case 'run_start':
|
|
42
|
+
console.log(`${prefix} Starting run ${event.data.runId} (trace: ${event.data.traceId})`);
|
|
43
|
+
break;
|
|
44
|
+
case 'llm_call_start':
|
|
45
|
+
console.log(`${prefix} Calling ${event.data.model} for agent ${event.data.agentName}`);
|
|
46
|
+
break;
|
|
47
|
+
case 'llm_call_end': {
|
|
48
|
+
const choice = event.data.choice;
|
|
49
|
+
const hasTools = choice.message?.tool_calls?.length > 0;
|
|
50
|
+
const hasContent = !!choice.message?.content;
|
|
51
|
+
console.log(`${prefix} LLM responded with ${hasTools ? 'tool calls' : hasContent ? 'content' : 'empty response'}`);
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case 'tool_call_start':
|
|
55
|
+
console.log(`${prefix} Executing tool ${event.data.toolName} with args:`, event.data.args);
|
|
56
|
+
break;
|
|
57
|
+
case 'tool_call_end':
|
|
58
|
+
console.log(`${prefix} Tool ${event.data.toolName} completed`);
|
|
59
|
+
break;
|
|
60
|
+
case 'handoff':
|
|
61
|
+
console.log(`${prefix} Agent handoff: ${event.data.from} → ${event.data.to}`);
|
|
62
|
+
break;
|
|
63
|
+
case 'run_end': {
|
|
64
|
+
const outcome = event.data.outcome;
|
|
65
|
+
if (outcome.status === 'completed') {
|
|
66
|
+
console.log(`${prefix} Run completed successfully`);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.error(`${prefix} Run failed:`, outcome.error._tag, outcome.error);
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
getTrace(traceId) {
|
|
76
|
+
return this.inMemory.getTrace(traceId);
|
|
77
|
+
}
|
|
78
|
+
getAllTraces() {
|
|
79
|
+
return this.inMemory.getAllTraces();
|
|
80
|
+
}
|
|
81
|
+
clear(traceId) {
|
|
82
|
+
this.inMemory.clear(traceId);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export class FileTraceCollector {
|
|
86
|
+
filePath;
|
|
87
|
+
inMemory = new InMemoryTraceCollector();
|
|
88
|
+
constructor(filePath) {
|
|
89
|
+
this.filePath = filePath;
|
|
90
|
+
}
|
|
91
|
+
collect(event) {
|
|
92
|
+
this.inMemory.collect(event);
|
|
93
|
+
const logEntry = {
|
|
94
|
+
timestamp: new Date().toISOString(),
|
|
95
|
+
...event
|
|
96
|
+
};
|
|
97
|
+
try {
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
99
|
+
const fs = require('fs');
|
|
100
|
+
fs.appendFileSync(this.filePath, JSON.stringify(logEntry) + '\n');
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error('Failed to write trace to file:', error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
getTrace(traceId) {
|
|
107
|
+
return this.inMemory.getTrace(traceId);
|
|
108
|
+
}
|
|
109
|
+
getAllTraces() {
|
|
110
|
+
return this.inMemory.getAllTraces();
|
|
111
|
+
}
|
|
112
|
+
clear(traceId) {
|
|
113
|
+
this.inMemory.clear(traceId);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export function createCompositeTraceCollector(...collectors) {
|
|
117
|
+
return {
|
|
118
|
+
collect(event) {
|
|
119
|
+
collectors.forEach(c => c.collect(event));
|
|
120
|
+
},
|
|
121
|
+
getTrace(traceId) {
|
|
122
|
+
return collectors[0]?.getTrace(traceId) || [];
|
|
123
|
+
},
|
|
124
|
+
getAllTraces() {
|
|
125
|
+
return collectors[0]?.getAllTraces() || new Map();
|
|
126
|
+
},
|
|
127
|
+
clear(traceId) {
|
|
128
|
+
collectors.forEach(c => c.clear(traceId));
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/core/tracing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MemoryConfig } from '../memory/types';
|
|
3
|
+
export type TraceId = string & {
|
|
4
|
+
readonly _brand: 'TraceId';
|
|
5
|
+
};
|
|
6
|
+
export type RunId = string & {
|
|
7
|
+
readonly _brand: 'RunId';
|
|
8
|
+
};
|
|
9
|
+
export declare const createTraceId: (id: string) => TraceId;
|
|
10
|
+
export declare const createRunId: (id: string) => RunId;
|
|
11
|
+
export type ValidationResult = {
|
|
12
|
+
readonly isValid: true;
|
|
13
|
+
} | {
|
|
14
|
+
readonly isValid: false;
|
|
15
|
+
readonly errorMessage: string;
|
|
16
|
+
};
|
|
17
|
+
export type Message = {
|
|
18
|
+
readonly role: 'user' | 'assistant' | 'tool';
|
|
19
|
+
readonly content: string;
|
|
20
|
+
readonly tool_call_id?: string;
|
|
21
|
+
readonly tool_calls?: readonly {
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly type: 'function';
|
|
24
|
+
readonly function: {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly arguments: string;
|
|
27
|
+
};
|
|
28
|
+
}[];
|
|
29
|
+
};
|
|
30
|
+
export type ModelConfig = {
|
|
31
|
+
readonly name?: string;
|
|
32
|
+
readonly temperature?: number;
|
|
33
|
+
readonly maxTokens?: number;
|
|
34
|
+
};
|
|
35
|
+
export type Tool<A, Ctx> = {
|
|
36
|
+
readonly schema: {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly description: string;
|
|
39
|
+
readonly parameters: z.ZodType<A>;
|
|
40
|
+
};
|
|
41
|
+
readonly execute: (args: A, context: Readonly<Ctx>) => Promise<string | import('./tool-results').ToolResult>;
|
|
42
|
+
};
|
|
43
|
+
export type Agent<Ctx, Out> = {
|
|
44
|
+
readonly name: string;
|
|
45
|
+
readonly instructions: (state: Readonly<RunState<Ctx>>) => string;
|
|
46
|
+
readonly tools?: readonly Tool<any, Ctx>[];
|
|
47
|
+
readonly outputCodec?: z.ZodType<Out>;
|
|
48
|
+
readonly handoffs?: readonly string[];
|
|
49
|
+
readonly modelConfig?: ModelConfig;
|
|
50
|
+
};
|
|
51
|
+
export type Guardrail<I> = (input: I) => Promise<ValidationResult> | ValidationResult;
|
|
52
|
+
export type RunState<Ctx> = {
|
|
53
|
+
readonly runId: RunId;
|
|
54
|
+
readonly traceId: TraceId;
|
|
55
|
+
readonly messages: readonly Message[];
|
|
56
|
+
readonly currentAgentName: string;
|
|
57
|
+
readonly context: Readonly<Ctx>;
|
|
58
|
+
readonly turnCount: number;
|
|
59
|
+
};
|
|
60
|
+
export type JAFError = {
|
|
61
|
+
readonly _tag: "MaxTurnsExceeded";
|
|
62
|
+
readonly turns: number;
|
|
63
|
+
} | {
|
|
64
|
+
readonly _tag: "ModelBehaviorError";
|
|
65
|
+
readonly detail: string;
|
|
66
|
+
} | {
|
|
67
|
+
readonly _tag: "DecodeError";
|
|
68
|
+
readonly errors: z.ZodIssue[];
|
|
69
|
+
} | {
|
|
70
|
+
readonly _tag: "InputGuardrailTripwire";
|
|
71
|
+
readonly reason: string;
|
|
72
|
+
} | {
|
|
73
|
+
readonly _tag: "OutputGuardrailTripwire";
|
|
74
|
+
readonly reason: string;
|
|
75
|
+
} | {
|
|
76
|
+
readonly _tag: "ToolCallError";
|
|
77
|
+
readonly tool: string;
|
|
78
|
+
readonly detail: string;
|
|
79
|
+
} | {
|
|
80
|
+
readonly _tag: "HandoffError";
|
|
81
|
+
readonly detail: string;
|
|
82
|
+
} | {
|
|
83
|
+
readonly _tag: "AgentNotFound";
|
|
84
|
+
readonly agentName: string;
|
|
85
|
+
};
|
|
86
|
+
export type RunResult<Out> = {
|
|
87
|
+
readonly finalState: RunState<any>;
|
|
88
|
+
readonly outcome: {
|
|
89
|
+
readonly status: 'completed';
|
|
90
|
+
readonly output: Out;
|
|
91
|
+
} | {
|
|
92
|
+
readonly status: 'error';
|
|
93
|
+
readonly error: JAFError;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
export type TraceEvent = {
|
|
97
|
+
type: 'run_start';
|
|
98
|
+
data: {
|
|
99
|
+
runId: RunId;
|
|
100
|
+
traceId: TraceId;
|
|
101
|
+
};
|
|
102
|
+
} | {
|
|
103
|
+
type: 'llm_call_start';
|
|
104
|
+
data: {
|
|
105
|
+
agentName: string;
|
|
106
|
+
model: string;
|
|
107
|
+
};
|
|
108
|
+
} | {
|
|
109
|
+
type: 'llm_call_end';
|
|
110
|
+
data: {
|
|
111
|
+
choice: any;
|
|
112
|
+
};
|
|
113
|
+
} | {
|
|
114
|
+
type: 'tool_call_start';
|
|
115
|
+
data: {
|
|
116
|
+
toolName: string;
|
|
117
|
+
args: any;
|
|
118
|
+
};
|
|
119
|
+
} | {
|
|
120
|
+
type: 'tool_call_end';
|
|
121
|
+
data: {
|
|
122
|
+
toolName: string;
|
|
123
|
+
result: string;
|
|
124
|
+
toolResult?: any;
|
|
125
|
+
status?: string;
|
|
126
|
+
};
|
|
127
|
+
} | {
|
|
128
|
+
type: 'handoff';
|
|
129
|
+
data: {
|
|
130
|
+
from: string;
|
|
131
|
+
to: string;
|
|
132
|
+
};
|
|
133
|
+
} | {
|
|
134
|
+
type: 'run_end';
|
|
135
|
+
data: {
|
|
136
|
+
outcome: RunResult<any>['outcome'];
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
export interface ModelProvider<Ctx> {
|
|
140
|
+
getCompletion: (state: Readonly<RunState<Ctx>>, agent: Readonly<Agent<Ctx, any>>, config: Readonly<RunConfig<Ctx>>) => Promise<{
|
|
141
|
+
message?: {
|
|
142
|
+
content?: string | null;
|
|
143
|
+
tool_calls?: Array<{
|
|
144
|
+
id: string;
|
|
145
|
+
type: 'function';
|
|
146
|
+
function: {
|
|
147
|
+
name: string;
|
|
148
|
+
arguments: string;
|
|
149
|
+
};
|
|
150
|
+
}>;
|
|
151
|
+
};
|
|
152
|
+
}>;
|
|
153
|
+
}
|
|
154
|
+
export type RunConfig<Ctx> = {
|
|
155
|
+
readonly agentRegistry: ReadonlyMap<string, Agent<Ctx, any>>;
|
|
156
|
+
readonly modelProvider: ModelProvider<Ctx>;
|
|
157
|
+
readonly maxTurns?: number;
|
|
158
|
+
readonly modelOverride?: string;
|
|
159
|
+
readonly initialInputGuardrails?: readonly Guardrail<string>[];
|
|
160
|
+
readonly finalOutputGuardrails?: readonly Guardrail<any>[];
|
|
161
|
+
readonly onEvent?: (event: TraceEvent) => void;
|
|
162
|
+
readonly memory?: MemoryConfig;
|
|
163
|
+
readonly conversationId?: string;
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,EAAa,CAAC;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAS,EAAE,CAAC,EAAW,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { Agent } from '../core/types.js';
|
|
3
|
+
type DemoContext = {
|
|
4
|
+
userId: string;
|
|
5
|
+
permissions: string[];
|
|
6
|
+
workspace: string;
|
|
7
|
+
};
|
|
8
|
+
declare const handoffResponseSchema: z.ZodObject<{
|
|
9
|
+
agentName: z.ZodEnum<["MathTutor", "FileManager", "WebResearcher"]>;
|
|
10
|
+
reasoning: z.ZodString;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
agentName: "MathTutor" | "FileManager" | "WebResearcher";
|
|
13
|
+
reasoning: string;
|
|
14
|
+
}, {
|
|
15
|
+
agentName: "MathTutor" | "FileManager" | "WebResearcher";
|
|
16
|
+
reasoning: string;
|
|
17
|
+
}>;
|
|
18
|
+
export declare const triageAgent: Agent<DemoContext, z.infer<typeof handoffResponseSchema>>;
|
|
19
|
+
export declare const mathTutor: Agent<DemoContext, string>;
|
|
20
|
+
export declare const fileManager: Agent<DemoContext, string>;
|
|
21
|
+
export declare const webResearcher: Agent<DemoContext, string>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/demo/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,qBAAqB;;;;;;;;;EAGzB,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAmBjF,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAWhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAclD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAUpD,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.webResearcher = exports.fileManager = exports.mathTutor = exports.triageAgent = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const handoff_js_1 = require("../policies/handoff.js");
|
|
6
|
+
const tools_js_1 = require("./tools.js");
|
|
7
|
+
const handoffResponseSchema = zod_1.z.object({
|
|
8
|
+
agentName: zod_1.z.enum(['MathTutor', 'FileManager', 'WebResearcher']).describe("The agent to handoff to"),
|
|
9
|
+
reasoning: zod_1.z.string().describe("Why this agent is best suited for the task")
|
|
10
|
+
});
|
|
11
|
+
exports.triageAgent = {
|
|
12
|
+
name: 'TriageAgent',
|
|
13
|
+
instructions: (state) => `You are a triage agent that routes user requests to specialized agents.
|
|
14
|
+
|
|
15
|
+
Available agents:
|
|
16
|
+
- MathTutor: Handles mathematical calculations, equations, and number problems
|
|
17
|
+
- FileManager: Handles file operations like reading, writing, and organizing files
|
|
18
|
+
- WebResearcher: Handles web searches and research tasks
|
|
19
|
+
|
|
20
|
+
Current user: ${state.context.userId}
|
|
21
|
+
User permissions: ${state.context.permissions.join(', ')}
|
|
22
|
+
|
|
23
|
+
Analyze the user's request and determine which specialized agent should handle it.
|
|
24
|
+
Respond with a JSON object containing the agent name and your reasoning.
|
|
25
|
+
|
|
26
|
+
If the request involves multiple capabilities, choose the most relevant one or start with the primary task.`,
|
|
27
|
+
outputCodec: handoffResponseSchema,
|
|
28
|
+
tools: [handoff_js_1.handoffTool],
|
|
29
|
+
handoffs: ['MathTutor', 'FileManager', 'WebResearcher'],
|
|
30
|
+
};
|
|
31
|
+
exports.mathTutor = {
|
|
32
|
+
name: 'MathTutor',
|
|
33
|
+
instructions: () => `You are a helpful math tutor. You can:
|
|
34
|
+
- Solve mathematical problems and equations
|
|
35
|
+
- Explain mathematical concepts
|
|
36
|
+
- Perform calculations using the calculate tool
|
|
37
|
+
|
|
38
|
+
When users ask math questions, use the calculate tool to show your work and provide accurate results.
|
|
39
|
+
Always explain your reasoning and show step-by-step solutions when appropriate.`,
|
|
40
|
+
tools: [tools_js_1.mathTool, handoff_js_1.handoffTool],
|
|
41
|
+
handoffs: ['FileManager', 'WebResearcher'],
|
|
42
|
+
};
|
|
43
|
+
exports.fileManager = {
|
|
44
|
+
name: 'FileManager',
|
|
45
|
+
instructions: (state) => `You are a file management assistant. You can help users:
|
|
46
|
+
- Read file contents
|
|
47
|
+
- Write files (requires admin permission)
|
|
48
|
+
- Organize and manage files within the workspace
|
|
49
|
+
|
|
50
|
+
Current workspace: ${state.context.workspace}
|
|
51
|
+
User permissions: ${state.context.permissions.join(', ')}
|
|
52
|
+
|
|
53
|
+
Note: File operations are restricted to the workspace directory for security.
|
|
54
|
+
Write operations require admin permissions.`,
|
|
55
|
+
tools: [tools_js_1.fileReadTool, tools_js_1.fileWriteTool, handoff_js_1.handoffTool],
|
|
56
|
+
handoffs: ['MathTutor', 'WebResearcher'],
|
|
57
|
+
};
|
|
58
|
+
exports.webResearcher = {
|
|
59
|
+
name: 'WebResearcher',
|
|
60
|
+
instructions: () => `You are a web research assistant. You can:
|
|
61
|
+
- Search the web for information
|
|
62
|
+
- Provide summaries of search results
|
|
63
|
+
- Help with research tasks
|
|
64
|
+
|
|
65
|
+
Use the search_web tool to find relevant information and provide comprehensive answers based on the results.`,
|
|
66
|
+
tools: [tools_js_1.webSearchTool, handoff_js_1.handoffTool],
|
|
67
|
+
handoffs: ['MathTutor', 'FileManager'],
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/demo/agents.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,uDAAqD;AACrD,yCAAkF;AAQlF,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACpG,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAC7E,CAAC,CAAC;AAEU,QAAA,WAAW,GAA8D;IACpF,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;;;;;;;gBAOX,KAAK,CAAC,OAAO,CAAC,MAAM;oBAChB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;4GAKoD;IAC1G,WAAW,EAAE,qBAAqB;IAClC,KAAK,EAAE,CAAC,wBAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC;CACxD,CAAC;AAEW,QAAA,SAAS,GAA+B;IACnD,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE,GAAG,EAAE,CAAC;;;;;;gFAM0D;IAC9E,KAAK,EAAE,CAAC,mBAAQ,EAAE,wBAAW,CAAC;IAC9B,QAAQ,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;CAC3C,CAAC;AAEW,QAAA,WAAW,GAA+B;IACrD,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;;;;;qBAKN,KAAK,CAAC,OAAO,CAAC,SAAS;oBACxB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;4CAGZ;IAC1C,KAAK,EAAE,CAAC,uBAAY,EAAE,wBAAa,EAAE,wBAAW,CAAC;IACjD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;CACzC,CAAC;AAEW,QAAA,aAAa,GAA+B;IACvD,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,GAAG,EAAE,CAAC;;;;;6GAKuF;IAC3G,KAAK,EAAE,CAAC,wBAAa,EAAE,wBAAW,CAAC;IACnC,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;CACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/demo/index.ts"],"names":[],"mappings":""}
|