@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,233 @@
1
+ /**
2
+ * A2A Task Serialization Functions for JAF
3
+ * Pure functions for serializing/deserializing A2A tasks for storage
4
+ */
5
+ import { createA2ATaskStorageError, createSuccess, createFailure } from './types.js';
6
+ /**
7
+ * Pure function to serialize an A2A task for storage
8
+ */
9
+ export const serializeA2ATask = (task, metadata) => {
10
+ try {
11
+ const now = new Date().toISOString();
12
+ // Extract status message for indexing if present
13
+ let statusMessage;
14
+ if (task.status.message) {
15
+ try {
16
+ statusMessage = JSON.stringify(task.status.message);
17
+ }
18
+ catch {
19
+ // If message serialization fails, continue without it
20
+ }
21
+ }
22
+ const serialized = {
23
+ taskId: task.id,
24
+ contextId: task.contextId,
25
+ state: task.status.state,
26
+ taskData: JSON.stringify(task),
27
+ statusMessage,
28
+ createdAt: task.metadata?.createdAt || now,
29
+ updatedAt: now,
30
+ metadata: metadata ? JSON.stringify(metadata) : undefined
31
+ };
32
+ return createSuccess(serialized);
33
+ }
34
+ catch (error) {
35
+ return createFailure(createA2ATaskStorageError('serialize', 'memory', task.id, error));
36
+ }
37
+ };
38
+ /**
39
+ * Pure function to deserialize an A2A task from storage
40
+ */
41
+ export const deserializeA2ATask = (stored) => {
42
+ try {
43
+ const task = JSON.parse(stored.taskData);
44
+ // Validate that the deserialized task has required fields
45
+ if (!task.id || !task.contextId || !task.status || !task.kind) {
46
+ return createFailure(createA2ATaskStorageError('deserialize', 'memory', stored.taskId, new Error('Invalid task structure after deserialization')));
47
+ }
48
+ return createSuccess(task);
49
+ }
50
+ catch (error) {
51
+ return createFailure(createA2ATaskStorageError('deserialize', 'memory', stored.taskId, error));
52
+ }
53
+ };
54
+ /**
55
+ * Pure function to create a minimal task representation for indexing
56
+ */
57
+ export const createTaskIndex = (task) => {
58
+ try {
59
+ return createSuccess({
60
+ taskId: task.id,
61
+ contextId: task.contextId,
62
+ state: task.status.state,
63
+ timestamp: task.status.timestamp || new Date().toISOString(),
64
+ hasHistory: Boolean(task.history && task.history.length > 0),
65
+ hasArtifacts: Boolean(task.artifacts && task.artifacts.length > 0)
66
+ });
67
+ }
68
+ catch (error) {
69
+ return createFailure(createA2ATaskStorageError('index', 'memory', task.id, error));
70
+ }
71
+ };
72
+ /**
73
+ * Pure function to extract searchable text from a task for full-text search
74
+ */
75
+ export const extractTaskSearchText = (task) => {
76
+ try {
77
+ const textParts = [];
78
+ // Extract text from status message
79
+ if (task.status.message) {
80
+ extractTextFromMessage(task.status.message, textParts);
81
+ }
82
+ // Extract text from history
83
+ if (task.history) {
84
+ task.history.forEach(message => {
85
+ extractTextFromMessage(message, textParts);
86
+ });
87
+ }
88
+ // Extract text from artifacts
89
+ if (task.artifacts) {
90
+ task.artifacts.forEach(artifact => {
91
+ if (artifact.name)
92
+ textParts.push(artifact.name);
93
+ if (artifact.description)
94
+ textParts.push(artifact.description);
95
+ artifact.parts.forEach(part => {
96
+ if (part.kind === 'text') {
97
+ textParts.push(part.text);
98
+ }
99
+ });
100
+ });
101
+ }
102
+ return createSuccess(textParts.join(' ').trim());
103
+ }
104
+ catch (error) {
105
+ return createFailure(createA2ATaskStorageError('extract-text', 'memory', task.id, error));
106
+ }
107
+ };
108
+ /**
109
+ * Helper function to extract text from A2A message parts
110
+ */
111
+ const extractTextFromMessage = (message, textParts) => {
112
+ message.parts.forEach(part => {
113
+ if (part.kind === 'text') {
114
+ textParts.push(part.text);
115
+ }
116
+ else if (part.kind === 'data' && part.data) {
117
+ // Extract any string values from data
118
+ Object.values(part.data).forEach(value => {
119
+ if (typeof value === 'string') {
120
+ textParts.push(value);
121
+ }
122
+ });
123
+ }
124
+ else if (part.kind === 'file' && part.file.name) {
125
+ textParts.push(part.file.name);
126
+ }
127
+ });
128
+ };
129
+ /**
130
+ * Pure function to validate task data integrity
131
+ */
132
+ export const validateTaskIntegrity = (task) => {
133
+ try {
134
+ // Check required fields
135
+ if (!task.id || typeof task.id !== 'string') {
136
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Task ID is required and must be a string')));
137
+ }
138
+ if (!task.contextId || typeof task.contextId !== 'string') {
139
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Context ID is required and must be a string')));
140
+ }
141
+ if (!task.status || !task.status.state) {
142
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Task status and state are required')));
143
+ }
144
+ if (task.kind !== 'task') {
145
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Task kind must be "task"')));
146
+ }
147
+ // Validate history if present
148
+ if (task.history) {
149
+ if (!Array.isArray(task.history)) {
150
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Task history must be an array')));
151
+ }
152
+ for (const message of task.history) {
153
+ if (!message.messageId || !message.parts || !Array.isArray(message.parts)) {
154
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Invalid message in task history')));
155
+ }
156
+ }
157
+ }
158
+ // Validate artifacts if present
159
+ if (task.artifacts) {
160
+ if (!Array.isArray(task.artifacts)) {
161
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Task artifacts must be an array')));
162
+ }
163
+ for (const artifact of task.artifacts) {
164
+ if (!artifact.artifactId || !artifact.parts || !Array.isArray(artifact.parts)) {
165
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, new Error('Invalid artifact in task')));
166
+ }
167
+ }
168
+ }
169
+ return createSuccess(true);
170
+ }
171
+ catch (error) {
172
+ return createFailure(createA2ATaskStorageError('validate', 'memory', task.id, error));
173
+ }
174
+ };
175
+ /**
176
+ * Pure function to create a deep copy of a task (for immutability)
177
+ */
178
+ export const cloneTask = (task) => {
179
+ try {
180
+ // Use JSON serialization for deep cloning
181
+ const cloned = JSON.parse(JSON.stringify(task));
182
+ return createSuccess(cloned);
183
+ }
184
+ catch (error) {
185
+ return createFailure(createA2ATaskStorageError('clone', 'memory', task.id, error));
186
+ }
187
+ };
188
+ /**
189
+ * Pure function to sanitize task data for storage
190
+ * Removes any potentially dangerous or invalid data
191
+ */
192
+ export const sanitizeTask = (task) => {
193
+ try {
194
+ const validationResult = validateTaskIntegrity(task);
195
+ if (!validationResult.success) {
196
+ return validationResult;
197
+ }
198
+ // Clone the task to avoid mutation
199
+ const cloneResult = cloneTask(task);
200
+ if (!cloneResult.success) {
201
+ return cloneResult;
202
+ }
203
+ let sanitized = cloneResult.data;
204
+ // Ensure timestamps are valid ISO strings
205
+ if (sanitized.status.timestamp) {
206
+ try {
207
+ const date = new Date(sanitized.status.timestamp);
208
+ sanitized = {
209
+ ...sanitized,
210
+ status: {
211
+ ...sanitized.status,
212
+ timestamp: date.toISOString()
213
+ }
214
+ };
215
+ }
216
+ catch {
217
+ // Remove invalid timestamp
218
+ sanitized = {
219
+ ...sanitized,
220
+ status: {
221
+ ...sanitized.status,
222
+ timestamp: undefined
223
+ }
224
+ };
225
+ }
226
+ }
227
+ return createSuccess(sanitized);
228
+ }
229
+ catch (error) {
230
+ return createFailure(createA2ATaskStorageError('sanitize', 'memory', task.id, error));
231
+ }
232
+ };
233
+ //# sourceMappingURL=serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/a2a/memory/serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,395 @@
1
+ /**
2
+ * A2A Task Memory Types for JAF
3
+ * Extends the core memory system to support A2A task queue persistence
4
+ */
5
+ import { z } from 'zod';
6
+ import { A2ATask, TaskState } from '../types.js';
7
+ export interface A2ATaskQuery {
8
+ readonly taskId?: string;
9
+ readonly contextId?: string;
10
+ readonly state?: TaskState;
11
+ readonly limit?: number;
12
+ readonly offset?: number;
13
+ readonly since?: Date;
14
+ readonly until?: Date;
15
+ readonly includeHistory?: boolean;
16
+ readonly includeArtifacts?: boolean;
17
+ }
18
+ export interface A2ATaskStorage {
19
+ readonly taskId: string;
20
+ readonly contextId: string;
21
+ readonly state: TaskState;
22
+ readonly taskData: string;
23
+ readonly statusMessage?: string;
24
+ readonly createdAt: Date;
25
+ readonly updatedAt: Date;
26
+ readonly expiresAt?: Date;
27
+ readonly metadata?: Readonly<Record<string, any>>;
28
+ }
29
+ export type A2ATaskProvider = {
30
+ /**
31
+ * Store a new A2A task
32
+ */
33
+ readonly storeTask: (task: A2ATask, metadata?: {
34
+ expiresAt?: Date;
35
+ [key: string]: any;
36
+ }) => Promise<A2AResult<void>>;
37
+ /**
38
+ * Retrieve a task by ID
39
+ */
40
+ readonly getTask: (taskId: string) => Promise<A2AResult<A2ATask | null>>;
41
+ /**
42
+ * Update an existing task
43
+ */
44
+ readonly updateTask: (task: A2ATask, metadata?: {
45
+ [key: string]: any;
46
+ }) => Promise<A2AResult<void>>;
47
+ /**
48
+ * Update task status only (optimized for frequent status changes)
49
+ */
50
+ readonly updateTaskStatus: (taskId: string, state: TaskState, statusMessage?: any, timestamp?: string) => Promise<A2AResult<void>>;
51
+ /**
52
+ * Search tasks by query
53
+ */
54
+ readonly findTasks: (query: A2ATaskQuery) => Promise<A2AResult<A2ATask[]>>;
55
+ /**
56
+ * Get tasks by context ID
57
+ */
58
+ readonly getTasksByContext: (contextId: string, limit?: number) => Promise<A2AResult<A2ATask[]>>;
59
+ /**
60
+ * Delete a task
61
+ */
62
+ readonly deleteTask: (taskId: string) => Promise<A2AResult<boolean>>;
63
+ /**
64
+ * Delete tasks by context ID
65
+ */
66
+ readonly deleteTasksByContext: (contextId: string) => Promise<A2AResult<number>>;
67
+ /**
68
+ * Clean up expired tasks
69
+ */
70
+ readonly cleanupExpiredTasks: () => Promise<A2AResult<number>>;
71
+ /**
72
+ * Get task statistics
73
+ */
74
+ readonly getTaskStats: (contextId?: string) => Promise<A2AResult<{
75
+ totalTasks: number;
76
+ tasksByState: Record<TaskState, number>;
77
+ oldestTask?: Date;
78
+ newestTask?: Date;
79
+ }>>;
80
+ /**
81
+ * Health check for the task provider
82
+ */
83
+ readonly healthCheck: () => Promise<A2AResult<{
84
+ healthy: boolean;
85
+ latencyMs?: number;
86
+ error?: string;
87
+ }>>;
88
+ /**
89
+ * Close/cleanup the provider
90
+ */
91
+ readonly close: () => Promise<A2AResult<void>>;
92
+ };
93
+ export declare const A2ATaskMemoryConfigSchema: z.ZodObject<{
94
+ type: z.ZodEnum<["memory", "redis", "postgres"]>;
95
+ keyPrefix: z.ZodDefault<z.ZodString>;
96
+ defaultTtl: z.ZodOptional<z.ZodNumber>;
97
+ cleanupInterval: z.ZodDefault<z.ZodNumber>;
98
+ maxTasks: z.ZodDefault<z.ZodNumber>;
99
+ enableHistory: z.ZodDefault<z.ZodBoolean>;
100
+ enableArtifacts: z.ZodDefault<z.ZodBoolean>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ type: "memory" | "redis" | "postgres";
103
+ keyPrefix: string;
104
+ cleanupInterval: number;
105
+ maxTasks: number;
106
+ enableHistory: boolean;
107
+ enableArtifacts: boolean;
108
+ defaultTtl?: number | undefined;
109
+ }, {
110
+ type: "memory" | "redis" | "postgres";
111
+ keyPrefix?: string | undefined;
112
+ defaultTtl?: number | undefined;
113
+ cleanupInterval?: number | undefined;
114
+ maxTasks?: number | undefined;
115
+ enableHistory?: boolean | undefined;
116
+ enableArtifacts?: boolean | undefined;
117
+ }>;
118
+ export declare const A2AInMemoryTaskConfigSchema: z.ZodObject<{
119
+ keyPrefix: z.ZodDefault<z.ZodString>;
120
+ defaultTtl: z.ZodOptional<z.ZodNumber>;
121
+ cleanupInterval: z.ZodDefault<z.ZodNumber>;
122
+ maxTasks: z.ZodDefault<z.ZodNumber>;
123
+ enableHistory: z.ZodDefault<z.ZodBoolean>;
124
+ enableArtifacts: z.ZodDefault<z.ZodBoolean>;
125
+ } & {
126
+ type: z.ZodLiteral<"memory">;
127
+ maxTasksPerContext: z.ZodDefault<z.ZodNumber>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ type: "memory";
130
+ keyPrefix: string;
131
+ cleanupInterval: number;
132
+ maxTasks: number;
133
+ enableHistory: boolean;
134
+ enableArtifacts: boolean;
135
+ maxTasksPerContext: number;
136
+ defaultTtl?: number | undefined;
137
+ }, {
138
+ type: "memory";
139
+ keyPrefix?: string | undefined;
140
+ defaultTtl?: number | undefined;
141
+ cleanupInterval?: number | undefined;
142
+ maxTasks?: number | undefined;
143
+ enableHistory?: boolean | undefined;
144
+ enableArtifacts?: boolean | undefined;
145
+ maxTasksPerContext?: number | undefined;
146
+ }>;
147
+ export declare const A2ARedisTaskConfigSchema: z.ZodObject<{
148
+ keyPrefix: z.ZodDefault<z.ZodString>;
149
+ defaultTtl: z.ZodOptional<z.ZodNumber>;
150
+ cleanupInterval: z.ZodDefault<z.ZodNumber>;
151
+ maxTasks: z.ZodDefault<z.ZodNumber>;
152
+ enableHistory: z.ZodDefault<z.ZodBoolean>;
153
+ enableArtifacts: z.ZodDefault<z.ZodBoolean>;
154
+ } & {
155
+ type: z.ZodLiteral<"redis">;
156
+ host: z.ZodDefault<z.ZodString>;
157
+ port: z.ZodDefault<z.ZodNumber>;
158
+ password: z.ZodOptional<z.ZodString>;
159
+ db: z.ZodDefault<z.ZodNumber>;
160
+ }, "strip", z.ZodTypeAny, {
161
+ type: "redis";
162
+ host: string;
163
+ port: number;
164
+ db: number;
165
+ keyPrefix: string;
166
+ cleanupInterval: number;
167
+ maxTasks: number;
168
+ enableHistory: boolean;
169
+ enableArtifacts: boolean;
170
+ password?: string | undefined;
171
+ defaultTtl?: number | undefined;
172
+ }, {
173
+ type: "redis";
174
+ host?: string | undefined;
175
+ port?: number | undefined;
176
+ password?: string | undefined;
177
+ db?: number | undefined;
178
+ keyPrefix?: string | undefined;
179
+ defaultTtl?: number | undefined;
180
+ cleanupInterval?: number | undefined;
181
+ maxTasks?: number | undefined;
182
+ enableHistory?: boolean | undefined;
183
+ enableArtifacts?: boolean | undefined;
184
+ }>;
185
+ export declare const A2APostgresTaskConfigSchema: z.ZodObject<{
186
+ keyPrefix: z.ZodDefault<z.ZodString>;
187
+ defaultTtl: z.ZodOptional<z.ZodNumber>;
188
+ cleanupInterval: z.ZodDefault<z.ZodNumber>;
189
+ maxTasks: z.ZodDefault<z.ZodNumber>;
190
+ enableHistory: z.ZodDefault<z.ZodBoolean>;
191
+ enableArtifacts: z.ZodDefault<z.ZodBoolean>;
192
+ } & {
193
+ type: z.ZodLiteral<"postgres">;
194
+ host: z.ZodDefault<z.ZodString>;
195
+ port: z.ZodDefault<z.ZodNumber>;
196
+ database: z.ZodDefault<z.ZodString>;
197
+ username: z.ZodDefault<z.ZodString>;
198
+ password: z.ZodOptional<z.ZodString>;
199
+ ssl: z.ZodDefault<z.ZodBoolean>;
200
+ tableName: z.ZodDefault<z.ZodString>;
201
+ maxConnections: z.ZodDefault<z.ZodNumber>;
202
+ }, "strip", z.ZodTypeAny, {
203
+ type: "postgres";
204
+ host: string;
205
+ port: number;
206
+ keyPrefix: string;
207
+ database: string;
208
+ username: string;
209
+ ssl: boolean;
210
+ tableName: string;
211
+ maxConnections: number;
212
+ cleanupInterval: number;
213
+ maxTasks: number;
214
+ enableHistory: boolean;
215
+ enableArtifacts: boolean;
216
+ password?: string | undefined;
217
+ defaultTtl?: number | undefined;
218
+ }, {
219
+ type: "postgres";
220
+ host?: string | undefined;
221
+ port?: number | undefined;
222
+ password?: string | undefined;
223
+ keyPrefix?: string | undefined;
224
+ database?: string | undefined;
225
+ username?: string | undefined;
226
+ ssl?: boolean | undefined;
227
+ tableName?: string | undefined;
228
+ maxConnections?: number | undefined;
229
+ defaultTtl?: number | undefined;
230
+ cleanupInterval?: number | undefined;
231
+ maxTasks?: number | undefined;
232
+ enableHistory?: boolean | undefined;
233
+ enableArtifacts?: boolean | undefined;
234
+ }>;
235
+ export declare const A2ATaskProviderConfigSchema: z.ZodUnion<[z.ZodObject<{
236
+ keyPrefix: z.ZodDefault<z.ZodString>;
237
+ defaultTtl: z.ZodOptional<z.ZodNumber>;
238
+ cleanupInterval: z.ZodDefault<z.ZodNumber>;
239
+ maxTasks: z.ZodDefault<z.ZodNumber>;
240
+ enableHistory: z.ZodDefault<z.ZodBoolean>;
241
+ enableArtifacts: z.ZodDefault<z.ZodBoolean>;
242
+ } & {
243
+ type: z.ZodLiteral<"memory">;
244
+ maxTasksPerContext: z.ZodDefault<z.ZodNumber>;
245
+ }, "strip", z.ZodTypeAny, {
246
+ type: "memory";
247
+ keyPrefix: string;
248
+ cleanupInterval: number;
249
+ maxTasks: number;
250
+ enableHistory: boolean;
251
+ enableArtifacts: boolean;
252
+ maxTasksPerContext: number;
253
+ defaultTtl?: number | undefined;
254
+ }, {
255
+ type: "memory";
256
+ keyPrefix?: string | undefined;
257
+ defaultTtl?: number | undefined;
258
+ cleanupInterval?: number | undefined;
259
+ maxTasks?: number | undefined;
260
+ enableHistory?: boolean | undefined;
261
+ enableArtifacts?: boolean | undefined;
262
+ maxTasksPerContext?: number | undefined;
263
+ }>, z.ZodObject<{
264
+ keyPrefix: z.ZodDefault<z.ZodString>;
265
+ defaultTtl: z.ZodOptional<z.ZodNumber>;
266
+ cleanupInterval: z.ZodDefault<z.ZodNumber>;
267
+ maxTasks: z.ZodDefault<z.ZodNumber>;
268
+ enableHistory: z.ZodDefault<z.ZodBoolean>;
269
+ enableArtifacts: z.ZodDefault<z.ZodBoolean>;
270
+ } & {
271
+ type: z.ZodLiteral<"redis">;
272
+ host: z.ZodDefault<z.ZodString>;
273
+ port: z.ZodDefault<z.ZodNumber>;
274
+ password: z.ZodOptional<z.ZodString>;
275
+ db: z.ZodDefault<z.ZodNumber>;
276
+ }, "strip", z.ZodTypeAny, {
277
+ type: "redis";
278
+ host: string;
279
+ port: number;
280
+ db: number;
281
+ keyPrefix: string;
282
+ cleanupInterval: number;
283
+ maxTasks: number;
284
+ enableHistory: boolean;
285
+ enableArtifacts: boolean;
286
+ password?: string | undefined;
287
+ defaultTtl?: number | undefined;
288
+ }, {
289
+ type: "redis";
290
+ host?: string | undefined;
291
+ port?: number | undefined;
292
+ password?: string | undefined;
293
+ db?: number | undefined;
294
+ keyPrefix?: string | undefined;
295
+ defaultTtl?: number | undefined;
296
+ cleanupInterval?: number | undefined;
297
+ maxTasks?: number | undefined;
298
+ enableHistory?: boolean | undefined;
299
+ enableArtifacts?: boolean | undefined;
300
+ }>, z.ZodObject<{
301
+ keyPrefix: z.ZodDefault<z.ZodString>;
302
+ defaultTtl: z.ZodOptional<z.ZodNumber>;
303
+ cleanupInterval: z.ZodDefault<z.ZodNumber>;
304
+ maxTasks: z.ZodDefault<z.ZodNumber>;
305
+ enableHistory: z.ZodDefault<z.ZodBoolean>;
306
+ enableArtifacts: z.ZodDefault<z.ZodBoolean>;
307
+ } & {
308
+ type: z.ZodLiteral<"postgres">;
309
+ host: z.ZodDefault<z.ZodString>;
310
+ port: z.ZodDefault<z.ZodNumber>;
311
+ database: z.ZodDefault<z.ZodString>;
312
+ username: z.ZodDefault<z.ZodString>;
313
+ password: z.ZodOptional<z.ZodString>;
314
+ ssl: z.ZodDefault<z.ZodBoolean>;
315
+ tableName: z.ZodDefault<z.ZodString>;
316
+ maxConnections: z.ZodDefault<z.ZodNumber>;
317
+ }, "strip", z.ZodTypeAny, {
318
+ type: "postgres";
319
+ host: string;
320
+ port: number;
321
+ keyPrefix: string;
322
+ database: string;
323
+ username: string;
324
+ ssl: boolean;
325
+ tableName: string;
326
+ maxConnections: number;
327
+ cleanupInterval: number;
328
+ maxTasks: number;
329
+ enableHistory: boolean;
330
+ enableArtifacts: boolean;
331
+ password?: string | undefined;
332
+ defaultTtl?: number | undefined;
333
+ }, {
334
+ type: "postgres";
335
+ host?: string | undefined;
336
+ port?: number | undefined;
337
+ password?: string | undefined;
338
+ keyPrefix?: string | undefined;
339
+ database?: string | undefined;
340
+ username?: string | undefined;
341
+ ssl?: boolean | undefined;
342
+ tableName?: string | undefined;
343
+ maxConnections?: number | undefined;
344
+ defaultTtl?: number | undefined;
345
+ cleanupInterval?: number | undefined;
346
+ maxTasks?: number | undefined;
347
+ enableHistory?: boolean | undefined;
348
+ enableArtifacts?: boolean | undefined;
349
+ }>]>;
350
+ export type A2ATaskMemoryConfig = z.infer<typeof A2ATaskMemoryConfigSchema>;
351
+ export type A2AInMemoryTaskConfig = z.infer<typeof A2AInMemoryTaskConfigSchema>;
352
+ export type A2ARedisTaskConfig = z.infer<typeof A2ARedisTaskConfigSchema>;
353
+ export type A2APostgresTaskConfig = z.infer<typeof A2APostgresTaskConfigSchema>;
354
+ export type A2ATaskProviderConfig = z.infer<typeof A2ATaskProviderConfigSchema>;
355
+ export type A2ATaskError = {
356
+ readonly _tag: 'A2ATaskError';
357
+ readonly message: string;
358
+ readonly code: string;
359
+ readonly provider: string;
360
+ readonly taskId?: string;
361
+ readonly cause?: Error;
362
+ };
363
+ export type A2ATaskNotFoundError = {
364
+ readonly _tag: 'A2ATaskNotFoundError';
365
+ readonly message: string;
366
+ readonly taskId: string;
367
+ readonly provider: string;
368
+ };
369
+ export type A2ATaskStorageError = {
370
+ readonly _tag: 'A2ATaskStorageError';
371
+ readonly message: string;
372
+ readonly operation: string;
373
+ readonly provider: string;
374
+ readonly taskId?: string;
375
+ readonly cause?: Error;
376
+ };
377
+ export type A2ATaskErrorUnion = A2ATaskError | A2ATaskNotFoundError | A2ATaskStorageError;
378
+ export type A2AResult<T> = {
379
+ success: true;
380
+ data: T;
381
+ } | {
382
+ success: false;
383
+ error: A2ATaskErrorUnion;
384
+ };
385
+ export declare const createA2ATaskError: (message: string, code: string, provider: string, taskId?: string, cause?: Error) => A2ATaskError;
386
+ export declare const createA2ATaskNotFoundError: (taskId: string, provider: string) => A2ATaskNotFoundError;
387
+ export declare const createA2ATaskStorageError: (operation: string, provider: string, taskId?: string, cause?: Error) => A2ATaskStorageError;
388
+ export declare const isA2ATaskError: (error: any) => error is A2ATaskErrorUnion;
389
+ export declare const isA2ATaskNotFoundError: (error: any) => error is A2ATaskNotFoundError;
390
+ export declare const isA2ATaskStorageError: (error: any) => error is A2ATaskStorageError;
391
+ export declare const createA2ASuccess: <T>(data: T) => A2AResult<T>;
392
+ export declare const createA2AFailure: (error: A2ATaskErrorUnion) => A2AResult<never>;
393
+ export declare const createSuccess: <T>(data: T) => A2AResult<T>;
394
+ export declare const createFailure: (error: A2ATaskErrorUnion) => A2AResult<never>;
395
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/a2a/memory/types.ts"],"names":[],"mappings":"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"}