@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.
@@ -465,6 +465,27 @@ export interface paths {
465
465
  patch?: never;
466
466
  trace?: never;
467
467
  };
468
+ "/admin/jobs-session": {
469
+ parameters: {
470
+ query?: never;
471
+ header?: never;
472
+ path?: never;
473
+ cookie?: never;
474
+ };
475
+ get?: never;
476
+ put?: never;
477
+ /**
478
+ * Mint HttpOnly cookie for /admin/jobs dashboard access
479
+ * @description Platform admins only. Copies the caller's Bearer JWT into an HttpOnly `tai_admin_jobs` cookie (`Path=/admin/`, `SameSite=Lax`, `Secure` when HTTPS/prod, `Max-Age` 1 hour) so browser navigations and admin-SPA iframes can authenticate to `/admin/jobs*` without an `Authorization` header on every request.
480
+ * Requires a Bearer JWT from an email on `PLATFORM_ADMIN_EMAILS`. The cookie is only accepted as a Bearer substitute on `/admin/jobs*` paths by the API auth preHandler. The mounted `@pg-boss/dashboard` HTML surface is not part of this contract.
481
+ */
482
+ post: operations["adminCreateJobsSession"];
483
+ delete?: never;
484
+ options?: never;
485
+ head?: never;
486
+ patch?: never;
487
+ trace?: never;
488
+ };
468
489
  "/admin/platform/banner": {
469
490
  parameters: {
470
491
  query?: never;
@@ -3696,59 +3717,6 @@ export interface paths {
3696
3717
  patch?: never;
3697
3718
  trace?: never;
3698
3719
  };
3699
- "/workspaces/{workspaceId}/squad": {
3700
- parameters: {
3701
- query?: never;
3702
- header?: never;
3703
- path?: never;
3704
- cookie?: never;
3705
- };
3706
- /** Get squad configuration */
3707
- get: operations["getSquad"];
3708
- /** Upsert squad */
3709
- put: operations["putSquad"];
3710
- post?: never;
3711
- delete?: never;
3712
- options?: never;
3713
- head?: never;
3714
- patch?: never;
3715
- trace?: never;
3716
- };
3717
- "/workspaces/{workspaceId}/projects": {
3718
- parameters: {
3719
- query?: never;
3720
- header?: never;
3721
- path?: never;
3722
- cookie?: never;
3723
- };
3724
- /** List projects */
3725
- get: operations["listProjects"];
3726
- put?: never;
3727
- /** Create project */
3728
- post: operations["createProject"];
3729
- delete?: never;
3730
- options?: never;
3731
- head?: never;
3732
- patch?: never;
3733
- trace?: never;
3734
- };
3735
- "/workspaces/{workspaceId}/projects/{projectId}": {
3736
- parameters: {
3737
- query?: never;
3738
- header?: never;
3739
- path?: never;
3740
- cookie?: never;
3741
- };
3742
- get?: never;
3743
- put?: never;
3744
- post?: never;
3745
- delete?: never;
3746
- options?: never;
3747
- head?: never;
3748
- /** Update project */
3749
- patch: operations["patchProject"];
3750
- trace?: never;
3751
- };
3752
3720
  "/workspaces/{workspaceId}/code-chat/indexes": {
3753
3721
  parameters: {
3754
3722
  query?: never;
@@ -9608,64 +9576,6 @@ export interface components {
9608
9576
  prNumber: number;
9609
9577
  branchName: string;
9610
9578
  };
9611
- PhaseRoleDto: {
9612
- phase: string;
9613
- /** @enum {string} */
9614
- assignment: "orchestrate" | "review" | "both" | "none";
9615
- };
9616
- SquadMemberDto: {
9617
- id: string;
9618
- role: string;
9619
- roleLabel: string;
9620
- name?: string;
9621
- description: string;
9622
- count: number;
9623
- phases: components["schemas"]["PhaseRoleDto"][];
9624
- custom?: boolean;
9625
- };
9626
- CustomWorkStreamTaskDto: {
9627
- id: string;
9628
- name: string;
9629
- summary: string;
9630
- };
9631
- PhaseWorkStreamConfigDto: {
9632
- deselectedCatalogIds?: string[];
9633
- customTasks?: components["schemas"]["CustomWorkStreamTaskDto"][];
9634
- };
9635
- SquadDto: {
9636
- members: components["schemas"]["SquadMemberDto"][];
9637
- hrConnected: boolean;
9638
- selectedPhases?: string[];
9639
- phaseWorkStreams?: {
9640
- [key: string]: components["schemas"]["PhaseWorkStreamConfigDto"];
9641
- };
9642
- };
9643
- WorkflowDto: {
9644
- id: string;
9645
- name: string;
9646
- kinds: ("greenfield" | "brownfield")[];
9647
- typeDescription: string;
9648
- roles: string[];
9649
- };
9650
- ProjectDto: {
9651
- id: string;
9652
- name: string;
9653
- description: string;
9654
- startDate: string;
9655
- workflows: components["schemas"]["WorkflowDto"][];
9656
- /** Format: date-time */
9657
- createdAt: string;
9658
- };
9659
- /** @description Partial update; all properties optional */
9660
- ProjectPatchDto: {
9661
- id?: string;
9662
- name?: string;
9663
- description?: string;
9664
- startDate?: string;
9665
- workflows?: components["schemas"]["WorkflowDto"][];
9666
- /** Format: date-time */
9667
- createdAt?: string;
9668
- };
9669
9579
  PlatformBannerDto: {
9670
9580
  /** @description Stable identifier used for dismiss persistence in the SPA. */
9671
9581
  id: string;
@@ -13104,7 +13014,6 @@ export interface components {
13104
13014
  RepoId: string;
13105
13015
  /** @description Provider repository slug in `owner/repo` form (GitHub). Used for shareable public URLs; resolves to the same row as `repoId` UUID internally. */
13106
13016
  ProviderSlug: string;
13107
- ProjectId: string;
13108
13017
  NotificationId: string;
13109
13018
  /** @description Workspace member user id (`tai_users.id`). */
13110
13019
  WorkspaceMemberId: string;
@@ -13517,14 +13426,6 @@ export type RulesSkillsCreateRequestDto = components['schemas']['RulesSkillsCrea
13517
13426
  export type RulesSkillsCreateResponseDto = components['schemas']['RulesSkillsCreateResponseDto'];
13518
13427
  export type RulesSkillsOpenPullRequestRequestDto = components['schemas']['RulesSkillsOpenPullRequestRequestDto'];
13519
13428
  export type RulesSkillsOpenPullRequestResponseDto = components['schemas']['RulesSkillsOpenPullRequestResponseDto'];
13520
- export type PhaseRoleDto = components['schemas']['PhaseRoleDto'];
13521
- export type SquadMemberDto = components['schemas']['SquadMemberDto'];
13522
- export type CustomWorkStreamTaskDto = components['schemas']['CustomWorkStreamTaskDto'];
13523
- export type PhaseWorkStreamConfigDto = components['schemas']['PhaseWorkStreamConfigDto'];
13524
- export type SquadDto = components['schemas']['SquadDto'];
13525
- export type WorkflowDto = components['schemas']['WorkflowDto'];
13526
- export type ProjectDto = components['schemas']['ProjectDto'];
13527
- export type ProjectPatchDto = components['schemas']['ProjectPatchDto'];
13528
13429
  export type PlatformBannerDto = components['schemas']['PlatformBannerDto'];
13529
13430
  export type PlatformBannerViewDto = components['schemas']['PlatformBannerViewDto'];
13530
13431
  export type PlatformBannerUpsertDto = components['schemas']['PlatformBannerUpsertDto'];
@@ -13856,7 +13757,6 @@ export type ParameterEvalPackId = components['parameters']['EvalPackId'];
13856
13757
  export type ParameterEvalRunId = components['parameters']['EvalRunId'];
13857
13758
  export type ParameterRepoId = components['parameters']['RepoId'];
13858
13759
  export type ParameterProviderSlug = components['parameters']['ProviderSlug'];
13859
- export type ParameterProjectId = components['parameters']['ProjectId'];
13860
13760
  export type ParameterNotificationId = components['parameters']['NotificationId'];
13861
13761
  export type ParameterWorkspaceMemberId = components['parameters']['WorkspaceMemberId'];
13862
13762
  export type ParameterWorkspaceInvitationToken = components['parameters']['WorkspaceInvitationToken'];
@@ -15510,6 +15410,71 @@ export interface operations {
15510
15410
  };
15511
15411
  };
15512
15412
  };
15413
+ adminCreateJobsSession: {
15414
+ parameters: {
15415
+ query?: never;
15416
+ header?: never;
15417
+ path?: never;
15418
+ cookie?: never;
15419
+ };
15420
+ requestBody?: never;
15421
+ responses: {
15422
+ /** @description Session cookie set (Set-Cookie with tai_admin_jobs). */
15423
+ 204: {
15424
+ headers: {
15425
+ /** @description HttpOnly jobs session cookie with the caller's JWT value, Path=/admin/, SameSite=Lax, Max-Age=3600, Secure when applicable. */
15426
+ "Set-Cookie"?: string;
15427
+ [name: string]: unknown;
15428
+ };
15429
+ content?: never;
15430
+ };
15431
+ /** @description Missing or non-Bearer Authorization (no JWT to put in the cookie). */
15432
+ 401: {
15433
+ headers: {
15434
+ [name: string]: unknown;
15435
+ };
15436
+ content: {
15437
+ /**
15438
+ * @example {
15439
+ * "error": "Unauthorized",
15440
+ * "code": "unauthorized"
15441
+ * }
15442
+ */
15443
+ "application/json": components["schemas"]["ErrorMessageDto"];
15444
+ };
15445
+ };
15446
+ /** @description Caller is not a platform admin. */
15447
+ 403: {
15448
+ headers: {
15449
+ [name: string]: unknown;
15450
+ };
15451
+ content: {
15452
+ /**
15453
+ * @example {
15454
+ * "error": "Forbidden",
15455
+ * "code": "forbidden"
15456
+ * }
15457
+ */
15458
+ "application/json": components["schemas"]["ErrorMessageDto"];
15459
+ };
15460
+ };
15461
+ /** @description Jobs dashboard unavailable (`JOBS_PG_BOSS_ENABLED=false` or readiness DB URL missing). */
15462
+ 503: {
15463
+ headers: {
15464
+ [name: string]: unknown;
15465
+ };
15466
+ content: {
15467
+ /**
15468
+ * @example {
15469
+ * "error": "Jobs dashboard unavailable",
15470
+ * "code": "jobs_dashboard_unavailable"
15471
+ * }
15472
+ */
15473
+ "application/json": components["schemas"]["ErrorMessageDto"];
15474
+ };
15475
+ };
15476
+ };
15477
+ };
15513
15478
  adminGetPlatformBanner: {
15514
15479
  parameters: {
15515
15480
  query?: never;
@@ -24131,132 +24096,6 @@ export interface operations {
24131
24096
  403: components["responses"]["Forbidden"];
24132
24097
  };
24133
24098
  };
24134
- getSquad: {
24135
- parameters: {
24136
- query?: never;
24137
- header?: never;
24138
- path: {
24139
- workspaceId: components["parameters"]["WorkspaceId"];
24140
- };
24141
- cookie?: never;
24142
- };
24143
- requestBody?: never;
24144
- responses: {
24145
- /** @description Squad */
24146
- 200: {
24147
- headers: {
24148
- [name: string]: unknown;
24149
- };
24150
- content: {
24151
- "application/json": components["schemas"]["SquadDto"];
24152
- };
24153
- };
24154
- 401: components["responses"]["Unauthorized"];
24155
- };
24156
- };
24157
- putSquad: {
24158
- parameters: {
24159
- query?: never;
24160
- header?: never;
24161
- path: {
24162
- workspaceId: components["parameters"]["WorkspaceId"];
24163
- };
24164
- cookie?: never;
24165
- };
24166
- requestBody: {
24167
- content: {
24168
- "application/json": components["schemas"]["SquadDto"];
24169
- };
24170
- };
24171
- responses: {
24172
- /** @description Saved */
24173
- 204: {
24174
- headers: {
24175
- [name: string]: unknown;
24176
- };
24177
- content?: never;
24178
- };
24179
- 401: components["responses"]["Unauthorized"];
24180
- };
24181
- };
24182
- listProjects: {
24183
- parameters: {
24184
- query?: never;
24185
- header?: never;
24186
- path: {
24187
- workspaceId: components["parameters"]["WorkspaceId"];
24188
- };
24189
- cookie?: never;
24190
- };
24191
- requestBody?: never;
24192
- responses: {
24193
- /** @description Projects */
24194
- 200: {
24195
- headers: {
24196
- [name: string]: unknown;
24197
- };
24198
- content: {
24199
- "application/json": components["schemas"]["ProjectDto"][];
24200
- };
24201
- };
24202
- 401: components["responses"]["Unauthorized"];
24203
- };
24204
- };
24205
- createProject: {
24206
- parameters: {
24207
- query?: never;
24208
- header?: never;
24209
- path: {
24210
- workspaceId: components["parameters"]["WorkspaceId"];
24211
- };
24212
- cookie?: never;
24213
- };
24214
- requestBody: {
24215
- content: {
24216
- "application/json": components["schemas"]["ProjectDto"];
24217
- };
24218
- };
24219
- responses: {
24220
- /** @description Created project */
24221
- 200: {
24222
- headers: {
24223
- [name: string]: unknown;
24224
- };
24225
- content: {
24226
- "application/json": components["schemas"]["ProjectDto"];
24227
- };
24228
- };
24229
- 401: components["responses"]["Unauthorized"];
24230
- };
24231
- };
24232
- patchProject: {
24233
- parameters: {
24234
- query?: never;
24235
- header?: never;
24236
- path: {
24237
- workspaceId: components["parameters"]["WorkspaceId"];
24238
- projectId: components["parameters"]["ProjectId"];
24239
- };
24240
- cookie?: never;
24241
- };
24242
- requestBody: {
24243
- content: {
24244
- "application/json": components["schemas"]["ProjectPatchDto"];
24245
- };
24246
- };
24247
- responses: {
24248
- /** @description Updated project */
24249
- 200: {
24250
- headers: {
24251
- [name: string]: unknown;
24252
- };
24253
- content: {
24254
- "application/json": components["schemas"]["ProjectDto"];
24255
- };
24256
- };
24257
- 401: components["responses"]["Unauthorized"];
24258
- };
24259
- };
24260
24099
  listCodeChatIndexes: {
24261
24100
  parameters: {
24262
24101
  query?: never;