@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.
Files changed (279) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +596 -0
  3. package/dist/a2a/agent-card.d.ts +28 -0
  4. package/dist/a2a/agent-card.d.ts.map +1 -0
  5. package/dist/a2a/agent-card.js +250 -0
  6. package/dist/a2a/agent-card.js.map +1 -0
  7. package/dist/a2a/agent.d.ts +38 -0
  8. package/dist/a2a/agent.d.ts.map +1 -0
  9. package/dist/a2a/agent.js +223 -0
  10. package/dist/a2a/agent.js.map +1 -0
  11. package/dist/a2a/client.d.ts +35 -0
  12. package/dist/a2a/client.d.ts.map +1 -0
  13. package/dist/a2a/client.js +337 -0
  14. package/dist/a2a/client.js.map +1 -0
  15. package/dist/a2a/examples/client-example.d.ts +104 -0
  16. package/dist/a2a/examples/client-example.d.ts.map +1 -0
  17. package/dist/a2a/examples/client-example.js +232 -0
  18. package/dist/a2a/examples/client-example.js.map +1 -0
  19. package/dist/a2a/examples/server-example.d.ts +9 -0
  20. package/dist/a2a/examples/server-example.d.ts.map +1 -0
  21. package/dist/a2a/examples/server-example.js +209 -0
  22. package/dist/a2a/examples/server-example.js.map +1 -0
  23. package/dist/a2a/examples/weather-agent.d.ts +8 -0
  24. package/dist/a2a/examples/weather-agent.d.ts.map +1 -0
  25. package/dist/a2a/examples/weather-agent.js +232 -0
  26. package/dist/a2a/examples/weather-agent.js.map +1 -0
  27. package/dist/a2a/executor.d.ts +43 -0
  28. package/dist/a2a/executor.d.ts.map +1 -0
  29. package/dist/a2a/executor.js +507 -0
  30. package/dist/a2a/executor.js.map +1 -0
  31. package/dist/a2a/index.d.ts +378 -0
  32. package/dist/a2a/index.d.ts.map +1 -0
  33. package/dist/a2a/index.js +72 -0
  34. package/dist/a2a/index.js.map +1 -0
  35. package/dist/a2a/memory/cleanup.d.ts +58 -0
  36. package/dist/a2a/memory/cleanup.d.ts.map +1 -0
  37. package/dist/a2a/memory/cleanup.js +281 -0
  38. package/dist/a2a/memory/cleanup.js.map +1 -0
  39. package/dist/a2a/memory/factory.d.ts +38 -0
  40. package/dist/a2a/memory/factory.d.ts.map +1 -0
  41. package/dist/a2a/memory/factory.js +369 -0
  42. package/dist/a2a/memory/factory.js.map +1 -0
  43. package/dist/a2a/memory/index.d.ts +13 -0
  44. package/dist/a2a/memory/index.d.ts.map +1 -0
  45. package/dist/a2a/memory/index.js +16 -0
  46. package/dist/a2a/memory/index.js.map +1 -0
  47. package/dist/a2a/memory/providers/in-memory.d.ts +10 -0
  48. package/dist/a2a/memory/providers/in-memory.d.ts.map +1 -0
  49. package/dist/a2a/memory/providers/in-memory.js +539 -0
  50. package/dist/a2a/memory/providers/in-memory.js.map +1 -0
  51. package/dist/a2a/memory/providers/postgres.d.ts +10 -0
  52. package/dist/a2a/memory/providers/postgres.d.ts.map +1 -0
  53. package/dist/a2a/memory/providers/postgres.js +404 -0
  54. package/dist/a2a/memory/providers/postgres.js.map +1 -0
  55. package/dist/a2a/memory/providers/redis.d.ts +10 -0
  56. package/dist/a2a/memory/providers/redis.d.ts.map +1 -0
  57. package/dist/a2a/memory/providers/redis.js +435 -0
  58. package/dist/a2a/memory/providers/redis.js.map +1 -0
  59. package/dist/a2a/memory/serialization.d.ts +53 -0
  60. package/dist/a2a/memory/serialization.d.ts.map +1 -0
  61. package/dist/a2a/memory/serialization.js +233 -0
  62. package/dist/a2a/memory/serialization.js.map +1 -0
  63. package/dist/a2a/memory/types.d.ts +395 -0
  64. package/dist/a2a/memory/types.d.ts.map +1 -0
  65. package/dist/a2a/memory/types.js +85 -0
  66. package/dist/a2a/memory/types.js.map +1 -0
  67. package/dist/a2a/protocol.d.ts +38 -0
  68. package/dist/a2a/protocol.d.ts.map +1 -0
  69. package/dist/a2a/protocol.js +211 -0
  70. package/dist/a2a/protocol.js.map +1 -0
  71. package/dist/a2a/server.d.ts +343 -0
  72. package/dist/a2a/server.d.ts.map +1 -0
  73. package/dist/a2a/server.js +362 -0
  74. package/dist/a2a/server.js.map +1 -0
  75. package/dist/a2a/types.d.ts +730 -0
  76. package/dist/a2a/types.d.ts.map +1 -0
  77. package/dist/a2a/types.js +73 -0
  78. package/dist/a2a/types.js.map +1 -0
  79. package/dist/adk/agents/index.d.ts +48 -0
  80. package/dist/adk/agents/index.d.ts.map +1 -0
  81. package/dist/adk/agents/index.js +277 -0
  82. package/dist/adk/agents/index.js.map +1 -0
  83. package/dist/adk/artifacts/index.d.ts +62 -0
  84. package/dist/adk/artifacts/index.d.ts.map +1 -0
  85. package/dist/adk/artifacts/index.js +394 -0
  86. package/dist/adk/artifacts/index.js.map +1 -0
  87. package/dist/adk/config/llm-config.d.ts +75 -0
  88. package/dist/adk/config/llm-config.d.ts.map +1 -0
  89. package/dist/adk/config/llm-config.js +422 -0
  90. package/dist/adk/config/llm-config.js.map +1 -0
  91. package/dist/adk/content/index.d.ts +58 -0
  92. package/dist/adk/content/index.d.ts.map +1 -0
  93. package/dist/adk/content/index.js +220 -0
  94. package/dist/adk/content/index.js.map +1 -0
  95. package/dist/adk/examples/advanced-features.d.ts +22 -0
  96. package/dist/adk/examples/advanced-features.d.ts.map +1 -0
  97. package/dist/adk/examples/advanced-features.js +380 -0
  98. package/dist/adk/examples/advanced-features.js.map +1 -0
  99. package/dist/adk/examples/basic-agent.d.ts +28 -0
  100. package/dist/adk/examples/basic-agent.d.ts.map +1 -0
  101. package/dist/adk/examples/basic-agent.js +207 -0
  102. package/dist/adk/examples/basic-agent.js.map +1 -0
  103. package/dist/adk/examples/multi-agent.d.ts +24 -0
  104. package/dist/adk/examples/multi-agent.d.ts.map +1 -0
  105. package/dist/adk/examples/multi-agent.js +321 -0
  106. package/dist/adk/examples/multi-agent.js.map +1 -0
  107. package/dist/adk/examples/streaming-example.d.ts +9 -0
  108. package/dist/adk/examples/streaming-example.d.ts.map +1 -0
  109. package/dist/adk/examples/streaming-example.js +193 -0
  110. package/dist/adk/examples/streaming-example.js.map +1 -0
  111. package/dist/adk/index.d.ts +65 -0
  112. package/dist/adk/index.d.ts.map +1 -0
  113. package/dist/adk/index.js +251 -0
  114. package/dist/adk/index.js.map +1 -0
  115. package/dist/adk/models.d.ts +338 -0
  116. package/dist/adk/models.d.ts.map +1 -0
  117. package/dist/adk/models.js +466 -0
  118. package/dist/adk/models.js.map +1 -0
  119. package/dist/adk/providers/error-handler.d.ts +100 -0
  120. package/dist/adk/providers/error-handler.d.ts.map +1 -0
  121. package/dist/adk/providers/error-handler.js +289 -0
  122. package/dist/adk/providers/error-handler.js.map +1 -0
  123. package/dist/adk/providers/llm-service.d.ts +41 -0
  124. package/dist/adk/providers/llm-service.d.ts.map +1 -0
  125. package/dist/adk/providers/llm-service.js +520 -0
  126. package/dist/adk/providers/llm-service.js.map +1 -0
  127. package/dist/adk/providers/type-converters.d.ts +34 -0
  128. package/dist/adk/providers/type-converters.d.ts.map +1 -0
  129. package/dist/adk/providers/type-converters.js +436 -0
  130. package/dist/adk/providers/type-converters.js.map +1 -0
  131. package/dist/adk/runners/index.d.ts +33 -0
  132. package/dist/adk/runners/index.d.ts.map +1 -0
  133. package/dist/adk/runners/index.js +466 -0
  134. package/dist/adk/runners/index.js.map +1 -0
  135. package/dist/adk/schemas/index.d.ts +85 -0
  136. package/dist/adk/schemas/index.d.ts.map +1 -0
  137. package/dist/adk/schemas/index.js +363 -0
  138. package/dist/adk/schemas/index.js.map +1 -0
  139. package/dist/adk/sessions/examples/session-provider-usage.d.ts +10 -0
  140. package/dist/adk/sessions/examples/session-provider-usage.d.ts.map +1 -0
  141. package/dist/adk/sessions/examples/session-provider-usage.js +145 -0
  142. package/dist/adk/sessions/examples/session-provider-usage.js.map +1 -0
  143. package/dist/adk/sessions/index.d.ts +53 -0
  144. package/dist/adk/sessions/index.d.ts.map +1 -0
  145. package/dist/adk/sessions/index.js +451 -0
  146. package/dist/adk/sessions/index.js.map +1 -0
  147. package/dist/adk/sessions/postgres-provider.d.ts +22 -0
  148. package/dist/adk/sessions/postgres-provider.d.ts.map +1 -0
  149. package/dist/adk/sessions/postgres-provider.js +293 -0
  150. package/dist/adk/sessions/postgres-provider.js.map +1 -0
  151. package/dist/adk/sessions/redis-provider.d.ts +19 -0
  152. package/dist/adk/sessions/redis-provider.d.ts.map +1 -0
  153. package/dist/adk/sessions/redis-provider.js +237 -0
  154. package/dist/adk/sessions/redis-provider.js.map +1 -0
  155. package/dist/adk/streaming/index.d.ts +76 -0
  156. package/dist/adk/streaming/index.d.ts.map +1 -0
  157. package/dist/adk/streaming/index.js +419 -0
  158. package/dist/adk/streaming/index.js.map +1 -0
  159. package/dist/adk/tools/index.d.ts +27 -0
  160. package/dist/adk/tools/index.d.ts.map +1 -0
  161. package/dist/adk/tools/index.js +506 -0
  162. package/dist/adk/tools/index.js.map +1 -0
  163. package/dist/adk/types.d.ts +351 -0
  164. package/dist/adk/types.d.ts.map +1 -0
  165. package/dist/adk/types.js +107 -0
  166. package/dist/adk/types.js.map +1 -0
  167. package/dist/core/engine.d.ts +3 -0
  168. package/dist/core/engine.d.ts.map +1 -0
  169. package/dist/core/engine.js +438 -0
  170. package/dist/core/engine.js.map +1 -0
  171. package/dist/core/errors.d.ts +8 -0
  172. package/dist/core/errors.d.ts.map +1 -0
  173. package/dist/core/errors.js +84 -0
  174. package/dist/core/errors.js.map +1 -0
  175. package/dist/core/tool-results.d.ts +57 -0
  176. package/dist/core/tool-results.d.ts.map +1 -0
  177. package/dist/core/tool-results.js +133 -0
  178. package/dist/core/tool-results.js.map +1 -0
  179. package/dist/core/tracing.d.ts +32 -0
  180. package/dist/core/tracing.d.ts.map +1 -0
  181. package/dist/core/tracing.js +132 -0
  182. package/dist/core/tracing.js.map +1 -0
  183. package/dist/core/types.d.ts +165 -0
  184. package/dist/core/types.d.ts.map +1 -0
  185. package/dist/core/types.js +3 -0
  186. package/dist/core/types.js.map +1 -0
  187. package/dist/demo/agents.d.ts +23 -0
  188. package/dist/demo/agents.d.ts.map +1 -0
  189. package/dist/demo/agents.js +69 -0
  190. package/dist/demo/agents.js.map +1 -0
  191. package/dist/demo/index.d.ts +2 -0
  192. package/dist/demo/index.d.ts.map +1 -0
  193. package/dist/demo/index.js +250 -0
  194. package/dist/demo/index.js.map +1 -0
  195. package/dist/demo/mock-provider.d.ts +22 -0
  196. package/dist/demo/mock-provider.d.ts.map +1 -0
  197. package/dist/demo/mock-provider.js +138 -0
  198. package/dist/demo/mock-provider.js.map +1 -0
  199. package/dist/demo/tools.d.ts +14 -0
  200. package/dist/demo/tools.d.ts.map +1 -0
  201. package/dist/demo/tools.js +115 -0
  202. package/dist/demo/tools.js.map +1 -0
  203. package/dist/index.d.ts +20 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +30 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/memory/factory.d.ts +22 -0
  208. package/dist/memory/factory.d.ts.map +1 -0
  209. package/dist/memory/factory.js +88 -0
  210. package/dist/memory/factory.js.map +1 -0
  211. package/dist/memory/providers/in-memory.d.ts +7 -0
  212. package/dist/memory/providers/in-memory.d.ts.map +1 -0
  213. package/dist/memory/providers/in-memory.js +287 -0
  214. package/dist/memory/providers/in-memory.js.map +1 -0
  215. package/dist/memory/providers/postgres.d.ts +15 -0
  216. package/dist/memory/providers/postgres.d.ts.map +1 -0
  217. package/dist/memory/providers/postgres.js +495 -0
  218. package/dist/memory/providers/postgres.js.map +1 -0
  219. package/dist/memory/providers/redis.d.ts +18 -0
  220. package/dist/memory/providers/redis.d.ts.map +1 -0
  221. package/dist/memory/providers/redis.js +354 -0
  222. package/dist/memory/providers/redis.js.map +1 -0
  223. package/dist/memory/types.d.ts +296 -0
  224. package/dist/memory/types.d.ts.map +1 -0
  225. package/dist/memory/types.js +93 -0
  226. package/dist/memory/types.js.map +1 -0
  227. package/dist/policies/handoff.d.ts +16 -0
  228. package/dist/policies/handoff.d.ts.map +1 -0
  229. package/dist/policies/handoff.js +20 -0
  230. package/dist/policies/handoff.js.map +1 -0
  231. package/dist/policies/validation.d.ts +14 -0
  232. package/dist/policies/validation.d.ts.map +1 -0
  233. package/dist/policies/validation.js +92 -0
  234. package/dist/policies/validation.js.map +1 -0
  235. package/dist/providers/mcp.d.ts +17 -0
  236. package/dist/providers/mcp.d.ts.map +1 -0
  237. package/dist/providers/mcp.js +111 -0
  238. package/dist/providers/mcp.js.map +1 -0
  239. package/dist/providers/model.d.ts +3 -0
  240. package/dist/providers/model.d.ts.map +1 -0
  241. package/dist/providers/model.js +113 -0
  242. package/dist/providers/model.js.map +1 -0
  243. package/dist/server/index.d.ts +35 -0
  244. package/dist/server/index.d.ts.map +1 -0
  245. package/dist/server/index.js +66 -0
  246. package/dist/server/index.js.map +1 -0
  247. package/dist/server/server.d.ts +12 -0
  248. package/dist/server/server.d.ts.map +1 -0
  249. package/dist/server/server.js +394 -0
  250. package/dist/server/server.js.map +1 -0
  251. package/dist/server/types.d.ts +456 -0
  252. package/dist/server/types.d.ts.map +1 -0
  253. package/dist/server/types.js +75 -0
  254. package/dist/server/types.js.map +1 -0
  255. package/dist/test-utils/db-setup.d.ts +34 -0
  256. package/dist/test-utils/db-setup.d.ts.map +1 -0
  257. package/dist/test-utils/db-setup.js +149 -0
  258. package/dist/test-utils/db-setup.js.map +1 -0
  259. package/dist/utils/logger.d.ts +63 -0
  260. package/dist/utils/logger.d.ts.map +1 -0
  261. package/dist/utils/logger.js +199 -0
  262. package/dist/utils/logger.js.map +1 -0
  263. package/dist/utils/safe-math.d.ts +31 -0
  264. package/dist/utils/safe-math.d.ts.map +1 -0
  265. package/dist/utils/safe-math.js +86 -0
  266. package/dist/utils/safe-math.js.map +1 -0
  267. package/dist/visualization/example.d.ts +9 -0
  268. package/dist/visualization/example.d.ts.map +1 -0
  269. package/dist/visualization/example.js +236 -0
  270. package/dist/visualization/example.js.map +1 -0
  271. package/dist/visualization/graphviz.d.ts +42 -0
  272. package/dist/visualization/graphviz.d.ts.map +1 -0
  273. package/dist/visualization/graphviz.js +403 -0
  274. package/dist/visualization/graphviz.js.map +1 -0
  275. package/dist/visualization/index.d.ts +10 -0
  276. package/dist/visualization/index.d.ts.map +1 -0
  277. package/dist/visualization/index.js +12 -0
  278. package/dist/visualization/index.js.map +1 -0
  279. 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,3 @@
1
+ export const createTraceId = (id) => id;
2
+ export const createRunId = (id) => id;
3
+ //# sourceMappingURL=types.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/demo/index.ts"],"names":[],"mappings":""}