Version History
This page documents the version history of the Artinet SDK, highlighting breaking changes and important updates that may affect your integration.
Migration Guides
0.5.x to 0.5.4 Migration
If you're upgrading to 0.5.4, be aware of the following breaking changes:
- Method Name Changes: Core methods have been renamed to align with message-based approach:
sendTask→sendMessagesendTaskSubscribe→sendStreamingMessage-
Update push notification config methods to
tasks/pushNotificationConfig/setandtasks/pushNotificationConfig/get -
Schema Import Paths: Import paths have been refactored to use new schema structure under
schemas/a2a -
Deprecated Submodules: The
a2a-samplesandmcp-usesubmodules have been removed
0.3.x to 0.5.0 Migration
If you're upgrading from 0.3.x to 0.5.0, be aware of the following breaking changes:
-
SystemError Constructor: The
dataparameter in theSystemErrorconstructor and all specific error factory functions (e.g.,PARSE_ERROR(),INVALID_PARAMS(),TASK_NOT_FOUND()) is now mandatory. -
Express Server Refactoring: The
createExpressServerutility has been refactored: - No longer accepts a
portparameter. - No longer creates or returns an
http.Serverinstance. -
Server starting is now handled within
A2AServer.start()only. -
Type Definition Changes: Optional properties are now defined using
type?instead oftype | null. -
Task Status Initialization: When a task is initiated, the initial task status no longer includes a
message: nullfield. -
Error Messaging: Generic
METHOD_NOT_FOUND()errors have been replaced with more specificPUSH_NOTIFICATION_NOT_SUPPORTED()errors.
Detailed Version History
Changelog
All notable changes to the @artinet/sdk package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.5.4] - 2025-06-12
Added
- New
ExecutionContextinterface for enhanced parameter management across services MCPExecutionContextandNLWebExecutionContextinterfaces for protocol-specific request handling- New schema organization under
schemas/a2adirectory for improved code structure
Changed
- BREAKING: Renamed core methods to align with message-based approach:
sendTask→sendMessagesendTaskSubscribe→sendStreamingMessage- Updated push notification config methods to
tasks/pushNotificationConfig/setandtasks/pushNotificationConfig/get - Refactored import paths to use new schema structure under
schemas/a2a - Enhanced error handling and validation for message parameters across the codebase
- Updated documentation to reflect new method names and functionalities
Removed
- Deprecated submodules for
a2a-samplesandmcp-use
[0.5.2] - 2025-05-25
Added
- New
artinet.v0namespace insrc/utils/deployment/agents.tsprovidingtaskManager,connect, andagentutilities. These are designed for agents running in sandboxed or managed environments, offering a standardized way to interact with the host system for task execution, inter-agent communication, and external API calls. - Corresponding types for the new agent utilities in
src/types/proxy.ts:TaskProxy,TaskManagerProps,TaskManager,ConnectProps,ConnectAPICallback,ClientProxy,ClientProps,ClientFactory. - New
exportspath./agentsinpackage.jsonto expose theartinet.v0utilities. - New example file
examples/nested-deployment.tsdemonstrating how to useartinet.v0.agentfor an agent to call another agent, andartinet.v0.taskManagerfor managing the agent's lifecycle. - New
dev-packscript inpackage.jsonfor easier local development and packaging.
Changed
- Refactoring:
src/client/interfaces/client.tshas been moved tosrc/types/client.ts.src/server/interfaces/context.tshas been moved tosrc/types/context.ts.- Internal type imports throughout the codebase have been updated to reflect these changes.
- Examples
examples/code-deployment.jsandexamples/code-deployment.tshave been updated to use the newartinet.v0.taskManagerandartinet.v0.connectutilities instead of the deprecated proxy functions. - Updated
@types/nodedependency to^20.17.50.
Deprecated
- The
taskHandlerProxyandfetchResponseProxyfunctions insrc/utils/deployment/task-wrapper.tsare now deprecated. Developers should migrate to the newartinet.v0.taskManagerandartinet.v0.connectutilities respectively.
Removed
- Removed
json-schema-to-typescriptfromdevDependenciesas it's no longer directly used.
Fixed
- Minor wording update in the "QUICK-AGENT FAQs" section of
README.mdfor clarity on searching byregistrationId/agentId.
[0.5.1] - 2025-05-12
Added
fullDeploymentutility (src/utils/deployment/full-deployment.ts): Enables direct deployment of bundled agent code and itsAgentCardto the Artinet platform. Requires anARTINET_API_KEY.- New comprehensive test suite for deployment features (
tests/deployment.test.ts), coveringtestDeploymentandfullDeployment. - Agents registered via
A2AServer.registerServer()orregister: truenow includetags: ["a2a"]in their registration payload.
Changed
- The
handlerproperty inA2AServerParams(used to pass the agent's core logic) was previously documented and used in some examples astaskHandler. This has been corrected tohandlerconsistently. WhiletaskHandlermight have worked due to object flexibility,handleris the intended property name. - Clarified type description for
ServerDeploymentRequestParams.dependenciesto note it is "currently unsupported". - Clarified type description for
BaseServerDeploymentResponseParams.deploymentIdregarding its value in full deployments.
Fixed
- Improved error handling in
A2AClientduringagentCard()fetching:- Validates parsed URLs before use.
- Ensures
AgentCardobjects contain anameproperty.
- Enhanced error logging in
src/transport/rpc/parser.tsto includeerror.messageforSystemErrorinstances. - Prevented agent registration via
register()utility if theAgentCard.urlis localhost, 127.0.0.1, or empty, returning an empty string instead of attempting registration. - Corrected an issue in an example in
README.mdwheretaskHandlerwas used instead ofhandlerfor theA2AServerconstructor (matches the breaking change clarification above). - Minor stability improvement in
testDeploymentutility's event handling logic.
[0.5.0] - 2025-05-10
Added
A2AServer.getExpressApp(): New method to access the underlying Express application instance, allowing for more flexible server customization and middleware integration.- More specific error messages for various RPC errors (e.g.,
TASK_NOT_FOUND,INVALID_PARAMS,PARSE_ERROR), providing better debugging information and context.
Changed
- BREAKING: The
dataparameter in theSystemErrorconstructor and all specific error factory functions (e.g.,PARSE_ERROR(),INVALID_PARAMS(),TASK_NOT_FOUND()) is now mandatory. This change aims to enhance error reporting by ensuring contextual information is always provided with errors. - BREAKING: Refactored the
createExpressServerutility (src/server/lib/express-server.ts):- It no longer accepts a
portparameter. - It no longer creates or returns an
http.Serverinstance (i.e., it doesn't callapp.listen()). It now solely configures and returns the Expressappinstance. - The responsibility of starting the HTTP server is now fully handled within the
A2AServer.start()method, which uses theappconfigured bycreateExpressServer.
- It no longer accepts a
- Updated numerous TypeScript type definitions in
src/types/schema.tsto more strictly define optional properties. Many properties that were previouslytype | nullare now justtype?, and JSDoc@default nullcomments have been removed. This aligns with standard TypeScript practices where optional properties are either present with a value or absent (undefined), rather than being explicitlynull. - When a task is initiated via
A2AServer.sendTaskAndStore(), the initial task status (Task.status) no longer includes amessage: nullfield. - In
src/server/lib/state.ts, when creating a new task object duringloadState,sessionIdandmetadataproperties are assigned directly if provided, without defaulting tonullif they are undefined. - Replaced generic
METHOD_NOT_FOUND()errors with more specificPUSH_NOTIFICATION_NOT_SUPPORTED()errors indefaultSetTaskPushNotificationMethodanddefaultGetTaskPushNotificationMethodwhen the agent's card indicates that push notifications are not supported.
Removed
- The test file
tests/deployment.test.tshas been removed. ThetestDeploymentutility and related "Quick-Agents" features remain.
Improved
- The documentation section in
README.mdregarding agent code deployment has been renamed from "Agent Code Deployment (Beta)" to "Quick-Agents (Alpha)". This section includes updated descriptions, code examples for bundling and testing agents, and a new FAQ. - Server startup logging in
A2AServernow consistently useslogInfofor messages like "A2A Server started and listening".
[0.4.1] - 2025-05-08
Added
- Utility for bundling agent code using
esbuild(src/utils/deployment/bundler.ts). - Task handler wrapper (
taskHandlerProxy) andfetchResponseProxyfor streamlined agent deployment logic (src/utils/deployment/task-wrapper.ts,examples/task-wrapper.js). - Test deployment functionality (
testDeployment) to test agent deployments in a sandboxed environment (src/utils/deployment/test-deployment.ts). - New types for server deployment requests and responses (
ServerDeploymentRequestParams,ServerDeploymentResponse, etc. insrc/types/extended-schema.ts). - Comprehensive tests for the new bundler and deployment features (
tests/bundler.test.ts,tests/deployment.test.ts). - Example agents demonstrating code deployment:
examples/code-deployment.jsandexamples/code-deployment.ts. esbuilddependency for bundling.
Changed
- BREAKING: Updated
rootDirintsconfig.jsontosrcanddeclarationDirto./dist/types. This changes the output structure for type declarations. - Type declaration paths in
package.jsonupdated todist/types/index.d.tsto reflecttsconfig.jsonchanges. - Deprecated
JSONRPCSuccessResponse,JSONRPCErrorResponseinsrc/types/extended-schema.tsin favor of the more generalJSONRPCResponse. - Enhanced error logging in
src/transport/rpc/parser.tsby adding response data to parse errors.
[0.3.0] - 2025-04-28
Added
- Server option
register: booleaninA2AServerParamsto automatically register the agent with the A2A Registry on startup (default:false). A2AServer.registerServer()method to manually trigger agent registration.- Server option
fallbackPath: stringinA2AServerParamsto customize the fallback endpoint for serving the Agent Card (defaults to/agent-card). The standard/.well-known/agent.jsonendpoint remains. - Client constructor option
fallbackPath: stringinA2AClientto specify a custom path when fetching the Agent Card if the standard paths fail.
Changed
- BREAKING: Renamed server configuration type from
A2AServerOptionstoA2AServerParamsfor consistency. - Updated dependencies to latest versions:
eventsource-parserto^3.0.1. Adapted streaming logic (handleEventStream) to useEventSourceMessagetype from this library.expressto^5.1.0.jaysonto^4.2.0.node:16tonode:22ES2020toES2022
- Updated various code examples in documentation for improved clarity and consistency (
README.md,examples/).
Improved
- Refactored server JSON-RPC method handling:
- Introduced
createJSONRPCMethodhelper for wrapping A2A method logic with dependency injection and error handling. - Exported default implementations for standard A2A methods (e.g.,
defaultSendTaskMethod) fromlib/middleware/a2a-methods.js. - Provided
defaultCreateJSONRPCServerfactory demonstrating standard server setup. This simplifies advanced server customization.
- Introduced
- Significantly revised and expanded
README.mddocumentation:- Updated Features, Class Documentation, and Usage sections.
- Added detailed section on Server Registration & Discovery.
- Corrected and clarified Advanced Server Customization examples.
- Updated test suite to incorporate tests for new server registration and fallback path functionalities.
0.2.0 - 2025-04-25
Fixed
- Fixed TypeScript errors related to the
eventsource-parserpackage imports - Updated imports to use the correct types from
eventsource-parserv1.1.1 - Properly typed the
EventSourceMessageasParsedEvent - Refactored
createParserimplementation to match the package's API - Fixed streaming response handler to use the correct event type checking
Changed
- Updated
tsconfig.jsonto addisolatedModules: truefor better compatibility withts-jest - Modified
package.jsontest scripts to includeNODE_OPTIONS=--experimental-vm-modulesflag to support ES modules in Jest tests
Improved
- Expanded test suite to achieve 80% code coverage
- Added tests for all client methods
- Added robust error handling tests
- Added tests for streaming functionality
- Added tests for push notification configuration
- Added tests for edge cases in agent card fetching and capability detection
0.1.0 - 2025-04-22
Added
- Initial release of the @artinet/sdk package
- Implementation of the Agent2Agent (A2A) Protocol client
- Support for sending tasks, retrieving statuses, and canceling operations
- Support for streaming responses and push notifications
- Comprehensive test suite and documentation