/** * @wrnexus/rpc — typed request/response between workspace apps. * * A contract lives in the workspace's shared package and is imported by both * sides: the callee `implement`s it, the caller gets a typed proxy. Types flow * through a normal import, so there is no code generator and no generated file * to go stale. */ export type { AnyProcedures, InferInput, InputSchema, InferProcedureInput, InferProcedureOutput, ProcedureDef, ServiceContract, ServiceResult, } from "./types.ts"; export { RPC_ERROR_CODES, ServiceError, failure, isRetryableStatus, success } from "./errors.ts"; export type { RpcErrorCode, ToResultOptions } from "./errors.ts"; export { defineService, procedure, ProcedureBuilder } from "./contract.ts"; export { RPC_IDENTITY_HEADER, exportSubjectContext, importSubjectContext, rpcSecret, } from "./identity.ts"; export type { ExportOptions, ImportOptions, SubjectContext } from "./identity.ts";