@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,404 @@
1
+ /**
2
+ * A2A PostgreSQL Task Provider for JAF
3
+ * Pure functional PostgreSQL-based storage for A2A tasks
4
+ */
5
+ import { createA2ATaskNotFoundError, createA2ATaskStorageError, createSuccess, createFailure } from '../types.js';
6
+ import { serializeA2ATask, deserializeA2ATask, sanitizeTask } from '../serialization.js';
7
+ /**
8
+ * SQL queries for A2A task operations
9
+ */
10
+ const SQL_QUERIES = {
11
+ CREATE_TABLE: `
12
+ CREATE TABLE IF NOT EXISTS a2a_tasks (
13
+ task_id VARCHAR(255) PRIMARY KEY,
14
+ context_id VARCHAR(255) NOT NULL,
15
+ state VARCHAR(50) NOT NULL,
16
+ task_data JSONB NOT NULL,
17
+ status_message JSONB,
18
+ created_at TIMESTAMP WITH TIME ZONE NOT NULL,
19
+ updated_at TIMESTAMP WITH TIME ZONE NOT NULL,
20
+ expires_at TIMESTAMP WITH TIME ZONE,
21
+ metadata JSONB
22
+ );
23
+
24
+ CREATE INDEX IF NOT EXISTS idx_a2a_tasks_context_id ON a2a_tasks (context_id);
25
+ CREATE INDEX IF NOT EXISTS idx_a2a_tasks_state ON a2a_tasks (state);
26
+ CREATE INDEX IF NOT EXISTS idx_a2a_tasks_created_at ON a2a_tasks (created_at);
27
+ CREATE INDEX IF NOT EXISTS idx_a2a_tasks_expires_at ON a2a_tasks (expires_at) WHERE expires_at IS NOT NULL;
28
+ `,
29
+ INSERT_TASK: `
30
+ INSERT INTO a2a_tasks (
31
+ task_id, context_id, state, task_data, status_message,
32
+ created_at, updated_at, expires_at, metadata
33
+ ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
34
+ `,
35
+ SELECT_TASK: `
36
+ SELECT task_id, context_id, state, task_data, status_message,
37
+ created_at, updated_at, expires_at, metadata
38
+ FROM a2a_tasks
39
+ WHERE task_id = $1
40
+ AND (expires_at IS NULL OR expires_at > NOW())
41
+ `,
42
+ UPDATE_TASK: `
43
+ UPDATE a2a_tasks
44
+ SET state = $2, task_data = $3, status_message = $4,
45
+ updated_at = $5, metadata = $6
46
+ WHERE task_id = $1
47
+ AND (expires_at IS NULL OR expires_at > NOW())
48
+ `,
49
+ DELETE_TASK: `
50
+ DELETE FROM a2a_tasks
51
+ WHERE task_id = $1
52
+ `,
53
+ DELETE_TASKS_BY_CONTEXT: `
54
+ DELETE FROM a2a_tasks
55
+ WHERE context_id = $1
56
+ `,
57
+ CLEANUP_EXPIRED: `
58
+ DELETE FROM a2a_tasks
59
+ WHERE expires_at IS NOT NULL AND expires_at <= NOW()
60
+ `,
61
+ COUNT_TASKS: `
62
+ SELECT COUNT(*) as total
63
+ FROM a2a_tasks
64
+ WHERE (expires_at IS NULL OR expires_at > NOW())
65
+ `,
66
+ COUNT_TASKS_BY_CONTEXT: `
67
+ SELECT COUNT(*) as total
68
+ FROM a2a_tasks
69
+ WHERE context_id = $1
70
+ AND (expires_at IS NULL OR expires_at > NOW())
71
+ `,
72
+ STATS_BY_STATE: `
73
+ SELECT state, COUNT(*) as count
74
+ FROM a2a_tasks
75
+ WHERE (expires_at IS NULL OR expires_at > NOW())
76
+ AND ($1::text IS NULL OR context_id = $1)
77
+ GROUP BY state
78
+ `,
79
+ DATE_RANGE: `
80
+ SELECT MIN(created_at) as oldest, MAX(created_at) as newest
81
+ FROM a2a_tasks
82
+ WHERE (expires_at IS NULL OR expires_at > NOW())
83
+ AND ($1::text IS NULL OR context_id = $1)
84
+ `
85
+ };
86
+ /**
87
+ * Create a PostgreSQL-based A2A task provider
88
+ */
89
+ export const createA2APostgresTaskProvider = async (config, client // PostgreSQL client (pg.Client or pg.Pool)
90
+ ) => {
91
+ const tableName = config.tableName || 'a2a_tasks';
92
+ // Initialize database schema
93
+ await client.query(SQL_QUERIES.CREATE_TABLE.replace(/a2a_tasks/g, tableName));
94
+ // Pure function to convert database row to serialized task
95
+ const rowToSerializedTask = (row) => ({
96
+ taskId: row.task_id,
97
+ contextId: row.context_id,
98
+ state: row.state,
99
+ taskData: typeof row.task_data === 'string' ? row.task_data : JSON.stringify(row.task_data),
100
+ statusMessage: row.status_message ?
101
+ (typeof row.status_message === 'string' ? row.status_message : JSON.stringify(row.status_message)) :
102
+ undefined,
103
+ createdAt: row.created_at.toISOString(),
104
+ updatedAt: row.updated_at.toISOString(),
105
+ metadata: row.metadata ?
106
+ (typeof row.metadata === 'string' ? row.metadata : JSON.stringify(row.metadata)) :
107
+ undefined
108
+ });
109
+ // Pure function to build WHERE clause for queries
110
+ const buildWhereClause = (query) => {
111
+ const conditions = ['(expires_at IS NULL OR expires_at > NOW())'];
112
+ const params = [];
113
+ let paramIndex = 1;
114
+ if (query.taskId) {
115
+ conditions.push(`task_id = $${paramIndex++}`);
116
+ params.push(query.taskId);
117
+ }
118
+ if (query.contextId) {
119
+ conditions.push(`context_id = $${paramIndex++}`);
120
+ params.push(query.contextId);
121
+ }
122
+ if (query.state) {
123
+ conditions.push(`state = $${paramIndex++}`);
124
+ params.push(query.state);
125
+ }
126
+ if (query.since) {
127
+ conditions.push(`created_at >= $${paramIndex++}`);
128
+ params.push(query.since);
129
+ }
130
+ if (query.until) {
131
+ conditions.push(`created_at <= $${paramIndex++}`);
132
+ params.push(query.until);
133
+ }
134
+ return {
135
+ clause: conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '',
136
+ params
137
+ };
138
+ };
139
+ // Forward declare provider for recursive calls
140
+ // let provider: A2ATaskProvider;
141
+ const providerImpl = {
142
+ storeTask: async (task, metadata) => {
143
+ try {
144
+ // Validate and sanitize task
145
+ const sanitizeResult = sanitizeTask(task);
146
+ if (!sanitizeResult.success) {
147
+ return sanitizeResult;
148
+ }
149
+ // Serialize task
150
+ const serializeResult = serializeA2ATask(sanitizeResult.data, metadata);
151
+ if (!serializeResult.success) {
152
+ return serializeResult;
153
+ }
154
+ const serialized = serializeResult.data;
155
+ const query = SQL_QUERIES.INSERT_TASK.replace(/a2a_tasks/g, tableName);
156
+ await client.query(query, [
157
+ serialized.taskId,
158
+ serialized.contextId,
159
+ serialized.state,
160
+ serialized.taskData,
161
+ serialized.statusMessage,
162
+ new Date(serialized.createdAt),
163
+ new Date(serialized.updatedAt),
164
+ metadata?.expiresAt || null,
165
+ metadata ? JSON.stringify(metadata) : null
166
+ ]);
167
+ return createSuccess(undefined);
168
+ }
169
+ catch (error) {
170
+ return createFailure(createA2ATaskStorageError('store', 'postgres', task.id, error));
171
+ }
172
+ },
173
+ getTask: async (taskId) => {
174
+ try {
175
+ const query = SQL_QUERIES.SELECT_TASK.replace(/a2a_tasks/g, tableName);
176
+ const result = await client.query(query, [taskId]);
177
+ if (result.rows.length === 0) {
178
+ return createSuccess(null);
179
+ }
180
+ const row = result.rows[0];
181
+ const serialized = rowToSerializedTask(row);
182
+ const deserializeResult = deserializeA2ATask(serialized);
183
+ if (!deserializeResult.success) {
184
+ return deserializeResult;
185
+ }
186
+ return createSuccess(deserializeResult.data);
187
+ }
188
+ catch (error) {
189
+ return createFailure(createA2ATaskStorageError('get', 'postgres', taskId, error));
190
+ }
191
+ },
192
+ updateTask: async (task, metadata) => {
193
+ try {
194
+ // Check if task exists
195
+ const existingResult = await providerImpl.getTask(task.id);
196
+ if (!existingResult.success) {
197
+ return existingResult;
198
+ }
199
+ if (!existingResult.data) {
200
+ return createFailure(createA2ATaskNotFoundError(task.id, 'postgres'));
201
+ }
202
+ // Validate and sanitize task
203
+ const sanitizeResult = sanitizeTask(task);
204
+ if (!sanitizeResult.success) {
205
+ return sanitizeResult;
206
+ }
207
+ // Merge metadata
208
+ const existingQuery = SQL_QUERIES.SELECT_TASK.replace(/a2a_tasks/g, tableName);
209
+ const existingData = await client.query(existingQuery, [task.id]);
210
+ const existingMetadata = existingData.rows[0]?.metadata || {};
211
+ const mergedMetadata = { ...existingMetadata, ...metadata };
212
+ // Serialize updated task
213
+ const serializeResult = serializeA2ATask(sanitizeResult.data, mergedMetadata);
214
+ if (!serializeResult.success) {
215
+ return serializeResult;
216
+ }
217
+ const serialized = serializeResult.data;
218
+ const query = SQL_QUERIES.UPDATE_TASK.replace(/a2a_tasks/g, tableName);
219
+ const result = await client.query(query, [
220
+ task.id,
221
+ serialized.state,
222
+ serialized.taskData,
223
+ serialized.statusMessage,
224
+ new Date(serialized.updatedAt),
225
+ JSON.stringify(mergedMetadata)
226
+ ]);
227
+ if (result.rowCount === 0) {
228
+ return createFailure(createA2ATaskNotFoundError(task.id, 'postgres'));
229
+ }
230
+ return createSuccess(undefined);
231
+ }
232
+ catch (error) {
233
+ return createFailure(createA2ATaskStorageError('update', 'postgres', task.id, error));
234
+ }
235
+ },
236
+ updateTaskStatus: async (taskId, newState, statusMessage, timestamp) => {
237
+ try {
238
+ // Get existing task
239
+ const existingResult = await providerImpl.getTask(taskId);
240
+ if (!existingResult.success) {
241
+ return existingResult;
242
+ }
243
+ if (!existingResult.data) {
244
+ return createFailure(createA2ATaskNotFoundError(taskId, 'postgres'));
245
+ }
246
+ const task = existingResult.data;
247
+ // Update task status
248
+ const updatedTask = {
249
+ ...task,
250
+ status: {
251
+ ...task.status,
252
+ state: newState,
253
+ message: statusMessage || task.status.message,
254
+ timestamp: timestamp || new Date().toISOString()
255
+ }
256
+ };
257
+ return providerImpl.updateTask(updatedTask);
258
+ }
259
+ catch (error) {
260
+ return createFailure(createA2ATaskStorageError('update-status', 'postgres', taskId, error));
261
+ }
262
+ },
263
+ findTasks: async (query) => {
264
+ try {
265
+ const { clause, params } = buildWhereClause(query);
266
+ let sql = `
267
+ SELECT task_id, context_id, state, task_data, status_message,
268
+ created_at, updated_at, expires_at, metadata
269
+ FROM ${tableName}
270
+ ${clause}
271
+ ORDER BY created_at DESC
272
+ `;
273
+ // Add pagination
274
+ if (query.limit) {
275
+ sql += ` LIMIT ${query.limit}`;
276
+ }
277
+ if (query.offset) {
278
+ sql += ` OFFSET ${query.offset}`;
279
+ }
280
+ const result = await client.query(sql, params);
281
+ const tasks = [];
282
+ for (const row of result.rows) {
283
+ const serialized = rowToSerializedTask(row);
284
+ const deserializeResult = deserializeA2ATask(serialized);
285
+ if (deserializeResult.success) {
286
+ tasks.push(deserializeResult.data);
287
+ }
288
+ }
289
+ return createSuccess(tasks);
290
+ }
291
+ catch (error) {
292
+ return createFailure(createA2ATaskStorageError('find', 'postgres', undefined, error));
293
+ }
294
+ },
295
+ getTasksByContext: async (contextId, limit) => {
296
+ return providerImpl.findTasks({ contextId, limit });
297
+ },
298
+ deleteTask: async (taskId) => {
299
+ try {
300
+ const query = SQL_QUERIES.DELETE_TASK.replace(/a2a_tasks/g, tableName);
301
+ const result = await client.query(query, [taskId]);
302
+ return createSuccess(result.rowCount > 0);
303
+ }
304
+ catch (error) {
305
+ return createFailure(createA2ATaskStorageError('delete', 'postgres', taskId, error));
306
+ }
307
+ },
308
+ deleteTasksByContext: async (contextId) => {
309
+ try {
310
+ const query = SQL_QUERIES.DELETE_TASKS_BY_CONTEXT.replace(/a2a_tasks/g, tableName);
311
+ const result = await client.query(query, [contextId]);
312
+ return createSuccess(result.rowCount || 0);
313
+ }
314
+ catch (error) {
315
+ return createFailure(createA2ATaskStorageError('delete-by-context', 'postgres', undefined, error));
316
+ }
317
+ },
318
+ cleanupExpiredTasks: async () => {
319
+ try {
320
+ const query = SQL_QUERIES.CLEANUP_EXPIRED.replace(/a2a_tasks/g, tableName);
321
+ const result = await client.query(query);
322
+ return createSuccess(result.rowCount || 0);
323
+ }
324
+ catch (error) {
325
+ return createFailure(createA2ATaskStorageError('cleanup', 'postgres', undefined, error));
326
+ }
327
+ },
328
+ getTaskStats: async (contextId) => {
329
+ try {
330
+ const tasksByState = {
331
+ submitted: 0,
332
+ working: 0,
333
+ 'input-required': 0,
334
+ completed: 0,
335
+ canceled: 0,
336
+ failed: 0,
337
+ rejected: 0,
338
+ 'auth-required': 0,
339
+ unknown: 0
340
+ };
341
+ // Get state counts
342
+ const stateQuery = SQL_QUERIES.STATS_BY_STATE.replace(/a2a_tasks/g, tableName);
343
+ const stateResult = await client.query(stateQuery, [contextId || null]);
344
+ let totalTasks = 0;
345
+ for (const row of stateResult.rows) {
346
+ const state = row.state;
347
+ const count = parseInt(row.count);
348
+ if (state in tasksByState) {
349
+ tasksByState[state] = count;
350
+ }
351
+ totalTasks += count;
352
+ }
353
+ // Get date range
354
+ const dateQuery = SQL_QUERIES.DATE_RANGE.replace(/a2a_tasks/g, tableName);
355
+ const dateResult = await client.query(dateQuery, [contextId || null]);
356
+ let oldestTask;
357
+ let newestTask;
358
+ if (dateResult.rows.length > 0 && dateResult.rows[0].oldest) {
359
+ oldestTask = new Date(dateResult.rows[0].oldest);
360
+ newestTask = new Date(dateResult.rows[0].newest);
361
+ }
362
+ return createSuccess({
363
+ totalTasks,
364
+ tasksByState,
365
+ oldestTask,
366
+ newestTask
367
+ });
368
+ }
369
+ catch (error) {
370
+ return createFailure(createA2ATaskStorageError('stats', 'postgres', undefined, error));
371
+ }
372
+ },
373
+ healthCheck: async () => {
374
+ try {
375
+ const startTime = Date.now();
376
+ // Simple query to check database connectivity
377
+ await client.query('SELECT 1');
378
+ const latencyMs = Date.now() - startTime;
379
+ return createSuccess({
380
+ healthy: true,
381
+ latencyMs
382
+ });
383
+ }
384
+ catch (error) {
385
+ return createSuccess({
386
+ healthy: false,
387
+ error: error.message
388
+ });
389
+ }
390
+ },
391
+ close: async () => {
392
+ try {
393
+ // PostgreSQL client cleanup is typically handled externally
394
+ // We don't close the client here as it might be a pool or shared connection
395
+ return createSuccess(undefined);
396
+ }
397
+ catch (error) {
398
+ return createFailure(createA2ATaskStorageError('close', 'postgres', undefined, error));
399
+ }
400
+ }
401
+ };
402
+ return providerImpl;
403
+ };
404
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../../src/a2a/memory/providers/postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A2A Redis Task Provider for JAF
3
+ * Pure functional Redis-based storage for A2A tasks
4
+ */
5
+ import { A2ATaskProvider, A2ARedisTaskConfig } from '../types.js';
6
+ /**
7
+ * Create a Redis-based A2A task provider
8
+ */
9
+ export declare const createA2ARedisTaskProvider: (config: A2ARedisTaskConfig, redisClient: any) => Promise<A2ATaskProvider>;
10
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/a2a/memory/providers/redis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,eAAe,EAEf,kBAAkB,EAKnB,MAAM,aAAa,CAAC;AASrB;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,kBAAkB,EAC1B,aAAa,GAAG,KACf,OAAO,CAAC,eAAe,CAkgBzB,CAAA"}