vigiles API reference
    Preparing search index...

    Type Alias HookDelivery

    HookDelivery:
        | {
            kind: "delivered";
            stranded: readonly StrandedOutput[];
            via: readonly DeliveryChannel[];
        }
        | { kind: "blocked"; stranded: readonly StrandedOutput[] }
        | { kind: "undelivered"; stranded: readonly StrandedOutput[] }
        | { kind: "silent" }
        | { event: string; kind: "unknown"; why: string }

    The verdict. FIVE answers, because "the model saw nothing" has four distinct causes and a test failure must name the right one (make-the-distinction-a-type): the hook said nothing, it said something on a dead stream, it blocked instead, or we do not know this event.

    Type Declaration

    • {
          kind: "delivered";
          stranded: readonly StrandedOutput[];
          via: readonly DeliveryChannel[];
      }
      • Readonlykind: "delivered"
      • Readonlystranded: readonly StrandedOutput[]

        Output that ALSO went nowhere — informational, not a failure.

      • Readonlyvia: readonly DeliveryChannel[]
    • { kind: "blocked"; stranded: readonly StrandedOutput[] }

      The hook vetoed the action. Not a nudge; see the module header.

    • { kind: "undelivered"; stranded: readonly StrandedOutput[] }

      The hook printed text and none of it reached the model. Never empty.

    • { kind: "silent" }

      Nothing addressed to the model: empty streams, or control-only JSON (permissionDecision: "allow", a user-facing systemMessage).

    • { event: string; kind: "unknown"; why: string }

      The table has no row for this event, so delivery cannot be judged.