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