harn-modules 0.7.53

Cross-file module graph and import resolution utilities for Harn
Documentation
/**
 * std/hitl — typed aliases for human-in-the-loop primitives.
 *
 * Import with: `import "std/hitl"`.
 */
type HitlRequestKind = "question" | "approval" | "dual_control" | "escalation"

type HitlPendingFilters = {
  since?: string,
  until?: string,
  kinds?: list<HitlRequestKind>,
  agent?: string,
  limit?: int,
}

type HitlPendingRequest = {
  request_id: string,
  request_kind: HitlRequestKind,
  agent: string,
  prompt: string,
  trace_id: string,
  timestamp: string,
  approvers: list<string>,
  metadata: dict,
}

type AskUserOptions<T> = {schema?: Schema<T>, timeout?: duration, default?: T}

type ApprovalOptions = {detail?: any, quorum?: int, reviewers?: list<string>, deadline?: duration}

type ApprovalSignature = {reviewer: string, signed_at: string, signature: string}

type ApprovalRecord = {
  approved: bool,
  reviewers: list<string>,
  approved_at: string,
  reason: string | nil,
  signatures: list<ApprovalSignature>,
}

type EscalationStatus = "pending" | "accepted"

type EscalationHandle = {
  request_id: string,
  role: string,
  reason: string,
  trace_id: string,
  status: EscalationStatus,
  accepted_at: string | nil,
  reviewer: string | nil,
}

type HumanTimeoutError = {
  name: "HumanTimeoutError",
  category: "timeout",
  message: string,
  request_id: string,
  kind: HitlRequestKind,
}

type ApprovalDeniedError = {
  name: "ApprovalDeniedError",
  category: string,
  message: string,
  request_id: string,
  reviewers: list<string>,
  reason: string | nil,
}