/** * Canonical diagnostician output schema for PD Runtime v2. * * Source: Diagnostician v2 Detailed Design, Section 11 * Source: PD Runtime Protocol SPEC v1, Section 18 * * This is the single structured output contract for diagnosis results. * All runtime adapters producing diagnostician output must conform to this schema. */ import { type Static } from '@sinclair/typebox'; import type { DiagnosticianContextPayload } from './context-payload.js'; export declare const DiagnosticianViolatedPrincipleSchema: import("@sinclair/typebox").TObject<{ principleId: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; rationale: import("@sinclair/typebox").TString; }>; export type DiagnosticianViolatedPrinciple = Static; export declare const DiagnosticianEvidenceSchema: import("@sinclair/typebox").TObject<{ sourceRef: import("@sinclair/typebox").TString; note: import("@sinclair/typebox").TString; }>; export type DiagnosticianEvidence = Static; export declare const RecommendationKindSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"principle">, import("@sinclair/typebox").TLiteral<"rule">, import("@sinclair/typebox").TLiteral<"implementation">, import("@sinclair/typebox").TLiteral<"prompt">, import("@sinclair/typebox").TLiteral<"defer">]>; export type RecommendationKind = Static; export declare const DiagnosticianRecommendationSchema: import("@sinclair/typebox").TObject<{ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"principle">, import("@sinclair/typebox").TLiteral<"rule">, import("@sinclair/typebox").TLiteral<"implementation">, import("@sinclair/typebox").TLiteral<"prompt">, import("@sinclair/typebox").TLiteral<"defer">]>; description: import("@sinclair/typebox").TString; triggerPattern: import("@sinclair/typebox").TOptional; action: import("@sinclair/typebox").TOptional; abstractedPrinciple: import("@sinclair/typebox").TOptional; }>; export type DiagnosticianRecommendation = Static; export declare const DiagnosticianOutputV1Schema: import("@sinclair/typebox").TObject<{ valid: import("@sinclair/typebox").TBoolean; diagnosisId: import("@sinclair/typebox").TString; summary: import("@sinclair/typebox").TString; rootCause: import("@sinclair/typebox").TString; violatedPrinciples: import("@sinclair/typebox").TArray; title: import("@sinclair/typebox").TOptional; rationale: import("@sinclair/typebox").TString; }>>; evidence: import("@sinclair/typebox").TArray>; recommendations: import("@sinclair/typebox").TArray, import("@sinclair/typebox").TLiteral<"rule">, import("@sinclair/typebox").TLiteral<"implementation">, import("@sinclair/typebox").TLiteral<"prompt">, import("@sinclair/typebox").TLiteral<"defer">]>; description: import("@sinclair/typebox").TString; triggerPattern: import("@sinclair/typebox").TOptional; action: import("@sinclair/typebox").TOptional; abstractedPrinciple: import("@sinclair/typebox").TOptional; }>>; confidence: import("@sinclair/typebox").TNumber; ambiguityNotes: import("@sinclair/typebox").TOptional>; /** * PRI-468: Optional intent tension passed through from Stage A. * * Present only when: * 1. The `intent_engineering` flag is on, AND * 2. Stage A emitted an intentTension, AND * 3. Stage C additive passthrough copied it here. * * Stage C MUST NOT generate intentTension when Stage A omitted it * (SPEC §18.2 — additive only, never generates). * * This field is additive — existing consumers that don't know about * intentTension will ignore it (SPEC §18.3 — don't break downstream). */ intentTension: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"action_drift">, import("@sinclair/typebox").TLiteral<"intent_suspect">, import("@sinclair/typebox").TLiteral<"healthy_tension">]>; evidenceStrength: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"weak">, import("@sinclair/typebox").TLiteral<"moderate">, import("@sinclair/typebox").TLiteral<"strong">]>; relatedIntentFields: import("@sinclair/typebox").TArray, import("@sinclair/typebox").TLiteral<"desired_outcome">, import("@sinclair/typebox").TLiteral<"non_negotiables">, import("@sinclair/typebox").TLiteral<"stop_escalation">, import("@sinclair/typebox").TLiteral<"current_strategic_focus">]>>; evidence: import("@sinclair/typebox").TArray; explanation: import("@sinclair/typebox").TString; suggestedOwnerAction: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"confirm_drift">, import("@sinclair/typebox").TLiteral<"revise_intent">, import("@sinclair/typebox").TLiteral<"observe">, import("@sinclair/typebox").TLiteral<"dismiss">, import("@sinclair/typebox").TLiteral<"promote_to_principle">, import("@sinclair/typebox").TLiteral<"promote_to_rulehost">]>; intentDocHash: import("@sinclair/typebox").TOptional; }>>; }>; export type DiagnosticianOutputV1 = Static; /** * TypeBox schema for diagnostician invocation input. * The `context` field uses Type.Unknown() because cross-file TypeBox schema * references can cause circular dependency issues. The actual type validation * is performed separately via DiagnosticianContextPayloadSchema. */ export declare const DiagnosticianInvocationInputSchema: import("@sinclair/typebox").TObject<{ agentId: import("@sinclair/typebox").TString; taskId: import("@sinclair/typebox").TString; context: import("@sinclair/typebox").TUnknown; outputSchemaRef: import("@sinclair/typebox").TLiteral<"diagnostician-output-v1">; timeoutMs: import("@sinclair/typebox").TNumber; }>; /** Typed interface for diagnostician invocation — context references DiagnosticianContextPayload (per D-02). */ export interface DiagnosticianInvocationInput { /** Agent identifier — any valid agent ID (e.g., "diagnostician", "main"). */ agentId: string; /** The task being diagnosed. */ taskId: string; /** Pre-assembled context for the diagnosis. */ context: DiagnosticianContextPayload; /** Reference to the output schema version. */ outputSchemaRef: 'diagnostician-output-v1'; /** Timeout in milliseconds for this invocation. */ timeoutMs: number; } //# sourceMappingURL=diagnostician-output.d.ts.map