@thinkai/tai-api-contract 2.28.0 → 3.1.0-pr.731.1
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.
- package/dist/generated/openapi.d.ts +395 -14
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +18 -7
- package/dist/index.d.ts.map +1 -1
- package/openapi/openapi.yaml +464 -22
- package/package.json +3 -2
- package/src/generated/openapi.ts +395 -14
- package/src/index.ts +19 -7
package/openapi/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ThinkAI API
|
|
4
|
-
version:
|
|
4
|
+
version: 3.1.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}/...`.
|
|
@@ -2447,6 +2447,97 @@ paths:
|
|
|
2447
2447
|
schema:
|
|
2448
2448
|
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2449
2449
|
|
|
2450
|
+
/workspaces/{workspaceId}/integrations/github-actions:
|
|
2451
|
+
get:
|
|
2452
|
+
tags: [Integrations]
|
|
2453
|
+
summary: GitHub Actions CI integration status for workspace
|
|
2454
|
+
operationId: getWorkspaceGithubActionsIntegrationStatus
|
|
2455
|
+
description: >
|
|
2456
|
+
Returns whether the workspace has explicitly enabled GitHub Actions CI metrics.
|
|
2457
|
+
Requires GitHub App (source control) to be connected; does not use workspace `sources` PATs.
|
|
2458
|
+
When GitHub is not connected, returns 200 with `githubConnected: false` and `enabled: false`.
|
|
2459
|
+
parameters:
|
|
2460
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
2461
|
+
responses:
|
|
2462
|
+
"200":
|
|
2463
|
+
description: GitHub Actions integration status
|
|
2464
|
+
content:
|
|
2465
|
+
application/json:
|
|
2466
|
+
schema:
|
|
2467
|
+
$ref: "#/components/schemas/GithubActionsIntegrationStatusDto"
|
|
2468
|
+
"401":
|
|
2469
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2470
|
+
"403":
|
|
2471
|
+
$ref: "#/components/responses/Forbidden"
|
|
2472
|
+
"404":
|
|
2473
|
+
description: Workspace does not exist or malformed workspaceId
|
|
2474
|
+
content:
|
|
2475
|
+
application/json:
|
|
2476
|
+
schema:
|
|
2477
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2478
|
+
|
|
2479
|
+
delete:
|
|
2480
|
+
tags: [Integrations]
|
|
2481
|
+
summary: Disable GitHub Actions CI integration
|
|
2482
|
+
operationId: deleteWorkspaceGithubActionsIntegration
|
|
2483
|
+
description: >
|
|
2484
|
+
Disables GitHub Actions CI opt-in for the workspace. Does not disconnect GitHub source control.
|
|
2485
|
+
Idempotent: returns 204 when already disabled.
|
|
2486
|
+
security:
|
|
2487
|
+
- bearerAuth: []
|
|
2488
|
+
parameters:
|
|
2489
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
2490
|
+
responses:
|
|
2491
|
+
"204":
|
|
2492
|
+
description: GitHub Actions integration disabled or was already absent
|
|
2493
|
+
"401":
|
|
2494
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2495
|
+
"403":
|
|
2496
|
+
$ref: "#/components/responses/Forbidden"
|
|
2497
|
+
"404":
|
|
2498
|
+
description: Workspace does not exist or malformed workspaceId
|
|
2499
|
+
content:
|
|
2500
|
+
application/json:
|
|
2501
|
+
schema:
|
|
2502
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2503
|
+
|
|
2504
|
+
/workspaces/{workspaceId}/integrations/github-actions/enable:
|
|
2505
|
+
post:
|
|
2506
|
+
tags: [Integrations]
|
|
2507
|
+
summary: Enable GitHub Actions CI integration
|
|
2508
|
+
operationId: postWorkspaceGithubActionsIntegrationEnable
|
|
2509
|
+
description: >
|
|
2510
|
+
Opts the workspace into GitHub Actions CI metrics using the existing GitHub App installation
|
|
2511
|
+
(no separate OAuth or PAT). Returns `outcome: needs_github` when source control is not connected,
|
|
2512
|
+
or `outcome: permissions_missing` when the installation lacks Actions read permission.
|
|
2513
|
+
security:
|
|
2514
|
+
- bearerAuth: []
|
|
2515
|
+
parameters:
|
|
2516
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
2517
|
+
responses:
|
|
2518
|
+
"200":
|
|
2519
|
+
description: Enable result
|
|
2520
|
+
content:
|
|
2521
|
+
application/json:
|
|
2522
|
+
schema:
|
|
2523
|
+
$ref: "#/components/schemas/GithubActionsEnableResponseDto"
|
|
2524
|
+
"401":
|
|
2525
|
+
$ref: "#/components/responses/Unauthorized"
|
|
2526
|
+
"403":
|
|
2527
|
+
$ref: "#/components/responses/Forbidden"
|
|
2528
|
+
"404":
|
|
2529
|
+
description: Workspace does not exist or malformed workspaceId
|
|
2530
|
+
content:
|
|
2531
|
+
application/json:
|
|
2532
|
+
schema:
|
|
2533
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2534
|
+
"503":
|
|
2535
|
+
description: GitHub App not configured or smoke test failed
|
|
2536
|
+
content:
|
|
2537
|
+
application/json:
|
|
2538
|
+
schema:
|
|
2539
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2540
|
+
|
|
2450
2541
|
/integrations/github/webhook:
|
|
2451
2542
|
post:
|
|
2452
2543
|
tags: [Integrations]
|
|
@@ -3122,6 +3213,25 @@ paths:
|
|
|
3122
3213
|
- $ref: "#/components/parameters/PaginationLimit"
|
|
3123
3214
|
- $ref: "#/components/parameters/PaginationOffset"
|
|
3124
3215
|
- $ref: "#/components/parameters/PaginationOrder"
|
|
3216
|
+
- name: sort
|
|
3217
|
+
in: query
|
|
3218
|
+
required: false
|
|
3219
|
+
description: >
|
|
3220
|
+
Server-side sort column (the activity "5 W's"). Combined with `order` (asc/desc).
|
|
3221
|
+
Defaults to `when` (occurredAt). `occurredAt`/`id` is always the tiebreaker.
|
|
3222
|
+
schema:
|
|
3223
|
+
type: string
|
|
3224
|
+
enum: [when, who, what, why, where]
|
|
3225
|
+
- name: productArea
|
|
3226
|
+
in: query
|
|
3227
|
+
required: false
|
|
3228
|
+
description: >
|
|
3229
|
+
Coarse product-area grouping filter (#156). `integration` = GitHub + AI-tool key events;
|
|
3230
|
+
`agentic_foundation` = repos, readiness scans, fixes; `workspace_team` = members + HRIS.
|
|
3231
|
+
Omit (or pass `all`) for every area.
|
|
3232
|
+
schema:
|
|
3233
|
+
type: string
|
|
3234
|
+
enum: [integration, agentic_foundation, workspace_team, all]
|
|
3125
3235
|
- name: eventType
|
|
3126
3236
|
in: query
|
|
3127
3237
|
description: Filter to a specific event type.
|
|
@@ -3916,6 +4026,79 @@ paths:
|
|
|
3916
4026
|
"403":
|
|
3917
4027
|
$ref: "#/components/responses/Forbidden"
|
|
3918
4028
|
|
|
4029
|
+
/workspaces/{workspaceId}/repo-eligibility:
|
|
4030
|
+
get:
|
|
4031
|
+
tags: [RepositoryReadiness]
|
|
4032
|
+
summary: Get repo-sync eligibility gate (defaults + per-workspace overrides)
|
|
4033
|
+
description: >
|
|
4034
|
+
Returns the effective repo-sync eligibility gate (archived / fork / size / count) for the
|
|
4035
|
+
workspace: the global `defaults`, any per-workspace `overrides`, the merged `effective`
|
|
4036
|
+
values, and whether the caller can edit without platform-admin (`canEditUnrestricted`).
|
|
4037
|
+
Member-level read access.
|
|
4038
|
+
operationId: getWorkspaceRepoEligibility
|
|
4039
|
+
parameters:
|
|
4040
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
4041
|
+
responses:
|
|
4042
|
+
"200":
|
|
4043
|
+
description: Effective repo-eligibility configuration
|
|
4044
|
+
content:
|
|
4045
|
+
application/json:
|
|
4046
|
+
schema:
|
|
4047
|
+
$ref: "#/components/schemas/WorkspaceRepoEligibilityDto"
|
|
4048
|
+
"401":
|
|
4049
|
+
$ref: "#/components/responses/Unauthorized"
|
|
4050
|
+
"403":
|
|
4051
|
+
$ref: "#/components/responses/Forbidden"
|
|
4052
|
+
put:
|
|
4053
|
+
tags: [RepositoryReadiness]
|
|
4054
|
+
summary: Set per-workspace repo-sync eligibility overrides
|
|
4055
|
+
description: >
|
|
4056
|
+
Set (or clear, with an empty `overrides`) the per-workspace repo-sync eligibility overrides.
|
|
4057
|
+
**Platform admins** may set any value (raise caps, `0` = unlimited, include archived/forks).
|
|
4058
|
+
**Workspace admins** may only make the gate *more restrictive* than the platform defaults
|
|
4059
|
+
(lower caps, exclude archived/forks) — exceeding a platform limit returns `403`
|
|
4060
|
+
(`repo_eligibility_bound_exceeded`). Requires workspace admin or platform admin.
|
|
4061
|
+
operationId: putWorkspaceRepoEligibility
|
|
4062
|
+
parameters:
|
|
4063
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
4064
|
+
requestBody:
|
|
4065
|
+
required: true
|
|
4066
|
+
content:
|
|
4067
|
+
application/json:
|
|
4068
|
+
schema:
|
|
4069
|
+
type: object
|
|
4070
|
+
required: [overrides]
|
|
4071
|
+
properties:
|
|
4072
|
+
overrides:
|
|
4073
|
+
$ref: "#/components/schemas/RepoEligibilityOverridesDto"
|
|
4074
|
+
responses:
|
|
4075
|
+
"200":
|
|
4076
|
+
description: Overrides saved
|
|
4077
|
+
content:
|
|
4078
|
+
application/json:
|
|
4079
|
+
schema:
|
|
4080
|
+
type: object
|
|
4081
|
+
required: [overrides, effective]
|
|
4082
|
+
properties:
|
|
4083
|
+
overrides:
|
|
4084
|
+
$ref: "#/components/schemas/RepoEligibilityOverridesDto"
|
|
4085
|
+
effective:
|
|
4086
|
+
$ref: "#/components/schemas/RepoEligibilityConfigDto"
|
|
4087
|
+
"400":
|
|
4088
|
+
description: Invalid request body
|
|
4089
|
+
content:
|
|
4090
|
+
application/json:
|
|
4091
|
+
schema:
|
|
4092
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
4093
|
+
"401":
|
|
4094
|
+
$ref: "#/components/responses/Unauthorized"
|
|
4095
|
+
"403":
|
|
4096
|
+
description: Forbidden, or a workspace-admin value exceeds a platform limit (`repo_eligibility_bound_exceeded`)
|
|
4097
|
+
content:
|
|
4098
|
+
application/json:
|
|
4099
|
+
schema:
|
|
4100
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
4101
|
+
|
|
3919
4102
|
/workspaces/{workspaceId}/readiness/cursor-key-usage:
|
|
3920
4103
|
get:
|
|
3921
4104
|
tags: [RepositoryReadiness]
|
|
@@ -4622,7 +4805,7 @@ paths:
|
|
|
4622
4805
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
4623
4806
|
responses:
|
|
4624
4807
|
"200":
|
|
4625
|
-
description: Sync completed successfully
|
|
4808
|
+
description: Sync completed successfully for all configured HRIS providers
|
|
4626
4809
|
content:
|
|
4627
4810
|
application/json:
|
|
4628
4811
|
schema:
|
|
@@ -4632,6 +4815,12 @@ paths:
|
|
|
4632
4815
|
employeeCount: 42
|
|
4633
4816
|
absenceCount: 7
|
|
4634
4817
|
durationMs: 1234
|
|
4818
|
+
providers:
|
|
4819
|
+
- provider: personio
|
|
4820
|
+
status: ok
|
|
4821
|
+
employeeCount: 42
|
|
4822
|
+
absenceCount: 7
|
|
4823
|
+
durationMs: 1234
|
|
4635
4824
|
"422":
|
|
4636
4825
|
description: No HRIS source configured for this workspace
|
|
4637
4826
|
content:
|
|
@@ -4640,10 +4829,10 @@ paths:
|
|
|
4640
4829
|
$ref: "#/components/schemas/HrisTriggerSyncResultDto"
|
|
4641
4830
|
example:
|
|
4642
4831
|
status: skipped
|
|
4643
|
-
code:
|
|
4644
|
-
reason:
|
|
4832
|
+
code: no_hris_source
|
|
4833
|
+
reason: no_hris_source
|
|
4645
4834
|
"500":
|
|
4646
|
-
description: Sync failed
|
|
4835
|
+
description: Sync failed for one or more HRIS providers
|
|
4647
4836
|
content:
|
|
4648
4837
|
application/json:
|
|
4649
4838
|
schema:
|
|
@@ -4651,7 +4840,7 @@ paths:
|
|
|
4651
4840
|
example:
|
|
4652
4841
|
status: error
|
|
4653
4842
|
code: hris_sync_failed
|
|
4654
|
-
error: "
|
|
4843
|
+
error: "ZenHR token refresh failed (401)"
|
|
4655
4844
|
"401":
|
|
4656
4845
|
$ref: "#/components/responses/Unauthorized"
|
|
4657
4846
|
"403":
|
|
@@ -6611,6 +6800,123 @@ components:
|
|
|
6611
6800
|
format: date-time
|
|
6612
6801
|
nullable: true
|
|
6613
6802
|
description: Last push or metadata update from GitHub when available.
|
|
6803
|
+
archived:
|
|
6804
|
+
type: boolean
|
|
6805
|
+
nullable: true
|
|
6806
|
+
description: True when the repository is archived (read-only on GitHub).
|
|
6807
|
+
fork:
|
|
6808
|
+
type: boolean
|
|
6809
|
+
nullable: true
|
|
6810
|
+
description: True when the repository is a fork of another repository.
|
|
6811
|
+
disabled:
|
|
6812
|
+
type: boolean
|
|
6813
|
+
nullable: true
|
|
6814
|
+
description: True when the repository is disabled on GitHub.
|
|
6815
|
+
size:
|
|
6816
|
+
type: integer
|
|
6817
|
+
nullable: true
|
|
6818
|
+
description: Repository size in KB as reported by GitHub.
|
|
6819
|
+
readOnly:
|
|
6820
|
+
type: boolean
|
|
6821
|
+
nullable: true
|
|
6822
|
+
description: >
|
|
6823
|
+
True when the GitHub App installation lacks push access to this repo
|
|
6824
|
+
(read-only). Read-only repos are rejected during sync because readiness
|
|
6825
|
+
fixes require write access.
|
|
6826
|
+
ineligibleReason:
|
|
6827
|
+
type: string
|
|
6828
|
+
nullable: true
|
|
6829
|
+
description: >
|
|
6830
|
+
Set when this repo was skipped during sync due to an eligibility check.
|
|
6831
|
+
The frontend should display this as an inline explanation (e.g. "This repo is archived").
|
|
6832
|
+
eligibilityStatus:
|
|
6833
|
+
type: string
|
|
6834
|
+
enum: [eligible, ineligible]
|
|
6835
|
+
nullable: true
|
|
6836
|
+
description: >
|
|
6837
|
+
Language-based eligibility for Agentic-Foundation readiness analysis (issue #44).
|
|
6838
|
+
`ineligible` repos (no supported stack) render read-only/orange in the AF list with
|
|
6839
|
+
no analyze/score/fix actions. Mixed monorepos with a supported secondary stack are
|
|
6840
|
+
`eligible`. Distinct from `ineligibleReason`, which reflects the structural sync gate.
|
|
6841
|
+
eligibilityReason:
|
|
6842
|
+
type: string
|
|
6843
|
+
nullable: true
|
|
6844
|
+
description: >
|
|
6845
|
+
Human-readable explanation when `eligibilityStatus` is `ineligible`
|
|
6846
|
+
(e.g. "This repository's primary language (Python) is not supported in v1").
|
|
6847
|
+
primaryStack:
|
|
6848
|
+
type: string
|
|
6849
|
+
nullable: true
|
|
6850
|
+
description: >
|
|
6851
|
+
Dominant supported stack (by GitHub language bytes), one of
|
|
6852
|
+
backend_jvm | ios_app | web_spa | backend_go. Null for ineligible repos.
|
|
6853
|
+
secondaryStack:
|
|
6854
|
+
type: string
|
|
6855
|
+
nullable: true
|
|
6856
|
+
description: Second supported stack for a multi-stack repo, or null.
|
|
6857
|
+
supportedStacks:
|
|
6858
|
+
type: array
|
|
6859
|
+
nullable: true
|
|
6860
|
+
items:
|
|
6861
|
+
type: string
|
|
6862
|
+
description: >
|
|
6863
|
+
All supported stacks detected for the repo (ordered, primary first). Empty/null
|
|
6864
|
+
when no supported stack is present. Drives multi-stack scanning and the orange
|
|
6865
|
+
mixed-monorepo box in the AF UI.
|
|
6866
|
+
|
|
6867
|
+
RepoEligibilityConfigDto:
|
|
6868
|
+
type: object
|
|
6869
|
+
description: Resolved repo-sync eligibility gate (defaults or effective). All fields present.
|
|
6870
|
+
required: [excludeArchived, excludeForks, maxRepoSizeKb, maxReposPerWorkspace]
|
|
6871
|
+
properties:
|
|
6872
|
+
excludeArchived:
|
|
6873
|
+
type: boolean
|
|
6874
|
+
description: Skip archived repos during GitHub repo sync.
|
|
6875
|
+
excludeForks:
|
|
6876
|
+
type: boolean
|
|
6877
|
+
description: Skip forked repos. Forks are included by default.
|
|
6878
|
+
maxRepoSizeKb:
|
|
6879
|
+
type: integer
|
|
6880
|
+
description: Max repo size in KB (GitHub-reported). 0 = no limit.
|
|
6881
|
+
maxReposPerWorkspace:
|
|
6882
|
+
type: integer
|
|
6883
|
+
description: Max repos materialized per workspace per sync. 0 = no limit.
|
|
6884
|
+
|
|
6885
|
+
RepoEligibilityOverridesDto:
|
|
6886
|
+
type: object
|
|
6887
|
+
additionalProperties: false
|
|
6888
|
+
description: >
|
|
6889
|
+
Per-workspace overrides for the repo-sync eligibility gate. Any field present wins over the
|
|
6890
|
+
global default; omit a field to inherit the default. An empty object clears all overrides.
|
|
6891
|
+
properties:
|
|
6892
|
+
excludeArchived:
|
|
6893
|
+
type: boolean
|
|
6894
|
+
nullable: true
|
|
6895
|
+
excludeForks:
|
|
6896
|
+
type: boolean
|
|
6897
|
+
nullable: true
|
|
6898
|
+
maxRepoSizeKb:
|
|
6899
|
+
type: integer
|
|
6900
|
+
minimum: 0
|
|
6901
|
+
nullable: true
|
|
6902
|
+
maxReposPerWorkspace:
|
|
6903
|
+
type: integer
|
|
6904
|
+
minimum: 0
|
|
6905
|
+
nullable: true
|
|
6906
|
+
|
|
6907
|
+
WorkspaceRepoEligibilityDto:
|
|
6908
|
+
type: object
|
|
6909
|
+
required: [defaults, overrides, effective, canEditUnrestricted]
|
|
6910
|
+
properties:
|
|
6911
|
+
defaults:
|
|
6912
|
+
$ref: "#/components/schemas/RepoEligibilityConfigDto"
|
|
6913
|
+
overrides:
|
|
6914
|
+
$ref: "#/components/schemas/RepoEligibilityOverridesDto"
|
|
6915
|
+
effective:
|
|
6916
|
+
$ref: "#/components/schemas/RepoEligibilityConfigDto"
|
|
6917
|
+
canEditUnrestricted:
|
|
6918
|
+
type: boolean
|
|
6919
|
+
description: True when the caller is a platform admin (may set any value, incl. raising caps).
|
|
6614
6920
|
|
|
6615
6921
|
GithubMissingPermissionDto:
|
|
6616
6922
|
type: object
|
|
@@ -6682,6 +6988,75 @@ components:
|
|
|
6682
6988
|
format: date-time
|
|
6683
6989
|
description: When the pending install request was recorded.
|
|
6684
6990
|
|
|
6991
|
+
GithubActionsWorkflowPreviewDto:
|
|
6992
|
+
type: object
|
|
6993
|
+
additionalProperties: false
|
|
6994
|
+
properties:
|
|
6995
|
+
workflows:
|
|
6996
|
+
type: integer
|
|
6997
|
+
minimum: 0
|
|
6998
|
+
description: Approximate workflow count from recent API sample (best effort).
|
|
6999
|
+
runsThisWeek:
|
|
7000
|
+
type: integer
|
|
7001
|
+
minimum: 0
|
|
7002
|
+
description: Workflow runs in the trailing 7 days from sample repo (best effort).
|
|
7003
|
+
|
|
7004
|
+
GithubActionsIntegrationStatusDto:
|
|
7005
|
+
type: object
|
|
7006
|
+
additionalProperties: false
|
|
7007
|
+
required: [enabled, githubConnected, permissionsOk]
|
|
7008
|
+
properties:
|
|
7009
|
+
enabled:
|
|
7010
|
+
type: boolean
|
|
7011
|
+
description: True when the workspace admin explicitly enabled GitHub Actions CI.
|
|
7012
|
+
githubConnected:
|
|
7013
|
+
type: boolean
|
|
7014
|
+
description: True when at least one GitHub App VCS installation is linked.
|
|
7015
|
+
permissionsOk:
|
|
7016
|
+
type: boolean
|
|
7017
|
+
description: False when GitHub App installation lacks Actions read permission.
|
|
7018
|
+
permissionsUpgradeRequired:
|
|
7019
|
+
type: boolean
|
|
7020
|
+
description: Alias for `!permissionsOk` when GitHub is connected.
|
|
7021
|
+
missingPermissions:
|
|
7022
|
+
type: array
|
|
7023
|
+
items:
|
|
7024
|
+
$ref: "#/components/schemas/GithubMissingPermissionDto"
|
|
7025
|
+
manageUrl:
|
|
7026
|
+
type: string
|
|
7027
|
+
format: uri
|
|
7028
|
+
nullable: true
|
|
7029
|
+
description: GitHub installation settings URL for permission approval.
|
|
7030
|
+
lastSyncAt:
|
|
7031
|
+
type: string
|
|
7032
|
+
format: date-time
|
|
7033
|
+
nullable: true
|
|
7034
|
+
description: Last productivity ingest timestamp when CI is enabled.
|
|
7035
|
+
workflowPreview:
|
|
7036
|
+
nullable: true
|
|
7037
|
+
allOf:
|
|
7038
|
+
- $ref: "#/components/schemas/GithubActionsWorkflowPreviewDto"
|
|
7039
|
+
error:
|
|
7040
|
+
type: string
|
|
7041
|
+
nullable: true
|
|
7042
|
+
description: Last enable or status error message when applicable.
|
|
7043
|
+
|
|
7044
|
+
GithubActionsEnableResponseDto:
|
|
7045
|
+
type: object
|
|
7046
|
+
additionalProperties: false
|
|
7047
|
+
required: [outcome]
|
|
7048
|
+
properties:
|
|
7049
|
+
outcome:
|
|
7050
|
+
type: string
|
|
7051
|
+
enum: [enabled, needs_github, permissions_missing, error]
|
|
7052
|
+
status:
|
|
7053
|
+
nullable: true
|
|
7054
|
+
allOf:
|
|
7055
|
+
- $ref: "#/components/schemas/GithubActionsIntegrationStatusDto"
|
|
7056
|
+
error:
|
|
7057
|
+
type: string
|
|
7058
|
+
nullable: true
|
|
7059
|
+
|
|
6685
7060
|
GithubInstallationStatusDto:
|
|
6686
7061
|
type: object
|
|
6687
7062
|
required: [installed, installations, permissionsUpgradeRequired]
|
|
@@ -7230,6 +7605,11 @@ components:
|
|
|
7230
7605
|
type: string
|
|
7231
7606
|
enum: [high, medium, low]
|
|
7232
7607
|
description: Rubric-defined severity for this criterion
|
|
7608
|
+
summary:
|
|
7609
|
+
type: string
|
|
7610
|
+
maxLength: 120
|
|
7611
|
+
nullable: true
|
|
7612
|
+
description: Plain-language explanation of what this check means (from rubric, not LLM)
|
|
7233
7613
|
notes:
|
|
7234
7614
|
type: string
|
|
7235
7615
|
maxLength: 2048
|
|
@@ -7564,6 +7944,33 @@ components:
|
|
|
7564
7944
|
nullable: true
|
|
7565
7945
|
enum: [github_removed, installation_disconnected, installation_replaced, superseded, null]
|
|
7566
7946
|
description: Why the repo was archived. Only present when `archivedAt` is set.
|
|
7947
|
+
eligibilityStatus:
|
|
7948
|
+
type: string
|
|
7949
|
+
enum: [eligible, ineligible]
|
|
7950
|
+
nullable: true
|
|
7951
|
+
description: >
|
|
7952
|
+
Language-based eligibility for Agentic-Foundation analysis (#44). `ineligible` repos
|
|
7953
|
+
(no v1-supported stack) render read-only/orange in the AF list with no analyze/score/fix
|
|
7954
|
+
actions; the server also rejects analyze requests for them. Null until the first
|
|
7955
|
+
sync/scan computes it.
|
|
7956
|
+
eligibilityReason:
|
|
7957
|
+
type: string
|
|
7958
|
+
nullable: true
|
|
7959
|
+
description: Human-readable explanation when `eligibilityStatus` is `ineligible`.
|
|
7960
|
+
primaryStack:
|
|
7961
|
+
type: string
|
|
7962
|
+
nullable: true
|
|
7963
|
+
description: Dominant supported stack — backend_jvm | ios_app | web_spa | backend_go. Null when ineligible/uncomputed.
|
|
7964
|
+
secondaryStack:
|
|
7965
|
+
type: string
|
|
7966
|
+
nullable: true
|
|
7967
|
+
description: Second supported stack for a multi-stack repo, or null.
|
|
7968
|
+
supportedStacks:
|
|
7969
|
+
type: array
|
|
7970
|
+
nullable: true
|
|
7971
|
+
items:
|
|
7972
|
+
type: string
|
|
7973
|
+
description: All supported stacks detected (ordered, primary first). Empty/null when none.
|
|
7567
7974
|
|
|
7568
7975
|
RepoReadinessScoreDetailDto:
|
|
7569
7976
|
type: object
|
|
@@ -8638,18 +9045,29 @@ components:
|
|
|
8638
9045
|
- readiness.scan_completed
|
|
8639
9046
|
- readiness.scan_failed
|
|
8640
9047
|
- readiness.scan_partial
|
|
8641
|
-
-
|
|
8642
|
-
-
|
|
8643
|
-
-
|
|
8644
|
-
-
|
|
8645
|
-
- config.cursor.platform_key_disabled
|
|
8646
|
-
- config.claude.added
|
|
8647
|
-
- config.claude.updated
|
|
8648
|
-
- config.claude.removed
|
|
8649
|
-
- config.agent_execution.provider_changed
|
|
9048
|
+
- integrations.agent_execution.provider_changed
|
|
9049
|
+
- integrations.repo_eligibility.overrides_changed
|
|
9050
|
+
- integrations.cursor.platform_key_enabled
|
|
9051
|
+
- integrations.cursor.platform_key_disabled
|
|
8650
9052
|
- member.invited
|
|
8651
9053
|
- member.role_changed
|
|
8652
9054
|
- member.removed
|
|
9055
|
+
- repo.sync_skipped
|
|
9056
|
+
- integrations.cursor.execution_key.added
|
|
9057
|
+
- integrations.cursor.execution_key.updated
|
|
9058
|
+
- integrations.cursor.execution_key.removed
|
|
9059
|
+
- integrations.cursor.execution_key.check_failed
|
|
9060
|
+
- integrations.cursor.admin_key.added
|
|
9061
|
+
- integrations.cursor.admin_key.updated
|
|
9062
|
+
- integrations.cursor.admin_key.removed
|
|
9063
|
+
- integrations.claude.execution_key.added
|
|
9064
|
+
- integrations.claude.execution_key.updated
|
|
9065
|
+
- integrations.claude.execution_key.removed
|
|
9066
|
+
- integrations.claude.execution_key.check_failed
|
|
9067
|
+
- integrations.claude.admin_key.added
|
|
9068
|
+
- integrations.claude.admin_key.updated
|
|
9069
|
+
- integrations.claude.admin_key.removed
|
|
9070
|
+
- readiness.scan_precheck_failed
|
|
8653
9071
|
|
|
8654
9072
|
ActivityLogActorDto:
|
|
8655
9073
|
type: object
|
|
@@ -8797,25 +9215,49 @@ components:
|
|
|
8797
9215
|
properties:
|
|
8798
9216
|
status:
|
|
8799
9217
|
type: string
|
|
8800
|
-
enum: [ok, skipped, error]
|
|
9218
|
+
enum: [ok, skipped, error, partial]
|
|
8801
9219
|
code:
|
|
8802
9220
|
type: string
|
|
8803
|
-
description: Stable machine-readable code (e.g. '
|
|
9221
|
+
description: Stable machine-readable code (e.g. 'no_hris_source', 'hris_sync_failed').
|
|
8804
9222
|
employeeCount:
|
|
8805
9223
|
type: integer
|
|
8806
|
-
description:
|
|
9224
|
+
description: Employees synced across successful providers (when status = ok or partial).
|
|
8807
9225
|
absenceCount:
|
|
8808
9226
|
type: integer
|
|
8809
|
-
description:
|
|
9227
|
+
description: Absence rows synced across successful providers.
|
|
8810
9228
|
durationMs:
|
|
8811
9229
|
type: integer
|
|
8812
|
-
description: Wall-clock duration of the sync in milliseconds
|
|
9230
|
+
description: Wall-clock duration of the sync in milliseconds.
|
|
8813
9231
|
reason:
|
|
8814
9232
|
type: string
|
|
8815
|
-
description: Machine-readable reason for a skipped sync (e.g. '
|
|
9233
|
+
description: Machine-readable reason for a skipped sync (e.g. 'no_hris_source').
|
|
9234
|
+
error:
|
|
9235
|
+
type: string
|
|
9236
|
+
description: Error message when status = error, or first provider failure when partial.
|
|
9237
|
+
providers:
|
|
9238
|
+
type: array
|
|
9239
|
+
description: Per-provider sync outcomes when one or more HRIS sources are configured.
|
|
9240
|
+
items:
|
|
9241
|
+
$ref: "#/components/schemas/HrisProviderSyncResultDto"
|
|
9242
|
+
|
|
9243
|
+
HrisProviderSyncResultDto:
|
|
9244
|
+
type: object
|
|
9245
|
+
required: [provider, status]
|
|
9246
|
+
properties:
|
|
9247
|
+
provider:
|
|
9248
|
+
type: string
|
|
9249
|
+
description: HRIS provider identifier (personio, zenhr, …).
|
|
9250
|
+
status:
|
|
9251
|
+
type: string
|
|
9252
|
+
enum: [ok, error]
|
|
9253
|
+
employeeCount:
|
|
9254
|
+
type: integer
|
|
9255
|
+
absenceCount:
|
|
9256
|
+
type: integer
|
|
9257
|
+
durationMs:
|
|
9258
|
+
type: integer
|
|
8816
9259
|
error:
|
|
8817
9260
|
type: string
|
|
8818
|
-
description: Error message when status = 'error'.
|
|
8819
9261
|
|
|
8820
9262
|
ActivityLogPageDto:
|
|
8821
9263
|
allOf:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thinkai/tai-api-contract",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0-pr.731.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,9 +21,10 @@
|
|
|
21
21
|
"dependencies": {},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@stoplight/spectral-cli": "^6.15.1",
|
|
24
|
+
"@types/node": "^25.9.1",
|
|
24
25
|
"jsonpath-plus": "^10.3.0",
|
|
25
26
|
"openapi-typescript": "^7.13.0",
|
|
26
|
-
"typescript": "~
|
|
27
|
+
"typescript": "~6.0.3"
|
|
27
28
|
},
|
|
28
29
|
"files": [
|
|
29
30
|
"dist",
|