@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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.196.1",
3
+ "version": "2.198.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1676,7 +1676,7 @@ export interface paths {
1676
1676
  };
1677
1677
  /**
1678
1678
  * Test pyramid assessment — workspace summary
1679
- * @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.
1679
+ * @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.
1680
1680
  */
1681
1681
  get: operations["getInsightsTestPyramidSummary"];
1682
1682
  put?: never;
@@ -11428,6 +11428,13 @@ export interface components {
11428
11428
  knowledgeJob?: components["schemas"]["CodeKnowledgeJobDto"] | null;
11429
11429
  /** Format: date-time */
11430
11430
  indexedAt?: string | null;
11431
+ /**
11432
+ * Format: date-time
11433
+ * @description When cadence last compared the remote tip SHA to commitSha without rebuilding the graph (change-block skip). Distinct from indexedAt.
11434
+ */
11435
+ lastCheckedAt?: string | null;
11436
+ /** @description Paths/counts changed between the prior and current commitSha on the last rebuild. */
11437
+ lastChange?: components["schemas"]["CodeChatIndexLastChangeDto"] | null;
11431
11438
  /** Format: date-time */
11432
11439
  createdAt: string;
11433
11440
  /** Format: date-time */
@@ -11435,6 +11442,19 @@ export interface components {
11435
11442
  /** @description True when the indexed graph stores durable code excerpts (required for useful chat answers). */
11436
11443
  hasCodeExcerpts?: boolean;
11437
11444
  };
11445
+ CodeChatIndexLastChangeDto: {
11446
+ priorCommitSha: string;
11447
+ commitSha: string;
11448
+ /** @description Total files changed (may exceed files.length when capped). */
11449
+ fileCount: number;
11450
+ files: {
11451
+ path: string;
11452
+ /** @description GitHub compare status (added, modified, removed, …) */
11453
+ status: string;
11454
+ }[];
11455
+ /** Format: date-time */
11456
+ capturedAt: string;
11457
+ };
11438
11458
  CodeKnowledgeJobDto: {
11439
11459
  /** Format: uuid */
11440
11460
  id: string;
@@ -11508,10 +11528,10 @@ export interface components {
11508
11528
  repoId: string;
11509
11529
  repoName: string;
11510
11530
  /**
11511
- * @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.
11531
+ * @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).
11512
11532
  * @enum {string}
11513
11533
  */
11514
- code: "repo_ineligible" | "indexed_recently" | "index_in_progress" | "ecg_source_off" | "index_failed";
11534
+ code: "repo_ineligible" | "indexed_recently" | "index_in_progress" | "ecg_source_off" | "index_failed" | "content_unchanged";
11515
11535
  };
11516
11536
  CodeChatThreadDto: {
11517
11537
  /** Format: uuid */
@@ -12619,6 +12639,22 @@ export interface components {
12619
12639
  /** @description Dashboard metrics bucket end for the org snapshot. */
12620
12640
  bucketEnd: string;
12621
12641
  } | null;
12642
+ InsightsTestPyramidSuiteLayerOutcomeDto: {
12643
+ passRatePercent: number;
12644
+ failRatePercent: number;
12645
+ runsTotal: number;
12646
+ /** @description Latest mapped check-run `occurred_at` in the sample. */
12647
+ sampleBucketEnd: string;
12648
+ /** @description Included only when `runsTotal` is at least 5. Failure then success on the same `head_sha` + check name counts as a flake observation. */
12649
+ flakePercent?: number;
12650
+ };
12651
+ /** @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. */
12652
+ InsightsTestPyramidSuiteExecutionDto: {
12653
+ unit?: components["schemas"]["InsightsTestPyramidSuiteLayerOutcomeDto"] | null;
12654
+ e2e?: components["schemas"]["InsightsTestPyramidSuiteLayerOutcomeDto"] | null;
12655
+ /** @description Optional bonus layer; not required for */
12656
+ integration?: components["schemas"]["InsightsTestPyramidSuiteLayerOutcomeDto"] | null;
12657
+ } | null;
12622
12658
  InsightsTestPyramidSummaryDto: {
12623
12659
  /** Format: uuid */
12624
12660
  workspaceId: string;
@@ -12649,6 +12685,7 @@ export interface components {
12649
12685
  /** @description Repos whose latest Code Insights snapshot has `hotspotCount` > 0. */
12650
12686
  reposWithHotspots: number;
12651
12687
  ciQuality: components["schemas"]["InsightsTestPyramidCiQualityDto"];
12688
+ suiteExecution: components["schemas"]["InsightsTestPyramidSuiteExecutionDto"];
12652
12689
  };
12653
12690
  InsightsTestPyramidRepoItemDto: {
12654
12691
  /** Format: uuid */
@@ -12679,6 +12716,7 @@ export interface components {
12679
12716
  e2eCrossRepoCandidate: boolean;
12680
12717
  /** @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. */
12681
12718
  hotspotCount: number | null;
12719
+ suiteExecution: components["schemas"]["InsightsTestPyramidSuiteExecutionDto"];
12682
12720
  };
12683
12721
  InsightsTestPyramidRepoListDto: {
12684
12722
  items: components["schemas"]["InsightsTestPyramidRepoItemDto"][];
@@ -13631,6 +13669,7 @@ export type InsightsRecommendationsPageBundleResponse = components['schemas']['I
13631
13669
  export type CodeChatIndexStatus = components['schemas']['CodeChatIndexStatus'];
13632
13670
  export type CodeChatIndexer = components['schemas']['CodeChatIndexer'];
13633
13671
  export type CodeChatIndexDto = components['schemas']['CodeChatIndexDto'];
13672
+ export type CodeChatIndexLastChangeDto = components['schemas']['CodeChatIndexLastChangeDto'];
13634
13673
  export type CodeKnowledgeJobDto = components['schemas']['CodeKnowledgeJobDto'];
13635
13674
  export type CodeKnowledgeTrackStatus = components['schemas']['CodeKnowledgeTrackStatus'];
13636
13675
  export type CodeChatIndexListDto = components['schemas']['CodeChatIndexListDto'];
@@ -13732,6 +13771,8 @@ export type InsightsTestPyramidConfidenceDto = components['schemas']['InsightsTe
13732
13771
  export type InsightsTestPyramidLayerConfidenceDto = components['schemas']['InsightsTestPyramidLayerConfidenceDto'];
13733
13772
  export type InsightsTestPyramidCoverageRollupDto = components['schemas']['InsightsTestPyramidCoverageRollupDto'];
13734
13773
  export type InsightsTestPyramidCiQualityDto = components['schemas']['InsightsTestPyramidCiQualityDto'];
13774
+ export type InsightsTestPyramidSuiteLayerOutcomeDto = components['schemas']['InsightsTestPyramidSuiteLayerOutcomeDto'];
13775
+ export type InsightsTestPyramidSuiteExecutionDto = components['schemas']['InsightsTestPyramidSuiteExecutionDto'];
13735
13776
  export type InsightsTestPyramidSummaryDto = components['schemas']['InsightsTestPyramidSummaryDto'];
13736
13777
  export type InsightsTestPyramidRepoItemDto = components['schemas']['InsightsTestPyramidRepoItemDto'];
13737
13778
  export type InsightsTestPyramidRepoListDto = components['schemas']['InsightsTestPyramidRepoListDto'];