@thinkai/tai-api-contract 2.115.0 → 2.118.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.
@@ -582,6 +582,30 @@ export interface paths {
582
582
  patch?: never;
583
583
  trace?: never;
584
584
  };
585
+ "/workspaces/{workspaceId}/ai-email-aliases": {
586
+ parameters: {
587
+ query?: never;
588
+ header?: never;
589
+ path?: never;
590
+ cookie?: never;
591
+ };
592
+ /**
593
+ * Get workspace email aliases for people not on the org chart
594
+ * @description Returns workspace-level mappings from alternate work emails to a canonical email (same behaviour as org-chart `alternate_emails`, without adding org-chart members). Empty `aliases` array when unset. Member-level read access.
595
+ */
596
+ get: operations["getWorkspaceAiEmailAliases"];
597
+ /**
598
+ * Set workspace email aliases for people not on the org chart
599
+ * @description Full-replace workspace-level email alias mappings (e.g. `jane.doe.contractor@example.com` → `jane.doe@example.com`). Same effect as `alternate_emails` on an org row. Does not add org-chart members. `PUT { aliases: [] }` clears all aliases. Requires workspace **admin**.
600
+ */
601
+ put: operations["putWorkspaceAiEmailAliases"];
602
+ post?: never;
603
+ delete?: never;
604
+ options?: never;
605
+ head?: never;
606
+ patch?: never;
607
+ trace?: never;
608
+ };
585
609
  "/workspaces/{workspaceId}/productivity-targets": {
586
610
  parameters: {
587
611
  query?: never;
@@ -3069,6 +3093,23 @@ export interface paths {
3069
3093
  patch?: never;
3070
3094
  trace?: never;
3071
3095
  };
3096
+ "/workspaces/{workspaceId}/knowledge-pages/generate/status": {
3097
+ parameters: {
3098
+ query?: never;
3099
+ header?: never;
3100
+ path?: never;
3101
+ cookie?: never;
3102
+ };
3103
+ /** Get live workspace context generation progress */
3104
+ get: operations["getWorkspaceContextGenerationStatus"];
3105
+ put?: never;
3106
+ post?: never;
3107
+ delete?: never;
3108
+ options?: never;
3109
+ head?: never;
3110
+ patch?: never;
3111
+ trace?: never;
3112
+ };
3072
3113
  "/workspaces/{workspaceId}/knowledge-pages/prd/generate": {
3073
3114
  parameters: {
3074
3115
  query?: never;
@@ -3089,6 +3130,46 @@ export interface paths {
3089
3130
  patch?: never;
3090
3131
  trace?: never;
3091
3132
  };
3133
+ "/workspaces/{workspaceId}/knowledge-graph": {
3134
+ parameters: {
3135
+ query?: never;
3136
+ header?: never;
3137
+ path?: never;
3138
+ cookie?: never;
3139
+ };
3140
+ /**
3141
+ * Get the persisted workspace knowledge graph
3142
+ * @description Cross-repository graph (repo nodes and dependency edges) built when workspace knowledge pages are generated. Empty until the first successful generate.
3143
+ */
3144
+ get: operations["getWorkspaceKnowledgeGraph"];
3145
+ put?: never;
3146
+ post?: never;
3147
+ delete?: never;
3148
+ options?: never;
3149
+ head?: never;
3150
+ patch?: never;
3151
+ trace?: never;
3152
+ };
3153
+ "/workspaces/{workspaceId}/knowledge-pages/export": {
3154
+ parameters: {
3155
+ query?: never;
3156
+ header?: never;
3157
+ path?: never;
3158
+ cookie?: never;
3159
+ };
3160
+ /**
3161
+ * Export workspace knowledge for local use
3162
+ * @description Download workspace context as `WORKSPACE.md` (markdown) or a structured `wkg-pack` JSON bundle. Markdown rewrites `ecg://` deep links per `linkMode`.
3163
+ */
3164
+ get: operations["exportWorkspaceKnowledgePages"];
3165
+ put?: never;
3166
+ post?: never;
3167
+ delete?: never;
3168
+ options?: never;
3169
+ head?: never;
3170
+ patch?: never;
3171
+ trace?: never;
3172
+ };
3092
3173
  "/workspaces/{workspaceId}/code-intelligence/repo-wiki-json": {
3093
3174
  parameters: {
3094
3175
  query?: never;
@@ -4552,6 +4633,22 @@ export interface components {
4552
4633
  /** @description Ceiling — stay at or below this many CI failures per engineer per week. `0` is valid. */
4553
4634
  ciFailuresPerEngineerPerWeek?: number | null;
4554
4635
  };
4636
+ AiEmailAliasEntryDto: {
4637
+ /**
4638
+ * Format: email
4639
+ * @description Canonical identity for AI tool attribution (person_id target).
4640
+ */
4641
+ canonicalEmail: string;
4642
+ /**
4643
+ * Format: email
4644
+ * @description Alternate Claude/Cursor login email mapped to canonicalEmail.
4645
+ */
4646
+ aliasEmail: string;
4647
+ };
4648
+ AiEmailAliasesDto: {
4649
+ /** @description Workspace-level alias mappings (empty array when unset). */
4650
+ aliases: components["schemas"]["AiEmailAliasEntryDto"][];
4651
+ };
4555
4652
  TestConnectionResponseDto: {
4556
4653
  success: boolean;
4557
4654
  /** @description Machine-readable failure code when success=false (e.g. invalid_token, zenhr_sync_in_progress when ZenHR OAuth refresh is contended). */
@@ -8332,6 +8429,8 @@ export interface components {
8332
8429
  GenerateWorkspaceKnowledgePagesBodyDto: {
8333
8430
  /** @description Ready repository indexes to synthesize from. Omit or send empty for all ready indexes. */
8334
8431
  repoIds?: string[];
8432
+ /** @description When true and execution keys are configured, run a deeper LLM pass to expand Key decisions with multi-repo citations (falls back to deterministic on failure). */
8433
+ deepResearch?: boolean;
8335
8434
  };
8336
8435
  GenerateWorkspaceKnowledgePagesResultDto: {
8337
8436
  items: components["schemas"]["WorkspaceKnowledgePageDto"][];
@@ -8345,6 +8444,21 @@ export interface components {
8345
8444
  platformToolIds?: string[];
8346
8445
  usage?: components["schemas"]["CodeIntelligenceUsageDto"];
8347
8446
  };
8447
+ WorkspaceContextGenerationStatusDto: {
8448
+ /** @enum {string} */
8449
+ phase: "inventory" | "facts" | "contracts" | "integrations" | "clustering" | "llm" | "persisted";
8450
+ /** @enum {string} */
8451
+ status: "running" | "complete" | "failed";
8452
+ detail: string;
8453
+ /** Format: date-time */
8454
+ updatedAt: string;
8455
+ partial?: {
8456
+ repoCount?: number;
8457
+ contractCount?: number;
8458
+ groupCount?: number;
8459
+ standaloneCount?: number;
8460
+ };
8461
+ };
8348
8462
  GeneratePrdDraftBodyDto: {
8349
8463
  /** @description Feature or change the PRD should describe */
8350
8464
  featureIntent: string;
@@ -8370,6 +8484,7 @@ export interface components {
8370
8484
  id: string;
8371
8485
  /** Format: uuid */
8372
8486
  workspaceId: string;
8487
+ /** @description Page slug. `workspace-agent` is the canonical hub; supporting pages include `workspace-overview`, `cross-repo-map`, `shared-concepts`, and `prd-*` drafts. */
8373
8488
  slug: string;
8374
8489
  title: string;
8375
8490
  bodyMd: string;
@@ -8404,11 +8519,158 @@ export interface components {
8404
8519
  platformMissingToolIds: string[];
8405
8520
  /** @description Bounded markdown summary of platform evidence for the system panel */
8406
8521
  platformSnippet?: string;
8522
+ insights?: components["schemas"]["WorkspaceContextInsightsDto"];
8523
+ };
8524
+ WorkspaceContextInsightsDto: {
8525
+ /** @enum {string} */
8526
+ kind: "workspace-insights";
8527
+ /** @enum {integer} */
8528
+ version: 2;
8529
+ /** Format: date-time */
8530
+ generatedAt: string;
8531
+ repoRoles: {
8532
+ /** Format: uuid */
8533
+ repoId: string;
8534
+ repoName: string;
8535
+ role: string;
8536
+ rationale: string;
8537
+ }[];
8538
+ emergentInsights: {
8539
+ kind: string;
8540
+ title: string;
8541
+ detail: string;
8542
+ repoIds: string[];
8543
+ /** @enum {string} */
8544
+ certainty: "fact" | "inference" | "possibility";
8545
+ evidenceRefs?: string[];
8546
+ }[];
8547
+ sharedConcepts: {
8548
+ term: string;
8549
+ repoNames: string[];
8550
+ kind: string;
8551
+ }[];
8552
+ crossRepoLinks: components["schemas"]["WorkspaceKnowledgeCrossRepoLinkDto"][];
8553
+ contracts: {
8554
+ id: string;
8555
+ kind: string;
8556
+ specKey: string;
8557
+ producers: {
8558
+ [key: string]: unknown;
8559
+ }[];
8560
+ consumers: {
8561
+ [key: string]: unknown;
8562
+ }[];
8563
+ /** @enum {string} */
8564
+ certainty: "fact" | "inference" | "possibility";
8565
+ score: number;
8566
+ }[];
8567
+ groups: {
8568
+ id: string;
8569
+ kind: string;
8570
+ label: string;
8571
+ repoIds: string[];
8572
+ backboneContractIds: string[];
8573
+ possibilityLinkCount: number;
8574
+ integrationSummary: string;
8575
+ summary: string;
8576
+ }[];
8577
+ standaloneRepos: {
8578
+ /** Format: uuid */
8579
+ repoId: string;
8580
+ repoName: string;
8581
+ summary: string;
8582
+ }[];
8583
+ coverage: {
8584
+ /** Format: uuid */
8585
+ repoId: string;
8586
+ detected: number;
8587
+ resolved: number;
8588
+ external: number;
8589
+ unresolved: number;
8590
+ }[];
8591
+ integrationFootprints: {
8592
+ /** Format: uuid */
8593
+ repoId: string;
8594
+ repoName: string;
8595
+ availableSignals: string[];
8596
+ missingSignals: string[];
8597
+ gaps: string[];
8598
+ }[];
8599
+ integrationOpportunities: string[];
8407
8600
  };
8408
8601
  WorkspaceKnowledgePageListDto: {
8409
8602
  items: components["schemas"]["WorkspaceKnowledgePageDto"][];
8410
8603
  systemContext?: components["schemas"]["WorkspaceKnowledgeSystemContextDto"];
8411
8604
  };
8605
+ WorkspaceKnowledgeGraphNodeDto: {
8606
+ id: string;
8607
+ label: string;
8608
+ score?: number;
8609
+ contractId?: string;
8610
+ /** @enum {string} */
8611
+ kind: "repo" | "package" | "protocol";
8612
+ };
8613
+ WorkspaceKnowledgeGraphEdgeDto: {
8614
+ /** @description Source node id (usually repoId) */
8615
+ from: string;
8616
+ /** @description Target node id (usually repoId) */
8617
+ to: string;
8618
+ relation: string;
8619
+ label?: string;
8620
+ /** @enum {string} */
8621
+ certainty?: "fact" | "inference" | "possibility";
8622
+ };
8623
+ WorkspaceKnowledgeGraphDto: {
8624
+ /** @enum {string} */
8625
+ kind: "workspace-kg";
8626
+ version: number;
8627
+ /** Format: date-time */
8628
+ exportedAt: string;
8629
+ nodes: components["schemas"]["WorkspaceKnowledgeGraphNodeDto"][];
8630
+ edges: components["schemas"]["WorkspaceKnowledgeGraphEdgeDto"][];
8631
+ };
8632
+ WorkspaceKnowledgeCrossRepoLinkDto: {
8633
+ /** Format: uuid */
8634
+ fromRepoId: string;
8635
+ /** Format: uuid */
8636
+ toRepoId: string;
8637
+ fromRepoName?: string;
8638
+ toRepoName?: string;
8639
+ relation: string;
8640
+ /** @enum {string} */
8641
+ certainty: "fact" | "inference" | "possibility";
8642
+ evidence: string;
8643
+ label: string;
8644
+ };
8645
+ WorkspaceKnowledgePackRepoDto: {
8646
+ /** Format: uuid */
8647
+ repoId: string;
8648
+ repoName: string;
8649
+ commitSha?: string | null;
8650
+ providerSlug?: string | null;
8651
+ wikiOutline?: {
8652
+ slug: string;
8653
+ title: string;
8654
+ }[];
8655
+ };
8656
+ WorkspaceKnowledgePackPageDto: {
8657
+ slug: string;
8658
+ title: string;
8659
+ bodyMd: string;
8660
+ };
8661
+ WorkspaceKnowledgePackDto: {
8662
+ /** @enum {string} */
8663
+ kind: "wkg-pack";
8664
+ version: number;
8665
+ /** Format: date-time */
8666
+ exportedAt: string;
8667
+ workspaceName?: string;
8668
+ pages: components["schemas"]["WorkspaceKnowledgePackPageDto"][];
8669
+ crossRepoLinks: components["schemas"]["WorkspaceKnowledgeCrossRepoLinkDto"][];
8670
+ repos: components["schemas"]["WorkspaceKnowledgePackRepoDto"][];
8671
+ graph?: components["schemas"]["WorkspaceKnowledgeGraphDto"];
8672
+ workspaceContext?: components["schemas"]["WorkspaceContextInsightsDto"];
8673
+ };
8412
8674
  CodeIntelligenceUsageDto: {
8413
8675
  /** @description Ledger operation key (code_chat, prd_generate, workspace_kb, wiki_json_outline, wiki_enrich, …) */
8414
8676
  operation: string;
@@ -9079,6 +9341,8 @@ export type DeliveryRoleConfigDto = components['schemas']['DeliveryRoleConfigDto
9079
9341
  export type RepoDeliveryOverrideDto = components['schemas']['RepoDeliveryOverrideDto'];
9080
9342
  export type DeliveryTopologyDto = components['schemas']['DeliveryTopologyDto'];
9081
9343
  export type ProductivityTargetsDto = components['schemas']['ProductivityTargetsDto'];
9344
+ export type AiEmailAliasEntryDto = components['schemas']['AiEmailAliasEntryDto'];
9345
+ export type AiEmailAliasesDto = components['schemas']['AiEmailAliasesDto'];
9082
9346
  export type TestConnectionResponseDto = components['schemas']['TestConnectionResponseDto'];
9083
9347
  export type CursorKeyUsageDto = components['schemas']['CursorKeyUsageDto'];
9084
9348
  export type AiToolSeatDto = components['schemas']['AiToolSeatDto'];
@@ -9423,11 +9687,20 @@ export type RepoWikiJsonSummaryDto = components['schemas']['RepoWikiJsonSummaryD
9423
9687
  export type RepoWikiJsonSummaryListDto = components['schemas']['RepoWikiJsonSummaryListDto'];
9424
9688
  export type GenerateWorkspaceKnowledgePagesBodyDto = components['schemas']['GenerateWorkspaceKnowledgePagesBodyDto'];
9425
9689
  export type GenerateWorkspaceKnowledgePagesResultDto = components['schemas']['GenerateWorkspaceKnowledgePagesResultDto'];
9690
+ export type WorkspaceContextGenerationStatusDto = components['schemas']['WorkspaceContextGenerationStatusDto'];
9426
9691
  export type GeneratePrdDraftBodyDto = components['schemas']['GeneratePrdDraftBodyDto'];
9427
9692
  export type GeneratePrdDraftResultDto = components['schemas']['GeneratePrdDraftResultDto'];
9428
9693
  export type WorkspaceKnowledgePageDto = components['schemas']['WorkspaceKnowledgePageDto'];
9429
9694
  export type WorkspaceKnowledgeSystemContextDto = components['schemas']['WorkspaceKnowledgeSystemContextDto'];
9695
+ export type WorkspaceContextInsightsDto = components['schemas']['WorkspaceContextInsightsDto'];
9430
9696
  export type WorkspaceKnowledgePageListDto = components['schemas']['WorkspaceKnowledgePageListDto'];
9697
+ export type WorkspaceKnowledgeGraphNodeDto = components['schemas']['WorkspaceKnowledgeGraphNodeDto'];
9698
+ export type WorkspaceKnowledgeGraphEdgeDto = components['schemas']['WorkspaceKnowledgeGraphEdgeDto'];
9699
+ export type WorkspaceKnowledgeGraphDto = components['schemas']['WorkspaceKnowledgeGraphDto'];
9700
+ export type WorkspaceKnowledgeCrossRepoLinkDto = components['schemas']['WorkspaceKnowledgeCrossRepoLinkDto'];
9701
+ export type WorkspaceKnowledgePackRepoDto = components['schemas']['WorkspaceKnowledgePackRepoDto'];
9702
+ export type WorkspaceKnowledgePackPageDto = components['schemas']['WorkspaceKnowledgePackPageDto'];
9703
+ export type WorkspaceKnowledgePackDto = components['schemas']['WorkspaceKnowledgePackDto'];
9431
9704
  export type CodeIntelligenceUsageDto = components['schemas']['CodeIntelligenceUsageDto'];
9432
9705
  export type CodeIntelligenceTokenUsageByOperationDto = components['schemas']['CodeIntelligenceTokenUsageByOperationDto'];
9433
9706
  export type CodeIntelligenceTokenUsageByRepoDto = components['schemas']['CodeIntelligenceTokenUsageByRepoDto'];
@@ -11102,6 +11375,91 @@ export interface operations {
11102
11375
  };
11103
11376
  };
11104
11377
  };
11378
+ getWorkspaceAiEmailAliases: {
11379
+ parameters: {
11380
+ query?: never;
11381
+ header?: never;
11382
+ path: {
11383
+ workspaceId: components["parameters"]["WorkspaceId"];
11384
+ };
11385
+ cookie?: never;
11386
+ };
11387
+ requestBody?: never;
11388
+ responses: {
11389
+ /** @description Current alias mappings (may be empty) */
11390
+ 200: {
11391
+ headers: {
11392
+ [name: string]: unknown;
11393
+ };
11394
+ content: {
11395
+ "application/json": components["schemas"]["AiEmailAliasesDto"];
11396
+ };
11397
+ };
11398
+ 401: components["responses"]["Unauthorized"];
11399
+ 403: components["responses"]["Forbidden"];
11400
+ /** @description Workspace does not exist or malformed workspaceId */
11401
+ 404: {
11402
+ headers: {
11403
+ [name: string]: unknown;
11404
+ };
11405
+ content: {
11406
+ "application/json": components["schemas"]["ErrorMessageDto"];
11407
+ };
11408
+ };
11409
+ };
11410
+ };
11411
+ putWorkspaceAiEmailAliases: {
11412
+ parameters: {
11413
+ query?: never;
11414
+ header?: never;
11415
+ path: {
11416
+ workspaceId: components["parameters"]["WorkspaceId"];
11417
+ };
11418
+ cookie?: never;
11419
+ };
11420
+ requestBody: {
11421
+ content: {
11422
+ "application/json": components["schemas"]["AiEmailAliasesDto"];
11423
+ };
11424
+ };
11425
+ responses: {
11426
+ /** @description Aliases persisted (or cleared). */
11427
+ 204: {
11428
+ headers: {
11429
+ [name: string]: unknown;
11430
+ };
11431
+ content?: never;
11432
+ };
11433
+ /** @description Invalid payload */
11434
+ 400: {
11435
+ headers: {
11436
+ [name: string]: unknown;
11437
+ };
11438
+ content: {
11439
+ "application/json": components["schemas"]["ErrorMessageDto"];
11440
+ };
11441
+ };
11442
+ 401: components["responses"]["Unauthorized"];
11443
+ /** @description Forbidden — workspace admin required */
11444
+ 403: {
11445
+ headers: {
11446
+ [name: string]: unknown;
11447
+ };
11448
+ content: {
11449
+ "application/json": components["schemas"]["ErrorMessageDto"];
11450
+ };
11451
+ };
11452
+ /** @description Workspace does not exist or malformed workspaceId */
11453
+ 404: {
11454
+ headers: {
11455
+ [name: string]: unknown;
11456
+ };
11457
+ content: {
11458
+ "application/json": components["schemas"]["ErrorMessageDto"];
11459
+ };
11460
+ };
11461
+ };
11462
+ };
11105
11463
  getWorkspaceProductivityTargets: {
11106
11464
  parameters: {
11107
11465
  query?: never;
@@ -17493,6 +17851,29 @@ export interface operations {
17493
17851
  };
17494
17852
  };
17495
17853
  };
17854
+ getWorkspaceContextGenerationStatus: {
17855
+ parameters: {
17856
+ query?: never;
17857
+ header?: never;
17858
+ path: {
17859
+ workspaceId: components["parameters"]["WorkspaceId"];
17860
+ };
17861
+ cookie?: never;
17862
+ };
17863
+ requestBody?: never;
17864
+ responses: {
17865
+ /** @description Current or most recent workspace context generation phase */
17866
+ 200: {
17867
+ headers: {
17868
+ [name: string]: unknown;
17869
+ };
17870
+ content: {
17871
+ "application/json": components["schemas"]["WorkspaceContextGenerationStatusDto"];
17872
+ };
17873
+ };
17874
+ 401: components["responses"]["Unauthorized"];
17875
+ };
17876
+ };
17496
17877
  generatePrdDraft: {
17497
17878
  parameters: {
17498
17879
  query?: never;
@@ -17541,6 +17922,85 @@ export interface operations {
17541
17922
  };
17542
17923
  };
17543
17924
  };
17925
+ getWorkspaceKnowledgeGraph: {
17926
+ parameters: {
17927
+ query?: never;
17928
+ header?: never;
17929
+ path: {
17930
+ workspaceId: components["parameters"]["WorkspaceId"];
17931
+ };
17932
+ cookie?: never;
17933
+ };
17934
+ requestBody?: never;
17935
+ responses: {
17936
+ /** @description Workspace knowledge graph */
17937
+ 200: {
17938
+ headers: {
17939
+ [name: string]: unknown;
17940
+ };
17941
+ content: {
17942
+ "application/json": components["schemas"]["WorkspaceKnowledgeGraphDto"];
17943
+ };
17944
+ };
17945
+ 401: components["responses"]["Unauthorized"];
17946
+ /** @description Graph not generated yet */
17947
+ 404: {
17948
+ headers: {
17949
+ [name: string]: unknown;
17950
+ };
17951
+ content?: never;
17952
+ };
17953
+ };
17954
+ };
17955
+ exportWorkspaceKnowledgePages: {
17956
+ parameters: {
17957
+ query?: {
17958
+ format?: "markdown" | "wkg-pack" | "zip";
17959
+ /** @description How to rewrite ecg:// links in markdown export */
17960
+ linkMode?: "github" | "platform" | "relative";
17961
+ };
17962
+ header?: never;
17963
+ path: {
17964
+ workspaceId: components["parameters"]["WorkspaceId"];
17965
+ };
17966
+ cookie?: never;
17967
+ };
17968
+ requestBody?: never;
17969
+ responses: {
17970
+ /** @description Export payload (markdown body or wkg-pack JSON) */
17971
+ 200: {
17972
+ headers: {
17973
+ [name: string]: unknown;
17974
+ };
17975
+ content: {
17976
+ "text/markdown": string;
17977
+ "application/json": components["schemas"]["WorkspaceKnowledgePackDto"];
17978
+ };
17979
+ };
17980
+ 401: components["responses"]["Unauthorized"];
17981
+ /** @description Code Intelligence is disabled for this workspace */
17982
+ 403: {
17983
+ headers: {
17984
+ [name: string]: unknown;
17985
+ };
17986
+ content?: never;
17987
+ };
17988
+ /** @description No workspace knowledge pages to export */
17989
+ 404: {
17990
+ headers: {
17991
+ [name: string]: unknown;
17992
+ };
17993
+ content?: never;
17994
+ };
17995
+ /** @description ZIP export not implemented (use markdown or wkg-pack) */
17996
+ 501: {
17997
+ headers: {
17998
+ [name: string]: unknown;
17999
+ };
18000
+ content?: never;
18001
+ };
18002
+ };
18003
+ };
17544
18004
  listRepoWikiJsonSummaries: {
17545
18005
  parameters: {
17546
18006
  query?: never;