@thinkai/tai-api-contract 2.96.0 → 2.98.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.
@@ -560,6 +560,27 @@ export interface paths {
560
560
  patch?: never;
561
561
  trace?: never;
562
562
  };
563
+ "/workspaces/{workspaceId}/delivery-topology": {
564
+ parameters: {
565
+ query?: never;
566
+ header?: never;
567
+ path?: never;
568
+ cookie?: never;
569
+ };
570
+ get?: never;
571
+ /**
572
+ * Set workspace delivery topology
573
+ * @description Persist the workspace delivery topology used by federated readiness assessment: which connected repos hold terraform / gitops / ci_templates / api_contracts artifacts, plus optional per-service overrides. Role and override `providerSlug` values must reference repos connected to this workspace, otherwise the request is rejected with `400 invalid_delivery_topology`. Send `null` (or `{ "deliveryTopology": null }`) to clear the topology.
574
+ * Requires editor or admin workspace role.
575
+ */
576
+ put: operations["putWorkspaceDeliveryTopology"];
577
+ post?: never;
578
+ delete?: never;
579
+ options?: never;
580
+ head?: never;
581
+ patch?: never;
582
+ trace?: never;
583
+ };
563
584
  "/workspaces/{workspaceId}/sources": {
564
585
  parameters: {
565
586
  query?: never;
@@ -4181,6 +4202,52 @@ export interface components {
4181
4202
  codeIntelligenceClaudeModel?: string | null;
4182
4203
  /** @description True when a dedicated `code_intelligence` source has a stored executionToken. */
4183
4204
  hasCodeIntelligenceExecutionToken?: boolean;
4205
+ /** @description Federated-readiness delivery topology: which connected repos hold terraform / gitops / ci_templates / api_contracts truth for this workspace. Null when not configured. Change via `PUT /workspaces/{workspaceId}/delivery-topology`. */
4206
+ deliveryTopology?: components["schemas"]["DeliveryTopologyDto"] | null;
4207
+ };
4208
+ DeliveryRoleConfigDto: {
4209
+ /** @description Connected workspace repo (`owner/repo`) that holds this role's artifacts. */
4210
+ providerSlug: string;
4211
+ /**
4212
+ * @description IaC engine hint (terraform role only).
4213
+ * @enum {string}
4214
+ */
4215
+ engine?: "terraform" | "pulumi" | "cdk";
4216
+ /**
4217
+ * @description CI templates flavor (ci_templates role only).
4218
+ * @enum {string}
4219
+ */
4220
+ type?: "reusable_workflows";
4221
+ /** @description Set true for extension roles outside the known role keys. */
4222
+ custom?: boolean;
4223
+ };
4224
+ RepoDeliveryOverrideDto: {
4225
+ /** @enum {string} */
4226
+ deliveryModel?: "auto" | "k8s_microservices" | "mobile_store" | "web_hosting" | "data_pipelines" | "monorepo" | "library" | "hybrid";
4227
+ /** @description Per-service role → providerSlug overrides (merged over workspace roles). */
4228
+ roles?: {
4229
+ [key: string]: string;
4230
+ };
4231
+ /** @description Path prefix inside platform repos where this service's artifacts live. */
4232
+ targetPathHint?: string;
4233
+ };
4234
+ DeliveryTopologyDto: {
4235
+ /** @enum {string} */
4236
+ deliveryModel: "auto" | "k8s_microservices" | "mobile_store" | "web_hosting" | "data_pipelines" | "monorepo" | "library" | "hybrid";
4237
+ /** @enum {string} */
4238
+ ciProvider: "github_actions" | "jenkins" | "gitlab" | "bitbucket" | "hybrid" | "external_documented";
4239
+ /** @description True when infra/delivery artifacts live outside service repos. */
4240
+ splitInfra: boolean;
4241
+ /** @description Role → platform repo mapping. Known keys: terraform, gitops, ci_templates, jenkins_shared, mobile_release, hosting, data_platform, api_contracts, sonar_config. */
4242
+ roles: {
4243
+ [key: string]: components["schemas"]["DeliveryRoleConfigDto"];
4244
+ };
4245
+ /** @description Optional path template inside platform repos, e.g. `services/{repo_name}/` (`{repo_name}` and `{provider_slug}` placeholders supported). */
4246
+ servicePathConvention?: string | null;
4247
+ /** @description Per-service-repo overrides keyed by provider slug. */
4248
+ repoOverrides: {
4249
+ [key: string]: components["schemas"]["RepoDeliveryOverrideDto"];
4250
+ };
4184
4251
  };
4185
4252
  TestConnectionResponseDto: {
4186
4253
  success: boolean;
@@ -4574,13 +4641,17 @@ export interface components {
4574
4641
  failures: string[];
4575
4642
  /** @description Failed GitHub Actions workflow runs for this UTC day when CI ingest is enabled. */
4576
4643
  failureItems?: components["schemas"]["ProductivityInsightsContributorFailureItemDto"][];
4577
- /** @description Optional PR rows with GitHub links when ingest stored URLs. */
4644
+ /** @description Optional merged PR rows for day drilldown (label, optional GitHub URL, optional ship-weight score / pending flag). Includes label-only rows so unscored or URL-less merges still surface ship-weight state. */
4578
4645
  mergedPrItems?: components["schemas"]["ProductivityInsightsContributorMergedPrItemDto"][];
4579
4646
  };
4580
4647
  ProductivityInsightsContributorMergedPrItemDto: {
4581
4648
  label: string;
4582
4649
  /** Format: uri */
4583
4650
  url?: string;
4651
+ /** @description v13 ship-weight score for this PR when scored (typically 0–10). */
4652
+ shipWeight?: number;
4653
+ /** @description True when this GitHub PR is still awaiting ship-weight scoring. */
4654
+ shipWeightPending?: boolean;
4584
4655
  };
4585
4656
  ProductivityInsightsContributorFailureItemDto: {
4586
4657
  label: string;
@@ -6368,6 +6439,33 @@ export interface components {
6368
6439
  }[] | null;
6369
6440
  /** @description GitHub-reported repository size in KB (includes git history), refreshed on each readiness scan (#729). Compare against `eligibilityLimits.maxRepoSizeKb` on the list response to show per-repo "size / limit". When the size exceeds the limit the latest scan is recorded as `partial_failed` with `lastRunErrorCode = exceeded_repo_size_limit` and the repo is marked `ineligible`. Null until a scan has populated it. */
6370
6441
  sizeKb?: number | null;
6442
+ /**
6443
+ * @description Federated readiness: set when the repo was classified as a platform repository and scored with the reduced platform rubric profile. Null for service repos. The UI shows a "Platform repository" badge instead of comparing its score against service repos.
6444
+ * @enum {string|null}
6445
+ */
6446
+ platformArchetype?: "terraform_platform" | "gitops_platform" | "ci_templates" | "api_contracts_platform" | null;
6447
+ /** @description Federated readiness completeness for service repos: which linked platform roles (terraform/gitops/ci_templates/api_contracts, from the workspace delivery topology) are still missing scan evidence. Absent/null when no topology is configured or every declared role has fresh metadata (`complete: true`). */
6448
+ linkedRoleAssessment?: components["schemas"]["LinkedRoleAssessmentDto"] | null;
6449
+ };
6450
+ LinkedRolePendingDto: {
6451
+ /** @description Topology role key, e.g. terraform | gitops | ci_templates | api_contracts. */
6452
+ role: string;
6453
+ /** @description Platform repo (`owner/repo`) that must be scanned to satisfy this role. */
6454
+ providerSlug: string;
6455
+ /**
6456
+ * @description `no_scan` — the platform repo has no successful readiness run yet; `no_metadata_emitted` — it was scanned but emitted no linkage for this service (wrong archetype or scan predates federated readiness); `stale` — metadata is older than the hard TTL (30 days) and must be refreshed by re-scanning the platform repo.
6457
+ * @enum {string}
6458
+ */
6459
+ reason: "no_scan" | "no_metadata_emitted" | "stale";
6460
+ /**
6461
+ * Format: date-time
6462
+ * @description Latest succeeded scan of the platform repo, when one exists.
6463
+ */
6464
+ lastRunAt?: string | null;
6465
+ };
6466
+ LinkedRoleAssessmentDto: {
6467
+ complete: boolean;
6468
+ pending: components["schemas"]["LinkedRolePendingDto"][];
6371
6469
  };
6372
6470
  /** @description Single-repo detail response. Identical to RepoReadinessScoreDto except dimensions use DimensionScoreDetailDto (criteriaDetails required per dimension). */
6373
6471
  RepoReadinessScoreDetailDto: {
@@ -6419,6 +6517,13 @@ export interface components {
6419
6517
  }[] | null;
6420
6518
  /** @description GitHub-reported repository size in KB, refreshed on each scan. See RepoReadinessScoreDto.sizeKb. */
6421
6519
  sizeKb?: number | null;
6520
+ /**
6521
+ * @description See RepoReadinessScoreDto.platformArchetype.
6522
+ * @enum {string|null}
6523
+ */
6524
+ platformArchetype?: "terraform_platform" | "gitops_platform" | "ci_templates" | "api_contracts_platform" | null;
6525
+ /** @description See RepoReadinessScoreDto.linkedRoleAssessment. */
6526
+ linkedRoleAssessment?: components["schemas"]["LinkedRoleAssessmentDto"] | null;
6422
6527
  };
6423
6528
  AgenticFoundationDashboardSummaryDto: {
6424
6529
  repoCount: number;
@@ -7425,6 +7530,8 @@ export interface components {
7425
7530
  /** Format: date */
7426
7531
  weekStartIso: string;
7427
7532
  mergedPrs: number;
7533
+ /** @description Sum of ship-weight scores for merged PRs in this week bucket. */
7534
+ shipWeightSum?: number;
7428
7535
  ciFailRatePct: number;
7429
7536
  /** @description False when CI metrics were not available for this week bucket. */
7430
7537
  hasCiMetrics?: boolean;
@@ -7433,6 +7540,8 @@ export interface components {
7433
7540
  weeks: components["schemas"]["InsightsVelocityQualityWeek"][];
7434
7541
  targetFailRatePct: number;
7435
7542
  volumeGrowthPct: number;
7543
+ /** @description Ship-weight volume growth vs the prior equal-length window. */
7544
+ shipWeightVolumeGrowthPct?: number;
7436
7545
  };
7437
7546
  InsightsRecommendationsVelocityQualityResponse: components["schemas"]["InsightsRecommendationsVelocityQuality"] & {
7438
7547
  _meta: components["schemas"]["InsightsResponseMeta"];
@@ -8290,6 +8399,9 @@ export type JiraSourceConfigDto = components['schemas']['JiraSourceConfigDto'];
8290
8399
  export type AgentExecutionProviderDto = components['schemas']['AgentExecutionProviderDto'];
8291
8400
  export type PutCodeIntelligenceSettingsDto = components['schemas']['PutCodeIntelligenceSettingsDto'];
8292
8401
  export type WorkspaceConfigDto = components['schemas']['WorkspaceConfigDto'];
8402
+ export type DeliveryRoleConfigDto = components['schemas']['DeliveryRoleConfigDto'];
8403
+ export type RepoDeliveryOverrideDto = components['schemas']['RepoDeliveryOverrideDto'];
8404
+ export type DeliveryTopologyDto = components['schemas']['DeliveryTopologyDto'];
8293
8405
  export type TestConnectionResponseDto = components['schemas']['TestConnectionResponseDto'];
8294
8406
  export type CursorKeyUsageDto = components['schemas']['CursorKeyUsageDto'];
8295
8407
  export type AiToolSeatDto = components['schemas']['AiToolSeatDto'];
@@ -8463,6 +8575,8 @@ export type ReadinessScoreHistoryPointDto = components['schemas']['ReadinessScor
8463
8575
  export type ReadinessRepoScoreHistoryDto = components['schemas']['ReadinessRepoScoreHistoryDto'];
8464
8576
  export type WorkspaceReadinessScoreHistoryDto = components['schemas']['WorkspaceReadinessScoreHistoryDto'];
8465
8577
  export type RepoReadinessScoreDto = components['schemas']['RepoReadinessScoreDto'];
8578
+ export type LinkedRolePendingDto = components['schemas']['LinkedRolePendingDto'];
8579
+ export type LinkedRoleAssessmentDto = components['schemas']['LinkedRoleAssessmentDto'];
8466
8580
  export type RepoReadinessScoreDetailDto = components['schemas']['RepoReadinessScoreDetailDto'];
8467
8581
  export type AgenticFoundationDashboardSummaryDto = components['schemas']['AgenticFoundationDashboardSummaryDto'];
8468
8582
  export type PageMetaDto = components['schemas']['PageMetaDto'];
@@ -10241,6 +10355,50 @@ export interface operations {
10241
10355
  };
10242
10356
  };
10243
10357
  };
10358
+ putWorkspaceDeliveryTopology: {
10359
+ parameters: {
10360
+ query?: never;
10361
+ header?: never;
10362
+ path: {
10363
+ workspaceId: components["parameters"]["WorkspaceId"];
10364
+ };
10365
+ cookie?: never;
10366
+ };
10367
+ requestBody: {
10368
+ content: {
10369
+ "application/json": components["schemas"]["DeliveryTopologyDto"] | null;
10370
+ };
10371
+ };
10372
+ responses: {
10373
+ /** @description Topology persisted (or cleared). */
10374
+ 204: {
10375
+ headers: {
10376
+ [name: string]: unknown;
10377
+ };
10378
+ content?: never;
10379
+ };
10380
+ /** @description Invalid topology payload or unconnected repo referenced. */
10381
+ 400: {
10382
+ headers: {
10383
+ [name: string]: unknown;
10384
+ };
10385
+ content: {
10386
+ "application/json": components["schemas"]["ErrorMessageDto"];
10387
+ };
10388
+ };
10389
+ 401: components["responses"]["Unauthorized"];
10390
+ 403: components["responses"]["Forbidden"];
10391
+ /** @description Workspace does not exist or malformed workspaceId */
10392
+ 404: {
10393
+ headers: {
10394
+ [name: string]: unknown;
10395
+ };
10396
+ content: {
10397
+ "application/json": components["schemas"]["ErrorMessageDto"];
10398
+ };
10399
+ };
10400
+ };
10401
+ };
10244
10402
  putTenantSources: {
10245
10403
  parameters: {
10246
10404
  query?: never;