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