π @artinet/sdk v0.6.0
What's Changed
This is a major release with significant architectural improvements, new features, and breaking changes. v0.6.0 marks full adoption of the official A2A JavaScript SDK (@a2a-js/sdk) at the transport layer for guaranteed protocol compliance.
β¨ Highlights
New cr8 Builder Pattern
The recommended way to build agents is now the cr8 builder, replacing AgentBuilder with a more expressive, fluent API:
import { cr8 } from "@artinet/sdk";
cr8("QuickStart Agent")
.text(async ({ content }) => `You said: ${content}`)
.server.start(3000);New step types: .text(), .file(), .data(), .message(), .artifact(), .status(), .task(), .sendMessage()
AgentMessenger Client
A2AClient has been replaced by AgentMessenger with improved ergonomics, Zod validation, and comprehensive error handling:
import { createMessenger } from "@artinet/sdk";
const messenger = await createMessenger({
baseUrl: "http://localhost:3000/a2a",
});
const stream = messenger.sendMessageStream("Hello World!");
for await (const update of stream) {
console.log(update);
}Pluggable Observability
Bring your own logger with first-class support for Pino, Winston, and OpenTelemetry:
import { configure } from "@artinet/sdk";
import { configurePino } from "@artinet/sdk/pino";
configure({ logger: configurePino(pinoLogger) });Multi-Agent Orchestration
Chain agents together with the new sendMessage step for powerful orchestration workflows:
cr8("Orchestrator")
.text("Starting workflow...")
.sendMessage({ agent: analyzerAgent, message: "Analyze data" })
.sendMessage({ agent: summarizerAgent })
.text("Workflow complete!").agent;π New Features
describeUtilities β Helpers for creating A2A objects (describe.card(),describe.message(),describe.task(), etc.)- Push Notifications β Full support via
@a2a-js/sdkintegration - SQLite Storage β Production-ready task persistence with
drizzle-orm - Browser Support (Experimental) β Use
@artinet/sdk/browserfor client-side messaging - Skip Function β Conditionally skip workflow steps with
skip() - Native Compatibility β Convert agents to
@a2a-js/sdkA2ARequestHandlerwithnative()
π₯ Breaking Changes
Peer Dependencies Required
npm install @a2a-js/sdk @modelcontextprotocol/sdk expressConfiguration API
// Before (v0.5.x)
import { configureLogger } from "@artinet/sdk";
// After (v0.6.0)
import { applyDefaults } from "@artinet/sdk";
applyDefaults();A2A Namespace for Types
// Before (v0.5.x)
import { Task, Message } from "@artinet/sdk";
// After (v0.6.0)
import { A2A } from "@artinet/sdk";
// Use A2A.Task, A2A.Message, A2A.ContextAgentBuilder β cr8
// Before (v0.5.x)
const { app } = createAgentServer({
agent: AgentBuilder().text(() => "Hello!").createAgent({ agentCard: "MyAgent" }),
});
// After (v0.6.0)
const { app } = cr8("MyAgent").text("Hello!").server;A2AClient β AgentMessenger
// Before (v0.5.x)
const client = A2AClient("https://example.com");
// After (v0.6.0)
const messenger = await createMessenger({ baseUrl: "https://example.com" });π¦ Module Exports
| Export | Description |
|---|---|
@artinet/sdk |
Core SDK |
@artinet/sdk/sqlite |
SQLite storage with drizzle-orm |
@artinet/sdk/pino |
Pino logger extension |
@artinet/sdk/winston |
Winston logger extension |
@artinet/sdk/otel |
OpenTelemetry integration |
@artinet/sdk/trpc |
tRPC router support |
@artinet/sdk/browser |
Browser client (experimental) |
π Documentation
- Migration Guide β Upgrading from v0.5.x
- Agent Creation (
cr8) β Complete builder API - AgentMessenger β Client methods and streaming
- Configuration β Logging and tracing setup
- Storage β SQLite, FileStore, and custom backends
- Customization β Native handlers, tRPC, and engines
π Acknowledgments
v0.6.0 marks the beginning of our integration with the Agentic AI Foundation's official A2A JavaScript SDK. This enables interoperability with the broader Agent2Agent ecosystem while maintaining the artinet-sdk's unique architecture.
Full Changelog: v0.5.18...v0.6.0