@thinkai/tai-api-contract 2.163.0 → 2.165.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.163.0
4
+ version: 2.165.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}/...`.
@@ -1039,7 +1039,6 @@ paths:
1039
1039
  email: new.member@example.com
1040
1040
  role: editor
1041
1041
  status: pending
1042
- invitedByName: Dana Admin
1043
1042
  expiresAt: "2026-08-01T12:00:00.000Z"
1044
1043
  createdAt: "2026-07-25T12:00:00.000Z"
1045
1044
  alreadyMember:
@@ -11918,7 +11917,10 @@ components:
11918
11917
 
11919
11918
  WorkspaceInvitationDto:
11920
11919
  type: object
11921
- description: Workspace invitation as seen by an authenticated admin or invitee.
11920
+ description: >
11921
+ Workspace invitation as seen by an authenticated admin or invitee.
11922
+ Inviter identity is omitted from this DTO (mailer uses store rows; public
11923
+ preview exposes `invitedByName` on `WorkspaceInvitationPreviewDto` only).
11922
11924
  required: [id, workspaceId, workspaceName, email, role, status, expiresAt, createdAt]
11923
11925
  properties:
11924
11926
  id:
@@ -11937,12 +11939,6 @@ components:
11937
11939
  enum: [admin, editor, viewer]
11938
11940
  status:
11939
11941
  $ref: "#/components/schemas/WorkspaceInvitationStatusDto"
11940
- invitedByName:
11941
- type: string
11942
- nullable: true
11943
- invitedByEmail:
11944
- type: string
11945
- nullable: true
11946
11942
  expiresAt:
11947
11943
  type: string
11948
11944
  format: date-time
@@ -15725,18 +15721,15 @@ components:
15725
15721
 
15726
15722
  MeProfileDto:
15727
15723
  type: object
15728
- required: [id, email, name, roles]
15724
+ required: [id, email, name]
15729
15725
  properties:
15730
15726
  id:
15731
15727
  type: string
15728
+ description: Authenticated subject id (JWT `sub`).
15732
15729
  email:
15733
15730
  type: string
15734
15731
  name:
15735
15732
  type: string
15736
- roles:
15737
- type: array
15738
- items:
15739
- type: string
15740
15733
  defaultWorkspaceId:
15741
15734
  type: string
15742
15735
  nullable: true
@@ -16539,6 +16532,8 @@ components:
16539
16532
  - automatedFixesEnabled
16540
16533
  - writeAppInstalled
16541
16534
  - canEnableAutomatedFixes
16535
+ - suspended
16536
+ - writeSuspended
16542
16537
  properties:
16543
16538
  installationId:
16544
16539
  type: string
@@ -16658,6 +16653,24 @@ components:
16658
16653
  description: >
16659
16654
  True when the Automations app is configured and automated fixes are not yet
16660
16655
  enabled for this installation (UI may show Enable automated fixes).
16656
+ suspended:
16657
+ type: boolean
16658
+ description: >
16659
+ True when this Insights (read) GitHub App installation is suspended on GitHub.
16660
+ The workspace row is kept; token mint and core permissions are fail-closed.
16661
+ suspendedMessage:
16662
+ type: string
16663
+ nullable: true
16664
+ description: Human-readable summary when this Insights installation is suspended.
16665
+ writeSuspended:
16666
+ type: boolean
16667
+ description: >
16668
+ True when the linked Automations (write) GitHub App installation is suspended.
16669
+ Does not disconnect source control; automated fixes stay disabled.
16670
+ writeSuspendedMessage:
16671
+ type: string
16672
+ nullable: true
16673
+ description: Human-readable summary when the Automations installation is suspended.
16661
16674
 
16662
16675
  GithubPendingApprovalDto:
16663
16676
  type: object
@@ -16951,6 +16964,8 @@ components:
16951
16964
  - financialPermissionsOk
16952
16965
  - writePermissionsOk
16953
16966
  - writePermissionsUpgradeRequired
16967
+ - suspended
16968
+ - writeSuspended
16954
16969
  properties:
16955
16970
  installed:
16956
16971
  type: boolean
@@ -16999,6 +17014,22 @@ components:
16999
17014
  writePermissionsUpgradeRequired:
17000
17015
  type: boolean
17001
17016
  description: True when any connected installation lacks write permissions for automated fixes.
17017
+ suspended:
17018
+ type: boolean
17019
+ description: >
17020
+ True when any Insights (read) installation on this workspace is suspended.
17021
+ Source-control unlock still succeeds when at least one installation remains active.
17022
+ suspendedMessage:
17023
+ type: string
17024
+ nullable: true
17025
+ description: Human-readable summary when one or more Insights installations are suspended.
17026
+ writeSuspended:
17027
+ type: boolean
17028
+ description: True when any linked Automations (write) installation is suspended.
17029
+ writeSuspendedMessage:
17030
+ type: string
17031
+ nullable: true
17032
+ description: Human-readable summary when Automations write access is suspended.
17002
17033
  missingWritePermissions:
17003
17034
  type: array
17004
17035
  items:
@@ -20597,6 +20628,8 @@ components:
20597
20628
  - integration.github.updated
20598
20629
  - integration.github.removed
20599
20630
  - integration.github.permissions_changed
20631
+ - integration.github.suspended
20632
+ - integration.github.unsuspended
20600
20633
  - integration.github.repo_added
20601
20634
  - integration.github.repo_removed
20602
20635
  - fix.requested
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.163.0",
3
+ "version": "2.165.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -4748,7 +4748,7 @@ export interface components {
4748
4748
  * @enum {string}
4749
4749
  */
4750
4750
  WorkspaceInvitationStatusDto: "pending" | "accepted" | "expired" | "revoked" | "rejected";
4751
- /** @description Workspace invitation as seen by an authenticated admin or invitee. */
4751
+ /** @description Workspace invitation as seen by an authenticated admin or invitee. Inviter identity is omitted from this DTO (mailer uses store rows; public preview exposes `invitedByName` on `WorkspaceInvitationPreviewDto` only). */
4752
4752
  WorkspaceInvitationDto: {
4753
4753
  /** Format: uuid */
4754
4754
  id: string;
@@ -4760,8 +4760,6 @@ export interface components {
4760
4760
  /** @enum {string} */
4761
4761
  role: "admin" | "editor" | "viewer";
4762
4762
  status: components["schemas"]["WorkspaceInvitationStatusDto"];
4763
- invitedByName?: string | null;
4764
- invitedByEmail?: string | null;
4765
4763
  /** Format: date-time */
4766
4764
  expiresAt: string;
4767
4765
  /** Format: date-time */
@@ -6552,10 +6550,10 @@ export interface components {
6552
6550
  heatmap: components["schemas"]["AiToolMemberHeatmapDayDto"][];
6553
6551
  };
6554
6552
  MeProfileDto: {
6553
+ /** @description Authenticated subject id (JWT `sub`). */
6555
6554
  id: string;
6556
6555
  email: string;
6557
6556
  name: string;
6558
- roles: string[];
6559
6557
  defaultWorkspaceId?: string | null;
6560
6558
  /** @description True when the caller's email is on the `PLATFORM_ADMIN_EMAILS` allowlist. Lets the frontend gate platform-admin surfaces (e.g. the privacy-request queue) without duplicating the allowlist client-side. */
6561
6559
  isPlatformAdmin?: boolean;
@@ -6994,6 +6992,14 @@ export interface components {
6994
6992
  writeManageUrl?: string | null;
6995
6993
  /** @description True when the Automations app is configured and automated fixes are not yet enabled for this installation (UI may show Enable automated fixes). */
6996
6994
  canEnableAutomatedFixes: boolean;
6995
+ /** @description True when this Insights (read) GitHub App installation is suspended on GitHub. The workspace row is kept; token mint and core permissions are fail-closed. */
6996
+ suspended: boolean;
6997
+ /** @description Human-readable summary when this Insights installation is suspended. */
6998
+ suspendedMessage?: string | null;
6999
+ /** @description True when the linked Automations (write) GitHub App installation is suspended. Does not disconnect source control; automated fixes stay disabled. */
7000
+ writeSuspended: boolean;
7001
+ /** @description Human-readable summary when the Automations installation is suspended. */
7002
+ writeSuspendedMessage?: string | null;
6997
7003
  };
6998
7004
  GithubPendingApprovalDto: {
6999
7005
  /**
@@ -7171,6 +7177,14 @@ export interface components {
7171
7177
  writePermissionsOk: boolean;
7172
7178
  /** @description True when any connected installation lacks write permissions for automated fixes. */
7173
7179
  writePermissionsUpgradeRequired: boolean;
7180
+ /** @description True when any Insights (read) installation on this workspace is suspended. Source-control unlock still succeeds when at least one installation remains active. */
7181
+ suspended: boolean;
7182
+ /** @description Human-readable summary when one or more Insights installations are suspended. */
7183
+ suspendedMessage?: string | null;
7184
+ /** @description True when any linked Automations (write) installation is suspended. */
7185
+ writeSuspended: boolean;
7186
+ /** @description Human-readable summary when Automations write access is suspended. */
7187
+ writeSuspendedMessage?: string | null;
7174
7188
  /** @description Aggregated write permissions missing on installations that lack write access. */
7175
7189
  missingWritePermissions?: components["schemas"]["GithubMissingPermissionDto"][];
7176
7190
  /** @description Human-readable summary when write permissions are missing. */
@@ -8749,7 +8763,7 @@ export interface components {
8749
8763
  * @description Type of workspace lifecycle event.
8750
8764
  * @enum {string}
8751
8765
  */
8752
- ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported" | "workspace.aggregate_use.changed";
8766
+ ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.suspended" | "integration.github.unsuspended" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported" | "workspace.aggregate_use.changed";
8753
8767
  UnsetAssessmentDecisionDto: {
8754
8768
  /** @enum {string} */
8755
8769
  status: "unset";