Skip to content

v0.6.0

Latest

Choose a tag to compare

@EditUndo EditUndo released this 05 Jan 22:36
· 92 commits to main since this release
a3d6f80

πŸš€ @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

  • describe Utilities β€” Helpers for creating A2A objects (describe.card(), describe.message(), describe.task(), etc.)
  • Push Notifications β€” Full support via @a2a-js/sdk integration
  • SQLite Storage β€” Production-ready task persistence with drizzle-orm
  • Browser Support (Experimental) β€” Use @artinet/sdk/browser for client-side messaging
  • Skip Function β€” Conditionally skip workflow steps with skip()
  • Native Compatibility β€” Convert agents to @a2a-js/sdk A2ARequestHandler with native()

πŸ’₯ Breaking Changes

Peer Dependencies Required

npm install @a2a-js/sdk @modelcontextprotocol/sdk express

Configuration 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.Context

AgentBuilder β†’ 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

πŸ™ 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