Documentation / @agentick/server
@agentick/server ​
Server-side utilities for Agentick applications:
- SSE utilities - Stream events to clients via Server-Sent Events
- Type re-exports - Convenient imports from
@agentick/shared
Installation ​
npm install @agentick/server @agentick/core @agentick/sharedQuick Start ​
For most use cases, use @agentick/express instead - it provides a complete handler:
import { createApp } from "@agentick/core";
import { createAgentickHandler } from "@agentick/express";
const app = createApp(MyAgent, { model });
expressApp.use("/api/agent", createAgentickHandler(app));Direct Usage ​
If building a custom framework adapter:
import { setSSEHeaders, createSSEWriter } from "@agentick/server";
// SSE endpoint
app.get("/events", (req, res) => {
setSSEHeaders(res);
const writer = createSSEWriter(res);
// Write events
writer.writeEvent({ type: "connected" });
// Keepalive
const keepalive = setInterval(() => {
writer.writeComment("keepalive");
}, 15000);
req.on("close", () => {
clearInterval(keepalive);
writer.close();
});
});
// Streaming response
app.post("/send", async (req, res) => {
setSSEHeaders(res);
const writer = createSSEWriter(res);
const session = app.getOrCreateSession(req.body.sessionId);
const handle = session.send(req.body);
for await (const event of handle) {
writer.writeEvent(event);
}
writer.close();
});API Reference ​
setSSEHeaders(res) ​
Set SSE headers on a response object:
setSSEHeaders(res);
// Sets: Content-Type, Cache-Control, Connection, X-Accel-BufferingcreateSSEWriter(stream) ​
Create an SSE writer for streaming events:
const writer = createSSEWriter(res);
writer.writeEvent({ type: "content_delta", delta: "Hello" });
writer.writeComment("keepalive");
writer.writeError({ code: "SESSION_NOT_FOUND", message: "Not found" });
writer.close();Type Re-exports ​
For convenience, this package re-exports common types from @agentick/shared:
import type {
SessionResultPayload,
ToolConfirmationRequest,
ToolConfirmationResponse,
SessionState,
CreateSessionResponse,
} from "@agentick/server";Philosophy ​
This package follows the "primitives, not opinions" philosophy:
- Minimal - Just SSE utilities and type re-exports
- Framework-agnostic - Works with any HTTP framework
- Composable - Use what you need
For a complete server integration, use @agentick/express, @agentick/nestjs, or build your own using these utilities.
@agentick/server - Server SDK for Agentick
Provides server-side components for running Agentick applications:
- SSE streaming utilities
- SSE utilities for streaming
This package provides hooks and handlers that your web framework routes can call into. It does NOT define routes - that's your application's responsibility.
Example ​
import { createSSEWriter, setSSEHeaders } from '@agentick/server';
app.get('/events', (req, res) => {
setSSEHeaders(res);
const writer = createSSEWriter(res);
writer.writeEvent({ channel: 'session:events', type: 'ping', payload: {} });
});Interfaces ​
- AuthResult
- ChannelEvent
- ChannelEventMetadata
- ConnectionMetadata
- CreateSessionResponse
- ProtocolError
- SessionResultPayload
- SessionState
- SSEWriter
- SSEWriterOptions
- ToolConfirmationRequest
- ToolConfirmationResponse