@thinkai/tai-api-contract 2.197.0 → 2.199.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.197.0
4
+ version: 2.199.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}/...`.
@@ -2673,6 +2673,96 @@ paths:
2673
2673
  schema:
2674
2674
  $ref: "#/components/schemas/ErrorMessageDto"
2675
2675
 
2676
+ /workspaces/{workspaceId}/strict-insights-on-trust:
2677
+ put:
2678
+ tags: [Workspace]
2679
+ summary: Enable or disable strict Insights gating on dataTrust
2680
+ description: >
2681
+ Opt-in enterprise flag (default off). When enabled, Insights may hide card bodies
2682
+ for non-remediable unverified ingest `dataTrust` and notify ThinkAI ops. Requires
2683
+ workspace admin. On success writes activity `config.strict_insights_on_trust.changed`.
2684
+ Read back via `GET /workspaces/{workspaceId}/config` → `strictInsightsOnTrust`.
2685
+ operationId: putWorkspaceStrictInsightsOnTrust
2686
+ parameters:
2687
+ - $ref: "#/components/parameters/WorkspaceId"
2688
+ requestBody:
2689
+ required: true
2690
+ content:
2691
+ application/json:
2692
+ schema:
2693
+ $ref: "#/components/schemas/PutStrictInsightsOnTrustDto"
2694
+ responses:
2695
+ "200":
2696
+ description: Flag updated
2697
+ content:
2698
+ application/json:
2699
+ schema:
2700
+ type: object
2701
+ required: [ok, strictInsightsOnTrust]
2702
+ additionalProperties: false
2703
+ properties:
2704
+ ok:
2705
+ type: boolean
2706
+ strictInsightsOnTrust:
2707
+ type: boolean
2708
+ "400":
2709
+ description: Invalid request body
2710
+ content:
2711
+ application/json:
2712
+ schema:
2713
+ $ref: "#/components/schemas/ErrorMessageDto"
2714
+ "401":
2715
+ $ref: "#/components/responses/Unauthorized"
2716
+ "403":
2717
+ $ref: "#/components/responses/Forbidden"
2718
+ "501":
2719
+ description: Store does not support this setting
2720
+ content:
2721
+ application/json:
2722
+ schema:
2723
+ $ref: "#/components/schemas/ErrorMessageDto"
2724
+
2725
+ /workspaces/{workspaceId}/insights/strict-trust-hide-notify:
2726
+ post:
2727
+ tags: [Workspace]
2728
+ summary: Notify ThinkAI ops of a non-remediable strict Insights hide
2729
+ description: >
2730
+ Called by the SPA when strict Insights is on and a card body is hidden because a
2731
+ required ingest input has `dataTrust.status` ≠ `verified` and Data coverage offers
2732
+ no meaningful self-serve fix (reconnect / Fill / Retry / Sync). Emits a warn
2733
+ `@event:ingest.insights.strict_trust_hide` line with `workspaceId`, `pipeline`,
2734
+ `trustStatus`, `verificationMethod`, and `fix_request: true` (ThinkAI ops /
2735
+ Datadog — not Message Center). Debounced per workspace+pipeline transition into
2736
+ the same hide fingerprint. Returns `{ emitted: false }` without writing a line when
2737
+ the workspace flag is off, `trustStatus` is `verified`, or the fingerprint was
2738
+ already emitted. Member-level access (any Insights viewer may trigger ops notify).
2739
+ operationId: postInsightsStrictTrustHideNotify
2740
+ parameters:
2741
+ - $ref: "#/components/parameters/WorkspaceId"
2742
+ requestBody:
2743
+ required: true
2744
+ content:
2745
+ application/json:
2746
+ schema:
2747
+ $ref: "#/components/schemas/InsightsStrictTrustHideNotifyDto"
2748
+ responses:
2749
+ "200":
2750
+ description: Notify attempt recorded (may or may not have emitted)
2751
+ content:
2752
+ application/json:
2753
+ schema:
2754
+ $ref: "#/components/schemas/InsightsStrictTrustHideNotifyResultDto"
2755
+ "400":
2756
+ description: Invalid request body
2757
+ content:
2758
+ application/json:
2759
+ schema:
2760
+ $ref: "#/components/schemas/ErrorMessageDto"
2761
+ "401":
2762
+ $ref: "#/components/responses/Unauthorized"
2763
+ "403":
2764
+ $ref: "#/components/responses/Forbidden"
2765
+
2676
2766
  /workspaces/{workspaceId}/ai-model-policy:
2677
2767
  get:
2678
2768
  tags: [Workspace]
@@ -5015,7 +5105,8 @@ paths:
5015
5105
  middle ~20% integration+contract+acceptance/BDD, top ~10% E2E) and returns
5016
5106
  `insufficient_data` when total classified test files < 10. Also returns
5017
5107
  maturity trend, coverage overlay, confidence, applicability, E2E-cross/hotspot
5018
- risk, and workspace-only `ciQuality` from the latest org dashboard snapshot.
5108
+ risk, workspace-only `ciQuality`, and Actions/check-name `suiteExecution`
5109
+ (unit/e2e suite pass/flake) from the latest org dashboard snapshot.
5019
5110
  Does not change Agentic Foundation `/readiness/test-pyramid*` responses.
5020
5111
  parameters:
5021
5112
  - $ref: "#/components/parameters/WorkspaceId"
@@ -16488,6 +16579,14 @@ components:
16488
16579
  description: >
16489
16580
  Deep Wiki documentation focus for this workspace (guidance notes + optional topic outline).
16490
16581
  Saved via `PUT /workspaces/{workspaceId}/code-intelligence` (`wikiGuidance`).
16582
+ strictInsightsOnTrust:
16583
+ type: boolean
16584
+ description: >
16585
+ When true (opt-in enterprise), Insights may hide card bodies whose required ingest
16586
+ inputs have `dataTrust.status` ≠ `verified` and no meaningful Data coverage self-serve
16587
+ fix (reconnect / Fill / Retry / Sync), and notify ThinkAI ops. Default false — never
16588
+ on for all workspaces. Missing/null treated as off. Change via
16589
+ `PUT /workspaces/{workspaceId}/strict-insights-on-trust`.
16491
16590
 
16492
16591
  DeliveryRoleConfigDto:
16493
16592
  type: object
@@ -24558,6 +24657,7 @@ components:
24558
24657
  - report.assessment_restored
24559
24658
  - workspace.aggregate_use.changed
24560
24659
  - workspace.assessment_rollout.changed
24660
+ - config.strict_insights_on_trust.changed
24561
24661
 
24562
24662
  AggregateUseNoticeStatusDto:
24563
24663
  type: object
@@ -26147,6 +26247,47 @@ components:
26147
26247
  verificationMethod:
26148
26248
  $ref: "#/components/schemas/DataTrustVerificationMethod"
26149
26249
 
26250
+ PutStrictInsightsOnTrustDto:
26251
+ type: object
26252
+ required: [enabled]
26253
+ additionalProperties: false
26254
+ properties:
26255
+ enabled:
26256
+ type: boolean
26257
+ description: >
26258
+ true to opt in to strict Insights gating on ingest dataTrust; false to opt out
26259
+ (default). Never default-on for all workspaces.
26260
+
26261
+ InsightsStrictTrustHideNotifyDto:
26262
+ type: object
26263
+ required: [pipeline, trustStatus, verificationMethod]
26264
+ additionalProperties: false
26265
+ description: >
26266
+ Payload when the SPA hides an Insights card body under strict mode for a
26267
+ non-remediable unverified dataTrust gap.
26268
+ properties:
26269
+ pipeline:
26270
+ type: string
26271
+ minLength: 1
26272
+ description: >
26273
+ Ingest-coverage pipeline id or kind (e.g. `productivity_github`, `ai_usage`,
26274
+ `monitoring`, `hris`).
26275
+ trustStatus:
26276
+ $ref: "#/components/schemas/DataTrustStatus"
26277
+ verificationMethod:
26278
+ $ref: "#/components/schemas/DataTrustVerificationMethod"
26279
+
26280
+ InsightsStrictTrustHideNotifyResultDto:
26281
+ type: object
26282
+ required: [emitted]
26283
+ additionalProperties: false
26284
+ properties:
26285
+ emitted:
26286
+ type: boolean
26287
+ description: >
26288
+ true when a new `@event:ingest.insights.strict_trust_hide` warn line was written
26289
+ for this workspace+pipeline transition.
26290
+
26150
26291
  IngestCoveragePipelineDto:
26151
26292
  type: object
26152
26293
  required: [id, kind, status, targetWindowDays, isStale, dataTrust]
@@ -29616,6 +29757,54 @@ components:
29616
29757
  type: string
29617
29758
  description: Dashboard metrics bucket end for the org snapshot.
29618
29759
 
29760
+ InsightsTestPyramidSuiteLayerOutcomeDto:
29761
+ type: object
29762
+ required: [passRatePercent, failRatePercent, runsTotal, sampleBucketEnd]
29763
+ properties:
29764
+ passRatePercent:
29765
+ type: number
29766
+ minimum: 0
29767
+ maximum: 100
29768
+ failRatePercent:
29769
+ type: number
29770
+ minimum: 0
29771
+ maximum: 100
29772
+ runsTotal:
29773
+ type: integer
29774
+ minimum: 1
29775
+ sampleBucketEnd:
29776
+ type: string
29777
+ description: Latest mapped check-run `occurred_at` in the sample.
29778
+ flakePercent:
29779
+ type: number
29780
+ minimum: 0
29781
+ maximum: 100
29782
+ description: >
29783
+ Included only when `runsTotal` is at least 5. Failure then success on
29784
+ the same `head_sha` + check name counts as a flake observation.
29785
+
29786
+ InsightsTestPyramidSuiteExecutionDto:
29787
+ type: object
29788
+ nullable: true
29789
+ description: >
29790
+ Suite-level pass/flake from GitHub Actions / Checks job names classified
29791
+ onto pyramid layers. Null when no mapped unit/e2e (or optional integration)
29792
+ check names exist in the org dashboard quality snapshot.
29793
+ properties:
29794
+ unit:
29795
+ allOf:
29796
+ - $ref: "#/components/schemas/InsightsTestPyramidSuiteLayerOutcomeDto"
29797
+ nullable: true
29798
+ e2e:
29799
+ allOf:
29800
+ - $ref: "#/components/schemas/InsightsTestPyramidSuiteLayerOutcomeDto"
29801
+ nullable: true
29802
+ integration:
29803
+ allOf:
29804
+ - $ref: "#/components/schemas/InsightsTestPyramidSuiteLayerOutcomeDto"
29805
+ nullable: true
29806
+ description: Optional bonus layer; not required for #234 acceptance.
29807
+
29619
29808
  InsightsTestPyramidSummaryDto:
29620
29809
  type: object
29621
29810
  required:
@@ -29636,6 +29825,7 @@ components:
29636
29825
  - e2eCrossRepoCandidateCount
29637
29826
  - reposWithHotspots
29638
29827
  - ciQuality
29828
+ - suiteExecution
29639
29829
  properties:
29640
29830
  workspaceId: { type: string, format: uuid }
29641
29831
  generatedAt: { type: string, format: date-time }
@@ -29687,6 +29877,8 @@ components:
29687
29877
  description: Repos whose latest Code Insights snapshot has `hotspotCount` > 0.
29688
29878
  ciQuality:
29689
29879
  $ref: "#/components/schemas/InsightsTestPyramidCiQualityDto"
29880
+ suiteExecution:
29881
+ $ref: "#/components/schemas/InsightsTestPyramidSuiteExecutionDto"
29690
29882
 
29691
29883
  InsightsTestPyramidRepoItemDto:
29692
29884
  type: object
@@ -29711,6 +29903,7 @@ components:
29711
29903
  - layerApplicable
29712
29904
  - e2eCrossRepoCandidate
29713
29905
  - hotspotCount
29906
+ - suiteExecution
29714
29907
  properties:
29715
29908
  repoId: { type: string, format: uuid }
29716
29909
  repoName: { type: string }
@@ -29772,6 +29965,8 @@ components:
29772
29965
  description: >
29773
29966
  Row count in `tai_workspace_repo_code_hotspots` for the repo's latest
29774
29967
  Code Insights metrics snapshot. Null when the repo has no metrics snapshot.
29968
+ suiteExecution:
29969
+ $ref: "#/components/schemas/InsightsTestPyramidSuiteExecutionDto"
29775
29970
 
29776
29971
  InsightsTestPyramidRepoListDto:
29777
29972
  type: object