@thinkai/tai-api-contract 2.143.0 → 2.145.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.
@@ -2943,6 +2943,50 @@ export interface paths {
2943
2943
  patch?: never;
2944
2944
  trace?: never;
2945
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
+ };
2946
2990
  "/workspaces/{workspaceId}/code-intelligence/token-usage/summary": {
2947
2991
  parameters: {
2948
2992
  query?: never;
@@ -3107,7 +3151,10 @@ export interface paths {
3107
3151
  };
3108
3152
  get?: never;
3109
3153
  put?: never;
3110
- /** 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
+ */
3111
3158
  post: operations["syncCodeChatIndexes"];
3112
3159
  delete?: never;
3113
3160
  options?: never;
@@ -3115,6 +3162,26 @@ export interface paths {
3115
3162
  patch?: never;
3116
3163
  trace?: never;
3117
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
+ };
3118
3185
  "/workspaces/{workspaceId}/code-chat/indexes/{indexId}": {
3119
3186
  parameters: {
3120
3187
  query?: never;
@@ -4286,6 +4353,8 @@ export interface components {
4286
4353
  error: string;
4287
4354
  /** @description Machine-readable error code when present (for example `last_admin`). */
4288
4355
  code?: string;
4356
+ /** @description Human-readable progress when `code` is `chat_not_ready` (same text as `error` for that response). */
4357
+ progressMessage?: string;
4289
4358
  };
4290
4359
  TeamMemberDto: {
4291
4360
  /** Format: uuid */
@@ -4844,6 +4913,13 @@ export interface components {
4844
4913
  provider?: components["schemas"]["AgentExecutionProviderDto"] | null;
4845
4914
  cursorModel?: string | null;
4846
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";
4847
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. */
4848
4924
  wikiGuidance?: components["schemas"]["CodeWikiGuidanceDto"] | null;
4849
4925
  };
@@ -4853,6 +4929,30 @@ export interface components {
4853
4929
  /** @description Title of the parent topic for hierarchy (must match another topic title). */
4854
4930
  parentTitle?: string | null;
4855
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
+ };
4856
4956
  CodeWikiGuidanceDto: {
4857
4957
  /**
4858
4958
  * @description Free-form notes describing what the wiki should emphasize.
@@ -4887,6 +4987,13 @@ export interface components {
4887
4987
  codeIntelligenceCursorModel?: string | null;
4888
4988
  /** @description Optional Claude model override for Code Intelligence (null/empty → env default). */
4889
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";
4890
4997
  /** @description True when a dedicated `code_intelligence` source has a stored executionToken. */
4891
4998
  hasCodeIntelligenceExecutionToken?: boolean;
4892
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`. */
@@ -8133,6 +8240,12 @@ export interface components {
8133
8240
  /** @description IANA timezone printed on the PDF cover. */
8134
8241
  timezone: string;
8135
8242
  filename: string;
8243
+ /**
8244
+ * @description Export audience recorded for audit. `external` means the client generated a share-safe PDF with organizational identifiers redacted. Omitted legacy requests are recorded as `internal`.
8245
+ * @default internal
8246
+ * @enum {string}
8247
+ */
8248
+ shareMode: "internal" | "external";
8136
8249
  providerIds?: string[];
8137
8250
  repoIds?: string[];
8138
8251
  };
@@ -8989,7 +9102,7 @@ export interface components {
8989
9102
  */
8990
9103
  force: boolean;
8991
9104
  /**
8992
- * @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.
9105
+ * @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.
8993
9106
  * @default false
8994
9107
  */
8995
9108
  indexOnly: boolean;
@@ -9005,10 +9118,10 @@ export interface components {
9005
9118
  repoId: string;
9006
9119
  repoName: string;
9007
9120
  /**
9008
- * @description Stable machine-readable skip reason
9121
+ * @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.
9009
9122
  * @enum {string}
9010
9123
  */
9011
- code: "repo_ineligible" | "indexed_recently" | "index_in_progress";
9124
+ code: "repo_ineligible" | "indexed_recently" | "index_in_progress" | "ecg_source_off";
9012
9125
  };
9013
9126
  CodeChatThreadDto: {
9014
9127
  /** Format: uuid */
@@ -9021,6 +9134,11 @@ export interface components {
9021
9134
  repoIds: string[];
9022
9135
  revisionRef?: string | null;
9023
9136
  title: string;
9137
+ /**
9138
+ * @description `workspace` when `repoIds` is empty or has more than one id (Conversations). `repo` when exactly one repository is bound (System / Wiki).
9139
+ * @enum {string}
9140
+ */
9141
+ scope: "workspace" | "repo";
9024
9142
  /** Format: date-time */
9025
9143
  createdAt: string;
9026
9144
  /** Format: date-time */
@@ -9030,12 +9148,17 @@ export interface components {
9030
9148
  items: components["schemas"]["CodeChatThreadDto"][];
9031
9149
  };
9032
9150
  CodeChatCreateThreadBodyDto: {
9151
+ /**
9152
+ * @description Create a workspace conversation with empty `repoIds`. Does not reuse an older thread. Requires chat readiness and an execution key.
9153
+ * @enum {string}
9154
+ */
9155
+ scope?: "workspace";
9033
9156
  /**
9034
9157
  * Format: uuid
9035
9158
  * @description Legacy single-index bind; prefer repoIds for workspace scope.
9036
9159
  */
9037
9160
  indexId?: string;
9038
- /** @description Empty or omitted = all ready repos. */
9161
+ /** @description Empty or omitted = all ready repos. Ignored when scope is workspace. */
9039
9162
  repoIds?: string[];
9040
9163
  revisionRef?: string;
9041
9164
  title?: string;
@@ -9082,10 +9205,10 @@ export interface components {
9082
9205
  };
9083
9206
  CodeChatMessageReplyDto: components["schemas"]["CodeChatMessageDto"] & {
9084
9207
  /**
9085
- * @description How the assistant answer was produced. `inventory` returns a deterministic catalog (APIs or modules) rather than LLM synthesis.
9208
+ * @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).
9086
9209
  * @enum {string}
9087
9210
  */
9088
- mode: "llm" | "retrieval" | "inventory";
9211
+ mode: "llm" | "retrieval" | "inventory" | "failed";
9089
9212
  /** @description Optional typed inventory payload for rich UI tables */
9090
9213
  structured?: components["schemas"]["CodeChatStructuredBlockDto"];
9091
9214
  /** @description True when wiki pages from one or more repos contributed to LLM context */
@@ -10319,6 +10442,9 @@ export type JiraSourceConfigDto = components['schemas']['JiraSourceConfigDto'];
10319
10442
  export type AgentExecutionProviderDto = components['schemas']['AgentExecutionProviderDto'];
10320
10443
  export type PutCodeIntelligenceSettingsDto = components['schemas']['PutCodeIntelligenceSettingsDto'];
10321
10444
  export type CodeWikiGuidanceTopicDto = components['schemas']['CodeWikiGuidanceTopicDto'];
10445
+ export type PutCodeIntelligenceAgentMdDto = components['schemas']['PutCodeIntelligenceAgentMdDto'];
10446
+ export type CodeIntelligenceAgentMdDto = components['schemas']['CodeIntelligenceAgentMdDto'];
10447
+ export type CodeChatReadinessDto = components['schemas']['CodeChatReadinessDto'];
10322
10448
  export type CodeWikiGuidanceDto = components['schemas']['CodeWikiGuidanceDto'];
10323
10449
  export type WorkspaceConfigDto = components['schemas']['WorkspaceConfigDto'];
10324
10450
  export type DeliveryRoleConfigDto = components['schemas']['DeliveryRoleConfigDto'];
@@ -18670,6 +18796,130 @@ export interface operations {
18670
18796
  403: components["responses"]["Forbidden"];
18671
18797
  };
18672
18798
  };
18799
+ getCodeIntelligenceAgentMd: {
18800
+ parameters: {
18801
+ query?: never;
18802
+ header?: never;
18803
+ path: {
18804
+ workspaceId: components["parameters"]["WorkspaceId"];
18805
+ };
18806
+ cookie?: never;
18807
+ };
18808
+ requestBody?: never;
18809
+ responses: {
18810
+ /** @description Persisted agent.md */
18811
+ 200: {
18812
+ headers: {
18813
+ [name: string]: unknown;
18814
+ };
18815
+ content: {
18816
+ "application/json": components["schemas"]["CodeIntelligenceAgentMdDto"];
18817
+ };
18818
+ };
18819
+ 401: components["responses"]["Unauthorized"];
18820
+ /** @description Engineering Context Graph is off, or the caller is not a member */
18821
+ 403: {
18822
+ headers: {
18823
+ [name: string]: unknown;
18824
+ };
18825
+ content: {
18826
+ "application/json": components["schemas"]["ErrorMessageDto"];
18827
+ };
18828
+ };
18829
+ };
18830
+ };
18831
+ putCodeIntelligenceAgentMd: {
18832
+ parameters: {
18833
+ query?: never;
18834
+ header?: never;
18835
+ path: {
18836
+ workspaceId: components["parameters"]["WorkspaceId"];
18837
+ };
18838
+ cookie?: never;
18839
+ };
18840
+ requestBody: {
18841
+ content: {
18842
+ "application/json": components["schemas"]["PutCodeIntelligenceAgentMdDto"];
18843
+ };
18844
+ };
18845
+ responses: {
18846
+ /** @description Saved agent.md */
18847
+ 200: {
18848
+ headers: {
18849
+ [name: string]: unknown;
18850
+ };
18851
+ content: {
18852
+ "application/json": components["schemas"]["CodeIntelligenceAgentMdDto"];
18853
+ };
18854
+ };
18855
+ /** @description Body missing or outside 1 to 12,000 characters */
18856
+ 400: {
18857
+ headers: {
18858
+ [name: string]: unknown;
18859
+ };
18860
+ content: {
18861
+ "application/json": components["schemas"]["ErrorMessageDto"];
18862
+ };
18863
+ };
18864
+ 401: components["responses"]["Unauthorized"];
18865
+ /** @description Caller is not an admin, or Engineering Context Graph is off */
18866
+ 403: {
18867
+ headers: {
18868
+ [name: string]: unknown;
18869
+ };
18870
+ content: {
18871
+ "application/json": components["schemas"]["ErrorMessageDto"];
18872
+ };
18873
+ };
18874
+ };
18875
+ };
18876
+ regenerateCodeIntelligenceAgentMd: {
18877
+ parameters: {
18878
+ query?: never;
18879
+ header?: never;
18880
+ path: {
18881
+ workspaceId: components["parameters"]["WorkspaceId"];
18882
+ };
18883
+ cookie?: never;
18884
+ };
18885
+ requestBody?: never;
18886
+ responses: {
18887
+ /** @description Regenerated agent.md */
18888
+ 200: {
18889
+ headers: {
18890
+ [name: string]: unknown;
18891
+ };
18892
+ content: {
18893
+ "application/json": components["schemas"]["CodeIntelligenceAgentMdDto"];
18894
+ };
18895
+ };
18896
+ 401: components["responses"]["Unauthorized"];
18897
+ /** @description Caller is not an admin, or Engineering Context Graph is off */
18898
+ 403: {
18899
+ headers: {
18900
+ [name: string]: unknown;
18901
+ };
18902
+ content: {
18903
+ "application/json": components["schemas"]["ErrorMessageDto"];
18904
+ };
18905
+ };
18906
+ /** @description No ready eligible index */
18907
+ 409: {
18908
+ headers: {
18909
+ [name: string]: unknown;
18910
+ };
18911
+ content: {
18912
+ /**
18913
+ * @example {
18914
+ * "error": "No ready repository index is available to write the workspace agent file.",
18915
+ * "code": "agent_md_not_ready"
18916
+ * }
18917
+ */
18918
+ "application/json": components["schemas"]["ErrorMessageDto"];
18919
+ };
18920
+ };
18921
+ };
18922
+ };
18673
18923
  getCodeIntelligenceTokenUsageSummary: {
18674
18924
  parameters: {
18675
18925
  query?: {
@@ -19069,6 +19319,53 @@ export interface operations {
19069
19319
  };
19070
19320
  };
19071
19321
  401: components["responses"]["Unauthorized"];
19322
+ /** @description Engineering Context Graph is off, or a member sent the admin force body (`indexOnly` and `force` with no `repoIds`). */
19323
+ 403: {
19324
+ headers: {
19325
+ [name: string]: unknown;
19326
+ };
19327
+ content: {
19328
+ "application/json": components["schemas"]["ErrorMessageDto"];
19329
+ };
19330
+ };
19331
+ };
19332
+ };
19333
+ getCodeChatReadiness: {
19334
+ parameters: {
19335
+ query?: never;
19336
+ header?: never;
19337
+ path: {
19338
+ workspaceId: components["parameters"]["WorkspaceId"];
19339
+ };
19340
+ cookie?: never;
19341
+ };
19342
+ requestBody?: never;
19343
+ responses: {
19344
+ /** @description Readiness snapshot */
19345
+ 200: {
19346
+ headers: {
19347
+ [name: string]: unknown;
19348
+ };
19349
+ content: {
19350
+ "application/json": components["schemas"]["CodeChatReadinessDto"];
19351
+ };
19352
+ };
19353
+ 401: components["responses"]["Unauthorized"];
19354
+ /** @description Engineering Context Graph is off */
19355
+ 403: {
19356
+ headers: {
19357
+ [name: string]: unknown;
19358
+ };
19359
+ content: {
19360
+ /**
19361
+ * @example {
19362
+ * "error": "Code Intelligence is disabled for this workspace",
19363
+ * "code": "code_intelligence_disabled"
19364
+ * }
19365
+ */
19366
+ "application/json": components["schemas"]["ErrorMessageDto"];
19367
+ };
19368
+ };
19072
19369
  };
19073
19370
  };
19074
19371
  getCodeChatIndex: {
@@ -19152,6 +19449,15 @@ export interface operations {
19152
19449
  };
19153
19450
  };
19154
19451
  401: components["responses"]["Unauthorized"];
19452
+ /** @description Engineering Context Graph is off */
19453
+ 403: {
19454
+ headers: {
19455
+ [name: string]: unknown;
19456
+ };
19457
+ content: {
19458
+ "application/json": components["schemas"]["ErrorMessageDto"];
19459
+ };
19460
+ };
19155
19461
  /** @description Not found */
19156
19462
  404: {
19157
19463
  headers: {
@@ -19161,12 +19467,23 @@ export interface operations {
19161
19467
  "application/json": components["schemas"]["ErrorMessageDto"];
19162
19468
  };
19163
19469
  };
19164
- /** @description Index not ready */
19470
+ /** @description Chat not ready, or no ready corpus for a repo-scoped thread */
19165
19471
  409: {
19166
19472
  headers: {
19167
19473
  [name: string]: unknown;
19168
19474
  };
19169
- content?: never;
19475
+ content: {
19476
+ "application/json": components["schemas"]["ErrorMessageDto"];
19477
+ };
19478
+ };
19479
+ /** @description Execution key required */
19480
+ 422: {
19481
+ headers: {
19482
+ [name: string]: unknown;
19483
+ };
19484
+ content: {
19485
+ "application/json": components["schemas"]["ErrorMessageDto"];
19486
+ };
19170
19487
  };
19171
19488
  };
19172
19489
  };
@@ -19258,6 +19575,15 @@ export interface operations {
19258
19575
  };
19259
19576
  };
19260
19577
  401: components["responses"]["Unauthorized"];
19578
+ /** @description Engineering Context Graph is off */
19579
+ 403: {
19580
+ headers: {
19581
+ [name: string]: unknown;
19582
+ };
19583
+ content: {
19584
+ "application/json": components["schemas"]["ErrorMessageDto"];
19585
+ };
19586
+ };
19261
19587
  /** @description Not found */
19262
19588
  404: {
19263
19589
  headers: {
@@ -19267,12 +19593,23 @@ export interface operations {
19267
19593
  "application/json": components["schemas"]["ErrorMessageDto"];
19268
19594
  };
19269
19595
  };
19270
- /** @description Index not ready */
19596
+ /** @description Chat not ready, or no ready corpus in thread scope */
19271
19597
  409: {
19272
19598
  headers: {
19273
19599
  [name: string]: unknown;
19274
19600
  };
19275
- content?: never;
19601
+ content: {
19602
+ "application/json": components["schemas"]["ErrorMessageDto"];
19603
+ };
19604
+ };
19605
+ /** @description Execution key required */
19606
+ 422: {
19607
+ headers: {
19608
+ [name: string]: unknown;
19609
+ };
19610
+ content: {
19611
+ "application/json": components["schemas"]["ErrorMessageDto"];
19612
+ };
19276
19613
  };
19277
19614
  };
19278
19615
  };