@thinkai/tai-api-contract 2.193.0 → 2.195.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.193.0
4
+ version: 2.195.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}/...`.
@@ -34,8 +34,6 @@ tags:
34
34
  description: NDA flows (§4, §14 storagePath)
35
35
  - name: RepositoryReadiness
36
36
  description: Repository readiness (§5)
37
- - name: SquadProjects
38
- description: Squad and projects (§6)
39
37
  - name: Notifications
40
38
  description: Notifications (§7)
41
39
  - name: AIStrategy
@@ -1759,6 +1757,59 @@ paths:
1759
1757
  schema:
1760
1758
  $ref: "#/components/schemas/PlatformBannerViewDto"
1761
1759
 
1760
+ /admin/jobs-session:
1761
+ post:
1762
+ tags: [PlatformAdmin]
1763
+ summary: Mint HttpOnly cookie for /admin/jobs dashboard access
1764
+ operationId: adminCreateJobsSession
1765
+ description: >
1766
+ Platform admins only. Copies the caller's Bearer JWT into an HttpOnly
1767
+ `tai_admin_jobs` cookie (`Path=/admin/`, `SameSite=Lax`, `Secure` when HTTPS/prod,
1768
+ `Max-Age` 1 hour) so browser navigations and admin-SPA iframes can authenticate to
1769
+ `/admin/jobs*` without an `Authorization` header on every request.
1770
+
1771
+ Requires a Bearer JWT from an email on `PLATFORM_ADMIN_EMAILS`. The cookie is only
1772
+ accepted as a Bearer substitute on `/admin/jobs*` paths by the API auth preHandler.
1773
+ The mounted `@pg-boss/dashboard` HTML surface is not part of this contract.
1774
+ responses:
1775
+ "204":
1776
+ description: "Session cookie set (Set-Cookie with tai_admin_jobs)."
1777
+ headers:
1778
+ Set-Cookie:
1779
+ schema:
1780
+ type: string
1781
+ description: >
1782
+ HttpOnly jobs session cookie with the caller's JWT value,
1783
+ Path=/admin/, SameSite=Lax, Max-Age=3600, Secure when applicable.
1784
+ "401":
1785
+ description: Missing or non-Bearer Authorization (no JWT to put in the cookie).
1786
+ content:
1787
+ application/json:
1788
+ schema:
1789
+ $ref: "#/components/schemas/ErrorMessageDto"
1790
+ example:
1791
+ error: Unauthorized
1792
+ code: unauthorized
1793
+ "403":
1794
+ description: Caller is not a platform admin.
1795
+ content:
1796
+ application/json:
1797
+ schema:
1798
+ $ref: "#/components/schemas/ErrorMessageDto"
1799
+ example:
1800
+ error: Forbidden
1801
+ code: forbidden
1802
+ "503":
1803
+ description: >
1804
+ Jobs dashboard unavailable (`JOBS_PG_BOSS_ENABLED=false` or readiness DB URL missing).
1805
+ content:
1806
+ application/json:
1807
+ schema:
1808
+ $ref: "#/components/schemas/ErrorMessageDto"
1809
+ example:
1810
+ error: Jobs dashboard unavailable
1811
+ code: jobs_dashboard_unavailable
1812
+
1762
1813
  /admin/platform/banner:
1763
1814
  get:
1764
1815
  tags: [PlatformAdmin]
@@ -10195,104 +10246,6 @@ paths:
10195
10246
  "403":
10196
10247
  $ref: "#/components/responses/Forbidden"
10197
10248
 
10198
- /workspaces/{workspaceId}/squad:
10199
- get:
10200
- tags: [SquadProjects]
10201
- summary: Get squad configuration
10202
- operationId: getSquad
10203
- parameters:
10204
- - $ref: "#/components/parameters/WorkspaceId"
10205
- responses:
10206
- "200":
10207
- description: Squad
10208
- content:
10209
- application/json:
10210
- schema:
10211
- $ref: "#/components/schemas/SquadDto"
10212
- "401":
10213
- $ref: "#/components/responses/Unauthorized"
10214
- put:
10215
- tags: [SquadProjects]
10216
- summary: Upsert squad
10217
- operationId: putSquad
10218
- parameters:
10219
- - $ref: "#/components/parameters/WorkspaceId"
10220
- requestBody:
10221
- required: true
10222
- content:
10223
- application/json:
10224
- schema:
10225
- $ref: "#/components/schemas/SquadDto"
10226
- responses:
10227
- "204":
10228
- description: Saved
10229
- "401":
10230
- $ref: "#/components/responses/Unauthorized"
10231
-
10232
- /workspaces/{workspaceId}/projects:
10233
- get:
10234
- tags: [SquadProjects]
10235
- summary: List projects
10236
- operationId: listProjects
10237
- parameters:
10238
- - $ref: "#/components/parameters/WorkspaceId"
10239
- responses:
10240
- "200":
10241
- description: Projects
10242
- content:
10243
- application/json:
10244
- schema:
10245
- type: array
10246
- items:
10247
- $ref: "#/components/schemas/ProjectDto"
10248
- "401":
10249
- $ref: "#/components/responses/Unauthorized"
10250
- post:
10251
- tags: [SquadProjects]
10252
- summary: Create project
10253
- operationId: createProject
10254
- parameters:
10255
- - $ref: "#/components/parameters/WorkspaceId"
10256
- requestBody:
10257
- required: true
10258
- content:
10259
- application/json:
10260
- schema:
10261
- $ref: "#/components/schemas/ProjectDto"
10262
- responses:
10263
- "200":
10264
- description: Created project
10265
- content:
10266
- application/json:
10267
- schema:
10268
- $ref: "#/components/schemas/ProjectDto"
10269
- "401":
10270
- $ref: "#/components/responses/Unauthorized"
10271
-
10272
- /workspaces/{workspaceId}/projects/{projectId}:
10273
- patch:
10274
- tags: [SquadProjects]
10275
- summary: Update project
10276
- operationId: patchProject
10277
- parameters:
10278
- - $ref: "#/components/parameters/WorkspaceId"
10279
- - $ref: "#/components/parameters/ProjectId"
10280
- requestBody:
10281
- required: true
10282
- content:
10283
- application/json:
10284
- schema:
10285
- $ref: "#/components/schemas/ProjectPatchDto"
10286
- responses:
10287
- "200":
10288
- description: Updated project
10289
- content:
10290
- application/json:
10291
- schema:
10292
- $ref: "#/components/schemas/ProjectDto"
10293
- "401":
10294
- $ref: "#/components/responses/Unauthorized"
10295
-
10296
10249
  /workspaces/{workspaceId}/code-chat/indexes:
10297
10250
  get:
10298
10251
  tags: [CodeChat]
@@ -14347,12 +14300,6 @@ components:
14347
14300
  maxLength: 512
14348
14301
  pattern: "^[^/]+/[^/]+$"
14349
14302
  example: thinkai-llc/thinkai-platform-backend
14350
- ProjectId:
14351
- name: projectId
14352
- in: path
14353
- required: true
14354
- schema:
14355
- type: string
14356
14303
  NotificationId:
14357
14304
  name: id
14358
14305
  in: path
@@ -23436,141 +23383,6 @@ components:
23436
23383
  branchName:
23437
23384
  type: string
23438
23385
 
23439
- PhaseRoleDto:
23440
- type: object
23441
- required: [phase, assignment]
23442
- properties:
23443
- phase:
23444
- type: string
23445
- assignment:
23446
- type: string
23447
- enum: [orchestrate, review, both, none]
23448
-
23449
- SquadMemberDto:
23450
- type: object
23451
- required: [id, role, roleLabel, description, count, phases]
23452
- properties:
23453
- id:
23454
- type: string
23455
- role:
23456
- type: string
23457
- roleLabel:
23458
- type: string
23459
- name:
23460
- type: string
23461
- description:
23462
- type: string
23463
- count:
23464
- type: integer
23465
- phases:
23466
- type: array
23467
- items:
23468
- $ref: "#/components/schemas/PhaseRoleDto"
23469
- custom:
23470
- type: boolean
23471
-
23472
- CustomWorkStreamTaskDto:
23473
- type: object
23474
- required: [id, name, summary]
23475
- properties:
23476
- id:
23477
- type: string
23478
- name:
23479
- type: string
23480
- summary:
23481
- type: string
23482
-
23483
- PhaseWorkStreamConfigDto:
23484
- type: object
23485
- properties:
23486
- deselectedCatalogIds:
23487
- type: array
23488
- items:
23489
- type: string
23490
- customTasks:
23491
- type: array
23492
- items:
23493
- $ref: "#/components/schemas/CustomWorkStreamTaskDto"
23494
-
23495
- SquadDto:
23496
- type: object
23497
- required: [members, hrConnected]
23498
- properties:
23499
- members:
23500
- type: array
23501
- items:
23502
- $ref: "#/components/schemas/SquadMemberDto"
23503
- hrConnected:
23504
- type: boolean
23505
- selectedPhases:
23506
- type: array
23507
- items:
23508
- type: string
23509
- phaseWorkStreams:
23510
- type: object
23511
- additionalProperties:
23512
- $ref: "#/components/schemas/PhaseWorkStreamConfigDto"
23513
-
23514
- WorkflowDto:
23515
- type: object
23516
- required: [id, name, kinds, typeDescription, roles]
23517
- properties:
23518
- id:
23519
- type: string
23520
- name:
23521
- type: string
23522
- kinds:
23523
- type: array
23524
- items:
23525
- type: string
23526
- enum: [greenfield, brownfield]
23527
- typeDescription:
23528
- type: string
23529
- roles:
23530
- type: array
23531
- items:
23532
- type: string
23533
-
23534
- ProjectDto:
23535
- type: object
23536
- required: [id, name, description, startDate, workflows, createdAt]
23537
- properties:
23538
- id:
23539
- type: string
23540
- name:
23541
- type: string
23542
- description:
23543
- type: string
23544
- startDate:
23545
- type: string
23546
- workflows:
23547
- type: array
23548
- items:
23549
- $ref: "#/components/schemas/WorkflowDto"
23550
- createdAt:
23551
- type: string
23552
- format: date-time
23553
-
23554
- ProjectPatchDto:
23555
- type: object
23556
- description: Partial update; all properties optional
23557
- properties:
23558
- id:
23559
- type: string
23560
- name:
23561
- type: string
23562
- description:
23563
- type: string
23564
- startDate:
23565
- type: string
23566
- workflows:
23567
- type: array
23568
- items:
23569
- $ref: "#/components/schemas/WorkflowDto"
23570
- createdAt:
23571
- type: string
23572
- format: date-time
23573
-
23574
23386
  PlatformBannerDto:
23575
23387
  type: object
23576
23388
  required: [id, kind, title, message, dismissible]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.193.0",
3
+ "version": "2.195.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",