@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.
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ThinkAI API
4
- version: 2.196.1
4
+ version: 2.198.0
5
5
  description: >
6
6
  Contract surface for the AI Driven SDLC backend used by ThinkAI.
7
7
  Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
@@ -5015,7 +5015,8 @@ paths:
5015
5015
  middle ~20% integration+contract+acceptance/BDD, top ~10% E2E) and returns
5016
5016
  `insufficient_data` when total classified test files < 10. Also returns
5017
5017
  maturity trend, coverage overlay, confidence, applicability, E2E-cross/hotspot
5018
- risk, and workspace-only `ciQuality` from the latest org dashboard snapshot.
5018
+ risk, workspace-only `ciQuality`, and Actions/check-name `suiteExecution`
5019
+ (unit/e2e suite pass/flake) from the latest org dashboard snapshot.
5019
5020
  Does not change Agentic Foundation `/readiness/test-pyramid*` responses.
5020
5021
  parameters:
5021
5022
  - $ref: "#/components/parameters/WorkspaceId"
@@ -27507,12 +27508,47 @@ components:
27507
27508
  Active knowledge job for this repo when status is queued/running — phase, tracks,
27508
27509
  and token/cost rollups for SPA transparency (Wave 1).
27509
27510
  indexedAt: { type: string, format: date-time, nullable: true }
27511
+ lastCheckedAt:
27512
+ type: string
27513
+ format: date-time
27514
+ nullable: true
27515
+ description: >
27516
+ When cadence last compared the remote tip SHA to commitSha without rebuilding
27517
+ the graph (change-block skip). Distinct from indexedAt.
27518
+ lastChange:
27519
+ allOf:
27520
+ - $ref: "#/components/schemas/CodeChatIndexLastChangeDto"
27521
+ nullable: true
27522
+ description: >
27523
+ Paths/counts changed between the prior and current commitSha on the last rebuild.
27510
27524
  createdAt: { type: string, format: date-time }
27511
27525
  updatedAt: { type: string, format: date-time }
27512
27526
  hasCodeExcerpts:
27513
27527
  type: boolean
27514
27528
  description: True when the indexed graph stores durable code excerpts (required for useful chat answers).
27515
27529
 
27530
+ CodeChatIndexLastChangeDto:
27531
+ type: object
27532
+ required: [priorCommitSha, commitSha, fileCount, files, capturedAt]
27533
+ properties:
27534
+ priorCommitSha: { type: string }
27535
+ commitSha: { type: string }
27536
+ fileCount:
27537
+ type: integer
27538
+ minimum: 0
27539
+ description: Total files changed (may exceed files.length when capped).
27540
+ files:
27541
+ type: array
27542
+ maxItems: 50
27543
+ items:
27544
+ type: object
27545
+ required: [path, status]
27546
+ properties:
27547
+ path: { type: string }
27548
+ status:
27549
+ { type: string, description: "GitHub compare status (added, modified, removed, …)" }
27550
+ capturedAt: { type: string, format: date-time }
27551
+
27516
27552
  CodeKnowledgeJobDto:
27517
27553
  type: object
27518
27554
  required:
@@ -27627,12 +27663,22 @@ components:
27627
27663
  repoName: { type: string }
27628
27664
  code:
27629
27665
  type: string
27630
- enum: [repo_ineligible, indexed_recently, index_in_progress, ecg_source_off, index_failed]
27666
+ enum:
27667
+ [
27668
+ repo_ineligible,
27669
+ indexed_recently,
27670
+ index_in_progress,
27671
+ ecg_source_off,
27672
+ index_failed,
27673
+ content_unchanged,
27674
+ ]
27631
27675
  description: >
27632
27676
  Stable machine-readable skip reason. `ecg_source_off` covers a source turned off
27633
27677
  for Engineering Context Graph and non-GitHub providers that stay listed but are
27634
27678
  never indexed. `index_failed` means indexing already failed after three attempts
27635
- and stays failed until an admin force sync.
27679
+ and stays failed until an admin force sync. `content_unchanged` means the remote
27680
+ tip SHA matched the stored index commit during a daily/weekly cadence tick
27681
+ (check-only; no clone/Graphify).
27636
27682
 
27637
27683
  CodeChatThreadDto:
27638
27684
  type: object
@@ -29571,6 +29617,54 @@ components:
29571
29617
  type: string
29572
29618
  description: Dashboard metrics bucket end for the org snapshot.
29573
29619
 
29620
+ InsightsTestPyramidSuiteLayerOutcomeDto:
29621
+ type: object
29622
+ required: [passRatePercent, failRatePercent, runsTotal, sampleBucketEnd]
29623
+ properties:
29624
+ passRatePercent:
29625
+ type: number
29626
+ minimum: 0
29627
+ maximum: 100
29628
+ failRatePercent:
29629
+ type: number
29630
+ minimum: 0
29631
+ maximum: 100
29632
+ runsTotal:
29633
+ type: integer
29634
+ minimum: 1
29635
+ sampleBucketEnd:
29636
+ type: string
29637
+ description: Latest mapped check-run `occurred_at` in the sample.
29638
+ flakePercent:
29639
+ type: number
29640
+ minimum: 0
29641
+ maximum: 100
29642
+ description: >
29643
+ Included only when `runsTotal` is at least 5. Failure then success on
29644
+ the same `head_sha` + check name counts as a flake observation.
29645
+
29646
+ InsightsTestPyramidSuiteExecutionDto:
29647
+ type: object
29648
+ nullable: true
29649
+ description: >
29650
+ Suite-level pass/flake from GitHub Actions / Checks job names classified
29651
+ onto pyramid layers. Null when no mapped unit/e2e (or optional integration)
29652
+ check names exist in the org dashboard quality snapshot.
29653
+ properties:
29654
+ unit:
29655
+ allOf:
29656
+ - $ref: "#/components/schemas/InsightsTestPyramidSuiteLayerOutcomeDto"
29657
+ nullable: true
29658
+ e2e:
29659
+ allOf:
29660
+ - $ref: "#/components/schemas/InsightsTestPyramidSuiteLayerOutcomeDto"
29661
+ nullable: true
29662
+ integration:
29663
+ allOf:
29664
+ - $ref: "#/components/schemas/InsightsTestPyramidSuiteLayerOutcomeDto"
29665
+ nullable: true
29666
+ description: Optional bonus layer; not required for #234 acceptance.
29667
+
29574
29668
  InsightsTestPyramidSummaryDto:
29575
29669
  type: object
29576
29670
  required:
@@ -29591,6 +29685,7 @@ components:
29591
29685
  - e2eCrossRepoCandidateCount
29592
29686
  - reposWithHotspots
29593
29687
  - ciQuality
29688
+ - suiteExecution
29594
29689
  properties:
29595
29690
  workspaceId: { type: string, format: uuid }
29596
29691
  generatedAt: { type: string, format: date-time }
@@ -29642,6 +29737,8 @@ components:
29642
29737
  description: Repos whose latest Code Insights snapshot has `hotspotCount` > 0.
29643
29738
  ciQuality:
29644
29739
  $ref: "#/components/schemas/InsightsTestPyramidCiQualityDto"
29740
+ suiteExecution:
29741
+ $ref: "#/components/schemas/InsightsTestPyramidSuiteExecutionDto"
29645
29742
 
29646
29743
  InsightsTestPyramidRepoItemDto:
29647
29744
  type: object
@@ -29666,6 +29763,7 @@ components:
29666
29763
  - layerApplicable
29667
29764
  - e2eCrossRepoCandidate
29668
29765
  - hotspotCount
29766
+ - suiteExecution
29669
29767
  properties:
29670
29768
  repoId: { type: string, format: uuid }
29671
29769
  repoName: { type: string }
@@ -29727,6 +29825,8 @@ components:
29727
29825
  description: >
29728
29826
  Row count in `tai_workspace_repo_code_hotspots` for the repo's latest
29729
29827
  Code Insights metrics snapshot. Null when the repo has no metrics snapshot.
29828
+ suiteExecution:
29829
+ $ref: "#/components/schemas/InsightsTestPyramidSuiteExecutionDto"
29730
29830
 
29731
29831
  InsightsTestPyramidRepoListDto:
29732
29832
  type: object