@thinkai/tai-api-contract 2.55.0 → 2.56.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.55.0
4
+ version: 2.56.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}/...`.
@@ -4666,6 +4666,53 @@ paths:
4666
4666
  schema:
4667
4667
  $ref: "#/components/schemas/ErrorMessageDto"
4668
4668
 
4669
+ /workspaces/{workspaceId}/agentic-foundation/repo-scope:
4670
+ put:
4671
+ tags: [AgenticFoundation]
4672
+ summary: Update Agentic Foundation repository scope
4673
+ description: >
4674
+ Bulk include/exclude materialized repos from Agentic Foundation by toggling the existing
4675
+ `user_removed` archive state. Excluded repos remain integrated for productivity metrics.
4676
+ Only workspace admins may call this endpoint. Partial failures are reported per repo.
4677
+ operationId: putAgenticFoundationRepoScope
4678
+ parameters:
4679
+ - $ref: "#/components/parameters/WorkspaceId"
4680
+ requestBody:
4681
+ required: true
4682
+ content:
4683
+ application/json:
4684
+ schema:
4685
+ $ref: "#/components/schemas/PutAgenticFoundationRepoScopeBodyDto"
4686
+ example:
4687
+ changes:
4688
+ - repoId: 00000000-0000-0000-0000-000000000101
4689
+ included: false
4690
+ - repoId: 00000000-0000-0000-0000-000000000102
4691
+ included: true
4692
+ responses:
4693
+ "200":
4694
+ description: Scope changes applied (possibly with per-repo failures)
4695
+ content:
4696
+ application/json:
4697
+ schema:
4698
+ $ref: "#/components/schemas/PutAgenticFoundationRepoScopeResponseDto"
4699
+ "400":
4700
+ description: Invalid request body
4701
+ content:
4702
+ application/json:
4703
+ schema:
4704
+ $ref: "#/components/schemas/ErrorMessageDto"
4705
+ "401":
4706
+ $ref: "#/components/responses/Unauthorized"
4707
+ "403":
4708
+ $ref: "#/components/responses/Forbidden"
4709
+ "404":
4710
+ description: Workspace does not exist
4711
+ content:
4712
+ application/json:
4713
+ schema:
4714
+ $ref: "#/components/schemas/ErrorMessageDto"
4715
+
4669
4716
  /workspaces/{workspaceId}/agentic-foundation/dashboard:
4670
4717
  get:
4671
4718
  tags: [AgenticFoundation]
@@ -11129,8 +11176,8 @@ components:
11129
11176
  archivedReason:
11130
11177
  type: string
11131
11178
  nullable: true
11132
- enum: [github_removed, installation_disconnected, installation_replaced, superseded]
11133
- description: Why the repo was archived. Only present when `archivedAt` is set.
11179
+ enum: [github_removed, installation_disconnected, installation_replaced, superseded, user_removed]
11180
+ description: Why the repo was archived. `user_removed` means excluded from Agentic Foundation scope only. Only present when `archivedAt` is set.
11134
11181
  eligibilityStatus:
11135
11182
  type: string
11136
11183
  enum: [eligible, ineligible]
@@ -11273,7 +11320,7 @@ components:
11273
11320
  archivedReason:
11274
11321
  type: string
11275
11322
  nullable: true
11276
- enum: [github_removed, installation_disconnected, installation_replaced, superseded]
11323
+ enum: [github_removed, installation_disconnected, installation_replaced, superseded, user_removed]
11277
11324
  eligibilityStatus:
11278
11325
  type: string
11279
11326
  enum: [eligible, ineligible]
@@ -12453,6 +12500,77 @@ components:
12453
12500
  nullable: true
12454
12501
  description: ID of the freshly enqueued readiness scan run (only present on re-add).
12455
12502
 
12503
+ PutAgenticFoundationRepoScopeChangeDto:
12504
+ type: object
12505
+ required: [repoId, included]
12506
+ properties:
12507
+ repoId:
12508
+ type: string
12509
+ format: uuid
12510
+ included:
12511
+ type: boolean
12512
+ description: >
12513
+ `true` to include in Agentic Foundation scope (unarchive user_removed).
12514
+ `false` to exclude (soft-archive with archived_reason user_removed).
12515
+
12516
+ PutAgenticFoundationRepoScopeBodyDto:
12517
+ type: object
12518
+ required: [changes]
12519
+ properties:
12520
+ changes:
12521
+ type: array
12522
+ minItems: 1
12523
+ maxItems: 200
12524
+ items:
12525
+ $ref: "#/components/schemas/PutAgenticFoundationRepoScopeChangeDto"
12526
+
12527
+ PutAgenticFoundationRepoScopeAppliedDto:
12528
+ type: object
12529
+ required: [repoId, status]
12530
+ properties:
12531
+ repoId:
12532
+ type: string
12533
+ format: uuid
12534
+ status:
12535
+ type: string
12536
+ enum: [Active, Inactive]
12537
+ runId:
12538
+ type: string
12539
+ format: uuid
12540
+ nullable: true
12541
+
12542
+ PutAgenticFoundationRepoScopeFailureDto:
12543
+ type: object
12544
+ required: [repoId, code, message]
12545
+ properties:
12546
+ repoId:
12547
+ type: string
12548
+ format: uuid
12549
+ code:
12550
+ type: string
12551
+ enum:
12552
+ - not_found
12553
+ - scan_in_progress
12554
+ - not_archived
12555
+ - already_active
12556
+ - system_archived
12557
+ - forbidden
12558
+ message:
12559
+ type: string
12560
+
12561
+ PutAgenticFoundationRepoScopeResponseDto:
12562
+ type: object
12563
+ required: [applied, failures]
12564
+ properties:
12565
+ applied:
12566
+ type: array
12567
+ items:
12568
+ $ref: "#/components/schemas/PutAgenticFoundationRepoScopeAppliedDto"
12569
+ failures:
12570
+ type: array
12571
+ items:
12572
+ $ref: "#/components/schemas/PutAgenticFoundationRepoScopeFailureDto"
12573
+
12456
12574
  ActivityLogEventTypeDto:
12457
12575
  type: string
12458
12576
  description: Type of workspace lifecycle event.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.55.0",
3
+ "version": "2.56.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1679,6 +1679,26 @@ export interface paths {
1679
1679
  patch?: never;
1680
1680
  trace?: never;
1681
1681
  };
1682
+ "/workspaces/{workspaceId}/agentic-foundation/repo-scope": {
1683
+ parameters: {
1684
+ query?: never;
1685
+ header?: never;
1686
+ path?: never;
1687
+ cookie?: never;
1688
+ };
1689
+ get?: never;
1690
+ /**
1691
+ * Update Agentic Foundation repository scope
1692
+ * @description Bulk include/exclude materialized repos from Agentic Foundation by toggling the existing `user_removed` archive state. Excluded repos remain integrated for productivity metrics. Only workspace admins may call this endpoint. Partial failures are reported per repo.
1693
+ */
1694
+ put: operations["putAgenticFoundationRepoScope"];
1695
+ post?: never;
1696
+ delete?: never;
1697
+ options?: never;
1698
+ head?: never;
1699
+ patch?: never;
1700
+ trace?: never;
1701
+ };
1682
1702
  "/workspaces/{workspaceId}/agentic-foundation/dashboard": {
1683
1703
  parameters: {
1684
1704
  query?: never;
@@ -4670,10 +4690,10 @@ export interface components {
4670
4690
  */
4671
4691
  archivedAt?: string | null;
4672
4692
  /**
4673
- * @description Why the repo was archived. Only present when `archivedAt` is set.
4693
+ * @description Why the repo was archived. `user_removed` means excluded from Agentic Foundation scope only. Only present when `archivedAt` is set.
4674
4694
  * @enum {string|null}
4675
4695
  */
4676
- archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
4696
+ archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
4677
4697
  /**
4678
4698
  * @description Whether the repo can be analyzed (#44/#729). Language support no longer makes a repo `ineligible` — a missing v1-supported stack is surfaced via `warnings` and the repo stays analyzable. It becomes `ineligible` when the most recent scan hit a hard size/file-count limit (e.g. code-size or file-count exceeded): the repo is then restricted here too so this surface matches the GitHub connect list's size gate after the scan. Null until the first sync/scan computes it.
4679
4699
  * @enum {string|null}
@@ -4728,7 +4748,7 @@ export interface components {
4728
4748
  /** Format: date-time */
4729
4749
  archivedAt?: string | null;
4730
4750
  /** @enum {string|null} */
4731
- archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
4751
+ archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
4732
4752
  /**
4733
4753
  * @description See RepoReadinessScoreDto.eligibilityStatus. Language support is advisory (#729) and surfaced via `warnings`.
4734
4754
  * @enum {string|null}
@@ -5254,6 +5274,34 @@ export interface components {
5254
5274
  */
5255
5275
  runId?: string | null;
5256
5276
  };
5277
+ PutAgenticFoundationRepoScopeChangeDto: {
5278
+ /** Format: uuid */
5279
+ repoId: string;
5280
+ /** @description `true` to include in Agentic Foundation scope (unarchive user_removed). `false` to exclude (soft-archive with archived_reason user_removed). */
5281
+ included: boolean;
5282
+ };
5283
+ PutAgenticFoundationRepoScopeBodyDto: {
5284
+ changes: components["schemas"]["PutAgenticFoundationRepoScopeChangeDto"][];
5285
+ };
5286
+ PutAgenticFoundationRepoScopeAppliedDto: {
5287
+ /** Format: uuid */
5288
+ repoId: string;
5289
+ /** @enum {string} */
5290
+ status: "Active" | "Inactive";
5291
+ /** Format: uuid */
5292
+ runId?: string | null;
5293
+ };
5294
+ PutAgenticFoundationRepoScopeFailureDto: {
5295
+ /** Format: uuid */
5296
+ repoId: string;
5297
+ /** @enum {string} */
5298
+ code: "not_found" | "scan_in_progress" | "not_archived" | "already_active" | "system_archived" | "forbidden";
5299
+ message: string;
5300
+ };
5301
+ PutAgenticFoundationRepoScopeResponseDto: {
5302
+ applied: components["schemas"]["PutAgenticFoundationRepoScopeAppliedDto"][];
5303
+ failures: components["schemas"]["PutAgenticFoundationRepoScopeFailureDto"][];
5304
+ };
5257
5305
  /**
5258
5306
  * @description Type of workspace lifecycle event.
5259
5307
  * @enum {string}
@@ -5817,6 +5865,11 @@ export type YourAiJourneyAiSpendWeekDto = components['schemas']['YourAiJourneyAi
5817
5865
  export type YourAiJourneyAiSpendDto = components['schemas']['YourAiJourneyAiSpendDto'];
5818
5866
  export type PatchRepoArchiveBodyDto = components['schemas']['PatchRepoArchiveBodyDto'];
5819
5867
  export type PatchRepoArchiveResponseDto = components['schemas']['PatchRepoArchiveResponseDto'];
5868
+ export type PutAgenticFoundationRepoScopeChangeDto = components['schemas']['PutAgenticFoundationRepoScopeChangeDto'];
5869
+ export type PutAgenticFoundationRepoScopeBodyDto = components['schemas']['PutAgenticFoundationRepoScopeBodyDto'];
5870
+ export type PutAgenticFoundationRepoScopeAppliedDto = components['schemas']['PutAgenticFoundationRepoScopeAppliedDto'];
5871
+ export type PutAgenticFoundationRepoScopeFailureDto = components['schemas']['PutAgenticFoundationRepoScopeFailureDto'];
5872
+ export type PutAgenticFoundationRepoScopeResponseDto = components['schemas']['PutAgenticFoundationRepoScopeResponseDto'];
5820
5873
  export type ActivityLogEventTypeDto = components['schemas']['ActivityLogEventTypeDto'];
5821
5874
  export type ActivityLogActorDto = components['schemas']['ActivityLogActorDto'];
5822
5875
  export type ActivityLogEntryDto = components['schemas']['ActivityLogEntryDto'];
@@ -10317,6 +10370,66 @@ export interface operations {
10317
10370
  };
10318
10371
  };
10319
10372
  };
10373
+ putAgenticFoundationRepoScope: {
10374
+ parameters: {
10375
+ query?: never;
10376
+ header?: never;
10377
+ path: {
10378
+ workspaceId: components["parameters"]["WorkspaceId"];
10379
+ };
10380
+ cookie?: never;
10381
+ };
10382
+ requestBody: {
10383
+ content: {
10384
+ /**
10385
+ * @example {
10386
+ * "changes": [
10387
+ * {
10388
+ * "repoId": "00000000-0000-0000-0000-000000000101",
10389
+ * "included": false
10390
+ * },
10391
+ * {
10392
+ * "repoId": "00000000-0000-0000-0000-000000000102",
10393
+ * "included": true
10394
+ * }
10395
+ * ]
10396
+ * }
10397
+ */
10398
+ "application/json": components["schemas"]["PutAgenticFoundationRepoScopeBodyDto"];
10399
+ };
10400
+ };
10401
+ responses: {
10402
+ /** @description Scope changes applied (possibly with per-repo failures) */
10403
+ 200: {
10404
+ headers: {
10405
+ [name: string]: unknown;
10406
+ };
10407
+ content: {
10408
+ "application/json": components["schemas"]["PutAgenticFoundationRepoScopeResponseDto"];
10409
+ };
10410
+ };
10411
+ /** @description Invalid request body */
10412
+ 400: {
10413
+ headers: {
10414
+ [name: string]: unknown;
10415
+ };
10416
+ content: {
10417
+ "application/json": components["schemas"]["ErrorMessageDto"];
10418
+ };
10419
+ };
10420
+ 401: components["responses"]["Unauthorized"];
10421
+ 403: components["responses"]["Forbidden"];
10422
+ /** @description Workspace does not exist */
10423
+ 404: {
10424
+ headers: {
10425
+ [name: string]: unknown;
10426
+ };
10427
+ content: {
10428
+ "application/json": components["schemas"]["ErrorMessageDto"];
10429
+ };
10430
+ };
10431
+ };
10432
+ };
10320
10433
  getAgenticFoundationDashboard: {
10321
10434
  parameters: {
10322
10435
  query?: never;