@xynehq/jaf 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +596 -0
- package/dist/a2a/agent-card.d.ts +28 -0
- package/dist/a2a/agent-card.d.ts.map +1 -0
- package/dist/a2a/agent-card.js +250 -0
- package/dist/a2a/agent-card.js.map +1 -0
- package/dist/a2a/agent.d.ts +38 -0
- package/dist/a2a/agent.d.ts.map +1 -0
- package/dist/a2a/agent.js +223 -0
- package/dist/a2a/agent.js.map +1 -0
- package/dist/a2a/client.d.ts +35 -0
- package/dist/a2a/client.d.ts.map +1 -0
- package/dist/a2a/client.js +337 -0
- package/dist/a2a/client.js.map +1 -0
- package/dist/a2a/examples/client-example.d.ts +104 -0
- package/dist/a2a/examples/client-example.d.ts.map +1 -0
- package/dist/a2a/examples/client-example.js +232 -0
- package/dist/a2a/examples/client-example.js.map +1 -0
- package/dist/a2a/examples/server-example.d.ts +9 -0
- package/dist/a2a/examples/server-example.d.ts.map +1 -0
- package/dist/a2a/examples/server-example.js +209 -0
- package/dist/a2a/examples/server-example.js.map +1 -0
- package/dist/a2a/examples/weather-agent.d.ts +8 -0
- package/dist/a2a/examples/weather-agent.d.ts.map +1 -0
- package/dist/a2a/examples/weather-agent.js +232 -0
- package/dist/a2a/examples/weather-agent.js.map +1 -0
- package/dist/a2a/executor.d.ts +43 -0
- package/dist/a2a/executor.d.ts.map +1 -0
- package/dist/a2a/executor.js +507 -0
- package/dist/a2a/executor.js.map +1 -0
- package/dist/a2a/index.d.ts +378 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +72 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/memory/cleanup.d.ts +58 -0
- package/dist/a2a/memory/cleanup.d.ts.map +1 -0
- package/dist/a2a/memory/cleanup.js +281 -0
- package/dist/a2a/memory/cleanup.js.map +1 -0
- package/dist/a2a/memory/factory.d.ts +38 -0
- package/dist/a2a/memory/factory.d.ts.map +1 -0
- package/dist/a2a/memory/factory.js +369 -0
- package/dist/a2a/memory/factory.js.map +1 -0
- package/dist/a2a/memory/index.d.ts +13 -0
- package/dist/a2a/memory/index.d.ts.map +1 -0
- package/dist/a2a/memory/index.js +16 -0
- package/dist/a2a/memory/index.js.map +1 -0
- package/dist/a2a/memory/providers/in-memory.d.ts +10 -0
- package/dist/a2a/memory/providers/in-memory.d.ts.map +1 -0
- package/dist/a2a/memory/providers/in-memory.js +539 -0
- package/dist/a2a/memory/providers/in-memory.js.map +1 -0
- package/dist/a2a/memory/providers/postgres.d.ts +10 -0
- package/dist/a2a/memory/providers/postgres.d.ts.map +1 -0
- package/dist/a2a/memory/providers/postgres.js +404 -0
- package/dist/a2a/memory/providers/postgres.js.map +1 -0
- package/dist/a2a/memory/providers/redis.d.ts +10 -0
- package/dist/a2a/memory/providers/redis.d.ts.map +1 -0
- package/dist/a2a/memory/providers/redis.js +435 -0
- package/dist/a2a/memory/providers/redis.js.map +1 -0
- package/dist/a2a/memory/serialization.d.ts +53 -0
- package/dist/a2a/memory/serialization.d.ts.map +1 -0
- package/dist/a2a/memory/serialization.js +233 -0
- package/dist/a2a/memory/serialization.js.map +1 -0
- package/dist/a2a/memory/types.d.ts +395 -0
- package/dist/a2a/memory/types.d.ts.map +1 -0
- package/dist/a2a/memory/types.js +85 -0
- package/dist/a2a/memory/types.js.map +1 -0
- package/dist/a2a/protocol.d.ts +38 -0
- package/dist/a2a/protocol.d.ts.map +1 -0
- package/dist/a2a/protocol.js +211 -0
- package/dist/a2a/protocol.js.map +1 -0
- package/dist/a2a/server.d.ts +343 -0
- package/dist/a2a/server.d.ts.map +1 -0
- package/dist/a2a/server.js +362 -0
- package/dist/a2a/server.js.map +1 -0
- package/dist/a2a/types.d.ts +730 -0
- package/dist/a2a/types.d.ts.map +1 -0
- package/dist/a2a/types.js +73 -0
- package/dist/a2a/types.js.map +1 -0
- package/dist/adk/agents/index.d.ts +48 -0
- package/dist/adk/agents/index.d.ts.map +1 -0
- package/dist/adk/agents/index.js +277 -0
- package/dist/adk/agents/index.js.map +1 -0
- package/dist/adk/artifacts/index.d.ts +62 -0
- package/dist/adk/artifacts/index.d.ts.map +1 -0
- package/dist/adk/artifacts/index.js +394 -0
- package/dist/adk/artifacts/index.js.map +1 -0
- package/dist/adk/config/llm-config.d.ts +75 -0
- package/dist/adk/config/llm-config.d.ts.map +1 -0
- package/dist/adk/config/llm-config.js +422 -0
- package/dist/adk/config/llm-config.js.map +1 -0
- package/dist/adk/content/index.d.ts +58 -0
- package/dist/adk/content/index.d.ts.map +1 -0
- package/dist/adk/content/index.js +220 -0
- package/dist/adk/content/index.js.map +1 -0
- package/dist/adk/examples/advanced-features.d.ts +22 -0
- package/dist/adk/examples/advanced-features.d.ts.map +1 -0
- package/dist/adk/examples/advanced-features.js +380 -0
- package/dist/adk/examples/advanced-features.js.map +1 -0
- package/dist/adk/examples/basic-agent.d.ts +28 -0
- package/dist/adk/examples/basic-agent.d.ts.map +1 -0
- package/dist/adk/examples/basic-agent.js +207 -0
- package/dist/adk/examples/basic-agent.js.map +1 -0
- package/dist/adk/examples/multi-agent.d.ts +24 -0
- package/dist/adk/examples/multi-agent.d.ts.map +1 -0
- package/dist/adk/examples/multi-agent.js +321 -0
- package/dist/adk/examples/multi-agent.js.map +1 -0
- package/dist/adk/examples/streaming-example.d.ts +9 -0
- package/dist/adk/examples/streaming-example.d.ts.map +1 -0
- package/dist/adk/examples/streaming-example.js +193 -0
- package/dist/adk/examples/streaming-example.js.map +1 -0
- package/dist/adk/index.d.ts +65 -0
- package/dist/adk/index.d.ts.map +1 -0
- package/dist/adk/index.js +251 -0
- package/dist/adk/index.js.map +1 -0
- package/dist/adk/models.d.ts +338 -0
- package/dist/adk/models.d.ts.map +1 -0
- package/dist/adk/models.js +466 -0
- package/dist/adk/models.js.map +1 -0
- package/dist/adk/providers/error-handler.d.ts +100 -0
- package/dist/adk/providers/error-handler.d.ts.map +1 -0
- package/dist/adk/providers/error-handler.js +289 -0
- package/dist/adk/providers/error-handler.js.map +1 -0
- package/dist/adk/providers/llm-service.d.ts +41 -0
- package/dist/adk/providers/llm-service.d.ts.map +1 -0
- package/dist/adk/providers/llm-service.js +520 -0
- package/dist/adk/providers/llm-service.js.map +1 -0
- package/dist/adk/providers/type-converters.d.ts +34 -0
- package/dist/adk/providers/type-converters.d.ts.map +1 -0
- package/dist/adk/providers/type-converters.js +436 -0
- package/dist/adk/providers/type-converters.js.map +1 -0
- package/dist/adk/runners/index.d.ts +33 -0
- package/dist/adk/runners/index.d.ts.map +1 -0
- package/dist/adk/runners/index.js +466 -0
- package/dist/adk/runners/index.js.map +1 -0
- package/dist/adk/schemas/index.d.ts +85 -0
- package/dist/adk/schemas/index.d.ts.map +1 -0
- package/dist/adk/schemas/index.js +363 -0
- package/dist/adk/schemas/index.js.map +1 -0
- package/dist/adk/sessions/examples/session-provider-usage.d.ts +10 -0
- package/dist/adk/sessions/examples/session-provider-usage.d.ts.map +1 -0
- package/dist/adk/sessions/examples/session-provider-usage.js +145 -0
- package/dist/adk/sessions/examples/session-provider-usage.js.map +1 -0
- package/dist/adk/sessions/index.d.ts +53 -0
- package/dist/adk/sessions/index.d.ts.map +1 -0
- package/dist/adk/sessions/index.js +451 -0
- package/dist/adk/sessions/index.js.map +1 -0
- package/dist/adk/sessions/postgres-provider.d.ts +22 -0
- package/dist/adk/sessions/postgres-provider.d.ts.map +1 -0
- package/dist/adk/sessions/postgres-provider.js +293 -0
- package/dist/adk/sessions/postgres-provider.js.map +1 -0
- package/dist/adk/sessions/redis-provider.d.ts +19 -0
- package/dist/adk/sessions/redis-provider.d.ts.map +1 -0
- package/dist/adk/sessions/redis-provider.js +237 -0
- package/dist/adk/sessions/redis-provider.js.map +1 -0
- package/dist/adk/streaming/index.d.ts +76 -0
- package/dist/adk/streaming/index.d.ts.map +1 -0
- package/dist/adk/streaming/index.js +419 -0
- package/dist/adk/streaming/index.js.map +1 -0
- package/dist/adk/tools/index.d.ts +27 -0
- package/dist/adk/tools/index.d.ts.map +1 -0
- package/dist/adk/tools/index.js +506 -0
- package/dist/adk/tools/index.js.map +1 -0
- package/dist/adk/types.d.ts +351 -0
- package/dist/adk/types.d.ts.map +1 -0
- package/dist/adk/types.js +107 -0
- package/dist/adk/types.js.map +1 -0
- package/dist/core/engine.d.ts +3 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +438 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/errors.d.ts +8 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +84 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/tool-results.d.ts +57 -0
- package/dist/core/tool-results.d.ts.map +1 -0
- package/dist/core/tool-results.js +133 -0
- package/dist/core/tool-results.js.map +1 -0
- package/dist/core/tracing.d.ts +32 -0
- package/dist/core/tracing.d.ts.map +1 -0
- package/dist/core/tracing.js +132 -0
- package/dist/core/tracing.js.map +1 -0
- package/dist/core/types.d.ts +165 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/demo/agents.d.ts +23 -0
- package/dist/demo/agents.d.ts.map +1 -0
- package/dist/demo/agents.js +69 -0
- package/dist/demo/agents.js.map +1 -0
- package/dist/demo/index.d.ts +2 -0
- package/dist/demo/index.d.ts.map +1 -0
- package/dist/demo/index.js +250 -0
- package/dist/demo/index.js.map +1 -0
- package/dist/demo/mock-provider.d.ts +22 -0
- package/dist/demo/mock-provider.d.ts.map +1 -0
- package/dist/demo/mock-provider.js +138 -0
- package/dist/demo/mock-provider.js.map +1 -0
- package/dist/demo/tools.d.ts +14 -0
- package/dist/demo/tools.d.ts.map +1 -0
- package/dist/demo/tools.js +115 -0
- package/dist/demo/tools.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/factory.d.ts +22 -0
- package/dist/memory/factory.d.ts.map +1 -0
- package/dist/memory/factory.js +88 -0
- package/dist/memory/factory.js.map +1 -0
- package/dist/memory/providers/in-memory.d.ts +7 -0
- package/dist/memory/providers/in-memory.d.ts.map +1 -0
- package/dist/memory/providers/in-memory.js +287 -0
- package/dist/memory/providers/in-memory.js.map +1 -0
- package/dist/memory/providers/postgres.d.ts +15 -0
- package/dist/memory/providers/postgres.d.ts.map +1 -0
- package/dist/memory/providers/postgres.js +495 -0
- package/dist/memory/providers/postgres.js.map +1 -0
- package/dist/memory/providers/redis.d.ts +18 -0
- package/dist/memory/providers/redis.d.ts.map +1 -0
- package/dist/memory/providers/redis.js +354 -0
- package/dist/memory/providers/redis.js.map +1 -0
- package/dist/memory/types.d.ts +296 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +93 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/policies/handoff.d.ts +16 -0
- package/dist/policies/handoff.d.ts.map +1 -0
- package/dist/policies/handoff.js +20 -0
- package/dist/policies/handoff.js.map +1 -0
- package/dist/policies/validation.d.ts +14 -0
- package/dist/policies/validation.d.ts.map +1 -0
- package/dist/policies/validation.js +92 -0
- package/dist/policies/validation.js.map +1 -0
- package/dist/providers/mcp.d.ts +17 -0
- package/dist/providers/mcp.d.ts.map +1 -0
- package/dist/providers/mcp.js +111 -0
- package/dist/providers/mcp.js.map +1 -0
- package/dist/providers/model.d.ts +3 -0
- package/dist/providers/model.d.ts.map +1 -0
- package/dist/providers/model.js +113 -0
- package/dist/providers/model.js.map +1 -0
- package/dist/server/index.d.ts +35 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +66 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/server.d.ts +12 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +394 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/types.d.ts +456 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +75 -0
- package/dist/server/types.js.map +1 -0
- package/dist/test-utils/db-setup.d.ts +34 -0
- package/dist/test-utils/db-setup.d.ts.map +1 -0
- package/dist/test-utils/db-setup.js +149 -0
- package/dist/test-utils/db-setup.js.map +1 -0
- package/dist/utils/logger.d.ts +63 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +199 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/safe-math.d.ts +31 -0
- package/dist/utils/safe-math.d.ts.map +1 -0
- package/dist/utils/safe-math.js +86 -0
- package/dist/utils/safe-math.js.map +1 -0
- package/dist/visualization/example.d.ts +9 -0
- package/dist/visualization/example.d.ts.map +1 -0
- package/dist/visualization/example.js +236 -0
- package/dist/visualization/example.js.map +1 -0
- package/dist/visualization/graphviz.d.ts +42 -0
- package/dist/visualization/graphviz.d.ts.map +1 -0
- package/dist/visualization/graphviz.js +403 -0
- package/dist/visualization/graphviz.js.map +1 -0
- package/dist/visualization/index.d.ts +10 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +12 -0
- package/dist/visualization/index.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1,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"}
|