Compare commits

..

1 Commits

Author SHA1 Message Date
a68bb67926 Expose per-ball detector boxes on TableStateGQL
Regenerated from the backend branch that adds identifierToBox, so this
commit's schema matches that branch's Python export exactly. Kept off gql
master because the export also reorders the share-link declarations that
gql master carries in their pre-alphabetical positions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:53:12 -07:00
4 changed files with 19 additions and 201 deletions

View File

@@ -2579,7 +2579,6 @@ export type Mutation = {
startChallenge: ChallengeEntry;
submitCancellationFeedback: Scalars["Boolean"]["output"];
submitChallengeEntry: ChallengeEntry;
submitSessionCoachFeedback: SessionCoachFeedbackGql;
syncAppleSubscription: SyncAppleSubscriptionResultGql;
undismissChallenge: Scalars["Boolean"]["output"];
unfollowUser: UserGql;
@@ -2841,12 +2840,6 @@ export type MutationSubmitChallengeEntryArgs = {
videoId: Scalars["ID"]["input"];
};
export type MutationSubmitSessionCoachFeedbackArgs = {
generationId: Scalars["ID"]["input"];
response: SessionCoachFeedbackResponseEnum;
videoId: Scalars["Int"]["input"];
};
export type MutationSyncAppleSubscriptionArgs = {
input: SyncAppleSubscriptionInputGql;
};
@@ -3692,19 +3685,6 @@ export type SessionCoachEvidenceGql = {
score: Scalars["Float"]["output"];
};
export type SessionCoachFeedbackGql = {
__typename?: "SessionCoachFeedbackGQL";
response: SessionCoachFeedbackResponseEnum;
updatedAt: Scalars["DateTime"]["output"];
};
export enum SessionCoachFeedbackResponseEnum {
AlreadyWorkingOnThis = "ALREADY_WORKING_ON_THIS",
Helpful = "HELPFUL",
NotEnoughEvidence = "NOT_ENOUGH_EVIDENCE",
WrongFocus = "WRONG_FOCUS",
}
export type SessionCoachGql = {
__typename?: "SessionCoachGQL";
agentGeneration?: Maybe<SessionCoachGenerationGql>;
@@ -3757,7 +3737,6 @@ export type SessionCoachGenerationGql = {
createdAt: Scalars["DateTime"]["output"];
decision?: Maybe<SessionCoachDecisionGql>;
diagnostics?: Maybe<SessionCoachGenerationDiagnosticsGql>;
feedback?: Maybe<SessionCoachFeedbackGql>;
id: Scalars["ID"]["output"];
state: SessionCoachGenerationStateEnum;
};
@@ -4099,6 +4078,7 @@ export type SyncAppleSubscriptionResultGql = {
export type TableStateGql = {
__typename?: "TableStateGQL";
homography?: Maybe<HomographyInfoGql>;
identifierToBox: Array<BoundingBoxGql>;
identifierToColor: Array<Maybe<RgbColorGql>>;
identifierToPosition: Array<Array<Scalars["Float"]["output"]>>;
};
@@ -4339,7 +4319,7 @@ export type VideoExportJobGql = {
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
downloadUrl?: Maybe<Scalars["String"]["output"]>;
expiresAt?: Maybe<Scalars["DateTime"]["output"]>;
fileSizeBytes?: Maybe<Scalars["BigInt"]["output"]>;
fileSizeBytes?: Maybe<Scalars["Int"]["output"]>;
id: Scalars["Int"]["output"];
mode: VideoExportModeEnum;
runId?: Maybe<Scalars["Int"]["output"]>;
@@ -6911,10 +6891,8 @@ export type ReactToVideoMutation = {
};
export type GetShotLabVideosQueryVariables = Exact<{
feedInput: VideoFeedInputGql;
includePrivate: IncludePrivateEnum;
userId: Scalars["Int"]["input"];
limit?: Scalars["Int"]["input"];
after?: InputMaybe<Scalars["String"]["input"]>;
}>;
export type GetShotLabVideosQuery = {
@@ -6942,11 +6920,6 @@ export type GetShotLabVideosQuery = {
lastSegmentUploadedAt?: any | null;
} | null;
}>;
pageInfo: {
__typename?: "PageInfoGQL";
hasNextPage: boolean;
endCursor?: string | null;
};
};
};
@@ -7225,11 +7198,6 @@ export type GetSessionCoachQuery = {
abstentionReason?: string | null;
synthesisRationale?: string | null;
} | null;
feedback?: {
__typename?: "SessionCoachFeedbackGQL";
response: SessionCoachFeedbackResponseEnum;
updatedAt: any;
} | null;
} | null;
};
};
@@ -7287,27 +7255,7 @@ export type RequestSessionCoachGenerationMutation = {
abstentionReason?: string | null;
synthesisRationale?: string | null;
} | null;
feedback?: {
__typename?: "SessionCoachFeedbackGQL";
response: SessionCoachFeedbackResponseEnum;
updatedAt: any;
} | null;
} | null;
};
};
export type SubmitSessionCoachFeedbackMutationVariables = Exact<{
videoId: Scalars["Int"]["input"];
generationId: Scalars["ID"]["input"];
response: SessionCoachFeedbackResponseEnum;
}>;
export type SubmitSessionCoachFeedbackMutation = {
__typename?: "Mutation";
submitSessionCoachFeedback: {
__typename?: "SessionCoachFeedbackGQL";
response: SessionCoachFeedbackResponseEnum;
updatedAt: any;
};
};
@@ -7388,11 +7336,6 @@ export type SessionCoachGenerationFieldsFragment = {
abstentionReason?: string | null;
synthesisRationale?: string | null;
} | null;
feedback?: {
__typename?: "SessionCoachFeedbackGQL";
response: SessionCoachFeedbackResponseEnum;
updatedAt: any;
} | null;
};
export type CreateShotShareLinkMutationVariables = Exact<{
@@ -9332,7 +9275,7 @@ export type VideoExportJobFieldsFragment = {
shotIds?: Array<number> | null;
runId?: number | null;
downloadUrl?: string | null;
fileSizeBytes?: any | null;
fileSizeBytes?: number | null;
expiresAt?: any | null;
createdAt?: any | null;
};
@@ -9354,7 +9297,7 @@ export type RequestVideoExportMutation = {
shotIds?: Array<number> | null;
runId?: number | null;
downloadUrl?: string | null;
fileSizeBytes?: any | null;
fileSizeBytes?: number | null;
expiresAt?: any | null;
createdAt?: any | null;
};
@@ -9386,7 +9329,7 @@ export type VideoExportJobQuery = {
shotIds?: Array<number> | null;
runId?: number | null;
downloadUrl?: string | null;
fileSizeBytes?: any | null;
fileSizeBytes?: number | null;
expiresAt?: any | null;
createdAt?: any | null;
} | null;
@@ -9410,7 +9353,7 @@ export type MyVideoExportsQuery = {
shotIds?: Array<number> | null;
runId?: number | null;
downloadUrl?: string | null;
fileSizeBytes?: any | null;
fileSizeBytes?: number | null;
expiresAt?: any | null;
createdAt?: any | null;
}>;
@@ -10000,10 +9943,6 @@ export const SessionCoachGenerationFieldsFragmentDoc = gql`
abstentionReason
synthesisRationale
}
feedback {
response
updatedAt
}
}
`;
export const PlayerClusterShotFieldsFragmentDoc = gql`
@@ -15232,18 +15171,12 @@ export type ReactToVideoMutationOptions = Apollo.BaseMutationOptions<
ReactToVideoMutationVariables
>;
export const GetShotLabVideosDocument = gql`
query GetShotLabVideos(
$feedInput: VideoFeedInputGQL!
$includePrivate: IncludePrivateEnum!
$limit: Int! = 25
$after: String = null
) {
query GetShotLabVideos($userId: Int!, $limit: Int! = 25) {
getFeedVideos(
limit: $limit
after: $after
includeCallersVideos: false
includePrivate: $includePrivate
feedInput: $feedInput
includePrivate: MINE
feedInput: { userId: $userId }
) {
videos {
id
@@ -15263,10 +15196,6 @@ export const GetShotLabVideosDocument = gql`
lastSegmentUploadedAt
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
`;
@@ -15283,10 +15212,8 @@ export const GetShotLabVideosDocument = gql`
* @example
* const { data, loading, error } = useGetShotLabVideosQuery({
* variables: {
* feedInput: // value for 'feedInput'
* includePrivate: // value for 'includePrivate'
* userId: // value for 'userId'
* limit: // value for 'limit'
* after: // value for 'after'
* },
* });
*/
@@ -15792,68 +15719,6 @@ export type RequestSessionCoachGenerationMutationOptions =
RequestSessionCoachGenerationMutation,
RequestSessionCoachGenerationMutationVariables
>;
export const SubmitSessionCoachFeedbackDocument = gql`
mutation SubmitSessionCoachFeedback(
$videoId: Int!
$generationId: ID!
$response: SessionCoachFeedbackResponseEnum!
) {
submitSessionCoachFeedback(
videoId: $videoId
generationId: $generationId
response: $response
) {
response
updatedAt
}
}
`;
export type SubmitSessionCoachFeedbackMutationFn = Apollo.MutationFunction<
SubmitSessionCoachFeedbackMutation,
SubmitSessionCoachFeedbackMutationVariables
>;
/**
* __useSubmitSessionCoachFeedbackMutation__
*
* To run a mutation, you first call `useSubmitSessionCoachFeedbackMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useSubmitSessionCoachFeedbackMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [submitSessionCoachFeedbackMutation, { data, loading, error }] = useSubmitSessionCoachFeedbackMutation({
* variables: {
* videoId: // value for 'videoId'
* generationId: // value for 'generationId'
* response: // value for 'response'
* },
* });
*/
export function useSubmitSessionCoachFeedbackMutation(
baseOptions?: Apollo.MutationHookOptions<
SubmitSessionCoachFeedbackMutation,
SubmitSessionCoachFeedbackMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<
SubmitSessionCoachFeedbackMutation,
SubmitSessionCoachFeedbackMutationVariables
>(SubmitSessionCoachFeedbackDocument, options);
}
export type SubmitSessionCoachFeedbackMutationHookResult = ReturnType<
typeof useSubmitSessionCoachFeedbackMutation
>;
export type SubmitSessionCoachFeedbackMutationResult =
Apollo.MutationResult<SubmitSessionCoachFeedbackMutation>;
export type SubmitSessionCoachFeedbackMutationOptions =
Apollo.BaseMutationOptions<
SubmitSessionCoachFeedbackMutation,
SubmitSessionCoachFeedbackMutationVariables
>;
export const CreateShotShareLinkDocument = gql`
mutation CreateShotShareLink(
$shotIds: [Int!]!

View File

@@ -1,19 +1,12 @@
# Lightweight two-step picker data for Shot Lab's video-first source: recent
# videos from the requested audience (mine, followed users, or public), then
# that video's shots. The stream fields hint at "actively updating" without
# gating.
query GetShotLabVideos(
$feedInput: VideoFeedInputGQL!
$includePrivate: IncludePrivateEnum!
$limit: Int! = 25
$after: String = null
) {
# Lightweight two-step picker data for Shot Lab's video-first source: the
# caller's recent videos (completed or still uploading), then that video's
# shots. The stream fields hint at "actively updating" without gating.
query GetShotLabVideos($userId: Int!, $limit: Int! = 25) {
getFeedVideos(
limit: $limit
after: $after
includeCallersVideos: false
includePrivate: $includePrivate
feedInput: $feedInput
includePrivate: MINE
feedInput: { userId: $userId }
) {
videos {
id
@@ -33,10 +26,6 @@ query GetShotLabVideos(
lastSegmentUploadedAt
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

View File

@@ -45,21 +45,6 @@ mutation RequestSessionCoachGeneration($videoId: Int!) {
}
}
mutation SubmitSessionCoachFeedback(
$videoId: Int!
$generationId: ID!
$response: SessionCoachFeedbackResponseEnum!
) {
submitSessionCoachFeedback(
videoId: $videoId
generationId: $generationId
response: $response
) {
response
updatedAt
}
}
fragment SessionCoachCandidateFields on SessionCoachCandidateGQL {
id
rank
@@ -132,8 +117,4 @@ fragment SessionCoachGenerationFields on SessionCoachGenerationGQL {
abstentionReason
synthesisRationale
}
feedback {
response
updatedAt
}
}

View File

@@ -728,11 +728,6 @@ type Mutation {
shotId: Int!
fieldsToEdit: EditableShotFieldInputGQL!
): EditShotReturn!
submitSessionCoachFeedback(
videoId: Int!
generationId: ID!
response: SessionCoachFeedbackResponseEnum!
): SessionCoachFeedbackGQL!
requestSessionCoachGeneration(videoId: Int!): SessionCoachGQL!
getProfileImageUploadLink(
fileExt: String = ".png"
@@ -1392,18 +1387,6 @@ type SessionCoachEvidenceGQL {
baselineMakePercentage: Float
}
type SessionCoachFeedbackGQL {
response: SessionCoachFeedbackResponseEnum!
updatedAt: DateTime!
}
enum SessionCoachFeedbackResponseEnum {
HELPFUL
WRONG_FOCUS
ALREADY_WORKING_ON_THIS
NOT_ENOUGH_EVIDENCE
}
type SessionCoachGQL {
videoId: Int!
processingId: Int
@@ -1455,7 +1438,6 @@ type SessionCoachGenerationGQL {
completedAt: DateTime
decision: SessionCoachDecisionGQL
diagnostics: SessionCoachGenerationDiagnosticsGQL
feedback: SessionCoachFeedbackGQL
}
enum SessionCoachGenerationStateEnum {
@@ -1731,6 +1713,7 @@ type TableStateGQL {
identifierToPosition: [[Float!]!]!
homography: HomographyInfoGQL
identifierToColor: [RGBColorGQL]!
identifierToBox: [BoundingBoxGQL!]!
}
type TagClassGQL {
@@ -1952,7 +1935,7 @@ type VideoExportJobGQL {
shotIds: [Int!]
runId: Int
downloadUrl: String
fileSizeBytes: BigInt
fileSizeBytes: Int
expiresAt: DateTime
createdAt: DateTime
}