@thinkai/tai-api-contract 2.118.0 → 2.119.0

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.
@@ -3923,6 +3923,26 @@ export interface paths {
3923
3923
  patch: operations["patchWorkspaceZenHrBranch"];
3924
3924
  trace?: never;
3925
3925
  };
3926
+ "/workspaces/{workspaceId}/ingest-coverage": {
3927
+ parameters: {
3928
+ query?: never;
3929
+ header?: never;
3930
+ path?: never;
3931
+ cookie?: never;
3932
+ };
3933
+ /**
3934
+ * Ingest / backfill data coverage
3935
+ * @description Read-only snapshot of historical ingest coverage for connected pipelines (productivity GitHub, AI usage/spend per provider, SDLC components, monitoring, HRIS). Aggregates existing watermarks and stored day/week evidence — does not trigger ingest or refresh. Requires workspace membership. Disconnected sources are omitted.
3936
+ */
3937
+ get: operations["getWorkspaceIngestCoverage"];
3938
+ put?: never;
3939
+ post?: never;
3940
+ delete?: never;
3941
+ options?: never;
3942
+ head?: never;
3943
+ patch?: never;
3944
+ trace?: never;
3945
+ };
3926
3946
  "/workspaces/{workspaceId}/hris/status": {
3927
3947
  parameters: {
3928
3948
  query?: never;
@@ -7650,6 +7670,115 @@ export interface components {
7650
7670
  */
7651
7671
  syncedAt: string | null;
7652
7672
  };
7673
+ IngestCoverageGapDto: {
7674
+ /** @description Inclusive gap start (ISO date or UTC Monday week start). */
7675
+ from: string;
7676
+ /** @description Inclusive gap end (ISO date or UTC Monday week start). */
7677
+ to: string;
7678
+ };
7679
+ IngestCoverageLastRunDto: {
7680
+ /** Format: date-time */
7681
+ startedAt?: string | null;
7682
+ /** Format: date-time */
7683
+ completedAt?: string | null;
7684
+ /** Format: int64 */
7685
+ durationMs?: number | null;
7686
+ /** @description Pipeline-specific run mode (e.g. recent, historical, refresh). */
7687
+ mode?: string | null;
7688
+ /** @enum {string|null} */
7689
+ outcome?: "ok" | "failed" | "in_progress" | null;
7690
+ };
7691
+ IngestCoverageProductivityRepoDto: {
7692
+ slug: string;
7693
+ /** @enum {string} */
7694
+ queueStatus: "pending" | "complete" | "failed" | "skipped";
7695
+ weeksWithData?: number | null;
7696
+ earliestWeek?: string | null;
7697
+ latestWeek?: string | null;
7698
+ missingWeeks?: number | null;
7699
+ gaps?: components["schemas"]["IngestCoverageGapDto"][];
7700
+ lastErrorKind?: string | null;
7701
+ };
7702
+ IngestCoverageProductivityDetailDto: {
7703
+ /** @enum {string|null} */
7704
+ phase?: "recent" | "historical" | "complete" | null;
7705
+ historicalWeekStart?: string | null;
7706
+ pendingRepoCount?: number;
7707
+ skippedRepoCount?: number;
7708
+ failedRepoCount?: number;
7709
+ coveragePercent?: number | null;
7710
+ repos?: components["schemas"]["IngestCoverageProductivityRepoDto"][];
7711
+ };
7712
+ IngestCoverageFactFamilyDto: {
7713
+ /** @enum {string} */
7714
+ id: "daily_usage" | "spend_daily" | "model_daily" | "product_daily";
7715
+ expectedDays?: number;
7716
+ daysPresent?: number;
7717
+ ingestedFrom?: string | null;
7718
+ ingestedTo?: string | null;
7719
+ missingDayCount?: number;
7720
+ gaps?: components["schemas"]["IngestCoverageGapDto"][];
7721
+ };
7722
+ IngestCoverageAiDetailDto: {
7723
+ factFamilies?: components["schemas"]["IngestCoverageFactFamilyDto"][];
7724
+ refreshInProgress?: boolean;
7725
+ };
7726
+ IngestCoverageSdlcComponentDto: {
7727
+ /** @enum {string} */
7728
+ id: "rollup" | "security_ingest" | "governance_github" | "governance_auditor" | "financial_ingest" | "cost_refresher";
7729
+ latestBucketDate?: string | null;
7730
+ lookbackDays?: number;
7731
+ mode?: string | null;
7732
+ gaps?: components["schemas"]["IngestCoverageGapDto"][];
7733
+ missingCount?: number | null;
7734
+ /** Format: date-time */
7735
+ lastSuccessAt?: string | null;
7736
+ /** Format: int64 */
7737
+ staleForMs?: number | null;
7738
+ isStale?: boolean;
7739
+ };
7740
+ IngestCoverageSdlcDetailDto: {
7741
+ components?: components["schemas"]["IngestCoverageSdlcComponentDto"][];
7742
+ };
7743
+ IngestCoverageSyncDetailDto: {
7744
+ provider?: string;
7745
+ /** @enum {string} */
7746
+ syncStatus?: "ok" | "error" | "never";
7747
+ };
7748
+ IngestCoveragePipelineDto: {
7749
+ id: string;
7750
+ /** @enum {string} */
7751
+ kind: "productivity_github" | "ai_usage" | "sdlc_github" | "monitoring" | "hris";
7752
+ provider?: string | null;
7753
+ /** @enum {string} */
7754
+ status: "not_started" | "backfilling" | "incremental" | "complete" | "failed" | "in_progress";
7755
+ targetWindowDays: number;
7756
+ ingestedFrom?: string | null;
7757
+ ingestedTo?: string | null;
7758
+ progressPercent?: number | null;
7759
+ /** Format: date-time */
7760
+ lastSuccessAt?: string | null;
7761
+ /** Format: date-time */
7762
+ lastAttemptAt?: string | null;
7763
+ lastErrorKind?: string | null;
7764
+ lastErrorMessage?: string | null;
7765
+ /** Format: int64 */
7766
+ staleForMs?: number | null;
7767
+ isStale: boolean;
7768
+ dataLagDays?: number | null;
7769
+ gaps?: components["schemas"]["IngestCoverageGapDto"][];
7770
+ missingCount?: number | null;
7771
+ lastRun?: components["schemas"]["IngestCoverageLastRunDto"];
7772
+ productivity?: components["schemas"]["IngestCoverageProductivityDetailDto"];
7773
+ ai?: components["schemas"]["IngestCoverageAiDetailDto"];
7774
+ sdlc?: components["schemas"]["IngestCoverageSdlcDetailDto"];
7775
+ sync?: components["schemas"]["IngestCoverageSyncDetailDto"];
7776
+ };
7777
+ IngestCoverageDto: {
7778
+ pipelines: components["schemas"]["IngestCoveragePipelineDto"][];
7779
+ /** Format: date-time */
7780
+ generatedAt?: string;
7781
+ };
7653
7782
  HrisSyncStatusDto: {
7654
7783
  /** @description Provider identifier (e.g. 'personio', 'zenhr'). */
7655
7784
  provider: string;
@@ -7932,7 +8061,7 @@ export interface components {
7932
8061
  InsightsResponseMeta: {
7933
8062
  /**
7934
8063
  * Format: date-time
7935
- * @description ISO timestamp when numbers were computed server-side
8064
+ * @description ISO timestamp when numbers were computed server-side. An empty string means the workspace has no successful AI-tool refresh or productivity ingest timestamp yet.
7936
8065
  */
7937
8066
  syncedAt: string;
7938
8067
  /**
@@ -9596,6 +9725,17 @@ export type ActivityLogActorDto = components['schemas']['ActivityLogActorDto'];
9596
9725
  export type ActivityLogEntryDto = components['schemas']['ActivityLogEntryDto'];
9597
9726
  export type WorkspaceAbsenceDto = components['schemas']['WorkspaceAbsenceDto'];
9598
9727
  export type WorkspaceAbsenceListDto = components['schemas']['WorkspaceAbsenceListDto'];
9728
+ export type IngestCoverageGapDto = components['schemas']['IngestCoverageGapDto'];
9729
+ export type IngestCoverageLastRunDto = components['schemas']['IngestCoverageLastRunDto'];
9730
+ export type IngestCoverageProductivityRepoDto = components['schemas']['IngestCoverageProductivityRepoDto'];
9731
+ export type IngestCoverageProductivityDetailDto = components['schemas']['IngestCoverageProductivityDetailDto'];
9732
+ export type IngestCoverageFactFamilyDto = components['schemas']['IngestCoverageFactFamilyDto'];
9733
+ export type IngestCoverageAiDetailDto = components['schemas']['IngestCoverageAiDetailDto'];
9734
+ export type IngestCoverageSdlcComponentDto = components['schemas']['IngestCoverageSdlcComponentDto'];
9735
+ export type IngestCoverageSdlcDetailDto = components['schemas']['IngestCoverageSdlcDetailDto'];
9736
+ export type IngestCoverageSyncDetailDto = components['schemas']['IngestCoverageSyncDetailDto'];
9737
+ export type IngestCoveragePipelineDto = components['schemas']['IngestCoveragePipelineDto'];
9738
+ export type IngestCoverageDto = components['schemas']['IngestCoverageDto'];
9599
9739
  export type HrisSyncStatusDto = components['schemas']['HrisSyncStatusDto'];
9600
9740
  export type HrisSyncStatusListDto = components['schemas']['HrisSyncStatusListDto'];
9601
9741
  export type ZenHrReconnectResultDto = components['schemas']['ZenHrReconnectResultDto'];
@@ -19709,6 +19849,30 @@ export interface operations {
19709
19849
  503: components["responses"]["ZenHrSyncInProgress"];
19710
19850
  };
19711
19851
  };
19852
+ getWorkspaceIngestCoverage: {
19853
+ parameters: {
19854
+ query?: never;
19855
+ header?: never;
19856
+ path: {
19857
+ workspaceId: components["parameters"]["WorkspaceId"];
19858
+ };
19859
+ cookie?: never;
19860
+ };
19861
+ requestBody?: never;
19862
+ responses: {
19863
+ /** @description Ingest coverage for connected pipelines */
19864
+ 200: {
19865
+ headers: {
19866
+ [name: string]: unknown;
19867
+ };
19868
+ content: {
19869
+ "application/json": components["schemas"]["IngestCoverageDto"];
19870
+ };
19871
+ };
19872
+ 401: components["responses"]["Unauthorized"];
19873
+ 403: components["responses"]["Forbidden"];
19874
+ };
19875
+ };
19712
19876
  getHrisSyncStatus: {
19713
19877
  parameters: {
19714
19878
  query?: never;