@kb-labs/core-contracts
v2.94.0
Published
Contracts for KB Labs Core plugin.
Readme
@kb-labs/core-contracts
Core system interface contracts — zero runtime dependencies, zero implementations.
Overview
Defines the wire protocol and interface boundaries for the KB Labs core execution layer. Lives at layer 0 of the dependency graph: implementations depend on these contracts, not the other way around.
Interfaces
IExecutionBackend
Contract that all execution backends must satisfy:
import type { IExecutionBackend, ExecutionRequest, ExecutionResponse } from '@kb-labs/core-contracts';
class MyBackend implements IExecutionBackend {
async execute(
request: ExecutionRequest,
options?: ExecuteOptions
): Promise<ExecutionResponse> {
// ...
}
async health(): Promise<HealthStatus> {
return { healthy: true, backend: 'my-backend' };
}
async stats(): Promise<ExecutionStats> {
return { activeRequests: 0, queueDepth: 0 };
}
}IPlatformGateway
Low-level RPC interface for IPC/HTTP communication to platform services (used by child processes to call parent-side adapters):
import type { IPlatformGateway, RequestContext } from '@kb-labs/core-contracts';
// Implementations: IPCGateway (child process), HTTPGateway (remote)
const result = await gateway.call({
adapter: 'vectorStore',
method: 'search',
args: [queryVector, { limit: 10 }],
});ISubprocessRunner
Contract for spawning and managing subprocess workers:
import type { ISubprocessRunner } from '@kb-labs/core-contracts';
const runner: ISubprocessRunner = {
spawn(options): ChildProcess { ... },
kill(pid: number): void { ... }
};Observability Contract
@kb-labs/core-contracts also defines the platform observability contract for HTTP services.
Core constants:
OBSERVABILITY_CONTRACT_VERSION— current contract versionOBSERVABILITY_SCHEMA— schema id for observability payloadsOBSERVABILITY_CAPABILITIES— optional capability vocabularyCANONICAL_OBSERVABILITY_METRICS— canonical Prometheus metric familiesCANONICAL_SERVICE_LOG_FIELDS— canonical structured log fields for service correlation
Core payloads:
ServiceObservabilityDescribe— static service identity and capabilitiesServiceObservabilityHealth— current structured health and runtime snapshotResourceSnapshot— CPU, RSS, heap, event loop lag, active operationsServiceOperationSample— top operations with duration/error contextEvidenceBundle— structured machine-readable evidence for future diagnosis and agent workflows
Expected service surfaces:
GET /metricsGET /observability/describeGET /observability/health
Required contract fields:
contractVersionserviceIdinstanceIdserviceTypeversionenvironmentstartedAtdependenciesmetricsEndpointhealthEndpointlogsSourcecapabilities
Recommended role split:
/health— cheap public liveness or service snapshot for humans and orchestration/ready— readiness gate for startup and traffic admission/observability/*— structured diagnostics and runtime context for collectors, Studio, and agents
Validation helpers:
validateServiceObservabilityDescribe()— validates contract version, capabilities, and required fieldsvalidateServiceObservabilityHealth()— validates structured runtime diagnostics payloadscheckCanonicalObservabilityMetrics()— validates canonical Prometheus metric families
Canonical structured log correlation baseline:
- always present on structured service logs:
serviceIdinstanceIdlogsSource
- present on correlated operation and request logs where applicable:
requestIdreqIdtraceIdoperationroutemethodurl
Correlation guidance:
routemust be normalized and template-based, never a raw high-cardinality pathoperationmust use bounded names from the service's domain vocabulary- shared helpers from
@kb-labs/shared-httpshould be used so services emit the same field names and normalization rules
Onboarding rule:
- A new HTTP service integrates by implementing the contract and passing the shared compliance checks.
- Future collectors or plugins must not require service-specific parser logic for contract-compliant services.
Types
| Type | Description |
|------|-------------|
| ExecutionRequest | What gets sent to a backend (pluginId, handlerId, input, context) |
| ExecutionRequestMeta | Metadata attached to a request (traceId, tenantId, priority) |
| ExecutionResponse | What backends return (output, duration, error) |
| ExecutionError | Structured error with code, message, retryable flag |
| HealthStatus | Backend health check response |
| ExecutionStats | Runtime metrics (queue depth, active requests) |
| VectorQuery / VectorSearchResult | Vector store RPC shapes |
| LLMOptions / LLMResponse | LLM adapter RPC shapes |
License
KB Public License v1.1 © KB Labs
