@artinet/sdk 0.6.0-preview.3 → 0.6.1
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/README.md +100 -50
- package/dist/browser/browser.d.ts +2 -7
- package/dist/browser/browser.js +2 -7
- package/dist/browser/config/observability.d.ts +1 -1
- package/dist/browser/create/message-builder.d.ts +1 -1
- package/dist/browser/create/message-builder.js +19 -7
- package/dist/browser/create/task-builder.js +5 -1
- package/dist/browser/messenger/index.d.ts +1 -0
- package/dist/browser/messenger/index.js +1 -0
- package/dist/browser/messenger/messenger.d.ts +119 -0
- package/dist/browser/messenger/messenger.js +280 -0
- package/dist/browser/types/a2a/a2a.d.ts +38 -20
- package/dist/browser/types/a2a/a2a.js +0 -1
- package/dist/browser/types/core/core.d.ts +4 -2
- package/dist/browser/types/index.d.ts +0 -1
- package/dist/browser/types/index.js +0 -1
- package/dist/browser/types/storage.d.ts +2 -14
- package/dist/browser/types/storage.js +0 -4
- package/dist/browser/utils/{common/constants.d.ts → constants.d.ts} +1 -1
- package/dist/{utils/common → browser/utils}/constants.js +1 -1
- package/dist/browser/utils/{common/errors.d.ts → errors.d.ts} +17 -36
- package/dist/browser/utils/errors.js +76 -0
- package/dist/browser/utils/index.d.ts +6 -0
- package/dist/browser/utils/index.js +6 -0
- package/dist/{utils/common → browser/utils}/parse.js +4 -1
- package/dist/{utils/common → browser/utils}/schema-validation.js +2 -2
- package/dist/config/index.d.ts +1 -1
- package/dist/config/observability.d.ts +1 -1
- package/dist/create/agent-builder.d.ts +1 -1
- package/dist/create/create.d.ts +19 -20
- package/dist/create/create.js +33 -101
- package/dist/create/message-builder.d.ts +1 -1
- package/dist/create/message-builder.js +19 -7
- package/dist/create/task-builder.js +5 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/messenger/index.d.ts +1 -0
- package/dist/messenger/index.js +1 -0
- package/dist/messenger/messenger.d.ts +119 -0
- package/dist/messenger/messenger.js +288 -0
- package/dist/server/adapters/a2a_request_handler.d.ts +889 -0
- package/dist/server/adapters/a2a_request_handler.js +241 -0
- package/dist/server/adapters/loadable.d.ts +7 -0
- package/dist/server/adapters/loadable.js +73 -0
- package/dist/server/adapters/notifications.d.ts +26 -0
- package/dist/server/adapters/notifications.js +77 -0
- package/dist/server/express/server.d.ts +11 -19
- package/dist/server/express/server.js +29 -64
- package/dist/server/express/utils.d.ts +14 -0
- package/dist/server/express/{errors.js → utils.js} +22 -0
- package/dist/server/index.d.ts +4 -1
- package/dist/server/index.js +4 -1
- package/dist/server/params.d.ts +115 -0
- package/dist/server/params.js +21 -0
- package/dist/services/a2a/factory/context.d.ts +2 -1
- package/dist/services/a2a/factory/context.js +4 -3
- package/dist/services/a2a/factory/handler.d.ts +1 -1
- package/dist/services/a2a/factory/handler.js +7 -6
- package/dist/services/a2a/factory/service.d.ts +1 -1
- package/dist/services/a2a/factory/service.js +2 -2
- package/dist/services/a2a/factory/state-machine.js +9 -6
- package/dist/services/a2a/handlers/cancel-task.d.ts +1 -1
- package/dist/services/a2a/handlers/get-task.d.ts +1 -1
- package/dist/services/a2a/handlers/resubscribe-task.d.ts +2 -2
- package/dist/services/a2a/handlers/send-message.d.ts +1 -1
- package/dist/services/a2a/handlers/stream-message.d.ts +2 -2
- package/dist/services/a2a/handlers/update.js +2 -2
- package/dist/services/a2a/index.d.ts +0 -1
- package/dist/services/a2a/index.js +0 -1
- package/dist/services/a2a/managers.js +2 -1
- package/dist/services/a2a/messenger.d.ts +1 -1
- package/dist/services/a2a/messenger.js +1 -1
- package/dist/services/a2a/service.d.ts +26 -21
- package/dist/services/a2a/service.js +163 -95
- package/dist/services/a2a/state-machine.d.ts +1 -1
- package/dist/services/a2a/state-machine.js +2 -1
- package/dist/services/a2a/streams.js +1 -1
- package/dist/services/core/manager.d.ts +5 -0
- package/dist/services/core/manager.js +6 -0
- package/dist/services/mcp/service.js +1 -1
- package/dist/{utils/storage → storage}/file.d.ts +4 -2
- package/dist/{utils/storage → storage}/file.js +5 -4
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.js +2 -0
- package/dist/storage/sqlite.d.ts +353 -0
- package/dist/storage/sqlite.js +85 -0
- package/dist/transport/trpc/a2a/factory/router.d.ts +16 -16
- package/dist/transport/trpc/a2a/routes/info.d.ts +2 -2
- package/dist/transport/trpc/a2a/routes/message/route.d.ts +3 -3
- package/dist/transport/trpc/a2a/routes/message/route.js +2 -2
- package/dist/transport/trpc/a2a/routes/tasks/route.d.ts +4 -4
- package/dist/transport/trpc/a2a/routes/tasks/route.js +3 -3
- package/dist/types/a2a/a2a.d.ts +38 -20
- package/dist/types/a2a/a2a.js +0 -1
- package/dist/types/core/core.d.ts +4 -2
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.js +0 -1
- package/dist/types/storage.d.ts +2 -14
- package/dist/types/storage.js +0 -4
- package/dist/utils/{common/constants.d.ts → constants.d.ts} +1 -1
- package/dist/{browser/utils/common → utils}/constants.js +1 -1
- package/dist/utils/{common/errors.d.ts → errors.d.ts} +17 -36
- package/dist/utils/errors.js +80 -0
- package/dist/utils/index.d.ts +6 -10
- package/dist/utils/index.js +6 -10
- package/dist/utils/parse.d.ts +7 -0
- package/dist/utils/parse.js +17 -0
- package/dist/utils/schema-validation.d.ts +2 -0
- package/dist/utils/schema-validation.js +12 -0
- package/package.json +35 -22
- package/dist/browser/client/a2a-client.d.ts +0 -127
- package/dist/browser/client/a2a-client.js +0 -233
- package/dist/browser/client/index.d.ts +0 -1
- package/dist/browser/client/index.js +0 -1
- package/dist/browser/transport/rpc/parser.d.ts +0 -15
- package/dist/browser/transport/rpc/parser.js +0 -49
- package/dist/browser/transport/rpc/rpc-client.d.ts +0 -80
- package/dist/browser/transport/rpc/rpc-client.js +0 -189
- package/dist/browser/transport/streaming/event-stream.d.ts +0 -25
- package/dist/browser/transport/streaming/event-stream.js +0 -100
- package/dist/browser/types/client.d.ts +0 -133
- package/dist/browser/types/client.js +0 -5
- package/dist/browser/utils/common/errors.js +0 -95
- package/dist/client/a2a-client.d.ts +0 -127
- package/dist/client/a2a-client.js +0 -237
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.js +0 -1
- package/dist/server/express/errors.d.ts +0 -9
- package/dist/server/express/index.d.ts +0 -3
- package/dist/server/express/index.js +0 -3
- package/dist/server/express/middeware.d.ts +0 -7
- package/dist/server/express/middeware.js +0 -121
- package/dist/transport/index.d.ts +0 -3
- package/dist/transport/index.js +0 -4
- package/dist/transport/rpc/parser.d.ts +0 -15
- package/dist/transport/rpc/parser.js +0 -49
- package/dist/transport/rpc/rpc-client.d.ts +0 -80
- package/dist/transport/rpc/rpc-client.js +0 -189
- package/dist/transport/streaming/event-stream.d.ts +0 -25
- package/dist/transport/streaming/event-stream.js +0 -100
- package/dist/types/client.d.ts +0 -133
- package/dist/types/client.js +0 -5
- package/dist/utils/common/errors.js +0 -98
- /package/dist/{utils/common → browser/utils}/parse.d.ts +0 -0
- /package/dist/{utils/common → browser/utils}/schema-validation.d.ts +0 -0
- /package/dist/browser/utils/{common/utils.d.ts → utils.d.ts} +0 -0
- /package/dist/browser/utils/{common/utils.js → utils.js} +0 -0
- /package/dist/utils/{common/utils.d.ts → utils.d.ts} +0 -0
- /package/dist/utils/{common/utils.js → utils.js} +0 -0
- /package/dist/utils/{common/zAsyncIterable-v3.d.ts → zAsyncIterable-v3.d.ts} +0 -0
- /package/dist/utils/{common/zAsyncIterable-v3.js → zAsyncIterable-v3.js} +0 -0
- /package/dist/utils/{common/zAsyncIterable.d.ts → zAsyncIterable.d.ts} +0 -0
- /package/dist/utils/{common/zAsyncIterable.js → zAsyncIterable.js} +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../types/index.js";
|
|
6
|
+
import { Agent, ServiceParams as CreateAgentParams } from "../services/a2a/index.js";
|
|
7
|
+
import { ExtendedAgentCardProvider } from "@a2a-js/sdk/server";
|
|
8
|
+
import { UserBuilder } from "@a2a-js/sdk/server/express";
|
|
9
|
+
export interface ServerParams {
|
|
10
|
+
basePath?: string;
|
|
11
|
+
port?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Your agentCard must have {@link A2A.AgentCard.supportsAuthenticatedExtendedCard} set to true
|
|
14
|
+
*/
|
|
15
|
+
extendedAgentCard?: A2A.AgentCard | ExtendedAgentCardProvider;
|
|
16
|
+
agent: Agent | CreateAgentParams;
|
|
17
|
+
agentCardPath?: string;
|
|
18
|
+
register?: boolean;
|
|
19
|
+
userBuilder?: UserBuilder;
|
|
20
|
+
}
|
|
21
|
+
export declare function isCreateAgentParams(agentOrParams: Agent | CreateAgentParams): agentOrParams is CreateAgentParams;
|
|
22
|
+
export declare function ensureAgent(agentOrParams: Agent | CreateAgentParams): Agent;
|
|
23
|
+
export declare function registerAgent(agentCard: A2A.AgentCard): Promise<{
|
|
24
|
+
protocolVersion: string;
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
url: string;
|
|
28
|
+
version: string;
|
|
29
|
+
capabilities: {
|
|
30
|
+
streaming?: boolean | undefined;
|
|
31
|
+
pushNotifications?: boolean | undefined;
|
|
32
|
+
stateTransitionHistory?: boolean | undefined;
|
|
33
|
+
extensions?: {
|
|
34
|
+
uri: string;
|
|
35
|
+
description?: string | undefined;
|
|
36
|
+
required?: boolean | undefined;
|
|
37
|
+
params?: Record<string, unknown> | undefined;
|
|
38
|
+
}[] | undefined;
|
|
39
|
+
};
|
|
40
|
+
defaultInputModes: string[];
|
|
41
|
+
defaultOutputModes: string[];
|
|
42
|
+
skills: {
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
description: string;
|
|
46
|
+
tags: string[];
|
|
47
|
+
examples?: string[] | undefined;
|
|
48
|
+
inputModes?: string[] | undefined;
|
|
49
|
+
outputModes?: string[] | undefined;
|
|
50
|
+
security?: Record<string, string[]>[] | undefined;
|
|
51
|
+
}[];
|
|
52
|
+
preferredTransport?: string | undefined;
|
|
53
|
+
additionalInterfaces?: {
|
|
54
|
+
url: string;
|
|
55
|
+
transport: string;
|
|
56
|
+
}[] | undefined;
|
|
57
|
+
iconUrl?: string | undefined;
|
|
58
|
+
provider?: {
|
|
59
|
+
organization: string;
|
|
60
|
+
url: string;
|
|
61
|
+
} | undefined;
|
|
62
|
+
documentationUrl?: string | undefined;
|
|
63
|
+
securitySchemes?: Record<string, {
|
|
64
|
+
type: "apiKey";
|
|
65
|
+
in: "query" | "header" | "cookie";
|
|
66
|
+
name: string;
|
|
67
|
+
description?: string | undefined;
|
|
68
|
+
} | {
|
|
69
|
+
type: "http";
|
|
70
|
+
scheme: string;
|
|
71
|
+
description?: string | undefined;
|
|
72
|
+
bearerFormat?: string | undefined;
|
|
73
|
+
} | {
|
|
74
|
+
type: "oauth2";
|
|
75
|
+
flows: {
|
|
76
|
+
authorizationCode?: {
|
|
77
|
+
authorizationUrl: string;
|
|
78
|
+
tokenUrl: string;
|
|
79
|
+
scopes: Record<string, string>;
|
|
80
|
+
refreshUrl?: string | undefined;
|
|
81
|
+
} | undefined;
|
|
82
|
+
clientCredentials?: {
|
|
83
|
+
tokenUrl: string;
|
|
84
|
+
scopes: Record<string, string>;
|
|
85
|
+
refreshUrl?: string | undefined;
|
|
86
|
+
} | undefined;
|
|
87
|
+
implicit?: {
|
|
88
|
+
authorizationUrl: string;
|
|
89
|
+
scopes: Record<string, string>;
|
|
90
|
+
refreshUrl?: string | undefined;
|
|
91
|
+
} | undefined;
|
|
92
|
+
password?: {
|
|
93
|
+
tokenUrl: string;
|
|
94
|
+
scopes: Record<string, string>;
|
|
95
|
+
refreshUrl?: string | undefined;
|
|
96
|
+
} | undefined;
|
|
97
|
+
};
|
|
98
|
+
description?: string | undefined;
|
|
99
|
+
oauth2MetadataUrl?: string | undefined;
|
|
100
|
+
} | {
|
|
101
|
+
type: "openIdConnect";
|
|
102
|
+
openIdConnectUrl: string;
|
|
103
|
+
description?: string | undefined;
|
|
104
|
+
} | {
|
|
105
|
+
type: "mutualTLS";
|
|
106
|
+
description?: string | undefined;
|
|
107
|
+
}> | undefined;
|
|
108
|
+
security?: Record<string, string[]>[] | undefined;
|
|
109
|
+
supportsAuthenticatedExtendedCard?: boolean | undefined;
|
|
110
|
+
signatures?: {
|
|
111
|
+
protected: string;
|
|
112
|
+
signature: string;
|
|
113
|
+
header?: Record<string, unknown> | undefined;
|
|
114
|
+
}[] | undefined;
|
|
115
|
+
}>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Service, createAgent, } from "../services/a2a/index.js";
|
|
2
|
+
export function isCreateAgentParams(agentOrParams) {
|
|
3
|
+
return (agentOrParams &&
|
|
4
|
+
typeof agentOrParams === "object" &&
|
|
5
|
+
"engine" in agentOrParams &&
|
|
6
|
+
typeof agentOrParams.engine === "function" &&
|
|
7
|
+
"agentCard" in agentOrParams &&
|
|
8
|
+
typeof agentOrParams.agentCard === "object");
|
|
9
|
+
}
|
|
10
|
+
export function ensureAgent(agentOrParams) {
|
|
11
|
+
if (agentOrParams instanceof Service) {
|
|
12
|
+
return agentOrParams;
|
|
13
|
+
}
|
|
14
|
+
else if (isCreateAgentParams(agentOrParams)) {
|
|
15
|
+
return createAgent(agentOrParams);
|
|
16
|
+
}
|
|
17
|
+
throw new Error("invalid agent or params");
|
|
18
|
+
}
|
|
19
|
+
export async function registerAgent(agentCard) {
|
|
20
|
+
return Promise.resolve(agentCard);
|
|
21
|
+
}
|
|
@@ -10,10 +10,11 @@ export declare function createBaseContext({ contextId, service, task, overrides,
|
|
|
10
10
|
overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>;
|
|
11
11
|
abortSignal?: AbortSignal;
|
|
12
12
|
}): A2A.BaseContext;
|
|
13
|
-
export declare function createContext({ baseContext, taskId, messenger, extensions, references, }: {
|
|
13
|
+
export declare function createContext({ baseContext, taskId, messenger, extensions, references, userId, }: {
|
|
14
14
|
baseContext: A2A.BaseContext;
|
|
15
15
|
taskId: string;
|
|
16
16
|
messenger: A2A.MessageConsumerProxy;
|
|
17
17
|
extensions?: A2A.AgentExtension[];
|
|
18
18
|
references?: A2A.Task[];
|
|
19
|
+
userId?: string;
|
|
19
20
|
}): A2A.Context;
|
|
@@ -29,7 +29,7 @@ export function createBaseContext({ contextId = uuidv4(), service, task, overrid
|
|
|
29
29
|
};
|
|
30
30
|
return context;
|
|
31
31
|
}
|
|
32
|
-
export function createContext({ baseContext, taskId, messenger, extensions, references, }) {
|
|
32
|
+
export function createContext({ baseContext, taskId, messenger, extensions, references, userId, }) {
|
|
33
33
|
const getTask = async () => baseContext.publisher.currentTask;
|
|
34
34
|
const context = {
|
|
35
35
|
...baseContext,
|
|
@@ -37,8 +37,9 @@ export function createContext({ baseContext, taskId, messenger, extensions, refe
|
|
|
37
37
|
userMessage: messenger.message,
|
|
38
38
|
messages: messenger,
|
|
39
39
|
getTask,
|
|
40
|
-
extensions
|
|
41
|
-
references
|
|
40
|
+
extensions,
|
|
41
|
+
references,
|
|
42
|
+
userId,
|
|
42
43
|
};
|
|
43
44
|
return context;
|
|
44
45
|
}
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { A2A } from "../../../types/index.js";
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function bindHandles(handles?: Partial<A2A.Handles>): A2A.Handles;
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { getTask, cancelTask, sendMessage, sendMessageStream, subscribeToTask, } from "../handlers/index.js";
|
|
6
|
-
export function
|
|
6
|
+
export function bindHandles(handles) {
|
|
7
7
|
return {
|
|
8
|
-
getTask:
|
|
9
|
-
cancelTask:
|
|
10
|
-
sendMessage:
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
getTask: handles?.getTask ?? getTask,
|
|
9
|
+
cancelTask: handles?.cancelTask ?? cancelTask,
|
|
10
|
+
sendMessage: handles?.sendMessage ?? sendMessage,
|
|
11
|
+
sendMessageStream: handles?.sendMessageStream ?? sendMessageStream,
|
|
12
|
+
streamMessage: handles?.streamMessage ?? sendMessageStream,
|
|
13
|
+
resubscribe: handles?.resubscribe ?? subscribeToTask,
|
|
13
14
|
};
|
|
14
15
|
}
|
|
@@ -9,7 +9,7 @@ export interface ServiceParams {
|
|
|
9
9
|
connections?: A2A.Connections;
|
|
10
10
|
cancellations?: A2A.Cancellations;
|
|
11
11
|
tasks?: A2A.Tasks;
|
|
12
|
-
|
|
12
|
+
handles?: Partial<A2A.Handles>;
|
|
13
13
|
overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>;
|
|
14
14
|
}
|
|
15
15
|
export type CreateAgentParams = ServiceParams;
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Copyright 2025 The Artinet Project
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { bindHandles } from "./handler.js";
|
|
6
6
|
import * as describe from "../../../create/agentcard-builder.js";
|
|
7
7
|
import { Service } from "../service.js";
|
|
8
8
|
import { Contexts, Streams, Connections, Cancellations, Tasks, } from "../managers.js";
|
|
9
9
|
export function createService(params) {
|
|
10
|
-
return new Service(describe.card(params.agentCard), params.engine, params.connections ?? new Connections(), params.cancellations ?? new Cancellations(), params.tasks ?? new Tasks(), params.contexts ?? new Contexts(), params.streams ?? new Streams(),
|
|
10
|
+
return new Service(describe.card(params.agentCard), params.engine, params.connections ?? new Connections(), params.cancellations ?? new Cancellations(), params.tasks ?? new Tasks(), params.contexts ?? new Contexts(), params.streams ?? new Streams(), bindHandles(params.handles), params.overrides);
|
|
11
11
|
}
|
|
12
12
|
export const createAgent = createService;
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
import { StateMachine } from "../state-machine.js";
|
|
6
6
|
import { logger } from "../../../config/index.js";
|
|
7
7
|
import * as describe from "../../../create/describe.js";
|
|
8
|
-
import { TASK_NOT_FOUND } from "../../../utils/
|
|
8
|
+
import { TASK_NOT_FOUND } from "../../../utils/errors.js";
|
|
9
|
+
import { formatJson } from "../../../utils/utils.js";
|
|
9
10
|
import assert from "assert";
|
|
10
11
|
export function createStateMachine({ contextId, service, task: currentTask, overrides, }) {
|
|
11
12
|
const handler = {
|
|
@@ -31,7 +32,9 @@ export function createStateMachine({ contextId, service, task: currentTask, over
|
|
|
31
32
|
contextId: task.contextId,
|
|
32
33
|
message: update.status?.message,
|
|
33
34
|
});
|
|
34
|
-
|
|
35
|
+
/**We've intentionally blocked further updates, so the first cancellation update is responsible for updating stored task state and notifying listeners*/
|
|
36
|
+
const updatedTask = await service.tasks.update((await service.contexts.get(contextId)), cancellation);
|
|
37
|
+
(await service.contexts.get(contextId))?.publisher.emit("update", updatedTask, cancellation);
|
|
35
38
|
},
|
|
36
39
|
onUpdate: async (update, task) => {
|
|
37
40
|
logger.info(`onUpdate[ctx:${contextId}]:`);
|
|
@@ -52,11 +55,11 @@ export function createStateMachine({ contextId, service, task: currentTask, over
|
|
|
52
55
|
taskId: task.id,
|
|
53
56
|
contextId,
|
|
54
57
|
message: describe.message({
|
|
55
|
-
messageId:
|
|
58
|
+
messageId: `failed:${task.id}`,
|
|
56
59
|
parts: [
|
|
57
60
|
{
|
|
58
61
|
kind: "text",
|
|
59
|
-
text: error instanceof Error ? error.message :
|
|
62
|
+
text: error instanceof Error ? error.message : formatJson(error),
|
|
60
63
|
},
|
|
61
64
|
],
|
|
62
65
|
}),
|
|
@@ -66,11 +69,11 @@ export function createStateMachine({ contextId, service, task: currentTask, over
|
|
|
66
69
|
logger.error(`onError[ctx:${contextId}]:`, new Error("context not found"));
|
|
67
70
|
return;
|
|
68
71
|
}
|
|
69
|
-
|
|
72
|
+
/**triggering onUpdate here with a catch instead of a raw tasks.update call*/
|
|
73
|
+
await context.publisher.onUpdate(errorUpdate).catch((error) => {
|
|
70
74
|
//we capture errors thrown during error handling to ensure we trigger completion gracefully
|
|
71
75
|
logger.error(`onError: task update error[ctx:${contextId}]:`, error);
|
|
72
76
|
});
|
|
73
|
-
// we trigger completion here to ensure the context is cleaned up
|
|
74
77
|
await context.publisher.onComplete();
|
|
75
78
|
},
|
|
76
79
|
onComplete: async (task) => {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { A2A } from "../../../types/index.js";
|
|
6
|
-
export declare const cancelTask: A2A.
|
|
6
|
+
export declare const cancelTask: A2A.Handles["cancelTask"];
|
|
7
7
|
export type CancelTaskHandler = typeof cancelTask;
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated Use CancelTaskHandler instead
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { A2A } from "../../../types/index.js";
|
|
6
|
-
export declare const getTask: A2A.
|
|
6
|
+
export declare const getTask: A2A.Handles["getTask"];
|
|
7
7
|
export type GetTaskHandler = typeof getTask;
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated Use GetTaskHandler instead
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { A2A } from "../../../types/index.js";
|
|
6
|
-
export declare const subscribeToTask: A2A.
|
|
6
|
+
export declare const subscribeToTask: A2A.Handles["resubscribe"];
|
|
7
7
|
export type SubscribeToTaskHandler = typeof subscribeToTask;
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated Use SubscribeToTaskHandler instead
|
|
10
10
|
*/
|
|
11
|
-
export declare const resubscribe: (input: A2A.TaskIdParams, context
|
|
11
|
+
export declare const resubscribe: (input: A2A.TaskIdParams, context: A2A.Context) => AsyncGenerator<A2A.Update>;
|
|
12
12
|
/**
|
|
13
13
|
* @deprecated Use SubscribeToTaskHandler instead
|
|
14
14
|
*/
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { A2A } from "../../../types/index.js";
|
|
6
|
-
export declare const sendMessage: A2A.
|
|
6
|
+
export declare const sendMessage: A2A.Handles["sendMessage"];
|
|
7
7
|
export type SendMessageHandler = typeof sendMessage;
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated Use SendMessageHandler instead
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { A2A } from "../../../types/index.js";
|
|
6
|
-
export declare const sendMessageStream: A2A.
|
|
6
|
+
export declare const sendMessageStream: A2A.Handles["sendMessageStream"];
|
|
7
7
|
export type SendMessageStreamHandler = typeof sendMessageStream;
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated Use sendMessageStream instead
|
|
10
10
|
*/
|
|
11
|
-
export declare const streamMessage: (message: A2A.MessageSendParams, context
|
|
11
|
+
export declare const streamMessage: (message: A2A.MessageSendParams, context: A2A.Context) => AsyncGenerator<A2A.Update>;
|
|
12
12
|
/**
|
|
13
13
|
* @deprecated Use SendMessageStreamHandler instead
|
|
14
14
|
*/
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright 2025 The Artinet Project
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { getCurrentTimestamp, formatJson } from "../../../utils/
|
|
6
|
-
import { validateSchema } from "../../../utils/
|
|
5
|
+
import { getCurrentTimestamp, formatJson } from "../../../utils/utils.js";
|
|
6
|
+
import { validateSchema } from "../../../utils/schema-validation.js";
|
|
7
7
|
import { upsertArtifact } from "./artifact.js";
|
|
8
8
|
import { A2A } from "../../../types/index.js";
|
|
9
9
|
import { logger } from "../../../config/index.js";
|
|
@@ -32,7 +32,7 @@ export class Contexts extends Manager {
|
|
|
32
32
|
});
|
|
33
33
|
logger.debug(`Contexts[create]: params`, { params });
|
|
34
34
|
const baseContext = createBaseContext(params);
|
|
35
|
-
|
|
35
|
+
/**intentional deep copy*/
|
|
36
36
|
const context = {
|
|
37
37
|
...createContext({
|
|
38
38
|
baseContext: baseContext,
|
|
@@ -40,6 +40,7 @@ export class Contexts extends Manager {
|
|
|
40
40
|
messenger: params.messenger,
|
|
41
41
|
references: params.references,
|
|
42
42
|
extensions: params.extensions,
|
|
43
|
+
userId: params.userId,
|
|
43
44
|
}),
|
|
44
45
|
};
|
|
45
46
|
logger.debug(`Contexts[create]: context created`, context.contextId);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { A2A } from "../../types/index.js";
|
|
2
|
-
import { EventEmitter } from "
|
|
2
|
+
import { EventEmitter } from "eventemitter3";
|
|
3
3
|
export declare class Messenger extends EventEmitter<A2A.MessageMap> implements A2A.MessageProducer, A2A.MessageConsumer {
|
|
4
4
|
private _message;
|
|
5
5
|
private _messages;
|
|
@@ -9,18 +9,18 @@ import { ServiceParams } from "./factory/service.js";
|
|
|
9
9
|
* This will allow the service to act as the boundary to our Hexagonal Architecture.
|
|
10
10
|
*/
|
|
11
11
|
export declare class Service implements A2A.Service {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
constructor(_agentCard: A2A.AgentCard, _engine: A2A.Engine, _connections: A2A.Connections, _cancellations: A2A.Cancellations, _tasks: A2A.Tasks, _contexts: A2A.Contexts, _streams: A2A.Streams,
|
|
22
|
-
get
|
|
23
|
-
set
|
|
12
|
+
protected _agentCard: A2A.AgentCard;
|
|
13
|
+
protected _engine: A2A.Engine;
|
|
14
|
+
protected _connections: A2A.Connections;
|
|
15
|
+
protected _cancellations: A2A.Cancellations;
|
|
16
|
+
protected _tasks: A2A.Tasks;
|
|
17
|
+
protected _contexts: A2A.Contexts;
|
|
18
|
+
protected _streams: A2A.Streams;
|
|
19
|
+
protected _handles: A2A.Handles;
|
|
20
|
+
protected _overrides?: Partial<Omit<A2A.EventConsumer, "contextId">> | undefined;
|
|
21
|
+
constructor(_agentCard: A2A.AgentCard, _engine: A2A.Engine, _connections: A2A.Connections, _cancellations: A2A.Cancellations, _tasks: A2A.Tasks, _contexts: A2A.Contexts, _streams: A2A.Streams, _handles: A2A.Handles, _overrides?: Partial<Omit<A2A.EventConsumer, "contextId">> | undefined);
|
|
22
|
+
get handles(): A2A.Handles;
|
|
23
|
+
set handles(handles: Partial<A2A.Handles>);
|
|
24
24
|
get agentCard(): A2A.AgentCard;
|
|
25
25
|
get engine(): A2A.Engine;
|
|
26
26
|
set engine(engine: A2A.Engine);
|
|
@@ -38,14 +38,19 @@ export declare class Service implements A2A.Service {
|
|
|
38
38
|
}): Promise<void>;
|
|
39
39
|
getAgentCard(): Promise<A2A.AgentCard>;
|
|
40
40
|
stop(): Promise<void>;
|
|
41
|
-
getTask(params: A2A.TaskQueryParams,
|
|
42
|
-
cancelTask(params: A2A.TaskIdParams,
|
|
43
|
-
sendMessage(params: A2A.MessageSendParams,
|
|
44
|
-
sendMessage(message: string | A2A.MessageSendParams["message"],
|
|
45
|
-
protected _sendMessage(params: A2A.MessageSendParams,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
sendMessageStream(params: A2A.MessageSendParams,
|
|
49
|
-
|
|
41
|
+
getTask(params: A2A.TaskQueryParams, options?: A2A.ServiceOptions): Promise<A2A.Task>;
|
|
42
|
+
cancelTask(params: A2A.TaskIdParams, options?: A2A.ServiceOptions): Promise<A2A.Task>;
|
|
43
|
+
sendMessage(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
|
|
44
|
+
sendMessage(message: string | A2A.MessageSendParams["message"], options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
|
|
45
|
+
protected _sendMessage(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
|
|
46
|
+
sendMessageStream(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
|
|
47
|
+
sendMessageStream(message: string, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
|
|
48
|
+
sendMessageStream(params: A2A.MessageSendParams["message"], options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Use sendMessageStream instead
|
|
51
|
+
*/
|
|
52
|
+
streamMessage(paramsOrMessage: A2A.MessageSendParams | string, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
|
|
53
|
+
protected _sendMessageStream(params: A2A.MessageSendParams, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
|
|
54
|
+
resubscribe(params: A2A.TaskIdParams, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
|
|
50
55
|
static create(params: ServiceParams): Service;
|
|
51
56
|
}
|