@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,11 +2,11 @@
|
|
|
2
2
|
* Copyright 2025 The Artinet Project
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { createHandler } from "./handler.js";
|
|
6
|
+
import * as describe from "../../../create/agentcard-builder.js";
|
|
7
|
+
import { Service } from "../service.js";
|
|
8
|
+
import { Contexts, Streams, Connections, Cancellations, Tasks, } from "../managers.js";
|
|
9
9
|
export function createService(params) {
|
|
10
|
-
return new
|
|
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);
|
|
11
11
|
}
|
|
12
12
|
export const createAgent = createService;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare function createStateMachine({ contextId, service, task: currentTask, overrides, }: {
|
|
7
|
+
contextId: string;
|
|
8
|
+
service: A2A.Service;
|
|
9
|
+
task: A2A.Task;
|
|
10
|
+
overrides?: Partial<Omit<A2A.EventConsumer, "contextId">>;
|
|
11
|
+
}): A2A.EventPublisher;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { StateMachine } from "../state-machine.js";
|
|
6
|
+
import { logger } from "../../../config/index.js";
|
|
7
|
+
import * as describe from "../../../create/describe.js";
|
|
8
|
+
import { TASK_NOT_FOUND } from "../../../utils/index.js";
|
|
9
|
+
import assert from "assert";
|
|
10
|
+
export function createStateMachine({ contextId, service, task: currentTask, overrides, }) {
|
|
11
|
+
const handler = {
|
|
12
|
+
contextId: contextId,
|
|
13
|
+
onStart: async (context) => {
|
|
14
|
+
assert(context.contextId === contextId, "context mismatch");
|
|
15
|
+
logger.info(`onStart[ctx:${contextId}]:`, { taskId: context.taskId });
|
|
16
|
+
await service.connections.set(context.contextId);
|
|
17
|
+
const task = await service.tasks.get(context.taskId);
|
|
18
|
+
// we now expect the task to be created by the service
|
|
19
|
+
// so if it's not found we throw an error
|
|
20
|
+
if (!task) {
|
|
21
|
+
throw TASK_NOT_FOUND({ taskId: context.taskId, contextId: contextId });
|
|
22
|
+
}
|
|
23
|
+
return task;
|
|
24
|
+
},
|
|
25
|
+
onCancel: async (update, task) => {
|
|
26
|
+
logger.info(`onCancel[ctx:${contextId}]:`, "cancellation triggered");
|
|
27
|
+
logger.debug(`onCancel[ctx:${contextId}]:`, "arguments", update, task);
|
|
28
|
+
await service.cancellations.set(task.id);
|
|
29
|
+
const cancellation = describe.update.canceled({
|
|
30
|
+
taskId: task.id,
|
|
31
|
+
contextId: task.contextId,
|
|
32
|
+
message: update.status?.message,
|
|
33
|
+
});
|
|
34
|
+
await service.tasks.update((await service.contexts.get(contextId)), cancellation);
|
|
35
|
+
},
|
|
36
|
+
onUpdate: async (update, task) => {
|
|
37
|
+
logger.info(`onUpdate[ctx:${contextId}]:`);
|
|
38
|
+
logger.debug(`onUpdate[ctx:${contextId}]:`, { taskId: task.id });
|
|
39
|
+
if (await service.cancellations.has(task.id)) {
|
|
40
|
+
logger.warn(`onUpdate[ctx:${contextId}]:`, { taskId: task.id }, "task is cancelled, no longer processing updates");
|
|
41
|
+
return task;
|
|
42
|
+
}
|
|
43
|
+
return await service.tasks.update((await service.contexts.get(contextId)), update);
|
|
44
|
+
},
|
|
45
|
+
onError: async (error, task) => {
|
|
46
|
+
logger.error(`onError[ctx:${contextId}]:`, error);
|
|
47
|
+
if (!task) {
|
|
48
|
+
logger.error(`onError[ctx:${contextId}]:`, new Error("task not found"));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const errorUpdate = describe.update.failed({
|
|
52
|
+
taskId: task.id,
|
|
53
|
+
contextId,
|
|
54
|
+
message: describe.message({
|
|
55
|
+
messageId: "failed-update",
|
|
56
|
+
parts: [
|
|
57
|
+
{
|
|
58
|
+
kind: "text",
|
|
59
|
+
text: error instanceof Error ? error.message : String(error),
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
}),
|
|
63
|
+
});
|
|
64
|
+
const context = await service.contexts.get(contextId);
|
|
65
|
+
if (!context) {
|
|
66
|
+
logger.error(`onError[ctx:${contextId}]:`, new Error("context not found"));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
await service.tasks.update(context, errorUpdate).catch((error) => {
|
|
70
|
+
//we capture errors thrown during error handling to ensure we trigger completion gracefully
|
|
71
|
+
logger.error(`onError: task update error[ctx:${contextId}]:`, error);
|
|
72
|
+
});
|
|
73
|
+
// we trigger completion here to ensure the context is cleaned up
|
|
74
|
+
await context.publisher.onComplete();
|
|
75
|
+
},
|
|
76
|
+
onComplete: async (task) => {
|
|
77
|
+
assert(task.contextId === contextId, "context mismatch");
|
|
78
|
+
logger.info(`onComplete[ctx:${contextId}]: `, { taskId: task.id });
|
|
79
|
+
await service.cancellations.delete(task.id);
|
|
80
|
+
await service.connections.delete(task.contextId);
|
|
81
|
+
await service.contexts.delete(task.contextId);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
return new StateMachine(contextId, {
|
|
85
|
+
...handler,
|
|
86
|
+
...overrides,
|
|
87
|
+
}, currentTask);
|
|
88
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare function updateArtifact(_artifact: A2A.Artifact, update: A2A.TaskArtifactUpdateEvent): A2A.Artifact;
|
|
7
|
+
export declare function upsertArtifact(artifacts: A2A.Artifact[], update: A2A.TaskArtifactUpdateEvent): A2A.Artifact[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
export function updateArtifact(_artifact, update) {
|
|
6
|
+
if (!update.append)
|
|
7
|
+
return update.artifact;
|
|
8
|
+
const artifactUpdate = update.artifact;
|
|
9
|
+
const artifact = _artifact;
|
|
10
|
+
artifact.metadata = {
|
|
11
|
+
...(artifact.metadata || {}),
|
|
12
|
+
...artifactUpdate.metadata,
|
|
13
|
+
};
|
|
14
|
+
artifact.description = artifactUpdate.description;
|
|
15
|
+
artifact.name = artifactUpdate.name;
|
|
16
|
+
artifact.parts.push(...artifactUpdate.parts);
|
|
17
|
+
return artifact;
|
|
18
|
+
}
|
|
19
|
+
export function upsertArtifact(artifacts, update) {
|
|
20
|
+
const updateId = update.artifact.artifactId;
|
|
21
|
+
const index = artifacts.findIndex((a) => a.artifactId === updateId);
|
|
22
|
+
if (index === -1) {
|
|
23
|
+
artifacts.push({ ...update.artifact });
|
|
24
|
+
return artifacts;
|
|
25
|
+
}
|
|
26
|
+
artifacts[index] = updateArtifact(artifacts[index], update);
|
|
27
|
+
return artifacts;
|
|
28
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare const cancelTask: A2A.RequestHandler["cancelTask"];
|
|
7
|
+
export type CancelTaskHandler = typeof cancelTask;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use CancelTaskHandler instead
|
|
10
|
+
*/
|
|
11
|
+
export type CancelTaskMethod = CancelTaskHandler;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
import { FINAL_STATES, TASK_NOT_FOUND, TASK_NOT_CANCELABLE, INTERNAL_ERROR, } from "../../../utils/index.js";
|
|
7
|
+
export const cancelTask = async ({ id: taskId }, context) => {
|
|
8
|
+
if (!context) {
|
|
9
|
+
throw INTERNAL_ERROR({ error: { message: "Context is required" } });
|
|
10
|
+
}
|
|
11
|
+
const service = context.service;
|
|
12
|
+
const task = await service.tasks.get(taskId);
|
|
13
|
+
if (!task) {
|
|
14
|
+
throw TASK_NOT_FOUND({ taskId });
|
|
15
|
+
}
|
|
16
|
+
if (FINAL_STATES.includes(task.status.state)) {
|
|
17
|
+
throw TASK_NOT_CANCELABLE("Task is in a final state: " + task.status.state);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* By triggering onCancel, we're guaranteed that:
|
|
21
|
+
* - No further updates will be processed other than errors
|
|
22
|
+
* - The task will be cancelled
|
|
23
|
+
* - The task will be completed
|
|
24
|
+
* - The cancellations will be cleaned up
|
|
25
|
+
*/
|
|
26
|
+
const cancelledTask = {
|
|
27
|
+
...task,
|
|
28
|
+
status: {
|
|
29
|
+
...task.status,
|
|
30
|
+
state: A2A.TaskState.canceled,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
await context.publisher.onCancel(cancelledTask);
|
|
34
|
+
return cancelledTask;
|
|
35
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare const getTask: A2A.RequestHandler["getTask"];
|
|
7
|
+
export type GetTaskHandler = typeof getTask;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use GetTaskHandler instead
|
|
10
|
+
*/
|
|
11
|
+
export type GetTaskMethod = GetTaskHandler;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TASK_NOT_FOUND, INTERNAL_ERROR } from "../../../utils/index.js";
|
|
2
|
+
import { getLatestHistory } from "../helpers/index.js";
|
|
3
|
+
export const getTask = async ({ id: taskId, historyLength }, context) => {
|
|
4
|
+
if (!context) {
|
|
5
|
+
throw INTERNAL_ERROR({ error: { message: "Context is required" } });
|
|
6
|
+
}
|
|
7
|
+
const task = await context.service.tasks.get(taskId);
|
|
8
|
+
if (!task) {
|
|
9
|
+
throw TASK_NOT_FOUND({ taskId });
|
|
10
|
+
}
|
|
11
|
+
task.history = getLatestHistory(task, historyLength);
|
|
12
|
+
return task;
|
|
13
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare const subscribeToTask: A2A.RequestHandler["resubscribe"];
|
|
7
|
+
export type SubscribeToTaskHandler = typeof subscribeToTask;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use SubscribeToTaskHandler instead
|
|
10
|
+
*/
|
|
11
|
+
export declare const resubscribe: (input: A2A.TaskIdParams, context?: A2A.Context, options?: A2A.ServiceOptions) => AsyncGenerator<A2A.Update>;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use SubscribeToTaskHandler instead
|
|
14
|
+
*/
|
|
15
|
+
export type TaskResubscribeHandler = typeof resubscribe;
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Use SubscribeToTaskHandler instead
|
|
18
|
+
*/
|
|
19
|
+
export type ResubscribeTaskMethod = TaskResubscribeHandler;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
import { FINAL_STATES, INTERNAL_ERROR, TASK_NOT_FOUND } from "../../../utils/index.js";
|
|
7
|
+
const flush = (task, stream) => {
|
|
8
|
+
if (!task.artifacts || task.artifacts.length === 0)
|
|
9
|
+
return;
|
|
10
|
+
for (const artifact of task.artifacts) {
|
|
11
|
+
const artifactUpdate = {
|
|
12
|
+
kind: A2A.Kind["artifact-update"],
|
|
13
|
+
taskId: task.id,
|
|
14
|
+
contextId: task.contextId,
|
|
15
|
+
artifact,
|
|
16
|
+
lastChunk: task.artifacts.length === 1,
|
|
17
|
+
metadata: task.metadata,
|
|
18
|
+
};
|
|
19
|
+
stream.updates.push(artifactUpdate);
|
|
20
|
+
task.artifacts.shift();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export const subscribeToTask = async function* ({ id: taskId }, context) {
|
|
24
|
+
if (!context) {
|
|
25
|
+
throw INTERNAL_ERROR({ error: { message: "Context is required" } });
|
|
26
|
+
}
|
|
27
|
+
const service = context.service;
|
|
28
|
+
if (!(await service.tasks.has(taskId))) {
|
|
29
|
+
throw TASK_NOT_FOUND({ taskId });
|
|
30
|
+
}
|
|
31
|
+
const stream = (await service.streams.get(context.contextId)) ??
|
|
32
|
+
(await service.streams.create({
|
|
33
|
+
contextId: context.contextId,
|
|
34
|
+
context,
|
|
35
|
+
}));
|
|
36
|
+
// onStart no longer inserts a new task, so we can safely push the update and continue
|
|
37
|
+
context.publisher.on("start", async (_, task) => {
|
|
38
|
+
stream.updates.push({
|
|
39
|
+
kind: "status-update",
|
|
40
|
+
taskId: task.id,
|
|
41
|
+
contextId: task.contextId,
|
|
42
|
+
status: task.status,
|
|
43
|
+
final: false,
|
|
44
|
+
metadata: task.metadata,
|
|
45
|
+
});
|
|
46
|
+
if (FINAL_STATES.includes(task.status.state)) {
|
|
47
|
+
/* We create a new task object to avoid mutating the original task */
|
|
48
|
+
flush({ ...task }, stream);
|
|
49
|
+
await stream.kill();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
yield* stream.run({
|
|
53
|
+
service: service,
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Use SubscribeToTaskHandler instead
|
|
58
|
+
*/
|
|
59
|
+
export const resubscribe = subscribeToTask;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare const sendMessage: A2A.RequestHandler["sendMessage"];
|
|
7
|
+
export type SendMessageHandler = typeof sendMessage;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use SendMessageHandler instead
|
|
10
|
+
*/
|
|
11
|
+
export type SendMessageMethod = SendMessageHandler;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { getLatestHistory } from "../helpers/index.js";
|
|
6
|
+
import { INTERNAL_ERROR } from "../../../utils/index.js";
|
|
7
|
+
export const sendMessage = async ({ configuration }, context) => {
|
|
8
|
+
if (!context) {
|
|
9
|
+
throw INTERNAL_ERROR({ error: { message: "Context is required" } });
|
|
10
|
+
}
|
|
11
|
+
const service = context.service;
|
|
12
|
+
let task;
|
|
13
|
+
if (configuration?.blocking === false) {
|
|
14
|
+
task = await Promise.race([
|
|
15
|
+
service.execute({ engine: service.engine, context }).then(async () => {
|
|
16
|
+
return await context.getTask();
|
|
17
|
+
}),
|
|
18
|
+
new Promise((resolve) => {
|
|
19
|
+
context.publisher.on("start", (_, task) => {
|
|
20
|
+
resolve(task);
|
|
21
|
+
});
|
|
22
|
+
}),
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
await service.execute({ engine: service.engine, context });
|
|
27
|
+
task = await context.getTask();
|
|
28
|
+
}
|
|
29
|
+
task.history = getLatestHistory(task, configuration?.historyLength);
|
|
30
|
+
return task;
|
|
31
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare const sendMessageStream: A2A.RequestHandler["streamMessage"];
|
|
7
|
+
export type SendMessageStreamHandler = typeof sendMessageStream;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use sendMessageStream instead
|
|
10
|
+
*/
|
|
11
|
+
export declare const streamMessage: (message: A2A.MessageSendParams, context?: A2A.Context, options?: A2A.ServiceOptions) => AsyncGenerator<A2A.Update>;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use SendMessageStreamHandler instead
|
|
14
|
+
*/
|
|
15
|
+
export type StreamMessageHandler = SendMessageStreamHandler;
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Use StreamMessageHandler instead
|
|
18
|
+
*/
|
|
19
|
+
export type StreamMessageMethod = StreamMessageHandler;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { INTERNAL_ERROR } from "../../../utils/index.js";
|
|
6
|
+
export const sendMessageStream = async function* (_, context) {
|
|
7
|
+
if (!context) {
|
|
8
|
+
throw INTERNAL_ERROR({ error: { message: "Context is required" } });
|
|
9
|
+
}
|
|
10
|
+
const service = context.service;
|
|
11
|
+
if (await service.streams.has(context.contextId)) {
|
|
12
|
+
throw INTERNAL_ERROR({ error: { message: "Stream already exists" } });
|
|
13
|
+
}
|
|
14
|
+
const stream = await service.streams.create({
|
|
15
|
+
contextId: context.contextId,
|
|
16
|
+
context,
|
|
17
|
+
});
|
|
18
|
+
yield* stream.run({ service });
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated Use sendMessageStream instead
|
|
22
|
+
*/
|
|
23
|
+
export const streamMessage = sendMessageStream;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export interface UpdateParams<Update extends A2A.Update = A2A.Update> {
|
|
7
|
+
context: A2A.Context;
|
|
8
|
+
task: A2A.Task;
|
|
9
|
+
update: Update;
|
|
10
|
+
}
|
|
11
|
+
type Updater<Update extends A2A.Update> = (props: UpdateParams<Update>) => Promise<A2A.Task>;
|
|
12
|
+
export declare const handleMessageUpdate: Updater<A2A.Message>;
|
|
13
|
+
export declare const handleTaskUpdate: Updater<A2A.Task>;
|
|
14
|
+
export declare const handleStatusUpdate: Updater<A2A.TaskStatusUpdateEvent>;
|
|
15
|
+
export declare const handleArtifactUpdate: Updater<A2A.TaskArtifactUpdateEvent>;
|
|
16
|
+
export declare const handleUpdate: Updater<A2A.Update>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { getCurrentTimestamp, formatJson } from "../../../utils/common/utils.js";
|
|
6
|
+
import { validateSchema } from "../../../utils/common/schema-validation.js";
|
|
7
|
+
import { upsertArtifact } from "./artifact.js";
|
|
8
|
+
import { A2A } from "../../../types/index.js";
|
|
9
|
+
import { logger } from "../../../config/index.js";
|
|
10
|
+
const isMessageInHistory = (task, message) => {
|
|
11
|
+
return task.history?.find((msg) => msg.messageId === message.messageId);
|
|
12
|
+
};
|
|
13
|
+
const updateHistory = (task, updateMessage) => {
|
|
14
|
+
if (!isMessageInHistory(task, updateMessage)) {
|
|
15
|
+
task.history = [...(task.history ?? []), updateMessage];
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
export const handleMessageUpdate = async ({ task, update, }) => {
|
|
19
|
+
const validated = await validateSchema(A2A.MessageSchema, update);
|
|
20
|
+
if (validated.taskId && task.id !== validated.taskId) {
|
|
21
|
+
throw new Error(`updateMessage: Invalid task id: ${validated.taskId} ${formatJson({
|
|
22
|
+
cause: {
|
|
23
|
+
validated,
|
|
24
|
+
actual: task.id,
|
|
25
|
+
task,
|
|
26
|
+
},
|
|
27
|
+
})}`);
|
|
28
|
+
}
|
|
29
|
+
updateHistory(task, validated);
|
|
30
|
+
return task;
|
|
31
|
+
};
|
|
32
|
+
export const handleTaskUpdate = async ({ context, task, update, }) => {
|
|
33
|
+
const validated = await validateSchema(A2A.TaskSchema, update);
|
|
34
|
+
if (task.id !== validated.id) {
|
|
35
|
+
throw new Error(`updateTask: Invalid task id: ${validated.id}`, {
|
|
36
|
+
cause: validated,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
task = { ...task, ...validated };
|
|
40
|
+
if (context.userMessage) {
|
|
41
|
+
updateHistory(task, context.userMessage);
|
|
42
|
+
}
|
|
43
|
+
return task;
|
|
44
|
+
};
|
|
45
|
+
export const handleStatusUpdate = async ({ task, update, }) => {
|
|
46
|
+
const validated = await validateSchema(A2A.TaskStatusUpdateEventSchema, update);
|
|
47
|
+
if (validated.taskId && task.id !== validated.taskId) {
|
|
48
|
+
throw new Error(`updateTaskStatusUpdate: Invalid task id: ${validated.taskId}`, { cause: validated });
|
|
49
|
+
}
|
|
50
|
+
task.status = validated.status;
|
|
51
|
+
task.status.timestamp = getCurrentTimestamp();
|
|
52
|
+
if (validated.status.message) {
|
|
53
|
+
updateHistory(task, validated.status.message);
|
|
54
|
+
}
|
|
55
|
+
return task;
|
|
56
|
+
};
|
|
57
|
+
export const handleArtifactUpdate = async ({ task, update }) => {
|
|
58
|
+
const validated = await validateSchema(A2A.TaskArtifactUpdateEventSchema, update);
|
|
59
|
+
if (validated.taskId && task.id !== validated.taskId) {
|
|
60
|
+
throw new Error(`updateTaskArtifactUpdate: Invalid task id: ${validated.taskId}`, {
|
|
61
|
+
cause: validated,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
validated.taskId = task.id;
|
|
66
|
+
}
|
|
67
|
+
task.artifacts = upsertArtifact(task.artifacts ?? [], validated);
|
|
68
|
+
return task;
|
|
69
|
+
};
|
|
70
|
+
// The onus is now on the caller to handle errors when processing updates
|
|
71
|
+
// and to decide whether the updated task should be saved or not
|
|
72
|
+
export const handleUpdate = async ({ context, task, update, }) => {
|
|
73
|
+
if (!update || !update.kind) {
|
|
74
|
+
throw new Error("updateState: Invalid update", { cause: update });
|
|
75
|
+
}
|
|
76
|
+
logger.debug(`handleUpdate:`, {
|
|
77
|
+
contextId: context?.contextId,
|
|
78
|
+
taskId: task?.id,
|
|
79
|
+
});
|
|
80
|
+
task = await validateSchema(A2A.TaskSchema, task);
|
|
81
|
+
if (!context || !context.contextId) {
|
|
82
|
+
throw new Error("updateState: Invalid context", { cause: context });
|
|
83
|
+
}
|
|
84
|
+
switch (update.kind) {
|
|
85
|
+
case A2A.Kind.message: {
|
|
86
|
+
return handleMessageUpdate({
|
|
87
|
+
context,
|
|
88
|
+
task,
|
|
89
|
+
update,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
case A2A.Kind.task: {
|
|
93
|
+
return handleTaskUpdate({
|
|
94
|
+
context,
|
|
95
|
+
task,
|
|
96
|
+
update,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
case A2A.Kind["status-update"]: {
|
|
100
|
+
return handleStatusUpdate({
|
|
101
|
+
context,
|
|
102
|
+
task,
|
|
103
|
+
update,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
case A2A.Kind["artifact-update"]: {
|
|
107
|
+
return handleArtifactUpdate({
|
|
108
|
+
context,
|
|
109
|
+
task,
|
|
110
|
+
update,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
default: {
|
|
114
|
+
throw new Error(`updateState: Invalid update kind: {"kind": "unknown"}`, {
|
|
115
|
+
cause: update,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
* Copyright 2025 The Artinet Project
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
6
|
/**
|
|
7
7
|
* Extracts the content of an agent response.
|
|
8
8
|
* @param input - The input event.
|
|
9
9
|
* @returns The content of the input event.
|
|
10
10
|
*/
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function extractTextContent(input: A2A.Update): string | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use extractTextContent instead.
|
|
14
|
+
*/
|
|
15
|
+
export declare const getContent: typeof extractTextContent;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
1
5
|
import { getParts } from "./part.js";
|
|
2
6
|
/**
|
|
3
7
|
* Extracts the content of an agent response.
|
|
4
8
|
* @param input - The input event.
|
|
5
9
|
* @returns The content of the input event.
|
|
6
10
|
*/
|
|
7
|
-
export function
|
|
11
|
+
export function extractTextContent(input) {
|
|
8
12
|
const parts = getParts(input?.parts ??
|
|
9
13
|
input?.status?.message?.parts ??
|
|
10
14
|
input?.status?.message?.parts ??
|
|
@@ -16,3 +20,7 @@ export function getContent(input) {
|
|
|
16
20
|
parts.data.map((data) => JSON.stringify(data)).join("\n") ??
|
|
17
21
|
undefined);
|
|
18
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Use extractTextContent instead.
|
|
25
|
+
*/
|
|
26
|
+
export const getContent = extractTextContent;
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 The Artinet Project
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
|
+
export declare function getLatestHistory(task: A2A.Task, length?: number): A2A.Message[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./part.js";
|
|
2
2
|
export * from "./content.js";
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export { AgentCardBuilder } from "../../../create/agentcard-builder.js";
|
|
4
|
+
export { MessageBuilder, MessageSendConfigurationBuilder, } from "../../../create/message-builder.js";
|
|
5
5
|
export * from "./history.js";
|
|
6
|
-
export * from "
|
|
6
|
+
export * from "./references.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./part.js";
|
|
2
2
|
export * from "./content.js";
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export { AgentCardBuilder } from "../../../create/agentcard-builder.js";
|
|
4
|
+
export { MessageBuilder, MessageSendConfigurationBuilder, } from "../../../create/message-builder.js";
|
|
5
5
|
export * from "./history.js";
|
|
6
|
-
export * from "
|
|
6
|
+
export * from "./references.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright 2025 The Artinet Project
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { A2A } from "../../../types/index.js";
|
|
6
6
|
/**
|
|
7
7
|
* Extracts and aggregates the text, file, and data contents from an array of Part objects.
|
|
8
8
|
*
|
|
@@ -16,10 +16,10 @@ import { Part, TextPart, FilePart, DataPart, Message } from "../../../types/sche
|
|
|
16
16
|
* This utility is used to normalize and access the payloads of message parts
|
|
17
17
|
* in a structured way for downstream processing.
|
|
18
18
|
*/
|
|
19
|
-
export declare const getParts: (parts: Part[]) => {
|
|
20
|
-
text: TextPart["text"];
|
|
21
|
-
file: FilePart["file"][];
|
|
22
|
-
data: DataPart["data"][];
|
|
19
|
+
export declare const getParts: (parts: A2A.Part[]) => {
|
|
20
|
+
text: A2A.TextPart["text"];
|
|
21
|
+
file: A2A.FilePart["file"][];
|
|
22
|
+
data: A2A.DataPart["data"][];
|
|
23
23
|
};
|
|
24
24
|
/**
|
|
25
25
|
* Extracts and aggregates the text, file, and data payloads from a Message's parts array.
|
|
@@ -41,8 +41,8 @@ export declare const getParts: (parts: Part[]) => {
|
|
|
41
41
|
* console.log(payload.file); // [<file1>, <file2>]
|
|
42
42
|
* console.log(payload.data); // [<data1>, <data2>]
|
|
43
43
|
*/
|
|
44
|
-
export declare const getPayload: (message: Message) => {
|
|
45
|
-
text: TextPart["text"];
|
|
46
|
-
file: FilePart["file"][];
|
|
47
|
-
data: DataPart["data"][];
|
|
44
|
+
export declare const getPayload: (message: A2A.Message) => {
|
|
45
|
+
text: A2A.TextPart["text"];
|
|
46
|
+
file: A2A.FilePart["file"][];
|
|
47
|
+
data: A2A.DataPart["data"][];
|
|
48
48
|
};
|