@artinet/sdk 0.5.18 → 0.6.0-preview.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/README.md +36 -617
- package/dist/browser/browser.d.ts +1 -1
- package/dist/browser/browser.js +1 -1
- package/dist/browser/client/a2a-client.d.ts +19 -18
- package/dist/browser/client/a2a-client.js +20 -8
- package/dist/browser/config/index.d.ts +158 -0
- package/dist/browser/config/index.js +155 -0
- package/dist/browser/config/observability.d.ts +119 -0
- package/dist/browser/config/observability.js +35 -0
- package/dist/browser/create/agentcard-builder.d.ts +47 -0
- package/dist/browser/create/agentcard-builder.js +65 -0
- package/dist/browser/create/base.d.ts +4 -0
- package/dist/browser/create/describe.d.ts +8 -0
- package/dist/browser/create/describe.js +8 -0
- package/dist/browser/create/message-builder.d.ts +78 -0
- package/dist/browser/create/message-builder.js +108 -0
- package/dist/browser/create/part-builder.d.ts +60 -0
- package/dist/browser/create/part-builder.js +81 -0
- package/dist/browser/create/task-builder.d.ts +251 -0
- package/dist/browser/create/task-builder.js +379 -0
- package/dist/browser/transport/rpc/parser.d.ts +2 -2
- package/dist/browser/transport/rpc/parser.js +7 -6
- package/dist/browser/transport/rpc/rpc-client.d.ts +5 -5
- package/dist/browser/transport/rpc/rpc-client.js +6 -6
- package/dist/browser/transport/streaming/event-stream.d.ts +3 -3
- package/dist/browser/transport/streaming/event-stream.js +11 -10
- package/dist/browser/types/a2a/a2a.d.ts +382 -0
- package/dist/browser/types/a2a/a2a.js +14 -0
- package/dist/browser/types/a2a/index.d.ts +5 -0
- package/dist/browser/types/a2a/index.js +1 -0
- package/dist/browser/types/{interfaces/client.d.ts → client.d.ts} +25 -27
- package/dist/browser/types/core/core.d.ts +31 -0
- package/dist/browser/types/core/index.d.ts +1 -0
- package/dist/browser/types/core/index.js +1 -0
- package/dist/browser/types/index.d.ts +6 -3
- package/dist/browser/types/index.js +6 -3
- package/dist/browser/types/mcp/index.d.ts +1 -0
- package/dist/browser/types/mcp/index.js +1 -0
- package/dist/{types/interfaces/services/mcp/service.d.ts → browser/types/mcp/mcp.d.ts} +4 -3
- package/dist/browser/types/{interfaces/services/a2a/builder.js → mcp/mcp.js} +1 -1
- package/dist/browser/types/storage.d.ts +21 -0
- package/dist/browser/utils/common/constants.d.ts +2 -7
- package/dist/browser/utils/common/constants.js +5 -32
- package/dist/browser/utils/common/errors.d.ts +74 -18
- package/dist/browser/utils/common/errors.js +81 -28
- package/dist/browser/utils/common/utils.d.ts +23 -0
- package/dist/browser/utils/common/utils.js +32 -0
- package/dist/client/a2a-client.d.ts +19 -18
- package/dist/client/a2a-client.js +20 -8
- package/dist/config/default.d.ts +50 -0
- package/dist/config/default.js +62 -0
- package/dist/config/index.d.ts +158 -0
- package/dist/config/index.js +155 -0
- package/dist/config/observability.d.ts +119 -0
- package/dist/config/observability.js +35 -0
- package/dist/create/agent-builder.d.ts +77 -0
- package/dist/create/agent-builder.js +20 -0
- package/dist/create/agentcard-builder.d.ts +47 -0
- package/dist/create/agentcard-builder.js +66 -0
- package/dist/create/base.d.ts +4 -0
- package/dist/create/base.js +1 -0
- package/dist/create/create.d.ts +762 -0
- package/dist/create/create.js +556 -0
- package/dist/create/describe.d.ts +8 -0
- package/dist/create/describe.js +8 -0
- package/dist/create/index.d.ts +4 -0
- package/dist/create/index.js +4 -0
- package/dist/create/message-builder.d.ts +78 -0
- package/dist/create/message-builder.js +110 -0
- package/dist/create/part-builder.d.ts +60 -0
- package/dist/create/part-builder.js +84 -0
- package/dist/create/status-builder.d.ts +26 -0
- package/dist/create/status-builder.js +46 -0
- package/dist/create/task-builder.d.ts +251 -0
- package/dist/create/task-builder.js +384 -0
- package/dist/create/transform.d.ts +16 -0
- package/dist/create/transform.js +106 -0
- package/dist/extensions/otel.d.ts +98 -0
- package/dist/extensions/otel.js +190 -0
- package/dist/extensions/pino.d.ts +44 -0
- package/dist/extensions/pino.js +107 -0
- package/dist/extensions/winston.d.ts +47 -0
- package/dist/extensions/winston.js +114 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/server/express/errors.js +7 -11
- package/dist/server/express/middeware.d.ts +2 -2
- package/dist/server/express/middeware.js +26 -40
- package/dist/server/express/server.d.ts +14 -56
- package/dist/server/express/server.js +46 -35
- package/dist/services/a2a/execute.d.ts +11 -0
- package/dist/services/a2a/execute.js +32 -0
- package/dist/services/a2a/factory/context.d.ts +15 -128
- package/dist/services/a2a/factory/context.js +30 -136
- package/dist/services/a2a/factory/handler.d.ts +6 -0
- package/dist/services/a2a/factory/handler.js +14 -0
- package/dist/services/a2a/factory/index.d.ts +1 -3
- package/dist/services/a2a/factory/index.js +1 -3
- package/dist/services/a2a/factory/service.d.ts +20 -7
- package/dist/services/a2a/factory/service.js +5 -5
- package/dist/services/a2a/factory/state-machine.d.ts +11 -0
- package/dist/services/a2a/factory/state-machine.js +88 -0
- package/dist/services/a2a/handlers/artifact.d.ts +7 -0
- package/dist/services/a2a/handlers/artifact.js +28 -0
- package/dist/services/a2a/handlers/cancel-task.d.ts +11 -0
- package/dist/services/a2a/handlers/cancel-task.js +35 -0
- package/dist/services/a2a/handlers/get-task.d.ts +11 -0
- package/dist/services/a2a/handlers/get-task.js +13 -0
- package/dist/services/a2a/handlers/resubscribe-task.d.ts +19 -0
- package/dist/services/a2a/handlers/resubscribe-task.js +59 -0
- package/dist/services/a2a/handlers/send-message.d.ts +11 -0
- package/dist/services/a2a/handlers/send-message.js +31 -0
- package/dist/services/a2a/handlers/stream-message.d.ts +19 -0
- package/dist/services/a2a/handlers/stream-message.js +23 -0
- package/dist/services/a2a/handlers/update.d.ts +17 -0
- package/dist/services/a2a/handlers/update.js +119 -0
- package/dist/services/a2a/helpers/content.d.ts +6 -2
- package/dist/services/a2a/helpers/content.js +9 -1
- package/dist/services/a2a/helpers/history.d.ts +6 -2
- package/dist/services/a2a/helpers/history.js +4 -0
- package/dist/services/a2a/helpers/index.d.ts +3 -3
- package/dist/services/a2a/helpers/index.js +3 -3
- package/dist/services/a2a/helpers/part.d.ts +9 -9
- package/dist/services/a2a/helpers/references.d.ts +6 -0
- package/dist/services/a2a/helpers/references.js +22 -0
- package/dist/services/a2a/index.d.ts +9 -5
- package/dist/services/a2a/index.js +8 -5
- package/dist/services/a2a/managers.d.ts +23 -0
- package/dist/services/a2a/managers.js +101 -0
- package/dist/services/a2a/messenger.d.ts +35 -0
- package/dist/services/{core/managers/command.js → a2a/messenger.js} +27 -31
- package/dist/services/a2a/service.d.ts +45 -372
- package/dist/services/a2a/service.js +232 -84
- package/dist/services/a2a/state-machine.d.ts +18 -0
- package/dist/services/a2a/state-machine.js +78 -0
- package/dist/services/a2a/streams.d.ts +22 -0
- package/dist/services/a2a/streams.js +98 -0
- package/dist/services/core/index.d.ts +1 -2
- package/dist/services/core/index.js +1 -2
- package/dist/services/core/manager.d.ts +15 -0
- package/dist/services/core/manager.js +42 -0
- package/dist/services/mcp/service.d.ts +11 -15
- package/dist/services/mcp/service.js +16 -15
- package/dist/transport/index.d.ts +0 -1
- package/dist/transport/index.js +1 -1
- package/dist/transport/rpc/parser.d.ts +2 -2
- package/dist/transport/rpc/parser.js +7 -6
- package/dist/transport/rpc/rpc-client.d.ts +5 -5
- package/dist/transport/rpc/rpc-client.js +6 -6
- package/dist/transport/streaming/event-stream.d.ts +3 -3
- package/dist/transport/streaming/event-stream.js +11 -10
- package/dist/transport/trpc/a2a/factory/router.d.ts +479 -871
- package/dist/transport/trpc/a2a/factory/router.js +2 -2
- package/dist/transport/trpc/a2a/routes/info.d.ts +108 -8
- package/dist/transport/trpc/a2a/routes/info.js +6 -2
- package/dist/transport/trpc/a2a/routes/message/route.d.ts +113 -162
- package/dist/transport/trpc/a2a/routes/message/route.js +7 -13
- package/dist/transport/trpc/a2a/routes/tasks/route.d.ts +114 -212
- package/dist/transport/trpc/a2a/routes/tasks/route.js +16 -19
- package/dist/transport/trpc/a2a/trpc.d.ts +9 -253
- package/dist/types/a2a/a2a.d.ts +382 -0
- package/dist/types/a2a/a2a.js +14 -0
- package/dist/types/a2a/index.d.ts +5 -0
- package/dist/types/a2a/index.js +1 -0
- package/dist/types/{interfaces/client.d.ts → client.d.ts} +25 -27
- package/dist/types/core/core.d.ts +31 -0
- package/dist/types/core/core.js +1 -0
- package/dist/types/core/index.d.ts +1 -0
- package/dist/types/core/index.js +1 -0
- package/dist/types/index.d.ts +6 -3
- package/dist/types/index.js +6 -3
- package/dist/types/mcp/index.d.ts +1 -0
- package/dist/types/mcp/index.js +1 -0
- package/dist/{browser/types/interfaces/services/mcp/service.d.ts → types/mcp/mcp.d.ts} +4 -3
- package/dist/{browser/types/interfaces/services/a2a/context.js → types/mcp/mcp.js} +1 -1
- package/dist/types/storage.d.ts +21 -0
- package/dist/utils/common/constants.d.ts +2 -7
- package/dist/utils/common/constants.js +5 -32
- package/dist/utils/common/errors.d.ts +74 -18
- package/dist/utils/common/errors.js +81 -28
- package/dist/utils/common/parse.d.ts +7 -0
- package/dist/utils/common/parse.js +14 -0
- package/dist/utils/common/schema-validation.d.ts +2 -2
- package/dist/utils/common/schema-validation.js +7 -7
- package/dist/utils/common/utils.d.ts +23 -0
- package/dist/utils/common/utils.js +32 -0
- package/dist/utils/common/zAsyncIterable-v3.d.ts +1 -1
- package/dist/utils/common/zAsyncIterable-v3.js +2 -1
- package/dist/utils/index.d.ts +2 -3
- package/dist/utils/index.js +2 -3
- package/dist/utils/storage/file.d.ts +8 -17
- package/dist/utils/storage/file.js +44 -73
- package/package.json +76 -13
- package/dist/browser/services/a2a/helpers/message-builder.d.ts +0 -12
- package/dist/browser/services/a2a/helpers/message-builder.js +0 -61
- package/dist/browser/types/ext.d.ts +0 -13
- package/dist/browser/types/ext.js +0 -10
- package/dist/browser/types/interfaces/index.d.ts +0 -3
- package/dist/browser/types/interfaces/index.js +0 -3
- package/dist/browser/types/interfaces/services/a2a/builder.d.ts +0 -37
- package/dist/browser/types/interfaces/services/a2a/context.d.ts +0 -162
- package/dist/browser/types/interfaces/services/a2a/engine.d.ts +0 -7
- package/dist/browser/types/interfaces/services/a2a/engine.js +0 -5
- package/dist/browser/types/interfaces/services/a2a/index.d.ts +0 -5
- package/dist/browser/types/interfaces/services/a2a/index.js +0 -5
- package/dist/browser/types/interfaces/services/a2a/legacy.d.ts +0 -93
- package/dist/browser/types/interfaces/services/a2a/legacy.js +0 -5
- package/dist/browser/types/interfaces/services/a2a/service.d.ts +0 -413
- package/dist/browser/types/interfaces/services/a2a/service.js +0 -5
- package/dist/browser/types/interfaces/services/core/context/command.d.ts +0 -25
- package/dist/browser/types/interfaces/services/core/context/command.js +0 -5
- package/dist/browser/types/interfaces/services/core/context/context.d.ts +0 -207
- package/dist/browser/types/interfaces/services/core/context/context.js +0 -5
- package/dist/browser/types/interfaces/services/core/context/index.d.ts +0 -3
- package/dist/browser/types/interfaces/services/core/context/index.js +0 -3
- package/dist/browser/types/interfaces/services/core/context/types.d.ts +0 -11
- package/dist/browser/types/interfaces/services/core/context/types.js +0 -5
- package/dist/browser/types/interfaces/services/core/execution/engine.d.ts +0 -106
- package/dist/browser/types/interfaces/services/core/execution/engine.js +0 -5
- package/dist/browser/types/interfaces/services/core/execution/environment.d.ts +0 -11
- package/dist/browser/types/interfaces/services/core/execution/environment.js +0 -5
- package/dist/browser/types/interfaces/services/core/execution/execute.d.ts +0 -7
- package/dist/browser/types/interfaces/services/core/execution/execute.js +0 -5
- package/dist/browser/types/interfaces/services/core/execution/index.d.ts +0 -3
- package/dist/browser/types/interfaces/services/core/execution/index.js +0 -3
- package/dist/browser/types/interfaces/services/core/index.d.ts +0 -4
- package/dist/browser/types/interfaces/services/core/index.js +0 -4
- package/dist/browser/types/interfaces/services/core/managers/cancellation.d.ts +0 -9
- package/dist/browser/types/interfaces/services/core/managers/cancellation.js +0 -5
- package/dist/browser/types/interfaces/services/core/managers/connection.d.ts +0 -9
- package/dist/browser/types/interfaces/services/core/managers/connection.js +0 -5
- package/dist/browser/types/interfaces/services/core/managers/context.d.ts +0 -17
- package/dist/browser/types/interfaces/services/core/managers/context.js +0 -5
- package/dist/browser/types/interfaces/services/core/managers/event.d.ts +0 -328
- package/dist/browser/types/interfaces/services/core/managers/event.js +0 -5
- package/dist/browser/types/interfaces/services/core/managers/index.d.ts +0 -6
- package/dist/browser/types/interfaces/services/core/managers/index.js +0 -6
- package/dist/browser/types/interfaces/services/core/managers/stream.d.ts +0 -217
- package/dist/browser/types/interfaces/services/core/managers/stream.js +0 -5
- package/dist/browser/types/interfaces/services/core/managers/task.d.ts +0 -9
- package/dist/browser/types/interfaces/services/core/service.d.ts +0 -115
- package/dist/browser/types/interfaces/services/core/service.js +0 -5
- package/dist/browser/types/interfaces/services/index.d.ts +0 -4
- package/dist/browser/types/interfaces/services/index.js +0 -4
- package/dist/browser/types/interfaces/services/mcp/index.d.ts +0 -1
- package/dist/browser/types/interfaces/services/mcp/index.js +0 -1
- package/dist/browser/types/interfaces/services/mcp/service.js +0 -5
- package/dist/browser/types/interfaces/storage.d.ts +0 -8
- package/dist/browser/types/schemas/a2a/agent.d.ts +0 -2583
- package/dist/browser/types/schemas/a2a/agent.js +0 -323
- package/dist/browser/types/schemas/a2a/auth.d.ts +0 -908
- package/dist/browser/types/schemas/a2a/auth.js +0 -283
- package/dist/browser/types/schemas/a2a/error.d.ts +0 -396
- package/dist/browser/types/schemas/a2a/error.js +0 -163
- package/dist/browser/types/schemas/a2a/index.d.ts +0 -11
- package/dist/browser/types/schemas/a2a/index.js +0 -11
- package/dist/browser/types/schemas/a2a/kind.d.ts +0 -11
- package/dist/browser/types/schemas/a2a/kind.js +0 -20
- package/dist/browser/types/schemas/a2a/message.d.ts +0 -10343
- package/dist/browser/types/schemas/a2a/message.js +0 -130
- package/dist/browser/types/schemas/a2a/notification.d.ts +0 -1517
- package/dist/browser/types/schemas/a2a/notification.js +0 -203
- package/dist/browser/types/schemas/a2a/parameters.d.ts +0 -956
- package/dist/browser/types/schemas/a2a/parameters.js +0 -241
- package/dist/browser/types/schemas/a2a/protocol.d.ts +0 -14363
- package/dist/browser/types/schemas/a2a/protocol.js +0 -59
- package/dist/browser/types/schemas/a2a/rpc.d.ts +0 -182
- package/dist/browser/types/schemas/a2a/rpc.js +0 -126
- package/dist/browser/types/schemas/a2a/task.d.ts +0 -5886
- package/dist/browser/types/schemas/a2a/task.js +0 -134
- package/dist/browser/types/schemas/a2a/transport.d.ts +0 -31
- package/dist/browser/types/schemas/a2a/transport.js +0 -28
- package/dist/browser/types/schemas/index.d.ts +0 -1
- package/dist/browser/types/schemas/index.js +0 -1
- package/dist/browser/utils/logging/index.d.ts +0 -2
- package/dist/browser/utils/logging/index.js +0 -2
- package/dist/browser/utils/logging/log.d.ts +0 -33
- package/dist/browser/utils/logging/log.js +0 -75
- package/dist/browser/utils/logging/logger.d.ts +0 -18
- package/dist/browser/utils/logging/logger.js +0 -18
- package/dist/services/a2a/factory/builder.d.ts +0 -351
- package/dist/services/a2a/factory/builder.js +0 -365
- package/dist/services/a2a/factory/event.d.ts +0 -58
- package/dist/services/a2a/factory/event.js +0 -177
- package/dist/services/a2a/factory/method.d.ts +0 -6
- package/dist/services/a2a/factory/method.js +0 -14
- package/dist/services/a2a/helpers/agentcard-builder.d.ts +0 -7
- package/dist/services/a2a/helpers/agentcard-builder.js +0 -23
- package/dist/services/a2a/helpers/message-builder.d.ts +0 -12
- package/dist/services/a2a/helpers/message-builder.js +0 -61
- package/dist/services/a2a/managers/cancellation.d.ts +0 -11
- package/dist/services/a2a/managers/cancellation.js +0 -16
- package/dist/services/a2a/managers/connection.d.ts +0 -11
- package/dist/services/a2a/managers/connection.js +0 -16
- package/dist/services/a2a/managers/context.d.ts +0 -11
- package/dist/services/a2a/managers/context.js +0 -16
- package/dist/services/a2a/managers/index.d.ts +0 -5
- package/dist/services/a2a/managers/index.js +0 -5
- package/dist/services/a2a/managers/task.d.ts +0 -11
- package/dist/services/a2a/managers/task.js +0 -16
- package/dist/services/a2a/methods/cancel-task.d.ts +0 -7
- package/dist/services/a2a/methods/cancel-task.js +0 -43
- package/dist/services/a2a/methods/get-task.d.ts +0 -112
- package/dist/services/a2a/methods/get-task.js +0 -16
- package/dist/services/a2a/methods/resubscribe-task.d.ts +0 -7
- package/dist/services/a2a/methods/resubscribe-task.js +0 -80
- package/dist/services/a2a/methods/send-message.d.ts +0 -7
- package/dist/services/a2a/methods/send-message.js +0 -36
- package/dist/services/a2a/methods/stream-message.d.ts +0 -8
- package/dist/services/a2a/methods/stream-message.js +0 -21
- package/dist/services/a2a/state/index.d.ts +0 -3
- package/dist/services/a2a/state/index.js +0 -3
- package/dist/services/a2a/state/load.d.ts +0 -14
- package/dist/services/a2a/state/load.js +0 -71
- package/dist/services/a2a/state/process.d.ts +0 -7
- package/dist/services/a2a/state/process.js +0 -13
- package/dist/services/a2a/state/update/artifact.d.ts +0 -10
- package/dist/services/a2a/state/update/artifact.js +0 -39
- package/dist/services/a2a/state/update/index.d.ts +0 -2
- package/dist/services/a2a/state/update/index.js +0 -2
- package/dist/services/a2a/state/update/update.d.ts +0 -23
- package/dist/services/a2a/state/update/update.js +0 -123
- package/dist/services/core/execution/execute.d.ts +0 -6
- package/dist/services/core/execution/execute.js +0 -25
- package/dist/services/core/execution/index.d.ts +0 -1
- package/dist/services/core/execution/index.js +0 -1
- package/dist/services/core/managers/command.d.ts +0 -39
- package/dist/services/core/managers/event.d.ts +0 -18
- package/dist/services/core/managers/event.js +0 -56
- package/dist/services/core/managers/index.d.ts +0 -3
- package/dist/services/core/managers/index.js +0 -3
- package/dist/services/core/managers/stream.d.ts +0 -20
- package/dist/services/core/managers/stream.js +0 -77
- package/dist/types/ext.d.ts +0 -13
- package/dist/types/ext.js +0 -10
- package/dist/types/interfaces/index.d.ts +0 -3
- package/dist/types/interfaces/index.js +0 -3
- package/dist/types/interfaces/services/a2a/builder.d.ts +0 -37
- package/dist/types/interfaces/services/a2a/builder.js +0 -5
- package/dist/types/interfaces/services/a2a/context.d.ts +0 -162
- package/dist/types/interfaces/services/a2a/context.js +0 -5
- package/dist/types/interfaces/services/a2a/engine.d.ts +0 -7
- package/dist/types/interfaces/services/a2a/engine.js +0 -5
- package/dist/types/interfaces/services/a2a/index.d.ts +0 -5
- package/dist/types/interfaces/services/a2a/index.js +0 -5
- package/dist/types/interfaces/services/a2a/legacy.d.ts +0 -93
- package/dist/types/interfaces/services/a2a/legacy.js +0 -5
- package/dist/types/interfaces/services/a2a/service.d.ts +0 -413
- package/dist/types/interfaces/services/a2a/service.js +0 -5
- package/dist/types/interfaces/services/core/context/command.d.ts +0 -25
- package/dist/types/interfaces/services/core/context/command.js +0 -5
- package/dist/types/interfaces/services/core/context/context.d.ts +0 -207
- package/dist/types/interfaces/services/core/context/context.js +0 -5
- package/dist/types/interfaces/services/core/context/index.d.ts +0 -3
- package/dist/types/interfaces/services/core/context/index.js +0 -3
- package/dist/types/interfaces/services/core/context/types.d.ts +0 -11
- package/dist/types/interfaces/services/core/context/types.js +0 -5
- package/dist/types/interfaces/services/core/execution/engine.d.ts +0 -106
- package/dist/types/interfaces/services/core/execution/engine.js +0 -5
- package/dist/types/interfaces/services/core/execution/environment.d.ts +0 -11
- package/dist/types/interfaces/services/core/execution/environment.js +0 -5
- package/dist/types/interfaces/services/core/execution/execute.d.ts +0 -7
- package/dist/types/interfaces/services/core/execution/execute.js +0 -5
- package/dist/types/interfaces/services/core/execution/index.d.ts +0 -3
- package/dist/types/interfaces/services/core/execution/index.js +0 -3
- package/dist/types/interfaces/services/core/index.d.ts +0 -4
- package/dist/types/interfaces/services/core/index.js +0 -4
- package/dist/types/interfaces/services/core/managers/cancellation.d.ts +0 -9
- package/dist/types/interfaces/services/core/managers/cancellation.js +0 -5
- package/dist/types/interfaces/services/core/managers/connection.d.ts +0 -9
- package/dist/types/interfaces/services/core/managers/connection.js +0 -5
- package/dist/types/interfaces/services/core/managers/context.d.ts +0 -17
- package/dist/types/interfaces/services/core/managers/context.js +0 -5
- package/dist/types/interfaces/services/core/managers/event.d.ts +0 -328
- package/dist/types/interfaces/services/core/managers/event.js +0 -5
- package/dist/types/interfaces/services/core/managers/index.d.ts +0 -6
- package/dist/types/interfaces/services/core/managers/index.js +0 -6
- package/dist/types/interfaces/services/core/managers/stream.d.ts +0 -217
- package/dist/types/interfaces/services/core/managers/stream.js +0 -5
- package/dist/types/interfaces/services/core/managers/task.d.ts +0 -9
- package/dist/types/interfaces/services/core/service.d.ts +0 -115
- package/dist/types/interfaces/services/core/service.js +0 -5
- package/dist/types/interfaces/services/index.d.ts +0 -4
- package/dist/types/interfaces/services/index.js +0 -4
- package/dist/types/interfaces/services/mcp/index.d.ts +0 -1
- package/dist/types/interfaces/services/mcp/index.js +0 -1
- package/dist/types/interfaces/services/mcp/service.js +0 -5
- package/dist/types/interfaces/storage.d.ts +0 -8
- package/dist/types/schemas/a2a/agent.d.ts +0 -2583
- package/dist/types/schemas/a2a/agent.js +0 -323
- package/dist/types/schemas/a2a/auth.d.ts +0 -908
- package/dist/types/schemas/a2a/auth.js +0 -283
- package/dist/types/schemas/a2a/error.d.ts +0 -396
- package/dist/types/schemas/a2a/error.js +0 -163
- package/dist/types/schemas/a2a/index.d.ts +0 -11
- package/dist/types/schemas/a2a/index.js +0 -11
- package/dist/types/schemas/a2a/kind.d.ts +0 -11
- package/dist/types/schemas/a2a/kind.js +0 -20
- package/dist/types/schemas/a2a/message.d.ts +0 -10343
- package/dist/types/schemas/a2a/message.js +0 -130
- package/dist/types/schemas/a2a/notification.d.ts +0 -1517
- package/dist/types/schemas/a2a/notification.js +0 -203
- package/dist/types/schemas/a2a/parameters.d.ts +0 -956
- package/dist/types/schemas/a2a/parameters.js +0 -241
- package/dist/types/schemas/a2a/protocol.d.ts +0 -14363
- package/dist/types/schemas/a2a/protocol.js +0 -59
- package/dist/types/schemas/a2a/rpc.d.ts +0 -182
- package/dist/types/schemas/a2a/rpc.js +0 -126
- package/dist/types/schemas/a2a/task.d.ts +0 -5886
- package/dist/types/schemas/a2a/task.js +0 -134
- package/dist/types/schemas/a2a/transport.d.ts +0 -31
- package/dist/types/schemas/a2a/transport.js +0 -28
- package/dist/types/schemas/index.d.ts +0 -1
- package/dist/types/schemas/index.js +0 -1
- package/dist/utils/logging/index.d.ts +0 -2
- package/dist/utils/logging/index.js +0 -2
- package/dist/utils/logging/log.d.ts +0 -33
- package/dist/utils/logging/log.js +0 -75
- package/dist/utils/logging/logger.d.ts +0 -18
- package/dist/utils/logging/logger.js +0 -18
- package/dist/utils/storage/memory.d.ts +0 -25
- package/dist/utils/storage/memory.js +0 -47
- /package/dist/browser/{types/interfaces/services/core/managers/task.js → create/base.js} +0 -0
- /package/dist/browser/types/{interfaces/client.js → client.js} +0 -0
- /package/dist/{types/interfaces/services/core/managers/task.js → browser/types/core/core.js} +0 -0
- /package/dist/browser/types/{interfaces/services/protocol.d.ts → protocol.d.ts} +0 -0
- /package/dist/browser/types/{interfaces/services/protocol.js → protocol.js} +0 -0
- /package/dist/browser/types/{interfaces/storage.js → storage.js} +0 -0
- /package/dist/services/a2a/{methods → handlers}/index.d.ts +0 -0
- /package/dist/services/a2a/{methods → handlers}/index.js +0 -0
- /package/dist/types/{interfaces/client.js → client.js} +0 -0
- /package/dist/types/{interfaces/services/protocol.d.ts → protocol.d.ts} +0 -0
- /package/dist/types/{interfaces/services/protocol.js → protocol.js} +0 -0
- /package/dist/types/{interfaces/storage.js → storage.js} +0 -0
|
@@ -2,106 +2,254 @@
|
|
|
2
2
|
* Copyright 2025 The Artinet Project
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import { coreExecute } from "../core/execution/execute.js";
|
|
7
|
-
import { createMessageSendParams } from "./helpers/message-builder.js";
|
|
5
|
+
import { A2A } from "../../types/index.js";
|
|
8
6
|
import { validateSchema } from "../../utils/common/schema-validation.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.contexts = contexts;
|
|
23
|
-
this.connections = connections;
|
|
24
|
-
this.cancellations = cancellations;
|
|
25
|
-
this.tasks = tasks;
|
|
26
|
-
this.methods = methods;
|
|
27
|
-
this.eventOverrides = eventOverrides;
|
|
28
|
-
this.enforceParamValidation = enforceParamValidation;
|
|
29
|
-
}
|
|
30
|
-
async execute(engine, context) {
|
|
31
|
-
await coreExecute(engine ?? this.engine, context);
|
|
7
|
+
import * as describe from "../../create/describe.js";
|
|
8
|
+
import { INVALID_REQUEST, TASK_NOT_FOUND } from "../../utils/common/errors.js";
|
|
9
|
+
import { Messenger } from "./messenger.js";
|
|
10
|
+
import { execute } from "./execute.js";
|
|
11
|
+
import { createService } from "./factory/service.js";
|
|
12
|
+
import { getReferences } from "./helpers/references.js";
|
|
13
|
+
import { logger } from "../../config/index.js";
|
|
14
|
+
const createMessageParams = (task) => {
|
|
15
|
+
const latestUserMessage = task.history
|
|
16
|
+
?.filter((msg) => msg.role === "user")
|
|
17
|
+
?.pop();
|
|
18
|
+
if (!latestUserMessage) {
|
|
19
|
+
throw INVALID_REQUEST("No user message found");
|
|
32
20
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
21
|
+
const messageParams = {
|
|
22
|
+
message: {
|
|
23
|
+
...latestUserMessage,
|
|
24
|
+
taskId: task.id,
|
|
25
|
+
contextId: latestUserMessage.contextId ?? task.contextId,
|
|
26
|
+
},
|
|
27
|
+
metadata: task.metadata,
|
|
28
|
+
};
|
|
29
|
+
return messageParams;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* @note Comprehensive Extension system coming in a future release
|
|
33
|
+
*/
|
|
34
|
+
const getExtensions = async (extensions) => {
|
|
35
|
+
logger.warn("getExtensions: not implemented", { extensions });
|
|
36
|
+
return [];
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* @note We endeavor to remove all optional parameters from below this class.
|
|
40
|
+
* This will allow the service to act as the boundary to our Hexagonal Architecture.
|
|
41
|
+
*/
|
|
42
|
+
export class Service {
|
|
43
|
+
_agentCard;
|
|
44
|
+
_engine;
|
|
45
|
+
_connections;
|
|
46
|
+
_cancellations;
|
|
47
|
+
_tasks;
|
|
48
|
+
_contexts;
|
|
49
|
+
_streams;
|
|
50
|
+
_methods;
|
|
51
|
+
_overrides;
|
|
52
|
+
constructor(_agentCard, _engine, _connections, _cancellations, _tasks, _contexts, _streams, _methods, _overrides) {
|
|
53
|
+
this._agentCard = _agentCard;
|
|
54
|
+
this._engine = _engine;
|
|
55
|
+
this._connections = _connections;
|
|
56
|
+
this._cancellations = _cancellations;
|
|
57
|
+
this._tasks = _tasks;
|
|
58
|
+
this._contexts = _contexts;
|
|
59
|
+
this._streams = _streams;
|
|
60
|
+
this._methods = _methods;
|
|
61
|
+
this._overrides = _overrides;
|
|
39
62
|
}
|
|
40
|
-
|
|
41
|
-
this.
|
|
63
|
+
get methods() {
|
|
64
|
+
return this._methods;
|
|
42
65
|
}
|
|
43
|
-
|
|
44
|
-
this.
|
|
66
|
+
set methods(methods) {
|
|
67
|
+
this._methods = {
|
|
68
|
+
...this._methods,
|
|
69
|
+
...methods,
|
|
70
|
+
};
|
|
45
71
|
}
|
|
46
|
-
|
|
47
|
-
return this.
|
|
72
|
+
get agentCard() {
|
|
73
|
+
return this._agentCard;
|
|
48
74
|
}
|
|
49
|
-
|
|
50
|
-
this.
|
|
75
|
+
get engine() {
|
|
76
|
+
return this._engine;
|
|
51
77
|
}
|
|
52
|
-
|
|
53
|
-
this.
|
|
78
|
+
set engine(engine) {
|
|
79
|
+
this._engine = engine;
|
|
54
80
|
}
|
|
55
|
-
|
|
56
|
-
return
|
|
81
|
+
get connections() {
|
|
82
|
+
return this._connections;
|
|
57
83
|
}
|
|
58
|
-
|
|
59
|
-
|
|
84
|
+
get cancellations() {
|
|
85
|
+
return this._cancellations;
|
|
60
86
|
}
|
|
61
|
-
|
|
62
|
-
return
|
|
63
|
-
? await validateSchema(TaskQueryParamsSchema, input)
|
|
64
|
-
: input, { service: this });
|
|
87
|
+
get tasks() {
|
|
88
|
+
return this._tasks;
|
|
65
89
|
}
|
|
66
|
-
|
|
67
|
-
return
|
|
68
|
-
? await validateSchema(TaskIdParamsSchema, input)
|
|
69
|
-
: input, {
|
|
70
|
-
service: this,
|
|
71
|
-
contextManager: this.contexts,
|
|
72
|
-
});
|
|
90
|
+
get contexts() {
|
|
91
|
+
return this._contexts;
|
|
73
92
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
93
|
+
set contexts(contexts) {
|
|
94
|
+
this._contexts = {
|
|
95
|
+
...this._contexts,
|
|
96
|
+
...contexts,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
get streams() {
|
|
100
|
+
return this._streams;
|
|
101
|
+
}
|
|
102
|
+
get overrides() {
|
|
103
|
+
return this._overrides;
|
|
104
|
+
}
|
|
105
|
+
set overrides(overrides) {
|
|
106
|
+
this._overrides = {
|
|
107
|
+
...this._overrides,
|
|
108
|
+
...overrides,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
async execute({ engine, context, }) {
|
|
112
|
+
await execute(engine, context);
|
|
113
|
+
}
|
|
114
|
+
async getAgentCard() {
|
|
115
|
+
return this.agentCard;
|
|
116
|
+
}
|
|
117
|
+
async stop() {
|
|
118
|
+
logger.info(`Service[stop]`);
|
|
119
|
+
for (const context of await this.contexts.list()) {
|
|
120
|
+
await context.publisher.onCancel(describe.update.canceled({
|
|
121
|
+
contextId: context.contextId,
|
|
122
|
+
taskId: context.taskId,
|
|
123
|
+
message: describe.message("service stopped"),
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
async getTask(params, context, options) {
|
|
129
|
+
const taskParams = await validateSchema(A2A.TaskQueryParamsSchema, params);
|
|
130
|
+
logger.info(`Service[getTask]:`, { taskId: taskParams.id });
|
|
131
|
+
const task = await this.tasks.get(taskParams.id);
|
|
132
|
+
if (!task) {
|
|
133
|
+
throw TASK_NOT_FOUND({ taskId: taskParams.id });
|
|
134
|
+
}
|
|
135
|
+
return await this.methods.getTask(taskParams, context ??
|
|
136
|
+
(await this.contexts.create({
|
|
137
|
+
contextId: task.contextId,
|
|
138
|
+
service: this,
|
|
139
|
+
abortSignal: options?.abortSignal,
|
|
140
|
+
task: task,
|
|
141
|
+
overrides: this.overrides,
|
|
142
|
+
messenger: Messenger.create(createMessageParams(task)),
|
|
143
|
+
})));
|
|
144
|
+
}
|
|
145
|
+
async cancelTask(params, context, options) {
|
|
146
|
+
const taskParams = await validateSchema(A2A.TaskIdParamsSchema, params);
|
|
147
|
+
logger.info(`Service[cancelTask]:`, { taskId: taskParams.id });
|
|
148
|
+
const task = await this.tasks.get(taskParams.id);
|
|
149
|
+
if (!task) {
|
|
150
|
+
throw TASK_NOT_FOUND({ taskId: taskParams.id });
|
|
151
|
+
}
|
|
152
|
+
return await this.methods.cancelTask(taskParams, context ??
|
|
153
|
+
(await this.contexts.create({
|
|
154
|
+
contextId: task.contextId,
|
|
155
|
+
service: this,
|
|
156
|
+
abortSignal: options?.abortSignal,
|
|
157
|
+
task: task,
|
|
158
|
+
overrides: this.overrides,
|
|
159
|
+
messenger: Messenger.create(createMessageParams(task)),
|
|
160
|
+
})));
|
|
161
|
+
}
|
|
162
|
+
async sendMessage(paramsOrMessage, context, options) {
|
|
163
|
+
const params = describe.messageSendParams(paramsOrMessage);
|
|
164
|
+
return await this._sendMessage(params, context, options);
|
|
165
|
+
}
|
|
166
|
+
async _sendMessage(params, context, options) {
|
|
167
|
+
const messageParams = await validateSchema(A2A.MessageSendParamsSchema, params);
|
|
168
|
+
logger.info(`Service[sendMessage]:`, {
|
|
169
|
+
messageId: messageParams.message.messageId,
|
|
170
|
+
});
|
|
171
|
+
logger.debug(`Service[sendMessage]:`, {
|
|
172
|
+
taskId: messageParams.message.taskId,
|
|
83
173
|
});
|
|
174
|
+
logger.debug(`Service[sendMessage]:`, {
|
|
175
|
+
contextId: messageParams.message.contextId,
|
|
176
|
+
});
|
|
177
|
+
const task = await this.tasks.create({
|
|
178
|
+
id: messageParams.message.taskId,
|
|
179
|
+
contextId: messageParams.message.contextId,
|
|
180
|
+
history: [messageParams.message],
|
|
181
|
+
metadata: {
|
|
182
|
+
...messageParams.metadata,
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
return await this.methods.sendMessage(messageParams, context ??
|
|
186
|
+
(await this.contexts.create({
|
|
187
|
+
contextId: task.contextId,
|
|
188
|
+
service: this,
|
|
189
|
+
abortSignal: options?.abortSignal,
|
|
190
|
+
task: task,
|
|
191
|
+
overrides: this.overrides,
|
|
192
|
+
messenger: Messenger.create(messageParams),
|
|
193
|
+
references: await getReferences(this.tasks, messageParams.message.referenceTaskIds),
|
|
194
|
+
extensions: await getExtensions(messageParams.message.extensions),
|
|
195
|
+
})));
|
|
84
196
|
}
|
|
85
|
-
async *streamMessage(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
197
|
+
async *streamMessage(paramsOrMessage, context, options) {
|
|
198
|
+
const params = describe.messageSendParams(paramsOrMessage);
|
|
199
|
+
yield* this.sendMessageStream(params, context, options);
|
|
200
|
+
}
|
|
201
|
+
async *sendMessageStream(params, context, options) {
|
|
202
|
+
const messageParams = await validateSchema(A2A.MessageSendParamsSchema, params);
|
|
203
|
+
logger.info("Service[streamMessage]:", {
|
|
204
|
+
taskId: messageParams.message.taskId,
|
|
205
|
+
contextId: messageParams.message.contextId,
|
|
206
|
+
});
|
|
207
|
+
const task = await this.tasks.create({
|
|
208
|
+
id: messageParams.message.taskId,
|
|
209
|
+
contextId: messageParams.message.contextId,
|
|
210
|
+
history: [messageParams.message],
|
|
211
|
+
metadata: {
|
|
212
|
+
...messageParams.metadata,
|
|
213
|
+
},
|
|
94
214
|
});
|
|
215
|
+
logger.debug("Service[streamMessage]: task created", {
|
|
216
|
+
taskId: task.id,
|
|
217
|
+
contextId: task.contextId,
|
|
218
|
+
});
|
|
219
|
+
yield* this.methods.streamMessage(messageParams, context ??
|
|
220
|
+
(await this.contexts.create({
|
|
221
|
+
contextId: task.contextId,
|
|
222
|
+
service: this,
|
|
223
|
+
abortSignal: options?.abortSignal,
|
|
224
|
+
task: task,
|
|
225
|
+
overrides: this.overrides,
|
|
226
|
+
messenger: Messenger.create(messageParams),
|
|
227
|
+
references: await getReferences(this.tasks, messageParams.message.referenceTaskIds),
|
|
228
|
+
extensions: await getExtensions(messageParams.message.extensions),
|
|
229
|
+
})));
|
|
95
230
|
}
|
|
96
|
-
async *resubscribe(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
231
|
+
async *resubscribe(params, context, options) {
|
|
232
|
+
const taskParams = await validateSchema(A2A.TaskIdParamsSchema, params);
|
|
233
|
+
logger.info(`Service[resubscribe]:`, { taskId: taskParams.id });
|
|
234
|
+
const task = await this.tasks.get(taskParams.id);
|
|
235
|
+
if (!task) {
|
|
236
|
+
throw TASK_NOT_FOUND({ taskId: taskParams.id });
|
|
237
|
+
}
|
|
238
|
+
logger.debug("Service[resubscribe]:", {
|
|
239
|
+
taskId: task.id,
|
|
240
|
+
contextId: task.contextId,
|
|
105
241
|
});
|
|
242
|
+
yield* this.methods.resubscribe(taskParams, context ??
|
|
243
|
+
(await this.contexts.create({
|
|
244
|
+
contextId: task.contextId,
|
|
245
|
+
service: this,
|
|
246
|
+
abortSignal: options?.abortSignal,
|
|
247
|
+
task: task,
|
|
248
|
+
overrides: this.overrides,
|
|
249
|
+
messenger: Messenger.create(createMessageParams(task)),
|
|
250
|
+
})));
|
|
251
|
+
}
|
|
252
|
+
static create(params) {
|
|
253
|
+
return createService(params);
|
|
106
254
|
}
|
|
107
255
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { A2A } from "../../types/index.js";
|
|
3
|
+
export declare class StateMachine extends EventEmitter<A2A.Emissions> implements A2A.EventPublisher {
|
|
4
|
+
readonly _contextId: string;
|
|
5
|
+
private readonly _consumer;
|
|
6
|
+
private _currentTask;
|
|
7
|
+
onStart: (context: A2A.Context) => Promise<A2A.Task>;
|
|
8
|
+
onCancel: (update: A2A.Update) => Promise<void>;
|
|
9
|
+
onUpdate: (update: A2A.Update) => Promise<A2A.Task>;
|
|
10
|
+
onError: (error: any) => Promise<void>;
|
|
11
|
+
onComplete: () => Promise<void>;
|
|
12
|
+
constructor(_contextId: string, _consumer: A2A.EventConsumer, _currentTask: A2A.Task);
|
|
13
|
+
get currentTask(): A2A.Task;
|
|
14
|
+
private set currentTask(value);
|
|
15
|
+
get consumer(): A2A.EventConsumer;
|
|
16
|
+
get contextId(): string;
|
|
17
|
+
static create(contextId: string, service: A2A.Service, task: A2A.Task, overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>): StateMachine;
|
|
18
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { INTERNAL_ERROR } from "../../utils/index.js";
|
|
3
|
+
import { logger } from "../../config/index.js";
|
|
4
|
+
import { createStateMachine } from "./factory/state-machine.js";
|
|
5
|
+
export class StateMachine extends EventEmitter {
|
|
6
|
+
_contextId;
|
|
7
|
+
_consumer;
|
|
8
|
+
_currentTask;
|
|
9
|
+
onStart = async (context) => {
|
|
10
|
+
if (this.consumer.onStart) {
|
|
11
|
+
this.currentTask = await this.consumer.onStart(context);
|
|
12
|
+
}
|
|
13
|
+
this.emit("start", context.messages, this.currentTask);
|
|
14
|
+
return this.currentTask;
|
|
15
|
+
};
|
|
16
|
+
onCancel = async (update) => {
|
|
17
|
+
if (this.consumer.onCancel) {
|
|
18
|
+
await this.consumer.onCancel(update, this.currentTask);
|
|
19
|
+
}
|
|
20
|
+
this.emit("cancel", update);
|
|
21
|
+
};
|
|
22
|
+
onUpdate = async (update) => {
|
|
23
|
+
if (this.consumer.onUpdate) {
|
|
24
|
+
this.currentTask = await this.consumer.onUpdate(update, this.currentTask);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
logger.warn(`onUpdate[${this.contextId}]:`, "onUpdate callback not found");
|
|
28
|
+
this.currentTask = update;
|
|
29
|
+
}
|
|
30
|
+
this.emit("update", this.currentTask, update);
|
|
31
|
+
return this.currentTask;
|
|
32
|
+
};
|
|
33
|
+
onError = async (error) => {
|
|
34
|
+
if (this.consumer.onError) {
|
|
35
|
+
await this.consumer.onError(error, this.currentTask);
|
|
36
|
+
}
|
|
37
|
+
if (!this.listenerCount("error"))
|
|
38
|
+
return;
|
|
39
|
+
this.emit("error", error, this.currentTask);
|
|
40
|
+
};
|
|
41
|
+
onComplete = async () => {
|
|
42
|
+
if (this.consumer.onComplete) {
|
|
43
|
+
await this.consumer.onComplete(this.currentTask);
|
|
44
|
+
}
|
|
45
|
+
this.emit("complete", this.currentTask);
|
|
46
|
+
};
|
|
47
|
+
constructor(_contextId, _consumer, _currentTask) {
|
|
48
|
+
super();
|
|
49
|
+
this._contextId = _contextId;
|
|
50
|
+
this._consumer = _consumer;
|
|
51
|
+
this._currentTask = _currentTask;
|
|
52
|
+
}
|
|
53
|
+
get currentTask() {
|
|
54
|
+
if (!this._currentTask) {
|
|
55
|
+
throw INTERNAL_ERROR({
|
|
56
|
+
error: { message: "state machine is not initialized" },
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return this._currentTask;
|
|
60
|
+
}
|
|
61
|
+
set currentTask(task) {
|
|
62
|
+
this._currentTask = task;
|
|
63
|
+
}
|
|
64
|
+
get consumer() {
|
|
65
|
+
return this._consumer;
|
|
66
|
+
}
|
|
67
|
+
get contextId() {
|
|
68
|
+
return this._contextId;
|
|
69
|
+
}
|
|
70
|
+
static create(contextId, service, task, overrides) {
|
|
71
|
+
return createStateMachine({
|
|
72
|
+
contextId,
|
|
73
|
+
service,
|
|
74
|
+
task,
|
|
75
|
+
overrides,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { A2A } from "../../types/index.js";
|
|
2
|
+
export declare class Stream implements A2A.Stream {
|
|
3
|
+
private _contextId;
|
|
4
|
+
private _context;
|
|
5
|
+
private _updates;
|
|
6
|
+
private _completed;
|
|
7
|
+
protected running: AsyncGenerator<A2A.Update> | null;
|
|
8
|
+
constructor(_contextId: string, _context: A2A.Context, _updates?: A2A.Update[], _completed?: boolean);
|
|
9
|
+
get contextId(): string;
|
|
10
|
+
get isAlive(): boolean;
|
|
11
|
+
kill(): Promise<void>;
|
|
12
|
+
get context(): A2A.Context;
|
|
13
|
+
set context(context: A2A.Context);
|
|
14
|
+
get updates(): A2A.Update[];
|
|
15
|
+
run({ service, }: {
|
|
16
|
+
service: A2A.Service;
|
|
17
|
+
}): AsyncGenerator<A2A.Update>;
|
|
18
|
+
subscribe(): AsyncGenerator<A2A.Update>;
|
|
19
|
+
_run({ service, }: {
|
|
20
|
+
service: A2A.Service;
|
|
21
|
+
}): AsyncGenerator<A2A.Update>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { sleep } from "../../utils/common/utils.js";
|
|
2
|
+
import { logger } from "../../config/index.js";
|
|
3
|
+
const STREAM_INTERVAL = 5;
|
|
4
|
+
export class Stream {
|
|
5
|
+
_contextId;
|
|
6
|
+
_context;
|
|
7
|
+
_updates;
|
|
8
|
+
_completed;
|
|
9
|
+
running = null;
|
|
10
|
+
constructor(_contextId, _context, _updates = [], _completed = false) {
|
|
11
|
+
this._contextId = _contextId;
|
|
12
|
+
this._context = _context;
|
|
13
|
+
this._updates = _updates;
|
|
14
|
+
this._completed = _completed;
|
|
15
|
+
}
|
|
16
|
+
get contextId() {
|
|
17
|
+
return this._contextId;
|
|
18
|
+
}
|
|
19
|
+
get isAlive() {
|
|
20
|
+
return !this._completed;
|
|
21
|
+
}
|
|
22
|
+
async kill() {
|
|
23
|
+
this._completed = true;
|
|
24
|
+
}
|
|
25
|
+
get context() {
|
|
26
|
+
return this._context;
|
|
27
|
+
}
|
|
28
|
+
set context(context) {
|
|
29
|
+
this._context = context;
|
|
30
|
+
this._contextId = context.contextId;
|
|
31
|
+
}
|
|
32
|
+
get updates() {
|
|
33
|
+
return this._updates;
|
|
34
|
+
}
|
|
35
|
+
async *run({ service, }) {
|
|
36
|
+
this.context.publisher.on("complete", async () => {
|
|
37
|
+
logger.debug(`Stream[run:${this.contextId}]: complete`);
|
|
38
|
+
await this.kill();
|
|
39
|
+
this.running = null;
|
|
40
|
+
});
|
|
41
|
+
this.context.publisher.on("error", async (err) => {
|
|
42
|
+
logger.error(`Stream[run:${this.contextId}]: error`, err);
|
|
43
|
+
await this.context.publisher.onComplete();
|
|
44
|
+
});
|
|
45
|
+
if (!this.running) {
|
|
46
|
+
this.running = this._run({ service });
|
|
47
|
+
yield* this.running;
|
|
48
|
+
}
|
|
49
|
+
yield* this.subscribe();
|
|
50
|
+
}
|
|
51
|
+
async *subscribe() {
|
|
52
|
+
const subscription = this.updates;
|
|
53
|
+
this.context.publisher.on("update", async (_, update) => {
|
|
54
|
+
subscription.push(update);
|
|
55
|
+
});
|
|
56
|
+
let updatesRead = 0;
|
|
57
|
+
while (!this._completed || updatesRead < subscription.length) {
|
|
58
|
+
if (updatesRead < subscription.length) {
|
|
59
|
+
yield subscription[updatesRead++];
|
|
60
|
+
}
|
|
61
|
+
await sleep(STREAM_INTERVAL);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async *_run({ service, }) {
|
|
65
|
+
let executionError = null;
|
|
66
|
+
const context = this.context;
|
|
67
|
+
// NOTE: isCancelled() returns a Promise, so must be awaited.
|
|
68
|
+
// Without async/await here, updates would never be pushed due to
|
|
69
|
+
// Promise being truthy (making !Promise always false).
|
|
70
|
+
context.publisher.on("update", async (_, update) => {
|
|
71
|
+
if (!(await context.isCancelled())) {
|
|
72
|
+
this.updates.push(update);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
const executePromise = service
|
|
76
|
+
.execute({ engine: service.engine, context })
|
|
77
|
+
.catch((error) => {
|
|
78
|
+
executionError = error;
|
|
79
|
+
})
|
|
80
|
+
.finally(() => {
|
|
81
|
+
this._completed = true;
|
|
82
|
+
});
|
|
83
|
+
while (!this._completed || this.updates.length > 0) {
|
|
84
|
+
if (executionError) {
|
|
85
|
+
throw executionError;
|
|
86
|
+
}
|
|
87
|
+
if (this.updates.length > 0) {
|
|
88
|
+
yield this.updates.shift();
|
|
89
|
+
}
|
|
90
|
+
await sleep(STREAM_INTERVAL);
|
|
91
|
+
}
|
|
92
|
+
await executePromise;
|
|
93
|
+
this._completed = true;
|
|
94
|
+
if (executionError) {
|
|
95
|
+
throw executionError;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./managers/index.js";
|
|
1
|
+
export * from "./manager.js";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./managers/index.js";
|
|
1
|
+
export * from "./manager.js";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class Manager<T> {
|
|
6
|
+
private _data;
|
|
7
|
+
private throwOnSet;
|
|
8
|
+
constructor(_data?: Map<string, T>, throwOnSet?: boolean);
|
|
9
|
+
get data(): Map<string, T>;
|
|
10
|
+
set(id: string, data?: T): Promise<void>;
|
|
11
|
+
get(id: string): Promise<T | undefined>;
|
|
12
|
+
delete(id: string): Promise<void>;
|
|
13
|
+
has(id: string): Promise<boolean>;
|
|
14
|
+
list(): Promise<T[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { logger } from "../../config/index.js";
|
|
6
|
+
export class Manager {
|
|
7
|
+
_data;
|
|
8
|
+
throwOnSet;
|
|
9
|
+
constructor(_data = new Map(), throwOnSet = true) {
|
|
10
|
+
this._data = _data;
|
|
11
|
+
this.throwOnSet = throwOnSet;
|
|
12
|
+
}
|
|
13
|
+
get data() {
|
|
14
|
+
return this._data;
|
|
15
|
+
}
|
|
16
|
+
async set(id, data) {
|
|
17
|
+
logger.debug(`${this.constructor.name}[set]:`, { id });
|
|
18
|
+
if (!data && this.throwOnSet) {
|
|
19
|
+
throw new Error("Data is required");
|
|
20
|
+
}
|
|
21
|
+
else if (!data) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.data.set(id, data);
|
|
25
|
+
}
|
|
26
|
+
async get(id) {
|
|
27
|
+
// logger.debug(`${this.constructor.name}[get]:`, { id });
|
|
28
|
+
return this.data.get(id);
|
|
29
|
+
}
|
|
30
|
+
async delete(id) {
|
|
31
|
+
logger.debug(`${this.constructor.name}[delete]:`, { id });
|
|
32
|
+
this.data.delete(id);
|
|
33
|
+
}
|
|
34
|
+
async has(id) {
|
|
35
|
+
// logger.debug(`${this.constructor.name}[has]:`, { id });
|
|
36
|
+
return this.data.has(id);
|
|
37
|
+
}
|
|
38
|
+
async list() {
|
|
39
|
+
// logger.debug(`${this.constructor.name}[list]:`);
|
|
40
|
+
return Array.from(this.data.values());
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -3,26 +3,22 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
-
import {
|
|
6
|
+
import { MCP } from "../../types/index.js";
|
|
7
7
|
import { Implementation } from "@modelcontextprotocol/sdk/types.js";
|
|
8
8
|
import { ServerOptions } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9
|
-
import { Agent } from "
|
|
10
|
-
export
|
|
9
|
+
import { Agent } from "../a2a/index.js";
|
|
10
|
+
export interface MCPServiceParams {
|
|
11
|
+
serverInfo: Implementation;
|
|
12
|
+
agent: Agent;
|
|
13
|
+
options?: ServerOptions;
|
|
14
|
+
agentCardUri?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class BaseMCPService extends McpServer implements MCP.Service {
|
|
11
17
|
readonly agent: Agent;
|
|
12
18
|
private _registerBaseTools;
|
|
13
|
-
constructor({ serverInfo, agent, options, agentCardUri, }:
|
|
14
|
-
serverInfo: Implementation;
|
|
15
|
-
agent: Agent;
|
|
16
|
-
options?: ServerOptions;
|
|
17
|
-
agentCardUri?: string;
|
|
18
|
-
});
|
|
19
|
+
constructor({ serverInfo, agent, options, agentCardUri, }: MCPServiceParams);
|
|
19
20
|
stop(): Promise<void>;
|
|
20
|
-
static create({ serverInfo, agent, options, agentCardUri, }:
|
|
21
|
-
serverInfo: Implementation;
|
|
22
|
-
agent: Agent;
|
|
23
|
-
options?: ServerOptions;
|
|
24
|
-
agentCardUri?: string;
|
|
25
|
-
}): BaseMCPService & Agent;
|
|
21
|
+
static create({ serverInfo, agent, options, agentCardUri, }: MCPServiceParams): BaseMCPService & Agent;
|
|
26
22
|
}
|
|
27
23
|
export type MCPService = ReturnType<typeof BaseMCPService.create>;
|
|
28
24
|
export type MCPAgent = MCPService;
|