@ank1015/agents-core
v0.1.11
Published
Core agent runtime primitives for @ank1015/agents.
Downloads
24
Maintainers
Readme
@ank1015/agents-core
Core runtime primitives for the @ank1015/agents packages.
This package sits above @ank1015/agents-contracts and below applications. It provides small, provider-neutral runtime pieces: model catalog lookup, stream creation, provider-adapter routing, and an HTTP gateway transport.
Install
pnpm add @ank1015/agents-coreWhat This Package Provides
ModelRegistryhelpers for static provider model catalogs.- A process-wide model registry for app startup wiring.
createAdapterTransportfor routing requests to provider adapters.GatewayTransportfor streaming assistant events from a remote gateway.createEventStreamre-exported from@ank1015/agents-contracts.
Import Paths
import {
createGatewayTransport,
createModelRegistry,
} from '@ank1015/agents-core';
import { registerModels } from '@ank1015/agents-core/models';
import { createEventStream } from '@ank1015/agents-core/stream';
import { createAdapterTransport } from '@ank1015/agents-core/transport';Model Registry
Use createModelRegistry for isolated registries, such as tests or per-runtime containers:
import { createModelRegistry } from '@ank1015/agents-core/models';
import { ANTHROPIC_MODELS } from '@ank1015/agents-provider-anthropic-spec';
const registry = createModelRegistry([ANTHROPIC_MODELS]);
const model = registry.get('anthropic', 'claude-sonnet-4-6');Use the process-wide helpers when an app wants to register provider catalogs once at startup:
import { getModel, registerModels } from '@ank1015/agents-core/models';
import { ANTHROPIC_MODELS } from '@ank1015/agents-provider-anthropic-spec';
registerModels(ANTHROPIC_MODELS);
const model = getModel('anthropic', 'claude-sonnet-4-6');Adapter Transport
createAdapterTransport multiplexes LLMRequests to provider adapters by request.provider:
import { createAdapterTransport } from '@ank1015/agents-core/transport';
import { createAnthropicProviderAdapter } from '@ank1015/agents-provider-anthropic';
const transport = createAdapterTransport([
createAnthropicProviderAdapter({
provider: 'anthropic',
apiKey: { type: 'env', name: 'ANTHROPIC_API_KEY' },
}),
]);
const stream = transport.stream({
provider: 'anthropic',
modelId: 'claude-sonnet-4-6',
messages: [],
});Gateway Transport
createGatewayTransport sends normalized LLM requests to a remote gateway endpoint and consumes assistant events from an SSE response.
import { createGatewayTransport } from '@ank1015/agents-core/transport';
const transport = createGatewayTransport({
baseUrl: 'https://gateway.example.com',
apiKey: process.env.AGENTS_GATEWAY_API_KEY ?? '',
});The gateway transport posts to:
POST /v1/llm/streamIt expects server-sent event frames whose data: payloads are serialized AssistantEvent objects. The stream completes when it receives a done, error, or aborted event.
Streams
createEventStream is re-exported from @ank1015/agents-contracts for convenience:
import { createEventStream } from '@ank1015/agents-core/stream';
const stream = createEventStream<string, number>();
stream.push('started');
stream.end(1);
const result = await stream.result();Versioning
This package is currently 0.1.11. Until 1.0.0, public runtime APIs may still evolve as the provider packages and gateway contract settle.
