diff --git a/src/index.tsx b/src/index.tsx index a55b071..c85c374 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -3575,12 +3575,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", } @@ -3600,8 +3609,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", } @@ -3610,9 +3622,12 @@ 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; @@ -3623,6 +3638,10 @@ export type SessionCoachDecisionGql = { 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"]; @@ -3644,12 +3663,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; @@ -6915,6 +6937,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; @@ -6941,6 +7003,10 @@ export type GetSessionCoachQuery = { patternShotCount: number; score: number; rankReason: string; + baselineSessionCount: number; + baselineAttemptCount: number; + baselineMadeCount: number; + baselineMakePercentage?: number | null; }; } | null; candidates: Array<{ @@ -6969,6 +7035,10 @@ export type GetSessionCoachQuery = { patternShotCount: number; score: number; rankReason: string; + baselineSessionCount: number; + baselineAttemptCount: number; + baselineMadeCount: number; + baselineMakePercentage?: number | null; }; }>; agentGeneration?: { @@ -6979,6 +7049,9 @@ 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; @@ -7033,6 +7106,9 @@ 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; @@ -7096,6 +7172,10 @@ export type SessionCoachCandidateFieldsFragment = { patternShotCount: number; score: number; rankReason: string; + baselineSessionCount: number; + baselineAttemptCount: number; + baselineMadeCount: number; + baselineMakePercentage?: number | null; }; }; @@ -7107,6 +7187,9 @@ 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; @@ -9613,6 +9696,10 @@ export const SessionCoachCandidateFieldsFragmentDoc = gql` patternShotCount score rankReason + baselineSessionCount + baselineAttemptCount + baselineMadeCount + baselineMakePercentage } } `; @@ -9623,6 +9710,9 @@ export const SessionCoachGenerationFieldsFragmentDoc = gql` createdAt completedAt decision { + selectedPositiveCandidateId + positiveTitle + positiveBody selectedCandidateId supportingCandidateIds supportingShotIds @@ -15096,6 +15186,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 74a03c8..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,6 +82,9 @@ fragment SessionCoachGenerationFields on SessionCoachGenerationGQL { createdAt completedAt decision { + selectedPositiveCandidateId + positiveTitle + positiveBody selectedCandidateId supportingCandidateIds supportingShotIds diff --git a/src/schema.gql b/src/schema.gql index 6e83bea..afdb297 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -1292,7 +1292,15 @@ type SerializedShotPathsGQL { b64EncodedBuffer: String } +type SessionCoachBaselineGQL { + sessionCount: Int! + attemptCount: Int! + madeCount: Int! + makePercentage: Float! +} + enum SessionCoachCandidateFamilyEnum { + OVERALL AIMING CUT_ANGLE SPIN @@ -1316,12 +1324,18 @@ 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!]! @@ -1348,6 +1362,10 @@ type SessionCoachEvidenceGQL { patternShotCount: Int! score: Float! rankReason: String! + baselineSessionCount: Int! + baselineAttemptCount: Int! + baselineMadeCount: Int! + baselineMakePercentage: Float } type SessionCoachGQL { @@ -1365,6 +1383,9 @@ type SessionCoachGQL { unknownOutcomeCount: Int! analyzedShotCount: Int! makePercentage: Float + longestMakeStreak: Int! + recentBaseline: SessionCoachBaselineGQL + positiveCandidates: [SessionCoachCandidateGQL!]! primaryCandidate: SessionCoachCandidateGQL candidates: [SessionCoachCandidateGQL!]! agentGeneration: SessionCoachGenerationGQL