@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,539 @@
1
+ /**
2
+ * A2A In-Memory Task Provider for JAF
3
+ * Pure functional in-memory storage for A2A tasks
4
+ */
5
+ import { createA2ATaskNotFoundError, createA2ATaskStorageError, createSuccess, createFailure } from '../types.js';
6
+ import { serializeA2ATask, deserializeA2ATask, sanitizeTask } from '../serialization.js';
7
+ /**
8
+ * Helper function to convert A2ATaskStorage to A2ATaskSerialized
9
+ */
10
+ const convertStorageToSerialized = (stored) => ({
11
+ taskId: stored.taskId,
12
+ contextId: stored.contextId,
13
+ state: stored.state,
14
+ taskData: stored.taskData,
15
+ statusMessage: stored.statusMessage,
16
+ createdAt: stored.createdAt.toISOString(),
17
+ updatedAt: stored.updatedAt.toISOString(),
18
+ metadata: stored.metadata ? JSON.stringify(stored.metadata) : undefined
19
+ });
20
+ /**
21
+ * Create an in-memory A2A task provider
22
+ */
23
+ export const createA2AInMemoryTaskProvider = async (config) => {
24
+ // Initialize immutable state
25
+ let state = {
26
+ tasks: new Map(),
27
+ contextIndex: new Map(),
28
+ stateIndex: new Map(),
29
+ config,
30
+ stats: {
31
+ totalTasks: 0,
32
+ createdAt: new Date()
33
+ }
34
+ };
35
+ // Pure function to update state
36
+ const updateState = (newState) => {
37
+ state = newState;
38
+ };
39
+ // Pure function to add task to indices
40
+ const addToIndices = (contextIndex, stateIndex, taskId, contextId, taskState) => {
41
+ // Update context index
42
+ const contextTasks = contextIndex.get(contextId) || new Set();
43
+ const newContextIndex = new Map(contextIndex);
44
+ newContextIndex.set(contextId, new Set([...contextTasks, taskId]));
45
+ // Update state index
46
+ const stateTasks = stateIndex.get(taskState) || new Set();
47
+ const newStateIndex = new Map(stateIndex);
48
+ newStateIndex.set(taskState, new Set([...stateTasks, taskId]));
49
+ return { contextIndex: newContextIndex, stateIndex: newStateIndex };
50
+ };
51
+ // Pure function to remove task from indices
52
+ const removeFromIndices = (contextIndex, stateIndex, taskId, contextId, taskState) => {
53
+ // Update context index
54
+ const contextTasks = contextIndex.get(contextId);
55
+ const newContextIndex = new Map(contextIndex);
56
+ if (contextTasks) {
57
+ const updatedContextTasks = new Set(contextTasks);
58
+ updatedContextTasks.delete(taskId);
59
+ if (updatedContextTasks.size > 0) {
60
+ newContextIndex.set(contextId, updatedContextTasks);
61
+ }
62
+ else {
63
+ newContextIndex.delete(contextId);
64
+ }
65
+ }
66
+ // Update state index
67
+ const stateTasks = stateIndex.get(taskState);
68
+ const newStateIndex = new Map(stateIndex);
69
+ if (stateTasks) {
70
+ const updatedStateTasks = new Set(stateTasks);
71
+ updatedStateTasks.delete(taskId);
72
+ if (updatedStateTasks.size > 0) {
73
+ newStateIndex.set(taskState, updatedStateTasks);
74
+ }
75
+ else {
76
+ newStateIndex.delete(taskState);
77
+ }
78
+ }
79
+ return { contextIndex: newContextIndex, stateIndex: newStateIndex };
80
+ };
81
+ // Pure function to check storage limits
82
+ const checkStorageLimits = (currentTasks) => {
83
+ if (currentTasks.size >= config.maxTasks) {
84
+ return createFailure(createA2ATaskStorageError('store', 'in-memory', undefined, new Error(`Maximum task limit reached: ${config.maxTasks}`)));
85
+ }
86
+ return createSuccess(undefined);
87
+ };
88
+ // Create the provider object with proper implementation
89
+ return {
90
+ storeTask: async (task, metadata) => {
91
+ try {
92
+ // Validate and sanitize task
93
+ const sanitizeResult = sanitizeTask(task);
94
+ if (!sanitizeResult.success) {
95
+ return sanitizeResult;
96
+ }
97
+ // Check for duplicate task ID
98
+ if (state.tasks.has(task.id)) {
99
+ return createFailure(createA2ATaskStorageError('store', 'in-memory', task.id, new Error(`Task with ID ${task.id} already exists`)));
100
+ }
101
+ // Check storage limits
102
+ const limitsResult = checkStorageLimits(state.tasks);
103
+ if (!limitsResult.success) {
104
+ return limitsResult;
105
+ }
106
+ // Serialize task
107
+ const serializeResult = serializeA2ATask(sanitizeResult.data, metadata);
108
+ if (!serializeResult.success) {
109
+ return serializeResult;
110
+ }
111
+ const serializedTask = serializeResult.data;
112
+ const taskStorage = {
113
+ taskId: serializedTask.taskId,
114
+ contextId: serializedTask.contextId,
115
+ state: serializedTask.state,
116
+ taskData: serializedTask.taskData,
117
+ statusMessage: serializedTask.statusMessage,
118
+ createdAt: new Date(serializedTask.createdAt),
119
+ updatedAt: new Date(serializedTask.updatedAt),
120
+ expiresAt: metadata?.expiresAt,
121
+ metadata: metadata ? { ...metadata } : undefined
122
+ };
123
+ // Add to storage and indices
124
+ const newTasks = new Map(state.tasks);
125
+ newTasks.set(task.id, taskStorage);
126
+ const { contextIndex, stateIndex } = addToIndices(state.contextIndex, state.stateIndex, task.id, task.contextId, task.status.state);
127
+ updateState({
128
+ ...state,
129
+ tasks: newTasks,
130
+ contextIndex,
131
+ stateIndex,
132
+ stats: {
133
+ ...state.stats,
134
+ totalTasks: newTasks.size
135
+ }
136
+ });
137
+ return createSuccess(undefined);
138
+ }
139
+ catch (error) {
140
+ return createFailure(createA2ATaskStorageError('store', 'in-memory', task.id, error));
141
+ }
142
+ },
143
+ getTask: async (taskId) => {
144
+ try {
145
+ const stored = state.tasks.get(taskId);
146
+ if (!stored) {
147
+ return createSuccess(null);
148
+ }
149
+ // Check expiration
150
+ if (stored.expiresAt && stored.expiresAt < new Date()) {
151
+ return createSuccess(null);
152
+ }
153
+ const deserializeResult = deserializeA2ATask(convertStorageToSerialized(stored));
154
+ if (!deserializeResult.success) {
155
+ return deserializeResult;
156
+ }
157
+ return createSuccess(deserializeResult.data);
158
+ }
159
+ catch (error) {
160
+ return createFailure(createA2ATaskStorageError('get', 'in-memory', taskId, error));
161
+ }
162
+ },
163
+ updateTask: async (task, metadata) => {
164
+ try {
165
+ const existing = state.tasks.get(task.id);
166
+ if (!existing) {
167
+ return createFailure(createA2ATaskNotFoundError(task.id, 'in-memory'));
168
+ }
169
+ // Validate and sanitize task
170
+ const sanitizeResult = sanitizeTask(task);
171
+ if (!sanitizeResult.success) {
172
+ return sanitizeResult;
173
+ }
174
+ // Serialize updated task
175
+ const mergedMetadata = { ...existing.metadata, ...metadata };
176
+ const serializeResult = serializeA2ATask(sanitizeResult.data, mergedMetadata);
177
+ if (!serializeResult.success) {
178
+ return serializeResult;
179
+ }
180
+ const serializedTask = serializeResult.data;
181
+ const updatedStorage = {
182
+ ...existing,
183
+ state: serializedTask.state,
184
+ taskData: serializedTask.taskData,
185
+ statusMessage: serializedTask.statusMessage,
186
+ updatedAt: new Date(serializedTask.updatedAt),
187
+ metadata: mergedMetadata
188
+ };
189
+ // Update storage
190
+ const newTasks = new Map(state.tasks);
191
+ newTasks.set(task.id, updatedStorage);
192
+ // Update indices if state changed
193
+ let contextIndex = state.contextIndex;
194
+ let stateIndex = state.stateIndex;
195
+ if (existing.state !== task.status.state) {
196
+ // Remove from old state index and add to new
197
+ const removeResult = removeFromIndices(contextIndex, stateIndex, task.id, task.contextId, existing.state);
198
+ const addResult = addToIndices(removeResult.contextIndex, removeResult.stateIndex, task.id, task.contextId, task.status.state);
199
+ contextIndex = addResult.contextIndex;
200
+ stateIndex = addResult.stateIndex;
201
+ }
202
+ updateState({
203
+ ...state,
204
+ tasks: newTasks,
205
+ contextIndex,
206
+ stateIndex
207
+ });
208
+ return createSuccess(undefined);
209
+ }
210
+ catch (error) {
211
+ return createFailure(createA2ATaskStorageError('update', 'in-memory', task.id, error));
212
+ }
213
+ },
214
+ updateTaskStatus: async (taskId, newState, statusMessage, timestamp) => {
215
+ try {
216
+ const existing = state.tasks.get(taskId);
217
+ if (!existing) {
218
+ return createFailure(createA2ATaskNotFoundError(taskId, 'in-memory'));
219
+ }
220
+ // Deserialize existing task
221
+ const deserializeResult = deserializeA2ATask(convertStorageToSerialized(existing));
222
+ if (!deserializeResult.success) {
223
+ return deserializeResult;
224
+ }
225
+ const task = deserializeResult.data;
226
+ // Update task status
227
+ const updatedTask = {
228
+ ...task,
229
+ status: {
230
+ ...task.status,
231
+ state: newState,
232
+ message: statusMessage || task.status.message,
233
+ timestamp: timestamp || new Date().toISOString()
234
+ }
235
+ };
236
+ // Update task directly to avoid circular reference
237
+ const sanitizeResult = sanitizeTask(updatedTask);
238
+ if (!sanitizeResult.success) {
239
+ return sanitizeResult;
240
+ }
241
+ const mergedMetadata = { ...existing.metadata };
242
+ const serializeResult = serializeA2ATask(sanitizeResult.data, mergedMetadata);
243
+ if (!serializeResult.success) {
244
+ return serializeResult;
245
+ }
246
+ const serializedTask = serializeResult.data;
247
+ const updatedStorage = {
248
+ ...existing,
249
+ state: serializedTask.state,
250
+ taskData: serializedTask.taskData,
251
+ statusMessage: serializedTask.statusMessage,
252
+ updatedAt: new Date(serializedTask.updatedAt),
253
+ metadata: mergedMetadata
254
+ };
255
+ const newTasks = new Map(state.tasks);
256
+ newTasks.set(taskId, updatedStorage);
257
+ let contextIndex = state.contextIndex;
258
+ let stateIndex = state.stateIndex;
259
+ if (existing.state !== updatedTask.status.state) {
260
+ const removeResult = removeFromIndices(contextIndex, stateIndex, taskId, updatedTask.contextId, existing.state);
261
+ const addResult = addToIndices(removeResult.contextIndex, removeResult.stateIndex, taskId, updatedTask.contextId, updatedTask.status.state);
262
+ contextIndex = addResult.contextIndex;
263
+ stateIndex = addResult.stateIndex;
264
+ }
265
+ updateState({ ...state, tasks: newTasks, contextIndex, stateIndex });
266
+ return createSuccess(undefined);
267
+ }
268
+ catch (error) {
269
+ return createFailure(createA2ATaskStorageError('update-status', 'in-memory', taskId, error));
270
+ }
271
+ },
272
+ findTasks: async (query) => {
273
+ try {
274
+ let taskIds = new Set();
275
+ // Start with all tasks or filter by context/state
276
+ if (query.contextId && query.state) {
277
+ // Both context and state - find intersection
278
+ const contextTasks = state.contextIndex.get(query.contextId) || new Set();
279
+ const stateTasks = state.stateIndex.get(query.state) || new Set();
280
+ // Get intersection of both sets
281
+ taskIds = new Set([...contextTasks].filter(id => stateTasks.has(id)));
282
+ }
283
+ else if (query.contextId) {
284
+ const contextTasks = state.contextIndex.get(query.contextId);
285
+ if (contextTasks) {
286
+ taskIds = new Set(contextTasks);
287
+ }
288
+ }
289
+ else if (query.state) {
290
+ const stateTasks = state.stateIndex.get(query.state);
291
+ if (stateTasks) {
292
+ taskIds = new Set(stateTasks);
293
+ }
294
+ }
295
+ else {
296
+ taskIds = new Set(state.tasks.keys());
297
+ }
298
+ // Filter by additional criteria
299
+ const results = [];
300
+ for (const taskId of taskIds) {
301
+ if (query.taskId && taskId !== query.taskId)
302
+ continue;
303
+ const stored = state.tasks.get(taskId);
304
+ if (!stored)
305
+ continue;
306
+ // Check expiration
307
+ if (stored.expiresAt && stored.expiresAt < new Date())
308
+ continue;
309
+ // Date filtering
310
+ if (query.since && stored.createdAt < query.since)
311
+ continue;
312
+ if (query.until && stored.createdAt > query.until)
313
+ continue;
314
+ const deserializeResult = deserializeA2ATask(convertStorageToSerialized(stored));
315
+ if (deserializeResult.success) {
316
+ results.push(deserializeResult.data);
317
+ }
318
+ }
319
+ // Apply pagination
320
+ const offset = query.offset || 0;
321
+ const limit = query.limit || results.length;
322
+ const paginatedResults = results
323
+ .sort((a, b) => new Date(b.status.timestamp || '').getTime() - new Date(a.status.timestamp || '').getTime())
324
+ .slice(offset, offset + limit);
325
+ return createSuccess(paginatedResults);
326
+ }
327
+ catch (error) {
328
+ return createFailure(createA2ATaskStorageError('find', 'in-memory', undefined, error));
329
+ }
330
+ },
331
+ getTasksByContext: async (contextId, limit) => {
332
+ try {
333
+ const contextTasks = state.contextIndex.get(contextId);
334
+ if (!contextTasks) {
335
+ return createSuccess([]);
336
+ }
337
+ const results = [];
338
+ for (const taskId of contextTasks) {
339
+ if (limit && results.length >= limit)
340
+ break;
341
+ const stored = state.tasks.get(taskId);
342
+ if (!stored)
343
+ continue;
344
+ if (stored.expiresAt && stored.expiresAt < new Date())
345
+ continue;
346
+ const deserializeResult = deserializeA2ATask(convertStorageToSerialized(stored));
347
+ if (deserializeResult.success) {
348
+ results.push(deserializeResult.data);
349
+ }
350
+ }
351
+ const sortedResults = results.sort((a, b) => new Date(b.status.timestamp || '').getTime() - new Date(a.status.timestamp || '').getTime());
352
+ return createSuccess(sortedResults);
353
+ }
354
+ catch (error) {
355
+ return createFailure(createA2ATaskStorageError('get-by-context', 'in-memory', undefined, error));
356
+ }
357
+ },
358
+ deleteTask: async (taskId) => {
359
+ try {
360
+ const existing = state.tasks.get(taskId);
361
+ if (!existing) {
362
+ return createSuccess(false);
363
+ }
364
+ // Remove from storage
365
+ const newTasks = new Map(state.tasks);
366
+ newTasks.delete(taskId);
367
+ // Remove from indices
368
+ const { contextIndex, stateIndex } = removeFromIndices(state.contextIndex, state.stateIndex, taskId, existing.contextId, existing.state);
369
+ updateState({
370
+ ...state,
371
+ tasks: newTasks,
372
+ contextIndex,
373
+ stateIndex,
374
+ stats: {
375
+ ...state.stats,
376
+ totalTasks: newTasks.size
377
+ }
378
+ });
379
+ return createSuccess(true);
380
+ }
381
+ catch (error) {
382
+ return createFailure(createA2ATaskStorageError('delete', 'in-memory', taskId, error));
383
+ }
384
+ },
385
+ deleteTasksByContext: async (contextId) => {
386
+ try {
387
+ const contextTasks = state.contextIndex.get(contextId);
388
+ if (!contextTasks) {
389
+ return createSuccess(0);
390
+ }
391
+ let deletedCount = 0;
392
+ const newTasks = new Map(state.tasks);
393
+ let contextIndex = state.contextIndex;
394
+ let stateIndex = state.stateIndex;
395
+ for (const taskId of contextTasks) {
396
+ const existing = newTasks.get(taskId);
397
+ if (existing) {
398
+ newTasks.delete(taskId);
399
+ const removeResult = removeFromIndices(contextIndex, stateIndex, taskId, existing.contextId, existing.state);
400
+ contextIndex = removeResult.contextIndex;
401
+ stateIndex = removeResult.stateIndex;
402
+ deletedCount++;
403
+ }
404
+ }
405
+ updateState({
406
+ ...state,
407
+ tasks: newTasks,
408
+ contextIndex,
409
+ stateIndex,
410
+ stats: {
411
+ ...state.stats,
412
+ totalTasks: newTasks.size
413
+ }
414
+ });
415
+ return createSuccess(deletedCount);
416
+ }
417
+ catch (error) {
418
+ return createFailure(createA2ATaskStorageError('delete-by-context', 'in-memory', undefined, error));
419
+ }
420
+ },
421
+ cleanupExpiredTasks: async () => {
422
+ try {
423
+ const now = new Date();
424
+ let cleanedCount = 0;
425
+ const newTasks = new Map(state.tasks);
426
+ let contextIndex = state.contextIndex;
427
+ let stateIndex = state.stateIndex;
428
+ for (const [taskId, stored] of state.tasks) {
429
+ if (stored.expiresAt && stored.expiresAt < now) {
430
+ newTasks.delete(taskId);
431
+ const removeResult = removeFromIndices(contextIndex, stateIndex, taskId, stored.contextId, stored.state);
432
+ contextIndex = removeResult.contextIndex;
433
+ stateIndex = removeResult.stateIndex;
434
+ cleanedCount++;
435
+ }
436
+ }
437
+ updateState({
438
+ ...state,
439
+ tasks: newTasks,
440
+ contextIndex,
441
+ stateIndex,
442
+ stats: {
443
+ ...state.stats,
444
+ totalTasks: newTasks.size
445
+ }
446
+ });
447
+ return createSuccess(cleanedCount);
448
+ }
449
+ catch (error) {
450
+ return createFailure(createA2ATaskStorageError('cleanup', 'in-memory', undefined, error));
451
+ }
452
+ },
453
+ getTaskStats: async (contextId) => {
454
+ try {
455
+ const tasksByState = {
456
+ submitted: 0,
457
+ working: 0,
458
+ 'input-required': 0,
459
+ completed: 0,
460
+ canceled: 0,
461
+ failed: 0,
462
+ rejected: 0,
463
+ 'auth-required': 0,
464
+ unknown: 0
465
+ };
466
+ let totalTasks = 0;
467
+ let oldestTask;
468
+ let newestTask;
469
+ const tasksToCount = contextId
470
+ ? (state.contextIndex.get(contextId) || new Set())
471
+ : new Set(state.tasks.keys());
472
+ for (const taskId of tasksToCount) {
473
+ const stored = state.tasks.get(taskId);
474
+ if (!stored)
475
+ continue;
476
+ // Skip expired tasks
477
+ if (stored.expiresAt && stored.expiresAt < new Date())
478
+ continue;
479
+ totalTasks++;
480
+ tasksByState[stored.state]++;
481
+ if (!oldestTask || stored.createdAt < oldestTask) {
482
+ oldestTask = stored.createdAt;
483
+ }
484
+ if (!newestTask || stored.createdAt > newestTask) {
485
+ newestTask = stored.createdAt;
486
+ }
487
+ }
488
+ return createSuccess({
489
+ totalTasks,
490
+ tasksByState,
491
+ oldestTask,
492
+ newestTask
493
+ });
494
+ }
495
+ catch (error) {
496
+ return createFailure(createA2ATaskStorageError('stats', 'in-memory', undefined, error));
497
+ }
498
+ },
499
+ healthCheck: async () => {
500
+ try {
501
+ const startTime = Date.now();
502
+ // Simple health check - verify we can access storage
503
+ const taskCount = state.tasks.size;
504
+ const latencyMs = Date.now() - startTime;
505
+ return createSuccess({
506
+ healthy: true,
507
+ latencyMs,
508
+ error: undefined
509
+ });
510
+ }
511
+ catch (error) {
512
+ return createSuccess({
513
+ healthy: false,
514
+ error: error.message
515
+ });
516
+ }
517
+ },
518
+ close: async () => {
519
+ try {
520
+ // Clear all data for cleanup
521
+ updateState({
522
+ tasks: new Map(),
523
+ contextIndex: new Map(),
524
+ stateIndex: new Map(),
525
+ config,
526
+ stats: {
527
+ totalTasks: 0,
528
+ createdAt: new Date()
529
+ }
530
+ });
531
+ return createSuccess(undefined);
532
+ }
533
+ catch (error) {
534
+ return createFailure(createA2ATaskStorageError('close', 'in-memory', undefined, error));
535
+ }
536
+ }
537
+ };
538
+ };
539
+ //# sourceMappingURL=in-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../../../src/a2a/memory/providers/in-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A2A PostgreSQL Task Provider for JAF
3
+ * Pure functional PostgreSQL-based storage for A2A tasks
4
+ */
5
+ import { A2ATaskProvider, A2APostgresTaskConfig } from '../types.js';
6
+ /**
7
+ * Create a PostgreSQL-based A2A task provider
8
+ */
9
+ export declare const createA2APostgresTaskProvider: (config: A2APostgresTaskConfig, client: any) => Promise<A2ATaskProvider>;
10
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../../src/a2a/memory/providers/postgres.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,eAAe,EAEf,qBAAqB,EAKtB,MAAM,aAAa,CAAC;AAmGrB;;GAEG;AACH,eAAO,MAAM,6BAA6B,GACxC,QAAQ,qBAAqB,EAC7B,QAAQ,GAAG,KACV,OAAO,CAAC,eAAe,CA6XzB,CAAC"}