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