@thinkai/tai-api-contract 2.30.1 → 2.31.0-pr.731.2
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 +169 -1
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +257 -10
- package/package.json +1 -1
- package/src/generated/openapi.ts +169 -1
|
@@ -1529,6 +1529,30 @@ export interface paths {
|
|
|
1529
1529
|
patch?: never;
|
|
1530
1530
|
trace?: never;
|
|
1531
1531
|
};
|
|
1532
|
+
"/workspaces/{workspaceId}/repo-eligibility": {
|
|
1533
|
+
parameters: {
|
|
1534
|
+
query?: never;
|
|
1535
|
+
header?: never;
|
|
1536
|
+
path?: never;
|
|
1537
|
+
cookie?: never;
|
|
1538
|
+
};
|
|
1539
|
+
/**
|
|
1540
|
+
* Get repo-sync eligibility gate (defaults + per-workspace overrides)
|
|
1541
|
+
* @description Returns the effective repo-sync eligibility gate (archived / fork / size / count) for the workspace: the global `defaults`, any per-workspace `overrides`, the merged `effective` values, and whether the caller can edit without platform-admin (`canEditUnrestricted`). Member-level read access.
|
|
1542
|
+
*/
|
|
1543
|
+
get: operations["getWorkspaceRepoEligibility"];
|
|
1544
|
+
/**
|
|
1545
|
+
* Set per-workspace repo-sync eligibility overrides
|
|
1546
|
+
* @description Set (or clear, with an empty `overrides`) the per-workspace repo-sync eligibility overrides. **Platform admins** may set any value (raise caps, `0` = unlimited, include archived/forks). **Workspace admins** may only make the gate *more restrictive* than the platform defaults (lower caps, exclude archived/forks) — exceeding a platform limit returns `403` (`repo_eligibility_bound_exceeded`). Requires workspace admin or platform admin.
|
|
1547
|
+
*/
|
|
1548
|
+
put: operations["putWorkspaceRepoEligibility"];
|
|
1549
|
+
post?: never;
|
|
1550
|
+
delete?: never;
|
|
1551
|
+
options?: never;
|
|
1552
|
+
head?: never;
|
|
1553
|
+
patch?: never;
|
|
1554
|
+
trace?: never;
|
|
1555
|
+
};
|
|
1532
1556
|
"/workspaces/{workspaceId}/readiness/cursor-key-usage": {
|
|
1533
1557
|
parameters: {
|
|
1534
1558
|
query?: never;
|
|
@@ -2731,6 +2755,56 @@ export interface components {
|
|
|
2731
2755
|
* @description Last push or metadata update from GitHub when available.
|
|
2732
2756
|
*/
|
|
2733
2757
|
updatedAt?: string | null;
|
|
2758
|
+
/** @description True when the repository is archived (read-only on GitHub). */
|
|
2759
|
+
archived?: boolean | null;
|
|
2760
|
+
/** @description True when the repository is a fork of another repository. */
|
|
2761
|
+
fork?: boolean | null;
|
|
2762
|
+
/** @description True when the repository is disabled on GitHub. */
|
|
2763
|
+
disabled?: boolean | null;
|
|
2764
|
+
/** @description Repository size in KB as reported by GitHub. */
|
|
2765
|
+
size?: number | null;
|
|
2766
|
+
/** @description True when the GitHub App installation lacks push access to this repo (read-only). Read-only repos are rejected during sync because readiness fixes require write access. */
|
|
2767
|
+
readOnly?: boolean | null;
|
|
2768
|
+
/** @description Set when this repo was skipped during sync due to an eligibility check. The frontend should display this as an inline explanation (e.g. "This repo is archived"). */
|
|
2769
|
+
ineligibleReason?: string | null;
|
|
2770
|
+
/**
|
|
2771
|
+
* @description Language-based eligibility for Agentic-Foundation readiness analysis (issue #44). `ineligible` repos (no supported stack) render read-only/orange in the AF list with no analyze/score/fix actions. Mixed monorepos with a supported secondary stack are `eligible`. Distinct from `ineligibleReason`, which reflects the structural sync gate.
|
|
2772
|
+
* @enum {string|null}
|
|
2773
|
+
*/
|
|
2774
|
+
eligibilityStatus?: "eligible" | "ineligible" | null;
|
|
2775
|
+
/** @description Human-readable explanation when `eligibilityStatus` is `ineligible` (e.g. "This repository's primary language (Python) is not supported in v1"). */
|
|
2776
|
+
eligibilityReason?: string | null;
|
|
2777
|
+
/** @description Dominant supported stack (by GitHub language bytes), one of backend_jvm | ios_app | web_spa | backend_go | backend_python. Null for ineligible repos. */
|
|
2778
|
+
primaryStack?: string | null;
|
|
2779
|
+
/** @description Second supported stack for a multi-stack repo, or null. */
|
|
2780
|
+
secondaryStack?: string | null;
|
|
2781
|
+
/** @description All supported stacks detected for the repo (ordered, primary first). Empty/null when no supported stack is present. Drives multi-stack scanning and the orange mixed-monorepo box in the AF UI. */
|
|
2782
|
+
supportedStacks?: string[] | null;
|
|
2783
|
+
};
|
|
2784
|
+
/** @description Resolved repo-sync eligibility gate (defaults or effective). All fields present. */
|
|
2785
|
+
RepoEligibilityConfigDto: {
|
|
2786
|
+
/** @description Skip archived repos during GitHub repo sync. */
|
|
2787
|
+
excludeArchived: boolean;
|
|
2788
|
+
/** @description Skip forked repos. Forks are included by default. */
|
|
2789
|
+
excludeForks: boolean;
|
|
2790
|
+
/** @description Max repo size in KB (GitHub-reported). 0 = no limit. */
|
|
2791
|
+
maxRepoSizeKb: number;
|
|
2792
|
+
/** @description Max repos materialized per workspace per sync. 0 = no limit. */
|
|
2793
|
+
maxReposPerWorkspace: number;
|
|
2794
|
+
};
|
|
2795
|
+
/** @description Per-workspace overrides for the repo-sync eligibility gate. Any field present wins over the global default; omit a field to inherit the default. An empty object clears all overrides. */
|
|
2796
|
+
RepoEligibilityOverridesDto: {
|
|
2797
|
+
excludeArchived?: boolean | null;
|
|
2798
|
+
excludeForks?: boolean | null;
|
|
2799
|
+
maxRepoSizeKb?: number | null;
|
|
2800
|
+
maxReposPerWorkspace?: number | null;
|
|
2801
|
+
};
|
|
2802
|
+
WorkspaceRepoEligibilityDto: {
|
|
2803
|
+
defaults: components["schemas"]["RepoEligibilityConfigDto"];
|
|
2804
|
+
overrides: components["schemas"]["RepoEligibilityOverridesDto"];
|
|
2805
|
+
effective: components["schemas"]["RepoEligibilityConfigDto"];
|
|
2806
|
+
/** @description True when the caller is a platform admin (may set any value, incl. raising caps). */
|
|
2807
|
+
canEditUnrestricted: boolean;
|
|
2734
2808
|
};
|
|
2735
2809
|
GithubMissingPermissionDto: {
|
|
2736
2810
|
/** @description GitHub App permission key (e.g. contents, pull_requests). */
|
|
@@ -3223,6 +3297,19 @@ export interface components {
|
|
|
3223
3297
|
* @enum {string|null}
|
|
3224
3298
|
*/
|
|
3225
3299
|
archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
|
|
3300
|
+
/**
|
|
3301
|
+
* @description Language-based eligibility for Agentic-Foundation analysis (#44). `ineligible` repos (no v1-supported stack) render read-only/orange in the AF list with no analyze/score/fix actions; the server also rejects analyze requests for them. Null until the first sync/scan computes it.
|
|
3302
|
+
* @enum {string|null}
|
|
3303
|
+
*/
|
|
3304
|
+
eligibilityStatus?: "eligible" | "ineligible" | null;
|
|
3305
|
+
/** @description Human-readable explanation when `eligibilityStatus` is `ineligible`. */
|
|
3306
|
+
eligibilityReason?: string | null;
|
|
3307
|
+
/** @description Dominant supported stack — backend_jvm | ios_app | web_spa | backend_go | backend_python. Null when ineligible/uncomputed. */
|
|
3308
|
+
primaryStack?: string | null;
|
|
3309
|
+
/** @description Second supported stack for a multi-stack repo, or null. */
|
|
3310
|
+
secondaryStack?: string | null;
|
|
3311
|
+
/** @description All supported stacks detected (ordered, primary first). Empty/null when none. */
|
|
3312
|
+
supportedStacks?: string[] | null;
|
|
3226
3313
|
};
|
|
3227
3314
|
/** @description Single-repo detail response. Identical to RepoReadinessScoreDto except dimensions use DimensionScoreDetailDto (criteriaDetails required per dimension). */
|
|
3228
3315
|
RepoReadinessScoreDetailDto: {
|
|
@@ -3684,7 +3771,7 @@ export interface components {
|
|
|
3684
3771
|
* @description Type of workspace lifecycle event.
|
|
3685
3772
|
* @enum {string}
|
|
3686
3773
|
*/
|
|
3687
|
-
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" | "
|
|
3774
|
+
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" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.role_changed" | "member.removed" | "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" | "readiness.scan_precheck_failed";
|
|
3688
3775
|
ActivityLogActorDto: {
|
|
3689
3776
|
/** Format: uuid */
|
|
3690
3777
|
userId: string;
|
|
@@ -4055,6 +4142,9 @@ export type CreateWorkspaceBodyDto = components['schemas']['CreateWorkspaceBodyD
|
|
|
4055
4142
|
export type CompanyProfileDto = components['schemas']['CompanyProfileDto'];
|
|
4056
4143
|
export type GithubAccountDto = components['schemas']['GithubAccountDto'];
|
|
4057
4144
|
export type GithubInstalledRepoDto = components['schemas']['GithubInstalledRepoDto'];
|
|
4145
|
+
export type RepoEligibilityConfigDto = components['schemas']['RepoEligibilityConfigDto'];
|
|
4146
|
+
export type RepoEligibilityOverridesDto = components['schemas']['RepoEligibilityOverridesDto'];
|
|
4147
|
+
export type WorkspaceRepoEligibilityDto = components['schemas']['WorkspaceRepoEligibilityDto'];
|
|
4058
4148
|
export type GithubMissingPermissionDto = components['schemas']['GithubMissingPermissionDto'];
|
|
4059
4149
|
export type GithubInstallationSummaryDto = components['schemas']['GithubInstallationSummaryDto'];
|
|
4060
4150
|
export type GithubPendingApprovalDto = components['schemas']['GithubPendingApprovalDto'];
|
|
@@ -7240,6 +7330,10 @@ export interface operations {
|
|
|
7240
7330
|
offset?: components["parameters"]["PaginationOffset"];
|
|
7241
7331
|
/** @description Sort direction. */
|
|
7242
7332
|
order?: components["parameters"]["PaginationOrder"];
|
|
7333
|
+
/** @description Server-side sort column (the activity "5 W's"). Combined with `order` (asc/desc). Defaults to `when` (occurredAt). `occurredAt`/`id` is always the tiebreaker. */
|
|
7334
|
+
sort?: "when" | "who" | "what" | "why" | "where";
|
|
7335
|
+
/** @description Coarse product-area grouping filter (#156). `integration` = GitHub + AI-tool key events; `agentic_foundation` = repos, readiness scans, fixes; `workspace_team` = members + HRIS. Omit (or pass `all`) for every area. */
|
|
7336
|
+
productArea?: "integration" | "agentic_foundation" | "workspace_team" | "all";
|
|
7243
7337
|
/** @description Filter to a specific event type. */
|
|
7244
7338
|
eventType?: components["schemas"]["ActivityLogEventTypeDto"];
|
|
7245
7339
|
/** @description Filter to events performed by a specific user (UUID). */
|
|
@@ -8128,6 +8222,80 @@ export interface operations {
|
|
|
8128
8222
|
403: components["responses"]["Forbidden"];
|
|
8129
8223
|
};
|
|
8130
8224
|
};
|
|
8225
|
+
getWorkspaceRepoEligibility: {
|
|
8226
|
+
parameters: {
|
|
8227
|
+
query?: never;
|
|
8228
|
+
header?: never;
|
|
8229
|
+
path: {
|
|
8230
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
8231
|
+
};
|
|
8232
|
+
cookie?: never;
|
|
8233
|
+
};
|
|
8234
|
+
requestBody?: never;
|
|
8235
|
+
responses: {
|
|
8236
|
+
/** @description Effective repo-eligibility configuration */
|
|
8237
|
+
200: {
|
|
8238
|
+
headers: {
|
|
8239
|
+
[name: string]: unknown;
|
|
8240
|
+
};
|
|
8241
|
+
content: {
|
|
8242
|
+
"application/json": components["schemas"]["WorkspaceRepoEligibilityDto"];
|
|
8243
|
+
};
|
|
8244
|
+
};
|
|
8245
|
+
401: components["responses"]["Unauthorized"];
|
|
8246
|
+
403: components["responses"]["Forbidden"];
|
|
8247
|
+
};
|
|
8248
|
+
};
|
|
8249
|
+
putWorkspaceRepoEligibility: {
|
|
8250
|
+
parameters: {
|
|
8251
|
+
query?: never;
|
|
8252
|
+
header?: never;
|
|
8253
|
+
path: {
|
|
8254
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
8255
|
+
};
|
|
8256
|
+
cookie?: never;
|
|
8257
|
+
};
|
|
8258
|
+
requestBody: {
|
|
8259
|
+
content: {
|
|
8260
|
+
"application/json": {
|
|
8261
|
+
overrides: components["schemas"]["RepoEligibilityOverridesDto"];
|
|
8262
|
+
};
|
|
8263
|
+
};
|
|
8264
|
+
};
|
|
8265
|
+
responses: {
|
|
8266
|
+
/** @description Overrides saved */
|
|
8267
|
+
200: {
|
|
8268
|
+
headers: {
|
|
8269
|
+
[name: string]: unknown;
|
|
8270
|
+
};
|
|
8271
|
+
content: {
|
|
8272
|
+
"application/json": {
|
|
8273
|
+
overrides: components["schemas"]["RepoEligibilityOverridesDto"];
|
|
8274
|
+
effective: components["schemas"]["RepoEligibilityConfigDto"];
|
|
8275
|
+
};
|
|
8276
|
+
};
|
|
8277
|
+
};
|
|
8278
|
+
/** @description Invalid request body */
|
|
8279
|
+
400: {
|
|
8280
|
+
headers: {
|
|
8281
|
+
[name: string]: unknown;
|
|
8282
|
+
};
|
|
8283
|
+
content: {
|
|
8284
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
8285
|
+
};
|
|
8286
|
+
};
|
|
8287
|
+
401: components["responses"]["Unauthorized"];
|
|
8288
|
+
/** @description Forbidden, or a workspace-admin value exceeds a platform limit (`repo_eligibility_bound_exceeded`) */
|
|
8289
|
+
403: {
|
|
8290
|
+
headers: {
|
|
8291
|
+
[name: string]: unknown;
|
|
8292
|
+
};
|
|
8293
|
+
content: {
|
|
8294
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
8295
|
+
};
|
|
8296
|
+
};
|
|
8297
|
+
};
|
|
8298
|
+
};
|
|
8131
8299
|
getCursorKeyUsage: {
|
|
8132
8300
|
parameters: {
|
|
8133
8301
|
query?: never;
|