@thinkai/tai-api-contract 2.142.0 → 2.144.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.
@@ -2400,6 +2400,26 @@ export interface paths {
2400
2400
  patch?: never;
2401
2401
  trace?: never;
2402
2402
  };
2403
+ "/workspaces/{workspaceId}/report-center/exports": {
2404
+ parameters: {
2405
+ query?: never;
2406
+ header?: never;
2407
+ path?: never;
2408
+ cookie?: never;
2409
+ };
2410
+ get?: never;
2411
+ put?: never;
2412
+ /**
2413
+ * Record a Report Center PDF export
2414
+ * @description Workspace admin (or platform admin) records that a Report Center PDF was downloaded. Inserts one `report.exported` activity-log row with the request body as secret-free metadata. Does not store PDF bytes. Members who are not workspace admins receive 403.
2415
+ */
2416
+ post: operations["recordReportCenterExport"];
2417
+ delete?: never;
2418
+ options?: never;
2419
+ head?: never;
2420
+ patch?: never;
2421
+ trace?: never;
2422
+ };
2403
2423
  "/workspaces/{workspaceId}/activity": {
2404
2424
  parameters: {
2405
2425
  query?: never;
@@ -2924,6 +2944,50 @@ export interface paths {
2924
2944
  patch?: never;
2925
2945
  trace?: never;
2926
2946
  };
2947
+ "/workspaces/{workspaceId}/code-intelligence/agent-md": {
2948
+ parameters: {
2949
+ query?: never;
2950
+ header?: never;
2951
+ path?: never;
2952
+ cookie?: never;
2953
+ };
2954
+ /**
2955
+ * Read the workspace agent.md
2956
+ * @description Any workspace member. Returns the persisted workspace agent file, or null fields when none has been written. 403 `code_intelligence_disabled` when Engineering Context Graph is off.
2957
+ */
2958
+ get: operations["getCodeIntelligenceAgentMd"];
2959
+ /**
2960
+ * Save an admin edit of the workspace agent.md
2961
+ * @description Admin only. Body is 1 to 12,000 characters. Saves source `admin`. Auto-generate and the cadence tick do not overwrite this text until an admin regenerates it. A non-admin receives 403.
2962
+ */
2963
+ put: operations["putCodeIntelligenceAgentMd"];
2964
+ post?: never;
2965
+ delete?: never;
2966
+ options?: never;
2967
+ head?: never;
2968
+ patch?: never;
2969
+ trace?: never;
2970
+ };
2971
+ "/workspaces/{workspaceId}/code-intelligence/agent-md/regenerate": {
2972
+ parameters: {
2973
+ query?: never;
2974
+ header?: never;
2975
+ path?: never;
2976
+ cookie?: never;
2977
+ };
2978
+ get?: never;
2979
+ put?: never;
2980
+ /**
2981
+ * Rewrite workspace agent.md from ready code graphs
2982
+ * @description Admin only. Rewrites the file from current ready eligible graphs and sets source `generated`. Returns 409 `agent_md_not_ready` when no eligible repository index is ready. Does not call an LLM and does not clone repositories.
2983
+ */
2984
+ post: operations["regenerateCodeIntelligenceAgentMd"];
2985
+ delete?: never;
2986
+ options?: never;
2987
+ head?: never;
2988
+ patch?: never;
2989
+ trace?: never;
2990
+ };
2927
2991
  "/workspaces/{workspaceId}/code-intelligence/token-usage/summary": {
2928
2992
  parameters: {
2929
2993
  query?: never;
@@ -3088,7 +3152,10 @@ export interface paths {
3088
3152
  };
3089
3153
  get?: never;
3090
3154
  put?: never;
3091
- /** Enqueue indexing for all (or selected) readiness GitHub repos */
3155
+ /**
3156
+ * Enqueue indexing for all (or selected) readiness GitHub repos
3157
+ * @description `indexOnly: true` enqueues a graph-only job. `{ "indexOnly": true, "force": true }` with no `repoIds` is admin-only and opens one index wave for every eligible GitHub repository. A single-repo indexOnly sync does not open a wave. Members who send that admin body receive 403.
3158
+ */
3092
3159
  post: operations["syncCodeChatIndexes"];
3093
3160
  delete?: never;
3094
3161
  options?: never;
@@ -3096,6 +3163,26 @@ export interface paths {
3096
3163
  patch?: never;
3097
3164
  trace?: never;
3098
3165
  };
3166
+ "/workspaces/{workspaceId}/code-chat/readiness": {
3167
+ parameters: {
3168
+ query?: never;
3169
+ header?: never;
3170
+ path?: never;
3171
+ cookie?: never;
3172
+ };
3173
+ /**
3174
+ * Workspace chat readiness
3175
+ * @description Any workspace member. 403 `code_intelligence_disabled` when Engineering Context Graph is off. `status` is `indexing`, `generating_agent_md`, `failed`, or `ready`. Chat stays closed until `ready`: create thread and post message return `409 chat_not_ready` with `progressMessage` when status is not ready. An open index wave reports `indexing` until every job in that wave is terminal.
3176
+ */
3177
+ get: operations["getCodeChatReadiness"];
3178
+ put?: never;
3179
+ post?: never;
3180
+ delete?: never;
3181
+ options?: never;
3182
+ head?: never;
3183
+ patch?: never;
3184
+ trace?: never;
3185
+ };
3099
3186
  "/workspaces/{workspaceId}/code-chat/indexes/{indexId}": {
3100
3187
  parameters: {
3101
3188
  query?: never;
@@ -4267,6 +4354,8 @@ export interface components {
4267
4354
  error: string;
4268
4355
  /** @description Machine-readable error code when present (for example `last_admin`). */
4269
4356
  code?: string;
4357
+ /** @description Human-readable progress when `code` is `chat_not_ready` (same text as `error` for that response). */
4358
+ progressMessage?: string;
4270
4359
  };
4271
4360
  TeamMemberDto: {
4272
4361
  /** Format: uuid */
@@ -4825,6 +4914,13 @@ export interface components {
4825
4914
  provider?: components["schemas"]["AgentExecutionProviderDto"] | null;
4826
4915
  cursorModel?: string | null;
4827
4916
  claudeModel?: string | null;
4917
+ /** @description When false, turning Engineering Context Graph on and the cadence tick do not enqueue index jobs. Stored graphs, wiki pages, and agent.md stay. Defaults to true. */
4918
+ indexingEnabled?: boolean;
4919
+ /**
4920
+ * @description How often the code-knowledge worker enqueues an index-only wave for eligible GitHub repositories. `manual` never ticks. Defaults to `daily`.
4921
+ * @enum {string}
4922
+ */
4923
+ indexingCadence?: "daily" | "weekly" | "manual";
4828
4924
  /** @description Deep Wiki documentation focus for this workspace. Steers topic planning when generating Engineering Context wiki pages. Optional in-repo `.aidrivensdlc/wiki.json` still overrides the topic outline when present. */
4829
4925
  wikiGuidance?: components["schemas"]["CodeWikiGuidanceDto"] | null;
4830
4926
  };
@@ -4834,6 +4930,30 @@ export interface components {
4834
4930
  /** @description Title of the parent topic for hierarchy (must match another topic title). */
4835
4931
  parentTitle?: string | null;
4836
4932
  };
4933
+ PutCodeIntelligenceAgentMdDto: {
4934
+ body: string;
4935
+ };
4936
+ CodeIntelligenceAgentMdDto: {
4937
+ body: string | null;
4938
+ /** @enum {string|null} */
4939
+ source: "generated" | "admin" | null;
4940
+ /** Format: date-time */
4941
+ updatedAt: string | null;
4942
+ };
4943
+ CodeChatReadinessDto: {
4944
+ /** @enum {string} */
4945
+ status: "indexing" | "generating_agent_md" | "failed" | "ready";
4946
+ progressMessage: string;
4947
+ eligibleCount: number;
4948
+ readyCount: number;
4949
+ failedCount: number;
4950
+ inProgressCount: number;
4951
+ indexingEnabled: boolean;
4952
+ /** @enum {string} */
4953
+ indexingCadence: "daily" | "weekly" | "manual";
4954
+ /** @enum {string|null} */
4955
+ agentMdSource: "generated" | "admin" | null;
4956
+ };
4837
4957
  CodeWikiGuidanceDto: {
4838
4958
  /**
4839
4959
  * @description Free-form notes describing what the wiki should emphasize.
@@ -4868,6 +4988,13 @@ export interface components {
4868
4988
  codeIntelligenceCursorModel?: string | null;
4869
4989
  /** @description Optional Claude model override for Code Intelligence (null/empty → env default). */
4870
4990
  codeIntelligenceClaudeModel?: string | null;
4991
+ /** @description When false, enable-enqueue and the cadence tick do not start an index wave. Defaults to true. */
4992
+ codeIntelligenceIndexingEnabled?: boolean;
4993
+ /**
4994
+ * @description Index wave cadence. `manual` does not tick. Defaults to `daily`.
4995
+ * @enum {string}
4996
+ */
4997
+ codeIntelligenceIndexingCadence?: "daily" | "weekly" | "manual";
4871
4998
  /** @description True when a dedicated `code_intelligence` source has a stored executionToken. */
4872
4999
  hasCodeIntelligenceExecutionToken?: boolean;
4873
5000
  /** @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`. */
@@ -8098,7 +8225,31 @@ export interface components {
8098
8225
  * @description Type of workspace lifecycle event.
8099
8226
  * @enum {string}
8100
8227
  */
8101
- 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" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "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" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed";
8228
+ 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" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "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" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported";
8229
+ /** @description Metadata for a successful Report Center PDF download. Secret-free; no table payloads. Recorded as `report.exported` on the workspace activity log. */
8230
+ ReportCenterExportRecordBodyDto: {
8231
+ /** @description Applied insights range id (e.g. `30d`, `cr:2026-01-01:2026-01-31`). */
8232
+ rangeId: string;
8233
+ department: string;
8234
+ team: string;
8235
+ selectedProductivityTeamIds?: string[];
8236
+ sectionIds: string[];
8237
+ /** @description Preset id used as the starting point (e.g. `leadership`, `productivity`, `full`, `custom`). */
8238
+ preset: string;
8239
+ /** @description True when the admin changed section checks after picking a preset. */
8240
+ customized: boolean;
8241
+ /** @description IANA timezone printed on the PDF cover. */
8242
+ timezone: string;
8243
+ filename: string;
8244
+ providerIds?: string[];
8245
+ repoIds?: string[];
8246
+ };
8247
+ ReportCenterExportRecordResponseDto: {
8248
+ /** @enum {boolean} */
8249
+ ok: true;
8250
+ /** Format: uuid */
8251
+ activityEntryId: string;
8252
+ };
8102
8253
  ActivityLogActorDto: {
8103
8254
  /** Format: uuid */
8104
8255
  userId: string;
@@ -8946,7 +9097,7 @@ export interface components {
8946
9097
  */
8947
9098
  force: boolean;
8948
9099
  /**
8949
- * @description When true, each enqueued knowledge job clones the repository, builds the code graph, marks the index ready, and finishes with wiki tracks skipped. It does not write wiki pages and does not require an execution key. Omit or false to keep the full pipeline, including wiki. Distinct from skipLlm, which still writes a skeleton wiki. A job that is already queued or running keeps the options it was enqueued with.
9100
+ * @description When true, each enqueued knowledge job clones the repository, builds the code graph, marks the index ready, and finishes with wiki tracks skipped. It does not write wiki pages and does not require an execution key. Omit or false to keep the full pipeline, including wiki. Distinct from skipLlm, which still writes a skeleton wiki. A job that is already queued or running keeps the options it was enqueued with. Together with `force: true` and no `repoIds`, this opens an admin index wave.
8950
9101
  * @default false
8951
9102
  */
8952
9103
  indexOnly: boolean;
@@ -8962,10 +9113,10 @@ export interface components {
8962
9113
  repoId: string;
8963
9114
  repoName: string;
8964
9115
  /**
8965
- * @description Stable machine-readable skip reason
9116
+ * @description Stable machine-readable skip reason. `ecg_source_off` covers a source turned off for Engineering Context Graph and non-GitHub providers that stay listed but are never indexed.
8966
9117
  * @enum {string}
8967
9118
  */
8968
- code: "repo_ineligible" | "indexed_recently" | "index_in_progress";
9119
+ code: "repo_ineligible" | "indexed_recently" | "index_in_progress" | "ecg_source_off";
8969
9120
  };
8970
9121
  CodeChatThreadDto: {
8971
9122
  /** Format: uuid */
@@ -8978,6 +9129,11 @@ export interface components {
8978
9129
  repoIds: string[];
8979
9130
  revisionRef?: string | null;
8980
9131
  title: string;
9132
+ /**
9133
+ * @description `workspace` when `repoIds` is empty or has more than one id (Conversations). `repo` when exactly one repository is bound (System / Wiki).
9134
+ * @enum {string}
9135
+ */
9136
+ scope: "workspace" | "repo";
8981
9137
  /** Format: date-time */
8982
9138
  createdAt: string;
8983
9139
  /** Format: date-time */
@@ -8987,12 +9143,17 @@ export interface components {
8987
9143
  items: components["schemas"]["CodeChatThreadDto"][];
8988
9144
  };
8989
9145
  CodeChatCreateThreadBodyDto: {
9146
+ /**
9147
+ * @description Create a workspace conversation with empty `repoIds`. Does not reuse an older thread. Requires chat readiness and an execution key.
9148
+ * @enum {string}
9149
+ */
9150
+ scope?: "workspace";
8990
9151
  /**
8991
9152
  * Format: uuid
8992
9153
  * @description Legacy single-index bind; prefer repoIds for workspace scope.
8993
9154
  */
8994
9155
  indexId?: string;
8995
- /** @description Empty or omitted = all ready repos. */
9156
+ /** @description Empty or omitted = all ready repos. Ignored when scope is workspace. */
8996
9157
  repoIds?: string[];
8997
9158
  revisionRef?: string;
8998
9159
  title?: string;
@@ -9039,10 +9200,10 @@ export interface components {
9039
9200
  };
9040
9201
  CodeChatMessageReplyDto: components["schemas"]["CodeChatMessageDto"] & {
9041
9202
  /**
9042
- * @description How the assistant answer was produced. `inventory` returns a deterministic catalog (APIs or modules) rather than LLM synthesis.
9203
+ * @description How the assistant answer was produced. `inventory` returns a deterministic catalog (APIs or modules) rather than LLM synthesis. `failed` is a short assistant message after provider timeout or error (no retrieval substitute).
9043
9204
  * @enum {string}
9044
9205
  */
9045
- mode: "llm" | "retrieval" | "inventory";
9206
+ mode: "llm" | "retrieval" | "inventory" | "failed";
9046
9207
  /** @description Optional typed inventory payload for rich UI tables */
9047
9208
  structured?: components["schemas"]["CodeChatStructuredBlockDto"];
9048
9209
  /** @description True when wiki pages from one or more repos contributed to LLM context */
@@ -10170,6 +10331,8 @@ export interface components {
10170
10331
  InsightsRecommendationsDateTo: string;
10171
10332
  /** @description AI provider ids (e.g. `cursor`, `copilot`). Empty/omitted = all configured providers. */
10172
10333
  InsightsRecommendationsProvider: string[];
10334
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
10335
+ InsightsAiUsageProvider: ("cursor" | "claude")[];
10173
10336
  /** @description Include contributors / AI rows not mapped to a team. */
10174
10337
  InsightsRecommendationsIncludeUnmapped: boolean;
10175
10338
  /** @description Include bot accounts in PR/CI stats. */
@@ -10274,6 +10437,9 @@ export type JiraSourceConfigDto = components['schemas']['JiraSourceConfigDto'];
10274
10437
  export type AgentExecutionProviderDto = components['schemas']['AgentExecutionProviderDto'];
10275
10438
  export type PutCodeIntelligenceSettingsDto = components['schemas']['PutCodeIntelligenceSettingsDto'];
10276
10439
  export type CodeWikiGuidanceTopicDto = components['schemas']['CodeWikiGuidanceTopicDto'];
10440
+ export type PutCodeIntelligenceAgentMdDto = components['schemas']['PutCodeIntelligenceAgentMdDto'];
10441
+ export type CodeIntelligenceAgentMdDto = components['schemas']['CodeIntelligenceAgentMdDto'];
10442
+ export type CodeChatReadinessDto = components['schemas']['CodeChatReadinessDto'];
10277
10443
  export type CodeWikiGuidanceDto = components['schemas']['CodeWikiGuidanceDto'];
10278
10444
  export type WorkspaceConfigDto = components['schemas']['WorkspaceConfigDto'];
10279
10445
  export type DeliveryRoleConfigDto = components['schemas']['DeliveryRoleConfigDto'];
@@ -10558,6 +10724,8 @@ export type PutAgenticFoundationRepoScopeAppliedDto = components['schemas']['Put
10558
10724
  export type PutAgenticFoundationRepoScopeFailureDto = components['schemas']['PutAgenticFoundationRepoScopeFailureDto'];
10559
10725
  export type PutAgenticFoundationRepoScopeResponseDto = components['schemas']['PutAgenticFoundationRepoScopeResponseDto'];
10560
10726
  export type ActivityLogEventTypeDto = components['schemas']['ActivityLogEventTypeDto'];
10727
+ export type ReportCenterExportRecordBodyDto = components['schemas']['ReportCenterExportRecordBodyDto'];
10728
+ export type ReportCenterExportRecordResponseDto = components['schemas']['ReportCenterExportRecordResponseDto'];
10561
10729
  export type ActivityLogActorDto = components['schemas']['ActivityLogActorDto'];
10562
10730
  export type ActivityLogEntryDto = components['schemas']['ActivityLogEntryDto'];
10563
10731
  export type WorkspaceAbsenceDto = components['schemas']['WorkspaceAbsenceDto'];
@@ -10769,6 +10937,7 @@ export type ParameterInsightsRecommendationsTeams = components['parameters']['In
10769
10937
  export type ParameterInsightsRecommendationsDateFrom = components['parameters']['InsightsRecommendationsDateFrom'];
10770
10938
  export type ParameterInsightsRecommendationsDateTo = components['parameters']['InsightsRecommendationsDateTo'];
10771
10939
  export type ParameterInsightsRecommendationsProvider = components['parameters']['InsightsRecommendationsProvider'];
10940
+ export type ParameterInsightsAiUsageProvider = components['parameters']['InsightsAiUsageProvider'];
10772
10941
  export type ParameterInsightsRecommendationsIncludeUnmapped = components['parameters']['InsightsRecommendationsIncludeUnmapped'];
10773
10942
  export type ParameterInsightsRecommendationsIncludeBots = components['parameters']['InsightsRecommendationsIncludeBots'];
10774
10943
  export type ParameterPaginationLimit = components['parameters']['PaginationLimit'];
@@ -13306,6 +13475,8 @@ export interface operations {
13306
13475
  to?: components["parameters"]["InsightsProductivityTo"];
13307
13476
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13308
13477
  department?: components["parameters"]["InsightsDepartmentFilter"];
13478
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13479
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13309
13480
  /** @description Team name filter; send `All teams` to include every team. */
13310
13481
  team?: string;
13311
13482
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -13362,6 +13533,8 @@ export interface operations {
13362
13533
  to?: components["parameters"]["InsightsProductivityTo"];
13363
13534
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13364
13535
  department?: components["parameters"]["InsightsDepartmentFilter"];
13536
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13537
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13365
13538
  /** @description Team name filter; send `All teams` to include every team. */
13366
13539
  team?: string;
13367
13540
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -13418,6 +13591,8 @@ export interface operations {
13418
13591
  to?: components["parameters"]["InsightsProductivityTo"];
13419
13592
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13420
13593
  department?: components["parameters"]["InsightsDepartmentFilter"];
13594
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13595
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13421
13596
  /** @description Team name filter; send `All teams` to include every team. */
13422
13597
  team?: string;
13423
13598
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -13474,6 +13649,8 @@ export interface operations {
13474
13649
  to?: components["parameters"]["InsightsProductivityTo"];
13475
13650
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13476
13651
  department?: components["parameters"]["InsightsDepartmentFilter"];
13652
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13653
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13477
13654
  /** @description Team name filter; send `All teams` to include every team. */
13478
13655
  team?: string;
13479
13656
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -13530,6 +13707,8 @@ export interface operations {
13530
13707
  to?: components["parameters"]["InsightsProductivityTo"];
13531
13708
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13532
13709
  department?: components["parameters"]["InsightsDepartmentFilter"];
13710
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13711
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13533
13712
  /** @description Team name filter; send `All teams` to include every team. */
13534
13713
  team?: string;
13535
13714
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -13650,6 +13829,8 @@ export interface operations {
13650
13829
  to?: components["parameters"]["InsightsProductivityTo"];
13651
13830
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13652
13831
  department?: components["parameters"]["InsightsDepartmentFilter"];
13832
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13833
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13653
13834
  /** @description Team name filter; send `All teams` to include every team. */
13654
13835
  team?: string;
13655
13836
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -13706,6 +13887,8 @@ export interface operations {
13706
13887
  to?: components["parameters"]["InsightsProductivityTo"];
13707
13888
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13708
13889
  department?: components["parameters"]["InsightsDepartmentFilter"];
13890
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13891
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13709
13892
  /** @description Team name filter; send `All teams` to include every team. */
13710
13893
  team?: string;
13711
13894
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -13762,6 +13945,8 @@ export interface operations {
13762
13945
  to?: components["parameters"]["InsightsProductivityTo"];
13763
13946
  /** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
13764
13947
  department?: components["parameters"]["InsightsDepartmentFilter"];
13948
+ /** @description AI provider ids to include. Repeat the parameter or send comma-separated values. Empty or omitted includes all supported providers. */
13949
+ provider?: components["parameters"]["InsightsAiUsageProvider"];
13765
13950
  /** @description Team name filter; send `All teams` to include every team. */
13766
13951
  team?: string;
13767
13952
  /** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
@@ -17164,6 +17349,61 @@ export interface operations {
17164
17349
  };
17165
17350
  };
17166
17351
  };
17352
+ recordReportCenterExport: {
17353
+ parameters: {
17354
+ query?: never;
17355
+ header?: never;
17356
+ path: {
17357
+ workspaceId: components["parameters"]["WorkspaceId"];
17358
+ };
17359
+ cookie?: never;
17360
+ };
17361
+ requestBody: {
17362
+ content: {
17363
+ "application/json": components["schemas"]["ReportCenterExportRecordBodyDto"];
17364
+ };
17365
+ };
17366
+ responses: {
17367
+ /** @description Export recorded */
17368
+ 201: {
17369
+ headers: {
17370
+ [name: string]: unknown;
17371
+ };
17372
+ content: {
17373
+ "application/json": components["schemas"]["ReportCenterExportRecordResponseDto"];
17374
+ };
17375
+ };
17376
+ /** @description Invalid body */
17377
+ 400: {
17378
+ headers: {
17379
+ [name: string]: unknown;
17380
+ };
17381
+ content: {
17382
+ "application/json": components["schemas"]["ErrorMessageDto"];
17383
+ };
17384
+ };
17385
+ 401: components["responses"]["Unauthorized"];
17386
+ 403: components["responses"]["Forbidden"];
17387
+ /** @description Workspace does not exist */
17388
+ 404: {
17389
+ headers: {
17390
+ [name: string]: unknown;
17391
+ };
17392
+ content: {
17393
+ "application/json": components["schemas"]["ErrorMessageDto"];
17394
+ };
17395
+ };
17396
+ /** @description Activity log is not supported by this backend build */
17397
+ 501: {
17398
+ headers: {
17399
+ [name: string]: unknown;
17400
+ };
17401
+ content: {
17402
+ "application/json": components["schemas"]["ErrorMessageDto"];
17403
+ };
17404
+ };
17405
+ };
17406
+ };
17167
17407
  listWorkspaceActivity: {
17168
17408
  parameters: {
17169
17409
  query?: {
@@ -17175,7 +17415,7 @@ export interface operations {
17175
17415
  order?: components["parameters"]["PaginationOrder"];
17176
17416
  /** @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. */
17177
17417
  sort?: "when" | "who" | "what" | "why" | "where";
17178
- /** @description Coarse product-area grouping filter (#156). `integration` = GitHub + AI-tool key events; `agentic_foundation` = repos, readiness scans, fixes; `workspace_team` = members + HRIS; `productivity` = productivity ingest lifecycle events. Omit (or pass `all`) for every area. */
17418
+ /** @description Coarse product-area grouping filter (#156). `integration` = GitHub + AI-tool key events; `agentic_foundation` = repos, readiness scans, fixes; `workspace_team` = members + HRIS + report exports; `productivity` = productivity ingest lifecycle events. Omit (or pass `all`) for every area. */
17179
17419
  productArea?: "integration" | "agentic_foundation" | "workspace_team" | "productivity" | "all";
17180
17420
  /** @description Filter to a specific event type. */
17181
17421
  eventType?: components["schemas"]["ActivityLogEventTypeDto"];
@@ -18551,6 +18791,130 @@ export interface operations {
18551
18791
  403: components["responses"]["Forbidden"];
18552
18792
  };
18553
18793
  };
18794
+ getCodeIntelligenceAgentMd: {
18795
+ parameters: {
18796
+ query?: never;
18797
+ header?: never;
18798
+ path: {
18799
+ workspaceId: components["parameters"]["WorkspaceId"];
18800
+ };
18801
+ cookie?: never;
18802
+ };
18803
+ requestBody?: never;
18804
+ responses: {
18805
+ /** @description Persisted agent.md */
18806
+ 200: {
18807
+ headers: {
18808
+ [name: string]: unknown;
18809
+ };
18810
+ content: {
18811
+ "application/json": components["schemas"]["CodeIntelligenceAgentMdDto"];
18812
+ };
18813
+ };
18814
+ 401: components["responses"]["Unauthorized"];
18815
+ /** @description Engineering Context Graph is off, or the caller is not a member */
18816
+ 403: {
18817
+ headers: {
18818
+ [name: string]: unknown;
18819
+ };
18820
+ content: {
18821
+ "application/json": components["schemas"]["ErrorMessageDto"];
18822
+ };
18823
+ };
18824
+ };
18825
+ };
18826
+ putCodeIntelligenceAgentMd: {
18827
+ parameters: {
18828
+ query?: never;
18829
+ header?: never;
18830
+ path: {
18831
+ workspaceId: components["parameters"]["WorkspaceId"];
18832
+ };
18833
+ cookie?: never;
18834
+ };
18835
+ requestBody: {
18836
+ content: {
18837
+ "application/json": components["schemas"]["PutCodeIntelligenceAgentMdDto"];
18838
+ };
18839
+ };
18840
+ responses: {
18841
+ /** @description Saved agent.md */
18842
+ 200: {
18843
+ headers: {
18844
+ [name: string]: unknown;
18845
+ };
18846
+ content: {
18847
+ "application/json": components["schemas"]["CodeIntelligenceAgentMdDto"];
18848
+ };
18849
+ };
18850
+ /** @description Body missing or outside 1 to 12,000 characters */
18851
+ 400: {
18852
+ headers: {
18853
+ [name: string]: unknown;
18854
+ };
18855
+ content: {
18856
+ "application/json": components["schemas"]["ErrorMessageDto"];
18857
+ };
18858
+ };
18859
+ 401: components["responses"]["Unauthorized"];
18860
+ /** @description Caller is not an admin, or Engineering Context Graph is off */
18861
+ 403: {
18862
+ headers: {
18863
+ [name: string]: unknown;
18864
+ };
18865
+ content: {
18866
+ "application/json": components["schemas"]["ErrorMessageDto"];
18867
+ };
18868
+ };
18869
+ };
18870
+ };
18871
+ regenerateCodeIntelligenceAgentMd: {
18872
+ parameters: {
18873
+ query?: never;
18874
+ header?: never;
18875
+ path: {
18876
+ workspaceId: components["parameters"]["WorkspaceId"];
18877
+ };
18878
+ cookie?: never;
18879
+ };
18880
+ requestBody?: never;
18881
+ responses: {
18882
+ /** @description Regenerated agent.md */
18883
+ 200: {
18884
+ headers: {
18885
+ [name: string]: unknown;
18886
+ };
18887
+ content: {
18888
+ "application/json": components["schemas"]["CodeIntelligenceAgentMdDto"];
18889
+ };
18890
+ };
18891
+ 401: components["responses"]["Unauthorized"];
18892
+ /** @description Caller is not an admin, or Engineering Context Graph is off */
18893
+ 403: {
18894
+ headers: {
18895
+ [name: string]: unknown;
18896
+ };
18897
+ content: {
18898
+ "application/json": components["schemas"]["ErrorMessageDto"];
18899
+ };
18900
+ };
18901
+ /** @description No ready eligible index */
18902
+ 409: {
18903
+ headers: {
18904
+ [name: string]: unknown;
18905
+ };
18906
+ content: {
18907
+ /**
18908
+ * @example {
18909
+ * "error": "No ready repository index is available to write the workspace agent file.",
18910
+ * "code": "agent_md_not_ready"
18911
+ * }
18912
+ */
18913
+ "application/json": components["schemas"]["ErrorMessageDto"];
18914
+ };
18915
+ };
18916
+ };
18917
+ };
18554
18918
  getCodeIntelligenceTokenUsageSummary: {
18555
18919
  parameters: {
18556
18920
  query?: {
@@ -18950,6 +19314,53 @@ export interface operations {
18950
19314
  };
18951
19315
  };
18952
19316
  401: components["responses"]["Unauthorized"];
19317
+ /** @description Engineering Context Graph is off, or a member sent the admin force body (`indexOnly` and `force` with no `repoIds`). */
19318
+ 403: {
19319
+ headers: {
19320
+ [name: string]: unknown;
19321
+ };
19322
+ content: {
19323
+ "application/json": components["schemas"]["ErrorMessageDto"];
19324
+ };
19325
+ };
19326
+ };
19327
+ };
19328
+ getCodeChatReadiness: {
19329
+ parameters: {
19330
+ query?: never;
19331
+ header?: never;
19332
+ path: {
19333
+ workspaceId: components["parameters"]["WorkspaceId"];
19334
+ };
19335
+ cookie?: never;
19336
+ };
19337
+ requestBody?: never;
19338
+ responses: {
19339
+ /** @description Readiness snapshot */
19340
+ 200: {
19341
+ headers: {
19342
+ [name: string]: unknown;
19343
+ };
19344
+ content: {
19345
+ "application/json": components["schemas"]["CodeChatReadinessDto"];
19346
+ };
19347
+ };
19348
+ 401: components["responses"]["Unauthorized"];
19349
+ /** @description Engineering Context Graph is off */
19350
+ 403: {
19351
+ headers: {
19352
+ [name: string]: unknown;
19353
+ };
19354
+ content: {
19355
+ /**
19356
+ * @example {
19357
+ * "error": "Code Intelligence is disabled for this workspace",
19358
+ * "code": "code_intelligence_disabled"
19359
+ * }
19360
+ */
19361
+ "application/json": components["schemas"]["ErrorMessageDto"];
19362
+ };
19363
+ };
18953
19364
  };
18954
19365
  };
18955
19366
  getCodeChatIndex: {
@@ -19033,6 +19444,15 @@ export interface operations {
19033
19444
  };
19034
19445
  };
19035
19446
  401: components["responses"]["Unauthorized"];
19447
+ /** @description Engineering Context Graph is off */
19448
+ 403: {
19449
+ headers: {
19450
+ [name: string]: unknown;
19451
+ };
19452
+ content: {
19453
+ "application/json": components["schemas"]["ErrorMessageDto"];
19454
+ };
19455
+ };
19036
19456
  /** @description Not found */
19037
19457
  404: {
19038
19458
  headers: {
@@ -19042,12 +19462,23 @@ export interface operations {
19042
19462
  "application/json": components["schemas"]["ErrorMessageDto"];
19043
19463
  };
19044
19464
  };
19045
- /** @description Index not ready */
19465
+ /** @description Chat not ready, or no ready corpus for a repo-scoped thread */
19046
19466
  409: {
19047
19467
  headers: {
19048
19468
  [name: string]: unknown;
19049
19469
  };
19050
- content?: never;
19470
+ content: {
19471
+ "application/json": components["schemas"]["ErrorMessageDto"];
19472
+ };
19473
+ };
19474
+ /** @description Execution key required */
19475
+ 422: {
19476
+ headers: {
19477
+ [name: string]: unknown;
19478
+ };
19479
+ content: {
19480
+ "application/json": components["schemas"]["ErrorMessageDto"];
19481
+ };
19051
19482
  };
19052
19483
  };
19053
19484
  };
@@ -19139,6 +19570,15 @@ export interface operations {
19139
19570
  };
19140
19571
  };
19141
19572
  401: components["responses"]["Unauthorized"];
19573
+ /** @description Engineering Context Graph is off */
19574
+ 403: {
19575
+ headers: {
19576
+ [name: string]: unknown;
19577
+ };
19578
+ content: {
19579
+ "application/json": components["schemas"]["ErrorMessageDto"];
19580
+ };
19581
+ };
19142
19582
  /** @description Not found */
19143
19583
  404: {
19144
19584
  headers: {
@@ -19148,12 +19588,23 @@ export interface operations {
19148
19588
  "application/json": components["schemas"]["ErrorMessageDto"];
19149
19589
  };
19150
19590
  };
19151
- /** @description Index not ready */
19591
+ /** @description Chat not ready, or no ready corpus in thread scope */
19152
19592
  409: {
19153
19593
  headers: {
19154
19594
  [name: string]: unknown;
19155
19595
  };
19156
- content?: never;
19596
+ content: {
19597
+ "application/json": components["schemas"]["ErrorMessageDto"];
19598
+ };
19599
+ };
19600
+ /** @description Execution key required */
19601
+ 422: {
19602
+ headers: {
19603
+ [name: string]: unknown;
19604
+ };
19605
+ content: {
19606
+ "application/json": components["schemas"]["ErrorMessageDto"];
19607
+ };
19157
19608
  };
19158
19609
  };
19159
19610
  };