API Reference

Types and errors

Shared JSON contracts, observations, manifests, diagnostics, and machine-readable Harness errors.

Shared JSON contracts

Access: @nylorun/harnessJsonPrimitive, JsonValue, JsonObject, DeferredOutcome, ContextItem, Tripwire

TypeShape or fieldsDescription
JsonPrimitivestring, number, boolean, or nullJSON scalar.
JsonValuePrimitive, object, or readonly JSON-value arrayJSON-only boundary used throughout Harness records and contracts.
JsonObjectString-keyed JSON valuesJSON object used for configuration, context, metadata, and tokens.
DeferredOutcomekind: "deferred", optional tokenDefers a model or tool operation for host-managed continuation.
ContextItemoptional type, value: JsonValueOne runtime-context entry.
Tripwirecode, message, optional scopeStops the current step or complete session.

Diagnostics and manifests

Access: @nylorun/harnessBuildDiagnostic, AgentManifest

TypeNameRequiredDescription
BuildDiagnosticcodeYesProgrammatic invalid-build code.
BuildDiagnosticmessageYesHuman-readable diagnostic.
BuildDiagnostictoolName, details, causeNoRelated tool, scalar detail map, and original failure.
AgentManifestid, name, middlewareYesPublic built-agent identity and middleware ids.

Observability contracts

Access: @nylorun/harnessObserver, ObserveEvent, ObserveModelRequested, ObserveModelConfigurationSnapshot, ObserveToolSnapshot, ObserveSealedCall

TypeParameters or fieldsDescription
Observerevent: ObserveEventSynchronous or async listener for lifecycle observations.
ObserveModelRequestedcall, configuration, contextJSON-safe logical model call and attributed model/context snapshots.
ObserveModelConfigurationSnapshotConfiguration snapshot with observation-safe toolsConfiguration view suitable for telemetry.
ObserveToolSnapshotname, description, owner, JSON SchemaTool view suitable for telemetry.
ObserveSealedCallcall id, name, args, invocation, owner, optional interactionValidated tool-call view suitable for telemetry.
ObserveEvent familyDescription
Session and capabilitySession stopped/seeded/continued and failed capability-state disposal.
Input and recordingReceived, queued, rejected, cancelled input and recorder failures.
Model and middlewareRequested, completed, deferred model calls; middleware entry/completion and lease violations.
Tool and interactionSealed, started, completed, deferred tool calls; interaction requirements.
Turn and policyFinal turn output and step/session tripwires.

HarnessError

Access: @nylorun/harnessHarnessError, HarnessErrorCode, HarnessErrorDetails, HarnessErrorOptions, isHarnessError

NameTypeRequiredDescription
codeHarnessErrorCodeYesStable machine-readable error code.
messagestringYesHuman-readable explanation inherited from Error.
detailsHarnessErrorDetailsYesFrozen scalar details map.
constructor causeunknownNoOriginal error retained as the error cause.
constructor detailsHarnessErrorDetailsNoAdditional diagnostic facts.
isHarnessError(error)unknownYesNarrows an unknown error to HarnessError.

Use code rather than matching an error message.

Error familyCodes
Agent and capabilityagent.build-failed, agent.lifecycle-sealed, capability.state.create-failed, capability.state.undeclared
Contextcontext.invalid-item, context.invalid-item-type, context.invalid-order, context.invalid-reason, context.invalid-slot
Configurationconfiguration.duplicate-tool-name, configuration.invalid, configuration.invalid-instructions, configuration.invalid-order, configuration.invalid-reason, configuration.invalid-slot, configuration.invalid-tools, configuration.model-selection-conflict
Interactioninteraction.invalid, interaction.missing-resume, interaction.uncorrelated-resume
JSONjson.invalid-data, json.invalid-object
Middlewaremiddleware.next-after-return, middleware.next-called-twice, middleware.request-mutators-revoked
Modelmodel.candidate-missing, model.adapter-invalid-options, model.adapter-invalid-response, model.invalid-candidate, model.invalid-directive
Responseresponse.invalid-replacement
Sessionsession.invalid-seed, session.record-failed, session.stale-result
Tooltool.invalid, tool.invalid-arguments, tool.invalid-name, tool.invalid-schema, tool.invalid-tool-result

On this page