Skip to content

HttpConnector

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:56

HTTP connector for stateless API communication.

HTTP connections are per-request, so connect() and disconnect() are no-ops, and subscribe() never fires any events. Useful for traditional REST APIs.

import { HttpConnector } from '@maelstrom-co/client';
import { ChartRequestMessage, SessionId } from '@maelstrom-co/protocol';
const connector = new HttpConnector({
baseUrl: 'https://api.example.com',
timeout: 30000,
headers: { 'Authorization': 'Bearer token' },
});
const manager = new ConnectionManager(store, connector);
await manager.connect(SessionId('session-1'));
const envelope = ChartRequestMessage({
sessionId: SessionId('session-1'),
request: chartRequestPayload,
});
const response = await connector.process(envelope);

new HttpConnector(options): HttpConnector

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:67

HttpConnectorOptions

HttpConnector

readonly capabilities: ConnectorCapabilities

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:61

Connector capabilities. Metadata for consumers — the ConnectionManager does not use these for flow control.

EngineConnector.capabilities

addAssistantMessage(message): Promise<void>

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:102

Add an assistant message to conversation history without LLM processing. Used for programmatic messages (greetings, notifications).

This legacy capability is fire-and-forget: it resolves after the transport accepts the send and does not confirm insertion. Use AcknowledgedAssistantConnector.addAssistantMessageAcknowledged when dependent side effects require a correlated engine outcome.

AssistantMessage

Promise<void>

EngineConnector.addAssistantMessage


connect(_sessionId): Promise<void>

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:81

No-op. HTTP is per-request — there is no persistent connection to establish. Override this to implement a health check if desired.

Note: the sessionId is not stored because HTTP requests carry session context in the request body. Subclasses that need session correlation should override this method and store the sessionId.

SessionId

Promise<void>

EngineConnector.connect


disconnect(): Promise<void>

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:86

No-op. HTTP is stateless — nothing to clean up.

Promise<void>

EngineConnector.disconnect


getHistory(sessionId): Promise<readonly SessionHistoryEntry[]>

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:114

Fetch the engine-recorded history for a session via POST /history.

POST (not GET) keeps the request body symmetric with /process and /assistant-message, lets clients send opaque session ids without URL encoding concerns, and avoids accidental caching by intermediaries that cache GET responses.

SessionId

Promise<readonly SessionHistoryEntry[]>

EngineConnector.getHistory


process(message): Promise<MaelstromResponse>

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:98

Sends a chart_request envelope to the API endpoint.

ChartRequestMessage

Promise<MaelstromResponse>

EngineConnector.process


subscribe(_handler): Unsubscribe

Defined in: packages/client/src/lib/connection-manager/connectors/http-connector.ts:91

HTTP never fires transport events. Returns an unsubscribe no-op.

(event) => void

Unsubscribe

EngineConnector.subscribe