@burdenoff/microfe-technospam 2026.1031.2 → 2026.1031.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -209,7 +209,10 @@ export type AcceptMtwReuseReservationInput = {
|
|
|
209
209
|
idempotencyKey: Scalars['String']['input'];
|
|
210
210
|
proposalId: Scalars['ID']['input'];
|
|
211
211
|
};
|
|
212
|
-
/**
|
|
212
|
+
/**
|
|
213
|
+
* The ids a resource shared with people, groups or projects can be granted to, for one person in one
|
|
214
|
+
* workspace.
|
|
215
|
+
*/
|
|
213
216
|
export type AccessPrincipals = {
|
|
214
217
|
__typename?: 'AccessPrincipals';
|
|
215
218
|
actorId: Scalars['String']['output'];
|
|
@@ -225,7 +228,10 @@ export type AccessPrincipalsInput = {
|
|
|
225
228
|
/** Opaque actor ID of the person, never the calling service */
|
|
226
229
|
actorId: Scalars['String']['input'];
|
|
227
230
|
actorType: ActorType;
|
|
228
|
-
/**
|
|
231
|
+
/**
|
|
232
|
+
* Resource type the calling service shares (e.g. "integration-connection", "workflow"); decides
|
|
233
|
+
* administersResourceType
|
|
234
|
+
*/
|
|
229
235
|
resourceType: Scalars['String']['input'];
|
|
230
236
|
};
|
|
231
237
|
export type AccessShareInput = {
|
|
@@ -9790,6 +9796,8 @@ export type BuiApplyCourseOutlineInput = {
|
|
|
9790
9796
|
};
|
|
9791
9797
|
export type BuiAssessment = {
|
|
9792
9798
|
__typename?: 'BuiAssessment';
|
|
9799
|
+
/** BOFF-9690: opt-in in-browser AI monitoring (camera face presence, multiple faces, looking away, sustained speech) on top of the human-reviewed proctoring gate. Only ever true when `requiresProctoring` is true. */
|
|
9800
|
+
aiProctoringEnabled: Scalars['Boolean']['output'];
|
|
9793
9801
|
courseId: Scalars['ID']['output'];
|
|
9794
9802
|
createdAt: Scalars['DateTime']['output'];
|
|
9795
9803
|
description?: Maybe<Scalars['String']['output']>;
|
|
@@ -9962,6 +9970,10 @@ export type BuiCertificate = {
|
|
|
9962
9970
|
recipientNameSnapshot?: Maybe<Scalars['String']['output']>;
|
|
9963
9971
|
revokedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
9964
9972
|
serial: Scalars['String']['output'];
|
|
9973
|
+
/** BOFF-3134: the product this certificate was mirrored from. Null for certificates issued natively in Buildmyiq. */
|
|
9974
|
+
source?: Maybe<BuiExternalSource>;
|
|
9975
|
+
/** BOFF-3134: the source product's own id for this certificate (opaque). */
|
|
9976
|
+
sourceId?: Maybe<Scalars['ID']['output']>;
|
|
9965
9977
|
status: BuiCertificateStatus;
|
|
9966
9978
|
updatedAt: Scalars['DateTime']['output'];
|
|
9967
9979
|
/** BOFF-4431: opaque code for the PUBLIC, unauthenticated verification page (`/verify/buildmyiq/{verificationCode}`) — share this, not the internal id. Null for certificates issued before this field existed. */
|
|
@@ -10092,6 +10104,10 @@ export type BuiCourse = {
|
|
|
10092
10104
|
skill?: Maybe<BuiSkill>;
|
|
10093
10105
|
skillId?: Maybe<Scalars['ID']['output']>;
|
|
10094
10106
|
slug: Scalars['String']['output'];
|
|
10107
|
+
/** BOFF-3134: the product this course was mirrored from. Null for courses authored natively in Buildmyiq. */
|
|
10108
|
+
source?: Maybe<BuiExternalSource>;
|
|
10109
|
+
/** BOFF-3134: the source product's own id for this course (opaque). */
|
|
10110
|
+
sourceId?: Maybe<Scalars['ID']['output']>;
|
|
10095
10111
|
status: BuiCourseStatus;
|
|
10096
10112
|
summary?: Maybe<Scalars['String']['output']>;
|
|
10097
10113
|
tags: Array<Scalars['String']['output']>;
|
|
@@ -10340,6 +10356,8 @@ export declare enum BuiCourseStatus {
|
|
|
10340
10356
|
Published = "PUBLISHED"
|
|
10341
10357
|
}
|
|
10342
10358
|
export type BuiCreateAssessmentInput = {
|
|
10359
|
+
/** BOFF-9690: opt into in-browser AI monitoring; requires `requiresProctoring`. */
|
|
10360
|
+
aiProctoringEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
10343
10361
|
courseId: Scalars['ID']['input'];
|
|
10344
10362
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
10345
10363
|
isGraded?: InputMaybe<Scalars['Boolean']['input']>;
|
|
@@ -10421,6 +10439,19 @@ export type BuiCriterionScore = {
|
|
|
10421
10439
|
/** Criterion title copied from the rubric row at suggestion time. */
|
|
10422
10440
|
title: Scalars['String']['output'];
|
|
10423
10441
|
};
|
|
10442
|
+
export type BuiDemoContentResult = {
|
|
10443
|
+
__typename?: 'BuiDemoContentResult';
|
|
10444
|
+
assessmentId?: Maybe<Scalars['ID']['output']>;
|
|
10445
|
+
cohortId?: Maybe<Scalars['ID']['output']>;
|
|
10446
|
+
courseId: Scalars['ID']['output'];
|
|
10447
|
+
/** False when the demo content was already loaded and the existing content is returned. */
|
|
10448
|
+
created: Scalars['Boolean']['output'];
|
|
10449
|
+
enrollmentId?: Maybe<Scalars['ID']['output']>;
|
|
10450
|
+
lessonCount: Scalars['Int']['output'];
|
|
10451
|
+
moduleCount: Scalars['Int']['output'];
|
|
10452
|
+
questionCount: Scalars['Int']['output'];
|
|
10453
|
+
skillId?: Maybe<Scalars['ID']['output']>;
|
|
10454
|
+
};
|
|
10424
10455
|
export type BuiEnrollInput = {
|
|
10425
10456
|
cohortId?: InputMaybe<Scalars['ID']['input']>;
|
|
10426
10457
|
courseId: Scalars['ID']['input'];
|
|
@@ -10449,6 +10480,10 @@ export type BuiEnrollment = {
|
|
|
10449
10480
|
/** Last time the overdue-reminder automation reminded the learner. */
|
|
10450
10481
|
overdueRemindedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
10451
10482
|
progressPct: Scalars['Int']['output'];
|
|
10483
|
+
/** BOFF-3134: the product this enrollment was mirrored from. Null for native Buildmyiq enrollments. */
|
|
10484
|
+
source?: Maybe<BuiExternalSource>;
|
|
10485
|
+
/** BOFF-3134: the source product's own id for this enrollment (opaque). */
|
|
10486
|
+
sourceId?: Maybe<Scalars['ID']['output']>;
|
|
10452
10487
|
startedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
10453
10488
|
status: BuiEnrollmentStatus;
|
|
10454
10489
|
updatedAt: Scalars['DateTime']['output'];
|
|
@@ -10469,6 +10504,10 @@ export declare enum BuiEnrollmentStatus {
|
|
|
10469
10504
|
Expired = "EXPIRED",
|
|
10470
10505
|
InProgress = "IN_PROGRESS"
|
|
10471
10506
|
}
|
|
10507
|
+
/** BOFF-3134: a product that mirrors its learning records into the canonical Buildmyiq LMS. Buildmyiq is the system of record for courses, enrollments and certificates; a product that still authors them locally syncs each record here through the service-only buiSyncExternal* mutations, keyed by its own id. */
|
|
10508
|
+
export declare enum BuiExternalSource {
|
|
10509
|
+
Technospam = "TECHNOSPAM"
|
|
10510
|
+
}
|
|
10472
10511
|
export type BuiGradeSubmissionInput = {
|
|
10473
10512
|
feedback?: InputMaybe<Scalars['String']['input']>;
|
|
10474
10513
|
passed?: InputMaybe<Scalars['Boolean']['input']>;
|
|
@@ -10685,6 +10724,33 @@ export type BuiNextLessonSuggestion = {
|
|
|
10685
10724
|
pacingHint: BuiPacingHint;
|
|
10686
10725
|
rationale: Scalars['String']['output'];
|
|
10687
10726
|
};
|
|
10727
|
+
export type BuiOnboardingStatus = {
|
|
10728
|
+
__typename?: 'BuiOnboardingStatus';
|
|
10729
|
+
completedCount: Scalars['Int']['output'];
|
|
10730
|
+
demoContentLoaded: Scalars['Boolean']['output'];
|
|
10731
|
+
demoCourseId?: Maybe<Scalars['ID']['output']>;
|
|
10732
|
+
/** The caller's enrollment in the demo course, used to continue the demo as a learner. */
|
|
10733
|
+
demoEnrollmentId?: Maybe<Scalars['ID']['output']>;
|
|
10734
|
+
isComplete: Scalars['Boolean']['output'];
|
|
10735
|
+
steps: Array<BuiOnboardingStep>;
|
|
10736
|
+
totalCount: Scalars['Int']['output'];
|
|
10737
|
+
};
|
|
10738
|
+
export type BuiOnboardingStep = {
|
|
10739
|
+
__typename?: 'BuiOnboardingStep';
|
|
10740
|
+
/** When the workspace first reached this step, if it was reached after activation tracking started. */
|
|
10741
|
+
achievedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
10742
|
+
completed: Scalars['Boolean']['output'];
|
|
10743
|
+
/** How many of the workspace's own courses / enrollments / certificates satisfy the step. */
|
|
10744
|
+
count: Scalars['Int']['output'];
|
|
10745
|
+
key: BuiOnboardingStepKey;
|
|
10746
|
+
};
|
|
10747
|
+
/** A step of the four-step getting-started checklist, in checklist order. */
|
|
10748
|
+
export declare enum BuiOnboardingStepKey {
|
|
10749
|
+
CreateCourse = "CREATE_COURSE",
|
|
10750
|
+
EnrollLearner = "ENROLL_LEARNER",
|
|
10751
|
+
IssueCertificate = "ISSUE_CERTIFICATE",
|
|
10752
|
+
PublishCourse = "PUBLISH_COURSE"
|
|
10753
|
+
}
|
|
10688
10754
|
export declare enum BuiPacingHint {
|
|
10689
10755
|
Accelerate = "ACCELERATE",
|
|
10690
10756
|
SlowDown = "SLOW_DOWN",
|
|
@@ -10699,8 +10765,22 @@ export declare enum BuiProctoringDecision {
|
|
|
10699
10765
|
Approved = "APPROVED",
|
|
10700
10766
|
Rejected = "REJECTED"
|
|
10701
10767
|
}
|
|
10768
|
+
/** BOFF-9691: a reviewer's view of a learner's identity photo/ID. The file stays PRIVATE to the learner in the platform file store; this carries only what a reviewer needs to look at it once. */
|
|
10769
|
+
export type BuiProctoringIdentityFile = {
|
|
10770
|
+
__typename?: 'BuiProctoringIdentityFile';
|
|
10771
|
+
/** Short-lived presigned URL (about five minutes). */
|
|
10772
|
+
downloadUrl: Scalars['String']['output'];
|
|
10773
|
+
expiresAt: Scalars['DateTime']['output'];
|
|
10774
|
+
fileId: Scalars['ID']['output'];
|
|
10775
|
+
mimeType: Scalars['String']['output'];
|
|
10776
|
+
name: Scalars['String']['output'];
|
|
10777
|
+
/** Size in bytes, as a string (BigInt-safe). */
|
|
10778
|
+
size?: Maybe<Scalars['String']['output']>;
|
|
10779
|
+
};
|
|
10702
10780
|
export type BuiProctoringSession = {
|
|
10703
10781
|
__typename?: 'BuiProctoringSession';
|
|
10782
|
+
/** BOFF-9690: when the learner consented to in-browser AI monitoring. Null when the assessment does not use AI monitoring. */
|
|
10783
|
+
aiMonitoringConsentAt?: Maybe<Scalars['DateTime']['output']>;
|
|
10704
10784
|
assessmentId: Scalars['ID']['output'];
|
|
10705
10785
|
createdAt: Scalars['DateTime']['output'];
|
|
10706
10786
|
expiresAt: Scalars['DateTime']['output'];
|
|
@@ -10712,6 +10792,10 @@ export type BuiProctoringSession = {
|
|
|
10712
10792
|
reviewNotes?: Maybe<Scalars['String']['output']>;
|
|
10713
10793
|
reviewedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
10714
10794
|
reviewedById?: Maybe<Scalars['ID']['output']>;
|
|
10795
|
+
/** Number of proctoring signals recorded on this session (lockdown + AI), including any already deleted by the retention period. */
|
|
10796
|
+
signalCount: Scalars['Int']['output'];
|
|
10797
|
+
/** Per-type counts of this session's signals still inside the retention period. */
|
|
10798
|
+
signalSummary: Array<BuiProctoringSignalSummary>;
|
|
10715
10799
|
status: BuiProctoringStatus;
|
|
10716
10800
|
updatedAt: Scalars['DateTime']['output'];
|
|
10717
10801
|
violationCount: Scalars['Int']['output'];
|
|
@@ -10722,6 +10806,56 @@ export type BuiProctoringSessionConnection = {
|
|
|
10722
10806
|
items: Array<BuiProctoringSession>;
|
|
10723
10807
|
pageInfo: BuiPageInfo;
|
|
10724
10808
|
};
|
|
10809
|
+
/** BOFF-9690: one signal episode on a proctoring session. Only the kind, timing and a few numbers are stored — never images, audio or face templates — and rows are deleted after the published retention period (60 days). */
|
|
10810
|
+
export type BuiProctoringSignal = {
|
|
10811
|
+
__typename?: 'BuiProctoringSignal';
|
|
10812
|
+
/** Detector confidence 0..1 (AI signals only). */
|
|
10813
|
+
confidence?: Maybe<Scalars['Float']['output']>;
|
|
10814
|
+
createdAt: Scalars['DateTime']['output'];
|
|
10815
|
+
durationMs: Scalars['Int']['output'];
|
|
10816
|
+
/** Highest number of faces seen during the episode (face signals only). */
|
|
10817
|
+
faceCount?: Maybe<Scalars['Int']['output']>;
|
|
10818
|
+
id: Scalars['ID']['output'];
|
|
10819
|
+
/** Peak speech-band level in dBFS (audio signals only). */
|
|
10820
|
+
peakLevelDb?: Maybe<Scalars['Float']['output']>;
|
|
10821
|
+
sessionId: Scalars['ID']['output'];
|
|
10822
|
+
startedAt: Scalars['DateTime']['output'];
|
|
10823
|
+
type: BuiProctoringSignalType;
|
|
10824
|
+
workspaceId: Scalars['ID']['output'];
|
|
10825
|
+
};
|
|
10826
|
+
export type BuiProctoringSignalConnection = {
|
|
10827
|
+
__typename?: 'BuiProctoringSignalConnection';
|
|
10828
|
+
items: Array<BuiProctoringSignal>;
|
|
10829
|
+
pageInfo: BuiPageInfo;
|
|
10830
|
+
};
|
|
10831
|
+
/** BOFF-9690: one signal episode reported by the learner's browser. */
|
|
10832
|
+
export type BuiProctoringSignalInput = {
|
|
10833
|
+
confidence?: InputMaybe<Scalars['Float']['input']>;
|
|
10834
|
+
durationMs?: InputMaybe<Scalars['Int']['input']>;
|
|
10835
|
+
faceCount?: InputMaybe<Scalars['Int']['input']>;
|
|
10836
|
+
peakLevelDb?: InputMaybe<Scalars['Float']['input']>;
|
|
10837
|
+
startedAt: Scalars['DateTime']['input'];
|
|
10838
|
+
type: BuiProctoringSignalType;
|
|
10839
|
+
};
|
|
10840
|
+
export type BuiProctoringSignalSummary = {
|
|
10841
|
+
__typename?: 'BuiProctoringSignalSummary';
|
|
10842
|
+
count: Scalars['Int']['output'];
|
|
10843
|
+
totalDurationMs: Scalars['Int']['output'];
|
|
10844
|
+
type: BuiProctoringSignalType;
|
|
10845
|
+
};
|
|
10846
|
+
/** BOFF-9690: a proctoring signal episode observed by the learner's browser. Lockdown signals: TAB_HIDDEN, WINDOW_BLUR, FULLSCREEN_EXIT, CLIPBOARD. AI signals (opt-in per assessment, analysed on the learner's device only): FACE_ABSENT, MULTIPLE_FACES, GAZE_AWAY (head turned away from the screen), VOICE_DETECTED (sustained speech-band audio), CAMERA_UNAVAILABLE, MICROPHONE_UNAVAILABLE. */
|
|
10847
|
+
export declare enum BuiProctoringSignalType {
|
|
10848
|
+
CameraUnavailable = "CAMERA_UNAVAILABLE",
|
|
10849
|
+
Clipboard = "CLIPBOARD",
|
|
10850
|
+
FaceAbsent = "FACE_ABSENT",
|
|
10851
|
+
FullscreenExit = "FULLSCREEN_EXIT",
|
|
10852
|
+
GazeAway = "GAZE_AWAY",
|
|
10853
|
+
MicrophoneUnavailable = "MICROPHONE_UNAVAILABLE",
|
|
10854
|
+
MultipleFaces = "MULTIPLE_FACES",
|
|
10855
|
+
TabHidden = "TAB_HIDDEN",
|
|
10856
|
+
VoiceDetected = "VOICE_DETECTED",
|
|
10857
|
+
WindowBlur = "WINDOW_BLUR"
|
|
10858
|
+
}
|
|
10725
10859
|
export declare enum BuiProctoringStatus {
|
|
10726
10860
|
Approved = "APPROVED",
|
|
10727
10861
|
Expired = "EXPIRED",
|
|
@@ -10920,6 +11054,8 @@ export type BuiSubmitAssessmentInput = {
|
|
|
10920
11054
|
enrollmentId?: InputMaybe<Scalars['ID']['input']>;
|
|
10921
11055
|
};
|
|
10922
11056
|
export type BuiSubmitProctoringIdentityInput = {
|
|
11057
|
+
/** BOFF-9690: explicit consent to in-browser AI monitoring. Required (true) when the assessment has `aiProctoringEnabled`; ignored otherwise. */
|
|
11058
|
+
aiMonitoringConsent?: InputMaybe<Scalars['Boolean']['input']>;
|
|
10923
11059
|
identityFileId?: InputMaybe<Scalars['ID']['input']>;
|
|
10924
11060
|
lockdownAcknowledged: Scalars['Boolean']['input'];
|
|
10925
11061
|
};
|
|
@@ -10937,6 +11073,58 @@ export type BuiSuggestAssessmentDraftInput = {
|
|
|
10937
11073
|
/** Allowed question types; default SINGLE_CHOICE and SHORT_ANSWER. */
|
|
10938
11074
|
questionTypes?: InputMaybe<Array<BuiQuestionType>>;
|
|
10939
11075
|
};
|
|
11076
|
+
export type BuiSyncExternalCertificateInput = {
|
|
11077
|
+
/** The source product's id of the certificate's course (synced first). */
|
|
11078
|
+
courseSourceId: Scalars['ID']['input'];
|
|
11079
|
+
deletedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11080
|
+
finalScore?: InputMaybe<Scalars['Float']['input']>;
|
|
11081
|
+
issuedAt: Scalars['DateTime']['input'];
|
|
11082
|
+
learnerId: Scalars['ID']['input'];
|
|
11083
|
+
onBehalfOf: Scalars['ID']['input'];
|
|
11084
|
+
revokedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11085
|
+
/** The source's serial. Kept verbatim so a shared credential still matches. */
|
|
11086
|
+
serial: Scalars['String']['input'];
|
|
11087
|
+
source: BuiExternalSource;
|
|
11088
|
+
/** The source product's own certificate id. */
|
|
11089
|
+
sourceId: Scalars['ID']['input'];
|
|
11090
|
+
status: BuiCertificateStatus;
|
|
11091
|
+
};
|
|
11092
|
+
export type BuiSyncExternalCourseInput = {
|
|
11093
|
+
coverFileId?: InputMaybe<Scalars['ID']['input']>;
|
|
11094
|
+
/** Set when the source soft-deleted (archived) the course. */
|
|
11095
|
+
deletedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11096
|
+
/** Source estimate in minutes; stored rounded up to whole hours. */
|
|
11097
|
+
estimatedMinutes?: InputMaybe<Scalars['Int']['input']>;
|
|
11098
|
+
instructorId?: InputMaybe<Scalars['ID']['input']>;
|
|
11099
|
+
level: BuiCourseLevel;
|
|
11100
|
+
/** The end user the source product acted for; recorded as onBehalfOf. */
|
|
11101
|
+
onBehalfOf: Scalars['ID']['input'];
|
|
11102
|
+
publishedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11103
|
+
/** Preferred slug. Suffixed with a fragment of sourceId if the workspace already uses it. */
|
|
11104
|
+
slug: Scalars['String']['input'];
|
|
11105
|
+
source: BuiExternalSource;
|
|
11106
|
+
/** The source product's own course id. */
|
|
11107
|
+
sourceId: Scalars['ID']['input'];
|
|
11108
|
+
status: BuiCourseStatus;
|
|
11109
|
+
summary?: InputMaybe<Scalars['String']['input']>;
|
|
11110
|
+
tags?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
11111
|
+
title: Scalars['String']['input'];
|
|
11112
|
+
};
|
|
11113
|
+
export type BuiSyncExternalEnrollmentInput = {
|
|
11114
|
+
completedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11115
|
+
/** The source product's id of the enrollment's course (synced first). */
|
|
11116
|
+
courseSourceId: Scalars['ID']['input'];
|
|
11117
|
+
deletedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11118
|
+
lastActiveAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11119
|
+
learnerId: Scalars['ID']['input'];
|
|
11120
|
+
onBehalfOf: Scalars['ID']['input'];
|
|
11121
|
+
progressPct: Scalars['Int']['input'];
|
|
11122
|
+
source: BuiExternalSource;
|
|
11123
|
+
/** The source product's own enrollment id. */
|
|
11124
|
+
sourceId: Scalars['ID']['input'];
|
|
11125
|
+
startedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
11126
|
+
status: BuiEnrollmentStatus;
|
|
11127
|
+
};
|
|
10940
11128
|
export declare enum BuiTutorAdaptiveLevel {
|
|
10941
11129
|
Advanced = "ADVANCED",
|
|
10942
11130
|
OnTrack = "ON_TRACK",
|
|
@@ -12816,6 +13004,16 @@ export type ColUntagStoryInput = {
|
|
|
12816
13004
|
entityId: Scalars['ID']['input'];
|
|
12817
13005
|
tagId: Scalars['ID']['input'];
|
|
12818
13006
|
};
|
|
13007
|
+
/** Partial edit of a timeline event (BOFF-3972). Omitted fields are left unchanged; an explicit null clears personId, description or place. */
|
|
13008
|
+
export type ColUpdateEventInput = {
|
|
13009
|
+
date?: InputMaybe<Scalars['DateTime']['input']>;
|
|
13010
|
+
description?: InputMaybe<Scalars['String']['input']>;
|
|
13011
|
+
isApproximate?: InputMaybe<Scalars['Boolean']['input']>;
|
|
13012
|
+
personId?: InputMaybe<Scalars['ID']['input']>;
|
|
13013
|
+
place?: InputMaybe<Scalars['String']['input']>;
|
|
13014
|
+
title?: InputMaybe<Scalars['String']['input']>;
|
|
13015
|
+
type?: InputMaybe<ColEventType>;
|
|
13016
|
+
};
|
|
12819
13017
|
export type ColUpdateFamilyTreeInput = {
|
|
12820
13018
|
coverFileId?: InputMaybe<Scalars['ID']['input']>;
|
|
12821
13019
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -12823,6 +13021,11 @@ export type ColUpdateFamilyTreeInput = {
|
|
|
12823
13021
|
surname?: InputMaybe<Scalars['String']['input']>;
|
|
12824
13022
|
tags?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
12825
13023
|
};
|
|
13024
|
+
/** Change a family-circle member's tree role and/or linked Person (BOFF-3972). Omitted fields are left unchanged; an explicit null personId unlinks the member from their Person record. */
|
|
13025
|
+
export type ColUpdateMembershipInput = {
|
|
13026
|
+
personId?: InputMaybe<Scalars['ID']['input']>;
|
|
13027
|
+
role?: InputMaybe<ColMemberRole>;
|
|
13028
|
+
};
|
|
12826
13029
|
export type ColUpdateMemoryInput = {
|
|
12827
13030
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
12828
13031
|
fileId?: InputMaybe<Scalars['ID']['input']>;
|
|
@@ -12849,6 +13052,25 @@ export type ColUpdatePersonInput = {
|
|
|
12849
13052
|
photoFileId?: InputMaybe<Scalars['ID']['input']>;
|
|
12850
13053
|
tags?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
12851
13054
|
};
|
|
13055
|
+
/** Partial edit of a relationship (BOFF-3972). The two endpoints are immutable — re-pointing an edge at different people is a new relationship (delete + create). Omitted fields are left unchanged; an explicit null clears startDate, endDate or notes. */
|
|
13056
|
+
export type ColUpdateRelationshipInput = {
|
|
13057
|
+
certainty?: InputMaybe<ColCertainty>;
|
|
13058
|
+
endDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
13059
|
+
notes?: InputMaybe<Scalars['String']['input']>;
|
|
13060
|
+
startDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
13061
|
+
type?: InputMaybe<ColRelationshipType>;
|
|
13062
|
+
};
|
|
13063
|
+
/** Partial edit of a story (BOFF-3972). Omitted fields are left unchanged; an explicit null clears personId, body, recordingFileId or narrator. Re-linking `personId` to a LIVING relative without an explicit `visibility` tightens the stored visibility (never loosens it). */
|
|
13064
|
+
export type ColUpdateStoryInput = {
|
|
13065
|
+
body?: InputMaybe<Scalars['String']['input']>;
|
|
13066
|
+
format?: InputMaybe<ColStoryFormat>;
|
|
13067
|
+
narrator?: InputMaybe<Scalars['String']['input']>;
|
|
13068
|
+
personId?: InputMaybe<Scalars['ID']['input']>;
|
|
13069
|
+
recordingFileId?: InputMaybe<Scalars['ID']['input']>;
|
|
13070
|
+
tags?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
13071
|
+
title?: InputMaybe<Scalars['String']['input']>;
|
|
13072
|
+
visibility?: InputMaybe<ColVisibility>;
|
|
13073
|
+
};
|
|
12852
13074
|
export declare enum ColVisibility {
|
|
12853
13075
|
Private = "PRIVATE",
|
|
12854
13076
|
Stewards = "STEWARDS",
|
|
@@ -13436,6 +13658,8 @@ export type ComLiveStreamConnection = {
|
|
|
13436
13658
|
};
|
|
13437
13659
|
export type ComLiveStreamRecording = {
|
|
13438
13660
|
__typename?: 'ComLiveStreamRecording';
|
|
13661
|
+
/** BROWSER when the host's browser records and uploads, SERVER when the media server records the stage. A SERVER recording is UPLOADING while the service saves the media server's file. */
|
|
13662
|
+
captureMode: ComLiveStreamRecordingCaptureMode;
|
|
13439
13663
|
circleId: Scalars['ID']['output'];
|
|
13440
13664
|
createdAt: Scalars['DateTime']['output'];
|
|
13441
13665
|
durationSeconds?: Maybe<Scalars['Int']['output']>;
|
|
@@ -13460,6 +13684,13 @@ export type ComLiveStreamRecording = {
|
|
|
13460
13684
|
updatedAt: Scalars['DateTime']['output'];
|
|
13461
13685
|
workspaceId: Scalars['ID']['output'];
|
|
13462
13686
|
};
|
|
13687
|
+
/** Who captures a recording's media. */
|
|
13688
|
+
export declare enum ComLiveStreamRecordingCaptureMode {
|
|
13689
|
+
/** The host's browser records and uploads the media. */
|
|
13690
|
+
Browser = "BROWSER",
|
|
13691
|
+
/** The media server records the stage (SFU stages only); no browser upload. */
|
|
13692
|
+
Server = "SERVER"
|
|
13693
|
+
}
|
|
13463
13694
|
export type ComLiveStreamRecordingConnection = {
|
|
13464
13695
|
__typename?: 'ComLiveStreamRecordingConnection';
|
|
13465
13696
|
items: Array<ComLiveStreamRecording>;
|
|
@@ -13482,6 +13713,8 @@ export type ComLiveStreamRecordingSettings = {
|
|
|
13482
13713
|
minutesLimit?: Maybe<Scalars['Int']['output']>;
|
|
13483
13714
|
minutesUsedThisMonth: Scalars['Int']['output'];
|
|
13484
13715
|
retentionDays: Scalars['Int']['output'];
|
|
13716
|
+
/** True when stages in SFU mode are recorded by the media server in this environment (they otherwise fall back to the host's browser). */
|
|
13717
|
+
serverRecordingAvailable: Scalars['Boolean']['output'];
|
|
13485
13718
|
};
|
|
13486
13719
|
export declare enum ComLiveStreamRecordingStatus {
|
|
13487
13720
|
Deleted = "DELETED",
|
|
@@ -14526,6 +14759,25 @@ export type ConnectHealthyBowlAccountingIntegrationInput = {
|
|
|
14526
14759
|
/** TALLY | ZOHO_BOOKS | QUICKBOOKS */
|
|
14527
14760
|
provider: Scalars['String']['input'];
|
|
14528
14761
|
};
|
|
14762
|
+
/** How the caller reaches a connection. */
|
|
14763
|
+
export declare enum ConnectionAccess {
|
|
14764
|
+
/** A workspace administrator who can see and manage the connection but not use it */
|
|
14765
|
+
Administrator = "ADMINISTRATOR",
|
|
14766
|
+
/** Shared with the caller (directly, or through a group or project) as an editor */
|
|
14767
|
+
Editor = "EDITOR",
|
|
14768
|
+
Owner = "OWNER",
|
|
14769
|
+
/** Shared with the caller (directly, or through a group or project) for use */
|
|
14770
|
+
Use = "USE",
|
|
14771
|
+
/** Not shared with the caller, but visible to everyone in the workspace */
|
|
14772
|
+
Workspace = "WORKSPACE"
|
|
14773
|
+
}
|
|
14774
|
+
/** Narrows getConnections to how the caller reaches a connection. */
|
|
14775
|
+
export declare enum ConnectionAccessFilter {
|
|
14776
|
+
/** Connections the caller owns */
|
|
14777
|
+
OwnedByMe = "OWNED_BY_ME",
|
|
14778
|
+
/** Connections someone else owns and shared with the caller, directly or through a group or project */
|
|
14779
|
+
SharedWithMe = "SHARED_WITH_ME"
|
|
14780
|
+
}
|
|
14529
14781
|
export declare enum ConnectionCredentialSource {
|
|
14530
14782
|
LegacyLocal = "LEGACY_LOCAL",
|
|
14531
14783
|
VaultManaged = "VAULT_MANAGED",
|
|
@@ -14541,6 +14793,8 @@ export declare enum ConnectionExpiryReason {
|
|
|
14541
14793
|
TokenExpiring = "TOKEN_EXPIRING"
|
|
14542
14794
|
}
|
|
14543
14795
|
export type ConnectionFilterInput = {
|
|
14796
|
+
/** Only connections the caller owns, or only those shared with them */
|
|
14797
|
+
access?: InputMaybe<ConnectionAccessFilter>;
|
|
14544
14798
|
context?: InputMaybe<ContextFilterInput>;
|
|
14545
14799
|
providerCategory?: InputMaybe<ProviderCategory>;
|
|
14546
14800
|
providerId?: InputMaybe<Scalars['ID']['input']>;
|
|
@@ -14559,6 +14813,36 @@ export declare enum ConnectionQuality {
|
|
|
14559
14813
|
Good = "GOOD",
|
|
14560
14814
|
Poor = "POOR"
|
|
14561
14815
|
}
|
|
14816
|
+
/** One grant of a connection to a person, a group or a project. */
|
|
14817
|
+
export type ConnectionShare = {
|
|
14818
|
+
__typename?: 'ConnectionShare';
|
|
14819
|
+
createdAt: Scalars['DateTime']['output'];
|
|
14820
|
+
createdBy: Scalars['String']['output'];
|
|
14821
|
+
/** User, group or project id */
|
|
14822
|
+
principalId: Scalars['String']['output'];
|
|
14823
|
+
principalType: ConnectionSharePrincipalType;
|
|
14824
|
+
role: ConnectionShareRole;
|
|
14825
|
+
};
|
|
14826
|
+
/** One grant in shareConnection. */
|
|
14827
|
+
export type ConnectionShareInput = {
|
|
14828
|
+
/** User, group or project id in the caller's workspace */
|
|
14829
|
+
principalId: Scalars['String']['input'];
|
|
14830
|
+
principalType: ConnectionSharePrincipalType;
|
|
14831
|
+
role?: InputMaybe<ConnectionShareRole>;
|
|
14832
|
+
};
|
|
14833
|
+
/** What a connection share is granted to. */
|
|
14834
|
+
export declare enum ConnectionSharePrincipalType {
|
|
14835
|
+
Group = "GROUP",
|
|
14836
|
+
Project = "PROJECT",
|
|
14837
|
+
User = "USER"
|
|
14838
|
+
}
|
|
14839
|
+
/** What a connection share allows. */
|
|
14840
|
+
export declare enum ConnectionShareRole {
|
|
14841
|
+
/** Also change it, re-authenticate it and change who it is shared with */
|
|
14842
|
+
Editor = "EDITOR",
|
|
14843
|
+
/** See the connection and run workflows the grantee owns with it */
|
|
14844
|
+
Use = "USE"
|
|
14845
|
+
}
|
|
14562
14846
|
export declare enum ConnectionStatus {
|
|
14563
14847
|
Active = "ACTIVE",
|
|
14564
14848
|
Error = "ERROR",
|
|
@@ -14639,6 +14923,16 @@ export type ConnectionTokenResult = {
|
|
|
14639
14923
|
/** Whether the token was refreshed during this request */
|
|
14640
14924
|
wasRefreshed: Scalars['Boolean']['output'];
|
|
14641
14925
|
};
|
|
14926
|
+
/** Who can reach a connection beyond its owner (BOFF-9726). */
|
|
14927
|
+
export declare enum ConnectionVisibility {
|
|
14928
|
+
/**
|
|
14929
|
+
* Only the owner, the people, groups and projects it is shared with, and workspace administrators,
|
|
14930
|
+
* who can see and manage it but not use it
|
|
14931
|
+
*/
|
|
14932
|
+
Restricted = "RESTRICTED",
|
|
14933
|
+
/** Everyone in the workspace whose role allows it: how every connection behaved before sharing */
|
|
14934
|
+
Workspace = "WORKSPACE"
|
|
14935
|
+
}
|
|
14642
14936
|
/** A bookable appointment window (BOFF-6030). */
|
|
14643
14937
|
export type ConsultSlot = {
|
|
14644
14938
|
__typename?: 'ConsultSlot';
|
|
@@ -15360,6 +15654,26 @@ export type CooCollaborationConnection = {
|
|
|
15360
15654
|
items: Array<CooCollaboration>;
|
|
15361
15655
|
pageInfo: CooPageInfo;
|
|
15362
15656
|
};
|
|
15657
|
+
/** A collaboration brief drafted for human review. It is not saved; create it with cooCreateCollaboration. */
|
|
15658
|
+
export type CooCollaborationDraft = {
|
|
15659
|
+
__typename?: 'CooCollaborationDraft';
|
|
15660
|
+
brandId: Scalars['ID']['output'];
|
|
15661
|
+
brief: Scalars['String']['output'];
|
|
15662
|
+
creatorId: Scalars['ID']['output'];
|
|
15663
|
+
role: CooCollaboratorRole;
|
|
15664
|
+
status: CooCollaborationStatus;
|
|
15665
|
+
title: Scalars['String']['output'];
|
|
15666
|
+
};
|
|
15667
|
+
export type CooCollaborationMatchResult = {
|
|
15668
|
+
__typename?: 'CooCollaborationMatchResult';
|
|
15669
|
+
brandId: Scalars['ID']['output'];
|
|
15670
|
+
/** The brand's published style items the brand profile is built from. */
|
|
15671
|
+
brandStyleItemIds: Array<Scalars['ID']['output']>;
|
|
15672
|
+
/** Creators skipped because they already have an open collaboration with the brand. */
|
|
15673
|
+
excludedCreatorIds: Array<Scalars['ID']['output']>;
|
|
15674
|
+
matches: Array<CooCreatorMatch>;
|
|
15675
|
+
provenance: CooDecisionProvenance;
|
|
15676
|
+
};
|
|
15363
15677
|
/** Everything the browser needs to open the payment provider's checkout for a collaboration fee. */
|
|
15364
15678
|
export type CooCollaborationPaymentCheckout = {
|
|
15365
15679
|
__typename?: 'CooCollaborationPaymentCheckout';
|
|
@@ -15448,6 +15762,19 @@ export type CooCollectionConnection = {
|
|
|
15448
15762
|
items: Array<CooCollection>;
|
|
15449
15763
|
pageInfo: CooPageInfo;
|
|
15450
15764
|
};
|
|
15765
|
+
/** An advisory proposal. Nothing is written; apply it with cooUpdateCollection / cooPublishCollection. */
|
|
15766
|
+
export type CooCollectionCuration = {
|
|
15767
|
+
__typename?: 'CooCollectionCuration';
|
|
15768
|
+
/** Number of proposed pieces that still have at least one publish blocker. */
|
|
15769
|
+
blockedCount: Scalars['Int']['output'];
|
|
15770
|
+
brandId: Scalars['ID']['output'];
|
|
15771
|
+
outliers: Array<CooCurationItem>;
|
|
15772
|
+
proposed: Array<CooCurationItem>;
|
|
15773
|
+
provenance: CooDecisionProvenance;
|
|
15774
|
+
season: CooSeason;
|
|
15775
|
+
storyMaterials: Array<Scalars['String']['output']>;
|
|
15776
|
+
storyPalette: Array<Scalars['String']['output']>;
|
|
15777
|
+
};
|
|
15451
15778
|
export declare enum CooCollectionStatus {
|
|
15452
15779
|
Archived = "ARCHIVED",
|
|
15453
15780
|
Draft = "DRAFT",
|
|
@@ -15590,6 +15917,21 @@ export type CooCreatorEarningsSummary = {
|
|
|
15590
15917
|
/** Commissions recorded locally but not yet confirmed on the billing ledger. */
|
|
15591
15918
|
unsyncedCount: Scalars['Int']['output'];
|
|
15592
15919
|
};
|
|
15920
|
+
export type CooCreatorMatch = {
|
|
15921
|
+
__typename?: 'CooCreatorMatch';
|
|
15922
|
+
creatorId: Scalars['ID']['output'];
|
|
15923
|
+
draft: CooCollaborationDraft;
|
|
15924
|
+
/** The creator's published looks the match is built from. */
|
|
15925
|
+
evidenceLookIds: Array<Scalars['ID']['output']>;
|
|
15926
|
+
/** The brand's style items those looks already feature, if any. */
|
|
15927
|
+
featuredBrandItemIds: Array<Scalars['ID']['output']>;
|
|
15928
|
+
/** 0..1 aesthetic fit between the brand's published catalog and the creator's published looks. */
|
|
15929
|
+
fitScore: Scalars['Float']['output'];
|
|
15930
|
+
reasons: Array<CooDecisionReason>;
|
|
15931
|
+
sharedCategories: Array<CooStyleCategory>;
|
|
15932
|
+
sharedColours: Array<Scalars['String']['output']>;
|
|
15933
|
+
sharedMaterials: Array<Scalars['String']['output']>;
|
|
15934
|
+
};
|
|
15593
15935
|
export type CooCreatorPayout = {
|
|
15594
15936
|
__typename?: 'CooCreatorPayout';
|
|
15595
15937
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -15598,6 +15940,41 @@ export type CooCreatorPayout = {
|
|
|
15598
15940
|
requestedAmount: Scalars['Float']['output'];
|
|
15599
15941
|
status: Scalars['String']['output'];
|
|
15600
15942
|
};
|
|
15943
|
+
export type CooCurationItem = {
|
|
15944
|
+
__typename?: 'CooCurationItem';
|
|
15945
|
+
blockers: Array<CooPublishBlocker>;
|
|
15946
|
+
/** 0..1 — how well the piece fits the story's palette, materials and season. */
|
|
15947
|
+
coherence: Scalars['Float']['output'];
|
|
15948
|
+
/** Suggested position in the drop, starting at 0. Null for outliers. */
|
|
15949
|
+
position?: Maybe<Scalars['Int']['output']>;
|
|
15950
|
+
reasons: Array<CooDecisionReason>;
|
|
15951
|
+
styleItem: CooStyleItem;
|
|
15952
|
+
styleItemId: Scalars['ID']['output'];
|
|
15953
|
+
/** For an outlier, the season it appears to belong to instead. */
|
|
15954
|
+
suggestedSeason?: Maybe<CooSeason>;
|
|
15955
|
+
};
|
|
15956
|
+
/** Where a decision came from. Every decision response carries one. */
|
|
15957
|
+
export type CooDecisionProvenance = {
|
|
15958
|
+
__typename?: 'CooDecisionProvenance';
|
|
15959
|
+
/** Number of real rows the engine considered. */
|
|
15960
|
+
candidateCount: Scalars['Int']['output'];
|
|
15961
|
+
/** Decision key, e.g. `coolandlovely.suggest_outfit`. */
|
|
15962
|
+
decision: Scalars['String']['output'];
|
|
15963
|
+
/** Unique id of this invocation; also the id of the emitted decision event. */
|
|
15964
|
+
decisionId: Scalars['ID']['output'];
|
|
15965
|
+
/** Engine that produced the decision, e.g. `coolandlovely-rules-v1`. */
|
|
15966
|
+
engine: Scalars['String']['output'];
|
|
15967
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
15968
|
+
/** True only when a language model contributed to the decision. */
|
|
15969
|
+
modelBacked: Scalars['Boolean']['output'];
|
|
15970
|
+
};
|
|
15971
|
+
/** One reason behind a recommendation, with the entity ids that support it. */
|
|
15972
|
+
export type CooDecisionReason = {
|
|
15973
|
+
__typename?: 'CooDecisionReason';
|
|
15974
|
+
code: Scalars['String']['output'];
|
|
15975
|
+
evidenceIds: Array<Scalars['ID']['output']>;
|
|
15976
|
+
message: Scalars['String']['output'];
|
|
15977
|
+
};
|
|
15601
15978
|
export type CooDeclineReturnRequestInput = {
|
|
15602
15979
|
brandId: Scalars['ID']['input'];
|
|
15603
15980
|
/** Why the return is declined (3 to 1000 characters). Shown to the shopper. */
|
|
@@ -15889,11 +16266,72 @@ export declare enum CooOrderStatus {
|
|
|
15889
16266
|
/** Paid, and every brand in the order refunded its pieces. */
|
|
15890
16267
|
Refunded = "REFUNDED"
|
|
15891
16268
|
}
|
|
16269
|
+
/** A catalog piece that would fill a slot the shopper's wardrobe cannot. */
|
|
16270
|
+
export type CooOutfitGapPiece = {
|
|
16271
|
+
__typename?: 'CooOutfitGapPiece';
|
|
16272
|
+
reasons: Array<CooDecisionReason>;
|
|
16273
|
+
score: Scalars['Float']['output'];
|
|
16274
|
+
slot: CooOutfitSlot;
|
|
16275
|
+
styleItem: CooStyleItem;
|
|
16276
|
+
styleItemId: Scalars['ID']['output'];
|
|
16277
|
+
};
|
|
16278
|
+
export type CooOutfitPiece = {
|
|
16279
|
+
__typename?: 'CooOutfitPiece';
|
|
16280
|
+
reasons: Array<CooDecisionReason>;
|
|
16281
|
+
score: Scalars['Float']['output'];
|
|
16282
|
+
slot: CooOutfitSlot;
|
|
16283
|
+
wardrobeItem: CooWardrobeItem;
|
|
16284
|
+
wardrobeItemId: Scalars['ID']['output'];
|
|
16285
|
+
};
|
|
16286
|
+
/** A position in a composed outfit. */
|
|
16287
|
+
export declare enum CooOutfitSlot {
|
|
16288
|
+
Accessory = "ACCESSORY",
|
|
16289
|
+
Bag = "BAG",
|
|
16290
|
+
Bottom = "BOTTOM",
|
|
16291
|
+
Dress = "DRESS",
|
|
16292
|
+
Footwear = "FOOTWEAR",
|
|
16293
|
+
Outerwear = "OUTERWEAR",
|
|
16294
|
+
Top = "TOP"
|
|
16295
|
+
}
|
|
16296
|
+
/** A draft outfit. It is never saved or published by the engine. */
|
|
16297
|
+
export type CooOutfitSuggestion = {
|
|
16298
|
+
__typename?: 'CooOutfitSuggestion';
|
|
16299
|
+
/** 0..1 — share of required slots filled from the wardrobe, weighted by score. */
|
|
16300
|
+
confidence: Scalars['Float']['output'];
|
|
16301
|
+
date?: Maybe<Scalars['DateTime']['output']>;
|
|
16302
|
+
draftTitle: Scalars['String']['output'];
|
|
16303
|
+
/** Wardrobe pieces left out because their size does not match the style profile's size record for that garment type. */
|
|
16304
|
+
excludedForSizeIds: Array<Scalars['ID']['output']>;
|
|
16305
|
+
gapPieces: Array<CooOutfitGapPiece>;
|
|
16306
|
+
/** Slots the outfit needs that neither the wardrobe nor the catalog could fill. */
|
|
16307
|
+
missingSlots: Array<CooOutfitSlot>;
|
|
16308
|
+
occasion: CooLookOccasion;
|
|
16309
|
+
pieces: Array<CooOutfitPiece>;
|
|
16310
|
+
provenance: CooDecisionProvenance;
|
|
16311
|
+
summary: Scalars['String']['output'];
|
|
16312
|
+
/** Published looks whose item pairings supported this outfit. */
|
|
16313
|
+
supportingLookIds: Array<Scalars['ID']['output']>;
|
|
16314
|
+
weatherHint?: Maybe<CooWeatherHint>;
|
|
16315
|
+
};
|
|
15892
16316
|
export type CooPageInfo = {
|
|
15893
16317
|
__typename?: 'CooPageInfo';
|
|
15894
16318
|
cursor?: Maybe<Scalars['String']['output']>;
|
|
15895
16319
|
hasMore: Scalars['Boolean']['output'];
|
|
15896
16320
|
};
|
|
16321
|
+
export type CooPublishBlocker = {
|
|
16322
|
+
__typename?: 'CooPublishBlocker';
|
|
16323
|
+
code: CooPublishBlockerCode;
|
|
16324
|
+
message: Scalars['String']['output'];
|
|
16325
|
+
};
|
|
16326
|
+
export declare enum CooPublishBlockerCode {
|
|
16327
|
+
MissingPrimaryImage = "MISSING_PRIMARY_IMAGE",
|
|
16328
|
+
NoColourways = "NO_COLOURWAYS",
|
|
16329
|
+
NoMaterials = "NO_MATERIALS",
|
|
16330
|
+
NoSizes = "NO_SIZES",
|
|
16331
|
+
NoSku = "NO_SKU",
|
|
16332
|
+
PriceOutlier = "PRICE_OUTLIER",
|
|
16333
|
+
ZeroPrice = "ZERO_PRICE"
|
|
16334
|
+
}
|
|
15897
16335
|
export type CooRecordLegalAcceptanceInput = {
|
|
15898
16336
|
checkpointType: CooLegalCheckpointType;
|
|
15899
16337
|
documentVersion: Scalars['String']['input'];
|
|
@@ -16164,6 +16602,13 @@ export type CooStyleProfileConnection = {
|
|
|
16164
16602
|
items: Array<CooStyleProfile>;
|
|
16165
16603
|
pageInfo: CooPageInfo;
|
|
16166
16604
|
};
|
|
16605
|
+
export type CooSuggestOutfitInput = {
|
|
16606
|
+
date?: InputMaybe<Scalars['DateTime']['input']>;
|
|
16607
|
+
/** Suggest catalog pieces for slots the wardrobe cannot fill. */
|
|
16608
|
+
includeCatalogGapPieces?: InputMaybe<Scalars['Boolean']['input']>;
|
|
16609
|
+
occasion: CooLookOccasion;
|
|
16610
|
+
weatherHint?: InputMaybe<CooWeatherHint>;
|
|
16611
|
+
};
|
|
16167
16612
|
export type CooUpdateBrandInput = {
|
|
16168
16613
|
aesthetics?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
16169
16614
|
bio?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -16268,6 +16713,41 @@ export declare enum CooVisibility {
|
|
|
16268
16713
|
Private = "PRIVATE",
|
|
16269
16714
|
Public = "PUBLIC"
|
|
16270
16715
|
}
|
|
16716
|
+
export type CooWardrobeFinding = {
|
|
16717
|
+
__typename?: 'CooWardrobeFinding';
|
|
16718
|
+
category?: Maybe<CooStyleCategory>;
|
|
16719
|
+
colour?: Maybe<Scalars['String']['output']>;
|
|
16720
|
+
detail: Scalars['String']['output'];
|
|
16721
|
+
kind: CooWardrobeFindingKind;
|
|
16722
|
+
missingSlots: Array<CooOutfitSlot>;
|
|
16723
|
+
occasion?: Maybe<CooLookOccasion>;
|
|
16724
|
+
/** 0..1 — findings are returned highest severity first. */
|
|
16725
|
+
severity: Scalars['Float']['output'];
|
|
16726
|
+
/** Active catalog pieces that would close this gap. */
|
|
16727
|
+
suggestedStyleItemIds: Array<Scalars['ID']['output']>;
|
|
16728
|
+
title: Scalars['String']['output'];
|
|
16729
|
+
wardrobeItemIds: Array<Scalars['ID']['output']>;
|
|
16730
|
+
};
|
|
16731
|
+
export declare enum CooWardrobeFindingKind {
|
|
16732
|
+
/** A core garment category has no owned piece at all. */
|
|
16733
|
+
CategoryGap = "CATEGORY_GAP",
|
|
16734
|
+
/** A piece whose cost per wear is far above the rest of the wardrobe. */
|
|
16735
|
+
CostPerWearOutlier = "COST_PER_WEAR_OUTLIER",
|
|
16736
|
+
/** A piece that was worn before but not for a long time. */
|
|
16737
|
+
DormantPiece = "DORMANT_PIECE",
|
|
16738
|
+
/** A piece that has been owned for a while and never logged as worn. */
|
|
16739
|
+
NeverWorn = "NEVER_WORN",
|
|
16740
|
+
/** The wardrobe cannot compose a complete outfit for an occasion. */
|
|
16741
|
+
OccasionGap = "OCCASION_GAP",
|
|
16742
|
+
/** A colour from the style profile palette is missing from the wardrobe. */
|
|
16743
|
+
PaletteGap = "PALETTE_GAP"
|
|
16744
|
+
}
|
|
16745
|
+
export type CooWardrobeGapAnalysis = {
|
|
16746
|
+
__typename?: 'CooWardrobeGapAnalysis';
|
|
16747
|
+
findings: Array<CooWardrobeFinding>;
|
|
16748
|
+
provenance: CooDecisionProvenance;
|
|
16749
|
+
wardrobeItemCount: Scalars['Int']['output'];
|
|
16750
|
+
};
|
|
16271
16751
|
export type CooWardrobeItem = {
|
|
16272
16752
|
__typename?: 'CooWardrobeItem';
|
|
16273
16753
|
brandName?: Maybe<Scalars['String']['output']>;
|
|
@@ -16305,6 +16785,14 @@ export declare enum CooWardrobeSource {
|
|
|
16305
16785
|
PurchasedOnPlatform = "PURCHASED_ON_PLATFORM",
|
|
16306
16786
|
Wishlist = "WISHLIST"
|
|
16307
16787
|
}
|
|
16788
|
+
/** Weather the shopper expects for the outfit. Drives whether outerwear is required (COLD, RAINY) or left out (HOT). */
|
|
16789
|
+
export declare enum CooWeatherHint {
|
|
16790
|
+
Cold = "COLD",
|
|
16791
|
+
Hot = "HOT",
|
|
16792
|
+
Mild = "MILD",
|
|
16793
|
+
Rainy = "RAINY",
|
|
16794
|
+
Warm = "WARM"
|
|
16795
|
+
}
|
|
16308
16796
|
export declare enum CosAccessLevel {
|
|
16309
16797
|
Embargoed = "EMBARGOED",
|
|
16310
16798
|
Public = "PUBLIC",
|
|
@@ -16366,6 +16854,15 @@ export type CosCollection = {
|
|
|
16366
16854
|
updatedAt: Scalars['DateTime']['output'];
|
|
16367
16855
|
workspaceId: Scalars['ID']['output'];
|
|
16368
16856
|
};
|
|
16857
|
+
/** Finish a step with its telemetry (BOFF-3781). `status` must be SUCCEEDED, FAILED or CANCELLED. `outputs` may carry rowsIn / rowsOut / anomaliesFlagged / warnings, which cosAiTriageRun reads when the run has no metrics of its own. */
|
|
16858
|
+
export type CosCompleteRunStepInput = {
|
|
16859
|
+
errorMessage?: InputMaybe<Scalars['String']['input']>;
|
|
16860
|
+
logsRef?: InputMaybe<Scalars['String']['input']>;
|
|
16861
|
+
outputs?: InputMaybe<Scalars['JSON']['input']>;
|
|
16862
|
+
/** Datasets this step wrote (BOFF-10383), at most 100. Each id must be a live dataset in this workspace that the caller can read, otherwise the call fails with NOT_FOUND and nothing is changed. The ids are stored as `outputs.producedDatasetIds` (so `outputs`, when sent, must be a JSON object), the datasets are marked `lineageCaptured`, and search lineage then shows this run as PRODUCED_BY. */
|
|
16863
|
+
producedDatasetIds?: InputMaybe<Array<Scalars['ID']['input']>>;
|
|
16864
|
+
status: CosRunStatus;
|
|
16865
|
+
};
|
|
16369
16866
|
export type CosCreateCollectionInput = {
|
|
16370
16867
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
16371
16868
|
isPublic?: InputMaybe<Scalars['Boolean']['input']>;
|
|
@@ -16639,6 +17136,8 @@ export type CosPipelineStep = {
|
|
|
16639
17136
|
name: Scalars['String']['output'];
|
|
16640
17137
|
outputs?: Maybe<Scalars['JSON']['output']>;
|
|
16641
17138
|
position: Scalars['Int']['output'];
|
|
17139
|
+
/** Datasets this step recorded as produced (BOFF-10383), read from `outputs.producedDatasetIds`. Search lineage shows the step's run as PRODUCED_BY on each of them. Empty when nothing was recorded. */
|
|
17140
|
+
producedDatasetIds: Array<Scalars['ID']['output']>;
|
|
16642
17141
|
runId: Scalars['ID']['output'];
|
|
16643
17142
|
startedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
16644
17143
|
status: CosRunStatus;
|
|
@@ -16670,11 +17169,37 @@ export type CosRelease = {
|
|
|
16670
17169
|
workspaceId: Scalars['ID']['output'];
|
|
16671
17170
|
zenodoMirrors: Array<CosZenodoMirror>;
|
|
16672
17171
|
};
|
|
17172
|
+
export type CosReleaseAuthorSuggestion = {
|
|
17173
|
+
__typename?: 'CosReleaseAuthorSuggestion';
|
|
17174
|
+
actorId: Scalars['ID']['output'];
|
|
17175
|
+
contributions: Scalars['Int']['output'];
|
|
17176
|
+
roles: Array<Scalars['String']['output']>;
|
|
17177
|
+
};
|
|
16673
17178
|
export type CosReleaseConnection = {
|
|
16674
17179
|
__typename?: 'CosReleaseConnection';
|
|
16675
17180
|
items: Array<CosRelease>;
|
|
16676
17181
|
pageInfo: CosPageInfo;
|
|
16677
17182
|
};
|
|
17183
|
+
/** A drafted release. Create it with cosCreateRelease (title, abstract, version, authors, datasetIds, license); publishing remains a human action. */
|
|
17184
|
+
export type CosReleaseDraft = {
|
|
17185
|
+
__typename?: 'CosReleaseDraft';
|
|
17186
|
+
abstract: Scalars['String']['output'];
|
|
17187
|
+
agentRunId: Scalars['ID']['output'];
|
|
17188
|
+
analysisIds: Array<Scalars['ID']['output']>;
|
|
17189
|
+
authorSuggestions: Array<CosReleaseAuthorSuggestion>;
|
|
17190
|
+
authors: Array<Scalars['String']['output']>;
|
|
17191
|
+
datasetIds: Array<Scalars['ID']['output']>;
|
|
17192
|
+
engineVersion: Scalars['String']['output'];
|
|
17193
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
17194
|
+
license: Scalars['String']['output'];
|
|
17195
|
+
licenseRationale: Scalars['String']['output'];
|
|
17196
|
+
method: Scalars['String']['output'];
|
|
17197
|
+
notebookId: Scalars['ID']['output'];
|
|
17198
|
+
notes: Array<Scalars['String']['output']>;
|
|
17199
|
+
title: Scalars['String']['output'];
|
|
17200
|
+
version: Scalars['String']['output'];
|
|
17201
|
+
warnings: Array<Scalars['String']['output']>;
|
|
17202
|
+
};
|
|
16678
17203
|
export declare enum CosReleaseStatus {
|
|
16679
17204
|
Draft = "DRAFT",
|
|
16680
17205
|
Published = "PUBLISHED",
|
|
@@ -16704,6 +17229,50 @@ export declare enum CosRunStatus {
|
|
|
16704
17229
|
Running = "RUNNING",
|
|
16705
17230
|
Succeeded = "SUCCEEDED"
|
|
16706
17231
|
}
|
|
17232
|
+
/** Run-level telemetry (BOFF-3781). Counts are whole numbers >= 0, sent as Float so survey-scale row counts above 2^31 fit. Only the fields sent are changed; the rest of `metrics` is kept. Read by cosAiTriageRun. */
|
|
17233
|
+
export type CosRunTelemetryInput = {
|
|
17234
|
+
anomaliesFlagged?: InputMaybe<Scalars['Float']['input']>;
|
|
17235
|
+
errorMessage?: InputMaybe<Scalars['String']['input']>;
|
|
17236
|
+
rowsIn?: InputMaybe<Scalars['Float']['input']>;
|
|
17237
|
+
rowsOut?: InputMaybe<Scalars['Float']['input']>;
|
|
17238
|
+
warnings?: InputMaybe<Scalars['Float']['input']>;
|
|
17239
|
+
};
|
|
17240
|
+
export type CosRunTriage = {
|
|
17241
|
+
__typename?: 'CosRunTriage';
|
|
17242
|
+
action: CosTriageAction;
|
|
17243
|
+
agentRunId: Scalars['ID']['output'];
|
|
17244
|
+
confidence: Scalars['Float']['output'];
|
|
17245
|
+
engineVersion: Scalars['String']['output'];
|
|
17246
|
+
evidence: Array<CosTriageEvidence>;
|
|
17247
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
17248
|
+
method: Scalars['String']['output'];
|
|
17249
|
+
metrics: CosRunTriageMetrics;
|
|
17250
|
+
proposedAction?: Maybe<CosTriageProposedAction>;
|
|
17251
|
+
rationale: Scalars['String']['output'];
|
|
17252
|
+
runId: Scalars['ID']['output'];
|
|
17253
|
+
signals: Array<CosTriageSignal>;
|
|
17254
|
+
suggestedParams?: Maybe<Scalars['JSON']['output']>;
|
|
17255
|
+
thresholds: CosRunTriageThresholds;
|
|
17256
|
+
};
|
|
17257
|
+
export type CosRunTriageMetrics = {
|
|
17258
|
+
__typename?: 'CosRunTriageMetrics';
|
|
17259
|
+
anomaliesFlagged?: Maybe<Scalars['Float']['output']>;
|
|
17260
|
+
anomalyRate?: Maybe<Scalars['Float']['output']>;
|
|
17261
|
+
/** Median anomaly rate of the pipeline's earlier successful runs. */
|
|
17262
|
+
baselineAnomalyRate?: Maybe<Scalars['Float']['output']>;
|
|
17263
|
+
rowLossRate?: Maybe<Scalars['Float']['output']>;
|
|
17264
|
+
rowsIn?: Maybe<Scalars['Float']['output']>;
|
|
17265
|
+
rowsOut?: Maybe<Scalars['Float']['output']>;
|
|
17266
|
+
warnings?: Maybe<Scalars['Float']['output']>;
|
|
17267
|
+
};
|
|
17268
|
+
export type CosRunTriageThresholds = {
|
|
17269
|
+
__typename?: 'CosRunTriageThresholds';
|
|
17270
|
+
maxWarnings: Scalars['Float']['output'];
|
|
17271
|
+
quarantineAnomalyRate: Scalars['Float']['output'];
|
|
17272
|
+
quarantineRowLossRate: Scalars['Float']['output'];
|
|
17273
|
+
reviewAnomalyRate: Scalars['Float']['output'];
|
|
17274
|
+
reviewRowLossRate: Scalars['Float']['output'];
|
|
17275
|
+
};
|
|
16707
17276
|
export type CosSchemaField = {
|
|
16708
17277
|
__typename?: 'CosSchemaField';
|
|
16709
17278
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -16719,6 +17288,155 @@ export type CosSchemaField = {
|
|
|
16719
17288
|
updatedAt: Scalars['DateTime']['output'];
|
|
16720
17289
|
workspaceId: Scalars['ID']['output'];
|
|
16721
17290
|
};
|
|
17291
|
+
export type CosSchemaFieldProposal = {
|
|
17292
|
+
__typename?: 'CosSchemaFieldProposal';
|
|
17293
|
+
/** Id of this run in the shared AI invocation ledger. */
|
|
17294
|
+
agentRunId: Scalars['ID']['output'];
|
|
17295
|
+
datasetId: Scalars['ID']['output'];
|
|
17296
|
+
engineVersion: Scalars['String']['output'];
|
|
17297
|
+
fields: Array<CosSchemaFieldSuggestion>;
|
|
17298
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
17299
|
+
method: Scalars['String']['output'];
|
|
17300
|
+
notes: Array<Scalars['String']['output']>;
|
|
17301
|
+
sampleOrigin: CosSchemaSampleOrigin;
|
|
17302
|
+
sampledRows: Scalars['Int']['output'];
|
|
17303
|
+
};
|
|
17304
|
+
/** One proposed schema field. Accept it with cosAddSchemaField (name, fieldType, unit, nullable, position, provenance = provenanceNote). */
|
|
17305
|
+
export type CosSchemaFieldSuggestion = {
|
|
17306
|
+
__typename?: 'CosSchemaFieldSuggestion';
|
|
17307
|
+
/** True when the dataset already has a schema field with this name; it is never overwritten, and any disagreement is listed in `conflicts`. */
|
|
17308
|
+
alreadyDefined: Scalars['Boolean']['output'];
|
|
17309
|
+
/** 0 to 1. Lower for small samples and for columns with no sampled values. */
|
|
17310
|
+
confidence: Scalars['Float']['output'];
|
|
17311
|
+
conflicts: Array<Scalars['String']['output']>;
|
|
17312
|
+
description?: Maybe<Scalars['String']['output']>;
|
|
17313
|
+
emptyValues: Scalars['Int']['output'];
|
|
17314
|
+
existingFieldId?: Maybe<Scalars['ID']['output']>;
|
|
17315
|
+
fieldType: CosFieldType;
|
|
17316
|
+
name: Scalars['String']['output'];
|
|
17317
|
+
nullable: Scalars['Boolean']['output'];
|
|
17318
|
+
position: Scalars['Int']['output'];
|
|
17319
|
+
/** Drafted provenance note: where the column came from and why it was typed so. */
|
|
17320
|
+
provenanceNote: Scalars['String']['output'];
|
|
17321
|
+
reasons: Array<Scalars['String']['output']>;
|
|
17322
|
+
sampledValues: Scalars['Int']['output'];
|
|
17323
|
+
unit?: Maybe<Scalars['String']['output']>;
|
|
17324
|
+
};
|
|
17325
|
+
/** A row sample to infer a schema from. `rows` is a JSON array of rows: arrays aligned with `columns`, or objects keyed by column name (then `columns` is optional and only fixes the order). At most 500 rows and 1,000 columns are analysed. */
|
|
17326
|
+
export type CosSchemaSampleInput = {
|
|
17327
|
+
columns?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
17328
|
+
rows: Scalars['JSON']['input'];
|
|
17329
|
+
};
|
|
17330
|
+
/** Where the rows the schema proposal was inferred from came from. */
|
|
17331
|
+
export declare enum CosSchemaSampleOrigin {
|
|
17332
|
+
/** `schemaSample` ({ columns, rows }) stored on the dataset's `context`. */
|
|
17333
|
+
DatasetContext = "DATASET_CONTEXT",
|
|
17334
|
+
/** The `sample` argument of the request. */
|
|
17335
|
+
Request = "REQUEST",
|
|
17336
|
+
/** Columns declared in the source connector config; no row values. */
|
|
17337
|
+
SourceConfig = "SOURCE_CONFIG"
|
|
17338
|
+
}
|
|
17339
|
+
export declare enum CosSearchEntityType {
|
|
17340
|
+
Collection = "COLLECTION",
|
|
17341
|
+
Dataset = "DATASET",
|
|
17342
|
+
Notebook = "NOTEBOOK",
|
|
17343
|
+
Release = "RELEASE"
|
|
17344
|
+
}
|
|
17345
|
+
/** One piece of evidence explaining why a hit matched. */
|
|
17346
|
+
export type CosSearchEvidence = {
|
|
17347
|
+
__typename?: 'CosSearchEvidence';
|
|
17348
|
+
/** Id of the entity the evidence comes from (schema field, source, release, ...). */
|
|
17349
|
+
entityId?: Maybe<Scalars['ID']['output']>;
|
|
17350
|
+
kind: CosSearchEvidenceKind;
|
|
17351
|
+
/** Short label for that entity, e.g. the schema field name. */
|
|
17352
|
+
label?: Maybe<Scalars['String']['output']>;
|
|
17353
|
+
/** The matched text (truncated), e.g. the provenance note. */
|
|
17354
|
+
text: Scalars['String']['output'];
|
|
17355
|
+
};
|
|
17356
|
+
export declare enum CosSearchEvidenceKind {
|
|
17357
|
+
/** An analysis title or method run against this dataset matched. */
|
|
17358
|
+
AnalysisMethod = "ANALYSIS_METHOD",
|
|
17359
|
+
/** The collection (mission, survey, project) matched. */
|
|
17360
|
+
Collection = "COLLECTION",
|
|
17361
|
+
/** The dataset's coverage metadata matched a term. */
|
|
17362
|
+
Coverage = "COVERAGE",
|
|
17363
|
+
/** The dataset's coverage years overlap the window named in the query. */
|
|
17364
|
+
CoverageWindow = "COVERAGE_WINDOW",
|
|
17365
|
+
/** The dataset's own name, description, tags or format matched. */
|
|
17366
|
+
DatasetText = "DATASET_TEXT",
|
|
17367
|
+
/** A notebook title or description matched. */
|
|
17368
|
+
Notebook = "NOTEBOOK",
|
|
17369
|
+
/** A release title or abstract matched. */
|
|
17370
|
+
ReleaseAbstract = "RELEASE_ABSTRACT",
|
|
17371
|
+
/** A schema field's name, unit or description matched. */
|
|
17372
|
+
SchemaField = "SCHEMA_FIELD",
|
|
17373
|
+
/** A schema field's provenance note matched. */
|
|
17374
|
+
SchemaProvenance = "SCHEMA_PROVENANCE",
|
|
17375
|
+
/** The upstream source (instrument, telescope, archive) matched. */
|
|
17376
|
+
Source = "SOURCE"
|
|
17377
|
+
}
|
|
17378
|
+
export type CosSearchHit = {
|
|
17379
|
+
__typename?: 'CosSearchHit';
|
|
17380
|
+
collection?: Maybe<CosCollection>;
|
|
17381
|
+
dataset?: Maybe<CosDataset>;
|
|
17382
|
+
entityType: CosSearchEntityType;
|
|
17383
|
+
evidence: Array<CosSearchEvidence>;
|
|
17384
|
+
id: Scalars['ID']['output'];
|
|
17385
|
+
/** Lineage chain for DATASET hits (empty for other entity types or when includeLineage is false). */
|
|
17386
|
+
lineage: Array<CosSearchLineageNode>;
|
|
17387
|
+
notebook?: Maybe<CosNotebook>;
|
|
17388
|
+
release?: Maybe<CosRelease>;
|
|
17389
|
+
/** Relative relevance; only meaningful for ordering hits of one response. */
|
|
17390
|
+
score: Scalars['Float']['output'];
|
|
17391
|
+
snippet?: Maybe<Scalars['String']['output']>;
|
|
17392
|
+
title: Scalars['String']['output'];
|
|
17393
|
+
};
|
|
17394
|
+
export declare enum CosSearchLineageKind {
|
|
17395
|
+
Analysis = "ANALYSIS",
|
|
17396
|
+
PipelineRun = "PIPELINE_RUN",
|
|
17397
|
+
PipelineStep = "PIPELINE_STEP",
|
|
17398
|
+
Release = "RELEASE",
|
|
17399
|
+
Source = "SOURCE"
|
|
17400
|
+
}
|
|
17401
|
+
/** One node of a dataset's lineage. `relation` describes how the node relates to the dataset: INGESTED_FROM (source), PRODUCED_BY (a run whose step outputs reference the dataset), PROCESSED_BY (a run that took the dataset as input), STEP_OF (a step of the run named by parentId), ANALYZED_BY, PUBLISHED_IN. */
|
|
17402
|
+
export type CosSearchLineageNode = {
|
|
17403
|
+
__typename?: 'CosSearchLineageNode';
|
|
17404
|
+
detail?: Maybe<Scalars['String']['output']>;
|
|
17405
|
+
id: Scalars['ID']['output'];
|
|
17406
|
+
kind: CosSearchLineageKind;
|
|
17407
|
+
label: Scalars['String']['output'];
|
|
17408
|
+
occurredAt?: Maybe<Scalars['DateTime']['output']>;
|
|
17409
|
+
parentId?: Maybe<Scalars['ID']['output']>;
|
|
17410
|
+
relation: Scalars['String']['output'];
|
|
17411
|
+
status?: Maybe<Scalars['String']['output']>;
|
|
17412
|
+
};
|
|
17413
|
+
export type CosSearchResults = {
|
|
17414
|
+
__typename?: 'CosSearchResults';
|
|
17415
|
+
/** Domain aliases added to the search (e.g. m31 -> andromeda). */
|
|
17416
|
+
expandedTerms: Array<Scalars['String']['output']>;
|
|
17417
|
+
hits: Array<CosSearchHit>;
|
|
17418
|
+
/** Content terms taken from the query after removing request phrasing. */
|
|
17419
|
+
interpretedTerms: Array<Scalars['String']['output']>;
|
|
17420
|
+
query: Scalars['String']['output'];
|
|
17421
|
+
/** Observation window extracted from the query, if any. */
|
|
17422
|
+
timeWindow?: Maybe<CosSearchTimeWindow>;
|
|
17423
|
+
total: Scalars['Int']['output'];
|
|
17424
|
+
};
|
|
17425
|
+
export type CosSearchTimeWindow = {
|
|
17426
|
+
__typename?: 'CosSearchTimeWindow';
|
|
17427
|
+
fromYear: Scalars['Int']['output'];
|
|
17428
|
+
toYear: Scalars['Int']['output'];
|
|
17429
|
+
};
|
|
17430
|
+
export type CosSemanticSearchInput = {
|
|
17431
|
+
/** Restrict to these entity types (default: all). */
|
|
17432
|
+
entityTypes?: InputMaybe<Array<CosSearchEntityType>>;
|
|
17433
|
+
/** Attach lineage to DATASET hits (default true). */
|
|
17434
|
+
includeLineage?: InputMaybe<Scalars['Boolean']['input']>;
|
|
17435
|
+
/** Maximum hits returned (1-50, default 20). */
|
|
17436
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
17437
|
+
/** Plain-language question, e.g. 'calibrated flux columns covering M31 between 2019 and 2021'. Input beyond 500 characters is ignored. */
|
|
17438
|
+
query: Scalars['String']['input'];
|
|
17439
|
+
};
|
|
16722
17440
|
export type CosSource = {
|
|
16723
17441
|
__typename?: 'CosSource';
|
|
16724
17442
|
config?: Maybe<Scalars['JSON']['output']>;
|
|
@@ -16775,6 +17493,48 @@ export declare enum CosStepKind {
|
|
|
16775
17493
|
Transform = "TRANSFORM",
|
|
16776
17494
|
ZonalStats = "ZONAL_STATS"
|
|
16777
17495
|
}
|
|
17496
|
+
export declare enum CosTriageAction {
|
|
17497
|
+
FlagSourceDegraded = "FLAG_SOURCE_DEGRADED",
|
|
17498
|
+
/** The run recorded no telemetry, so there is nothing to judge it by. */
|
|
17499
|
+
InsufficientTelemetry = "INSUFFICIENT_TELEMETRY",
|
|
17500
|
+
Promote = "PROMOTE",
|
|
17501
|
+
QuarantineDataset = "QUARANTINE_DATASET",
|
|
17502
|
+
RerunWithParams = "RERUN_WITH_PARAMS"
|
|
17503
|
+
}
|
|
17504
|
+
/** A piece of telemetry the recommendation read, with the id of the run, step, source or pipeline it came from. */
|
|
17505
|
+
export type CosTriageEvidence = {
|
|
17506
|
+
__typename?: 'CosTriageEvidence';
|
|
17507
|
+
field: Scalars['String']['output'];
|
|
17508
|
+
kind: CosTriageEvidenceKind;
|
|
17509
|
+
refId: Scalars['ID']['output'];
|
|
17510
|
+
value: Scalars['String']['output'];
|
|
17511
|
+
};
|
|
17512
|
+
export declare enum CosTriageEvidenceKind {
|
|
17513
|
+
Baseline = "BASELINE",
|
|
17514
|
+
Run = "RUN",
|
|
17515
|
+
RunMetric = "RUN_METRIC",
|
|
17516
|
+
Source = "SOURCE",
|
|
17517
|
+
Step = "STEP"
|
|
17518
|
+
}
|
|
17519
|
+
/** The existing mutation a person would run to apply the recommendation. Triage never runs it. */
|
|
17520
|
+
export type CosTriageProposedAction = {
|
|
17521
|
+
__typename?: 'CosTriageProposedAction';
|
|
17522
|
+
arguments: Scalars['JSON']['output'];
|
|
17523
|
+
description: Scalars['String']['output'];
|
|
17524
|
+
mutation: Scalars['String']['output'];
|
|
17525
|
+
targetId: Scalars['ID']['output'];
|
|
17526
|
+
};
|
|
17527
|
+
export type CosTriageSignal = {
|
|
17528
|
+
__typename?: 'CosTriageSignal';
|
|
17529
|
+
code: Scalars['String']['output'];
|
|
17530
|
+
message: Scalars['String']['output'];
|
|
17531
|
+
severity: CosTriageSignalSeverity;
|
|
17532
|
+
};
|
|
17533
|
+
export declare enum CosTriageSignalSeverity {
|
|
17534
|
+
Critical = "CRITICAL",
|
|
17535
|
+
Info = "INFO",
|
|
17536
|
+
Warning = "WARNING"
|
|
17537
|
+
}
|
|
16778
17538
|
export type CosUpdateCollectionInput = {
|
|
16779
17539
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
16780
17540
|
isPublic?: InputMaybe<Scalars['Boolean']['input']>;
|
|
@@ -17654,6 +18414,11 @@ export type CreateConnectionInput = {
|
|
|
17654
18414
|
name: Scalars['String']['input'];
|
|
17655
18415
|
providerId: Scalars['ID']['input'];
|
|
17656
18416
|
vaultId?: InputMaybe<Scalars['ID']['input']>;
|
|
18417
|
+
/**
|
|
18418
|
+
* Who can reach the new connection. Defaults to WORKSPACE; RESTRICTED keeps it to its owner until
|
|
18419
|
+
* it is shared.
|
|
18420
|
+
*/
|
|
18421
|
+
visibility?: InputMaybe<ConnectionVisibility>;
|
|
17657
18422
|
};
|
|
17658
18423
|
export type CreateConsultationInput = {
|
|
17659
18424
|
consultantId: Scalars['String']['input'];
|
|
@@ -20063,12 +20828,24 @@ export type CreateRoleInput = {
|
|
|
20063
20828
|
name: Scalars['String']['input'];
|
|
20064
20829
|
parentId?: InputMaybe<Scalars['ID']['input']>;
|
|
20065
20830
|
priority?: InputMaybe<Scalars['Int']['input']>;
|
|
20066
|
-
/**
|
|
20831
|
+
/**
|
|
20832
|
+
* Product this role belongs to (PlatformProduct.slug). Product shells must pass
|
|
20833
|
+
* their product slug when creating custom roles. Omit/null is reserved for
|
|
20834
|
+
* cross-product platform roles created from the admin app.
|
|
20835
|
+
*/
|
|
20067
20836
|
productSlug?: InputMaybe<Scalars['String']['input']>;
|
|
20068
20837
|
scopeId: Scalars['String']['input'];
|
|
20069
20838
|
scopeType?: InputMaybe<Scalars['String']['input']>;
|
|
20070
20839
|
};
|
|
20071
|
-
/**
|
|
20840
|
+
/**
|
|
20841
|
+
* Input for creating a role permission override.
|
|
20842
|
+
*
|
|
20843
|
+
* The override's scope is inherited from the role's own scope (role.scopeId);
|
|
20844
|
+
* clients no longer pass scopeId. This prevents creating cross-scope overrides
|
|
20845
|
+
* where the override and the role live in different workspaces.
|
|
20846
|
+
*
|
|
20847
|
+
* Overrides cannot be created on system templates (role.scopeId='system').
|
|
20848
|
+
*/
|
|
20072
20849
|
export type CreateRolePermissionOverrideInput = {
|
|
20073
20850
|
action: Scalars['String']['input'];
|
|
20074
20851
|
expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
@@ -21235,10 +22012,14 @@ export type CrewCandidateMatch = {
|
|
|
21235
22012
|
candidateId: Scalars['ID']['output'];
|
|
21236
22013
|
experienceScore: Scalars['Float']['output'];
|
|
21237
22014
|
jobPostingId: Scalars['ID']['output'];
|
|
22015
|
+
/** Canonical names of the requirements (required and nice-to-have) the candidate meets. */
|
|
21238
22016
|
matchedSkills: Array<Scalars['String']['output']>;
|
|
22017
|
+
/** Canonical names of the required skills the candidate does not meet. */
|
|
21239
22018
|
missingSkills: Array<Scalars['String']['output']>;
|
|
21240
22019
|
rationale: Scalars['String']['output'];
|
|
21241
22020
|
score: Scalars['Float']['output'];
|
|
22021
|
+
/** Per-requirement breakdown: how each required / nice-to-have skill was (or was not) met. */
|
|
22022
|
+
skillMatches: Array<CrewCandidateSkillMatch>;
|
|
21242
22023
|
skillScore: Scalars['Float']['output'];
|
|
21243
22024
|
};
|
|
21244
22025
|
/** Filter for `crewJobPostingMatches`. `status`, when set, restricts the candidate pool to a single CrewCandidateStatus value (case-insensitive) instead of the default pool (every candidate in the workspace not already HIRED or REJECTED). `minScore` drops any candidate whose overall score falls below the threshold (0-100). */
|
|
@@ -21260,6 +22041,31 @@ export type CrewCandidateSkill = {
|
|
|
21260
22041
|
source: Scalars['String']['output'];
|
|
21261
22042
|
updatedAt: Scalars['DateTime']['output'];
|
|
21262
22043
|
};
|
|
22044
|
+
/** How one skill a job posting asks for is met by a candidate (BOFF-10360). */
|
|
22045
|
+
export type CrewCandidateSkillMatch = {
|
|
22046
|
+
__typename?: 'CrewCandidateSkillMatch';
|
|
22047
|
+
/** Skill names from the held skill to the requirement through the skills graph (empty for exact matches). */
|
|
22048
|
+
chain: Array<Scalars['String']['output']>;
|
|
22049
|
+
/** EXACT, SUPERSEDED or IMPLIED when the candidate holds a satisfying skill; null when they hold none. */
|
|
22050
|
+
matchType?: Maybe<Scalars['String']['output']>;
|
|
22051
|
+
matched: Scalars['Boolean']['output'];
|
|
22052
|
+
/** Minimum proficiency the posting asks for, if any. */
|
|
22053
|
+
minProficiency?: Maybe<Scalars['Int']['output']>;
|
|
22054
|
+
/** Candidate's proficiency in the held skill (null when not assessed). */
|
|
22055
|
+
proficiency?: Maybe<Scalars['Int']['output']>;
|
|
22056
|
+
/** Why it was not met (not held, proficiency not assessed, proficiency below N); null when met. */
|
|
22057
|
+
reason?: Maybe<Scalars['String']['output']>;
|
|
22058
|
+
/** True for a must-have skill, false for a nice-to-have. */
|
|
22059
|
+
required: Scalars['Boolean']['output'];
|
|
22060
|
+
/** Canonical skill name. */
|
|
22061
|
+
requirement: Scalars['String']['output'];
|
|
22062
|
+
/** 0-100 strength of the match; 0 when not met. */
|
|
22063
|
+
score: Scalars['Float']['output'];
|
|
22064
|
+
/** The posting's canonical skill. */
|
|
22065
|
+
skillId: Scalars['ID']['output'];
|
|
22066
|
+
/** Name of the held skill that satisfied the requirement. */
|
|
22067
|
+
viaSkill?: Maybe<Scalars['String']['output']>;
|
|
22068
|
+
};
|
|
21263
22069
|
export type CrewClient = {
|
|
21264
22070
|
__typename?: 'CrewClient';
|
|
21265
22071
|
contactPerson?: Maybe<Scalars['String']['output']>;
|
|
@@ -21499,11 +22305,28 @@ export type CrewJobPosting = {
|
|
|
21499
22305
|
requirements: Array<Scalars['String']['output']>;
|
|
21500
22306
|
salaryMax: Scalars['Float']['output'];
|
|
21501
22307
|
salaryMin: Scalars['Float']['output'];
|
|
22308
|
+
/** Canonical skills the posting asks for, required first (replaces the legacy `requirements` strings for matching). */
|
|
22309
|
+
skillRequirements: Array<CrewJobPostingSkill>;
|
|
21502
22310
|
status: Scalars['String']['output'];
|
|
21503
22311
|
title: Scalars['String']['output'];
|
|
21504
22312
|
type: Scalars['String']['output'];
|
|
21505
22313
|
workspaceId: Scalars['ID']['output'];
|
|
21506
22314
|
};
|
|
22315
|
+
/** A canonical skill a job posting asks for (BOFF-10360). Required skills mirror the posting's legacy `requirements` strings; nice-to-have skills (`required: false`) are set with `setCrewJobPostingSkill`. */
|
|
22316
|
+
export type CrewJobPostingSkill = {
|
|
22317
|
+
__typename?: 'CrewJobPostingSkill';
|
|
22318
|
+
createdAt: Scalars['DateTime']['output'];
|
|
22319
|
+
id: Scalars['ID']['output'];
|
|
22320
|
+
jobPostingId: Scalars['ID']['output'];
|
|
22321
|
+
/** 0-100 minimum candidate proficiency; null when any level is acceptable. */
|
|
22322
|
+
minProficiency?: Maybe<Scalars['Int']['output']>;
|
|
22323
|
+
required: Scalars['Boolean']['output'];
|
|
22324
|
+
skill: CrewSkill;
|
|
22325
|
+
skillId: Scalars['ID']['output'];
|
|
22326
|
+
/** REQUIREMENT (mirrored from requirements), RECRUITER (set directly) or LEGACY (backfilled). */
|
|
22327
|
+
source: Scalars['String']['output'];
|
|
22328
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
22329
|
+
};
|
|
21507
22330
|
export type CrewLeaveRequest = {
|
|
21508
22331
|
__typename?: 'CrewLeaveRequest';
|
|
21509
22332
|
approverName?: Maybe<Scalars['String']['output']>;
|
|
@@ -21880,6 +22703,16 @@ export type CrewSkillHolderMatch = {
|
|
|
21880
22703
|
proficiency?: Maybe<Scalars['Int']['output']>;
|
|
21881
22704
|
verifiedFrom: Scalars['String']['output'];
|
|
21882
22705
|
};
|
|
22706
|
+
/** Result of merging one skill into another (BOFF-10361). */
|
|
22707
|
+
export type CrewSkillMergeResult = {
|
|
22708
|
+
__typename?: 'CrewSkillMergeResult';
|
|
22709
|
+
candidatesMoved: Scalars['Int']['output'];
|
|
22710
|
+
employeesMoved: Scalars['Int']['output'];
|
|
22711
|
+
jobPostingsMoved: Scalars['Int']['output'];
|
|
22712
|
+
relationsMoved: Scalars['Int']['output'];
|
|
22713
|
+
/** The surviving skill, with the merged skill's name and aliases added as aliases. */
|
|
22714
|
+
target: CrewSkill;
|
|
22715
|
+
};
|
|
21883
22716
|
/** A typed edge between two skills. IMPLIES: holding `fromSkill` means you can do `toSkill`. SUPERSEDES: `fromSkill` replaces `toSkill` (and satisfies it). RELATED_TO: adjacent, informative only. */
|
|
21884
22717
|
export type CrewSkillRelation = {
|
|
21885
22718
|
__typename?: 'CrewSkillRelation';
|
|
@@ -21899,6 +22732,8 @@ export type CrewSkillSyncReport = {
|
|
|
21899
22732
|
candidatesProcessed: Scalars['Int']['output'];
|
|
21900
22733
|
employeeLinksCreated: Scalars['Int']['output'];
|
|
21901
22734
|
employeesProcessed: Scalars['Int']['output'];
|
|
22735
|
+
jobPostingLinksCreated: Scalars['Int']['output'];
|
|
22736
|
+
jobPostingsProcessed: Scalars['Int']['output'];
|
|
21902
22737
|
relationsCreated: Scalars['Int']['output'];
|
|
21903
22738
|
taxonomySkillsCreated: Scalars['Int']['output'];
|
|
21904
22739
|
unmatched: Array<CrewSkillUnmatched>;
|
|
@@ -21917,6 +22752,28 @@ export type CrewSkillsGap = {
|
|
|
21917
22752
|
shortage: Scalars['Int']['output'];
|
|
21918
22753
|
skill: Scalars['String']['output'];
|
|
21919
22754
|
};
|
|
22755
|
+
/** Result of rebuilding a workspace's projection in the platform knowledge graph and search index: the skills graph (BOFF-10362) and the directory records (BOFF-10432). Counts are events published. */
|
|
22756
|
+
export type CrewSkillsGraphReindexReport = {
|
|
22757
|
+
__typename?: 'CrewSkillsGraphReindexReport';
|
|
22758
|
+
/** Live announcements published (title, category, priority, tags). */
|
|
22759
|
+
announcements: Scalars['Int']['output'];
|
|
22760
|
+
/** Live departments published (name, location, status). */
|
|
22761
|
+
departments: Scalars['Int']['output'];
|
|
22762
|
+
employeeSkills: Scalars['Int']['output'];
|
|
22763
|
+
employees: Scalars['Int']['output'];
|
|
22764
|
+
/** False when platform graph sync is disabled in this environment; nothing was published. */
|
|
22765
|
+
enabled: Scalars['Boolean']['output'];
|
|
22766
|
+
/** Events the platform graph emitter rejected; re-run the reindex to repair them. */
|
|
22767
|
+
failed: Scalars['Int']['output'];
|
|
22768
|
+
/** Live job postings published (title, department, location, type, experience level, status). */
|
|
22769
|
+
jobPostings: Scalars['Int']['output'];
|
|
22770
|
+
/** Live projects published (name, description, status, priority, team and manager names). */
|
|
22771
|
+
projects: Scalars['Int']['output'];
|
|
22772
|
+
relations: Scalars['Int']['output'];
|
|
22773
|
+
skills: Scalars['Int']['output'];
|
|
22774
|
+
/** Live teams published (name, description, department, lead name). */
|
|
22775
|
+
teams: Scalars['Int']['output'];
|
|
22776
|
+
};
|
|
21920
22777
|
export type CrewStaffingNeed = {
|
|
21921
22778
|
__typename?: 'CrewStaffingNeed';
|
|
21922
22779
|
alternates: Array<CrewStaffingPick>;
|
|
@@ -24177,6 +25034,8 @@ export type EcoMetricConnection = {
|
|
|
24177
25034
|
};
|
|
24178
25035
|
export type EcoObservation = {
|
|
24179
25036
|
__typename?: 'EcoObservation';
|
|
25037
|
+
/** Client-generated idempotency key supplied when the observation was recorded (offline field capture). Null for observations recorded without one. */
|
|
25038
|
+
clientRef?: Maybe<Scalars['String']['output']>;
|
|
24180
25039
|
count: Scalars['Int']['output'];
|
|
24181
25040
|
createdAt: Scalars['DateTime']['output'];
|
|
24182
25041
|
/** Reference to a wspace-files-svc File (photo / audio evidence). */
|
|
@@ -24236,6 +25095,8 @@ export type EcoRecordMeasurementInput = {
|
|
|
24236
25095
|
value: Scalars['Float']['input'];
|
|
24237
25096
|
};
|
|
24238
25097
|
export type EcoRecordObservationInput = {
|
|
25098
|
+
/** Optional client-generated idempotency key (1-128 chars of letters, digits, '-', '_', ':' or '.'). The offline field app mints one per queued observation and may replay the mutation after a dropped connection: recording again with the same clientRef in the same workspace returns the observation the first attempt created instead of creating a duplicate. */
|
|
25099
|
+
clientRef?: InputMaybe<Scalars['String']['input']>;
|
|
24239
25100
|
count?: InputMaybe<Scalars['Int']['input']>;
|
|
24240
25101
|
evidenceFileId?: InputMaybe<Scalars['ID']['input']>;
|
|
24241
25102
|
latitude?: InputMaybe<Scalars['Float']['input']>;
|
|
@@ -24615,9 +25476,16 @@ export type EffectivePermissions = {
|
|
|
24615
25476
|
actorId: Scalars['String']['output'];
|
|
24616
25477
|
/** Cache key for debugging and invalidation */
|
|
24617
25478
|
cacheKey?: Maybe<Scalars['String']['output']>;
|
|
24618
|
-
/**
|
|
25479
|
+
/**
|
|
25480
|
+
* When this permission set should be considered stale.
|
|
25481
|
+
* Frontend should refresh after this time.
|
|
25482
|
+
*/
|
|
24619
25483
|
expiresAt: Scalars['DateTime']['output'];
|
|
24620
|
-
/**
|
|
25484
|
+
/**
|
|
25485
|
+
* Flat permission strings for easy frontend matching.
|
|
25486
|
+
* Format: "{resourceType}:{action}" e.g., ["project:read", "project:write", "task:*"]
|
|
25487
|
+
* Includes wildcards for ADMIN level (e.g., "project:*")
|
|
25488
|
+
*/
|
|
24621
25489
|
permissionStrings: Array<Scalars['String']['output']>;
|
|
24622
25490
|
/** Resource types and their effective levels */
|
|
24623
25491
|
permissions: Array<EffectiveResourcePermission>;
|
|
@@ -24794,6 +25662,14 @@ export type EntityComment = {
|
|
|
24794
25662
|
resolvedById?: Maybe<Scalars['ID']['output']>;
|
|
24795
25663
|
status: CommentStatus;
|
|
24796
25664
|
tags: Array<CommentTagAssignment>;
|
|
25665
|
+
/** The TheCulturePost discussion this reply belongs to. */
|
|
25666
|
+
tcpDiscussionId?: Maybe<Scalars['ID']['output']>;
|
|
25667
|
+
/** When the reply's moderation state last changed. */
|
|
25668
|
+
tcpModeratedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
25669
|
+
/** Respectful-by-design moderation state of this reply. */
|
|
25670
|
+
tcpModerationStatus?: Maybe<TcpModerationStatus>;
|
|
25671
|
+
/** Self-disclosed perspective/tradition the author writes from, when shared. */
|
|
25672
|
+
tcpPerspective?: Maybe<Scalars['String']['output']>;
|
|
24797
25673
|
threadLevel: Scalars['Int']['output'];
|
|
24798
25674
|
threadRootId?: Maybe<Scalars['ID']['output']>;
|
|
24799
25675
|
updatedAt: Scalars['DateTime']['output'];
|
|
@@ -25208,6 +26084,104 @@ export declare enum EventVisibility {
|
|
|
25208
26084
|
Private = "PRIVATE",
|
|
25209
26085
|
Public = "PUBLIC"
|
|
25210
26086
|
}
|
|
26087
|
+
export type EventfullyManagedAgendaConflict = {
|
|
26088
|
+
__typename?: 'EventfullyManagedAgendaConflict';
|
|
26089
|
+
message: Scalars['String']['output'];
|
|
26090
|
+
sessionAId: Scalars['ID']['output'];
|
|
26091
|
+
sessionATitle: Scalars['String']['output'];
|
|
26092
|
+
sessionBId?: Maybe<Scalars['ID']['output']>;
|
|
26093
|
+
sessionBTitle?: Maybe<Scalars['String']['output']>;
|
|
26094
|
+
speakerId?: Maybe<Scalars['ID']['output']>;
|
|
26095
|
+
suggestedFix: EventfullyManagedAgendaFix;
|
|
26096
|
+
/** VENUE_CLASH, SPEAKER_DOUBLE_BOOKED or OVER_CAPACITY. */
|
|
26097
|
+
type: Scalars['String']['output'];
|
|
26098
|
+
venueId?: Maybe<Scalars['ID']['output']>;
|
|
26099
|
+
};
|
|
26100
|
+
export type EventfullyManagedAgendaConflictResolution = {
|
|
26101
|
+
__typename?: 'EventfullyManagedAgendaConflictResolution';
|
|
26102
|
+
conflicts: Array<EventfullyManagedAgendaConflict>;
|
|
26103
|
+
engine: EventfullyManagedAiDecisionEngine;
|
|
26104
|
+
eventId: Scalars['ID']['output'];
|
|
26105
|
+
};
|
|
26106
|
+
export type EventfullyManagedAgendaFix = {
|
|
26107
|
+
__typename?: 'EventfullyManagedAgendaFix';
|
|
26108
|
+
/** MOVE_SESSION, RESCHEDULE_SESSION, MOVE_ROOM, RAISE_CAPACITY, ADD_REPEAT, OPEN_WAITLIST, REASSIGN_SPEAKER or MANUAL_REVIEW. */
|
|
26109
|
+
action: Scalars['String']['output'];
|
|
26110
|
+
applyable: Scalars['Boolean']['output'];
|
|
26111
|
+
rationale: Scalars['String']['output'];
|
|
26112
|
+
sessionId: Scalars['ID']['output'];
|
|
26113
|
+
targetCapacity?: Maybe<Scalars['Int']['output']>;
|
|
26114
|
+
targetEndsAt?: Maybe<Scalars['DateTime']['output']>;
|
|
26115
|
+
targetStartsAt?: Maybe<Scalars['DateTime']['output']>;
|
|
26116
|
+
targetVenueId?: Maybe<Scalars['ID']['output']>;
|
|
26117
|
+
targetVenueName?: Maybe<Scalars['String']['output']>;
|
|
26118
|
+
};
|
|
26119
|
+
/** Which engine produced a decision, and when it was persisted. */
|
|
26120
|
+
export type EventfullyManagedAiDecisionEngine = {
|
|
26121
|
+
__typename?: 'EventfullyManagedAiDecisionEngine';
|
|
26122
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
26123
|
+
latencyMs: Scalars['Int']['output'];
|
|
26124
|
+
model: Scalars['String']['output'];
|
|
26125
|
+
provider: Scalars['String']['output'];
|
|
26126
|
+
/** AnalyticsSnapshot row the decision was persisted to; null when persist was false. */
|
|
26127
|
+
snapshotId?: Maybe<Scalars['ID']['output']>;
|
|
26128
|
+
version: Scalars['String']['output'];
|
|
26129
|
+
};
|
|
26130
|
+
/** The four decisions the engine produces. */
|
|
26131
|
+
export declare enum EventfullyManagedAiDecisionKind {
|
|
26132
|
+
AgendaConflicts = "AGENDA_CONFLICTS",
|
|
26133
|
+
AttendanceForecast = "ATTENDANCE_FORECAST",
|
|
26134
|
+
CapacityRightSizing = "CAPACITY_RIGHT_SIZING",
|
|
26135
|
+
NoShowPrediction = "NO_SHOW_PREDICTION"
|
|
26136
|
+
}
|
|
26137
|
+
/** A persisted decision, re-read without re-running the engine. */
|
|
26138
|
+
export type EventfullyManagedAiDecisionRecord = {
|
|
26139
|
+
__typename?: 'EventfullyManagedAiDecisionRecord';
|
|
26140
|
+
/** The full decision payload, in the same shape the generating mutation returned. */
|
|
26141
|
+
data: Scalars['JSON']['output'];
|
|
26142
|
+
eventId: Scalars['ID']['output'];
|
|
26143
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
26144
|
+
id: Scalars['ID']['output'];
|
|
26145
|
+
kind: EventfullyManagedAiDecisionKind;
|
|
26146
|
+
model: Scalars['String']['output'];
|
|
26147
|
+
provider: Scalars['String']['output'];
|
|
26148
|
+
version: Scalars['String']['output'];
|
|
26149
|
+
};
|
|
26150
|
+
export type EventfullyManagedApplyAgendaFixInput = {
|
|
26151
|
+
capacity?: InputMaybe<Scalars['Int']['input']>;
|
|
26152
|
+
/** Must be true. The engine never changes a session without this explicit confirmation. */
|
|
26153
|
+
confirm: Scalars['Boolean']['input'];
|
|
26154
|
+
endsAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
26155
|
+
sessionId: Scalars['ID']['input'];
|
|
26156
|
+
startsAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
26157
|
+
venueId?: InputMaybe<Scalars['ID']['input']>;
|
|
26158
|
+
};
|
|
26159
|
+
export type EventfullyManagedAttendanceForecast = {
|
|
26160
|
+
__typename?: 'EventfullyManagedAttendanceForecast';
|
|
26161
|
+
basis: EventfullyManagedForecastBasis;
|
|
26162
|
+
cells: Array<EventfullyManagedShowRateCell>;
|
|
26163
|
+
/** Registrations (by quantity) already checked in; counted in full, not predicted. */
|
|
26164
|
+
checkedInSoFar: Scalars['Int']['output'];
|
|
26165
|
+
/** True when there is too little history for a reliable number. */
|
|
26166
|
+
coldStart: Scalars['Boolean']['output'];
|
|
26167
|
+
/** Plain-language explanation of a cold-start forecast; null otherwise. */
|
|
26168
|
+
coldStartReason?: Maybe<Scalars['String']['output']>;
|
|
26169
|
+
confidence: EventfullyManagedForecastConfidence;
|
|
26170
|
+
engine: EventfullyManagedAiDecisionEngine;
|
|
26171
|
+
eventId: Scalars['ID']['output'];
|
|
26172
|
+
/** Upper bound of the 90% range. */
|
|
26173
|
+
high: Scalars['Int']['output'];
|
|
26174
|
+
historicalEvents: Scalars['Int']['output'];
|
|
26175
|
+
historicalRegistrations: Scalars['Int']['output'];
|
|
26176
|
+
/** Lower bound of the 90% range. */
|
|
26177
|
+
low: Scalars['Int']['output'];
|
|
26178
|
+
predictedAttendance: Scalars['Int']['output'];
|
|
26179
|
+
/** Live registrations (by ticket quantity), excluding cancelled and waitlisted. */
|
|
26180
|
+
registered: Scalars['Int']['output'];
|
|
26181
|
+
sessions: Array<EventfullyManagedSessionForecast>;
|
|
26182
|
+
showRate: Scalars['Float']['output'];
|
|
26183
|
+
signals: Array<EventfullyManagedForecastSignal>;
|
|
26184
|
+
};
|
|
25211
26185
|
export type EventfullyManagedAttendee = {
|
|
25212
26186
|
__typename?: 'EventfullyManagedAttendee';
|
|
25213
26187
|
company?: Maybe<Scalars['String']['output']>;
|
|
@@ -25296,6 +26270,33 @@ export type EventfullyManagedBadgeTemplateList = {
|
|
|
25296
26270
|
items: Array<EventfullyManagedBadgeTemplate>;
|
|
25297
26271
|
total: Scalars['Int']['output'];
|
|
25298
26272
|
};
|
|
26273
|
+
export type EventfullyManagedCapacityRecommendation = {
|
|
26274
|
+
__typename?: 'EventfullyManagedCapacityRecommendation';
|
|
26275
|
+
/** KEEP, MOVE_ROOM, DOWNSIZE_ROOM, RAISE_CAPACITY, ADD_REPEAT, OPEN_WAITLIST or SET_CAPACITY. */
|
|
26276
|
+
action: Scalars['String']['output'];
|
|
26277
|
+
/** True when eventfullyManagedApplyAgendaFix can apply this recommendation. */
|
|
26278
|
+
applyable: Scalars['Boolean']['output'];
|
|
26279
|
+
effectiveCapacity?: Maybe<Scalars['Int']['output']>;
|
|
26280
|
+
high: Scalars['Int']['output'];
|
|
26281
|
+
predictedAttendance: Scalars['Int']['output'];
|
|
26282
|
+
rationale: Scalars['String']['output'];
|
|
26283
|
+
roomCapacity?: Maybe<Scalars['Int']['output']>;
|
|
26284
|
+
sessionCapacity?: Maybe<Scalars['Int']['output']>;
|
|
26285
|
+
sessionId: Scalars['ID']['output'];
|
|
26286
|
+
targetCapacity?: Maybe<Scalars['Int']['output']>;
|
|
26287
|
+
targetVenueId?: Maybe<Scalars['ID']['output']>;
|
|
26288
|
+
targetVenueName?: Maybe<Scalars['String']['output']>;
|
|
26289
|
+
title: Scalars['String']['output'];
|
|
26290
|
+
utilization?: Maybe<Scalars['Float']['output']>;
|
|
26291
|
+
};
|
|
26292
|
+
export type EventfullyManagedCapacityRightSizing = {
|
|
26293
|
+
__typename?: 'EventfullyManagedCapacityRightSizing';
|
|
26294
|
+
coldStart: Scalars['Boolean']['output'];
|
|
26295
|
+
confidence: EventfullyManagedForecastConfidence;
|
|
26296
|
+
engine: EventfullyManagedAiDecisionEngine;
|
|
26297
|
+
eventId: Scalars['ID']['output'];
|
|
26298
|
+
recommendations: Array<EventfullyManagedCapacityRecommendation>;
|
|
26299
|
+
};
|
|
25299
26300
|
export type EventfullyManagedCheckInRecord = {
|
|
25300
26301
|
__typename?: 'EventfullyManagedCheckInRecord';
|
|
25301
26302
|
attendeeId?: Maybe<Scalars['ID']['output']>;
|
|
@@ -25542,6 +26543,34 @@ export type EventfullyManagedFloorPlanList = {
|
|
|
25542
26543
|
items: Array<EventfullyManagedFloorPlan>;
|
|
25543
26544
|
total: Scalars['Int']['output'];
|
|
25544
26545
|
};
|
|
26546
|
+
/** Where a forecast's show rate comes from. PRIOR_ONLY means the workspace has no past event with check-in data, so the number is a baseline assumption. */
|
|
26547
|
+
export declare enum EventfullyManagedForecastBasis {
|
|
26548
|
+
Blended = "BLENDED",
|
|
26549
|
+
History = "HISTORY",
|
|
26550
|
+
PriorOnly = "PRIOR_ONLY"
|
|
26551
|
+
}
|
|
26552
|
+
/** How much history backs a forecast. */
|
|
26553
|
+
export declare enum EventfullyManagedForecastConfidence {
|
|
26554
|
+
High = "HIGH",
|
|
26555
|
+
Low = "LOW",
|
|
26556
|
+
Medium = "MEDIUM"
|
|
26557
|
+
}
|
|
26558
|
+
export type EventfullyManagedForecastInput = {
|
|
26559
|
+
/** Organiser's own baseline show rate (0 to 1), used in place of the default priors (0.8 paid, 0.55 free) wherever history is thin. */
|
|
26560
|
+
baselineShowRate?: InputMaybe<Scalars['Float']['input']>;
|
|
26561
|
+
/** How many recent past events to learn from (1 to 50, default 20). */
|
|
26562
|
+
lookbackEvents?: InputMaybe<Scalars['Int']['input']>;
|
|
26563
|
+
/** Persist the decision to AnalyticsSnapshot.data (default true). */
|
|
26564
|
+
persist?: InputMaybe<Scalars['Boolean']['input']>;
|
|
26565
|
+
};
|
|
26566
|
+
/** One input the engine used, so the organiser can see why it decided. */
|
|
26567
|
+
export type EventfullyManagedForecastSignal = {
|
|
26568
|
+
__typename?: 'EventfullyManagedForecastSignal';
|
|
26569
|
+
detail?: Maybe<Scalars['String']['output']>;
|
|
26570
|
+
key: Scalars['String']['output'];
|
|
26571
|
+
label: Scalars['String']['output'];
|
|
26572
|
+
value: Scalars['Float']['output'];
|
|
26573
|
+
};
|
|
25545
26574
|
export type EventfullyManagedGetEntityTagsInput = {
|
|
25546
26575
|
entityId: Scalars['ID']['input'];
|
|
25547
26576
|
entityType: Scalars['String']['input'];
|
|
@@ -25715,6 +26744,16 @@ export type EventfullyManagedNetworkingProfileList = {
|
|
|
25715
26744
|
items: Array<EventfullyManagedNetworkingProfile>;
|
|
25716
26745
|
total: Scalars['Int']['output'];
|
|
25717
26746
|
};
|
|
26747
|
+
export type EventfullyManagedNoShowPrediction = {
|
|
26748
|
+
__typename?: 'EventfullyManagedNoShowPrediction';
|
|
26749
|
+
coldStart: Scalars['Boolean']['output'];
|
|
26750
|
+
coldStartReason?: Maybe<Scalars['String']['output']>;
|
|
26751
|
+
confidence: EventfullyManagedForecastConfidence;
|
|
26752
|
+
engine: EventfullyManagedAiDecisionEngine;
|
|
26753
|
+
eventId: Scalars['ID']['output'];
|
|
26754
|
+
eventNoShowRate: Scalars['Float']['output'];
|
|
26755
|
+
sessions: Array<EventfullyManagedSessionNoShow>;
|
|
26756
|
+
};
|
|
25718
26757
|
export type EventfullyManagedPromoCode = {
|
|
25719
26758
|
__typename?: 'EventfullyManagedPromoCode';
|
|
25720
26759
|
code: Scalars['String']['output'];
|
|
@@ -25811,6 +26850,75 @@ export type EventfullyManagedSessionConflict = {
|
|
|
25811
26850
|
type: Scalars['String']['output'];
|
|
25812
26851
|
venueId?: Maybe<Scalars['ID']['output']>;
|
|
25813
26852
|
};
|
|
26853
|
+
export type EventfullyManagedSessionForecast = {
|
|
26854
|
+
__typename?: 'EventfullyManagedSessionForecast';
|
|
26855
|
+
/** Learned draw of this session type relative to an equal split (1 = equal share). */
|
|
26856
|
+
captureFactor: Scalars['Float']['output'];
|
|
26857
|
+
checkedInSoFar: Scalars['Int']['output'];
|
|
26858
|
+
/** Sessions running at the same time, this one included. */
|
|
26859
|
+
concurrency: Scalars['Int']['output'];
|
|
26860
|
+
endsAt: Scalars['DateTime']['output'];
|
|
26861
|
+
high: Scalars['Int']['output'];
|
|
26862
|
+
low: Scalars['Int']['output'];
|
|
26863
|
+
predictedAttendance: Scalars['Int']['output'];
|
|
26864
|
+
sessionId: Scalars['ID']['output'];
|
|
26865
|
+
sessionType: Scalars['String']['output'];
|
|
26866
|
+
startsAt: Scalars['DateTime']['output'];
|
|
26867
|
+
title: Scalars['String']['output'];
|
|
26868
|
+
};
|
|
26869
|
+
export type EventfullyManagedSessionNoShow = {
|
|
26870
|
+
__typename?: 'EventfullyManagedSessionNoShow';
|
|
26871
|
+
drivers: Array<Scalars['String']['output']>;
|
|
26872
|
+
/** The session's equal split of registrants, if everyone came. */
|
|
26873
|
+
expectedDemand: Scalars['Int']['output'];
|
|
26874
|
+
predictedAttendance: Scalars['Int']['output'];
|
|
26875
|
+
predictedNoShowRate: Scalars['Float']['output'];
|
|
26876
|
+
sessionId: Scalars['ID']['output'];
|
|
26877
|
+
sessionType: Scalars['String']['output'];
|
|
26878
|
+
title: Scalars['String']['output'];
|
|
26879
|
+
};
|
|
26880
|
+
/** BOFF-3764 — one ranked session for one attendee, with the explanation. */
|
|
26881
|
+
export type EventfullyManagedSessionRecommendation = {
|
|
26882
|
+
__typename?: 'EventfullyManagedSessionRecommendation';
|
|
26883
|
+
/** The attendee interests, asks or industry the session matched. */
|
|
26884
|
+
matchedTopics: Array<Scalars['String']['output']>;
|
|
26885
|
+
/** Human-readable explanation of why the session was recommended. Never empty. */
|
|
26886
|
+
reason: Scalars['String']['output'];
|
|
26887
|
+
/** 0-100 overlap score; never 0 (zero-signal sessions are not recommended). */
|
|
26888
|
+
score: Scalars['Int']['output'];
|
|
26889
|
+
/** capacity minus current session check-ins; null when the session has no capacity. */
|
|
26890
|
+
seatsRemaining?: Maybe<Scalars['Int']['output']>;
|
|
26891
|
+
session: EventfullyManagedEventSession;
|
|
26892
|
+
};
|
|
26893
|
+
/** BOFF-3764 — why a session recommendation list is empty. Null whenever items is non-empty. */
|
|
26894
|
+
export declare enum EventfullyManagedSessionRecommendationEmptyReason {
|
|
26895
|
+
/** The attendee's profile lists no interests, asks or industry. */
|
|
26896
|
+
NoInterests = "NO_INTERESTS",
|
|
26897
|
+
/** The attendee has no networking profile to read interests from. */
|
|
26898
|
+
NoProfile = "NO_PROFILE",
|
|
26899
|
+
/** No upcoming session overlaps the attendee's interests. */
|
|
26900
|
+
NoSignal = "NO_SIGNAL",
|
|
26901
|
+
/** The event has no upcoming, open sessions the attendee has not already attended. */
|
|
26902
|
+
NoUpcomingSessions = "NO_UPCOMING_SESSIONS"
|
|
26903
|
+
}
|
|
26904
|
+
export type EventfullyManagedSessionRecommendationList = {
|
|
26905
|
+
__typename?: 'EventfullyManagedSessionRecommendationList';
|
|
26906
|
+
emptyReason?: Maybe<EventfullyManagedSessionRecommendationEmptyReason>;
|
|
26907
|
+
items: Array<EventfullyManagedSessionRecommendation>;
|
|
26908
|
+
total: Scalars['Int']['output'];
|
|
26909
|
+
};
|
|
26910
|
+
/** Show rate for one ticket-tier x registration-lead-time cell. */
|
|
26911
|
+
export type EventfullyManagedShowRateCell = {
|
|
26912
|
+
__typename?: 'EventfullyManagedShowRateCell';
|
|
26913
|
+
currentRegistered: Scalars['Int']['output'];
|
|
26914
|
+
historicalAttended: Scalars['Int']['output'];
|
|
26915
|
+
historicalRegistered: Scalars['Int']['output'];
|
|
26916
|
+
/** LATE (7 days or less before the event), MID (8 to 30), EARLY (over 30) or UNKNOWN. */
|
|
26917
|
+
leadBucket: Scalars['String']['output'];
|
|
26918
|
+
showRate: Scalars['Float']['output'];
|
|
26919
|
+
/** PAID or FREE. */
|
|
26920
|
+
tier: Scalars['String']['output'];
|
|
26921
|
+
};
|
|
25814
26922
|
export type EventfullyManagedSimpleEntity = {
|
|
25815
26923
|
__typename?: 'EventfullyManagedSimpleEntity';
|
|
25816
26924
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -39803,6 +40911,35 @@ export type HealthyBowlWorker = {
|
|
|
39803
40911
|
piecePrice?: Maybe<Scalars['Float']['output']>;
|
|
39804
40912
|
skills: Array<Scalars['String']['output']>;
|
|
39805
40913
|
};
|
|
40914
|
+
/** Which side of the marketplace an activation step measures. */
|
|
40915
|
+
export declare enum HokActivationAudience {
|
|
40916
|
+
Creator = "CREATOR",
|
|
40917
|
+
Talent = "TALENT",
|
|
40918
|
+
Viewer = "VIEWER"
|
|
40919
|
+
}
|
|
40920
|
+
export type HokActivationFunnel = {
|
|
40921
|
+
__typename?: 'HokActivationFunnel';
|
|
40922
|
+
/** Steps that have happened at least once. */
|
|
40923
|
+
completedSteps: Scalars['Int']['output'];
|
|
40924
|
+
/** Calendar-month bucket ("YYYY-MM") the numbers are scoped to, or null for all-time. */
|
|
40925
|
+
period?: Maybe<Scalars['String']['output']>;
|
|
40926
|
+
/** Steps in the canonical funnel order: viewer first, then creator, then talent. */
|
|
40927
|
+
steps: Array<HokActivationStep>;
|
|
40928
|
+
totalSteps: Scalars['Int']['output'];
|
|
40929
|
+
};
|
|
40930
|
+
/** One activation event, aggregated over the workspace. */
|
|
40931
|
+
export type HokActivationStep = {
|
|
40932
|
+
__typename?: 'HokActivationStep';
|
|
40933
|
+
audience: HokActivationAudience;
|
|
40934
|
+
/** How many times the event happened. */
|
|
40935
|
+
count: Scalars['Int']['output'];
|
|
40936
|
+
/** Analytics dictionary event name, e.g. hookmovies.title.created. */
|
|
40937
|
+
event: Scalars['String']['output'];
|
|
40938
|
+
firstOccurredAt?: Maybe<Scalars['DateTime']['output']>;
|
|
40939
|
+
lastOccurredAt?: Maybe<Scalars['DateTime']['output']>;
|
|
40940
|
+
/** How many distinct users performed (or, for entitlement.granted, received) the event. */
|
|
40941
|
+
uniqueActors: Scalars['Int']['output'];
|
|
40942
|
+
};
|
|
39806
40943
|
/** A single (bucket-key -> aggregate) row for a device/territory/language breakdown. */
|
|
39807
40944
|
export type HokAnalyticsBucket = {
|
|
39808
40945
|
__typename?: 'HokAnalyticsBucket';
|
|
@@ -40200,6 +41337,22 @@ export type HokDataExport = {
|
|
|
40200
41337
|
/** All user-linked HookMovies data as a structured JSON object. */
|
|
40201
41338
|
payload: Scalars['JSON']['output'];
|
|
40202
41339
|
};
|
|
41340
|
+
/** The onboarding sample data loaded into a workspace. */
|
|
41341
|
+
export type HokDemoData = {
|
|
41342
|
+
__typename?: 'HokDemoData';
|
|
41343
|
+
auditionId?: Maybe<Scalars['ID']['output']>;
|
|
41344
|
+
/** False when the sample data was already loaded and is returned unchanged. */
|
|
41345
|
+
created: Scalars['Boolean']['output'];
|
|
41346
|
+
productionId?: Maybe<Scalars['ID']['output']>;
|
|
41347
|
+
studioId: Scalars['ID']['output'];
|
|
41348
|
+
/** The sample feature film first, then the sample series. */
|
|
41349
|
+
titleIds: Array<Scalars['ID']['output']>;
|
|
41350
|
+
};
|
|
41351
|
+
export type HokDemoDataRemoval = {
|
|
41352
|
+
__typename?: 'HokDemoDataRemoval';
|
|
41353
|
+
/** Rows soft-deleted across the sample studio, people, titles, production and audition. */
|
|
41354
|
+
removed: Scalars['Int']['output'];
|
|
41355
|
+
};
|
|
40203
41356
|
export type HokDispute = {
|
|
40204
41357
|
__typename?: 'HokDispute';
|
|
40205
41358
|
applicantId: Scalars['ID']['output'];
|
|
@@ -40602,6 +41755,32 @@ export declare enum HokOfferStatus {
|
|
|
40602
41755
|
Sent = "SENT",
|
|
40603
41756
|
Withdrawn = "WITHDRAWN"
|
|
40604
41757
|
}
|
|
41758
|
+
export type HokOnboardingStatus = {
|
|
41759
|
+
__typename?: 'HokOnboardingStatus';
|
|
41760
|
+
completedSteps: Scalars['Int']['output'];
|
|
41761
|
+
/** Whether the onboarding sample data is currently loaded in this workspace. */
|
|
41762
|
+
demoDataLoaded: Scalars['Boolean']['output'];
|
|
41763
|
+
steps: Array<HokOnboardingStep>;
|
|
41764
|
+
totalSteps: Scalars['Int']['output'];
|
|
41765
|
+
};
|
|
41766
|
+
export type HokOnboardingStep = {
|
|
41767
|
+
__typename?: 'HokOnboardingStep';
|
|
41768
|
+
completed: Scalars['Boolean']['output'];
|
|
41769
|
+
key: HokOnboardingStepKey;
|
|
41770
|
+
};
|
|
41771
|
+
/** A getting-started checklist step, in the order the checklist shows them. */
|
|
41772
|
+
export declare enum HokOnboardingStepKey {
|
|
41773
|
+
/** The workspace created its first title. */
|
|
41774
|
+
CreateTitle = "CREATE_TITLE",
|
|
41775
|
+
/** The workspace opened a casting audition. */
|
|
41776
|
+
OpenAudition = "OPEN_AUDITION",
|
|
41777
|
+
/** The workspace published a title. */
|
|
41778
|
+
PublishTitle = "PUBLISH_TITLE",
|
|
41779
|
+
/** The caller saved their language and content preferences. */
|
|
41780
|
+
SetPreferences = "SET_PREFERENCES",
|
|
41781
|
+
/** The workspace started a production. */
|
|
41782
|
+
StartProduction = "START_PRODUCTION"
|
|
41783
|
+
}
|
|
40605
41784
|
export type HokPageInfo = {
|
|
40606
41785
|
__typename?: 'HokPageInfo';
|
|
40607
41786
|
cursor?: Maybe<Scalars['String']['output']>;
|
|
@@ -43658,6 +44837,8 @@ export type IntFeed = {
|
|
|
43658
44837
|
format?: Maybe<Scalars['String']['output']>;
|
|
43659
44838
|
id: Scalars['ID']['output'];
|
|
43660
44839
|
ingestCount: Scalars['Int']['output'];
|
|
44840
|
+
/** Hourly ingest counts for the last 24 hours, oldest first. Always 24 buckets, zero-filled for hours with no ingest ticks. */
|
|
44841
|
+
ingestHistory: Array<IntFeedIngestBucket>;
|
|
43661
44842
|
lastIngestAt?: Maybe<Scalars['DateTime']['output']>;
|
|
43662
44843
|
name: Scalars['String']['output'];
|
|
43663
44844
|
pausedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
@@ -43674,6 +44855,12 @@ export type IntFeedConnection = {
|
|
|
43674
44855
|
items: Array<IntFeed>;
|
|
43675
44856
|
pageInfo: IntPageInfo;
|
|
43676
44857
|
};
|
|
44858
|
+
/** One hourly bucket of a feed's ingest activity, for the health-dashboard sparkline. */
|
|
44859
|
+
export type IntFeedIngestBucket = {
|
|
44860
|
+
__typename?: 'IntFeedIngestBucket';
|
|
44861
|
+
bucketStart: Scalars['DateTime']['output'];
|
|
44862
|
+
count: Scalars['Int']['output'];
|
|
44863
|
+
};
|
|
43677
44864
|
export declare enum IntFeedStatus {
|
|
43678
44865
|
Connected = "CONNECTED",
|
|
43679
44866
|
Disconnected = "DISCONNECTED",
|
|
@@ -44018,6 +45205,11 @@ export type IntegrationConnection = {
|
|
|
44018
45205
|
* provider's default method (every connection created before multi-auth).
|
|
44019
45206
|
*/
|
|
44020
45207
|
authMethodKey?: Maybe<Scalars['String']['output']>;
|
|
45208
|
+
/**
|
|
45209
|
+
* Whether the caller could run this connection in a workflow they own. False for a private
|
|
45210
|
+
* connection an administrator only sees by administering it. Null for services and apps.
|
|
45211
|
+
*/
|
|
45212
|
+
canUse?: Maybe<Scalars['Boolean']['output']>;
|
|
44021
45213
|
/**
|
|
44022
45214
|
* Opaque cross-service reference to the bot channel in global-channel-svc
|
|
44023
45215
|
* that this personal connection is linked to. Null until the user links
|
|
@@ -44041,16 +45233,26 @@ export type IntegrationConnection = {
|
|
|
44041
45233
|
lastHealthCheck?: Maybe<Scalars['DateTime']['output']>;
|
|
44042
45234
|
lastUsedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
44043
45235
|
metadata?: Maybe<Scalars['JSON']['output']>;
|
|
45236
|
+
/** How the caller reaches this connection. Null for service callers. */
|
|
45237
|
+
myAccess?: Maybe<ConnectionAccess>;
|
|
44044
45238
|
name: Scalars['String']['output'];
|
|
44045
45239
|
/** Opaque reference to the organization that owns the linked channel. */
|
|
44046
45240
|
organizationId?: Maybe<Scalars['String']['output']>;
|
|
45241
|
+
/**
|
|
45242
|
+
* The person the connection belongs to. Starts as createdBy; a workspace administrator can hand it
|
|
45243
|
+
* to someone else.
|
|
45244
|
+
*/
|
|
45245
|
+
ownerId: Scalars['String']['output'];
|
|
44047
45246
|
provider: IntegrationProvider;
|
|
44048
45247
|
providerId: Scalars['ID']['output'];
|
|
45248
|
+
/** The people, groups and projects the connection is shared with */
|
|
45249
|
+
shares: Array<ConnectionShare>;
|
|
44049
45250
|
status: ConnectionStatus;
|
|
44050
45251
|
/** Structured tag assignments via wspace-tags-svc */
|
|
44051
45252
|
tagAssignments: Array<IntegrationConnectionTagAssignment>;
|
|
44052
45253
|
updatedAt: Scalars['DateTime']['output'];
|
|
44053
45254
|
vaultId?: Maybe<Scalars['String']['output']>;
|
|
45255
|
+
visibility: ConnectionVisibility;
|
|
44054
45256
|
/**
|
|
44055
45257
|
* Workspace ID that owns this connection. Set at connection-creation time
|
|
44056
45258
|
* from context.workspace.id. Used by global-channel-svc to forward the
|
|
@@ -52841,14 +54043,43 @@ export declare enum MtwStockObservationStatus {
|
|
|
52841
54043
|
*/
|
|
52842
54044
|
export type MtwTrackingAlert = {
|
|
52843
54045
|
__typename?: 'MtwTrackingAlert';
|
|
54046
|
+
/** True when an operator acknowledged this alert against the current promise. */
|
|
54047
|
+
acknowledged: Scalars['Boolean']['output'];
|
|
54048
|
+
acknowledgedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
54049
|
+
acknowledgedBy?: Maybe<Scalars['ID']['output']>;
|
|
52844
54050
|
alertType: Scalars['String']['output'];
|
|
54051
|
+
/** Stable alert id, `<shipmentId>:<alertType>`. */
|
|
54052
|
+
id: Scalars['ID']['output'];
|
|
52845
54053
|
message: Scalars['String']['output'];
|
|
52846
54054
|
predictedDelivery?: Maybe<Scalars['DateTime']['output']>;
|
|
54055
|
+
/** The shipment's promised delivery (estimatedDelivery) the alert was raised against. */
|
|
54056
|
+
promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
|
|
52847
54057
|
riskScore?: Maybe<Scalars['Int']['output']>;
|
|
52848
54058
|
shipmentId: Scalars['ID']['output'];
|
|
52849
54059
|
shipmentNumber: Scalars['String']['output'];
|
|
52850
54060
|
signals?: Maybe<Array<MtwRiskSignalCode>>;
|
|
52851
54061
|
};
|
|
54062
|
+
/**
|
|
54063
|
+
* A persisted acknowledgement of a tracking alert. It holds while the shipment
|
|
54064
|
+
* keeps the promised delivery it was recorded against; re-promising the shipment
|
|
54065
|
+
* re-raises the alert.
|
|
54066
|
+
*/
|
|
54067
|
+
export type MtwTrackingAlertAcknowledgement = {
|
|
54068
|
+
__typename?: 'MtwTrackingAlertAcknowledgement';
|
|
54069
|
+
acknowledged: Scalars['Boolean']['output'];
|
|
54070
|
+
acknowledgedAt: Scalars['DateTime']['output'];
|
|
54071
|
+
acknowledgedBy: Scalars['ID']['output'];
|
|
54072
|
+
alertType: MtwTrackingAlertType;
|
|
54073
|
+
/** Same id as the acknowledged `MtwTrackingAlert`. */
|
|
54074
|
+
id: Scalars['ID']['output'];
|
|
54075
|
+
promisedDelivery?: Maybe<Scalars['DateTime']['output']>;
|
|
54076
|
+
shipmentId: Scalars['ID']['output'];
|
|
54077
|
+
};
|
|
54078
|
+
/** Alert types `trackingAlerts` raises; used to acknowledge one. */
|
|
54079
|
+
export declare enum MtwTrackingAlertType {
|
|
54080
|
+
AtRisk = "AT_RISK",
|
|
54081
|
+
Delayed = "DELAYED"
|
|
54082
|
+
}
|
|
52852
54083
|
export type MtwTrackingEvent = {
|
|
52853
54084
|
__typename?: 'MtwTrackingEvent';
|
|
52854
54085
|
context?: Maybe<OperationContext>;
|
|
@@ -53167,6 +54398,7 @@ export type Mutation = {
|
|
|
53167
54398
|
acknowledgeHealthyBowlSensorAlert: SensorAlert;
|
|
53168
54399
|
/** Acknowledge (mark read) a stressed zone. */
|
|
53169
54400
|
acknowledgeHealthyBowlStressedZone: HbStressedZone;
|
|
54401
|
+
acknowledgeMtwTrackingAlert: MtwTrackingAlertAcknowledgement;
|
|
53170
54402
|
/** Acquire a lock on a file */
|
|
53171
54403
|
acquireFileLock: AcquireLockResponse;
|
|
53172
54404
|
/** Take a workflow's edit lease when it is free, or renew it when this session holds it. Otherwise report the holder. */
|
|
@@ -53641,6 +54873,8 @@ export type Mutation = {
|
|
|
53641
54873
|
buiFailCourseKnowledgeChange: Scalars['Boolean']['output'];
|
|
53642
54874
|
buiGradeSubmission: BuiSubmission;
|
|
53643
54875
|
buiIssueCertificate: BuiCertificate;
|
|
54876
|
+
/** Load the onboarding demo content (sample course with modules, lessons, a graded assessment, a skill and a cohort) and enroll the caller in it. Idempotent. */
|
|
54877
|
+
buiLoadDemoContent: BuiDemoContentResult;
|
|
53644
54878
|
buiPublishAssessment: BuiAssessment;
|
|
53645
54879
|
/** Publish a course through its authoring lifecycle (validated transitions). */
|
|
53646
54880
|
buiPublishCourse: BuiCourse;
|
|
@@ -53648,8 +54882,12 @@ export type Mutation = {
|
|
|
53648
54882
|
buiRecordLessonProgress: BuiLessonProgress;
|
|
53649
54883
|
/** Record progress only for the caller's active enrollment and a lesson in that course. */
|
|
53650
54884
|
buiRecordMyLessonProgress: BuiLessonProgress;
|
|
54885
|
+
/** BOFF-9690: records a batch (max 50) of signal episodes the learner's browser observed during an APPROVED, unexpired proctored attempt. Owner-scoped like `buiReportProctoringViolation` (a learner can only write to their OWN session). Lockdown signals also increment `violationCount`; AI signals require the assessment's `aiProctoringEnabled` and the learner's recorded consent. Never changes `status`. */
|
|
54886
|
+
buiRecordProctoringSignals: BuiProctoringSession;
|
|
53651
54887
|
/** Workspace admin registers a new LMS platform to launch into this tool. */
|
|
53652
54888
|
buiRegisterLtiPlatform: BuiLtiPlatform;
|
|
54889
|
+
/** Remove the onboarding demo content. Returns false when none is loaded. */
|
|
54890
|
+
buiRemoveDemoContent: Scalars['Boolean']['output'];
|
|
53653
54891
|
/** Records a best-effort browser-lockdown violation (tab-hidden/blur) the client observed during a proctored attempt. Owner-scoped, same as `buiSubmitProctoringIdentity` — never changes `status` on its own. */
|
|
53654
54892
|
buiReportProctoringViolation: BuiProctoringSession;
|
|
53655
54893
|
buiRetryCourseAssistantDelivery?: Maybe<BuiCourseAssistantTurn>;
|
|
@@ -53657,7 +54895,7 @@ export type Mutation = {
|
|
|
53657
54895
|
buiReviewGradeSuggestion: BuiGradeSuggestion;
|
|
53658
54896
|
/** Learner marks a previously generated next-lesson suggestion ACCEPTED or REJECTED. Type-B self-scoped, mirrors `buiSuggestNextLesson`. */
|
|
53659
54897
|
buiReviewNextLessonSuggestion: BuiNextLessonSuggestion;
|
|
53660
|
-
/** BOFF-4431 (3/3): instructor/admin reviews an UNDER_REVIEW session and approves or rejects it. Only an APPROVED, unexpired session satisfies the `requiresProctoring` gate on `buiSubmitAssessment`. */
|
|
54898
|
+
/** BOFF-4431 (3/3): instructor/admin reviews an UNDER_REVIEW session and approves or rejects it. Only an APPROVED, unexpired session satisfies the `requiresProctoring` gate on `buiSubmitAssessment`. Gated on the review-queue permission (`list`), not `update`: every learner holds `update` so they can submit their own identity, and must not be able to approve someone else's. */
|
|
53661
54899
|
buiReviewProctoringSession: BuiProctoringSession;
|
|
53662
54900
|
/** Educator override of one AI tutor answer (BOFF-9663): annotate, correct, redact, or clear a previous review. The original answer is never overwritten; each action is appended to the answer's review history. Restricted to EDITOR+ via wspace-rbac-svc action-catalog `buildmyiq-tutor:update` (viewerDefault: false), so learners cannot alter answers. Later tutor turns in the same session see the reviewed version. */
|
|
53663
54901
|
buiReviewTutorAnswer: BuiTutorMessage;
|
|
@@ -53682,6 +54920,12 @@ export type Mutation = {
|
|
|
53682
54920
|
buiSuggestGrade: BuiGradeSuggestion;
|
|
53683
54921
|
/** Adaptive sequencing: decides the calling learner's next lesson from their own `BuiLessonProgress` trail across the enrolled course's lesson sequence, plus a pacing hint derived from recent graded `BuiSubmission` scores in that course (same 3-bucket mastery signal the AI tutor uses, see `IntelligenceService.computeMasteryBucket`). Deterministic — a curriculum-order "resume where you left off" walk, not an LLM call (see `IntelligenceService` doc comment for why this pass scoped it that way). Persists a `BuiAiSuggestion` (kind: NEXT_LESSON) so the decision is auditable; never writes `BuiLessonProgress`/`BuiEnrollment` itself. Type-B self-scoped: `enrollmentId` is a client arg, but the resolver owner-filters by the authenticated actor — mirrors `buiMyEnrollment`. */
|
|
53684
54922
|
buiSuggestNextLesson: BuiNextLessonSuggestion;
|
|
54923
|
+
/** Service-only (BOFF-3134): upsert the canonical certificate mirroring a source product's certificate. The course must have been synced first. */
|
|
54924
|
+
buiSyncExternalCertificate: BuiCertificate;
|
|
54925
|
+
/** Service-only (BOFF-3134): upsert the canonical course mirroring a source product's course. Returns the canonical BuiCourse. */
|
|
54926
|
+
buiSyncExternalCourse: BuiCourse;
|
|
54927
|
+
/** Service-only (BOFF-3134): upsert the canonical enrollment mirroring a source product's enrollment. The course must have been synced first. */
|
|
54928
|
+
buiSyncExternalEnrollment: BuiEnrollment;
|
|
53685
54929
|
/** Real AGS score-publish for one graded submission to the LMS gradebook via the given resource link's line item. Never re-grades — the submission must already be graded (`buiGradeSubmission`/`buiAutoScoreSubmission`). */
|
|
53686
54930
|
buiSyncLtiGrade: BuiLtiGradeSync;
|
|
53687
54931
|
/** Names and Role Provisioning Services roster sync: fetches the LMS course roster for this LTI placement and upserts `BuiLtiContextMembership` rows. */
|
|
@@ -53914,9 +55158,14 @@ export type Mutation = {
|
|
|
53914
55158
|
colUntagMemory: Scalars['Boolean']['output'];
|
|
53915
55159
|
colUntagPerson: Scalars['Boolean']['output'];
|
|
53916
55160
|
colUntagStory: Scalars['Boolean']['output'];
|
|
55161
|
+
colUpdateEvent: ColEvent;
|
|
53917
55162
|
colUpdateFamilyTree: ColFamilyTree;
|
|
55163
|
+
/** Change a member's tree role and/or linked Person (BOFF-3972). Beyond the workspace-level directive below, the service layer requires the caller to be an ACTIVE OWNER/STEWARD of the tree, forbids changing one's own role, and reserves granting or changing OWNER for tree OWNERs. */
|
|
55164
|
+
colUpdateMembership: ColMembership;
|
|
53918
55165
|
colUpdateMemory: ColMemory;
|
|
53919
55166
|
colUpdatePerson: ColPerson;
|
|
55167
|
+
colUpdateRelationship: ColRelationship;
|
|
55168
|
+
colUpdateStory: ColStory;
|
|
53920
55169
|
/** Hand a box to the member who came for it. The ONLY thing that records a collection. Dropping the load at a stand is the box ARRIVING, not being collected — that marks every box `AWAITING_COLLECTION`. This is the second event, one member at a time, and it is what writes `DELIVERED` and `collectedAt` for a collected box. Refused unless the box is `AWAITING_COLLECTION`: collecting a box still on the farm would record a handover that did not happen, and collecting one twice would quietly move its collection time. The error names the state the box is actually in, because "cannot collect" alone says nothing about what to do next. A HOME_DELIVERY box is refused too — it is handed over at the door, and its route stop already records that. */
|
|
53921
55170
|
collectHealthyBowlCsaPickupBox: CsaDelivery;
|
|
53922
55171
|
comAddComment: ComComment;
|
|
@@ -54076,6 +55325,8 @@ export type Mutation = {
|
|
|
54076
55325
|
cooAddLookbookEntry: CooLookbookEntry;
|
|
54077
55326
|
/** Add a piece to the calling shopper's cart (merges into an existing line for the same variant). */
|
|
54078
55327
|
cooAddToCart: CooCart;
|
|
55328
|
+
/** Ranked, cited findings about the calling shopper's wardrobe: occasions and categories it cannot cover, palette colours it lacks, and re-wear signals (dormant pieces, never-worn pieces, cost-per-wear outliers). */
|
|
55329
|
+
cooAnalyzeWardrobeGaps: CooWardrobeGapAnalysis;
|
|
54079
55330
|
/** Approve a brand storefront that is pending review (PENDING_REVIEW -> PUBLISHED). */
|
|
54080
55331
|
cooApproveBrand: CooBrand;
|
|
54081
55332
|
/** Approve a shopper's return: refunds the brand's pieces of the order to the shopper (reversing the creator commissions on them) and marks the request APPROVED. Returns the order as the brand now sees it. */
|
|
@@ -54100,6 +55351,8 @@ export type Mutation = {
|
|
|
54100
55351
|
cooCreateLookbook: CooLookbook;
|
|
54101
55352
|
cooCreateStyleItem: CooStyleItem;
|
|
54102
55353
|
cooCreateWardrobeItem: CooWardrobeItem;
|
|
55354
|
+
/** Propose which of a brand's DRAFT style items form a coherent story for a season, flag publish blockers and suggest an order. Advisory only. */
|
|
55355
|
+
cooCurateCollection: CooCollectionCuration;
|
|
54103
55356
|
/** Decline a shopper's return with a note. The shopper is notified. Returns the order as the brand now sees it. */
|
|
54104
55357
|
cooDeclineReturnRequest: CooBrandOrder;
|
|
54105
55358
|
/** Soft-delete a collaboration that is still PROPOSED (sets deletedAt; excluded from list/read queries thereafter). Once a collaboration has moved past PROPOSED, use cooTransitionCollaboration(CANCELLED) instead — deleting a collaboration the other party has already acted on would erase real history. */
|
|
@@ -54140,6 +55393,10 @@ export type Mutation = {
|
|
|
54140
55393
|
cooSaveLook: CooLook;
|
|
54141
55394
|
/** Turn per-variant stock tracking on or off for a style item and set the stock of its variants (BOFF-9637). With tracking on, checkout reserves stock and the piece's ACTIVE / OUT_OF_STOCK status follows it. */
|
|
54142
55395
|
cooSetStyleItemInventory: CooStyleItem;
|
|
55396
|
+
/** Rank creators by aesthetic fit with a brand's published catalog and draft a PROPOSED collaboration brief for each. Advisory only: nothing is created and no collaboration changes state. */
|
|
55397
|
+
cooSuggestCollaborationMatch: CooCollaborationMatchResult;
|
|
55398
|
+
/** Compose a draft outfit for an occasion from the calling shopper's own wardrobe (size-respecting, palette-aware, backed by real look pairings), plus optional catalog pieces for any slot the wardrobe cannot fill. Never saves or publishes anything. */
|
|
55399
|
+
cooSuggestOutfit: CooOutfitSuggestion;
|
|
54143
55400
|
/** Settle a collaboration fee against global-billing: marks it PAID only when billing reports the brand's payment SUCCEEDED, then books the creator's earning. Safe to call at any time. */
|
|
54144
55401
|
cooSyncCollaborationPayment: CooCollaborationPayout;
|
|
54145
55402
|
/** Settle one of the caller's orders against global-billing: re-reads the authoritative payment and marks the order PAID only when billing reports it SUCCEEDED. Safe to call at any time. */
|
|
@@ -54177,6 +55434,12 @@ export type Mutation = {
|
|
|
54177
55434
|
copyFile: File;
|
|
54178
55435
|
cosAddRunStep: CosPipelineStep;
|
|
54179
55436
|
cosAddSchemaField: CosSchemaField;
|
|
55437
|
+
/** Draft a release (title, abstract, authors, licence, version, datasets) from a notebook, its completed analyses and the datasets in its lineage. Writes nothing; cosCreateRelease and cosPublishRelease stay human actions. */
|
|
55438
|
+
cosAiDraftRelease: CosReleaseDraft;
|
|
55439
|
+
/** Propose a schema field per column of a dataset: logical type, unit, nullability, position and a drafted provenance note. Reads `sample` when given, else `context.schemaSample` on the dataset, else the columns declared in the source connector config. Writes nothing. */
|
|
55440
|
+
cosAiProposeSchemaFields: CosSchemaFieldProposal;
|
|
55441
|
+
/** Recommend what to do with a finished pipeline run (PROMOTE, RERUN_WITH_PARAMS, QUARANTINE_DATASET or FLAG_SOURCE_DEGRADED) from its metrics and ordered step telemetry, with the rationale and evidence. A run that is still QUEUED or RUNNING returns CONFLICT. Writes nothing. */
|
|
55442
|
+
cosAiTriageRun: CosRunTriage;
|
|
54180
55443
|
/** Soft-delete a collection (sets deletedAt). Datasets keep their collectionId but the archived collection no longer lists or resolves. */
|
|
54181
55444
|
cosArchiveCollection: Scalars['Boolean']['output'];
|
|
54182
55445
|
cosArchiveDataset: Scalars['Boolean']['output'];
|
|
@@ -54185,6 +55448,8 @@ export type Mutation = {
|
|
|
54185
55448
|
cosArchiveSource: Scalars['Boolean']['output'];
|
|
54186
55449
|
/** Record the terminal outcome of an analysis run (COMPLETED / FAILED). */
|
|
54187
55450
|
cosCompleteAnalysis: CosAnalysis;
|
|
55451
|
+
/** Finish one step of a run with its status, outputs, error and the datasets it produced (`producedDatasetIds`). A step that has already finished returns CONFLICT. */
|
|
55452
|
+
cosCompleteRunStep: CosPipelineStep;
|
|
54188
55453
|
cosCreateCollection: CosCollection;
|
|
54189
55454
|
cosCreateDataset: CosDataset;
|
|
54190
55455
|
cosCreateNotebook: CosNotebook;
|
|
@@ -54202,6 +55467,8 @@ export type Mutation = {
|
|
|
54202
55467
|
cosPublishDataset: CosDataset;
|
|
54203
55468
|
/** Publish a citable release and stamp it with a DOI. */
|
|
54204
55469
|
cosPublishRelease: CosRelease;
|
|
55470
|
+
/** Record run-level telemetry (rows in/out, anomalies flagged, warnings, error message). Merges into `metrics`; fields not sent are kept. */
|
|
55471
|
+
cosRecordRunTelemetry: CosPipelineRun;
|
|
54205
55472
|
cosRevokeAccess: CosDataAccessGrant;
|
|
54206
55473
|
cosRunAnalysis: CosAnalysis;
|
|
54207
55474
|
/** Executes a RASTER_CALC (NDVI band-math) step synchronously against two co-registered single-band GeoTIFF rasters (NIR + RED), base64-encoded. Computes per-pixel NDVI = (NIR-RED)/(NIR+RED) via real GeoTIFF parsing, persisting summary statistics and a bounded preview grid as step lineage (`outputs`). Only NDVI band math is implemented today — REPROJECT, TILE, and ZONAL_STATS are recognized CosStepKind values with no execution backend yet (see BOFF-4355). */
|
|
@@ -54721,7 +55988,10 @@ export type Mutation = {
|
|
|
54721
55988
|
createVibecontrolsScorecardTemplate: VibecontrolsScorecardTemplate;
|
|
54722
55989
|
/** Create a new assignable tag (inline creation from a picker) */
|
|
54723
55990
|
createVibecontrolsTag: AvailableTag;
|
|
54724
|
-
/**
|
|
55991
|
+
/**
|
|
55992
|
+
* Create a visibility rule for a resource.
|
|
55993
|
+
* Auto-registers the resource if not already registered.
|
|
55994
|
+
*/
|
|
54725
55995
|
createVisibilityRule: VisibilityRule;
|
|
54726
55996
|
createVocabulary: TagVocabulary;
|
|
54727
55997
|
createWarehouse: MtwWarehouse;
|
|
@@ -55267,7 +56537,7 @@ export type Mutation = {
|
|
|
55267
56537
|
/** Disconnect a social media account (revoke tokens and mark disconnected) */
|
|
55268
56538
|
disconnectHeadshotmarketingSocialAccount: HeadshotmarketingSocialAccount;
|
|
55269
56539
|
disconnectHealthyBowlAccountingIntegration: HealthyBowlAccountingIntegration;
|
|
55270
|
-
/** Disconnect a channel: further events from it are refused. Already captured events are kept. */
|
|
56540
|
+
/** Disconnect a channel: further events from it are refused. Already captured events are kept. For an OAuth-backed channel the integration connection is revoked as well. */
|
|
55271
56541
|
disconnectTimeCampusCaptureChannel: TimeCampusCaptureChannel;
|
|
55272
56542
|
dismissHealthyBowlComplianceFlag: ComplianceFlag;
|
|
55273
56543
|
dismissRecommendation: TimeCampusRecommendation;
|
|
@@ -55412,6 +56682,8 @@ export type Mutation = {
|
|
|
55412
56682
|
/** Escalate a stressed zone into an existing HealthyBowl Pest issue or a field activity (task). */
|
|
55413
56683
|
escalateHealthyBowlStressedZone: HbStressedZoneEscalation;
|
|
55414
56684
|
escalateIncident: Incident;
|
|
56685
|
+
/** Apply one suggested agenda fix (room, time or capacity) to a session. Refused unless confirm is true, and refused when the change would create a new room or speaker clash. */
|
|
56686
|
+
eventfullyManagedApplyAgendaFix: EventfullyManagedEventSession;
|
|
55415
56687
|
eventfullyManagedCreateAttendee: EventfullyManagedAttendee;
|
|
55416
56688
|
eventfullyManagedCreateBadgeTemplate: EventfullyManagedBadgeTemplate;
|
|
55417
56689
|
eventfullyManagedCreateCheckInRecord: EventfullyManagedCheckInRecord;
|
|
@@ -55457,6 +56729,7 @@ export type Mutation = {
|
|
|
55457
56729
|
eventfullyManagedEraseAttendeePersonalData: Scalars['Boolean']['output'];
|
|
55458
56730
|
eventfullyManagedEraseLeadPersonalData: Scalars['Boolean']['output'];
|
|
55459
56731
|
eventfullyManagedEraseSpeakerPersonalData: Scalars['Boolean']['output'];
|
|
56732
|
+
eventfullyManagedForecastAttendance: EventfullyManagedAttendanceForecast;
|
|
55460
56733
|
/** Creates (or updates the template binding of) the tracking `Badge` row for a registration. Idempotent — re-calling for the same registration updates `templateId` rather than creating a duplicate (Badge.registrationId is unique) and never resets `generatedAt`/`printCount`. Falls back to the event's default `BadgeTemplate` (`isDefault: true`) when `templateId` is omitted; throws if neither is available. */
|
|
55461
56734
|
eventfullyManagedGenerateBadge: EventfullyManagedBadge;
|
|
55462
56735
|
/** BOFF-4321 — deterministic matchmaking engine (v1: interest/lookingFor overlap scoring — see NetworkingMatchingService doc comment for the exact formula and why this ships instead of an LLM call). Scores every pair of opted-in (non-private) NetworkingProfiles at the event, upserts a NetworkingMatch row per pair that clears the minimum-signal threshold (score > 0), and returns the full generated/updated set ordered by score desc. Never creates a Meeting — matches stay suggestions until an attendee books one explicitly. Returns an empty list (not fabricated pairings) when the event has fewer than 5 opted-in profiles. */
|
|
@@ -55467,9 +56740,12 @@ export type Mutation = {
|
|
|
55467
56740
|
eventfullyManagedJoinVirtualSession: EventfullyManagedVirtualSession;
|
|
55468
56741
|
/** Leave the calling actor's own active participation in a virtual session. Ends the session once the last participant leaves. */
|
|
55469
56742
|
eventfullyManagedLeaveVirtualSession: Scalars['Boolean']['output'];
|
|
56743
|
+
eventfullyManagedPredictNoShows: EventfullyManagedNoShowPrediction;
|
|
55470
56744
|
/** Promote another active participant to PRESENTER (WEBINAR mode). Only the session's HOST may promote; enforced in the resolver, not just the gateway's workspace-membership check. */
|
|
55471
56745
|
eventfullyManagedPromoteVirtualPresenter: EventfullyManagedVirtualParticipant;
|
|
55472
56746
|
eventfullyManagedPublishAnnouncement: EventfullyManagedSimpleEntity;
|
|
56747
|
+
eventfullyManagedResolveAgendaConflicts: EventfullyManagedAgendaConflictResolution;
|
|
56748
|
+
eventfullyManagedRightSizeSessions: EventfullyManagedCapacityRightSizing;
|
|
55473
56749
|
eventfullyManagedScanCheckIn: EventfullyManagedCheckInRecord;
|
|
55474
56750
|
eventfullyManagedSendCommunicationCampaign: EventfullyManagedSimpleEntity;
|
|
55475
56751
|
/** Relay a WebRTC signaling message (SDP offer/answer or ICE candidate) from the calling actor to another active participant in the same session. Both parties must be active participants — enforced in the resolver, not just at the gateway. Fire-and-forget: delivered via `eventfullyManagedVirtualSignal` subscription. */
|
|
@@ -55603,7 +56879,7 @@ export type Mutation = {
|
|
|
55603
56879
|
generateHealthyBowlDeliveryRoute: DeliveryRoute;
|
|
55604
56880
|
/** One-click MRV report: assembles emissions + sequestration + credits + EUDR into a PDF/CSV via wspace-files-svc. */
|
|
55605
56881
|
generateHealthyBowlMrvReport: HbMrvReport;
|
|
55606
|
-
/** Run the deterministic recommendation rules over the caller's real data (idempotent per rule + ISO-week). */
|
|
56882
|
+
/** Run the deterministic recommendation rules over the caller's real data (idempotent per rule + ISO-week). When the workspace opted in to model recommendations, up to three AI candidates follow, generated at most once per ISO week and validated against the caller's preferences. */
|
|
55607
56883
|
generateMyRecommendations: Array<TimeCampusRecommendation>;
|
|
55608
56884
|
generateReport: ReportRun;
|
|
55609
56885
|
/** Aggregates every billable, un-invoiced TimeEntry in the workspace (scoped to `projectIds` and the given period) by project + task, applying each entry's own hourly rate, and creates a DRAFT invoice with one line item per project/task group. The matched time entries are atomically marked as invoiced so they can never be billed twice. */
|
|
@@ -55899,6 +57175,8 @@ export type Mutation = {
|
|
|
55899
57175
|
hokInviteGuardian: HokGuardianInviteResult;
|
|
55900
57176
|
/** Join a watch party as the calling user (self-scoped, idempotent). */
|
|
55901
57177
|
hokJoinWatchParty: HokWatchParty;
|
|
57178
|
+
/** Load the onboarding sample data (a studio, three people, a published film, a draft series, a production and an open audition). Idempotent: returns the existing sample data when it is already loaded. */
|
|
57179
|
+
hokLoadDemoData: HokDemoData;
|
|
55902
57180
|
/** Record that the production paid the talent off-platform (non-custodial). */
|
|
55903
57181
|
hokMarkOfferPaid: HokOffer;
|
|
55904
57182
|
/** Mark alerts read; omit ids to mark every unread alert read. Returns the count updated. */
|
|
@@ -55917,6 +57195,8 @@ export type Mutation = {
|
|
|
55917
57195
|
hokRecordPlaybackEvent: HokPlaybackEvent;
|
|
55918
57196
|
/** Upsert the calling user's watch progress for a title/episode (self-scoped). */
|
|
55919
57197
|
hokRecordProgress: HokWatchProgress;
|
|
57198
|
+
/** Soft-delete the onboarding sample data. Content the workspace created itself is never touched. */
|
|
57199
|
+
hokRemoveDemoData: HokDemoDataRemoval;
|
|
55920
57200
|
hokRemoveScheduleBlock: Scalars['Boolean']['output'];
|
|
55921
57201
|
/** File a moderation report against any catalog/engagement entity (self-scoped — any authenticated viewer may report). */
|
|
55922
57202
|
hokReportContent: HokModerationFlag;
|
|
@@ -56025,7 +57305,11 @@ export type Mutation = {
|
|
|
56025
57305
|
initializeNewWorkspace: InitializeNewWorkspaceResult;
|
|
56026
57306
|
/** Initialize a newly created workspace with default configuration */
|
|
56027
57307
|
initializeWorkspace: Workspace;
|
|
56028
|
-
/**
|
|
57308
|
+
/**
|
|
57309
|
+
* Service-internal workspace bootstrap: initializes default roles for a workspace
|
|
57310
|
+
* by cloning system roles. Called by wspace-workspace-svc during cross-layer
|
|
57311
|
+
* workspace sync, and safe to retry because it is idempotent.
|
|
57312
|
+
*/
|
|
56029
57313
|
initializeWorkspaceRoles: InitializeWorkspaceRolesResult;
|
|
56030
57314
|
initiateOAuth: OAuthInitiationResult;
|
|
56031
57315
|
/** Initiate a new upload session Returns session details and initial presigned URLs */
|
|
@@ -56421,6 +57705,8 @@ export type Mutation = {
|
|
|
56421
57705
|
markNoShow: Booking;
|
|
56422
57706
|
/** Pair a statement line with a farm Transaction. Neither row's own figures are altered. */
|
|
56423
57707
|
matchHealthyBowlStatementLine: HealthyBowlBankStatementLine;
|
|
57708
|
+
/** Merge a custom or backfill skill into another skill: holders, job postings and relations move to the target, the source's names become target aliases, and the source is removed. Starter-taxonomy skills cannot be the source. */
|
|
57709
|
+
mergeCrewSkills: CrewSkillMergeResult;
|
|
56424
57710
|
mergeTag: UniversalTag;
|
|
56425
57711
|
mergeTags: UniversalTag;
|
|
56426
57712
|
/** Mint a short-lived capability token bound to a single agent + scope. Replaces the long-lived agent API key for browser-bound iframe / terminal embeds. The svc proxies to the agent's `POST /api/agent/iframe-token` over the internal x-agent-api-key channel and returns the resulting HMAC-signed token + expiry. The token is bound to a path prefix derived from `scope` + `resourceId`: - TERMINAL_SESSION + resourceId=sessionId → `/terminal/<sessionId>` - IFRAME_PLUGIN + resourceId=pluginName → `/ui/<pluginName>` - PLAN_SESSION + resourceId=sessionId → `/plan/<sessionId>` - CODE_SERVER + resourceId=instance (optional, currently ignored) → `/code-server` - SCHEDULED_JOB + resourceId=sessionId → server-side only (rejected from public mint; see ScheduledPromptService which routes via the trusted back-channel) The final prefix is validated against the agent's published allow-list (`vibecontrols-agent` `iframe-tokens.ts::isValidIframePathPrefix`). Mints whose computed prefix is banned (`/api`, `/api/ai`, `/api/profiles`, …) are rejected with `BAD_USER_INPUT` so callers see a clear error instead of a downstream upstream-rejected 400. `ttlSeconds` is clamped to [1, 600], default 60. Caller is auth'd by RBAC (action: invoke, resource: agent, scope: wspace) and the agent must belong to the caller's workspace — cross-workspace mint attempts return FORBIDDEN. */
|
|
@@ -57255,6 +58541,8 @@ export type Mutation = {
|
|
|
57255
58541
|
reconcileCourseKnowledgeImports: CourseKnowledgeImportRecovery;
|
|
57256
58542
|
reconcileKnowledgeArtifactCleanup: KnowledgeVectorCleanupReceipt;
|
|
57257
58543
|
reconcileKnowledgeVectorCleanup: KnowledgeVectorCleanupReceipt;
|
|
58544
|
+
/** Super admin: register or repair the sweep of every workspace with an opted-in member and remove unused ones. */
|
|
58545
|
+
reconcileTimeCampusTimeIntelligenceSchedules: TimeCampusTimeIntelligenceReconcileResult;
|
|
57258
58546
|
recordAIPromptUsage: AiPrompt;
|
|
57259
58547
|
/** Record multiple activities in batch */
|
|
57260
58548
|
recordActivities: Array<ActivityLog>;
|
|
@@ -57355,7 +58643,11 @@ export type Mutation = {
|
|
|
57355
58643
|
registerNode: NodeEndpointConfig;
|
|
57356
58644
|
/** Register (upsert) a parser type in the GLOBAL ParserTypeConfig registry and, with autoInstall, make it the workspace's active version. Re-registering the same (parserTypeKey, parserVersion) refreshes its definition but preserves the operator-set status. TRUST BOUNDARY (same as registerWidgetType): the catalog write is global while RBAC is scoped to input.workspaceId. This is the store service path — restricted to service/super_admin actors at the public gateway. */
|
|
57357
58645
|
registerParserType: ParserTypeRegistration;
|
|
57358
|
-
/**
|
|
58646
|
+
/**
|
|
58647
|
+
* Register a resource with custom RBAC configurations.
|
|
58648
|
+
* Called automatically when the first override or visibility rule is created for a resource.
|
|
58649
|
+
* Can also be called manually for explicit registration.
|
|
58650
|
+
*/
|
|
57359
58651
|
registerResource: Resource;
|
|
57360
58652
|
/** Register an uploaded part */
|
|
57361
58653
|
registerUploadedPart: UploadPartResponse;
|
|
@@ -57363,6 +58655,8 @@ export type Mutation = {
|
|
|
57363
58655
|
registerVibecontrolsAgent: VibecontrolsAgent;
|
|
57364
58656
|
/** Register (upsert) a widget type in the global WidgetTypeConfig registry. Refreshes definition fields; preserves operator-set status/isLatest on update (BOFF-2810 rule). TRUST BOUNDARY (BOFF-2858): this writes the GLOBAL WidgetTypeConfig table (no workspace partition), but RBAC is scoped to `input.workspaceId`. This is a DELIBERATE mirror of the FluidGrids node-registry contract: the registry is a shared catalog written by the trusted global-store-svc service actor on product install, not per-workspace author content. `workspaceId` scopes only the optional autoInstall side effect, not the catalog write. A caller with workspace-scoped create can therefore upsert a shared type definition; keep this mutation restricted to the store service path and do not surface it as a general end-user capability. Install-gating (WorkspaceWidgetInstallation) is what actually controls per-workspace visibility. */
|
|
57365
58657
|
registerWidgetType: BigConsoleWidgetTypeRegistration;
|
|
58658
|
+
/** Re-publish this workspace's skills graph (skills, employees' directory cards, holdings and typed skill relations) and its directory records (departments, teams, projects, job postings, announcements) to the platform knowledge graph and global search. Idempotent: use it to backfill or repair the projection. */
|
|
58659
|
+
reindexCrewSkillsGraph: CrewSkillsGraphReindexReport;
|
|
57366
58660
|
/** Reject a pending request with a reason. Refused for your own request. */
|
|
57367
58661
|
rejectBotmanorAgentActivation: BotmanorAgentApprovalRequest;
|
|
57368
58662
|
rejectChangeRequest: ChangeRequest;
|
|
@@ -57418,6 +58712,8 @@ export type Mutation = {
|
|
|
57418
58712
|
removeCrewEnrollment: Scalars['Boolean']['output'];
|
|
57419
58713
|
removeCrewInterview: Scalars['Boolean']['output'];
|
|
57420
58714
|
removeCrewJobPosting: Scalars['Boolean']['output'];
|
|
58715
|
+
/** Stop asking for a skill on a job posting (also removes it from the legacy `requirements` strings). */
|
|
58716
|
+
removeCrewJobPostingSkill: Scalars['Boolean']['output'];
|
|
57421
58717
|
removeCrewLeaveRequest: Scalars['Boolean']['output'];
|
|
57422
58718
|
removeCrewOnboarding: Scalars['Boolean']['output'];
|
|
57423
58719
|
removeCrewOnboardingTask: Scalars['Boolean']['output'];
|
|
@@ -57426,6 +58722,8 @@ export type Mutation = {
|
|
|
57426
58722
|
removeCrewProject: Scalars['Boolean']['output'];
|
|
57427
58723
|
/** Remove a skill nobody holds (CONFLICT while employees or candidates hold it). Its relations go with it. */
|
|
57428
58724
|
removeCrewSkill: Scalars['Boolean']['output'];
|
|
58725
|
+
/** Remove one relation edge from the skills graph. */
|
|
58726
|
+
removeCrewSkillRelation: Scalars['Boolean']['output'];
|
|
57429
58727
|
removeCrewTeam: Scalars['Boolean']['output'];
|
|
57430
58728
|
removeCrewTimeEntry: Scalars['Boolean']['output'];
|
|
57431
58729
|
removeCrewTrainingCourse: Scalars['Boolean']['output'];
|
|
@@ -57856,6 +59154,8 @@ export type Mutation = {
|
|
|
57856
59154
|
/** Run a script inside the sandbox and capture its output. The sandbox must be running. The run is recorded (even on failure) so it can be reviewed before any real-target execution. */
|
|
57857
59155
|
runSandboxScript: SandboxScriptRun;
|
|
57858
59156
|
runSecurityScan: SecurityScanRun;
|
|
59157
|
+
/** Run the workspace's time-intelligence sweep. Called by wspace-scheduler-svc as this service's own service actor; a super admin may run it on demand. Any other caller is refused. */
|
|
59158
|
+
runTimeCampusTimeIntelligenceSweep: TimeCampusTimeIntelligenceSweep;
|
|
57859
59159
|
/**
|
|
57860
59160
|
* Append one completed turn (prompt + reply), creating the conversation on the first turn. NOT idempotent: a retried call appends a duplicate turn. This resolver writes both prompt and reply rows internally, so it performs manual quota checks/tracking instead of using a fixed-amount @usage directive.
|
|
57861
59161
|
* @deprecated Use the my* assistant-history fields (BOFF-7335).
|
|
@@ -57921,8 +59221,12 @@ export type Mutation = {
|
|
|
57921
59221
|
semPublishQuery: SemQuery;
|
|
57922
59222
|
/** Record a connection health probe for a data source and reconcile its status. */
|
|
57923
59223
|
semRecordConnection: SemConnection;
|
|
59224
|
+
/** Remove every demo record created by semSeedWorkspaceDemoData from the calling workspace. The user's own records are never touched. */
|
|
59225
|
+
semRemoveWorkspaceDemoData: SemRemoveWorkspaceDemoDataResult;
|
|
57924
59226
|
/** Enqueue a federated execution of a saved query; returns the new run record in QUEUED status immediately. An async worker plans and executes it — poll semQueryRun(id) for the final status, plan summary and metrics. */
|
|
57925
59227
|
semRunQuery: SemQueryRun;
|
|
59228
|
+
/** Seed the calling workspace with a labelled demo set: a sample Postgres connector and data source, a published semantic model (customers and orders, with dimensions, metrics and a relationship) and a saved query. Idempotent: a second call returns the existing demo records. */
|
|
59229
|
+
semSeedWorkspaceDemoData: SemSeedWorkspaceDemoDataResult;
|
|
57926
59230
|
semSetAccessPolicyActive: SemAccessPolicy;
|
|
57927
59231
|
/** Move a data source through its connectivity lifecycle (validated transitions). */
|
|
57928
59232
|
semTransitionDataSource: SemDataSource;
|
|
@@ -57957,6 +59261,8 @@ export type Mutation = {
|
|
|
57957
59261
|
setBigConsoleExternalEmbedsEnabled: Workspace;
|
|
57958
59262
|
/** Set configuration */
|
|
57959
59263
|
setConfiguration: Configuration;
|
|
59264
|
+
/** Ask for a skill on a job posting (required or nice-to-have, optional minimum proficiency). */
|
|
59265
|
+
setCrewJobPostingSkill: CrewJobPostingSkill;
|
|
57960
59266
|
/** Assign (or clear, with rlsPolicyId: null) a dashboard's RLS policy. The policy must already exist in the same workspace as the dashboard. */
|
|
57961
59267
|
setDashboardRlsPolicy: BigConsoleDashboard;
|
|
57962
59268
|
/** Set the lifecycle status (AVAILABLE | DEPRECATED | DISABLED) of a registered version. Operator control; applies to every workspace. */
|
|
@@ -58062,6 +59368,12 @@ export type Mutation = {
|
|
|
58062
59368
|
/** Share collection with users */
|
|
58063
59369
|
shareCollection: CollectionShare;
|
|
58064
59370
|
shareComponent: ShareGrant;
|
|
59371
|
+
/**
|
|
59372
|
+
* Set who can reach a connection: its visibility and the complete set of people, groups and
|
|
59373
|
+
* projects it is shared with, and optionally its owner. Allowed for the owner, editors it is
|
|
59374
|
+
* shared with, and workspace administrators; only administrators can change the owner.
|
|
59375
|
+
*/
|
|
59376
|
+
shareConnection: IntegrationConnection;
|
|
58065
59377
|
/** Share a dashboard with a user or group */
|
|
58066
59378
|
shareDashboard: BigConsoleDashboardShare;
|
|
58067
59379
|
shareDocs: ShareGrant;
|
|
@@ -58163,9 +59475,13 @@ export type Mutation = {
|
|
|
58163
59475
|
subActivateWorkflow: SubWorkflow;
|
|
58164
59476
|
/** Permanently purge all Subscriber Bot data for a workspace. Restricted to super_admin actors for GDPR right-to-erasure / offboarding workflows. Soft-deleted rows are removed when `includeSoftDeleted` is true. */
|
|
58165
59477
|
subAdminPurgeWorkspace: SubAdminPurgeResult;
|
|
59478
|
+
/** Apply a PROPOSED decision through the relationship mutation it maps to. */
|
|
59479
|
+
subApplyDecision: SubDecisionResult;
|
|
58166
59480
|
subApproveAdapter: SubAdapterSubmission;
|
|
58167
59481
|
subArchiveProvider: Scalars['Boolean']['output'];
|
|
58168
59482
|
subCancelRelationship: SubRelationship;
|
|
59483
|
+
/** Merge overlapping subscriptions onto one: optionally move the kept one to the bundled plan, then cancel the others. Destructive; confirm with the user first. */
|
|
59484
|
+
subConsolidateRelationships: SubConsolidationResult;
|
|
58169
59485
|
subCreateAgent: SubAiAgent;
|
|
58170
59486
|
subCreateAsset: SubAsset;
|
|
58171
59487
|
/** Benchmark dataset: ingest a new observed price point. Tenant-scoped so each workspace owns its own contributions; the public read query UNIONs across workspaces (Phase 4). Available now so internal data seeding (Phase 1) and future Phase 2 ingestion pipelines have a stable write API. */
|
|
@@ -58181,14 +59497,27 @@ export type Mutation = {
|
|
|
58181
59497
|
subCreateWorkflow: SubWorkflow;
|
|
58182
59498
|
/** Disconnect a channel: ingestion stops and its discovery-source slot is released. The channel and its inbox history are kept; connecting the same address again with subCreateChannel reuses it. */
|
|
58183
59499
|
subDisconnectChannel: SubCommunicationChannel;
|
|
59500
|
+
/** Hide a bundle suggestion (a SubOverlap id from subSavingsOverview) until its set of subscriptions changes. */
|
|
59501
|
+
subDismissBundle: Scalars['Boolean']['output'];
|
|
59502
|
+
subDismissDecision: SubDecision;
|
|
58184
59503
|
subIngestMessage: SubInboxMessage;
|
|
58185
59504
|
subMarkInvoicePaid: SubInvoice;
|
|
58186
59505
|
subMarkMessageRead: SubInboxMessage;
|
|
58187
59506
|
subModerateListing: SubMarketplaceReport;
|
|
59507
|
+
/** Recompute the health score of every ACTIVE and TRIAL relationship in the workspace from recorded usage, billing, pricing and overlap signals. Agent runs do this automatically before they evaluate. */
|
|
59508
|
+
subRecomputeHealthScores: SubHealthRecomputeResult;
|
|
59509
|
+
/** Register or repair the scheduled sweep of every workspace that has an enabled renewal, trial, cost or plan agent. */
|
|
59510
|
+
subReconcileAgentSchedules: SubAgentScheduleReconcileResult;
|
|
58188
59511
|
subRejectAdapter: SubAdapterSubmission;
|
|
58189
59512
|
subRemovePaymentInstrument: Scalars['Boolean']['output'];
|
|
59513
|
+
/** Run one agent's decision strategies over the workspace's ACTIVE and TRIAL relationships and queue the decisions. With dryRun: true (the default) no relationship is changed. dryRun: false also applies high-confidence decisions, and only an AUTONOMOUS agent in an enrolled workspace may do that. Writes the agent's lastRunAt. Each run (dry or live) is one AI action against the workspace's subscriberbot.ai.actions.monthly allowance; a workspace that has used it up gets QUOTA_EXHAUSTED from the gateway and nothing runs. */
|
|
59514
|
+
subRunAgent: SubAgentRunResult;
|
|
59515
|
+
/** Run the workspace's scheduled agent sweep. Called by wspace-scheduler-svc as this service's own service actor; a super admin may run it on demand. */
|
|
59516
|
+
subRunScheduledAgentSweep: SubAgentSweep;
|
|
58190
59517
|
/** Change an agent's operating posture (DISABLED / SUGGEST_ONLY / AUTONOMOUS). */
|
|
58191
59518
|
subSetAgentStatus: SubAiAgent;
|
|
59519
|
+
/** Create, update or remove (null / zero amount) a monthly spend budget. Returns null when the budget was removed. */
|
|
59520
|
+
subSetSpendBudget?: Maybe<SubSpendBudget>;
|
|
58192
59521
|
/** Advance a relationship through its lifecycle (validated transitions). */
|
|
58193
59522
|
subTransitionRelationship: SubRelationship;
|
|
58194
59523
|
subUpdateProvider: SubProvider;
|
|
@@ -58208,7 +59537,7 @@ export type Mutation = {
|
|
|
58208
59537
|
* `workflowProposal(id)`.
|
|
58209
59538
|
*/
|
|
58210
59539
|
suggestNextNode: WorkflowProposal;
|
|
58211
|
-
/** Compute (and persist) an AI/ML category suggestion for a capture event: a deterministic keyword classifier always
|
|
59540
|
+
/** Compute (and persist) an AI/ML category suggestion for a capture event: the user's own earlier project choices for the same site/app and a deterministic keyword classifier always run (ingest stores the same local suggestion automatically); an LLM refinement is attempted only when a real provider key is configured, and its result is used only on success (BOFF-4146). Does not change `projectId` — the suggestion must be explicitly accepted. */
|
|
58212
59541
|
suggestTimeCampusCaptureEventCategory: TimeCampusCategorySuggestion;
|
|
58213
59542
|
/** Switch to a project and generate a project-scoped JWT (24h). Gateway gates on `project:read` at workspace scope; the resolver (`ProjectLifecycleService.switchProject`) re-asserts that the caller is a member of `projectId` AND that `projectId` belongs to the current workspace, and that the project is not archived. Defense in depth on a field that mints a long-lived authn token. (BOFF-2655) */
|
|
58214
59543
|
switchProject: ProjectAuthResponse;
|
|
@@ -58218,7 +59547,7 @@ export type Mutation = {
|
|
|
58218
59547
|
* restricted to super_admin.
|
|
58219
59548
|
*/
|
|
58220
59549
|
syncContainers: ContainerActionResponse;
|
|
58221
|
-
/** Seed the starter taxonomy and normalize every legacy employee/candidate skill string into canonical skills. Idempotent: safe to re-run. */
|
|
59550
|
+
/** Seed the starter taxonomy and normalize every legacy employee/candidate skill string and job-posting requirement into canonical skills. Idempotent: safe to re-run. */
|
|
58222
59551
|
syncCrewSkills: CrewSkillSyncReport;
|
|
58223
59552
|
/** Cross-layer sync endpoint for global-tenant-svc. Handles workspace creation, member addition, and member removal. **Access Control:** - Restricted to `service` actor type only (M2M calls) - Called by global-tenant-svc via wspace-int-gateway - Public gateway rejects any non-service actor - Internal gateway relies on network isolation (K8s NetworkPolicy + Istio mTLS) **Why actorTypes instead of action/resource RBAC:** - SYNC_WORKSPACE creates new workspaces - can't check permissions on non-existent resource - Internal gateway (wspace-int-gateway) has no RBAC middleware - directives aren't enforced - actorTypes clearly documents M2M-only intent and IS enforced by public gateway */
|
|
58224
59553
|
syncFromGlobal: SyncFromGlobalResult;
|
|
@@ -58237,6 +59566,8 @@ export type Mutation = {
|
|
|
58237
59566
|
syncHealthyBowlOrderPayment: Order;
|
|
58238
59567
|
/** Backfill/refresh the farm's real multi-year daily + monthly weather history from the Open-Meteo ERA5 archive (the "Re-sync history" action). Replaces any prior history for the workspace and returns the refreshed series. */
|
|
58239
59568
|
syncHealthyBowlWeatherHistory: WeatherHistorySeries;
|
|
59569
|
+
/** Pull an OAuth-backed channel from its provider now instead of waiting for the next scheduled sync. */
|
|
59570
|
+
syncTimeCampusCaptureChannel: TimeCampusCaptureChannelSyncResult;
|
|
58240
59571
|
tagAnalyticsDashboard: AnalyticsDashboardTagAssignment;
|
|
58241
59572
|
tagAnalyticsMetric: AnalyticsMetricTagAssignment;
|
|
58242
59573
|
tagAnalyticsReport: AnalyticsReportTagAssignment;
|
|
@@ -58265,6 +59596,8 @@ export type Mutation = {
|
|
|
58265
59596
|
/** Take a workflow's edit lease from whoever holds it. */
|
|
58266
59597
|
takeOverWorkflowEditLease: WorkflowEditLease;
|
|
58267
59598
|
tcpAddCitation: TcpCitation;
|
|
59599
|
+
/** Append a claim to a story's evidence trail. */
|
|
59600
|
+
tcpAddStoryClaim: TcpStoryClaim;
|
|
58268
59601
|
tcpArchiveArchiveItem: Scalars['Boolean']['output'];
|
|
58269
59602
|
tcpArchiveTopic: Scalars['Boolean']['output'];
|
|
58270
59603
|
tcpCreateArchiveItem: TcpArchiveItem;
|
|
@@ -58273,12 +59606,17 @@ export type Mutation = {
|
|
|
58273
59606
|
tcpCreateTopic: TcpTopic;
|
|
58274
59607
|
/** Generates a citation-grounded AI response: fetches the requested story's citations, or collection's archive items + oral histories, or oral history's transcript — always filtered to content the caller can read (PUBLIC/COMMUNITY access level only) — builds a prompt instructing the model to answer ONLY from those sources, and persists the run (`groundingRefs`, `content`, `uncertainty`) as `PENDING` review. Gated by the `theculturepost.ai-context` feature flag (defaults to enabled). */
|
|
58275
59608
|
tcpGenerateAiContext: TcpAgentRun;
|
|
59609
|
+
/** Link a citation to a claim on the same story, or unlink it (claimId: null). */
|
|
59610
|
+
tcpLinkCitationToClaim: TcpCitation;
|
|
58276
59611
|
tcpLockDiscussion: TcpDiscussion;
|
|
58277
59612
|
/** Moderate a reply (approve / flag / remove) — respectful-by-design controls. */
|
|
58278
|
-
tcpModerateReply:
|
|
59613
|
+
tcpModerateReply: EntityComment;
|
|
58279
59614
|
tcpOpenDiscussion: TcpDiscussion;
|
|
58280
|
-
|
|
59615
|
+
/** Post a reply to an open discussion. The reply is stored as an EntityComment in wspace-conversations-svc, authored by the caller, and starts PENDING. */
|
|
59616
|
+
tcpPostReply: EntityComment;
|
|
58281
59617
|
tcpRecordOralHistory: TcpOralHistory;
|
|
59618
|
+
/** Remove a claim from the evidence trail. Its citations stay on the story as general sources (unlinked, never deleted) and the trail is renumbered. */
|
|
59619
|
+
tcpRemoveStoryClaim: Scalars['Boolean']['output'];
|
|
58282
59620
|
/** Editor human-in-the-loop review of a generated AI context run — approves or rejects it and records who/when/why. Only a `PENDING` run can be reviewed; reviewing an already-reviewed run is rejected (no silent overwrite of a prior editorial decision). */
|
|
58283
59621
|
tcpReviewAiContext: TcpAgentRun;
|
|
58284
59622
|
/** Toggle whether the calling actor has the given story on their personal reading list. Returns the new bookmarked state. Self-scoped: the story id is a target to act on, but the row created/removed is always owned by the caller (`ctx.actorId`) — never another actor's. */
|
|
@@ -58288,6 +59626,8 @@ export type Mutation = {
|
|
|
58288
59626
|
tcpUpdateArchiveItem: TcpArchiveItem;
|
|
58289
59627
|
tcpUpdateOralHistory: TcpOralHistory;
|
|
58290
59628
|
tcpUpdateStory: TcpStory;
|
|
59629
|
+
/** Edit a claim's text/anchor or move it within the evidence trail. */
|
|
59630
|
+
tcpUpdateStoryClaim: TcpStoryClaim;
|
|
58291
59631
|
tcpUpdateTopic: TcpTopic;
|
|
58292
59632
|
tcpVerifyCitation: TcpCitation;
|
|
58293
59633
|
/** Soft-deletes (withdraws) a recorded oral history via the existing `deletedAt` column — the only API path for a narrator's consent-withdrawal request once testimony has been recorded. */
|
|
@@ -58467,6 +59807,11 @@ export type Mutation = {
|
|
|
58467
59807
|
trackShareDownload: Scalars['Boolean']['output'];
|
|
58468
59808
|
/** Track usage consumption Called by gateway after successful operations */
|
|
58469
59809
|
trackUsage: Scalars['Boolean']['output'];
|
|
59810
|
+
/**
|
|
59811
|
+
* Hand a connection to another person, for example when its owner leaves. Workspace
|
|
59812
|
+
* administrators only.
|
|
59813
|
+
*/
|
|
59814
|
+
transferConnectionOwnership: IntegrationConnection;
|
|
58470
59815
|
transferGroupOwnership: Group;
|
|
58471
59816
|
transferInventoryStock: MtwInventoryTransferResult;
|
|
58472
59817
|
/** Transfer control to another collaborator */
|
|
@@ -58658,6 +60003,8 @@ export type Mutation = {
|
|
|
58658
60003
|
updateCrewOnboardingTask: CrewOnboardingTask;
|
|
58659
60004
|
updateCrewPayrollRecord: CrewPayrollRecord;
|
|
58660
60005
|
updateCrewProject: CrewProject;
|
|
60006
|
+
/** Rename, recategorise or re-alias a skill. Editing a BACKFILL skill marks it reviewed (CUSTOM). */
|
|
60007
|
+
updateCrewSkill: CrewSkill;
|
|
58661
60008
|
updateCrewTeam: CrewTeam;
|
|
58662
60009
|
updateCrewTimeEntry: CrewTimeEntry;
|
|
58663
60010
|
updateCrewTrainingCourse: CrewTrainingCourse;
|
|
@@ -59417,6 +60764,11 @@ export type MutationAcknowledgeHealthyBowlStressedZoneArgs = {
|
|
|
59417
60764
|
id: Scalars['ID']['input'];
|
|
59418
60765
|
};
|
|
59419
60766
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
60767
|
+
export type MutationAcknowledgeMtwTrackingAlertArgs = {
|
|
60768
|
+
alertType: MtwTrackingAlertType;
|
|
60769
|
+
shipmentId: Scalars['ID']['input'];
|
|
60770
|
+
};
|
|
60771
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
59420
60772
|
export type MutationAcquireFileLockArgs = {
|
|
59421
60773
|
input: AcquireLockInput;
|
|
59422
60774
|
};
|
|
@@ -60759,6 +62111,11 @@ export type MutationBuiRecordMyLessonProgressArgs = {
|
|
|
60759
62111
|
input: BuiRecordLessonProgressInput;
|
|
60760
62112
|
};
|
|
60761
62113
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62114
|
+
export type MutationBuiRecordProctoringSignalsArgs = {
|
|
62115
|
+
id: Scalars['ID']['input'];
|
|
62116
|
+
signals: Array<BuiProctoringSignalInput>;
|
|
62117
|
+
};
|
|
62118
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
60762
62119
|
export type MutationBuiRegisterLtiPlatformArgs = {
|
|
60763
62120
|
input: BuiRegisterLtiPlatformInput;
|
|
60764
62121
|
};
|
|
@@ -60845,6 +62202,18 @@ export type MutationBuiSuggestNextLessonArgs = {
|
|
|
60845
62202
|
enrollmentId: Scalars['ID']['input'];
|
|
60846
62203
|
};
|
|
60847
62204
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62205
|
+
export type MutationBuiSyncExternalCertificateArgs = {
|
|
62206
|
+
input: BuiSyncExternalCertificateInput;
|
|
62207
|
+
};
|
|
62208
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62209
|
+
export type MutationBuiSyncExternalCourseArgs = {
|
|
62210
|
+
input: BuiSyncExternalCourseInput;
|
|
62211
|
+
};
|
|
62212
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62213
|
+
export type MutationBuiSyncExternalEnrollmentArgs = {
|
|
62214
|
+
input: BuiSyncExternalEnrollmentInput;
|
|
62215
|
+
};
|
|
62216
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
60848
62217
|
export type MutationBuiSyncLtiGradeArgs = {
|
|
60849
62218
|
resourceLinkId: Scalars['ID']['input'];
|
|
60850
62219
|
submissionId: Scalars['ID']['input'];
|
|
@@ -61453,11 +62822,21 @@ export type MutationColUntagStoryArgs = {
|
|
|
61453
62822
|
input: ColUntagStoryInput;
|
|
61454
62823
|
};
|
|
61455
62824
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62825
|
+
export type MutationColUpdateEventArgs = {
|
|
62826
|
+
id: Scalars['ID']['input'];
|
|
62827
|
+
input: ColUpdateEventInput;
|
|
62828
|
+
};
|
|
62829
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
61456
62830
|
export type MutationColUpdateFamilyTreeArgs = {
|
|
61457
62831
|
id: Scalars['ID']['input'];
|
|
61458
62832
|
input: ColUpdateFamilyTreeInput;
|
|
61459
62833
|
};
|
|
61460
62834
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62835
|
+
export type MutationColUpdateMembershipArgs = {
|
|
62836
|
+
id: Scalars['ID']['input'];
|
|
62837
|
+
input: ColUpdateMembershipInput;
|
|
62838
|
+
};
|
|
62839
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
61461
62840
|
export type MutationColUpdateMemoryArgs = {
|
|
61462
62841
|
id: Scalars['ID']['input'];
|
|
61463
62842
|
input: ColUpdateMemoryInput;
|
|
@@ -61468,6 +62847,16 @@ export type MutationColUpdatePersonArgs = {
|
|
|
61468
62847
|
input: ColUpdatePersonInput;
|
|
61469
62848
|
};
|
|
61470
62849
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62850
|
+
export type MutationColUpdateRelationshipArgs = {
|
|
62851
|
+
id: Scalars['ID']['input'];
|
|
62852
|
+
input: ColUpdateRelationshipInput;
|
|
62853
|
+
};
|
|
62854
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62855
|
+
export type MutationColUpdateStoryArgs = {
|
|
62856
|
+
id: Scalars['ID']['input'];
|
|
62857
|
+
input: ColUpdateStoryInput;
|
|
62858
|
+
};
|
|
62859
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
61471
62860
|
export type MutationCollectHealthyBowlCsaPickupBoxArgs = {
|
|
61472
62861
|
input: CollectHealthyBowlCsaPickupBoxInput;
|
|
61473
62862
|
};
|
|
@@ -61982,6 +63371,11 @@ export type MutationCooCreateWardrobeItemArgs = {
|
|
|
61982
63371
|
input: CooCreateWardrobeItemInput;
|
|
61983
63372
|
};
|
|
61984
63373
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63374
|
+
export type MutationCooCurateCollectionArgs = {
|
|
63375
|
+
brandId: Scalars['ID']['input'];
|
|
63376
|
+
season: CooSeason;
|
|
63377
|
+
};
|
|
63378
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
61985
63379
|
export type MutationCooDeclineReturnRequestArgs = {
|
|
61986
63380
|
input: CooDeclineReturnRequestInput;
|
|
61987
63381
|
};
|
|
@@ -62076,6 +63470,15 @@ export type MutationCooSetStyleItemInventoryArgs = {
|
|
|
62076
63470
|
input: CooSetStyleItemInventoryInput;
|
|
62077
63471
|
};
|
|
62078
63472
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63473
|
+
export type MutationCooSuggestCollaborationMatchArgs = {
|
|
63474
|
+
brandId: Scalars['ID']['input'];
|
|
63475
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
63476
|
+
};
|
|
63477
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63478
|
+
export type MutationCooSuggestOutfitArgs = {
|
|
63479
|
+
input: CooSuggestOutfitInput;
|
|
63480
|
+
};
|
|
63481
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62079
63482
|
export type MutationCooSyncCollaborationPaymentArgs = {
|
|
62080
63483
|
id: Scalars['ID']['input'];
|
|
62081
63484
|
};
|
|
@@ -62190,6 +63593,19 @@ export type MutationCosAddSchemaFieldArgs = {
|
|
|
62190
63593
|
input: CosAddSchemaFieldInput;
|
|
62191
63594
|
};
|
|
62192
63595
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63596
|
+
export type MutationCosAiDraftReleaseArgs = {
|
|
63597
|
+
notebookId: Scalars['ID']['input'];
|
|
63598
|
+
};
|
|
63599
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63600
|
+
export type MutationCosAiProposeSchemaFieldsArgs = {
|
|
63601
|
+
datasetId: Scalars['ID']['input'];
|
|
63602
|
+
sample?: InputMaybe<CosSchemaSampleInput>;
|
|
63603
|
+
};
|
|
63604
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63605
|
+
export type MutationCosAiTriageRunArgs = {
|
|
63606
|
+
runId: Scalars['ID']['input'];
|
|
63607
|
+
};
|
|
63608
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62193
63609
|
export type MutationCosArchiveCollectionArgs = {
|
|
62194
63610
|
id: Scalars['ID']['input'];
|
|
62195
63611
|
};
|
|
@@ -62217,6 +63633,12 @@ export type MutationCosCompleteAnalysisArgs = {
|
|
|
62217
63633
|
status: CosAnalysisStatus;
|
|
62218
63634
|
};
|
|
62219
63635
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63636
|
+
export type MutationCosCompleteRunStepArgs = {
|
|
63637
|
+
input: CosCompleteRunStepInput;
|
|
63638
|
+
runId: Scalars['ID']['input'];
|
|
63639
|
+
stepId: Scalars['ID']['input'];
|
|
63640
|
+
};
|
|
63641
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62220
63642
|
export type MutationCosCreateCollectionArgs = {
|
|
62221
63643
|
input: CosCreateCollectionInput;
|
|
62222
63644
|
};
|
|
@@ -62268,6 +63690,11 @@ export type MutationCosPublishReleaseArgs = {
|
|
|
62268
63690
|
id: Scalars['ID']['input'];
|
|
62269
63691
|
};
|
|
62270
63692
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
63693
|
+
export type MutationCosRecordRunTelemetryArgs = {
|
|
63694
|
+
input: CosRunTelemetryInput;
|
|
63695
|
+
runId: Scalars['ID']['input'];
|
|
63696
|
+
};
|
|
63697
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
62271
63698
|
export type MutationCosRevokeAccessArgs = {
|
|
62272
63699
|
id: Scalars['ID']['input'];
|
|
62273
63700
|
};
|
|
@@ -65839,6 +67266,11 @@ export type MutationEscalateIncidentArgs = {
|
|
|
65839
67266
|
id: Scalars['ID']['input'];
|
|
65840
67267
|
};
|
|
65841
67268
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67269
|
+
export type MutationEventfullyManagedApplyAgendaFixArgs = {
|
|
67270
|
+
eventId: Scalars['ID']['input'];
|
|
67271
|
+
input: EventfullyManagedApplyAgendaFixInput;
|
|
67272
|
+
};
|
|
67273
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
65842
67274
|
export type MutationEventfullyManagedCreateAttendeeArgs = {
|
|
65843
67275
|
input: EventfullyManagedAttendeeInput;
|
|
65844
67276
|
};
|
|
@@ -66007,6 +67439,11 @@ export type MutationEventfullyManagedEraseSpeakerPersonalDataArgs = {
|
|
|
66007
67439
|
id: Scalars['ID']['input'];
|
|
66008
67440
|
};
|
|
66009
67441
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67442
|
+
export type MutationEventfullyManagedForecastAttendanceArgs = {
|
|
67443
|
+
eventId: Scalars['ID']['input'];
|
|
67444
|
+
input?: InputMaybe<EventfullyManagedForecastInput>;
|
|
67445
|
+
};
|
|
67446
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
66010
67447
|
export type MutationEventfullyManagedGenerateBadgeArgs = {
|
|
66011
67448
|
registrationId: Scalars['ID']['input'];
|
|
66012
67449
|
templateId?: InputMaybe<Scalars['ID']['input']>;
|
|
@@ -66031,6 +67468,11 @@ export type MutationEventfullyManagedLeaveVirtualSessionArgs = {
|
|
|
66031
67468
|
sessionId: Scalars['ID']['input'];
|
|
66032
67469
|
};
|
|
66033
67470
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67471
|
+
export type MutationEventfullyManagedPredictNoShowsArgs = {
|
|
67472
|
+
eventId: Scalars['ID']['input'];
|
|
67473
|
+
input?: InputMaybe<EventfullyManagedForecastInput>;
|
|
67474
|
+
};
|
|
67475
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
66034
67476
|
export type MutationEventfullyManagedPromoteVirtualPresenterArgs = {
|
|
66035
67477
|
actorId: Scalars['ID']['input'];
|
|
66036
67478
|
sessionId: Scalars['ID']['input'];
|
|
@@ -66040,6 +67482,16 @@ export type MutationEventfullyManagedPublishAnnouncementArgs = {
|
|
|
66040
67482
|
id: Scalars['ID']['input'];
|
|
66041
67483
|
};
|
|
66042
67484
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67485
|
+
export type MutationEventfullyManagedResolveAgendaConflictsArgs = {
|
|
67486
|
+
eventId: Scalars['ID']['input'];
|
|
67487
|
+
input?: InputMaybe<EventfullyManagedForecastInput>;
|
|
67488
|
+
};
|
|
67489
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
67490
|
+
export type MutationEventfullyManagedRightSizeSessionsArgs = {
|
|
67491
|
+
eventId: Scalars['ID']['input'];
|
|
67492
|
+
input?: InputMaybe<EventfullyManagedForecastInput>;
|
|
67493
|
+
};
|
|
67494
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
66043
67495
|
export type MutationEventfullyManagedScanCheckInArgs = {
|
|
66044
67496
|
input: EventfullyManagedScanCheckInInput;
|
|
66045
67497
|
};
|
|
@@ -68682,6 +70134,11 @@ export type MutationMatchHealthyBowlStatementLineArgs = {
|
|
|
68682
70134
|
input: MatchHealthyBowlStatementLineInput;
|
|
68683
70135
|
};
|
|
68684
70136
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
70137
|
+
export type MutationMergeCrewSkillsArgs = {
|
|
70138
|
+
sourceId: Scalars['ID']['input'];
|
|
70139
|
+
targetId: Scalars['ID']['input'];
|
|
70140
|
+
};
|
|
70141
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
68685
70142
|
export type MutationMergeTagArgs = {
|
|
68686
70143
|
sourceId: Scalars['ID']['input'];
|
|
68687
70144
|
targetId: Scalars['ID']['input'];
|
|
@@ -71324,6 +72781,11 @@ export type MutationRemoveCrewJobPostingArgs = {
|
|
|
71324
72781
|
id: Scalars['ID']['input'];
|
|
71325
72782
|
};
|
|
71326
72783
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
72784
|
+
export type MutationRemoveCrewJobPostingSkillArgs = {
|
|
72785
|
+
jobPostingId: Scalars['ID']['input'];
|
|
72786
|
+
skillId: Scalars['ID']['input'];
|
|
72787
|
+
};
|
|
72788
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
71327
72789
|
export type MutationRemoveCrewLeaveRequestArgs = {
|
|
71328
72790
|
id: Scalars['ID']['input'];
|
|
71329
72791
|
};
|
|
@@ -71352,6 +72814,10 @@ export type MutationRemoveCrewSkillArgs = {
|
|
|
71352
72814
|
id: Scalars['ID']['input'];
|
|
71353
72815
|
};
|
|
71354
72816
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
72817
|
+
export type MutationRemoveCrewSkillRelationArgs = {
|
|
72818
|
+
id: Scalars['ID']['input'];
|
|
72819
|
+
};
|
|
72820
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
71355
72821
|
export type MutationRemoveCrewTeamArgs = {
|
|
71356
72822
|
id: Scalars['ID']['input'];
|
|
71357
72823
|
};
|
|
@@ -72441,6 +73907,10 @@ export type MutationRunSecurityScanArgs = {
|
|
|
72441
73907
|
vibeId: Scalars['ID']['input'];
|
|
72442
73908
|
};
|
|
72443
73909
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73910
|
+
export type MutationRunTimeCampusTimeIntelligenceSweepArgs = {
|
|
73911
|
+
input?: InputMaybe<TimeCampusTimeIntelligenceSweepInput>;
|
|
73912
|
+
};
|
|
73913
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
72444
73914
|
export type MutationSaveAssistantTurnArgs = {
|
|
72445
73915
|
input: SaveAssistantTurnInput;
|
|
72446
73916
|
};
|
|
@@ -72735,6 +74205,10 @@ export type MutationSetConfigurationArgs = {
|
|
|
72735
74205
|
value: Scalars['JSON']['input'];
|
|
72736
74206
|
};
|
|
72737
74207
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74208
|
+
export type MutationSetCrewJobPostingSkillArgs = {
|
|
74209
|
+
input: SetCrewJobPostingSkillInput;
|
|
74210
|
+
};
|
|
74211
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
72738
74212
|
export type MutationSetDashboardRlsPolicyArgs = {
|
|
72739
74213
|
dashboardId: Scalars['ID']['input'];
|
|
72740
74214
|
rlsPolicyId?: InputMaybe<Scalars['ID']['input']>;
|
|
@@ -72977,6 +74451,10 @@ export type MutationShareComponentArgs = {
|
|
|
72977
74451
|
input: ShareEntityInput;
|
|
72978
74452
|
};
|
|
72979
74453
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74454
|
+
export type MutationShareConnectionArgs = {
|
|
74455
|
+
input: ShareConnectionInput;
|
|
74456
|
+
};
|
|
74457
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
72980
74458
|
export type MutationShareDashboardArgs = {
|
|
72981
74459
|
input: BigConsoleShareDashboardInput;
|
|
72982
74460
|
};
|
|
@@ -73228,6 +74706,10 @@ export type MutationSubAdminPurgeWorkspaceArgs = {
|
|
|
73228
74706
|
workspaceId: Scalars['ID']['input'];
|
|
73229
74707
|
};
|
|
73230
74708
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74709
|
+
export type MutationSubApplyDecisionArgs = {
|
|
74710
|
+
id: Scalars['ID']['input'];
|
|
74711
|
+
};
|
|
74712
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73231
74713
|
export type MutationSubApproveAdapterArgs = {
|
|
73232
74714
|
id: Scalars['ID']['input'];
|
|
73233
74715
|
notes?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -73241,6 +74723,10 @@ export type MutationSubCancelRelationshipArgs = {
|
|
|
73241
74723
|
id: Scalars['ID']['input'];
|
|
73242
74724
|
};
|
|
73243
74725
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74726
|
+
export type MutationSubConsolidateRelationshipsArgs = {
|
|
74727
|
+
input: SubConsolidateRelationshipsInput;
|
|
74728
|
+
};
|
|
74729
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73244
74730
|
export type MutationSubCreateAgentArgs = {
|
|
73245
74731
|
input: SubCreateAgentInput;
|
|
73246
74732
|
};
|
|
@@ -73293,6 +74779,16 @@ export type MutationSubDisconnectChannelArgs = {
|
|
|
73293
74779
|
id: Scalars['ID']['input'];
|
|
73294
74780
|
};
|
|
73295
74781
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74782
|
+
export type MutationSubDismissBundleArgs = {
|
|
74783
|
+
id: Scalars['ID']['input'];
|
|
74784
|
+
reason?: InputMaybe<Scalars['String']['input']>;
|
|
74785
|
+
};
|
|
74786
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74787
|
+
export type MutationSubDismissDecisionArgs = {
|
|
74788
|
+
id: Scalars['ID']['input'];
|
|
74789
|
+
reason?: InputMaybe<Scalars['String']['input']>;
|
|
74790
|
+
};
|
|
74791
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73296
74792
|
export type MutationSubIngestMessageArgs = {
|
|
73297
74793
|
input: SubIngestMessageInput;
|
|
73298
74794
|
};
|
|
@@ -73320,11 +74816,24 @@ export type MutationSubRemovePaymentInstrumentArgs = {
|
|
|
73320
74816
|
id: Scalars['ID']['input'];
|
|
73321
74817
|
};
|
|
73322
74818
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74819
|
+
export type MutationSubRunAgentArgs = {
|
|
74820
|
+
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
|
|
74821
|
+
id: Scalars['ID']['input'];
|
|
74822
|
+
};
|
|
74823
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74824
|
+
export type MutationSubRunScheduledAgentSweepArgs = {
|
|
74825
|
+
input?: InputMaybe<SubRunAgentSweepInput>;
|
|
74826
|
+
};
|
|
74827
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73323
74828
|
export type MutationSubSetAgentStatusArgs = {
|
|
73324
74829
|
id: Scalars['ID']['input'];
|
|
73325
74830
|
status: SubAgentStatus;
|
|
73326
74831
|
};
|
|
73327
74832
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74833
|
+
export type MutationSubSetSpendBudgetArgs = {
|
|
74834
|
+
input: SubSetSpendBudgetInput;
|
|
74835
|
+
};
|
|
74836
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73328
74837
|
export type MutationSubTransitionRelationshipArgs = {
|
|
73329
74838
|
id: Scalars['ID']['input'];
|
|
73330
74839
|
status: SubRelationshipStatus;
|
|
@@ -73423,6 +74932,10 @@ export type MutationSyncHealthyBowlWeatherHistoryArgs = {
|
|
|
73423
74932
|
context: ContextInput;
|
|
73424
74933
|
};
|
|
73425
74934
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74935
|
+
export type MutationSyncTimeCampusCaptureChannelArgs = {
|
|
74936
|
+
id: Scalars['ID']['input'];
|
|
74937
|
+
};
|
|
74938
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73426
74939
|
export type MutationTagAnalyticsDashboardArgs = {
|
|
73427
74940
|
input: TagAnalyticsDashboardInput;
|
|
73428
74941
|
};
|
|
@@ -73511,6 +75024,10 @@ export type MutationTcpAddCitationArgs = {
|
|
|
73511
75024
|
input: TcpCreateCitationInput;
|
|
73512
75025
|
};
|
|
73513
75026
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
75027
|
+
export type MutationTcpAddStoryClaimArgs = {
|
|
75028
|
+
input: TcpCreateStoryClaimInput;
|
|
75029
|
+
};
|
|
75030
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73514
75031
|
export type MutationTcpArchiveArchiveItemArgs = {
|
|
73515
75032
|
id: Scalars['ID']['input'];
|
|
73516
75033
|
};
|
|
@@ -73539,6 +75056,11 @@ export type MutationTcpGenerateAiContextArgs = {
|
|
|
73539
75056
|
input: TcpGenerateAiContextInput;
|
|
73540
75057
|
};
|
|
73541
75058
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
75059
|
+
export type MutationTcpLinkCitationToClaimArgs = {
|
|
75060
|
+
citationId: Scalars['ID']['input'];
|
|
75061
|
+
claimId?: InputMaybe<Scalars['ID']['input']>;
|
|
75062
|
+
};
|
|
75063
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73542
75064
|
export type MutationTcpLockDiscussionArgs = {
|
|
73543
75065
|
id: Scalars['ID']['input'];
|
|
73544
75066
|
};
|
|
@@ -73560,6 +75082,10 @@ export type MutationTcpRecordOralHistoryArgs = {
|
|
|
73560
75082
|
input: TcpCreateOralHistoryInput;
|
|
73561
75083
|
};
|
|
73562
75084
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
75085
|
+
export type MutationTcpRemoveStoryClaimArgs = {
|
|
75086
|
+
id: Scalars['ID']['input'];
|
|
75087
|
+
};
|
|
75088
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73563
75089
|
export type MutationTcpReviewAiContextArgs = {
|
|
73564
75090
|
approved: Scalars['Boolean']['input'];
|
|
73565
75091
|
id: Scalars['ID']['input'];
|
|
@@ -73590,6 +75116,11 @@ export type MutationTcpUpdateStoryArgs = {
|
|
|
73590
75116
|
input: TcpUpdateStoryInput;
|
|
73591
75117
|
};
|
|
73592
75118
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
75119
|
+
export type MutationTcpUpdateStoryClaimArgs = {
|
|
75120
|
+
id: Scalars['ID']['input'];
|
|
75121
|
+
input: TcpUpdateStoryClaimInput;
|
|
75122
|
+
};
|
|
75123
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
73593
75124
|
export type MutationTcpUpdateTopicArgs = {
|
|
73594
75125
|
id: Scalars['ID']['input'];
|
|
73595
75126
|
input: TcpUpdateTopicInput;
|
|
@@ -74064,6 +75595,11 @@ export type MutationTrackUsageArgs = {
|
|
|
74064
75595
|
input: TrackUsageInput;
|
|
74065
75596
|
};
|
|
74066
75597
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
75598
|
+
export type MutationTransferConnectionOwnershipArgs = {
|
|
75599
|
+
connectionId: Scalars['ID']['input'];
|
|
75600
|
+
ownerId: Scalars['ID']['input'];
|
|
75601
|
+
};
|
|
75602
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74067
75603
|
export type MutationTransferGroupOwnershipArgs = {
|
|
74068
75604
|
groupId: Scalars['ID']['input'];
|
|
74069
75605
|
newOwnerId: Scalars['ID']['input'];
|
|
@@ -74680,6 +76216,11 @@ export type MutationUpdateCrewProjectArgs = {
|
|
|
74680
76216
|
input: UpdateCrewProjectInput;
|
|
74681
76217
|
};
|
|
74682
76218
|
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
76219
|
+
export type MutationUpdateCrewSkillArgs = {
|
|
76220
|
+
id: Scalars['ID']['input'];
|
|
76221
|
+
input: UpdateCrewSkillInput;
|
|
76222
|
+
};
|
|
76223
|
+
/** Base Mutation type with placeholder field. Extended by individual mutation files. */
|
|
74683
76224
|
export type MutationUpdateCrewTeamArgs = {
|
|
74684
76225
|
id: Scalars['ID']['input'];
|
|
74685
76226
|
input: UpdateCrewTeamInput;
|
|
@@ -87530,7 +89071,11 @@ export type Query = {
|
|
|
87530
89071
|
_planmagnetService?: Maybe<Scalars['String']['output']>;
|
|
87531
89072
|
_planmagnetVersion?: Maybe<Scalars['String']['output']>;
|
|
87532
89073
|
_serviceHealth: Scalars['String']['output'];
|
|
87533
|
-
/**
|
|
89074
|
+
/**
|
|
89075
|
+
* Who a person is reached through when a service shares its own resources with chosen people,
|
|
89076
|
+
* groups or projects (service-only): the groups and projects they belong to in the calling
|
|
89077
|
+
* service's workspace, and whether they administer the resource type there
|
|
89078
|
+
*/
|
|
87534
89079
|
accessPrincipals: AccessPrincipals;
|
|
87535
89080
|
/** Anonymously reveal the credential(s) behind a signed share link. */
|
|
87536
89081
|
accessSharedSecret: SharedSecretView;
|
|
@@ -87902,7 +89447,13 @@ export type Query = {
|
|
|
87902
89447
|
buiMyTutorSession?: Maybe<BuiTutorSession>;
|
|
87903
89448
|
/** Type-C self-scoped list: the calling learner's own tutor sessions. No `learnerId` arg — identity comes exclusively from the authenticated actor, mirroring `buiMySubmissions` (BOFF FERPA/IDOR pattern). */
|
|
87904
89449
|
buiMyTutorSessions: BuiTutorSessionConnection;
|
|
89450
|
+
/** The workspace's getting-started checklist. */
|
|
89451
|
+
buiOnboardingStatus: BuiOnboardingStatus;
|
|
87905
89452
|
buiPendingCourseKnowledgeChange?: Maybe<BuiCourseKnowledgeChange>;
|
|
89453
|
+
/** BOFF-9691: open the learner's identity photo/ID for a session in the review queue (instructor/admin only — the same permission as the queue itself). Null when the session has no identity file, or the file is gone or is not the learner's own upload. */
|
|
89454
|
+
buiProctoringIdentityFile?: Maybe<BuiProctoringIdentityFile>;
|
|
89455
|
+
/** BOFF-9690: reviewer timeline of one proctoring session's signals, oldest first. Instructor/admin only (same directive as the review queue); signals past the retention period are never returned. Paginated with explicit `limit` (default 50, max 100) and `after` (the previous page's `pageInfo.cursor`) rather than `PaginationInput`, whose composed supergraph shape carries only `limit`. */
|
|
89456
|
+
buiProctoringSessionSignals: BuiProctoringSignalConnection;
|
|
87906
89457
|
buiSubmission?: Maybe<BuiSubmission>;
|
|
87907
89458
|
buiSuggestCertifications: Array<BuiCertificationSuggestion>;
|
|
87908
89459
|
buiSuggestSkillMappings: Array<BuiSkillMappingSuggestion>;
|
|
@@ -87937,7 +89488,10 @@ export type Query = {
|
|
|
87937
89488
|
checkPermission: PermissionCheckResult;
|
|
87938
89489
|
/** Check multiple permissions at once (max 50) */
|
|
87939
89490
|
checkPermissions: Array<PermissionCheckResult>;
|
|
87940
|
-
/**
|
|
89491
|
+
/**
|
|
89492
|
+
* Whether a requester may grant roles workspace-wide — the checks setActorRoles applies to added
|
|
89493
|
+
* roles, with no target actor and no write (service-only)
|
|
89494
|
+
*/
|
|
87941
89495
|
checkRoleGrant: RoleGrantCheckResult;
|
|
87942
89496
|
/** Check if an actor can see a resource */
|
|
87943
89497
|
checkVisibility: VisibilityCheckResult;
|
|
@@ -88079,6 +89633,13 @@ export type Query = {
|
|
|
88079
89633
|
* gateway (BOFF-3698). Service actors only; returns metadata, never a token.
|
|
88080
89634
|
*/
|
|
88081
89635
|
connectionsExpiringSoon: Array<ExpiringConnection>;
|
|
89636
|
+
/**
|
|
89637
|
+
* Of connectionIds (at most 200), the live connections in the caller's workspace that principalId
|
|
89638
|
+
* cannot use: RESTRICTED and not shared with them. Unknown and deleted ids are not listed; they fail
|
|
89639
|
+
* when a run asks for them. Service-only; wspace-workflow-svc checks a workflow's connections against
|
|
89640
|
+
* its owner before saving it (BOFF-9726).
|
|
89641
|
+
*/
|
|
89642
|
+
connectionsNotUsableBy: Array<Scalars['ID']['output']>;
|
|
88082
89643
|
conversation?: Maybe<Conversation>;
|
|
88083
89644
|
conversationCapabilities: ConversationFeatures;
|
|
88084
89645
|
conversations: ConversationConnection;
|
|
@@ -88160,6 +89721,8 @@ export type Query = {
|
|
|
88160
89721
|
cosNotebook?: Maybe<CosNotebook>;
|
|
88161
89722
|
cosPipeline?: Maybe<CosPipeline>;
|
|
88162
89723
|
cosRun?: Maybe<CosPipelineRun>;
|
|
89724
|
+
/** Natural-language search across the catalog: datasets (name, description, coverage, instrument metadata), schema fields (name, unit, provenance note), sources, collections, analyses, releases and notebooks. Returns ranked hits with the evidence that matched and, for datasets, the lineage that produced them. Embargoed / restricted datasets never appear without an active grant. */
|
|
89725
|
+
cosSemanticSearch: CosSearchResults;
|
|
88163
89726
|
cosSource?: Maybe<CosSource>;
|
|
88164
89727
|
courseAssistantCandidates: Array<CourseAssistantCandidate>;
|
|
88165
89728
|
courseAssistantConfiguration: CourseAssistantConfiguration;
|
|
@@ -88210,6 +89773,8 @@ export type Query = {
|
|
|
88210
89773
|
crewServiceListing?: Maybe<CrewServiceListing>;
|
|
88211
89774
|
crewServiceListings: Array<CrewServiceListing>;
|
|
88212
89775
|
crewSkill?: Maybe<CrewSkill>;
|
|
89776
|
+
/** Category keys accepted by createCrewSkill / updateCrewSkill. */
|
|
89777
|
+
crewSkillCategories: Array<Scalars['String']['output']>;
|
|
88213
89778
|
/** Implied, implied-by and related skills around a skill, up to `depth` hops (max 4). */
|
|
88214
89779
|
crewSkillGraph?: Maybe<CrewSkillGraph>;
|
|
88215
89780
|
/** Workspace skills taxonomy. Seeds the starter taxonomy on first use. */
|
|
@@ -88309,7 +89874,7 @@ export type Query = {
|
|
|
88309
89874
|
ecoAiCreditUsage: EcoAiCreditUsage;
|
|
88310
89875
|
/** Detect anomalies (spikes, drops, stuck-sensor flatlines) in one parameter's readings at a site over a period. Every anomaly cites the measurement ids behind it; fewer than 12 readings returns INSUFFICIENT_DATA. */
|
|
88311
89876
|
ecoAiDetectAnomalies: EcoAnomalyDetectionResult;
|
|
88312
|
-
/** Total CO2e (kg) recorded in the workspace, optionally narrowed by scope. */
|
|
89877
|
+
/** Total CO2e (kg) recorded in the workspace, optionally narrowed by scope or site. Unaccepted AI drafts (status DRAFT) are excluded until a reviewer accepts them. */
|
|
88313
89878
|
ecoCarbonTotalKg: Scalars['Float']['output'];
|
|
88314
89879
|
ecoDataSource?: Maybe<EcoDataSource>;
|
|
88315
89880
|
ecoHabitatProject?: Maybe<EcoHabitatProject>;
|
|
@@ -88379,6 +89944,8 @@ export type Query = {
|
|
|
88379
89944
|
eventRegistrations: Array<EventRegistration>;
|
|
88380
89945
|
eventSchema?: Maybe<EventSchema>;
|
|
88381
89946
|
eventSchemas: Array<EventSchema>;
|
|
89947
|
+
/** The most recent persisted decision of one kind for an event, or null when none has been generated. */
|
|
89948
|
+
eventfullyManagedAiDecision?: Maybe<EventfullyManagedAiDecisionRecord>;
|
|
88382
89949
|
eventfullyManagedAnalyticsSnapshots: EventfullyManagedSimpleEntityList;
|
|
88383
89950
|
eventfullyManagedAnnouncements: EventfullyManagedSimpleEntityList;
|
|
88384
89951
|
eventfullyManagedAttendees: EventfullyManagedAttendeeList;
|
|
@@ -88408,6 +89975,8 @@ export type Query = {
|
|
|
88408
89975
|
eventfullyManagedNetworkingMatches: EventfullyManagedNetworkingMatchList;
|
|
88409
89976
|
eventfullyManagedNetworkingProfiles: EventfullyManagedNetworkingProfileList;
|
|
88410
89977
|
eventfullyManagedPromoCodes: EventfullyManagedPromoCodeList;
|
|
89978
|
+
/** BOFF-3764 — personalized session recommendations for one attendee at an event. Deterministic and explainable (see SessionRecommendationService): ranks upcoming sessions by overlap between the attendee's networking-profile interests/asks/industry and each session's track, title, description and speakers, boosted by tracks the attendee has checked into before. Read-only. */
|
|
89979
|
+
eventfullyManagedRecommendSessions: EventfullyManagedSessionRecommendationList;
|
|
88411
89980
|
eventfullyManagedRegistrations: EventfullyManagedRegistrationList;
|
|
88412
89981
|
eventfullyManagedSessionConflicts: Array<EventfullyManagedSessionConflict>;
|
|
88413
89982
|
eventfullyManagedSpeakers: EventfullyManagedSpeakerList;
|
|
@@ -89579,6 +91148,8 @@ export type Query = {
|
|
|
89579
91148
|
healthyBowlSuppliers: Array<Supplier>;
|
|
89580
91149
|
/** List watering runs for the workspace. Pass scheduleId or fieldId to filter. */
|
|
89581
91150
|
healthyBowlWateringRuns: Array<WateringRun>;
|
|
91151
|
+
/** Workspace activation dashboard: real counts for each HookMovies activation event. */
|
|
91152
|
+
hokActivationFunnel: HokActivationFunnel;
|
|
89582
91153
|
/** Schedule blocks for a channel overlapping the [from, to] window (defaults to an open-ended window when omitted), ordered by start time. */
|
|
89583
91154
|
hokChannelSchedule: HokScheduleBlockConnection;
|
|
89584
91155
|
/** Check whether the calling user can watch a title now (self-scoped). When `viewerTerritory` is supplied (ISO 3166-1 alpha-2, e.g. "IN", "US"), the check additionally enforces territory restrictions: the entitlement's territory (if set) must match, and at least one active rights window for the title must cover the viewer's territory (empty territories = worldwide). */
|
|
@@ -89639,6 +91210,8 @@ export type Query = {
|
|
|
89639
91210
|
hokMyWatchProgress: HokWatchProgressConnection;
|
|
89640
91211
|
/** The block currently airing on a channel (startAt <= now < endAt), or null. */
|
|
89641
91212
|
hokNowPlaying?: Maybe<HokScheduleBlock>;
|
|
91213
|
+
/** Getting-started checklist progress for the calling user in this workspace. */
|
|
91214
|
+
hokOnboardingStatus: HokOnboardingStatus;
|
|
89642
91215
|
hokProduction?: Maybe<HokProduction>;
|
|
89643
91216
|
/** Two-sided reputation for a talent (PERSON) or a studio (STUDIO). */
|
|
89644
91217
|
hokReputation: HokReputation;
|
|
@@ -90134,7 +91707,10 @@ export type Query = {
|
|
|
90134
91707
|
myPendingInvitations: Array<Invitation>;
|
|
90135
91708
|
/** Invitee-side: list pending invites whose `inviteeEmail` matches the caller's email (resolved from the tenant backend). `scopeType: "self"` because access is the user's own email — membership in any workspace is irrelevant. */
|
|
90136
91709
|
myPendingInvites: Array<WorkspaceInvite>;
|
|
90137
|
-
/**
|
|
91710
|
+
/**
|
|
91711
|
+
* Get current user's permissions in a workspace (self-service).
|
|
91712
|
+
* Returns full permission details including roles, permission strings, and cache TTL.
|
|
91713
|
+
*/
|
|
90138
91714
|
myPermissions: EffectivePermissions;
|
|
90139
91715
|
myPersonalDataSummary: TimeCampusPersonalDataSummary;
|
|
90140
91716
|
/** Get projects for the current authenticated user Self-list (Type C): resolver filters by ctx.userId, so the returned set IS the access list. Any authenticated user may call this; no RBAC permission is checked. (BOFF-2655) */
|
|
@@ -90143,7 +91719,10 @@ export type Query = {
|
|
|
90143
91719
|
myRecommendations: Array<TimeCampusRecommendation>;
|
|
90144
91720
|
/** Get resources created by the current authenticated user. Self-scoped: the resolver filters by ctx.actorId (createdBy). */
|
|
90145
91721
|
myResources: WorkspaceResourceList;
|
|
90146
|
-
/**
|
|
91722
|
+
/**
|
|
91723
|
+
* Get current user's roles in a workspace (lightweight, self-service).
|
|
91724
|
+
* Use this for quick role checks without fetching full permissions.
|
|
91725
|
+
*/
|
|
90147
91726
|
myRoles: MyRolesResult;
|
|
90148
91727
|
/** Usage the assistant LLM proxy recorded for the caller's OWN Ask or Take-action sandbox. Another user's sandbox, or one that is not an assistant sandbox, is NOT_FOUND. */
|
|
90149
91728
|
mySandboxLlmUsage: SandboxLlmUsage;
|
|
@@ -90155,10 +91734,14 @@ export type Query = {
|
|
|
90155
91734
|
/** Credentials shared with the calling actor (across all workspaces). */
|
|
90156
91735
|
mySharedCredentials: SecretShareList;
|
|
90157
91736
|
mySourceConsents: Array<TimeCampusSourceConsent>;
|
|
91737
|
+
/** The calling actor's own sustained-load signal over the last `weeks` full weeks (default 4, clamped to 2..12). Self-scoped: takes no user argument and only ever reads the caller's rows. */
|
|
91738
|
+
mySustainedLoad: TimeCampusSustainedLoadSignal;
|
|
90158
91739
|
/** One of the calling user's capture channels. */
|
|
90159
91740
|
myTimeCampusCaptureChannel: TimeCampusCaptureChannel;
|
|
90160
91741
|
/** The calling user's capture channels, newest first. Disconnected channels are included unless excluded. */
|
|
90161
91742
|
myTimeCampusCaptureChannels: Array<TimeCampusCaptureChannel>;
|
|
91743
|
+
/** The caller's own recent day summaries and weekly digests, newest first. */
|
|
91744
|
+
myTimeIntelligenceDeliveries: Array<TimeCampusTimeIntelligenceDelivery>;
|
|
90162
91745
|
myTimeWellSpent: TimeCampusTimeWellSpent;
|
|
90163
91746
|
myVibeLlmContextPreview: VibeLlmContextPreview;
|
|
90164
91747
|
myVibeLlmContextSettings: VibeLlmContextSettings;
|
|
@@ -90729,11 +92312,24 @@ export type Query = {
|
|
|
90729
92312
|
resourceTree: Array<Resource>;
|
|
90730
92313
|
/** Get root resources for a tree view with bounded offset metadata. */
|
|
90731
92314
|
resourceTreePage: ResourcePage;
|
|
90732
|
-
/**
|
|
92315
|
+
/**
|
|
92316
|
+
* Get all resource types. Optionally filter by product (PlatformProduct.slug):
|
|
92317
|
+
* returns resource types mapped to that product, plus cross-product types (those
|
|
92318
|
+
* with no product mapping) unless includeUnmapped is false. With no product arg,
|
|
92319
|
+
* returns every resource type (backward compatible).
|
|
92320
|
+
*/
|
|
90733
92321
|
resourceTypes: Array<Scalars['String']['output']>;
|
|
90734
|
-
/**
|
|
92322
|
+
/**
|
|
92323
|
+
* Get all resource types together with the product slugs each is mapped to.
|
|
92324
|
+
* Drives the permission-management UI (badges, product assignment). A resource
|
|
92325
|
+
* type with an empty products list is cross-product ("All").
|
|
92326
|
+
*/
|
|
90735
92327
|
resourceTypesWithProducts: Array<ResourceTypeProductInfo>;
|
|
90736
|
-
/**
|
|
92328
|
+
/**
|
|
92329
|
+
* List registered resources in a scope, optionally filtered by type, owner,
|
|
92330
|
+
* active state, or a free-text search against `identifier`/`name`.
|
|
92331
|
+
* Returns only resources registered via `registerResource`.
|
|
92332
|
+
*/
|
|
90737
92333
|
resources: Array<Resource>;
|
|
90738
92334
|
/** Get resources by type across all workspaces (admin only) */
|
|
90739
92335
|
resourcesByType: WorkspaceResourceList;
|
|
@@ -90861,6 +92457,8 @@ export type Query = {
|
|
|
90861
92457
|
semListQueryRuns: SemQueryRunConnection;
|
|
90862
92458
|
semListRelationships: Array<SemRelationship>;
|
|
90863
92459
|
semModel?: Maybe<SemSemanticModel>;
|
|
92460
|
+
/** Getting-started checklist progress for the calling workspace, derived from the records the workspace actually holds (so it persists across sessions and devices). */
|
|
92461
|
+
semOnboardingProgress: SemOnboardingProgress;
|
|
90864
92462
|
semQuery?: Maybe<SemQuery>;
|
|
90865
92463
|
/** A single query run by id (workspace-scoped). Poll this after semRunQuery: runs execute asynchronously and move QUEUED -> PLANNING -> RUNNING -> SUCCEEDED/FAILED. */
|
|
90866
92464
|
semQueryRun?: Maybe<SemQueryRun>;
|
|
@@ -90908,17 +92506,28 @@ export type Query = {
|
|
|
90908
92506
|
siemDestinations: Array<SiemDestination>;
|
|
90909
92507
|
softwareAssets: Array<SoftwareAsset>;
|
|
90910
92508
|
subAgent?: Maybe<SubAiAgent>;
|
|
92509
|
+
/** The workspace's scheduled-sweep registration, if any. */
|
|
92510
|
+
subAgentSchedule?: Maybe<SubAgentSchedule>;
|
|
90911
92511
|
/** Benchmark dataset: aggregated min/median/max for one (provider, plan) tuple. Used by the /vs pages and the renewal assistant to surface "what others pay for <X>" in a single network round-trip. */
|
|
90912
92512
|
subBenchmarkSummary?: Maybe<SubBenchmarkSummary>;
|
|
92513
|
+
subDecision?: Maybe<SubDecision>;
|
|
92514
|
+
/** Duplicate and overlapping relationships in the current workspace, largest annual saving first. Paginate with `pagination.offset`. */
|
|
92515
|
+
subDetectOverlaps: SubOverlapConnection;
|
|
92516
|
+
/** Enterprise SaaS spend dashboard. `currency` defaults to the currency most relationships are billed in; `highCostThreshold` (monthly, default 500) sets when an AI service is flagged as high cost. */
|
|
92517
|
+
subEnterpriseSpendDashboard: SubEnterpriseSpendDashboard;
|
|
90913
92518
|
/** Liveness/identity probe for the Subscriber Bot subgraph. */
|
|
90914
92519
|
subHealth: Scalars['String']['output'];
|
|
90915
92520
|
subListAdapterSubmissions: SubAdapterSubmissionConnection;
|
|
92521
|
+
/** Recent sweeps of the workspace, newest first. */
|
|
92522
|
+
subListAgentSweeps: SubAgentSweepConnection;
|
|
90916
92523
|
subListAgents: SubAiAgentConnection;
|
|
90917
92524
|
/** List assets. Pass `relationshipId` to scope to one subscription, or omit it to list every asset in the workspace (the Digital Asset Vault). */
|
|
90918
92525
|
subListAssets: SubAssetConnection;
|
|
90919
92526
|
/** Benchmark dataset: list observed price points (Phase 1 BOFF-4156). Public read so the marketing /vs pages can show "what others pay" without a workspace context; filtered to a single (provider, region, currency) combination when those inputs are supplied. */
|
|
90920
92527
|
subListBenchmarkDataPoints: SubBenchmarkDataPointConnection;
|
|
90921
92528
|
subListChannels: SubCommunicationChannelConnection;
|
|
92529
|
+
/** The agent decision queue, newest first. */
|
|
92530
|
+
subListDecisions: SubDecisionConnection;
|
|
90922
92531
|
subListEntitlements: SubEntitlementConnection;
|
|
90923
92532
|
/** The Universal Inbox — every merged subscription communication. */
|
|
90924
92533
|
subListInboxMessages: SubInboxMessageConnection;
|
|
@@ -90931,9 +92540,12 @@ export type Query = {
|
|
|
90931
92540
|
subListProviders: SubProviderConnection;
|
|
90932
92541
|
subListRelationships: SubRelationshipConnection;
|
|
90933
92542
|
subListRenewalEvents: SubRenewalEventConnection;
|
|
92543
|
+
subListSpendBudgets: Array<SubSpendBudget>;
|
|
90934
92544
|
subListWorkflows: SubWorkflowConnection;
|
|
90935
92545
|
subProvider?: Maybe<SubProvider>;
|
|
90936
92546
|
subRelationship?: Maybe<SubRelationship>;
|
|
92547
|
+
/** The cost-optimization dashboard: headline yearly savings, open decisions by recommendation and bundle suggestions. */
|
|
92548
|
+
subSavingsOverview: SubSavingsOverview;
|
|
90937
92549
|
/** Get a single subscribed product by ID */
|
|
90938
92550
|
subscribedProduct?: Maybe<SubscribedProduct>;
|
|
90939
92551
|
/** Get all subscribed products for the current workspace. Workspace ID is read from gateway context (x-workspace-id header). */
|
|
@@ -90965,12 +92577,15 @@ export type Query = {
|
|
|
90965
92577
|
tcpListDiscussions: TcpDiscussionConnection;
|
|
90966
92578
|
/** Oral histories at PUBLIC/COMMUNITY access level only. RESTRICTED and EMBARGOED testimonies (narrator identity + full transcript) are never returned here — use `tcpListRestrictedOralHistories` for those. */
|
|
90967
92579
|
tcpListOralHistories: TcpOralHistoryConnection;
|
|
92580
|
+
/** Replies to a discussion, oldest first. Items are EntityComment references; the gateway resolves their content from wspace-conversations-svc. */
|
|
90968
92581
|
tcpListReplies: TcpReplyConnection;
|
|
90969
92582
|
/** Elevated-access archive items: RESTRICTED and EMBARGOED only. Requires the separate `theculturepost-archive-item-restricted` permission — holding generic `theculturepost-archive-item:read` is NOT sufficient. */
|
|
90970
92583
|
tcpListRestrictedArchiveItems: TcpArchiveItemConnection;
|
|
90971
92584
|
/** Elevated-access oral histories: RESTRICTED and EMBARGOED only — narrator identities and full testimony transcripts of named third parties. Requires the separate `theculturepost-oral-history-restricted` permission — holding generic `theculturepost-oral-history:read` is NOT sufficient. */
|
|
90972
92585
|
tcpListRestrictedOralHistories: TcpOralHistoryConnection;
|
|
90973
92586
|
tcpListStories: TcpStoryConnection;
|
|
92587
|
+
/** A story's evidence trail — its numbered claims in display order. Claims are part of the citation/fact-checking surface, so they share the citation permission resource. */
|
|
92588
|
+
tcpListStoryClaims: Array<TcpStoryClaim>;
|
|
90974
92589
|
tcpListTopics: TcpTopicConnection;
|
|
90975
92590
|
/** The calling actor's own bookmarked stories (personal reading list). Self-scoped: the resolver filters by the caller's actor id — that filter IS the access control, no other actor's list is ever reachable. */
|
|
90976
92591
|
tcpMySavedStories: TcpStoryConnection;
|
|
@@ -91099,6 +92714,8 @@ export type Query = {
|
|
|
91099
92714
|
timeCampusApplets: Array<TimeCampusApplet>;
|
|
91100
92715
|
timeCampusCaptureEvent?: Maybe<TimeCampusCaptureEvent>;
|
|
91101
92716
|
timeCampusCaptureEvents: TimeCampusCaptureEventListResponse;
|
|
92717
|
+
/** The OAuth-backed sources a capture channel can pull from. */
|
|
92718
|
+
timeCampusCapturePullProviders: Array<TimeCampusCapturePullProvider>;
|
|
91102
92719
|
timeCampusDataErasureRequests: Array<TimeCampusDataErasureRequest>;
|
|
91103
92720
|
timeCampusFeatureFlags: TimeCampusFeatureFlagList;
|
|
91104
92721
|
/** Adaptive focus-block suggestions for one local day. `dayStart` is the instant of the caller's local midnight for that day (yesterday up to 14 days ahead). Ranked from the caller's own work patterns, meetings and past focus sessions; slots already accepted, snoozed or dismissed are excluded. */
|
|
@@ -91146,6 +92763,10 @@ export type Query = {
|
|
|
91146
92763
|
timeEntry?: Maybe<TimeEntry>;
|
|
91147
92764
|
timeEntryCount: Scalars['Int']['output'];
|
|
91148
92765
|
timeEntryStats: TimeEntryStats;
|
|
92766
|
+
/** The workspace's scheduler registration, if any member has opted in. */
|
|
92767
|
+
timeIntelligenceSchedule?: Maybe<TimeCampusTimeIntelligenceSchedule>;
|
|
92768
|
+
/** Recent sweeps of the workspace, newest first. */
|
|
92769
|
+
timeIntelligenceSweeps: Array<TimeCampusTimeIntelligenceSweep>;
|
|
91149
92770
|
todayFocusScore?: Maybe<FocusScore>;
|
|
91150
92771
|
todayWorkPattern?: Maybe<WorkPattern>;
|
|
91151
92772
|
toolApprovalRequest?: Maybe<ToolApprovalRequest>;
|
|
@@ -92648,6 +94269,16 @@ export type QueryBuiMyTutorSessionsArgs = {
|
|
|
92648
94269
|
pagination?: InputMaybe<PaginationInput>;
|
|
92649
94270
|
};
|
|
92650
94271
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
94272
|
+
export type QueryBuiProctoringIdentityFileArgs = {
|
|
94273
|
+
sessionId: Scalars['ID']['input'];
|
|
94274
|
+
};
|
|
94275
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
94276
|
+
export type QueryBuiProctoringSessionSignalsArgs = {
|
|
94277
|
+
after?: InputMaybe<Scalars['ID']['input']>;
|
|
94278
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
94279
|
+
sessionId: Scalars['ID']['input'];
|
|
94280
|
+
};
|
|
94281
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
92651
94282
|
export type QueryBuiSubmissionArgs = {
|
|
92652
94283
|
id: Scalars['ID']['input'];
|
|
92653
94284
|
};
|
|
@@ -93174,6 +94805,11 @@ export type QueryConnectionsExpiringSoonArgs = {
|
|
|
93174
94805
|
withinDays?: InputMaybe<Scalars['Int']['input']>;
|
|
93175
94806
|
};
|
|
93176
94807
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
94808
|
+
export type QueryConnectionsNotUsableByArgs = {
|
|
94809
|
+
connectionIds: Array<Scalars['ID']['input']>;
|
|
94810
|
+
principalId: Scalars['ID']['input'];
|
|
94811
|
+
};
|
|
94812
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
93177
94813
|
export type QueryConversationArgs = {
|
|
93178
94814
|
id: Scalars['ID']['input'];
|
|
93179
94815
|
};
|
|
@@ -93437,6 +95073,10 @@ export type QueryCosRunArgs = {
|
|
|
93437
95073
|
id: Scalars['ID']['input'];
|
|
93438
95074
|
};
|
|
93439
95075
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
95076
|
+
export type QueryCosSemanticSearchArgs = {
|
|
95077
|
+
input: CosSemanticSearchInput;
|
|
95078
|
+
};
|
|
95079
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
93440
95080
|
export type QueryCosSourceArgs = {
|
|
93441
95081
|
id: Scalars['ID']['input'];
|
|
93442
95082
|
};
|
|
@@ -94135,6 +95775,11 @@ export type QueryEventSchemasArgs = {
|
|
|
94135
95775
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
94136
95776
|
};
|
|
94137
95777
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
95778
|
+
export type QueryEventfullyManagedAiDecisionArgs = {
|
|
95779
|
+
eventId: Scalars['ID']['input'];
|
|
95780
|
+
kind: EventfullyManagedAiDecisionKind;
|
|
95781
|
+
};
|
|
95782
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
94138
95783
|
export type QueryEventfullyManagedAnalyticsSnapshotsArgs = {
|
|
94139
95784
|
eventId?: InputMaybe<Scalars['ID']['input']>;
|
|
94140
95785
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -94303,6 +95948,12 @@ export type QueryEventfullyManagedPromoCodesArgs = {
|
|
|
94303
95948
|
workspaceId?: InputMaybe<Scalars['ID']['input']>;
|
|
94304
95949
|
};
|
|
94305
95950
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
95951
|
+
export type QueryEventfullyManagedRecommendSessionsArgs = {
|
|
95952
|
+
attendeeId: Scalars['ID']['input'];
|
|
95953
|
+
eventId: Scalars['ID']['input'];
|
|
95954
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
95955
|
+
};
|
|
95956
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
94306
95957
|
export type QueryEventfullyManagedRegistrationsArgs = {
|
|
94307
95958
|
eventId?: InputMaybe<Scalars['ID']['input']>;
|
|
94308
95959
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -94786,6 +96437,7 @@ export type QueryGetConnectionTagsArgs = {
|
|
|
94786
96437
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
94787
96438
|
export type QueryGetConnectionTokenArgs = {
|
|
94788
96439
|
connectionId: Scalars['ID']['input'];
|
|
96440
|
+
principalId?: InputMaybe<Scalars['ID']['input']>;
|
|
94789
96441
|
workspaceId: Scalars['ID']['input'];
|
|
94790
96442
|
};
|
|
94791
96443
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
@@ -97883,6 +99535,10 @@ export type QueryHealthyBowlWateringRunsArgs = {
|
|
|
97883
99535
|
scheduleId?: InputMaybe<Scalars['ID']['input']>;
|
|
97884
99536
|
};
|
|
97885
99537
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
99538
|
+
export type QueryHokActivationFunnelArgs = {
|
|
99539
|
+
period?: InputMaybe<Scalars['String']['input']>;
|
|
99540
|
+
};
|
|
99541
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
97886
99542
|
export type QueryHokChannelScheduleArgs = {
|
|
97887
99543
|
channelId: Scalars['ID']['input'];
|
|
97888
99544
|
from?: InputMaybe<Scalars['DateTime']['input']>;
|
|
@@ -99899,6 +101555,10 @@ export type QueryMySourceConsentsArgs = {
|
|
|
99899
101555
|
pagination?: InputMaybe<PaginationInput>;
|
|
99900
101556
|
};
|
|
99901
101557
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
101558
|
+
export type QueryMySustainedLoadArgs = {
|
|
101559
|
+
weeks?: InputMaybe<Scalars['Int']['input']>;
|
|
101560
|
+
};
|
|
101561
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
99902
101562
|
export type QueryMyTimeCampusCaptureChannelArgs = {
|
|
99903
101563
|
id: Scalars['ID']['input'];
|
|
99904
101564
|
};
|
|
@@ -99907,6 +101567,10 @@ export type QueryMyTimeCampusCaptureChannelsArgs = {
|
|
|
99907
101567
|
includeDisconnected?: InputMaybe<Scalars['Boolean']['input']>;
|
|
99908
101568
|
};
|
|
99909
101569
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
101570
|
+
export type QueryMyTimeIntelligenceDeliveriesArgs = {
|
|
101571
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
101572
|
+
};
|
|
101573
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
99910
101574
|
export type QueryMyTimeWellSpentArgs = {
|
|
99911
101575
|
from: Scalars['DateTime']['input'];
|
|
99912
101576
|
to: Scalars['DateTime']['input'];
|
|
@@ -102173,11 +103837,28 @@ export type QuerySubBenchmarkSummaryArgs = {
|
|
|
102173
103837
|
region?: InputMaybe<Scalars['String']['input']>;
|
|
102174
103838
|
};
|
|
102175
103839
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
103840
|
+
export type QuerySubDecisionArgs = {
|
|
103841
|
+
id: Scalars['ID']['input'];
|
|
103842
|
+
};
|
|
103843
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
103844
|
+
export type QuerySubDetectOverlapsArgs = {
|
|
103845
|
+
pagination?: InputMaybe<PaginationInput>;
|
|
103846
|
+
};
|
|
103847
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
103848
|
+
export type QuerySubEnterpriseSpendDashboardArgs = {
|
|
103849
|
+
currency?: InputMaybe<Scalars['String']['input']>;
|
|
103850
|
+
highCostThreshold?: InputMaybe<Scalars['Float']['input']>;
|
|
103851
|
+
};
|
|
103852
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
102176
103853
|
export type QuerySubListAdapterSubmissionsArgs = {
|
|
102177
103854
|
pagination?: InputMaybe<PaginationInput>;
|
|
102178
103855
|
status?: InputMaybe<SubSubmissionStatus>;
|
|
102179
103856
|
};
|
|
102180
103857
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
103858
|
+
export type QuerySubListAgentSweepsArgs = {
|
|
103859
|
+
pagination?: InputMaybe<PaginationInput>;
|
|
103860
|
+
};
|
|
103861
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
102181
103862
|
export type QuerySubListAgentsArgs = {
|
|
102182
103863
|
kind?: InputMaybe<SubAgentKind>;
|
|
102183
103864
|
ownerId?: InputMaybe<Scalars['ID']['input']>;
|
|
@@ -102200,6 +103881,11 @@ export type QuerySubListChannelsArgs = {
|
|
|
102200
103881
|
pagination?: InputMaybe<PaginationInput>;
|
|
102201
103882
|
};
|
|
102202
103883
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
103884
|
+
export type QuerySubListDecisionsArgs = {
|
|
103885
|
+
filter?: InputMaybe<SubDecisionFilter>;
|
|
103886
|
+
pagination?: InputMaybe<PaginationInput>;
|
|
103887
|
+
};
|
|
103888
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
102203
103889
|
export type QuerySubListEntitlementsArgs = {
|
|
102204
103890
|
pagination?: InputMaybe<PaginationInput>;
|
|
102205
103891
|
relationshipId: Scalars['ID']['input'];
|
|
@@ -102376,6 +104062,10 @@ export type QueryTcpListStoriesArgs = {
|
|
|
102376
104062
|
topicId?: InputMaybe<Scalars['ID']['input']>;
|
|
102377
104063
|
};
|
|
102378
104064
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
104065
|
+
export type QueryTcpListStoryClaimsArgs = {
|
|
104066
|
+
storyId: Scalars['ID']['input'];
|
|
104067
|
+
};
|
|
104068
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
102379
104069
|
export type QueryTcpListTopicsArgs = {
|
|
102380
104070
|
category?: InputMaybe<TcpTopicCategory>;
|
|
102381
104071
|
pagination?: InputMaybe<PaginationInput>;
|
|
@@ -102895,6 +104585,10 @@ export type QueryTimeEntryStatsArgs = {
|
|
|
102895
104585
|
startDate?: InputMaybe<Scalars['DateTime']['input']>;
|
|
102896
104586
|
};
|
|
102897
104587
|
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
104588
|
+
export type QueryTimeIntelligenceSweepsArgs = {
|
|
104589
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
104590
|
+
};
|
|
104591
|
+
/** Base Query type with placeholder field. Extended by individual query files. */
|
|
102898
104592
|
export type QueryToolApprovalRequestArgs = {
|
|
102899
104593
|
id: Scalars['ID']['input'];
|
|
102900
104594
|
};
|
|
@@ -105078,7 +106772,11 @@ export type ResolvedSecret = {
|
|
|
105078
106772
|
value: Scalars['String']['output'];
|
|
105079
106773
|
vaultId: Scalars['String']['output'];
|
|
105080
106774
|
};
|
|
105081
|
-
/**
|
|
106775
|
+
/**
|
|
106776
|
+
* Registered resource with custom permission configurations.
|
|
106777
|
+
* Resources are only registered when they have non-default permissions
|
|
106778
|
+
* (overrides, visibility rules, or scoped assignments).
|
|
106779
|
+
*/
|
|
105082
106780
|
export type Resource = {
|
|
105083
106781
|
__typename?: 'Resource';
|
|
105084
106782
|
children: Array<Resource>;
|
|
@@ -105128,11 +106826,22 @@ export declare enum ResourceBookingStatus {
|
|
|
105128
106826
|
}
|
|
105129
106827
|
/** Filter for querying resources */
|
|
105130
106828
|
export type ResourceFilterInput = {
|
|
105131
|
-
/**
|
|
106829
|
+
/**
|
|
106830
|
+
* Defaults to `true` — only active resources are returned. Omit the field
|
|
106831
|
+
* or pass `null` to use the default; pass `false` to find deactivated
|
|
106832
|
+
* resources. To list both, issue two separate queries (`true` then
|
|
106833
|
+
* `false`) and merge client-side; tracked in BOFF-2419.
|
|
106834
|
+
*/
|
|
105132
106835
|
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
|
105133
106836
|
ownerId?: InputMaybe<Scalars['String']['input']>;
|
|
105134
106837
|
resourceType?: InputMaybe<Scalars['String']['input']>;
|
|
105135
|
-
/**
|
|
106838
|
+
/**
|
|
106839
|
+
* Case-insensitive substring match against resource `identifier` and `name`.
|
|
106840
|
+
* Blank or whitespace-only values are ignored. Input is capped at 200
|
|
106841
|
+
* characters server-side (truncation happens before LIKE-escaping, so the
|
|
106842
|
+
* cap applies to user content). PostgreSQL LIKE wildcards (`%`, `_`) and
|
|
106843
|
+
* the escape character (`\\`) match literally, not as wildcards.
|
|
106844
|
+
*/
|
|
105136
106845
|
search?: InputMaybe<Scalars['String']['input']>;
|
|
105137
106846
|
};
|
|
105138
106847
|
/** Resource limits snapshot for a specific point in time */
|
|
@@ -105198,7 +106907,10 @@ export type ResourcePlanListResponse = {
|
|
|
105198
106907
|
items: Array<ResourcePlan>;
|
|
105199
106908
|
total: Scalars['Int']['output'];
|
|
105200
106909
|
};
|
|
105201
|
-
/**
|
|
106910
|
+
/**
|
|
106911
|
+
* A resource type (permission group) together with the products it is mapped to.
|
|
106912
|
+
* An empty products list means the resource type is cross-product ("All").
|
|
106913
|
+
*/
|
|
105202
106914
|
export type ResourceTypeProductInfo = {
|
|
105203
106915
|
__typename?: 'ResourceTypeProductInfo';
|
|
105204
106916
|
/** Product slugs (PlatformProduct.slug) this resource type is relevant to. */
|
|
@@ -105688,7 +107400,10 @@ export type Role = {
|
|
|
105688
107400
|
/** Role-level permission overrides */
|
|
105689
107401
|
permissionOverrides: Array<RolePermissionOverride>;
|
|
105690
107402
|
priority: Scalars['Int']['output'];
|
|
105691
|
-
/**
|
|
107403
|
+
/**
|
|
107404
|
+
* Product this role belongs to (PlatformProduct.slug). Null = cross-product /
|
|
107405
|
+
* platform role (e.g. Workspace Owner, Editor, Viewer) shown under every product.
|
|
107406
|
+
*/
|
|
105692
107407
|
productSlug?: Maybe<Scalars['String']['output']>;
|
|
105693
107408
|
scopeId: Scalars['String']['output'];
|
|
105694
107409
|
scopeType: Scalars['String']['output'];
|
|
@@ -105717,14 +107432,27 @@ export type RoleDefaultPermission = {
|
|
|
105717
107432
|
resourceType: Scalars['String']['output'];
|
|
105718
107433
|
roleId: Scalars['String']['output'];
|
|
105719
107434
|
};
|
|
105720
|
-
/**
|
|
107435
|
+
/**
|
|
107436
|
+
* Filter for querying roles.
|
|
107437
|
+
*
|
|
107438
|
+
* Note: scopeId is intentionally not part of this filter — the workspace scope
|
|
107439
|
+
* is derived from the request context (x-workspace-id) and cannot be overridden
|
|
107440
|
+
* by the client. This prevents cross-workspace reads.
|
|
107441
|
+
*/
|
|
105721
107442
|
export type RoleFilterInput = {
|
|
105722
|
-
/**
|
|
107443
|
+
/**
|
|
107444
|
+
* Whether to include cross-product/platform roles (productSlug = null) when a
|
|
107445
|
+
* product filter is applied. Defaults to true. Ignored when product is unset.
|
|
107446
|
+
*/
|
|
105723
107447
|
includePlatformRoles?: InputMaybe<Scalars['Boolean']['input']>;
|
|
105724
107448
|
includeSystem?: InputMaybe<Scalars['Boolean']['input']>;
|
|
105725
107449
|
isSystem?: InputMaybe<Scalars['Boolean']['input']>;
|
|
105726
107450
|
parentId?: InputMaybe<Scalars['ID']['input']>;
|
|
105727
|
-
/**
|
|
107451
|
+
/**
|
|
107452
|
+
* Filter roles by product (PlatformProduct.slug). When set, returns roles for
|
|
107453
|
+
* that product. Cross-product/platform roles (productSlug = null) are included
|
|
107454
|
+
* unless includePlatformRoles is explicitly false.
|
|
107455
|
+
*/
|
|
105728
107456
|
product?: InputMaybe<Scalars['String']['input']>;
|
|
105729
107457
|
};
|
|
105730
107458
|
/** Input for checkRoleGrant: may the requester grant these roles in scopeId? */
|
|
@@ -105740,9 +107468,17 @@ export type RoleGrantCheckResult = {
|
|
|
105740
107468
|
__typename?: 'RoleGrantCheckResult';
|
|
105741
107469
|
/** True when setActorRoles would let the requester add every requested role */
|
|
105742
107470
|
allowed: Scalars['Boolean']['output'];
|
|
105743
|
-
/**
|
|
107471
|
+
/**
|
|
107472
|
+
* Null when allowed; otherwise ROLE_NOT_FOUND | ROLE_SCOPE_MISMATCH | MAX_ROLES_EXCEEDED |
|
|
107473
|
+
* ASSIGNMENT_CREATE_REQUIRED | PROTECTED_ROLE_OWNER_ONLY | ROLE_ESCALATION
|
|
107474
|
+
*/
|
|
105744
107475
|
reasonCode?: Maybe<Scalars['String']['output']>;
|
|
105745
|
-
/**
|
|
107476
|
+
/**
|
|
107477
|
+
* The roles refused for reasonCode: the missing or out-of-scope roles, every requested role
|
|
107478
|
+
* (ASSIGNMENT_CREATE_REQUIRED), the Owner/Admin roles (PROTECTED_ROLE_OWNER_ONLY), or the first
|
|
107479
|
+
* role found above the requester's own authority (ROLE_ESCALATION). Empty when allowed or for
|
|
107480
|
+
* MAX_ROLES_EXCEEDED.
|
|
107481
|
+
*/
|
|
105746
107482
|
refusedRoleIds: Array<Scalars['ID']['output']>;
|
|
105747
107483
|
};
|
|
105748
107484
|
/** Basic role information */
|
|
@@ -108486,6 +110222,33 @@ export declare enum SemModelStatus {
|
|
|
108486
110222
|
Draft = "DRAFT",
|
|
108487
110223
|
Published = "PUBLISHED"
|
|
108488
110224
|
}
|
|
110225
|
+
export type SemOnboardingProgress = {
|
|
110226
|
+
__typename?: 'SemOnboardingProgress';
|
|
110227
|
+
completedCount: Scalars['Int']['output'];
|
|
110228
|
+
/** True while the workspace still holds the getting-started demo data. */
|
|
110229
|
+
demoDataPresent: Scalars['Boolean']['output'];
|
|
110230
|
+
isComplete: Scalars['Boolean']['output'];
|
|
110231
|
+
steps: Array<SemOnboardingStep>;
|
|
110232
|
+
totalCount: Scalars['Int']['output'];
|
|
110233
|
+
workspaceId: Scalars['ID']['output'];
|
|
110234
|
+
};
|
|
110235
|
+
/** One getting-started step. A step is complete once the workspace holds at least one record of the matching kind that the user created themselves; records added by the demo-data seed are never counted. */
|
|
110236
|
+
export type SemOnboardingStep = {
|
|
110237
|
+
__typename?: 'SemOnboardingStep';
|
|
110238
|
+
completed: Scalars['Boolean']['output'];
|
|
110239
|
+
/** How many of the user's own records satisfy this step. */
|
|
110240
|
+
count: Scalars['Int']['output'];
|
|
110241
|
+
key: SemOnboardingStepKey;
|
|
110242
|
+
};
|
|
110243
|
+
/** The getting-started steps a new SemanticFed workspace works through, in order. */
|
|
110244
|
+
export declare enum SemOnboardingStepKey {
|
|
110245
|
+
AddDataSource = "ADD_DATA_SOURCE",
|
|
110246
|
+
AddPolicy = "ADD_POLICY",
|
|
110247
|
+
CreateModel = "CREATE_MODEL",
|
|
110248
|
+
DefineMetric = "DEFINE_METRIC",
|
|
110249
|
+
RegisterConnector = "REGISTER_CONNECTOR",
|
|
110250
|
+
RunQuery = "RUN_QUERY"
|
|
110251
|
+
}
|
|
108489
110252
|
export type SemPageInfo = {
|
|
108490
110253
|
__typename?: 'SemPageInfo';
|
|
108491
110254
|
cursor?: Maybe<Scalars['String']['output']>;
|
|
@@ -108626,6 +110389,24 @@ export declare enum SemRelationshipKind {
|
|
|
108626
110389
|
OneToMany = "ONE_TO_MANY",
|
|
108627
110390
|
OneToOne = "ONE_TO_ONE"
|
|
108628
110391
|
}
|
|
110392
|
+
export type SemRemoveWorkspaceDemoDataResult = {
|
|
110393
|
+
__typename?: 'SemRemoveWorkspaceDemoDataResult';
|
|
110394
|
+
removedConnectors: Scalars['Int']['output'];
|
|
110395
|
+
removedDataSources: Scalars['Int']['output'];
|
|
110396
|
+
removedModels: Scalars['Int']['output'];
|
|
110397
|
+
removedQueries: Scalars['Int']['output'];
|
|
110398
|
+
};
|
|
110399
|
+
/** Identifiers of the demo records. `created` is false when the workspace already held the demo data and the call returned the existing records unchanged. */
|
|
110400
|
+
export type SemSeedWorkspaceDemoDataResult = {
|
|
110401
|
+
__typename?: 'SemSeedWorkspaceDemoDataResult';
|
|
110402
|
+
connectorId: Scalars['ID']['output'];
|
|
110403
|
+
created: Scalars['Boolean']['output'];
|
|
110404
|
+
dataSourceId: Scalars['ID']['output'];
|
|
110405
|
+
entityIds: Array<Scalars['ID']['output']>;
|
|
110406
|
+
metricIds: Array<Scalars['ID']['output']>;
|
|
110407
|
+
modelId: Scalars['ID']['output'];
|
|
110408
|
+
queryId: Scalars['ID']['output'];
|
|
110409
|
+
};
|
|
108629
110410
|
export type SemSemanticModel = {
|
|
108630
110411
|
__typename?: 'SemSemanticModel';
|
|
108631
110412
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -109246,6 +111027,14 @@ export type SetAgentVisibilityInput = {
|
|
|
109246
111027
|
/** `PRIVATE` = owner only. `WORKSPACE` = every member with the matching `@rbac` permission. */
|
|
109247
111028
|
visibility: VibecontrolsAgentVisibility;
|
|
109248
111029
|
};
|
|
111030
|
+
/** Ask for a skill on a job posting by `skillId`, or by `skillName` (resolved through the taxonomy aliases; an unknown name becomes a custom workspace skill). Setting an already-listed skill updates it. `required` defaults to true; a nice-to-have skill is removed from the legacy `requirements` strings. */
|
|
111031
|
+
export type SetCrewJobPostingSkillInput = {
|
|
111032
|
+
jobPostingId: Scalars['ID']['input'];
|
|
111033
|
+
minProficiency?: InputMaybe<Scalars['Int']['input']>;
|
|
111034
|
+
required?: InputMaybe<Scalars['Boolean']['input']>;
|
|
111035
|
+
skillId?: InputMaybe<Scalars['ID']['input']>;
|
|
111036
|
+
skillName?: InputMaybe<Scalars['String']['input']>;
|
|
111037
|
+
};
|
|
109249
111038
|
/** BOFF-3938 — sets every date from startDate to endDate (inclusive, YYYY-MM-DD, at most 366 days) to exactly these values, replacing what those dates had. AVAILABLE with no price, minStay or note returns the dates to the property's normal rules. */
|
|
109250
111039
|
export type SetGgnomadPropertyAvailabilityInput = {
|
|
109251
111040
|
endDate: Scalars['String']['input'];
|
|
@@ -109449,6 +111238,18 @@ export type ShareCollectionInput = {
|
|
|
109449
111238
|
message?: InputMaybe<Scalars['String']['input']>;
|
|
109450
111239
|
userId?: InputMaybe<Scalars['ID']['input']>;
|
|
109451
111240
|
};
|
|
111241
|
+
/** The complete sharing of a connection: replaces its visibility and every current grant. */
|
|
111242
|
+
export type ShareConnectionInput = {
|
|
111243
|
+
connectionId: Scalars['ID']['input'];
|
|
111244
|
+
/**
|
|
111245
|
+
* Hand the connection to this person in the same change, so the new owner and the new sharing
|
|
111246
|
+
* apply together or not at all. Workspace administrators only; omit to keep the owner.
|
|
111247
|
+
*/
|
|
111248
|
+
ownerId?: InputMaybe<Scalars['ID']['input']>;
|
|
111249
|
+
/** At most 100 grants; the owner never needs one */
|
|
111250
|
+
shares: Array<ConnectionShareInput>;
|
|
111251
|
+
visibility: ConnectionVisibility;
|
|
111252
|
+
};
|
|
109452
111253
|
/** Input for sharing an entity with a specific person by email. */
|
|
109453
111254
|
export type ShareEntityInput = {
|
|
109454
111255
|
email: Scalars['String']['input'];
|
|
@@ -110305,11 +112106,111 @@ export declare enum SubAgentKind {
|
|
|
110305
112106
|
Renewal = "RENEWAL",
|
|
110306
112107
|
Vendor = "VENDOR"
|
|
110307
112108
|
}
|
|
112109
|
+
export type SubAgentRunResult = {
|
|
112110
|
+
__typename?: 'SubAgentRunResult';
|
|
112111
|
+
agentId: Scalars['ID']['output'];
|
|
112112
|
+
applied: Scalars['Int']['output'];
|
|
112113
|
+
decisions: Array<SubDecision>;
|
|
112114
|
+
dryRun: Scalars['Boolean']['output'];
|
|
112115
|
+
/** Relationships evaluated (ACTIVE and TRIAL only). */
|
|
112116
|
+
evaluated: Scalars['Int']['output'];
|
|
112117
|
+
flagged: Scalars['Int']['output'];
|
|
112118
|
+
invocationRef?: Maybe<Scalars['String']['output']>;
|
|
112119
|
+
kind: SubAgentKind;
|
|
112120
|
+
proposed: Scalars['Int']['output'];
|
|
112121
|
+
ranAt: Scalars['DateTime']['output'];
|
|
112122
|
+
runId: Scalars['ID']['output'];
|
|
112123
|
+
/** True when the workspace has more relationships than one run evaluates. */
|
|
112124
|
+
truncated: Scalars['Boolean']['output'];
|
|
112125
|
+
};
|
|
112126
|
+
/** The workspace's registration with wspace-scheduler-svc. A workspace admin can pause the job on the shared Schedules screen; the loop leaves it paused. */
|
|
112127
|
+
export type SubAgentSchedule = {
|
|
112128
|
+
__typename?: 'SubAgentSchedule';
|
|
112129
|
+
cronExpression: Scalars['String']['output'];
|
|
112130
|
+
id: Scalars['ID']['output'];
|
|
112131
|
+
lastError?: Maybe<Scalars['String']['output']>;
|
|
112132
|
+
lastSweepAt?: Maybe<Scalars['DateTime']['output']>;
|
|
112133
|
+
schedulerJobId?: Maybe<Scalars['ID']['output']>;
|
|
112134
|
+
status: SubAgentScheduleStatus;
|
|
112135
|
+
timezone: Scalars['String']['output'];
|
|
112136
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
112137
|
+
workspaceId: Scalars['ID']['output'];
|
|
112138
|
+
};
|
|
112139
|
+
export type SubAgentScheduleReconcileResult = {
|
|
112140
|
+
__typename?: 'SubAgentScheduleReconcileResult';
|
|
112141
|
+
ensured: Scalars['Int']['output'];
|
|
112142
|
+
failed: Scalars['Int']['output'];
|
|
112143
|
+
schedules: Array<SubAgentSchedule>;
|
|
112144
|
+
/** Workspaces with an enabled, schedulable agent. */
|
|
112145
|
+
workspaces: Scalars['Int']['output'];
|
|
112146
|
+
};
|
|
112147
|
+
export declare enum SubAgentScheduleStatus {
|
|
112148
|
+
Active = "ACTIVE",
|
|
112149
|
+
Failed = "FAILED",
|
|
112150
|
+
Pending = "PENDING"
|
|
112151
|
+
}
|
|
110308
112152
|
export declare enum SubAgentStatus {
|
|
110309
112153
|
Autonomous = "AUTONOMOUS",
|
|
110310
112154
|
Disabled = "DISABLED",
|
|
110311
112155
|
SuggestOnly = "SUGGEST_ONLY"
|
|
110312
112156
|
}
|
|
112157
|
+
export type SubAgentSweep = {
|
|
112158
|
+
__typename?: 'SubAgentSweep';
|
|
112159
|
+
agents: Array<SubAgentSweepAgentOutcome>;
|
|
112160
|
+
agentsConsidered: Scalars['Int']['output'];
|
|
112161
|
+
agentsRun: Scalars['Int']['output'];
|
|
112162
|
+
agentsSkipped: Scalars['Int']['output'];
|
|
112163
|
+
decisionsCreated: Scalars['Int']['output'];
|
|
112164
|
+
decisionsRefreshed: Scalars['Int']['output'];
|
|
112165
|
+
/** True when this call was a redelivery of an earlier fire with the same idempotency key; the original sweep is returned and nothing ran again. */
|
|
112166
|
+
duplicate: Scalars['Boolean']['output'];
|
|
112167
|
+
durationMs?: Maybe<Scalars['Int']['output']>;
|
|
112168
|
+
error?: Maybe<Scalars['String']['output']>;
|
|
112169
|
+
finishedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
112170
|
+
id: Scalars['ID']['output'];
|
|
112171
|
+
notificationsSent: Scalars['Int']['output'];
|
|
112172
|
+
scheduledFor?: Maybe<Scalars['DateTime']['output']>;
|
|
112173
|
+
/** KILL_SWITCH, AGENTS_MODULE_DISABLED, NO_DUE_AGENTS, DAILY_DECISION_CAP, AI_QUOTA_EXHAUSTED or AI_QUOTA_NOT_PROVISIONED when the sweep was skipped. */
|
|
112174
|
+
skippedReason?: Maybe<Scalars['String']['output']>;
|
|
112175
|
+
startedAt: Scalars['DateTime']['output'];
|
|
112176
|
+
status: SubAgentSweepStatus;
|
|
112177
|
+
trigger: SubAgentSweepTrigger;
|
|
112178
|
+
workspaceId: Scalars['ID']['output'];
|
|
112179
|
+
};
|
|
112180
|
+
/** What one sweep did with one agent. */
|
|
112181
|
+
export type SubAgentSweepAgentOutcome = {
|
|
112182
|
+
__typename?: 'SubAgentSweepAgentOutcome';
|
|
112183
|
+
agentId: Scalars['ID']['output'];
|
|
112184
|
+
applied: Scalars['Int']['output'];
|
|
112185
|
+
created: Scalars['Int']['output'];
|
|
112186
|
+
dryRun: Scalars['Boolean']['output'];
|
|
112187
|
+
durationMs: Scalars['Int']['output'];
|
|
112188
|
+
error?: Maybe<Scalars['String']['output']>;
|
|
112189
|
+
kind: SubAgentKind;
|
|
112190
|
+
/** RAN, FAILED, NOT_DUE (ran too recently for its cadence) or CAPPED (over the per-sweep agent cap or the AI-action quota). */
|
|
112191
|
+
outcome: Scalars['String']['output'];
|
|
112192
|
+
refreshed: Scalars['Int']['output'];
|
|
112193
|
+
runId?: Maybe<Scalars['ID']['output']>;
|
|
112194
|
+
/** New advice held back by a recent dismissal or the daily decision cap. */
|
|
112195
|
+
suppressed: Scalars['Int']['output'];
|
|
112196
|
+
};
|
|
112197
|
+
export type SubAgentSweepConnection = {
|
|
112198
|
+
__typename?: 'SubAgentSweepConnection';
|
|
112199
|
+
items: Array<SubAgentSweep>;
|
|
112200
|
+
pageInfo: SubPageInfo;
|
|
112201
|
+
};
|
|
112202
|
+
export declare enum SubAgentSweepStatus {
|
|
112203
|
+
Completed = "COMPLETED",
|
|
112204
|
+
Failed = "FAILED",
|
|
112205
|
+
Running = "RUNNING",
|
|
112206
|
+
Skipped = "SKIPPED"
|
|
112207
|
+
}
|
|
112208
|
+
export declare enum SubAgentSweepTrigger {
|
|
112209
|
+
/** Run on demand by a super admin. */
|
|
112210
|
+
Manual = "MANUAL",
|
|
112211
|
+
/** Fired by wspace-scheduler-svc. */
|
|
112212
|
+
Scheduled = "SCHEDULED"
|
|
112213
|
+
}
|
|
110313
112214
|
export type SubAiAgent = {
|
|
110314
112215
|
__typename?: 'SubAiAgent';
|
|
110315
112216
|
config?: Maybe<Scalars['JSON']['output']>;
|
|
@@ -110417,6 +112318,15 @@ export declare enum SubBillingInterval {
|
|
|
110417
112318
|
Weekly = "WEEKLY",
|
|
110418
112319
|
Yearly = "YEARLY"
|
|
110419
112320
|
}
|
|
112321
|
+
export type SubBudgetStatus = {
|
|
112322
|
+
__typename?: 'SubBudgetStatus';
|
|
112323
|
+
monthlyBudget: Scalars['Float']['output'];
|
|
112324
|
+
monthlySpend: Scalars['Float']['output'];
|
|
112325
|
+
overBudget: Scalars['Boolean']['output'];
|
|
112326
|
+
utilizationPct: Scalars['Float']['output'];
|
|
112327
|
+
/** Budget minus spend; negative when over budget. */
|
|
112328
|
+
variance: Scalars['Float']['output'];
|
|
112329
|
+
};
|
|
110420
112330
|
export declare enum SubChannelStatus {
|
|
110421
112331
|
Disabled = "DISABLED",
|
|
110422
112332
|
Pending = "PENDING",
|
|
@@ -110450,6 +112360,29 @@ export type SubCommunicationChannelConnection = {
|
|
|
110450
112360
|
items: Array<SubCommunicationChannel>;
|
|
110451
112361
|
pageInfo: SubPageInfo;
|
|
110452
112362
|
};
|
|
112363
|
+
export type SubConsolidateRelationshipsInput = {
|
|
112364
|
+
amount?: InputMaybe<Scalars['Float']['input']>;
|
|
112365
|
+
/** Subscriptions to cancel (1 to 9, without the kept one). */
|
|
112366
|
+
cancelRelationshipIds: Array<Scalars['ID']['input']>;
|
|
112367
|
+
interval?: InputMaybe<SubBillingInterval>;
|
|
112368
|
+
keepRelationshipId: Scalars['ID']['input'];
|
|
112369
|
+
/** Optional bundled plan for the kept subscription. */
|
|
112370
|
+
planId?: InputMaybe<Scalars['ID']['input']>;
|
|
112371
|
+
};
|
|
112372
|
+
export type SubConsolidationFailure = {
|
|
112373
|
+
__typename?: 'SubConsolidationFailure';
|
|
112374
|
+
message: Scalars['String']['output'];
|
|
112375
|
+
relationshipId: Scalars['ID']['output'];
|
|
112376
|
+
};
|
|
112377
|
+
export type SubConsolidationResult = {
|
|
112378
|
+
__typename?: 'SubConsolidationResult';
|
|
112379
|
+
cancelled: Array<SubRelationship>;
|
|
112380
|
+
currency: Scalars['String']['output'];
|
|
112381
|
+
/** Yearly saving of the subscriptions actually cancelled, after any plan change. */
|
|
112382
|
+
estimatedSavings: Scalars['Float']['output'];
|
|
112383
|
+
failed: Array<SubConsolidationFailure>;
|
|
112384
|
+
kept: SubRelationship;
|
|
112385
|
+
};
|
|
110453
112386
|
export type SubCreateAgentInput = {
|
|
110454
112387
|
config?: InputMaybe<Scalars['JSON']['input']>;
|
|
110455
112388
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -110554,6 +112487,7 @@ export type SubCreateRelationshipInput = {
|
|
|
110554
112487
|
amount?: InputMaybe<Scalars['Float']['input']>;
|
|
110555
112488
|
autoRenew?: InputMaybe<Scalars['Boolean']['input']>;
|
|
110556
112489
|
currency?: InputMaybe<Scalars['String']['input']>;
|
|
112490
|
+
department?: InputMaybe<Scalars['String']['input']>;
|
|
110557
112491
|
discoverySource?: InputMaybe<SubDiscoverySource>;
|
|
110558
112492
|
interval?: InputMaybe<SubBillingInterval>;
|
|
110559
112493
|
kind?: InputMaybe<SubRelationshipKind>;
|
|
@@ -110574,6 +112508,98 @@ export type SubCreateWorkflowInput = {
|
|
|
110574
112508
|
steps?: InputMaybe<Scalars['JSON']['input']>;
|
|
110575
112509
|
triggerEvent: Scalars['String']['input'];
|
|
110576
112510
|
};
|
|
112511
|
+
export type SubCurrencySpend = {
|
|
112512
|
+
__typename?: 'SubCurrencySpend';
|
|
112513
|
+
currency: Scalars['String']['output'];
|
|
112514
|
+
monthlySpend: Scalars['Float']['output'];
|
|
112515
|
+
relationshipCount: Scalars['Int']['output'];
|
|
112516
|
+
};
|
|
112517
|
+
/** One recommendation an agent run made about one relationship. `evidence` holds the rows the strategy reasoned over; `proposedChange` the relationship change applying it makes. `invocationRef` is the run's entry in the shared AI invocation ledger (wspace-prompts-svc `PromptInvocation.id`). */
|
|
112518
|
+
export type SubDecision = {
|
|
112519
|
+
__typename?: 'SubDecision';
|
|
112520
|
+
agent?: Maybe<SubAiAgent>;
|
|
112521
|
+
agentId: Scalars['ID']['output'];
|
|
112522
|
+
appliedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
112523
|
+
appliedBy?: Maybe<Scalars['ID']['output']>;
|
|
112524
|
+
applyInvocationRef?: Maybe<Scalars['String']['output']>;
|
|
112525
|
+
/** 0..1 */
|
|
112526
|
+
confidence: Scalars['Float']['output'];
|
|
112527
|
+
createdAt: Scalars['DateTime']['output'];
|
|
112528
|
+
currency: Scalars['String']['output'];
|
|
112529
|
+
dismissedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
112530
|
+
dismissedReason?: Maybe<Scalars['String']['output']>;
|
|
112531
|
+
/** Annualised saving if applied, in `currency`. */
|
|
112532
|
+
estimatedSavings: Scalars['Float']['output'];
|
|
112533
|
+
evidence: Scalars['JSON']['output'];
|
|
112534
|
+
id: Scalars['ID']['output'];
|
|
112535
|
+
invocationRef?: Maybe<Scalars['String']['output']>;
|
|
112536
|
+
kind: SubDecisionKind;
|
|
112537
|
+
proposedChange: Scalars['JSON']['output'];
|
|
112538
|
+
rationale: Scalars['String']['output'];
|
|
112539
|
+
recommendation: SubDecisionRecommendation;
|
|
112540
|
+
relationship?: Maybe<SubRelationship>;
|
|
112541
|
+
relationshipId: Scalars['ID']['output'];
|
|
112542
|
+
runId: Scalars['ID']['output'];
|
|
112543
|
+
status: SubDecisionStatus;
|
|
112544
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
112545
|
+
validationErrors: Array<Scalars['String']['output']>;
|
|
112546
|
+
workspaceId: Scalars['ID']['output'];
|
|
112547
|
+
};
|
|
112548
|
+
export type SubDecisionConnection = {
|
|
112549
|
+
__typename?: 'SubDecisionConnection';
|
|
112550
|
+
items: Array<SubDecision>;
|
|
112551
|
+
pageInfo: SubPageInfo;
|
|
112552
|
+
};
|
|
112553
|
+
export type SubDecisionFilter = {
|
|
112554
|
+
agentId?: InputMaybe<Scalars['ID']['input']>;
|
|
112555
|
+
kind?: InputMaybe<SubDecisionKind>;
|
|
112556
|
+
recommendation?: InputMaybe<SubDecisionRecommendation>;
|
|
112557
|
+
relationshipId?: InputMaybe<Scalars['ID']['input']>;
|
|
112558
|
+
status?: InputMaybe<SubDecisionStatus>;
|
|
112559
|
+
};
|
|
112560
|
+
/** The portfolio decision an agent strategy made (BOFF-3634). COST agents find CANCEL_CANDIDATE, RENEWAL agents RENEWAL_TRIAGE, VENDOR agents PLAN_RIGHT_SIZE and CONSOLIDATE_OVERLAP (BOFF-3703), and DISCOVERY agents TRIAL_EXPIRY. */
|
|
112561
|
+
export declare enum SubDecisionKind {
|
|
112562
|
+
CancelCandidate = "CANCEL_CANDIDATE",
|
|
112563
|
+
/** Cancel a relationship that another one in the portfolio already covers (duplicate provider, shared capability or subsumed entitlements). */
|
|
112564
|
+
ConsolidateOverlap = "CONSOLIDATE_OVERLAP",
|
|
112565
|
+
PlanRightSize = "PLAN_RIGHT_SIZE",
|
|
112566
|
+
RenewalTriage = "RENEWAL_TRIAGE",
|
|
112567
|
+
TrialExpiry = "TRIAL_EXPIRY"
|
|
112568
|
+
}
|
|
112569
|
+
/** What a decision recommends. Applying it runs the matching relationship mutation: CANCEL -> subCancelRelationship, PAUSE / CONVERT_TRIAL -> subTransitionRelationship, DOWNGRADE / SWITCH_TO_ANNUAL -> subUpdateRelationship. RENEW keeps the auto-renewal and writes nothing. */
|
|
112570
|
+
export declare enum SubDecisionRecommendation {
|
|
112571
|
+
Cancel = "CANCEL",
|
|
112572
|
+
ConvertTrial = "CONVERT_TRIAL",
|
|
112573
|
+
Downgrade = "DOWNGRADE",
|
|
112574
|
+
Pause = "PAUSE",
|
|
112575
|
+
Renew = "RENEW",
|
|
112576
|
+
SwitchToAnnual = "SWITCH_TO_ANNUAL"
|
|
112577
|
+
}
|
|
112578
|
+
export type SubDecisionResult = {
|
|
112579
|
+
__typename?: 'SubDecisionResult';
|
|
112580
|
+
decision: SubDecision;
|
|
112581
|
+
/** The relationship after the applied change. */
|
|
112582
|
+
relationship?: Maybe<SubRelationship>;
|
|
112583
|
+
};
|
|
112584
|
+
/** PROPOSED decisions wait for review. FLAGGED decisions failed output validation and can never be applied. STALE decisions were superseded, or their relationship changed after they were made. */
|
|
112585
|
+
export declare enum SubDecisionStatus {
|
|
112586
|
+
Applied = "APPLIED",
|
|
112587
|
+
Applying = "APPLYING",
|
|
112588
|
+
Dismissed = "DISMISSED",
|
|
112589
|
+
Flagged = "FLAGGED",
|
|
112590
|
+
Proposed = "PROPOSED",
|
|
112591
|
+
Stale = "STALE"
|
|
112592
|
+
}
|
|
112593
|
+
export type SubDepartmentSpend = {
|
|
112594
|
+
__typename?: 'SubDepartmentSpend';
|
|
112595
|
+
annualSpend: Scalars['Float']['output'];
|
|
112596
|
+
budget?: Maybe<SubBudgetStatus>;
|
|
112597
|
+
/** Department / team / cost centre; null for spend not yet allocated. */
|
|
112598
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
112599
|
+
monthlySpend: Scalars['Float']['output'];
|
|
112600
|
+
relationshipCount: Scalars['Int']['output'];
|
|
112601
|
+
sharePct: Scalars['Float']['output'];
|
|
112602
|
+
};
|
|
110577
112603
|
export declare enum SubDiscoverySource {
|
|
110578
112604
|
AiAgent = "AI_AGENT",
|
|
110579
112605
|
EmailScan = "EMAIL_SCAN",
|
|
@@ -110582,6 +112608,68 @@ export declare enum SubDiscoverySource {
|
|
|
110582
112608
|
PaymentScan = "PAYMENT_SCAN",
|
|
110583
112609
|
ProviderConnect = "PROVIDER_CONNECT"
|
|
110584
112610
|
}
|
|
112611
|
+
/** A duplicate-tool warning: one BOFF-3703 overlap group (see subDetectOverlaps) in the dashboard currency, with the departments that pay for its members. */
|
|
112612
|
+
export type SubDuplicateToolGroup = {
|
|
112613
|
+
__typename?: 'SubDuplicateToolGroup';
|
|
112614
|
+
departments: Array<Scalars['String']['output']>;
|
|
112615
|
+
keepRelationshipId: Scalars['ID']['output'];
|
|
112616
|
+
/** The overlap group id (stable across runs). */
|
|
112617
|
+
key: Scalars['String']['output'];
|
|
112618
|
+
monthlySpend: Scalars['Float']['output'];
|
|
112619
|
+
name: Scalars['String']['output'];
|
|
112620
|
+
/** Monthly spend of the members the kept relationship fully covers. */
|
|
112621
|
+
potentialMonthlySavings: Scalars['Float']['output'];
|
|
112622
|
+
/** The shared provider for an EXACT_DUPLICATE group; null otherwise. */
|
|
112623
|
+
providerId?: Maybe<Scalars['ID']['output']>;
|
|
112624
|
+
rationale: Scalars['String']['output'];
|
|
112625
|
+
relationshipCount: Scalars['Int']['output'];
|
|
112626
|
+
relationships: Array<SubDuplicateToolMember>;
|
|
112627
|
+
type: SubOverlapType;
|
|
112628
|
+
};
|
|
112629
|
+
export type SubDuplicateToolMember = {
|
|
112630
|
+
__typename?: 'SubDuplicateToolMember';
|
|
112631
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
112632
|
+
/** The member the overlap detector recommends keeping. */
|
|
112633
|
+
keep: Scalars['Boolean']['output'];
|
|
112634
|
+
label: Scalars['String']['output'];
|
|
112635
|
+
monthlySpend: Scalars['Float']['output'];
|
|
112636
|
+
relationshipId: Scalars['ID']['output'];
|
|
112637
|
+
};
|
|
112638
|
+
export type SubEnterpriseSpendDashboard = {
|
|
112639
|
+
__typename?: 'SubEnterpriseSpendDashboard';
|
|
112640
|
+
activeRelationshipCount: Scalars['Int']['output'];
|
|
112641
|
+
annualSpend: Scalars['Float']['output'];
|
|
112642
|
+
/** Company-wide budget status; null when no company budget is set for this currency. */
|
|
112643
|
+
budget?: Maybe<SubBudgetStatus>;
|
|
112644
|
+
currency: Scalars['String']['output'];
|
|
112645
|
+
departments: Array<SubDepartmentSpend>;
|
|
112646
|
+
/** Monthly saving if every recommended consolidation is made (each relationship counted once). */
|
|
112647
|
+
duplicatePotentialMonthlySavings: Scalars['Float']['output'];
|
|
112648
|
+
duplicateTools: Array<SubDuplicateToolGroup>;
|
|
112649
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
112650
|
+
/** Relationships billing now, most expensive first (top 50). */
|
|
112651
|
+
licenses: Array<SubLicenseRow>;
|
|
112652
|
+
monthlySpend: Scalars['Float']['output'];
|
|
112653
|
+
monthlySpendChangePct?: Maybe<Scalars['Float']['output']>;
|
|
112654
|
+
/** Spend billed in other currencies, which this dashboard does not include. */
|
|
112655
|
+
otherCurrencies: Array<SubCurrencySpend>;
|
|
112656
|
+
/** Monthly run-rate 30 days ago. */
|
|
112657
|
+
previousMonthlySpend: Scalars['Float']['output'];
|
|
112658
|
+
renewalPipeline: Array<SubRenewalQuarter>;
|
|
112659
|
+
riskFlagCount: Scalars['Int']['output'];
|
|
112660
|
+
riskFlags: Array<SubSpendRiskFlag>;
|
|
112661
|
+
/** Seats used as a percentage of seats assigned; null when no seats are tracked. */
|
|
112662
|
+
seatUtilizationPct?: Maybe<Scalars['Float']['output']>;
|
|
112663
|
+
/** Seats across relationships billing now that track SEAT entitlements. */
|
|
112664
|
+
seatsAssigned: Scalars['Int']['output'];
|
|
112665
|
+
seatsUsed: Scalars['Int']['output'];
|
|
112666
|
+
shadowIt: Array<SubShadowItItem>;
|
|
112667
|
+
shadowItCount: Scalars['Int']['output'];
|
|
112668
|
+
shadowItMonthlySpend: Scalars['Float']['output'];
|
|
112669
|
+
trend: Array<SubSpendTrendPoint>;
|
|
112670
|
+
/** True when the workspace has more relationships than one dashboard aggregates. */
|
|
112671
|
+
truncated: Scalars['Boolean']['output'];
|
|
112672
|
+
};
|
|
110585
112673
|
export type SubEntitlement = {
|
|
110586
112674
|
__typename?: 'SubEntitlement';
|
|
110587
112675
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -110610,6 +112698,12 @@ export declare enum SubEntitlementType {
|
|
|
110610
112698
|
SupportTier = "SUPPORT_TIER",
|
|
110611
112699
|
UsageQuota = "USAGE_QUOTA"
|
|
110612
112700
|
}
|
|
112701
|
+
export type SubHealthRecomputeResult = {
|
|
112702
|
+
__typename?: 'SubHealthRecomputeResult';
|
|
112703
|
+
evaluated: Scalars['Int']['output'];
|
|
112704
|
+
truncated: Scalars['Boolean']['output'];
|
|
112705
|
+
updated: Scalars['Int']['output'];
|
|
112706
|
+
};
|
|
110613
112707
|
export type SubInboxMessage = {
|
|
110614
112708
|
__typename?: 'SubInboxMessage';
|
|
110615
112709
|
actionRequired: Scalars['Boolean']['output'];
|
|
@@ -110678,6 +112772,20 @@ export declare enum SubInvoiceStatus {
|
|
|
110678
112772
|
Paid = "PAID",
|
|
110679
112773
|
Refunded = "REFUNDED"
|
|
110680
112774
|
}
|
|
112775
|
+
export type SubLicenseRow = {
|
|
112776
|
+
__typename?: 'SubLicenseRow';
|
|
112777
|
+
annualCost: Scalars['Float']['output'];
|
|
112778
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
112779
|
+
label: Scalars['String']['output'];
|
|
112780
|
+
monthlySpend: Scalars['Float']['output'];
|
|
112781
|
+
providerName?: Maybe<Scalars['String']['output']>;
|
|
112782
|
+
relationshipId: Scalars['ID']['output'];
|
|
112783
|
+
renewsAt?: Maybe<Scalars['DateTime']['output']>;
|
|
112784
|
+
/** Seats purchased (sum of active SEAT entitlement quotas); null when seats are not tracked. */
|
|
112785
|
+
seatsAssigned?: Maybe<Scalars['Int']['output']>;
|
|
112786
|
+
seatsUsed?: Maybe<Scalars['Int']['output']>;
|
|
112787
|
+
utilizationPct?: Maybe<Scalars['Float']['output']>;
|
|
112788
|
+
};
|
|
110681
112789
|
export type SubMarketplaceReport = {
|
|
110682
112790
|
__typename?: 'SubMarketplaceReport';
|
|
110683
112791
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -110708,6 +112816,64 @@ export declare enum SubModerationAction {
|
|
|
110708
112816
|
Dismiss = "DISMISS",
|
|
110709
112817
|
RemoveListing = "REMOVE_LISTING"
|
|
110710
112818
|
}
|
|
112819
|
+
export type SubMoneyAmount = {
|
|
112820
|
+
__typename?: 'SubMoneyAmount';
|
|
112821
|
+
amount: Scalars['Float']['output'];
|
|
112822
|
+
currency: Scalars['String']['output'];
|
|
112823
|
+
};
|
|
112824
|
+
export type SubOverlap = {
|
|
112825
|
+
__typename?: 'SubOverlap';
|
|
112826
|
+
annualSavings: Scalars['Float']['output'];
|
|
112827
|
+
annualSpend: Scalars['Float']['output'];
|
|
112828
|
+
confidence: Scalars['Float']['output'];
|
|
112829
|
+
currency: Scalars['String']['output'];
|
|
112830
|
+
/** Members the kept relationship fully covers; consolidating cancels these. */
|
|
112831
|
+
dropRelationshipIds: Array<Scalars['ID']['output']>;
|
|
112832
|
+
/** Stable across runs for the same overlap. */
|
|
112833
|
+
id: Scalars['ID']['output'];
|
|
112834
|
+
keepRelationshipId: Scalars['ID']['output'];
|
|
112835
|
+
/** Provider id, capability name or the subsuming relationship id. */
|
|
112836
|
+
key: Scalars['String']['output'];
|
|
112837
|
+
members: Array<SubOverlapMember>;
|
|
112838
|
+
rationale: Scalars['String']['output'];
|
|
112839
|
+
title: Scalars['String']['output'];
|
|
112840
|
+
type: SubOverlapType;
|
|
112841
|
+
};
|
|
112842
|
+
export type SubOverlapConnection = {
|
|
112843
|
+
__typename?: 'SubOverlapConnection';
|
|
112844
|
+
items: Array<SubOverlap>;
|
|
112845
|
+
pageInfo: SubPageInfo;
|
|
112846
|
+
/** Annualised savings if every recommended consolidation is made, per currency. Each relationship is counted once. */
|
|
112847
|
+
totalAnnualSavings: Array<SubMoneyAmount>;
|
|
112848
|
+
totalCount: Scalars['Int']['output'];
|
|
112849
|
+
/** True when the workspace has more ACTIVE relationships than one detection reads. */
|
|
112850
|
+
truncated: Scalars['Boolean']['output'];
|
|
112851
|
+
};
|
|
112852
|
+
export type SubOverlapMember = {
|
|
112853
|
+
__typename?: 'SubOverlapMember';
|
|
112854
|
+
amount: Scalars['Float']['output'];
|
|
112855
|
+
/** `amount` normalised to a year (0 for non-recurring intervals). */
|
|
112856
|
+
annualCost: Scalars['Float']['output'];
|
|
112857
|
+
capabilities: Array<Scalars['String']['output']>;
|
|
112858
|
+
currency: Scalars['String']['output'];
|
|
112859
|
+
entitlementNames: Array<Scalars['String']['output']>;
|
|
112860
|
+
interval: SubBillingInterval;
|
|
112861
|
+
label: Scalars['String']['output'];
|
|
112862
|
+
providerId?: Maybe<Scalars['ID']['output']>;
|
|
112863
|
+
providerName?: Maybe<Scalars['String']['output']>;
|
|
112864
|
+
relationship?: Maybe<SubRelationship>;
|
|
112865
|
+
relationshipId: Scalars['ID']['output'];
|
|
112866
|
+
/** Total recorded usage across the relationship's active entitlements. */
|
|
112867
|
+
usage: Scalars['Int']['output'];
|
|
112868
|
+
};
|
|
112869
|
+
export declare enum SubOverlapType {
|
|
112870
|
+
/** Different providers that share a `capability:` tag (e.g. `capability:cloud-storage`). */
|
|
112871
|
+
Capability = "CAPABILITY",
|
|
112872
|
+
/** A relationship whose entitlements are substantially included in another provider's. */
|
|
112873
|
+
Entitlement = "ENTITLEMENT",
|
|
112874
|
+
/** Two or more ACTIVE relationships with the same provider. */
|
|
112875
|
+
ExactDuplicate = "EXACT_DUPLICATE"
|
|
112876
|
+
}
|
|
110711
112877
|
export type SubPageInfo = {
|
|
110712
112878
|
__typename?: 'SubPageInfo';
|
|
110713
112879
|
cursor?: Maybe<Scalars['String']['output']>;
|
|
@@ -110856,8 +113022,11 @@ export type SubRelationship = {
|
|
|
110856
113022
|
cancelledAt?: Maybe<Scalars['DateTime']['output']>;
|
|
110857
113023
|
createdAt: Scalars['DateTime']['output'];
|
|
110858
113024
|
currency: Scalars['String']['output'];
|
|
113025
|
+
/** Department / team / cost centre the spend is allocated to (null = unallocated). */
|
|
113026
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
110859
113027
|
discoverySource: SubDiscoverySource;
|
|
110860
113028
|
entitlements: Array<SubEntitlement>;
|
|
113029
|
+
/** Computed Subscription Health Score, 0-100: entitlement usage (40%), paid invoice share (25%), renewal price stability (20%) and portfolio overlap (15%). Refreshed by every agent run and by `subRecomputeHealthScores`; null until first computed. */
|
|
110861
113030
|
healthScore?: Maybe<Scalars['Int']['output']>;
|
|
110862
113031
|
id: Scalars['ID']['output'];
|
|
110863
113032
|
interval: SubBillingInterval;
|
|
@@ -110921,16 +113090,139 @@ export type SubRenewalEventConnection = {
|
|
|
110921
113090
|
items: Array<SubRenewalEvent>;
|
|
110922
113091
|
pageInfo: SubPageInfo;
|
|
110923
113092
|
};
|
|
113093
|
+
export type SubRenewalQuarter = {
|
|
113094
|
+
__typename?: 'SubRenewalQuarter';
|
|
113095
|
+
amount: Scalars['Float']['output'];
|
|
113096
|
+
endsAt: Scalars['DateTime']['output'];
|
|
113097
|
+
label: Scalars['String']['output'];
|
|
113098
|
+
quarter: Scalars['Int']['output'];
|
|
113099
|
+
relationshipCount: Scalars['Int']['output'];
|
|
113100
|
+
renewalCount: Scalars['Int']['output'];
|
|
113101
|
+
startsAt: Scalars['DateTime']['output'];
|
|
113102
|
+
topRenewals: Array<SubUpcomingRenewal>;
|
|
113103
|
+
year: Scalars['Int']['output'];
|
|
113104
|
+
};
|
|
110924
113105
|
export declare enum SubReportStatus {
|
|
110925
113106
|
Dismissed = "DISMISSED",
|
|
110926
113107
|
Pending = "PENDING",
|
|
110927
113108
|
Resolved = "RESOLVED"
|
|
110928
113109
|
}
|
|
113110
|
+
/** Set by wspace-scheduler-svc at fire time: idempotencyKey is "<scheduleId>:<scheduledTime>" and triggerData carries scheduledTime, firedAt, timezone, scheduleId and eventId. */
|
|
113111
|
+
export type SubRunAgentSweepInput = {
|
|
113112
|
+
/** Run every enabled agent even if it ran recently. Status gating, the kill switch, the decision cap and the quota pre-flight still apply. */
|
|
113113
|
+
force?: InputMaybe<Scalars['Boolean']['input']>;
|
|
113114
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
113115
|
+
triggerData?: InputMaybe<Scalars['JSON']['input']>;
|
|
113116
|
+
};
|
|
113117
|
+
/** Open (PROPOSED) decisions of one recommendation in one currency. */
|
|
113118
|
+
export type SubSavingsGroup = {
|
|
113119
|
+
__typename?: 'SubSavingsGroup';
|
|
113120
|
+
annualSavings: Scalars['Float']['output'];
|
|
113121
|
+
count: Scalars['Int']['output'];
|
|
113122
|
+
currency: Scalars['String']['output'];
|
|
113123
|
+
recommendation: SubDecisionRecommendation;
|
|
113124
|
+
};
|
|
113125
|
+
export type SubSavingsOverview = {
|
|
113126
|
+
__typename?: 'SubSavingsOverview';
|
|
113127
|
+
/** Bundle suggestions: the duplicate and overlap groups (subDetectOverlaps) that recommend cancelling something and were not dismissed. Consolidating one keeps `keepRelationshipId` and cancels `dropRelationshipIds`. */
|
|
113128
|
+
bundles: Array<SubOverlap>;
|
|
113129
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
113130
|
+
groups: Array<SubSavingsGroup>;
|
|
113131
|
+
/** Open (PROPOSED) decisions counted. */
|
|
113132
|
+
openDecisions: Scalars['Int']['output'];
|
|
113133
|
+
totals: Array<SubSavingsTotal>;
|
|
113134
|
+
/** True when the workspace has more open decisions or live subscriptions than one overview scans. */
|
|
113135
|
+
truncated: Scalars['Boolean']['output'];
|
|
113136
|
+
};
|
|
113137
|
+
/** Headline yearly saving in one currency, counting every subscription once (the largest saving among its open recommendations and bundle suggestions). */
|
|
113138
|
+
export type SubSavingsTotal = {
|
|
113139
|
+
__typename?: 'SubSavingsTotal';
|
|
113140
|
+
annualSavings: Scalars['Float']['output'];
|
|
113141
|
+
currency: Scalars['String']['output'];
|
|
113142
|
+
/** Part of `annualSavings` that comes from bundle suggestions. */
|
|
113143
|
+
fromBundles: Scalars['Float']['output'];
|
|
113144
|
+
/** Part of `annualSavings` that comes from open decisions. */
|
|
113145
|
+
fromDecisions: Scalars['Float']['output'];
|
|
113146
|
+
};
|
|
113147
|
+
export type SubSetSpendBudgetInput = {
|
|
113148
|
+
currency: Scalars['String']['input'];
|
|
113149
|
+
/** Department to budget; omit or leave empty for the company-wide budget. */
|
|
113150
|
+
department?: InputMaybe<Scalars['String']['input']>;
|
|
113151
|
+
/** Monthly budget. Null, zero or a negative amount removes the budget. */
|
|
113152
|
+
monthlyAmount?: InputMaybe<Scalars['Float']['input']>;
|
|
113153
|
+
};
|
|
113154
|
+
export type SubShadowItItem = {
|
|
113155
|
+
__typename?: 'SubShadowItItem';
|
|
113156
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
113157
|
+
detectedAt: Scalars['DateTime']['output'];
|
|
113158
|
+
discoverySource: SubDiscoverySource;
|
|
113159
|
+
label: Scalars['String']['output'];
|
|
113160
|
+
monthlySpend: Scalars['Float']['output'];
|
|
113161
|
+
providerId?: Maybe<Scalars['ID']['output']>;
|
|
113162
|
+
providerName?: Maybe<Scalars['String']['output']>;
|
|
113163
|
+
reason: SubShadowItReason;
|
|
113164
|
+
relationshipId: Scalars['ID']['output'];
|
|
113165
|
+
};
|
|
113166
|
+
export declare enum SubShadowItReason {
|
|
113167
|
+
/** Linked to a provider that has been deprecated (removed from the catalogue). */
|
|
113168
|
+
DeprecatedProvider = "DEPRECATED_PROVIDER",
|
|
113169
|
+
/** Discovered automatically and not linked to any provider in the catalogue. */
|
|
113170
|
+
Uncatalogued = "UNCATALOGUED",
|
|
113171
|
+
/** Discovered automatically and linked to a provider nobody has verified. */
|
|
113172
|
+
UnverifiedProvider = "UNVERIFIED_PROVIDER"
|
|
113173
|
+
}
|
|
113174
|
+
export type SubSpendBudget = {
|
|
113175
|
+
__typename?: 'SubSpendBudget';
|
|
113176
|
+
currency: Scalars['String']['output'];
|
|
113177
|
+
/** Department the budget applies to; null for the company-wide budget. */
|
|
113178
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
113179
|
+
id: Scalars['ID']['output'];
|
|
113180
|
+
monthlyAmount: Scalars['Float']['output'];
|
|
113181
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
113182
|
+
};
|
|
113183
|
+
export type SubSpendRiskFlag = {
|
|
113184
|
+
__typename?: 'SubSpendRiskFlag';
|
|
113185
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
113186
|
+
detail: Scalars['String']['output'];
|
|
113187
|
+
kind: SubSpendRiskKind;
|
|
113188
|
+
label: Scalars['String']['output'];
|
|
113189
|
+
monthlySpend: Scalars['Float']['output'];
|
|
113190
|
+
relationshipId: Scalars['ID']['output'];
|
|
113191
|
+
severity: SubSpendRiskSeverity;
|
|
113192
|
+
};
|
|
113193
|
+
export declare enum SubSpendRiskKind {
|
|
113194
|
+
HighCostAi = "HIGH_COST_AI",
|
|
113195
|
+
MissingInvoice = "MISSING_INVOICE",
|
|
113196
|
+
PastDue = "PAST_DUE",
|
|
113197
|
+
UntrackedTrial = "UNTRACKED_TRIAL"
|
|
113198
|
+
}
|
|
113199
|
+
export declare enum SubSpendRiskSeverity {
|
|
113200
|
+
High = "HIGH",
|
|
113201
|
+
Low = "LOW",
|
|
113202
|
+
Medium = "MEDIUM"
|
|
113203
|
+
}
|
|
113204
|
+
export type SubSpendTrendPoint = {
|
|
113205
|
+
__typename?: 'SubSpendTrendPoint';
|
|
113206
|
+
at: Scalars['DateTime']['output'];
|
|
113207
|
+
/** Monthly run-rate of recurring spend at this instant. */
|
|
113208
|
+
monthlySpend: Scalars['Float']['output'];
|
|
113209
|
+
};
|
|
110929
113210
|
export declare enum SubSubmissionStatus {
|
|
110930
113211
|
Approved = "APPROVED",
|
|
110931
113212
|
Pending = "PENDING",
|
|
110932
113213
|
Rejected = "REJECTED"
|
|
110933
113214
|
}
|
|
113215
|
+
export type SubUpcomingRenewal = {
|
|
113216
|
+
__typename?: 'SubUpcomingRenewal';
|
|
113217
|
+
/** Total renewal charges of this relationship in the quarter. */
|
|
113218
|
+
amount: Scalars['Float']['output'];
|
|
113219
|
+
autoRenew: Scalars['Boolean']['output'];
|
|
113220
|
+
department?: Maybe<Scalars['String']['output']>;
|
|
113221
|
+
label: Scalars['String']['output'];
|
|
113222
|
+
relationshipId: Scalars['ID']['output'];
|
|
113223
|
+
/** First renewal of this relationship in the quarter. */
|
|
113224
|
+
renewsAt: Scalars['DateTime']['output'];
|
|
113225
|
+
};
|
|
110934
113226
|
export type SubUpdateProviderInput = {
|
|
110935
113227
|
category?: InputMaybe<SubProviderCategory>;
|
|
110936
113228
|
churnRiskScore?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -110950,6 +113242,9 @@ export type SubUpdateRelationshipInput = {
|
|
|
110950
113242
|
amount?: InputMaybe<Scalars['Float']['input']>;
|
|
110951
113243
|
autoRenew?: InputMaybe<Scalars['Boolean']['input']>;
|
|
110952
113244
|
currency?: InputMaybe<Scalars['String']['input']>;
|
|
113245
|
+
/** Department / team / cost centre; an empty string clears it. */
|
|
113246
|
+
department?: InputMaybe<Scalars['String']['input']>;
|
|
113247
|
+
/** @deprecated healthScore is computed from recorded signals; a supplied value is ignored. Use subRecomputeHealthScores. */
|
|
110953
113248
|
healthScore?: InputMaybe<Scalars['Int']['input']>;
|
|
110954
113249
|
interval?: InputMaybe<SubBillingInterval>;
|
|
110955
113250
|
kind?: InputMaybe<SubRelationshipKind>;
|
|
@@ -112548,6 +114843,9 @@ export declare enum TcpArchiveItemKind {
|
|
|
112548
114843
|
export type TcpCitation = {
|
|
112549
114844
|
__typename?: 'TcpCitation';
|
|
112550
114845
|
author?: Maybe<Scalars['String']['output']>;
|
|
114846
|
+
claim?: Maybe<TcpStoryClaim>;
|
|
114847
|
+
/** The claim in the story's evidence trail this citation supports (null when the citation is a general source not yet tied to a specific claim). */
|
|
114848
|
+
claimId?: Maybe<Scalars['ID']['output']>;
|
|
112551
114849
|
createdAt: Scalars['DateTime']['output'];
|
|
112552
114850
|
excerpt?: Maybe<Scalars['String']['output']>;
|
|
112553
114851
|
id: Scalars['ID']['output'];
|
|
@@ -112612,6 +114910,8 @@ export type TcpCreateArchiveItemInput = {
|
|
|
112612
114910
|
};
|
|
112613
114911
|
export type TcpCreateCitationInput = {
|
|
112614
114912
|
author?: InputMaybe<Scalars['String']['input']>;
|
|
114913
|
+
/** Optional claim (on the same story) this citation supports. */
|
|
114914
|
+
claimId?: InputMaybe<Scalars['ID']['input']>;
|
|
112615
114915
|
excerpt?: InputMaybe<Scalars['String']['input']>;
|
|
112616
114916
|
provenance?: InputMaybe<Scalars['String']['input']>;
|
|
112617
114917
|
publishedOn?: InputMaybe<Scalars['DateTime']['input']>;
|
|
@@ -112657,6 +114957,13 @@ export type TcpCreateReplyInput = {
|
|
|
112657
114957
|
discussionId: Scalars['ID']['input'];
|
|
112658
114958
|
perspective?: InputMaybe<Scalars['String']['input']>;
|
|
112659
114959
|
};
|
|
114960
|
+
export type TcpCreateStoryClaimInput = {
|
|
114961
|
+
bodyEnd?: InputMaybe<Scalars['Int']['input']>;
|
|
114962
|
+
/** Explicit anchor offsets into the story body. Omit both to have the service locate `text` in the body (the claim stays unanchored if it is not found). */
|
|
114963
|
+
bodyStart?: InputMaybe<Scalars['Int']['input']>;
|
|
114964
|
+
storyId: Scalars['ID']['input'];
|
|
114965
|
+
text: Scalars['String']['input'];
|
|
114966
|
+
};
|
|
112660
114967
|
export type TcpCreateStoryInput = {
|
|
112661
114968
|
authorId?: InputMaybe<Scalars['ID']['input']>;
|
|
112662
114969
|
body?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -112757,21 +115064,9 @@ export type TcpPageInfo = {
|
|
|
112757
115064
|
cursor?: Maybe<Scalars['String']['output']>;
|
|
112758
115065
|
hasMore: Scalars['Boolean']['output'];
|
|
112759
115066
|
};
|
|
112760
|
-
export type TcpReply = {
|
|
112761
|
-
__typename?: 'TcpReply';
|
|
112762
|
-
authorId?: Maybe<Scalars['ID']['output']>;
|
|
112763
|
-
body: Scalars['String']['output'];
|
|
112764
|
-
createdAt: Scalars['DateTime']['output'];
|
|
112765
|
-
discussionId: Scalars['ID']['output'];
|
|
112766
|
-
id: Scalars['ID']['output'];
|
|
112767
|
-
perspective?: Maybe<Scalars['String']['output']>;
|
|
112768
|
-
status: TcpModerationStatus;
|
|
112769
|
-
updatedAt: Scalars['DateTime']['output'];
|
|
112770
|
-
workspaceId: Scalars['ID']['output'];
|
|
112771
|
-
};
|
|
112772
115067
|
export type TcpReplyConnection = {
|
|
112773
115068
|
__typename?: 'TcpReplyConnection';
|
|
112774
|
-
items: Array<
|
|
115069
|
+
items: Array<EntityComment>;
|
|
112775
115070
|
pageInfo: TcpPageInfo;
|
|
112776
115071
|
};
|
|
112777
115072
|
export declare enum TcpSourceType {
|
|
@@ -112789,6 +115084,8 @@ export type TcpStory = {
|
|
|
112789
115084
|
authorId?: Maybe<Scalars['ID']['output']>;
|
|
112790
115085
|
body?: Maybe<Scalars['String']['output']>;
|
|
112791
115086
|
citations: TcpCitationConnection;
|
|
115087
|
+
/** The story's evidence trail: numbered claims made in the body, in display order, each linked to the citations that support it. */
|
|
115088
|
+
claims: Array<TcpStoryClaim>;
|
|
112792
115089
|
/** Hero/cover image — references a wspace-files-svc File (blobs live there). */
|
|
112793
115090
|
cover?: Maybe<File>;
|
|
112794
115091
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -112815,6 +115112,23 @@ export type TcpStory = {
|
|
|
112815
115112
|
export type TcpStoryCitationsArgs = {
|
|
112816
115113
|
pagination?: InputMaybe<PaginationInput>;
|
|
112817
115114
|
};
|
|
115115
|
+
/** A factual claim made in a story's body, numbered in the story's evidence trail and backed by one or more citations. `bodyStart`/`bodyEnd` are character offsets into `TcpStory.body` (null when the claim paraphrases the body and is not anchored to an exact passage). */
|
|
115116
|
+
export type TcpStoryClaim = {
|
|
115117
|
+
__typename?: 'TcpStoryClaim';
|
|
115118
|
+
bodyEnd?: Maybe<Scalars['Int']['output']>;
|
|
115119
|
+
bodyStart?: Maybe<Scalars['Int']['output']>;
|
|
115120
|
+
/** Citations supporting this claim, oldest first. */
|
|
115121
|
+
citations: Array<TcpCitation>;
|
|
115122
|
+
createdAt: Scalars['DateTime']['output'];
|
|
115123
|
+
id: Scalars['ID']['output'];
|
|
115124
|
+
/** 1-based position in the evidence trail. */
|
|
115125
|
+
position: Scalars['Int']['output'];
|
|
115126
|
+
story?: Maybe<TcpStory>;
|
|
115127
|
+
storyId: Scalars['ID']['output'];
|
|
115128
|
+
text: Scalars['String']['output'];
|
|
115129
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
115130
|
+
workspaceId: Scalars['ID']['output'];
|
|
115131
|
+
};
|
|
112818
115132
|
export type TcpStoryConnection = {
|
|
112819
115133
|
__typename?: 'TcpStoryConnection';
|
|
112820
115134
|
items: Array<TcpStory>;
|
|
@@ -112896,6 +115210,15 @@ export type TcpUpdateOralHistoryInput = {
|
|
|
112896
115210
|
title?: InputMaybe<Scalars['String']['input']>;
|
|
112897
115211
|
transcript?: InputMaybe<Scalars['String']['input']>;
|
|
112898
115212
|
};
|
|
115213
|
+
export type TcpUpdateStoryClaimInput = {
|
|
115214
|
+
bodyEnd?: InputMaybe<Scalars['Int']['input']>;
|
|
115215
|
+
bodyStart?: InputMaybe<Scalars['Int']['input']>;
|
|
115216
|
+
/** Drop the body anchor and keep the claim as an unanchored paraphrase. */
|
|
115217
|
+
clearAnchor?: InputMaybe<Scalars['Boolean']['input']>;
|
|
115218
|
+
/** Move the claim to this 1-based position; the trail is renumbered 1..n. */
|
|
115219
|
+
position?: InputMaybe<Scalars['Int']['input']>;
|
|
115220
|
+
text?: InputMaybe<Scalars['String']['input']>;
|
|
115221
|
+
};
|
|
112899
115222
|
export type TcpUpdateStoryInput = {
|
|
112900
115223
|
authorId?: InputMaybe<Scalars['ID']['input']>;
|
|
112901
115224
|
body?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -112979,6 +115302,10 @@ export type TecBookSessionInput = {
|
|
|
112979
115302
|
};
|
|
112980
115303
|
export type TecCertificate = {
|
|
112981
115304
|
__typename?: 'TecCertificate';
|
|
115305
|
+
/** BOFF-3134: id of the canonical certificate in Buildmyiq; null until mirrored. */
|
|
115306
|
+
buiCertificateId?: Maybe<Scalars['ID']['output']>;
|
|
115307
|
+
/** BOFF-3134: the canonical Buildmyiq certificate this certificate is mirrored to. */
|
|
115308
|
+
canonicalCertificate?: Maybe<BuiCertificate>;
|
|
112982
115309
|
course?: Maybe<TecCourse>;
|
|
112983
115310
|
courseId: Scalars['ID']['output'];
|
|
112984
115311
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -112999,6 +115326,10 @@ export declare enum TecCertificateStatus {
|
|
|
112999
115326
|
}
|
|
113000
115327
|
export type TecCourse = {
|
|
113001
115328
|
__typename?: 'TecCourse';
|
|
115329
|
+
/** BOFF-3134: id of the canonical course in Buildmyiq, the platform's LMS system of record. Null until the course has been mirrored there (normally within seconds of a write; the reconcile sweep catches up any backlog). */
|
|
115330
|
+
buiCourseId?: Maybe<Scalars['ID']['output']>;
|
|
115331
|
+
/** BOFF-3134: the canonical Buildmyiq course this course is mirrored to. */
|
|
115332
|
+
canonicalCourse?: Maybe<BuiCourse>;
|
|
113002
115333
|
/** Reference to a wspace-files-svc File for the cover image (blobs live there). */
|
|
113003
115334
|
cover?: Maybe<File>;
|
|
113004
115335
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -113118,6 +115449,10 @@ export type TecEnrollInput = {
|
|
|
113118
115449
|
};
|
|
113119
115450
|
export type TecEnrollment = {
|
|
113120
115451
|
__typename?: 'TecEnrollment';
|
|
115452
|
+
/** BOFF-3134: id of the canonical enrollment in Buildmyiq; null until mirrored. */
|
|
115453
|
+
buiEnrollmentId?: Maybe<Scalars['ID']['output']>;
|
|
115454
|
+
/** BOFF-3134: the canonical Buildmyiq enrollment this enrollment is mirrored to. */
|
|
115455
|
+
canonicalEnrollment?: Maybe<BuiEnrollment>;
|
|
113121
115456
|
completedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
113122
115457
|
/** Lessons finished in this enrollment (BOFF-4107), oldest first. */
|
|
113123
115458
|
completions: Array<TecLessonCompletion>;
|
|
@@ -114794,11 +117129,21 @@ export type TimeCampusCaptureChannel = {
|
|
|
114794
117129
|
id: Scalars['ID']['output'];
|
|
114795
117130
|
/** Opaque reference to a wspace-integrations-svc connection for OAuth-backed connectors. */
|
|
114796
117131
|
integrationConnectionId?: Maybe<Scalars['String']['output']>;
|
|
117132
|
+
/** When the integration connection was revoked. A revoked channel needs a new connection to resume. */
|
|
117133
|
+
integrationRevokedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
114797
117134
|
lastEventAt?: Maybe<Scalars['DateTime']['output']>;
|
|
114798
117135
|
lastSyncAt?: Maybe<Scalars['DateTime']['output']>;
|
|
117136
|
+
/** When a sync of this pull channel last started. */
|
|
117137
|
+
lastSyncAttemptAt?: Maybe<Scalars['DateTime']['output']>;
|
|
117138
|
+
/** Why the last sync (or the integration revoke) failed; null after a successful sync. */
|
|
117139
|
+
lastSyncError?: Maybe<Scalars['String']['output']>;
|
|
117140
|
+
/** How the last sync of this pull channel ended; null before the first sync. */
|
|
117141
|
+
lastSyncStatus?: Maybe<TimeCampusCaptureChannelSyncStatus>;
|
|
114799
117142
|
name: Scalars['String']['output'];
|
|
114800
117143
|
privacyMode: TimeCampusCaptureChannelPrivacyMode;
|
|
114801
117144
|
provider?: Maybe<Scalars['String']['output']>;
|
|
117145
|
+
/** True when TimeCampus pulls this channel from its provider on a schedule (OAuth-backed connectors). */
|
|
117146
|
+
pullSync: Scalars['Boolean']['output'];
|
|
114802
117147
|
/** Captured events from this channel older than this many days are purged. Null keeps them. */
|
|
114803
117148
|
retentionDays?: Maybe<Scalars['Int']['output']>;
|
|
114804
117149
|
status: TimeCampusCaptureChannelStatus;
|
|
@@ -114832,6 +117177,24 @@ export declare enum TimeCampusCaptureChannelStatus {
|
|
|
114832
117177
|
/** Temporarily paused: events sent while paused are refused and never stored. */
|
|
114833
117178
|
Paused = "PAUSED"
|
|
114834
117179
|
}
|
|
117180
|
+
export type TimeCampusCaptureChannelSyncResult = {
|
|
117181
|
+
__typename?: 'TimeCampusCaptureChannelSyncResult';
|
|
117182
|
+
channel: TimeCampusCaptureChannel;
|
|
117183
|
+
duplicates: Scalars['Int']['output'];
|
|
117184
|
+
error?: Maybe<Scalars['String']['output']>;
|
|
117185
|
+
ingested: Scalars['Int']['output'];
|
|
117186
|
+
status: TimeCampusCaptureChannelSyncStatus;
|
|
117187
|
+
};
|
|
117188
|
+
export declare enum TimeCampusCaptureChannelSyncStatus {
|
|
117189
|
+
/** The provider or the integrations service failed; the next scheduled sync retries. */
|
|
117190
|
+
Failed = "FAILED",
|
|
117191
|
+
/** The integration connection is revoked, expired or rejected by the provider: connect the account again. */
|
|
117192
|
+
ReconnectRequired = "RECONNECT_REQUIRED",
|
|
117193
|
+
/** Nothing was pulled (the channel stopped accepting events, or capture is turned off for the source). */
|
|
117194
|
+
Skipped = "SKIPPED",
|
|
117195
|
+
/** Pulled and ingested. */
|
|
117196
|
+
Synced = "SYNCED"
|
|
117197
|
+
}
|
|
114835
117198
|
export declare enum TimeCampusCaptureChannelType {
|
|
114836
117199
|
Api = "API",
|
|
114837
117200
|
Browser = "BROWSER",
|
|
@@ -114840,14 +117203,16 @@ export declare enum TimeCampusCaptureChannelType {
|
|
|
114840
117203
|
Custom = "CUSTOM",
|
|
114841
117204
|
Desktop = "DESKTOP",
|
|
114842
117205
|
Ide = "IDE",
|
|
117206
|
+
/** Activity pulled from a connected third-party app through wspace-integrations-svc, e.g. GitHub. */
|
|
117207
|
+
Integration = "INTEGRATION",
|
|
114843
117208
|
Mobile = "MOBILE"
|
|
114844
117209
|
}
|
|
114845
117210
|
export type TimeCampusCaptureEvent = {
|
|
114846
117211
|
__typename?: 'TimeCampusCaptureEvent';
|
|
114847
117212
|
app?: Maybe<Scalars['String']['output']>;
|
|
114848
|
-
/** Which path produced the suggestion/correction: RULE_BASED, LLM, or USER (manual). */
|
|
117213
|
+
/** Which path produced the suggestion/correction: HISTORY (learned from the user's own earlier project choices), RULE_BASED, LLM, or USER (manual). */
|
|
114849
117214
|
categorizationMethod?: Maybe<Scalars['String']['output']>;
|
|
114850
|
-
/** Model identifier, e.g. "keyword-match-v1" or "gemini:gemini-2.5-flash". */
|
|
117215
|
+
/** Model identifier, e.g. "keyword-match-v1", "correction-history-v1" or "gemini:gemini-2.5-flash". */
|
|
114851
117216
|
categorizationModel?: Maybe<Scalars['String']['output']>;
|
|
114852
117217
|
category: TimeCampusTimelineCategory;
|
|
114853
117218
|
/** Model confidence (0..1) for `category`. Set only when `categorySource` is "ai" (BOFF-3880); null for channel, user and rule-based categories. */
|
|
@@ -114902,6 +117267,17 @@ export type TimeCampusCaptureEventListResponse = {
|
|
|
114902
117267
|
items: Array<TimeCampusCaptureEvent>;
|
|
114903
117268
|
total: Scalars['Int']['output'];
|
|
114904
117269
|
};
|
|
117270
|
+
/** An OAuth-backed source TimeCampus can pull from (BOFF-10441). Connect it by creating a wspace-integrations-svc connection for `integrationProviderKey`, then `connectTimeCampusCaptureChannel` with `type: channelType`, `provider: key` and the connection id. */
|
|
117271
|
+
export type TimeCampusCapturePullProvider = {
|
|
117272
|
+
__typename?: 'TimeCampusCapturePullProvider';
|
|
117273
|
+
channelType: TimeCampusCaptureChannelType;
|
|
117274
|
+
defaultSyncIntervalMinutes: Scalars['Int']['output'];
|
|
117275
|
+
description: Scalars['String']['output'];
|
|
117276
|
+
integrationProviderKey: Scalars['String']['output'];
|
|
117277
|
+
key: Scalars['String']['output'];
|
|
117278
|
+
label: Scalars['String']['output'];
|
|
117279
|
+
minSyncIntervalMinutes: Scalars['Int']['output'];
|
|
117280
|
+
};
|
|
114905
117281
|
/** Result of computing (and persisting) a project suggestion for a capture event — see `suggestTimeCampusCaptureEventCategory`. */
|
|
114906
117282
|
export type TimeCampusCategorySuggestion = {
|
|
114907
117283
|
__typename?: 'TimeCampusCategorySuggestion';
|
|
@@ -115519,6 +117895,80 @@ export type TimeCampusLifeValueUpdateInput = {
|
|
|
115519
117895
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
115520
117896
|
weight?: InputMaybe<Scalars['Float']['input']>;
|
|
115521
117897
|
};
|
|
117898
|
+
/** One fact behind the signal, tied to a week and to the rows it came from. */
|
|
117899
|
+
export type TimeCampusLoadEvidence = {
|
|
117900
|
+
__typename?: 'TimeCampusLoadEvidence';
|
|
117901
|
+
kind: TimeCampusLoadEvidenceKind;
|
|
117902
|
+
observation: Scalars['String']['output'];
|
|
117903
|
+
/** How many rows are behind this fact in total. */
|
|
117904
|
+
refCount: Scalars['Int']['output'];
|
|
117905
|
+
/** Up to 20 of the rows behind this fact. */
|
|
117906
|
+
refs: Array<TimeCampusLoadEvidenceRef>;
|
|
117907
|
+
/** The rules threshold the value is compared against. */
|
|
117908
|
+
threshold?: Maybe<Scalars['Float']['output']>;
|
|
117909
|
+
/** The measured value (hours, share, days or rate, by kind). */
|
|
117910
|
+
value?: Maybe<Scalars['Float']['output']>;
|
|
117911
|
+
/** Last local day (YYYY-MM-DD) of that week. */
|
|
117912
|
+
weekEnd: Scalars['String']['output'];
|
|
117913
|
+
/** First local day (YYYY-MM-DD) of the week the fact is about. */
|
|
117914
|
+
weekStart: Scalars['String']['output'];
|
|
117915
|
+
};
|
|
117916
|
+
export declare enum TimeCampusLoadEvidenceKind {
|
|
117917
|
+
AfterHours = "AFTER_HOURS",
|
|
117918
|
+
Fragmentation = "FRAGMENTATION",
|
|
117919
|
+
LongHours = "LONG_HOURS",
|
|
117920
|
+
NoRecovery = "NO_RECOVERY",
|
|
117921
|
+
WithinRange = "WITHIN_RANGE"
|
|
117922
|
+
}
|
|
117923
|
+
/** A row the signal read: one of the caller's own time entries, work-pattern rows or app-usage rows. */
|
|
117924
|
+
export type TimeCampusLoadEvidenceRef = {
|
|
117925
|
+
__typename?: 'TimeCampusLoadEvidenceRef';
|
|
117926
|
+
id: Scalars['ID']['output'];
|
|
117927
|
+
type: TimeCampusLoadEvidenceRefType;
|
|
117928
|
+
};
|
|
117929
|
+
export declare enum TimeCampusLoadEvidenceRefType {
|
|
117930
|
+
AppUsage = "APP_USAGE",
|
|
117931
|
+
TimeEntry = "TIME_ENTRY",
|
|
117932
|
+
WorkPattern = "WORK_PATTERN"
|
|
117933
|
+
}
|
|
117934
|
+
export declare enum TimeCampusLoadFallbackReason {
|
|
117935
|
+
AiNotEnabled = "AI_NOT_ENABLED",
|
|
117936
|
+
InsufficientData = "INSUFFICIENT_DATA",
|
|
117937
|
+
InvalidReply = "INVALID_REPLY",
|
|
117938
|
+
LowConfidence = "LOW_CONFIDENCE",
|
|
117939
|
+
ProviderFailed = "PROVIDER_FAILED",
|
|
117940
|
+
ProviderNotConfigured = "PROVIDER_NOT_CONFIGURED"
|
|
117941
|
+
}
|
|
117942
|
+
export declare enum TimeCampusLoadLevel {
|
|
117943
|
+
Elevated = "ELEVATED",
|
|
117944
|
+
High = "HIGH",
|
|
117945
|
+
InsufficientData = "INSUFFICIENT_DATA",
|
|
117946
|
+
Low = "LOW"
|
|
117947
|
+
}
|
|
117948
|
+
export declare enum TimeCampusLoadSignalMethod {
|
|
117949
|
+
Model = "MODEL",
|
|
117950
|
+
Rules = "RULES"
|
|
117951
|
+
}
|
|
117952
|
+
/** Load facts for one week of local days. */
|
|
117953
|
+
export type TimeCampusLoadWeek = {
|
|
117954
|
+
__typename?: 'TimeCampusLoadWeek';
|
|
117955
|
+
activeDays: Scalars['Int']['output'];
|
|
117956
|
+
afterHoursHours?: Maybe<Scalars['Float']['output']>;
|
|
117957
|
+
/** Share (0..1) of time-entry time outside the workday window or on a weekend. */
|
|
117958
|
+
afterHoursShare?: Maybe<Scalars['Float']['output']>;
|
|
117959
|
+
contextSwitchesPerHour?: Maybe<Scalars['Float']['output']>;
|
|
117960
|
+
interruptionsPerDay?: Maybe<Scalars['Float']['output']>;
|
|
117961
|
+
/** Days with over ten hours of tracked work. */
|
|
117962
|
+
longDays: Scalars['Int']['output'];
|
|
117963
|
+
meetingHours?: Maybe<Scalars['Float']['output']>;
|
|
117964
|
+
/** Days with under one hour of tracked work. */
|
|
117965
|
+
recoveryDays: Scalars['Int']['output'];
|
|
117966
|
+
/** True when the week crossed two or more load thresholds. */
|
|
117967
|
+
strained: Scalars['Boolean']['output'];
|
|
117968
|
+
trackedHours: Scalars['Float']['output'];
|
|
117969
|
+
weekEnd: Scalars['String']['output'];
|
|
117970
|
+
weekStart: Scalars['String']['output'];
|
|
117971
|
+
};
|
|
115522
117972
|
export declare enum TimeCampusOwnershipContext {
|
|
115523
117973
|
Corporate = "CORPORATE",
|
|
115524
117974
|
Personal = "PERSONAL"
|
|
@@ -115587,6 +118037,8 @@ export declare enum TimeCampusProjectStatus {
|
|
|
115587
118037
|
}
|
|
115588
118038
|
export type TimeCampusRecommendation = {
|
|
115589
118039
|
__typename?: 'TimeCampusRecommendation';
|
|
118040
|
+
/** The provider:model that proposed an AI recommendation; null for rule-based ones. */
|
|
118041
|
+
aiModel?: Maybe<Scalars['String']['output']>;
|
|
115590
118042
|
confidence?: Maybe<Scalars['Float']['output']>;
|
|
115591
118043
|
createdAt: Scalars['DateTime']['output'];
|
|
115592
118044
|
dismissReason?: Maybe<Scalars['String']['output']>;
|
|
@@ -115598,6 +118050,8 @@ export type TimeCampusRecommendation = {
|
|
|
115598
118050
|
kind: Scalars['String']['output'];
|
|
115599
118051
|
rationale: Scalars['String']['output'];
|
|
115600
118052
|
snoozeUntil?: Maybe<Scalars['DateTime']['output']>;
|
|
118053
|
+
/** Who proposed it: RULES (the deterministic weekly rules) or AI (the opt-in model step). */
|
|
118054
|
+
source: TimeCampusRecommendationSource;
|
|
115601
118055
|
state: Scalars['String']['output'];
|
|
115602
118056
|
suggestedAction?: Maybe<Scalars['JSON']['output']>;
|
|
115603
118057
|
title: Scalars['String']['output'];
|
|
@@ -115608,8 +118062,13 @@ export type TimeCampusRecommendation = {
|
|
|
115608
118062
|
};
|
|
115609
118063
|
export type TimeCampusRecommendationPreference = {
|
|
115610
118064
|
__typename?: 'TimeCampusRecommendationPreference';
|
|
118065
|
+
/** Whether the autonomous loop may send this user a day summary and weekly digest unprompted. Off by default. */
|
|
118066
|
+
autonomousEnabled: Scalars['Boolean']['output'];
|
|
118067
|
+
autonomousEnabledAt?: Maybe<Scalars['DateTime']['output']>;
|
|
115611
118068
|
cadence: Scalars['String']['output'];
|
|
115612
118069
|
createdAt: Scalars['DateTime']['output'];
|
|
118070
|
+
/** Hour of the day (0-23, UTC) from which digests may be sent. */
|
|
118071
|
+
digestHourUtc: Scalars['Int']['output'];
|
|
115613
118072
|
id: Scalars['ID']['output'];
|
|
115614
118073
|
mutedKinds: Array<Scalars['String']['output']>;
|
|
115615
118074
|
neverOptimiseForOutput: Scalars['Boolean']['output'];
|
|
@@ -115618,16 +118077,27 @@ export type TimeCampusRecommendationPreference = {
|
|
|
115618
118077
|
quietHoursStart?: Maybe<Scalars['Int']['output']>;
|
|
115619
118078
|
updatedAt: Scalars['DateTime']['output'];
|
|
115620
118079
|
userId: Scalars['ID']['output'];
|
|
118080
|
+
/** ISO weekday (1 = Monday .. 7 = Sunday) of the weekly digest. */
|
|
118081
|
+
weeklyDigestDay: Scalars['Int']['output'];
|
|
115621
118082
|
workspaceId: Scalars['ID']['output'];
|
|
115622
118083
|
};
|
|
115623
118084
|
export type TimeCampusRecommendationPreferenceInput = {
|
|
118085
|
+
/** Opt in to (true) or out of (false) the autonomous day summary and weekly digest. */
|
|
118086
|
+
autonomousEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
118087
|
+
/** DAILY (day summary and weekly digest) or WEEKLY (weekly digest only). */
|
|
115624
118088
|
cadence?: InputMaybe<Scalars['String']['input']>;
|
|
118089
|
+
digestHourUtc?: InputMaybe<Scalars['Int']['input']>;
|
|
115625
118090
|
mutedKinds?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
115626
118091
|
neverOptimiseForOutput?: InputMaybe<Scalars['Boolean']['input']>;
|
|
115627
118092
|
optedInDomains?: InputMaybe<Array<TimeCampusLifeDomain>>;
|
|
115628
118093
|
quietHoursEnd?: InputMaybe<Scalars['Int']['input']>;
|
|
115629
118094
|
quietHoursStart?: InputMaybe<Scalars['Int']['input']>;
|
|
118095
|
+
weeklyDigestDay?: InputMaybe<Scalars['Int']['input']>;
|
|
115630
118096
|
};
|
|
118097
|
+
export declare enum TimeCampusRecommendationSource {
|
|
118098
|
+
Ai = "AI",
|
|
118099
|
+
Rules = "RULES"
|
|
118100
|
+
}
|
|
115631
118101
|
export declare enum TimeCampusSortDirection {
|
|
115632
118102
|
Asc = "asc",
|
|
115633
118103
|
Desc = "desc"
|
|
@@ -115645,6 +118115,26 @@ export type TimeCampusSourceConsent = {
|
|
|
115645
118115
|
userId: Scalars['ID']['output'];
|
|
115646
118116
|
workspaceId: Scalars['ID']['output'];
|
|
115647
118117
|
};
|
|
118118
|
+
/** Whether the caller's own work load has been heavy for several weeks running, with a plain-language rationale and the evidence behind it. Never a productivity score. `method` says whether the rules or a model (workspace opt-in `timecampus.ai.sustained-load`) produced the level; `fallbackReason` says why the rules were used. */
|
|
118119
|
+
export type TimeCampusSustainedLoadSignal = {
|
|
118120
|
+
__typename?: 'TimeCampusSustainedLoadSignal';
|
|
118121
|
+
confidence?: Maybe<Scalars['Float']['output']>;
|
|
118122
|
+
evidence: Array<TimeCampusLoadEvidence>;
|
|
118123
|
+
fallbackReason?: Maybe<TimeCampusLoadFallbackReason>;
|
|
118124
|
+
generatedAt: Scalars['DateTime']['output'];
|
|
118125
|
+
level: TimeCampusLoadLevel;
|
|
118126
|
+
method: TimeCampusLoadSignalMethod;
|
|
118127
|
+
/** provider:model that produced the level when method is MODEL. */
|
|
118128
|
+
model?: Maybe<Scalars['String']['output']>;
|
|
118129
|
+
rationale: Scalars['String']['output'];
|
|
118130
|
+
/** The rules engine's level, shown next to a model level for comparison. */
|
|
118131
|
+
rulesLevel: TimeCampusLoadLevel;
|
|
118132
|
+
timezone: Scalars['String']['output'];
|
|
118133
|
+
/** The weeks read, oldest first. */
|
|
118134
|
+
weeks: Array<TimeCampusLoadWeek>;
|
|
118135
|
+
windowEnd: Scalars['String']['output'];
|
|
118136
|
+
windowStart: Scalars['String']['output'];
|
|
118137
|
+
};
|
|
115648
118138
|
export type TimeCampusTemplateApplication = {
|
|
115649
118139
|
__typename?: 'TimeCampusTemplateApplication';
|
|
115650
118140
|
appliedBy: Scalars['ID']['output'];
|
|
@@ -115676,6 +118166,74 @@ export type TimeCampusTemplateProject = {
|
|
|
115676
118166
|
name: Scalars['String']['output'];
|
|
115677
118167
|
tasks: Array<Scalars['String']['output']>;
|
|
115678
118168
|
};
|
|
118169
|
+
/** A day summary or weekly digest the loop handled for the calling user. */
|
|
118170
|
+
export type TimeCampusTimeIntelligenceDelivery = {
|
|
118171
|
+
__typename?: 'TimeCampusTimeIntelligenceDelivery';
|
|
118172
|
+
createdAt: Scalars['DateTime']['output'];
|
|
118173
|
+
id: Scalars['ID']['output'];
|
|
118174
|
+
notified: Scalars['Boolean']['output'];
|
|
118175
|
+
/** DAILY or WEEKLY. */
|
|
118176
|
+
period: Scalars['String']['output'];
|
|
118177
|
+
/** YYYY-MM-DD (UTC day) or YYYY-Www (ISO week). */
|
|
118178
|
+
periodKey: Scalars['String']['output'];
|
|
118179
|
+
recommendationIds: Array<Scalars['ID']['output']>;
|
|
118180
|
+
/** SENT, EMPTY (nothing to report, so nothing was sent) or FAILED (the notification was not accepted). */
|
|
118181
|
+
status: Scalars['String']['output'];
|
|
118182
|
+
/** Aggregate figures only (seconds, ratios, counts). */
|
|
118183
|
+
summary?: Maybe<Scalars['JSON']['output']>;
|
|
118184
|
+
/** SCHEDULED or MANUAL. */
|
|
118185
|
+
trigger: Scalars['String']['output'];
|
|
118186
|
+
};
|
|
118187
|
+
export type TimeCampusTimeIntelligenceReconcileResult = {
|
|
118188
|
+
__typename?: 'TimeCampusTimeIntelligenceReconcileResult';
|
|
118189
|
+
ensured: Scalars['Int']['output'];
|
|
118190
|
+
failed: Scalars['Int']['output'];
|
|
118191
|
+
workspaces: Scalars['Int']['output'];
|
|
118192
|
+
};
|
|
118193
|
+
/** The workspace's registration with wspace-scheduler-svc. */
|
|
118194
|
+
export type TimeCampusTimeIntelligenceSchedule = {
|
|
118195
|
+
__typename?: 'TimeCampusTimeIntelligenceSchedule';
|
|
118196
|
+
cronExpression: Scalars['String']['output'];
|
|
118197
|
+
id: Scalars['ID']['output'];
|
|
118198
|
+
lastError?: Maybe<Scalars['String']['output']>;
|
|
118199
|
+
lastSweepAt?: Maybe<Scalars['DateTime']['output']>;
|
|
118200
|
+
/** Id of the job on the shared Schedules screen. */
|
|
118201
|
+
schedulerJobId?: Maybe<Scalars['ID']['output']>;
|
|
118202
|
+
/** PENDING, ACTIVE or FAILED. */
|
|
118203
|
+
status: Scalars['String']['output'];
|
|
118204
|
+
timezone: Scalars['String']['output'];
|
|
118205
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
118206
|
+
workspaceId: Scalars['ID']['output'];
|
|
118207
|
+
};
|
|
118208
|
+
/** One execution of the loop for a workspace. */
|
|
118209
|
+
export type TimeCampusTimeIntelligenceSweep = {
|
|
118210
|
+
__typename?: 'TimeCampusTimeIntelligenceSweep';
|
|
118211
|
+
/** AI credits the sweep consumed. The loop makes no model call today, so this is 0. */
|
|
118212
|
+
aiCreditsUsed: Scalars['Int']['output'];
|
|
118213
|
+
dailySummariesSent: Scalars['Int']['output'];
|
|
118214
|
+
/** True when this fire repeated an idempotency key and returned the original sweep. */
|
|
118215
|
+
duplicate: Scalars['Boolean']['output'];
|
|
118216
|
+
error?: Maybe<Scalars['String']['output']>;
|
|
118217
|
+
finishedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
118218
|
+
id: Scalars['ID']['output'];
|
|
118219
|
+
recommendationsCreated: Scalars['Int']['output'];
|
|
118220
|
+
scheduledFor?: Maybe<Scalars['DateTime']['output']>;
|
|
118221
|
+
/** RATE_LIMITED, KILL_SWITCH or NO_OPTED_IN_USERS when status is SKIPPED. */
|
|
118222
|
+
skippedReason?: Maybe<Scalars['String']['output']>;
|
|
118223
|
+
startedAt: Scalars['DateTime']['output'];
|
|
118224
|
+
/** RUNNING, COMPLETED, SKIPPED or FAILED. */
|
|
118225
|
+
status: Scalars['String']['output'];
|
|
118226
|
+
/** SCHEDULED (fired by wspace-scheduler-svc) or MANUAL (run by a super admin). */
|
|
118227
|
+
trigger: Scalars['String']['output'];
|
|
118228
|
+
usersConsidered: Scalars['Int']['output'];
|
|
118229
|
+
weeklyDigestsSent: Scalars['Int']['output'];
|
|
118230
|
+
workspaceId: Scalars['ID']['output'];
|
|
118231
|
+
};
|
|
118232
|
+
/** Execution context the scheduler adds at fire time. idempotencyKey is "<scheduleId>:<scheduledTime>" and triggerData carries scheduledTime, firedAt, timezone, scheduleId and eventId. */
|
|
118233
|
+
export type TimeCampusTimeIntelligenceSweepInput = {
|
|
118234
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
118235
|
+
triggerData?: InputMaybe<Scalars['JSON']['input']>;
|
|
118236
|
+
};
|
|
115679
118237
|
export type TimeCampusTimeWellSpent = {
|
|
115680
118238
|
__typename?: 'TimeCampusTimeWellSpent';
|
|
115681
118239
|
byDomain: Array<TimeCampusDomainAlignment>;
|
|
@@ -115723,8 +118281,16 @@ export type TimeCampusTimelineFocusDetail = {
|
|
|
115723
118281
|
export type TimeCampusTimelineSegment = {
|
|
115724
118282
|
__typename?: 'TimeCampusTimelineSegment';
|
|
115725
118283
|
app?: Maybe<Scalars['String']['output']>;
|
|
118284
|
+
/** How the project was suggested or chosen: HISTORY (learned from your past choices), RULE_BASED (project-name match), LLM, or USER (set by hand). */
|
|
118285
|
+
categorizationMethod?: Maybe<Scalars['String']['output']>;
|
|
115726
118286
|
category: TimeCampusTimelineCategory;
|
|
118287
|
+
/** Model confidence (0..1) for `category`. Set only when `categorySource` is "ai"; null for channel, user and rule-based categories and for every non-capture segment. */
|
|
118288
|
+
categoryConfidence?: Maybe<Scalars['Float']['output']>;
|
|
118289
|
+
/** The "provider:model" that decided `category` when `categorySource` is "ai". */
|
|
118290
|
+
categoryModel?: Maybe<Scalars['String']['output']>;
|
|
115727
118291
|
categorySource?: Maybe<Scalars['String']['output']>;
|
|
118292
|
+
/** Confidence (0..1) of the pending project suggestion; null without one. */
|
|
118293
|
+
categorySuggestionConfidence?: Maybe<Scalars['Float']['output']>;
|
|
115728
118294
|
channelId?: Maybe<Scalars['ID']['output']>;
|
|
115729
118295
|
durationSeconds: Scalars['Int']['output'];
|
|
115730
118296
|
endTime?: Maybe<Scalars['DateTime']['output']>;
|
|
@@ -115740,6 +118306,8 @@ export type TimeCampusTimelineSegment = {
|
|
|
115740
118306
|
source: TimeCampusTimelineSource;
|
|
115741
118307
|
sourceId: Scalars['ID']['output'];
|
|
115742
118308
|
startTime: Scalars['DateTime']['output'];
|
|
118309
|
+
/** CAPTURE only (BOFF-4146): the project suggested for this activity and waiting for approval (acceptTimeCampusCaptureEventSuggestion / rejectTimeCampusCaptureEventSuggestion), or null. */
|
|
118310
|
+
suggestedProjectId?: Maybe<Scalars['ID']['output']>;
|
|
115743
118311
|
title?: Maybe<Scalars['String']['output']>;
|
|
115744
118312
|
url?: Maybe<Scalars['String']['output']>;
|
|
115745
118313
|
};
|
|
@@ -117767,6 +120335,14 @@ export type UpdateCrewServiceListingInput = {
|
|
|
117767
120335
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
117768
120336
|
title?: InputMaybe<Scalars['String']['input']>;
|
|
117769
120337
|
};
|
|
120338
|
+
/** Edit a skill. Omitted fields are left unchanged; `aliases` replaces the list. A rename keeps the old name as an alias. Editing a BACKFILL skill marks it reviewed (source becomes CUSTOM). */
|
|
120339
|
+
export type UpdateCrewSkillInput = {
|
|
120340
|
+
aliases?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
120341
|
+
category?: InputMaybe<Scalars['String']['input']>;
|
|
120342
|
+
/** Empty string clears it. */
|
|
120343
|
+
description?: InputMaybe<Scalars['String']['input']>;
|
|
120344
|
+
name?: InputMaybe<Scalars['String']['input']>;
|
|
120345
|
+
};
|
|
117770
120346
|
export type UpdateCrewTeamInput = {
|
|
117771
120347
|
department?: InputMaybe<Scalars['String']['input']>;
|
|
117772
120348
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -119723,7 +122299,10 @@ export type UpdateRoleInput = {
|
|
|
119723
122299
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
119724
122300
|
parentId?: InputMaybe<Scalars['ID']['input']>;
|
|
119725
122301
|
priority?: InputMaybe<Scalars['Int']['input']>;
|
|
119726
|
-
/**
|
|
122302
|
+
/**
|
|
122303
|
+
* Product this role belongs to (PlatformProduct.slug). Set to null only from
|
|
122304
|
+
* admin-app flows that intentionally manage cross-product platform roles.
|
|
122305
|
+
*/
|
|
119727
122306
|
productSlug?: InputMaybe<Scalars['String']['input']>;
|
|
119728
122307
|
};
|
|
119729
122308
|
export type UpdateRouteInput = {
|