@thinkai/tai-api-contract 2.196.1 → 2.198.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.
@@ -1675,7 +1675,7 @@ export interface paths {
1675
1675
  };
1676
1676
  /**
1677
1677
  * Test pyramid assessment — workspace summary
1678
- * @description Org-level Test pyramid assessment for `/insights/test-pyramid`. Aggregates each active repo's **latest** readiness-scan test-pyramid snapshot and the immediately previous succeeded/partial_failed/failed point when present (`limitPerRepo: 2`). Layer **presence is count-based** (`fileCount > 0`); CI/dependency-only AF `present` flags are ignored. Shape uses fixed advisory targets (base ~70% unit, middle ~20% integration+contract+acceptance/BDD, top ~10% E2E) and returns `insufficient_data` when total classified test files < 10. Also returns maturity trend, coverage overlay, confidence, applicability, E2E-cross/hotspot risk, and workspace-only `ciQuality` from the latest org dashboard snapshot. Does not change Agentic Foundation `/readiness/test-pyramid*` responses.
1678
+ * @description Org-level Test pyramid assessment for `/insights/test-pyramid`. Aggregates each active repo's **latest** readiness-scan test-pyramid snapshot and the immediately previous succeeded/partial_failed/failed point when present (`limitPerRepo: 2`). Layer **presence is count-based** (`fileCount > 0`); CI/dependency-only AF `present` flags are ignored. Shape uses fixed advisory targets (base ~70% unit, middle ~20% integration+contract+acceptance/BDD, top ~10% E2E) and returns `insufficient_data` when total classified test files < 10. Also returns maturity trend, coverage overlay, confidence, applicability, E2E-cross/hotspot risk, workspace-only `ciQuality`, and Actions/check-name `suiteExecution` (unit/e2e suite pass/flake) from the latest org dashboard snapshot. Does not change Agentic Foundation `/readiness/test-pyramid*` responses.
1679
1679
  */
1680
1680
  get: operations["getInsightsTestPyramidSummary"];
1681
1681
  put?: never;
@@ -11427,6 +11427,13 @@ export interface components {
11427
11427
  knowledgeJob?: components["schemas"]["CodeKnowledgeJobDto"] | null;
11428
11428
  /** Format: date-time */
11429
11429
  indexedAt?: string | null;
11430
+ /**
11431
+ * Format: date-time
11432
+ * @description When cadence last compared the remote tip SHA to commitSha without rebuilding the graph (change-block skip). Distinct from indexedAt.
11433
+ */
11434
+ lastCheckedAt?: string | null;
11435
+ /** @description Paths/counts changed between the prior and current commitSha on the last rebuild. */
11436
+ lastChange?: components["schemas"]["CodeChatIndexLastChangeDto"] | null;
11430
11437
  /** Format: date-time */
11431
11438
  createdAt: string;
11432
11439
  /** Format: date-time */
@@ -11434,6 +11441,19 @@ export interface components {
11434
11441
  /** @description True when the indexed graph stores durable code excerpts (required for useful chat answers). */
11435
11442
  hasCodeExcerpts?: boolean;
11436
11443
  };
11444
+ CodeChatIndexLastChangeDto: {
11445
+ priorCommitSha: string;
11446
+ commitSha: string;
11447
+ /** @description Total files changed (may exceed files.length when capped). */
11448
+ fileCount: number;
11449
+ files: {
11450
+ path: string;
11451
+ /** @description GitHub compare status (added, modified, removed, …) */
11452
+ status: string;
11453
+ }[];
11454
+ /** Format: date-time */
11455
+ capturedAt: string;
11456
+ };
11437
11457
  CodeKnowledgeJobDto: {
11438
11458
  /** Format: uuid */
11439
11459
  id: string;
@@ -11507,10 +11527,10 @@ export interface components {
11507
11527
  repoId: string;
11508
11528
  repoName: string;
11509
11529
  /**
11510
- * @description Stable machine-readable skip reason. `ecg_source_off` covers a source turned off for Engineering Context Graph and non-GitHub providers that stay listed but are never indexed. `index_failed` means indexing already failed after three attempts and stays failed until an admin force sync.
11530
+ * @description Stable machine-readable skip reason. `ecg_source_off` covers a source turned off for Engineering Context Graph and non-GitHub providers that stay listed but are never indexed. `index_failed` means indexing already failed after three attempts and stays failed until an admin force sync. `content_unchanged` means the remote tip SHA matched the stored index commit during a daily/weekly cadence tick (check-only; no clone/Graphify).
11511
11531
  * @enum {string}
11512
11532
  */
11513
- code: "repo_ineligible" | "indexed_recently" | "index_in_progress" | "ecg_source_off" | "index_failed";
11533
+ code: "repo_ineligible" | "indexed_recently" | "index_in_progress" | "ecg_source_off" | "index_failed" | "content_unchanged";
11514
11534
  };
11515
11535
  CodeChatThreadDto: {
11516
11536
  /** Format: uuid */
@@ -12618,6 +12638,22 @@ export interface components {
12618
12638
  /** @description Dashboard metrics bucket end for the org snapshot. */
12619
12639
  bucketEnd: string;
12620
12640
  } | null;
12641
+ InsightsTestPyramidSuiteLayerOutcomeDto: {
12642
+ passRatePercent: number;
12643
+ failRatePercent: number;
12644
+ runsTotal: number;
12645
+ /** @description Latest mapped check-run `occurred_at` in the sample. */
12646
+ sampleBucketEnd: string;
12647
+ /** @description Included only when `runsTotal` is at least 5. Failure then success on the same `head_sha` + check name counts as a flake observation. */
12648
+ flakePercent?: number;
12649
+ };
12650
+ /** @description Suite-level pass/flake from GitHub Actions / Checks job names classified onto pyramid layers. Null when no mapped unit/e2e (or optional integration) check names exist in the org dashboard quality snapshot. */
12651
+ InsightsTestPyramidSuiteExecutionDto: {
12652
+ unit?: components["schemas"]["InsightsTestPyramidSuiteLayerOutcomeDto"] | null;
12653
+ e2e?: components["schemas"]["InsightsTestPyramidSuiteLayerOutcomeDto"] | null;
12654
+ /** @description Optional bonus layer; not required for */
12655
+ integration?: components["schemas"]["InsightsTestPyramidSuiteLayerOutcomeDto"] | null;
12656
+ } | null;
12621
12657
  InsightsTestPyramidSummaryDto: {
12622
12658
  /** Format: uuid */
12623
12659
  workspaceId: string;
@@ -12648,6 +12684,7 @@ export interface components {
12648
12684
  /** @description Repos whose latest Code Insights snapshot has `hotspotCount` > 0. */
12649
12685
  reposWithHotspots: number;
12650
12686
  ciQuality: components["schemas"]["InsightsTestPyramidCiQualityDto"];
12687
+ suiteExecution: components["schemas"]["InsightsTestPyramidSuiteExecutionDto"];
12651
12688
  };
12652
12689
  InsightsTestPyramidRepoItemDto: {
12653
12690
  /** Format: uuid */
@@ -12678,6 +12715,7 @@ export interface components {
12678
12715
  e2eCrossRepoCandidate: boolean;
12679
12716
  /** @description Row count in `tai_workspace_repo_code_hotspots` for the repo's latest Code Insights metrics snapshot. Null when the repo has no metrics snapshot. */
12680
12717
  hotspotCount: number | null;
12718
+ suiteExecution: components["schemas"]["InsightsTestPyramidSuiteExecutionDto"];
12681
12719
  };
12682
12720
  InsightsTestPyramidRepoListDto: {
12683
12721
  items: components["schemas"]["InsightsTestPyramidRepoItemDto"][];
@@ -13630,6 +13668,7 @@ export type InsightsRecommendationsPageBundleResponse = components['schemas']['I
13630
13668
  export type CodeChatIndexStatus = components['schemas']['CodeChatIndexStatus'];
13631
13669
  export type CodeChatIndexer = components['schemas']['CodeChatIndexer'];
13632
13670
  export type CodeChatIndexDto = components['schemas']['CodeChatIndexDto'];
13671
+ export type CodeChatIndexLastChangeDto = components['schemas']['CodeChatIndexLastChangeDto'];
13633
13672
  export type CodeKnowledgeJobDto = components['schemas']['CodeKnowledgeJobDto'];
13634
13673
  export type CodeKnowledgeTrackStatus = components['schemas']['CodeKnowledgeTrackStatus'];
13635
13674
  export type CodeChatIndexListDto = components['schemas']['CodeChatIndexListDto'];
@@ -13731,6 +13770,8 @@ export type InsightsTestPyramidConfidenceDto = components['schemas']['InsightsTe
13731
13770
  export type InsightsTestPyramidLayerConfidenceDto = components['schemas']['InsightsTestPyramidLayerConfidenceDto'];
13732
13771
  export type InsightsTestPyramidCoverageRollupDto = components['schemas']['InsightsTestPyramidCoverageRollupDto'];
13733
13772
  export type InsightsTestPyramidCiQualityDto = components['schemas']['InsightsTestPyramidCiQualityDto'];
13773
+ export type InsightsTestPyramidSuiteLayerOutcomeDto = components['schemas']['InsightsTestPyramidSuiteLayerOutcomeDto'];
13774
+ export type InsightsTestPyramidSuiteExecutionDto = components['schemas']['InsightsTestPyramidSuiteExecutionDto'];
13734
13775
  export type InsightsTestPyramidSummaryDto = components['schemas']['InsightsTestPyramidSummaryDto'];
13735
13776
  export type InsightsTestPyramidRepoItemDto = components['schemas']['InsightsTestPyramidRepoItemDto'];
13736
13777
  export type InsightsTestPyramidRepoListDto = components['schemas']['InsightsTestPyramidRepoListDto'];