diff --git a/src/index.tsx b/src/index.tsx index a4f6332..58662f8 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -3595,12 +3595,21 @@ export type SerializedShotPathsGql = { b64EncodedBuffer?: Maybe; }; +export type SessionCoachBaselineGql = { + __typename?: "SessionCoachBaselineGQL"; + attemptCount: Scalars["Int"]["output"]; + madeCount: Scalars["Int"]["output"]; + makePercentage: Scalars["Float"]["output"]; + sessionCount: Scalars["Int"]["output"]; +}; + export enum SessionCoachCandidateFamilyEnum { Aiming = "AIMING", BackCut = "BACK_CUT", CueToObjectDistance = "CUE_TO_OBJECT_DISTANCE", CutAngle = "CUT_ANGLE", ObjectToPocketDistance = "OBJECT_TO_POCKET_DISTANCE", + Overall = "OVERALL", Spin = "SPIN", } @@ -3620,8 +3629,11 @@ export type SessionCoachCandidateGql = { }; export enum SessionCoachCandidateKindEnum { + BaselineComparison = "BASELINE_COMPARISON", DirectionalMiss = "DIRECTIONAL_MISS", OutcomePattern = "OUTCOME_PATTERN", + SessionStreak = "SESSION_STREAK", + StrengthPattern = "STRENGTH_PATTERN", UsagePattern = "USAGE_PATTERN", } @@ -3630,16 +3642,26 @@ export type SessionCoachDecisionGql = { body?: Maybe; drillId?: Maybe; drillReason?: Maybe; + positiveBody?: Maybe; + positiveTitle?: Maybe; practiceAttemptCount?: Maybe; practiceTarget?: Maybe; selectedCandidateId?: Maybe; + selectedPositiveCandidateId?: Maybe; + sessionSummary?: Maybe; suggestedAction?: Maybe; + supportingCandidateIds: Array; + supportingShotIds: Array; title?: Maybe; }; export type SessionCoachEvidenceGql = { __typename?: "SessionCoachEvidenceGQL"; attemptCount: Scalars["Int"]["output"]; + baselineAttemptCount: Scalars["Int"]["output"]; + baselineMadeCount: Scalars["Int"]["output"]; + baselineMakePercentage?: Maybe; + baselineSessionCount: Scalars["Int"]["output"]; bucketKey: Scalars["String"]["output"]; bucketLabel: Scalars["String"]["output"]; comparisonAttemptCount: Scalars["Int"]["output"]; @@ -3661,12 +3683,15 @@ export type SessionCoachGql = { candidates: Array; generatedAt: Scalars["DateTime"]["output"]; ineligibilityReason?: Maybe; + longestMakeStreak: Scalars["Int"]["output"]; madeCount: Scalars["Int"]["output"]; makePercentage?: Maybe; missedCount: Scalars["Int"]["output"]; + positiveCandidates: Array; primaryCandidate?: Maybe; processingId?: Maybe; processingStatus?: Maybe; + recentBaseline?: Maybe; shotCount: Scalars["Int"]["output"]; state: SessionCoachStateEnum; summary?: Maybe; @@ -3692,6 +3717,7 @@ export type SessionCoachGenerationDiagnosticsGql = { promptVersion: Scalars["String"]["output"]; providerKey: Scalars["String"]["output"]; startedAt?: Maybe; + synthesisRationale?: Maybe; updatedAt: Scalars["DateTime"]["output"]; }; @@ -7007,6 +7033,46 @@ export type GetSessionCoachQuery = { unknownOutcomeCount: number; analyzedShotCount: number; makePercentage?: number | null; + longestMakeStreak: number; + recentBaseline?: { + __typename?: "SessionCoachBaselineGQL"; + sessionCount: number; + attemptCount: number; + madeCount: number; + makePercentage: number; + } | null; + positiveCandidates: Array<{ + __typename?: "SessionCoachCandidateGQL"; + id: string; + rank: number; + family: SessionCoachCandidateFamilyEnum; + kind: SessionCoachCandidateKindEnum; + title: string; + body: string; + action: string; + supportingShotIds: Array; + drillId?: string | null; + limitations: Array; + evidence: { + __typename?: "SessionCoachEvidenceGQL"; + bucketKey: string; + bucketLabel: string; + attemptCount: number; + madeCount: number; + missedCount: number; + makePercentage: number; + comparisonAttemptCount: number; + comparisonMadeCount: number; + comparisonMakePercentage?: number | null; + patternShotCount: number; + score: number; + rankReason: string; + baselineSessionCount: number; + baselineAttemptCount: number; + baselineMadeCount: number; + baselineMakePercentage?: number | null; + }; + }>; primaryCandidate?: { __typename?: "SessionCoachCandidateGQL"; id: string; @@ -7033,6 +7099,10 @@ export type GetSessionCoachQuery = { patternShotCount: number; score: number; rankReason: string; + baselineSessionCount: number; + baselineAttemptCount: number; + baselineMadeCount: number; + baselineMakePercentage?: number | null; }; } | null; candidates: Array<{ @@ -7061,6 +7131,10 @@ export type GetSessionCoachQuery = { patternShotCount: number; score: number; rankReason: string; + baselineSessionCount: number; + baselineAttemptCount: number; + baselineMadeCount: number; + baselineMakePercentage?: number | null; }; }>; agentGeneration?: { @@ -7071,7 +7145,13 @@ export type GetSessionCoachQuery = { completedAt?: any | null; decision?: { __typename?: "SessionCoachDecisionGQL"; + selectedPositiveCandidateId?: string | null; + positiveTitle?: string | null; + positiveBody?: string | null; selectedCandidateId?: string | null; + supportingCandidateIds: Array; + supportingShotIds: Array; + sessionSummary?: string | null; title?: string | null; body?: string | null; suggestedAction?: string | null; @@ -7099,6 +7179,7 @@ export type GetSessionCoachQuery = { startedAt?: any | null; lastEnqueuedAt?: any | null; abstentionReason?: string | null; + synthesisRationale?: string | null; } | null; } | null; }; @@ -7121,7 +7202,13 @@ export type RequestSessionCoachGenerationMutation = { completedAt?: any | null; decision?: { __typename?: "SessionCoachDecisionGQL"; + selectedPositiveCandidateId?: string | null; + positiveTitle?: string | null; + positiveBody?: string | null; selectedCandidateId?: string | null; + supportingCandidateIds: Array; + supportingShotIds: Array; + sessionSummary?: string | null; title?: string | null; body?: string | null; suggestedAction?: string | null; @@ -7149,6 +7236,7 @@ export type RequestSessionCoachGenerationMutation = { startedAt?: any | null; lastEnqueuedAt?: any | null; abstentionReason?: string | null; + synthesisRationale?: string | null; } | null; } | null; }; @@ -7180,6 +7268,10 @@ export type SessionCoachCandidateFieldsFragment = { patternShotCount: number; score: number; rankReason: string; + baselineSessionCount: number; + baselineAttemptCount: number; + baselineMadeCount: number; + baselineMakePercentage?: number | null; }; }; @@ -7191,7 +7283,13 @@ export type SessionCoachGenerationFieldsFragment = { completedAt?: any | null; decision?: { __typename?: "SessionCoachDecisionGQL"; + selectedPositiveCandidateId?: string | null; + positiveTitle?: string | null; + positiveBody?: string | null; selectedCandidateId?: string | null; + supportingCandidateIds: Array; + supportingShotIds: Array; + sessionSummary?: string | null; title?: string | null; body?: string | null; suggestedAction?: string | null; @@ -7219,6 +7317,7 @@ export type SessionCoachGenerationFieldsFragment = { startedAt?: any | null; lastEnqueuedAt?: any | null; abstentionReason?: string | null; + synthesisRationale?: string | null; } | null; }; @@ -9764,6 +9863,10 @@ export const SessionCoachCandidateFieldsFragmentDoc = gql` patternShotCount score rankReason + baselineSessionCount + baselineAttemptCount + baselineMadeCount + baselineMakePercentage } } `; @@ -9774,7 +9877,13 @@ export const SessionCoachGenerationFieldsFragmentDoc = gql` createdAt completedAt decision { + selectedPositiveCandidateId + positiveTitle + positiveBody selectedCandidateId + supportingCandidateIds + supportingShotIds + sessionSummary title body suggestedAction @@ -9801,6 +9910,7 @@ export const SessionCoachGenerationFieldsFragmentDoc = gql` startedAt lastEnqueuedAt abstentionReason + synthesisRationale } } `; @@ -15433,6 +15543,16 @@ export const GetSessionCoachDocument = gql` unknownOutcomeCount analyzedShotCount makePercentage + longestMakeStreak + recentBaseline { + sessionCount + attemptCount + madeCount + makePercentage + } + positiveCandidates { + ...SessionCoachCandidateFields + } primaryCandidate { ...SessionCoachCandidateFields } diff --git a/src/operations/session-coach.gql b/src/operations/session-coach.gql index 1cd9548..b33afbb 100644 --- a/src/operations/session-coach.gql +++ b/src/operations/session-coach.gql @@ -14,6 +14,16 @@ query GetSessionCoach($videoId: Int!) { unknownOutcomeCount analyzedShotCount makePercentage + longestMakeStreak + recentBaseline { + sessionCount + attemptCount + madeCount + makePercentage + } + positiveCandidates { + ...SessionCoachCandidateFields + } primaryCandidate { ...SessionCoachCandidateFields } @@ -59,6 +69,10 @@ fragment SessionCoachCandidateFields on SessionCoachCandidateGQL { patternShotCount score rankReason + baselineSessionCount + baselineAttemptCount + baselineMadeCount + baselineMakePercentage } } @@ -68,7 +82,13 @@ fragment SessionCoachGenerationFields on SessionCoachGenerationGQL { createdAt completedAt decision { + selectedPositiveCandidateId + positiveTitle + positiveBody selectedCandidateId + supportingCandidateIds + supportingShotIds + sessionSummary title body suggestedAction @@ -95,5 +115,6 @@ fragment SessionCoachGenerationFields on SessionCoachGenerationGQL { startedAt lastEnqueuedAt abstentionReason + synthesisRationale } } diff --git a/src/schema.gql b/src/schema.gql index d779b7b..e537050 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -1312,7 +1312,15 @@ type SerializedShotPathsGQL { b64EncodedBuffer: String } +type SessionCoachBaselineGQL { + sessionCount: Int! + attemptCount: Int! + madeCount: Int! + makePercentage: Float! +} + enum SessionCoachCandidateFamilyEnum { + OVERALL AIMING CUT_ANGLE SPIN @@ -1336,13 +1344,22 @@ type SessionCoachCandidateGQL { } enum SessionCoachCandidateKindEnum { + BASELINE_COMPARISON + SESSION_STREAK + STRENGTH_PATTERN DIRECTIONAL_MISS OUTCOME_PATTERN USAGE_PATTERN } type SessionCoachDecisionGQL { + selectedPositiveCandidateId: ID + positiveTitle: String + positiveBody: String selectedCandidateId: ID + supportingCandidateIds: [ID!]! + supportingShotIds: [Int!]! + sessionSummary: String title: String body: String suggestedAction: String @@ -1365,6 +1382,10 @@ type SessionCoachEvidenceGQL { patternShotCount: Int! score: Float! rankReason: String! + baselineSessionCount: Int! + baselineAttemptCount: Int! + baselineMadeCount: Int! + baselineMakePercentage: Float } type SessionCoachGQL { @@ -1382,6 +1403,9 @@ type SessionCoachGQL { unknownOutcomeCount: Int! analyzedShotCount: Int! makePercentage: Float + longestMakeStreak: Int! + recentBaseline: SessionCoachBaselineGQL + positiveCandidates: [SessionCoachCandidateGQL!]! primaryCandidate: SessionCoachCandidateGQL candidates: [SessionCoachCandidateGQL!]! agentGeneration: SessionCoachGenerationGQL @@ -1405,6 +1429,7 @@ type SessionCoachGenerationDiagnosticsGQL { startedAt: DateTime lastEnqueuedAt: DateTime abstentionReason: String + synthesisRationale: String } type SessionCoachGenerationGQL {