@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.
Files changed (153) hide show
  1. package/README.md +100 -50
  2. package/dist/browser/browser.d.ts +2 -7
  3. package/dist/browser/browser.js +2 -7
  4. package/dist/browser/config/observability.d.ts +1 -1
  5. package/dist/browser/create/message-builder.d.ts +1 -1
  6. package/dist/browser/create/message-builder.js +19 -7
  7. package/dist/browser/create/task-builder.js +5 -1
  8. package/dist/browser/messenger/index.d.ts +1 -0
  9. package/dist/browser/messenger/index.js +1 -0
  10. package/dist/browser/messenger/messenger.d.ts +119 -0
  11. package/dist/browser/messenger/messenger.js +280 -0
  12. package/dist/browser/types/a2a/a2a.d.ts +38 -20
  13. package/dist/browser/types/a2a/a2a.js +0 -1
  14. package/dist/browser/types/core/core.d.ts +4 -2
  15. package/dist/browser/types/index.d.ts +0 -1
  16. package/dist/browser/types/index.js +0 -1
  17. package/dist/browser/types/storage.d.ts +2 -14
  18. package/dist/browser/types/storage.js +0 -4
  19. package/dist/browser/utils/{common/constants.d.ts → constants.d.ts} +1 -1
  20. package/dist/{utils/common → browser/utils}/constants.js +1 -1
  21. package/dist/browser/utils/{common/errors.d.ts → errors.d.ts} +17 -36
  22. package/dist/browser/utils/errors.js +76 -0
  23. package/dist/browser/utils/index.d.ts +6 -0
  24. package/dist/browser/utils/index.js +6 -0
  25. package/dist/{utils/common → browser/utils}/parse.js +4 -1
  26. package/dist/{utils/common → browser/utils}/schema-validation.js +2 -2
  27. package/dist/config/index.d.ts +1 -1
  28. package/dist/config/observability.d.ts +1 -1
  29. package/dist/create/agent-builder.d.ts +1 -1
  30. package/dist/create/create.d.ts +19 -20
  31. package/dist/create/create.js +33 -101
  32. package/dist/create/message-builder.d.ts +1 -1
  33. package/dist/create/message-builder.js +19 -7
  34. package/dist/create/task-builder.js +5 -1
  35. package/dist/index.d.ts +3 -3
  36. package/dist/index.js +3 -3
  37. package/dist/messenger/index.d.ts +1 -0
  38. package/dist/messenger/index.js +1 -0
  39. package/dist/messenger/messenger.d.ts +119 -0
  40. package/dist/messenger/messenger.js +288 -0
  41. package/dist/server/adapters/a2a_request_handler.d.ts +889 -0
  42. package/dist/server/adapters/a2a_request_handler.js +241 -0
  43. package/dist/server/adapters/loadable.d.ts +7 -0
  44. package/dist/server/adapters/loadable.js +73 -0
  45. package/dist/server/adapters/notifications.d.ts +26 -0
  46. package/dist/server/adapters/notifications.js +77 -0
  47. package/dist/server/express/server.d.ts +11 -19
  48. package/dist/server/express/server.js +29 -64
  49. package/dist/server/express/utils.d.ts +14 -0
  50. package/dist/server/express/{errors.js → utils.js} +22 -0
  51. package/dist/server/index.d.ts +4 -1
  52. package/dist/server/index.js +4 -1
  53. package/dist/server/params.d.ts +115 -0
  54. package/dist/server/params.js +21 -0
  55. package/dist/services/a2a/factory/context.d.ts +2 -1
  56. package/dist/services/a2a/factory/context.js +4 -3
  57. package/dist/services/a2a/factory/handler.d.ts +1 -1
  58. package/dist/services/a2a/factory/handler.js +7 -6
  59. package/dist/services/a2a/factory/service.d.ts +1 -1
  60. package/dist/services/a2a/factory/service.js +2 -2
  61. package/dist/services/a2a/factory/state-machine.js +9 -6
  62. package/dist/services/a2a/handlers/cancel-task.d.ts +1 -1
  63. package/dist/services/a2a/handlers/get-task.d.ts +1 -1
  64. package/dist/services/a2a/handlers/resubscribe-task.d.ts +2 -2
  65. package/dist/services/a2a/handlers/send-message.d.ts +1 -1
  66. package/dist/services/a2a/handlers/stream-message.d.ts +2 -2
  67. package/dist/services/a2a/handlers/update.js +2 -2
  68. package/dist/services/a2a/index.d.ts +0 -1
  69. package/dist/services/a2a/index.js +0 -1
  70. package/dist/services/a2a/managers.js +2 -1
  71. package/dist/services/a2a/messenger.d.ts +1 -1
  72. package/dist/services/a2a/messenger.js +1 -1
  73. package/dist/services/a2a/service.d.ts +26 -21
  74. package/dist/services/a2a/service.js +163 -95
  75. package/dist/services/a2a/state-machine.d.ts +1 -1
  76. package/dist/services/a2a/state-machine.js +2 -1
  77. package/dist/services/a2a/streams.js +1 -1
  78. package/dist/services/core/manager.d.ts +5 -0
  79. package/dist/services/core/manager.js +6 -0
  80. package/dist/services/mcp/service.js +1 -1
  81. package/dist/{utils/storage → storage}/file.d.ts +4 -2
  82. package/dist/{utils/storage → storage}/file.js +5 -4
  83. package/dist/storage/index.d.ts +1 -0
  84. package/dist/storage/index.js +2 -0
  85. package/dist/storage/sqlite.d.ts +353 -0
  86. package/dist/storage/sqlite.js +85 -0
  87. package/dist/transport/trpc/a2a/factory/router.d.ts +16 -16
  88. package/dist/transport/trpc/a2a/routes/info.d.ts +2 -2
  89. package/dist/transport/trpc/a2a/routes/message/route.d.ts +3 -3
  90. package/dist/transport/trpc/a2a/routes/message/route.js +2 -2
  91. package/dist/transport/trpc/a2a/routes/tasks/route.d.ts +4 -4
  92. package/dist/transport/trpc/a2a/routes/tasks/route.js +3 -3
  93. package/dist/types/a2a/a2a.d.ts +38 -20
  94. package/dist/types/a2a/a2a.js +0 -1
  95. package/dist/types/core/core.d.ts +4 -2
  96. package/dist/types/index.d.ts +0 -1
  97. package/dist/types/index.js +0 -1
  98. package/dist/types/storage.d.ts +2 -14
  99. package/dist/types/storage.js +0 -4
  100. package/dist/utils/{common/constants.d.ts → constants.d.ts} +1 -1
  101. package/dist/{browser/utils/common → utils}/constants.js +1 -1
  102. package/dist/utils/{common/errors.d.ts → errors.d.ts} +17 -36
  103. package/dist/utils/errors.js +80 -0
  104. package/dist/utils/index.d.ts +6 -10
  105. package/dist/utils/index.js +6 -10
  106. package/dist/utils/parse.d.ts +7 -0
  107. package/dist/utils/parse.js +17 -0
  108. package/dist/utils/schema-validation.d.ts +2 -0
  109. package/dist/utils/schema-validation.js +12 -0
  110. package/package.json +35 -22
  111. package/dist/browser/client/a2a-client.d.ts +0 -127
  112. package/dist/browser/client/a2a-client.js +0 -233
  113. package/dist/browser/client/index.d.ts +0 -1
  114. package/dist/browser/client/index.js +0 -1
  115. package/dist/browser/transport/rpc/parser.d.ts +0 -15
  116. package/dist/browser/transport/rpc/parser.js +0 -49
  117. package/dist/browser/transport/rpc/rpc-client.d.ts +0 -80
  118. package/dist/browser/transport/rpc/rpc-client.js +0 -189
  119. package/dist/browser/transport/streaming/event-stream.d.ts +0 -25
  120. package/dist/browser/transport/streaming/event-stream.js +0 -100
  121. package/dist/browser/types/client.d.ts +0 -133
  122. package/dist/browser/types/client.js +0 -5
  123. package/dist/browser/utils/common/errors.js +0 -95
  124. package/dist/client/a2a-client.d.ts +0 -127
  125. package/dist/client/a2a-client.js +0 -237
  126. package/dist/client/index.d.ts +0 -1
  127. package/dist/client/index.js +0 -1
  128. package/dist/server/express/errors.d.ts +0 -9
  129. package/dist/server/express/index.d.ts +0 -3
  130. package/dist/server/express/index.js +0 -3
  131. package/dist/server/express/middeware.d.ts +0 -7
  132. package/dist/server/express/middeware.js +0 -121
  133. package/dist/transport/index.d.ts +0 -3
  134. package/dist/transport/index.js +0 -4
  135. package/dist/transport/rpc/parser.d.ts +0 -15
  136. package/dist/transport/rpc/parser.js +0 -49
  137. package/dist/transport/rpc/rpc-client.d.ts +0 -80
  138. package/dist/transport/rpc/rpc-client.js +0 -189
  139. package/dist/transport/streaming/event-stream.d.ts +0 -25
  140. package/dist/transport/streaming/event-stream.js +0 -100
  141. package/dist/types/client.d.ts +0 -133
  142. package/dist/types/client.js +0 -5
  143. package/dist/utils/common/errors.js +0 -98
  144. /package/dist/{utils/common → browser/utils}/parse.d.ts +0 -0
  145. /package/dist/{utils/common → browser/utils}/schema-validation.d.ts +0 -0
  146. /package/dist/browser/utils/{common/utils.d.ts → utils.d.ts} +0 -0
  147. /package/dist/browser/utils/{common/utils.js → utils.js} +0 -0
  148. /package/dist/utils/{common/utils.d.ts → utils.d.ts} +0 -0
  149. /package/dist/utils/{common/utils.js → utils.js} +0 -0
  150. /package/dist/utils/{common/zAsyncIterable-v3.d.ts → zAsyncIterable-v3.d.ts} +0 -0
  151. /package/dist/utils/{common/zAsyncIterable-v3.js → zAsyncIterable-v3.js} +0 -0
  152. /package/dist/utils/{common/zAsyncIterable.d.ts → zAsyncIterable.d.ts} +0 -0
  153. /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: extensions,
41
- references: 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 createHandler(methods?: Omit<Partial<A2A.RequestHandler>, "getAgentCard">): Omit<A2A.RequestHandler, "getAgentCard">;
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 createHandler(methods) {
6
+ export function bindHandles(handles) {
7
7
  return {
8
- getTask: methods?.getTask ?? getTask,
9
- cancelTask: methods?.cancelTask ?? cancelTask,
10
- sendMessage: methods?.sendMessage ?? sendMessage,
11
- streamMessage: methods?.streamMessage ?? sendMessageStream,
12
- resubscribe: methods?.resubscribe ?? subscribeToTask,
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
- methods?: Omit<A2A.RequestHandler, "getAgentCard">;
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 { createHandler } from "./handler.js";
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(), createHandler(params.methods), params.overrides);
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/index.js";
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
- await service.tasks.update((await service.contexts.get(contextId)), cancellation);
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: "failed-update",
58
+ messageId: `failed:${task.id}`,
56
59
  parts: [
57
60
  {
58
61
  kind: "text",
59
- text: error instanceof Error ? error.message : String(error),
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
- await service.tasks.update(context, errorUpdate).catch((error) => {
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.RequestHandler["cancelTask"];
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.RequestHandler["getTask"];
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.RequestHandler["resubscribe"];
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?: A2A.Context, options?: A2A.ServiceOptions) => AsyncGenerator<A2A.Update>;
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.RequestHandler["sendMessage"];
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.RequestHandler["streamMessage"];
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?: A2A.Context, options?: A2A.ServiceOptions) => AsyncGenerator<A2A.Update>;
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/common/utils.js";
6
- import { validateSchema } from "../../../utils/common/schema-validation.js";
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";
@@ -1,4 +1,3 @@
1
- export * from "../../create/create.js";
2
1
  export * from "./factory/service.js";
3
2
  export * from "./managers.js";
4
3
  export * from "./messenger.js";
@@ -1,4 +1,3 @@
1
- export * from "../../create/create.js";
2
1
  export * from "./factory/service.js";
3
2
  export * from "./managers.js";
4
3
  export * from "./messenger.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
- //todo: consider allowing ContextParams to cascade
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 "events";
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;
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from "events";
1
+ import { EventEmitter } from "eventemitter3";
2
2
  export class Messenger extends EventEmitter {
3
3
  _message;
4
4
  _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
- private _agentCard;
13
- private _engine;
14
- private _connections;
15
- private _cancellations;
16
- private _tasks;
17
- private _contexts;
18
- private _streams;
19
- private _methods;
20
- private _overrides?;
21
- constructor(_agentCard: A2A.AgentCard, _engine: A2A.Engine, _connections: A2A.Connections, _cancellations: A2A.Cancellations, _tasks: A2A.Tasks, _contexts: A2A.Contexts, _streams: A2A.Streams, _methods: Omit<A2A.RequestHandler, "getAgentCard">, _overrides?: Partial<Omit<A2A.EventConsumer, "contextId">> | undefined);
22
- get methods(): Omit<A2A.RequestHandler, "getAgentCard">;
23
- set methods(methods: Partial<Omit<A2A.RequestHandler, "getAgentCard">>);
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, context?: A2A.Context, options?: A2A.ServiceOptions): Promise<A2A.Task>;
42
- cancelTask(params: A2A.TaskIdParams, context?: A2A.Context, options?: A2A.ServiceOptions): Promise<A2A.Task>;
43
- sendMessage(params: A2A.MessageSendParams, context?: A2A.Context, options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
44
- sendMessage(message: string | A2A.MessageSendParams["message"], context?: A2A.Context, options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
45
- protected _sendMessage(params: A2A.MessageSendParams, context?: A2A.Context, options?: A2A.ServiceOptions): Promise<A2A.SendMessageSuccessResult>;
46
- streamMessage(params: A2A.MessageSendParams, context?: A2A.Context, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
47
- streamMessage(message: string, context?: A2A.Context, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
48
- sendMessageStream(params: A2A.MessageSendParams, context?: A2A.Context, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
49
- resubscribe(params: A2A.TaskIdParams, context?: A2A.Context, options?: A2A.ServiceOptions): AsyncGenerator<A2A.Update>;
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
  }