// The WorkflowEvent discriminated union and its BaseWorkflowEvent envelope (ADR-0008 D4) plus the
// sibling status / limits / file-naming-style names the event types reference. The envelope reuses
// the harness BaseEvent field shape ({ schemaVersion, runId, fingerprint, seq, ts }) by structural
// convention — NOT a TypeScript import — so the #10 audit ledger and #13 UI can narrow workflow
// events with the same envelope logic they apply to HarnessEvent. This union is SEPARATE from
// HarnessEvent because the workflow does not pass through the harness state machine. No runtime
// logic lives here beyond the frozen DEFAULT_WORKFLOW_LIMITS table. Every SENSITIVE field is
// redacted before emit.
export const DEFAULT_WORKFLOW_LIMITS = {
    maxModelCalls: 3,
    maxRetries: 2,
    contextBudgetBytes: 65_536,
    maxBytesPerFile: 8_192,
};
