@thinkai/tai-api-contract 2.110.0 → 2.111.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.
- package/dist/generated/openapi.d.ts +724 -2
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +734 -3
- package/package.json +1 -1
- package/src/generated/openapi.ts +724 -2
package/openapi/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ThinkAI API
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.111.0
|
|
5
5
|
description: >
|
|
6
6
|
Contract surface for the AI Driven SDLC backend used by ThinkAI.
|
|
7
7
|
Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
|
|
@@ -7202,6 +7202,37 @@ paths:
|
|
|
7202
7202
|
"403":
|
|
7203
7203
|
$ref: "#/components/responses/Forbidden"
|
|
7204
7204
|
|
|
7205
|
+
/workspaces/{workspaceId}/code-intelligence/token-usage/summary:
|
|
7206
|
+
get:
|
|
7207
|
+
tags: [CodeChat]
|
|
7208
|
+
summary: ECG token usage rollup for this workspace
|
|
7209
|
+
description: >
|
|
7210
|
+
Member-readable totals and per-operation breakdown from
|
|
7211
|
+
`tai_workspace_code_intelligence_token_usage` (Ask, wiki enrich, PRD, workspace KB,
|
|
7212
|
+
wiki.json outline). Default window is 30 days (max 90).
|
|
7213
|
+
operationId: getCodeIntelligenceTokenUsageSummary
|
|
7214
|
+
parameters:
|
|
7215
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7216
|
+
- name: days
|
|
7217
|
+
in: query
|
|
7218
|
+
required: false
|
|
7219
|
+
schema:
|
|
7220
|
+
type: integer
|
|
7221
|
+
minimum: 1
|
|
7222
|
+
maximum: 90
|
|
7223
|
+
default: 30
|
|
7224
|
+
responses:
|
|
7225
|
+
"200":
|
|
7226
|
+
description: Token usage summary
|
|
7227
|
+
content:
|
|
7228
|
+
application/json:
|
|
7229
|
+
schema:
|
|
7230
|
+
$ref: "#/components/schemas/CodeIntelligenceTokenUsageSummaryDto"
|
|
7231
|
+
"401":
|
|
7232
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7233
|
+
"403":
|
|
7234
|
+
$ref: "#/components/responses/Forbidden"
|
|
7235
|
+
|
|
7205
7236
|
/workspaces/{workspaceId}/repo-eligibility:
|
|
7206
7237
|
get:
|
|
7207
7238
|
tags: [RepositoryReadiness]
|
|
@@ -7713,6 +7744,187 @@ paths:
|
|
|
7713
7744
|
"404":
|
|
7714
7745
|
description: Not found
|
|
7715
7746
|
|
|
7747
|
+
/workspaces/{workspaceId}/code-chat/indexes/{indexId}/wiki-config:
|
|
7748
|
+
get:
|
|
7749
|
+
tags: [CodeChat]
|
|
7750
|
+
summary: Effective wiki.json for an index (server + repo + workspace)
|
|
7751
|
+
operationId: getCodeChatEffectiveWikiConfig
|
|
7752
|
+
parameters:
|
|
7753
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7754
|
+
- name: indexId
|
|
7755
|
+
in: path
|
|
7756
|
+
required: true
|
|
7757
|
+
schema: { type: string, format: uuid }
|
|
7758
|
+
responses:
|
|
7759
|
+
"200":
|
|
7760
|
+
description: Effective wiki config
|
|
7761
|
+
content:
|
|
7762
|
+
application/json:
|
|
7763
|
+
schema:
|
|
7764
|
+
$ref: "#/components/schemas/EffectiveWikiConfigDto"
|
|
7765
|
+
"401":
|
|
7766
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7767
|
+
"404":
|
|
7768
|
+
description: Graph not ready
|
|
7769
|
+
|
|
7770
|
+
/workspaces/{workspaceId}/knowledge-pages:
|
|
7771
|
+
get:
|
|
7772
|
+
tags: [CodeChat]
|
|
7773
|
+
summary: List workspace knowledge base pages (no repo pick)
|
|
7774
|
+
operationId: listWorkspaceKnowledgePages
|
|
7775
|
+
parameters:
|
|
7776
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7777
|
+
responses:
|
|
7778
|
+
"200":
|
|
7779
|
+
description: Workspace knowledge pages
|
|
7780
|
+
content:
|
|
7781
|
+
application/json:
|
|
7782
|
+
schema:
|
|
7783
|
+
$ref: "#/components/schemas/WorkspaceKnowledgePageListDto"
|
|
7784
|
+
"401":
|
|
7785
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7786
|
+
|
|
7787
|
+
/workspaces/{workspaceId}/knowledge-pages/generate:
|
|
7788
|
+
post:
|
|
7789
|
+
tags: [CodeChat]
|
|
7790
|
+
summary: Generate the cross-repo workspace knowledge base
|
|
7791
|
+
description: >-
|
|
7792
|
+
Synthesizes workspace-level pages from the repository wikis that already exist.
|
|
7793
|
+
Does not clone or re-index. Replaces the whole workspace knowledge base.
|
|
7794
|
+
operationId: generateWorkspaceKnowledgePages
|
|
7795
|
+
parameters:
|
|
7796
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7797
|
+
requestBody:
|
|
7798
|
+
required: false
|
|
7799
|
+
content:
|
|
7800
|
+
application/json:
|
|
7801
|
+
schema:
|
|
7802
|
+
$ref: "#/components/schemas/GenerateWorkspaceKnowledgePagesBodyDto"
|
|
7803
|
+
responses:
|
|
7804
|
+
"200":
|
|
7805
|
+
description: Generated workspace knowledge pages
|
|
7806
|
+
content:
|
|
7807
|
+
application/json:
|
|
7808
|
+
schema:
|
|
7809
|
+
$ref: "#/components/schemas/GenerateWorkspaceKnowledgePagesResultDto"
|
|
7810
|
+
"401":
|
|
7811
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7812
|
+
"403":
|
|
7813
|
+
description: Code Intelligence is disabled for this workspace
|
|
7814
|
+
"409":
|
|
7815
|
+
description: No ready repository index in scope
|
|
7816
|
+
|
|
7817
|
+
/workspaces/{workspaceId}/knowledge-pages/prd/generate:
|
|
7818
|
+
post:
|
|
7819
|
+
tags: [CodeChat]
|
|
7820
|
+
summary: Generate a workspace-scoped PRD draft
|
|
7821
|
+
description: >-
|
|
7822
|
+
Builds a PRD draft from ready repository wikis, code graphs, and platform evidence
|
|
7823
|
+
(readiness, quality, delivery, AI adoption, monitoring). Upserts one workspace
|
|
7824
|
+
knowledge page (`prd-<slug>` / `prd-draft`) without replacing the whole knowledge base.
|
|
7825
|
+
operationId: generatePrdDraft
|
|
7826
|
+
parameters:
|
|
7827
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7828
|
+
requestBody:
|
|
7829
|
+
required: true
|
|
7830
|
+
content:
|
|
7831
|
+
application/json:
|
|
7832
|
+
schema:
|
|
7833
|
+
$ref: "#/components/schemas/GeneratePrdDraftBodyDto"
|
|
7834
|
+
responses:
|
|
7835
|
+
"200":
|
|
7836
|
+
description: Generated PRD draft page
|
|
7837
|
+
content:
|
|
7838
|
+
application/json:
|
|
7839
|
+
schema:
|
|
7840
|
+
$ref: "#/components/schemas/GeneratePrdDraftResultDto"
|
|
7841
|
+
"400":
|
|
7842
|
+
description: Missing or invalid featureIntent
|
|
7843
|
+
"401":
|
|
7844
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7845
|
+
"403":
|
|
7846
|
+
description: Code Intelligence is disabled for this workspace
|
|
7847
|
+
"409":
|
|
7848
|
+
description: No ready repository index in scope
|
|
7849
|
+
|
|
7850
|
+
/workspaces/{workspaceId}/code-intelligence/repo-wiki-json:
|
|
7851
|
+
get:
|
|
7852
|
+
tags: [CodeChat]
|
|
7853
|
+
summary: List repositories with an admin wiki.json override (admin only)
|
|
7854
|
+
operationId: listRepoWikiJsonSummaries
|
|
7855
|
+
parameters:
|
|
7856
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7857
|
+
responses:
|
|
7858
|
+
"200":
|
|
7859
|
+
description: Override summaries
|
|
7860
|
+
content:
|
|
7861
|
+
application/json:
|
|
7862
|
+
schema:
|
|
7863
|
+
$ref: "#/components/schemas/RepoWikiJsonSummaryListDto"
|
|
7864
|
+
"401":
|
|
7865
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7866
|
+
"403":
|
|
7867
|
+
description: Workspace admin required
|
|
7868
|
+
|
|
7869
|
+
/workspaces/{workspaceId}/code-intelligence/repos/{repoId}/wiki-json:
|
|
7870
|
+
get:
|
|
7871
|
+
tags: [CodeChat]
|
|
7872
|
+
summary: Get the admin wiki.json override for a repository (admin only)
|
|
7873
|
+
operationId: getRepoWikiJson
|
|
7874
|
+
parameters:
|
|
7875
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7876
|
+
- name: repoId
|
|
7877
|
+
in: path
|
|
7878
|
+
required: true
|
|
7879
|
+
schema: { type: string, format: uuid }
|
|
7880
|
+
responses:
|
|
7881
|
+
"200":
|
|
7882
|
+
description: Stored override (document is null when unset)
|
|
7883
|
+
content:
|
|
7884
|
+
application/json:
|
|
7885
|
+
schema:
|
|
7886
|
+
$ref: "#/components/schemas/RepoWikiJsonDto"
|
|
7887
|
+
"401":
|
|
7888
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7889
|
+
"403":
|
|
7890
|
+
description: Workspace admin required
|
|
7891
|
+
"404":
|
|
7892
|
+
description: Repository not found
|
|
7893
|
+
put:
|
|
7894
|
+
tags: [CodeChat]
|
|
7895
|
+
summary: Write or clear the admin wiki.json override for a repository (admin only)
|
|
7896
|
+
description: >-
|
|
7897
|
+
Sits between workspace guidance and the in-repo `.aidrivensdlc/wiki.json`, so a
|
|
7898
|
+
file committed to the repository still wins.
|
|
7899
|
+
operationId: putRepoWikiJson
|
|
7900
|
+
parameters:
|
|
7901
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7902
|
+
- name: repoId
|
|
7903
|
+
in: path
|
|
7904
|
+
required: true
|
|
7905
|
+
schema: { type: string, format: uuid }
|
|
7906
|
+
requestBody:
|
|
7907
|
+
required: true
|
|
7908
|
+
content:
|
|
7909
|
+
application/json:
|
|
7910
|
+
schema:
|
|
7911
|
+
$ref: "#/components/schemas/PutRepoWikiJsonDto"
|
|
7912
|
+
responses:
|
|
7913
|
+
"200":
|
|
7914
|
+
description: Stored override
|
|
7915
|
+
content:
|
|
7916
|
+
application/json:
|
|
7917
|
+
schema:
|
|
7918
|
+
$ref: "#/components/schemas/RepoWikiJsonDto"
|
|
7919
|
+
"400":
|
|
7920
|
+
description: Invalid document
|
|
7921
|
+
"401":
|
|
7922
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7923
|
+
"403":
|
|
7924
|
+
description: Workspace admin required
|
|
7925
|
+
"404":
|
|
7926
|
+
description: Repository not found
|
|
7927
|
+
|
|
7716
7928
|
/workspaces/{workspaceId}/code-chat/indexes/{indexId}/wiki/export:
|
|
7717
7929
|
get:
|
|
7718
7930
|
tags: [CodeChat]
|
|
@@ -10728,6 +10940,47 @@ components:
|
|
|
10728
10940
|
type: string
|
|
10729
10941
|
nullable: true
|
|
10730
10942
|
minLength: 1
|
|
10943
|
+
wikiGuidance:
|
|
10944
|
+
allOf:
|
|
10945
|
+
- $ref: "#/components/schemas/CodeWikiGuidanceDto"
|
|
10946
|
+
nullable: true
|
|
10947
|
+
description: >
|
|
10948
|
+
Deep Wiki documentation focus for this workspace. Steers topic planning when
|
|
10949
|
+
generating Engineering Context wiki pages. Optional in-repo `.aidrivensdlc/wiki.json`
|
|
10950
|
+
still overrides the topic outline when present.
|
|
10951
|
+
|
|
10952
|
+
CodeWikiGuidanceTopicDto:
|
|
10953
|
+
type: object
|
|
10954
|
+
required: [title, purpose]
|
|
10955
|
+
properties:
|
|
10956
|
+
title:
|
|
10957
|
+
type: string
|
|
10958
|
+
minLength: 1
|
|
10959
|
+
maxLength: 120
|
|
10960
|
+
purpose:
|
|
10961
|
+
type: string
|
|
10962
|
+
minLength: 1
|
|
10963
|
+
maxLength: 800
|
|
10964
|
+
parentTitle:
|
|
10965
|
+
type: string
|
|
10966
|
+
nullable: true
|
|
10967
|
+
maxLength: 120
|
|
10968
|
+
description: Title of the parent topic for hierarchy (must match another topic title).
|
|
10969
|
+
|
|
10970
|
+
CodeWikiGuidanceDto:
|
|
10971
|
+
type: object
|
|
10972
|
+
properties:
|
|
10973
|
+
guidance:
|
|
10974
|
+
type: string
|
|
10975
|
+
maxLength: 10000
|
|
10976
|
+
description: Free-form notes describing what the wiki should emphasize.
|
|
10977
|
+
default: ""
|
|
10978
|
+
topics:
|
|
10979
|
+
type: array
|
|
10980
|
+
maxItems: 30
|
|
10981
|
+
items:
|
|
10982
|
+
$ref: "#/components/schemas/CodeWikiGuidanceTopicDto"
|
|
10983
|
+
description: Preferred topic outline for Deep Wiki pages.
|
|
10731
10984
|
|
|
10732
10985
|
WorkspaceConfigDto:
|
|
10733
10986
|
type: object
|
|
@@ -10806,6 +11059,12 @@ components:
|
|
|
10806
11059
|
Federated-readiness delivery topology: which connected repos hold terraform /
|
|
10807
11060
|
gitops / ci_templates / api_contracts truth for this workspace. Null when not
|
|
10808
11061
|
configured. Change via `PUT /workspaces/{workspaceId}/delivery-topology`.
|
|
11062
|
+
codeWikiGuidance:
|
|
11063
|
+
allOf:
|
|
11064
|
+
- $ref: "#/components/schemas/CodeWikiGuidanceDto"
|
|
11065
|
+
description: >
|
|
11066
|
+
Deep Wiki documentation focus for this workspace (guidance notes + optional topic outline).
|
|
11067
|
+
Saved via `PUT /workspaces/{workspaceId}/code-intelligence` (`wikiGuidance`).
|
|
10809
11068
|
|
|
10810
11069
|
DeliveryRoleConfigDto:
|
|
10811
11070
|
type: object
|
|
@@ -18300,6 +18559,13 @@ components:
|
|
|
18300
18559
|
description: >
|
|
18301
18560
|
Human-readable indexing stage while a job is running (queued, clone, graph,
|
|
18302
18561
|
save, wiki). Cleared when the index is ready or failed.
|
|
18562
|
+
knowledgeJob:
|
|
18563
|
+
allOf:
|
|
18564
|
+
- $ref: "#/components/schemas/CodeKnowledgeJobDto"
|
|
18565
|
+
nullable: true
|
|
18566
|
+
description: >
|
|
18567
|
+
Active knowledge job for this repo when status is queued/running — phase, tracks,
|
|
18568
|
+
and token/cost rollups for SPA transparency (Wave 1).
|
|
18303
18569
|
indexedAt: { type: string, format: date-time, nullable: true }
|
|
18304
18570
|
createdAt: { type: string, format: date-time }
|
|
18305
18571
|
updatedAt: { type: string, format: date-time }
|
|
@@ -18307,6 +18573,60 @@ components:
|
|
|
18307
18573
|
type: boolean
|
|
18308
18574
|
description: True when the indexed graph stores durable code excerpts (required for useful chat answers).
|
|
18309
18575
|
|
|
18576
|
+
CodeKnowledgeJobDto:
|
|
18577
|
+
type: object
|
|
18578
|
+
required:
|
|
18579
|
+
- id
|
|
18580
|
+
- workspaceId
|
|
18581
|
+
- repoId
|
|
18582
|
+
- status
|
|
18583
|
+
- inputTokensTotal
|
|
18584
|
+
- outputTokensTotal
|
|
18585
|
+
- estimatedCostUsdTotal
|
|
18586
|
+
- llmInvocationCount
|
|
18587
|
+
- createdAt
|
|
18588
|
+
- updatedAt
|
|
18589
|
+
properties:
|
|
18590
|
+
id: { type: string, format: uuid }
|
|
18591
|
+
workspaceId: { type: string, format: uuid }
|
|
18592
|
+
repoId: { type: string, format: uuid }
|
|
18593
|
+
indexId: { type: string, format: uuid, nullable: true }
|
|
18594
|
+
status:
|
|
18595
|
+
type: string
|
|
18596
|
+
enum: [queued, running, completed, failed]
|
|
18597
|
+
phase:
|
|
18598
|
+
type: string
|
|
18599
|
+
nullable: true
|
|
18600
|
+
enum: [cloning, indexing, track_a, track_b, completing]
|
|
18601
|
+
description: Coarse UX phase while status=running.
|
|
18602
|
+
phaseDetail:
|
|
18603
|
+
type: string
|
|
18604
|
+
nullable: true
|
|
18605
|
+
description: Human-readable detail (e.g. enriching · page 3/8 · how-it-works).
|
|
18606
|
+
phaseUpdatedAt: { type: string, format: date-time, nullable: true }
|
|
18607
|
+
trackAStatus:
|
|
18608
|
+
$ref: "#/components/schemas/CodeKnowledgeTrackStatus"
|
|
18609
|
+
trackBStatus:
|
|
18610
|
+
$ref: "#/components/schemas/CodeKnowledgeTrackStatus"
|
|
18611
|
+
graphStatus:
|
|
18612
|
+
$ref: "#/components/schemas/CodeKnowledgeTrackStatus"
|
|
18613
|
+
inputTokensTotal: { type: integer, minimum: 0 }
|
|
18614
|
+
outputTokensTotal: { type: integer, minimum: 0 }
|
|
18615
|
+
estimatedCostUsdTotal: { type: number, minimum: 0 }
|
|
18616
|
+
llmInvocationCount: { type: integer, minimum: 0 }
|
|
18617
|
+
lastProvider: { type: string, nullable: true }
|
|
18618
|
+
lastModel: { type: string, nullable: true }
|
|
18619
|
+
lastKeySource: { type: string, nullable: true }
|
|
18620
|
+
errorMessage: { type: string, nullable: true }
|
|
18621
|
+
createdAt: { type: string, format: date-time }
|
|
18622
|
+
updatedAt: { type: string, format: date-time }
|
|
18623
|
+
|
|
18624
|
+
CodeKnowledgeTrackStatus:
|
|
18625
|
+
type: string
|
|
18626
|
+
nullable: true
|
|
18627
|
+
enum: [pending, running, completed, skipped, failed]
|
|
18628
|
+
description: Per-track status for dual-track Deep Wiki (Track A skeleton, Track B enrich, graph index).
|
|
18629
|
+
|
|
18310
18630
|
CodeChatIndexListDto:
|
|
18311
18631
|
type: object
|
|
18312
18632
|
required: [items]
|
|
@@ -18439,6 +18759,10 @@ components:
|
|
|
18439
18759
|
required: [content]
|
|
18440
18760
|
properties:
|
|
18441
18761
|
content: { type: string, minLength: 1, maxLength: 8000 }
|
|
18762
|
+
persona:
|
|
18763
|
+
type: string
|
|
18764
|
+
enum: [engineer, lead, pm]
|
|
18765
|
+
description: Optional Ask tone preference (FE localStorage / request — not a DB role)
|
|
18442
18766
|
|
|
18443
18767
|
CodeChatMessageReplyDto:
|
|
18444
18768
|
allOf:
|
|
@@ -18463,6 +18787,25 @@ components:
|
|
|
18463
18787
|
type: array
|
|
18464
18788
|
items: { type: string }
|
|
18465
18789
|
description: Repository names whose wiki pages grounded the answer
|
|
18790
|
+
groundedInPlatform:
|
|
18791
|
+
type: boolean
|
|
18792
|
+
description: True when platform evidence tools P–U contributed facts
|
|
18793
|
+
platformToolIds:
|
|
18794
|
+
type: array
|
|
18795
|
+
items: { type: string }
|
|
18796
|
+
description: Tool ids that returned data (e.g. readiness_summary)
|
|
18797
|
+
intent:
|
|
18798
|
+
type: string
|
|
18799
|
+
enum:
|
|
18800
|
+
- inventory_apis
|
|
18801
|
+
- inventory_modules
|
|
18802
|
+
- explain
|
|
18803
|
+
- platform_ops
|
|
18804
|
+
- feature_impact
|
|
18805
|
+
- prd_request
|
|
18806
|
+
description: Classified Ask intent for the turn
|
|
18807
|
+
usage:
|
|
18808
|
+
$ref: "#/components/schemas/CodeIntelligenceUsageDto"
|
|
18466
18809
|
|
|
18467
18810
|
CodeChatApiRouteRowDto:
|
|
18468
18811
|
type: object
|
|
@@ -18533,9 +18876,298 @@ components:
|
|
|
18533
18876
|
type: array
|
|
18534
18877
|
items: { type: string }
|
|
18535
18878
|
diagramMermaid: { type: string, nullable: true }
|
|
18879
|
+
enrichmentStatus:
|
|
18880
|
+
type: string
|
|
18881
|
+
enum: [skeleton, enriched, shallow, needs_review]
|
|
18882
|
+
description: Deep Wiki page quality chip (D6 / D12).
|
|
18536
18883
|
createdAt: { type: string, format: date-time }
|
|
18537
18884
|
updatedAt: { type: string, format: date-time }
|
|
18538
18885
|
|
|
18886
|
+
EffectiveWikiConfigDto:
|
|
18887
|
+
type: object
|
|
18888
|
+
required: [sources, document]
|
|
18889
|
+
properties:
|
|
18890
|
+
sources:
|
|
18891
|
+
type: array
|
|
18892
|
+
description: >-
|
|
18893
|
+
Layers that contributed, in applied order. Later layers win:
|
|
18894
|
+
server_default → workspace_guidance → admin_repo → repo_override.
|
|
18895
|
+
items:
|
|
18896
|
+
type: string
|
|
18897
|
+
enum: [server_default, workspace_guidance, admin_repo, repo_override]
|
|
18898
|
+
repoOverridePath: { type: string, nullable: true }
|
|
18899
|
+
document:
|
|
18900
|
+
type: object
|
|
18901
|
+
additionalProperties: true
|
|
18902
|
+
description: Effective wiki.json document (version, pages, slugAllowlist, diagramPolicies).
|
|
18903
|
+
|
|
18904
|
+
RepoWikiJsonDto:
|
|
18905
|
+
type: object
|
|
18906
|
+
description: Admin-authored wiki.json override stored for a single repository.
|
|
18907
|
+
required: [repoId, repoName, providerSlug, document, hasOverride, updatedAt, updatedBy]
|
|
18908
|
+
properties:
|
|
18909
|
+
repoId: { type: string, format: uuid }
|
|
18910
|
+
repoName: { type: string }
|
|
18911
|
+
providerSlug: { type: string }
|
|
18912
|
+
document:
|
|
18913
|
+
type: object
|
|
18914
|
+
nullable: true
|
|
18915
|
+
additionalProperties: true
|
|
18916
|
+
description: Stored wiki.json document, or null when no override is set.
|
|
18917
|
+
hasOverride: { type: boolean }
|
|
18918
|
+
updatedAt: { type: string, format: date-time, nullable: true }
|
|
18919
|
+
updatedBy: { type: string, format: uuid, nullable: true }
|
|
18920
|
+
|
|
18921
|
+
PutRepoWikiJsonDto:
|
|
18922
|
+
type: object
|
|
18923
|
+
description: >-
|
|
18924
|
+
Wiki.json override to store. Send `document: null`, or a document with no usable
|
|
18925
|
+
pages, notes, allowlist, or diagram policies, to clear the override.
|
|
18926
|
+
properties:
|
|
18927
|
+
document:
|
|
18928
|
+
type: object
|
|
18929
|
+
nullable: true
|
|
18930
|
+
additionalProperties: true
|
|
18931
|
+
|
|
18932
|
+
RepoWikiJsonSummaryDto:
|
|
18933
|
+
type: object
|
|
18934
|
+
required: [repoId, repoName, providerSlug, hasOverride, updatedAt, updatedBy]
|
|
18935
|
+
properties:
|
|
18936
|
+
repoId: { type: string, format: uuid }
|
|
18937
|
+
repoName: { type: string }
|
|
18938
|
+
providerSlug: { type: string }
|
|
18939
|
+
hasOverride: { type: boolean }
|
|
18940
|
+
updatedAt: { type: string, format: date-time, nullable: true }
|
|
18941
|
+
updatedBy: { type: string, format: uuid, nullable: true }
|
|
18942
|
+
|
|
18943
|
+
RepoWikiJsonSummaryListDto:
|
|
18944
|
+
type: object
|
|
18945
|
+
required: [items]
|
|
18946
|
+
properties:
|
|
18947
|
+
items:
|
|
18948
|
+
type: array
|
|
18949
|
+
items: { $ref: "#/components/schemas/RepoWikiJsonSummaryDto" }
|
|
18950
|
+
|
|
18951
|
+
GenerateWorkspaceKnowledgePagesBodyDto:
|
|
18952
|
+
type: object
|
|
18953
|
+
properties:
|
|
18954
|
+
repoIds:
|
|
18955
|
+
type: array
|
|
18956
|
+
description: Ready repository indexes to synthesize from. Omit or send empty for all ready indexes.
|
|
18957
|
+
items: { type: string, format: uuid }
|
|
18958
|
+
|
|
18959
|
+
GenerateWorkspaceKnowledgePagesResultDto:
|
|
18960
|
+
type: object
|
|
18961
|
+
required: [items, mode, repoIds]
|
|
18962
|
+
properties:
|
|
18963
|
+
items:
|
|
18964
|
+
type: array
|
|
18965
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgePageDto" }
|
|
18966
|
+
mode:
|
|
18967
|
+
type: string
|
|
18968
|
+
enum: [deterministic, llm]
|
|
18969
|
+
description: llm when a model produced page bodies; deterministic when synthesized from wiki text alone.
|
|
18970
|
+
repoIds:
|
|
18971
|
+
type: array
|
|
18972
|
+
items: { type: string, format: uuid }
|
|
18973
|
+
platformToolIds:
|
|
18974
|
+
type: array
|
|
18975
|
+
items: { type: string }
|
|
18976
|
+
description: Platform evidence tool ids that contributed facts (P–U)
|
|
18977
|
+
usage:
|
|
18978
|
+
$ref: "#/components/schemas/CodeIntelligenceUsageDto"
|
|
18979
|
+
|
|
18980
|
+
GeneratePrdDraftBodyDto:
|
|
18981
|
+
type: object
|
|
18982
|
+
required: [featureIntent]
|
|
18983
|
+
properties:
|
|
18984
|
+
featureIntent:
|
|
18985
|
+
type: string
|
|
18986
|
+
minLength: 1
|
|
18987
|
+
maxLength: 4000
|
|
18988
|
+
description: Feature or change the PRD should describe
|
|
18989
|
+
repoIds:
|
|
18990
|
+
type: array
|
|
18991
|
+
description: Ready repository indexes to analyze. Omit or send empty for all ready indexes.
|
|
18992
|
+
items: { type: string, format: uuid }
|
|
18993
|
+
persona:
|
|
18994
|
+
type: string
|
|
18995
|
+
enum: [engineer, lead, pm]
|
|
18996
|
+
description: Draft voice preference (FE localStorage / request)
|
|
18997
|
+
|
|
18998
|
+
GeneratePrdDraftResultDto:
|
|
18999
|
+
type: object
|
|
19000
|
+
required: [item, mode, repoIds, slug]
|
|
19001
|
+
properties:
|
|
19002
|
+
item: { $ref: "#/components/schemas/WorkspaceKnowledgePageDto" }
|
|
19003
|
+
mode:
|
|
19004
|
+
type: string
|
|
19005
|
+
enum: [deterministic, llm]
|
|
19006
|
+
repoIds:
|
|
19007
|
+
type: array
|
|
19008
|
+
items: { type: string, format: uuid }
|
|
19009
|
+
slug:
|
|
19010
|
+
type: string
|
|
19011
|
+
description: Persisted workspace knowledge page slug (prd-draft or prd-<safe-slug>)
|
|
19012
|
+
usage:
|
|
19013
|
+
$ref: "#/components/schemas/CodeIntelligenceUsageDto"
|
|
19014
|
+
|
|
19015
|
+
WorkspaceKnowledgePageDto:
|
|
19016
|
+
type: object
|
|
19017
|
+
required:
|
|
19018
|
+
[
|
|
19019
|
+
id,
|
|
19020
|
+
workspaceId,
|
|
19021
|
+
slug,
|
|
19022
|
+
title,
|
|
19023
|
+
bodyMd,
|
|
19024
|
+
sortOrder,
|
|
19025
|
+
sourceRepoIds,
|
|
19026
|
+
status,
|
|
19027
|
+
createdAt,
|
|
19028
|
+
updatedAt,
|
|
19029
|
+
]
|
|
19030
|
+
properties:
|
|
19031
|
+
id: { type: string, format: uuid }
|
|
19032
|
+
workspaceId: { type: string, format: uuid }
|
|
19033
|
+
slug: { type: string }
|
|
19034
|
+
title: { type: string }
|
|
19035
|
+
bodyMd: { type: string }
|
|
19036
|
+
sortOrder: { type: integer }
|
|
19037
|
+
sourceRepoIds:
|
|
19038
|
+
type: array
|
|
19039
|
+
items: { type: string, format: uuid }
|
|
19040
|
+
status:
|
|
19041
|
+
type: string
|
|
19042
|
+
enum: [draft, published, needs_review]
|
|
19043
|
+
createdAt: { type: string, format: date-time }
|
|
19044
|
+
updatedAt: { type: string, format: date-time }
|
|
19045
|
+
excerpt:
|
|
19046
|
+
type: string
|
|
19047
|
+
description: First readable prose sentence for list previews
|
|
19048
|
+
sourceRepoNames:
|
|
19049
|
+
type: array
|
|
19050
|
+
items: { type: string }
|
|
19051
|
+
description: Display names for sourceRepoIds when resolvable
|
|
19052
|
+
|
|
19053
|
+
WorkspaceKnowledgeSystemContextDto:
|
|
19054
|
+
type: object
|
|
19055
|
+
required: [indexes, platformToolIds, platformMissingToolIds]
|
|
19056
|
+
properties:
|
|
19057
|
+
indexes:
|
|
19058
|
+
type: array
|
|
19059
|
+
items:
|
|
19060
|
+
type: object
|
|
19061
|
+
required: [repoId, repoName, indexId, nodeCount, edgeCount]
|
|
19062
|
+
properties:
|
|
19063
|
+
repoId: { type: string, format: uuid }
|
|
19064
|
+
repoName: { type: string }
|
|
19065
|
+
indexId: { type: string, format: uuid }
|
|
19066
|
+
nodeCount: { type: integer }
|
|
19067
|
+
edgeCount: { type: integer }
|
|
19068
|
+
commitSha: { type: string, nullable: true }
|
|
19069
|
+
indexer: { type: string, nullable: true }
|
|
19070
|
+
knowledgeJobPhase: { type: string, nullable: true }
|
|
19071
|
+
knowledgeJobStatus: { type: string, nullable: true }
|
|
19072
|
+
platformToolIds:
|
|
19073
|
+
type: array
|
|
19074
|
+
items: { type: string }
|
|
19075
|
+
platformMissingToolIds:
|
|
19076
|
+
type: array
|
|
19077
|
+
items: { type: string }
|
|
19078
|
+
platformSnippet:
|
|
19079
|
+
type: string
|
|
19080
|
+
description: Bounded markdown summary of platform evidence for the system panel
|
|
19081
|
+
|
|
19082
|
+
WorkspaceKnowledgePageListDto:
|
|
19083
|
+
type: object
|
|
19084
|
+
required: [items]
|
|
19085
|
+
properties:
|
|
19086
|
+
items:
|
|
19087
|
+
type: array
|
|
19088
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgePageDto" }
|
|
19089
|
+
systemContext:
|
|
19090
|
+
$ref: "#/components/schemas/WorkspaceKnowledgeSystemContextDto"
|
|
19091
|
+
|
|
19092
|
+
CodeIntelligenceUsageDto:
|
|
19093
|
+
type: object
|
|
19094
|
+
required: [operation, provider, inputTokens, outputTokens]
|
|
19095
|
+
properties:
|
|
19096
|
+
operation:
|
|
19097
|
+
type: string
|
|
19098
|
+
description: Ledger operation key (code_chat, prd_generate, workspace_kb, wiki_json_outline, wiki_enrich, …)
|
|
19099
|
+
provider: { type: string }
|
|
19100
|
+
model: { type: string, nullable: true }
|
|
19101
|
+
inputTokens: { type: integer, minimum: 0 }
|
|
19102
|
+
outputTokens: { type: integer, minimum: 0 }
|
|
19103
|
+
estimatedCostUsd: { type: number, nullable: true }
|
|
19104
|
+
estimated: { type: boolean }
|
|
19105
|
+
|
|
19106
|
+
CodeIntelligenceTokenUsageByOperationDto:
|
|
19107
|
+
type: object
|
|
19108
|
+
required: [operation, inputTokens, outputTokens, estimatedCostUsd, invocationCount]
|
|
19109
|
+
properties:
|
|
19110
|
+
operation: { type: string }
|
|
19111
|
+
inputTokens: { type: integer, minimum: 0 }
|
|
19112
|
+
outputTokens: { type: integer, minimum: 0 }
|
|
19113
|
+
estimatedCostUsd: { type: number }
|
|
19114
|
+
invocationCount: { type: integer, minimum: 0 }
|
|
19115
|
+
|
|
19116
|
+
CodeIntelligenceTokenUsageByRepoDto:
|
|
19117
|
+
type: object
|
|
19118
|
+
required:
|
|
19119
|
+
- repoId
|
|
19120
|
+
- inputTokens
|
|
19121
|
+
- outputTokens
|
|
19122
|
+
- estimatedCostUsd
|
|
19123
|
+
- invocationCount
|
|
19124
|
+
- byOperation
|
|
19125
|
+
properties:
|
|
19126
|
+
repoId: { type: string, format: uuid }
|
|
19127
|
+
repoName: { type: string, nullable: true }
|
|
19128
|
+
inputTokens: { type: integer, minimum: 0 }
|
|
19129
|
+
outputTokens: { type: integer, minimum: 0 }
|
|
19130
|
+
estimatedCostUsd: { type: number }
|
|
19131
|
+
invocationCount: { type: integer, minimum: 0 }
|
|
19132
|
+
byOperation:
|
|
19133
|
+
type: array
|
|
19134
|
+
items: { $ref: "#/components/schemas/CodeIntelligenceTokenUsageByOperationDto" }
|
|
19135
|
+
|
|
19136
|
+
CodeIntelligenceTokenUsageSummaryDto:
|
|
19137
|
+
type: object
|
|
19138
|
+
required:
|
|
19139
|
+
- days
|
|
19140
|
+
- inputTokensTotal
|
|
19141
|
+
- outputTokensTotal
|
|
19142
|
+
- estimatedCostUsdTotal
|
|
19143
|
+
- invocationCountTotal
|
|
19144
|
+
- byOperation
|
|
19145
|
+
- byRepo
|
|
19146
|
+
properties:
|
|
19147
|
+
days: { type: integer, minimum: 1, maximum: 90 }
|
|
19148
|
+
inputTokensTotal: { type: integer, minimum: 0 }
|
|
19149
|
+
outputTokensTotal: { type: integer, minimum: 0 }
|
|
19150
|
+
estimatedCostUsdTotal: { type: number }
|
|
19151
|
+
invocationCountTotal: { type: integer, minimum: 0 }
|
|
19152
|
+
costEstimated:
|
|
19153
|
+
type: boolean
|
|
19154
|
+
description: >-
|
|
19155
|
+
True when any cost was derived from published model rates because the provider
|
|
19156
|
+
reported tokens without a price (for example the Cursor agent CLI).
|
|
19157
|
+
costBasis:
|
|
19158
|
+
type: string
|
|
19159
|
+
nullable: true
|
|
19160
|
+
description: Rate basis used for the derived cost, for display in tooltips.
|
|
19161
|
+
byOperation:
|
|
19162
|
+
type: array
|
|
19163
|
+
items: { $ref: "#/components/schemas/CodeIntelligenceTokenUsageByOperationDto" }
|
|
19164
|
+
byRepo:
|
|
19165
|
+
type: array
|
|
19166
|
+
description: >-
|
|
19167
|
+
Per-repository split (wiki generation, conversations, outline). Only rows with
|
|
19168
|
+
repository attribution appear here; workspace-wide operations stay in totals.
|
|
19169
|
+
items: { $ref: "#/components/schemas/CodeIntelligenceTokenUsageByRepoDto" }
|
|
19170
|
+
|
|
18539
19171
|
CodeChatWikiPageListDto:
|
|
18540
19172
|
type: object
|
|
18541
19173
|
required: [items]
|
|
@@ -18735,7 +19367,26 @@ components:
|
|
|
18735
19367
|
properties:
|
|
18736
19368
|
kind:
|
|
18737
19369
|
type: string
|
|
18738
|
-
enum:
|
|
19370
|
+
enum:
|
|
19371
|
+
[
|
|
19372
|
+
auto,
|
|
19373
|
+
dependency,
|
|
19374
|
+
module,
|
|
19375
|
+
focus,
|
|
19376
|
+
impact,
|
|
19377
|
+
blast,
|
|
19378
|
+
atlas,
|
|
19379
|
+
call_graph,
|
|
19380
|
+
cfg_lite,
|
|
19381
|
+
dataflow,
|
|
19382
|
+
ssa,
|
|
19383
|
+
terraform_deps,
|
|
19384
|
+
layers,
|
|
19385
|
+
domain,
|
|
19386
|
+
runtime,
|
|
19387
|
+
communication,
|
|
19388
|
+
delivery,
|
|
19389
|
+
]
|
|
18739
19390
|
description: >-
|
|
18740
19391
|
Omit or send `auto` to let the server pick the most informative view for the
|
|
18741
19392
|
repository. `blast` traces `query` as a symbol and falls back to a focused
|
|
@@ -18774,7 +19425,24 @@ components:
|
|
|
18774
19425
|
deterministic reading of hubs and areas from the graph.
|
|
18775
19426
|
kind:
|
|
18776
19427
|
type: string
|
|
18777
|
-
enum:
|
|
19428
|
+
enum:
|
|
19429
|
+
[
|
|
19430
|
+
dependency,
|
|
19431
|
+
module,
|
|
19432
|
+
focus,
|
|
19433
|
+
impact,
|
|
19434
|
+
blast,
|
|
19435
|
+
call_graph,
|
|
19436
|
+
cfg_lite,
|
|
19437
|
+
dataflow,
|
|
19438
|
+
ssa,
|
|
19439
|
+
terraform_deps,
|
|
19440
|
+
layers,
|
|
19441
|
+
domain,
|
|
19442
|
+
runtime,
|
|
19443
|
+
communication,
|
|
19444
|
+
delivery,
|
|
19445
|
+
]
|
|
18778
19446
|
description: >-
|
|
18779
19447
|
Which reading of the repository this diagram is. `module` rolls files up
|
|
18780
19448
|
into source groups when too few file dependencies resolved for a file map,
|
|
@@ -18784,6 +19452,69 @@ components:
|
|
|
18784
19452
|
type: array
|
|
18785
19453
|
description: Measured facts about the graph — hubs, dependency coverage, test share, route count.
|
|
18786
19454
|
items: { type: string }
|
|
19455
|
+
structurePanel:
|
|
19456
|
+
type: object
|
|
19457
|
+
description: >-
|
|
19458
|
+
Deterministic reading beside the canvas for layers, domains, dataflow, and SSA.
|
|
19459
|
+
Coverage, heatmaps, and ledgers are derived from the indexed graph — no LLM.
|
|
19460
|
+
required: [kind]
|
|
19461
|
+
properties:
|
|
19462
|
+
kind:
|
|
19463
|
+
type: string
|
|
19464
|
+
enum: [layers, domain, dataflow, ssa]
|
|
19465
|
+
coverage:
|
|
19466
|
+
type: object
|
|
19467
|
+
required:
|
|
19468
|
+
[totalFiles, connectedFiles, dependencyEdges, connectedShare, rollupEdges]
|
|
19469
|
+
properties:
|
|
19470
|
+
totalFiles: { type: integer }
|
|
19471
|
+
connectedFiles: { type: integer }
|
|
19472
|
+
dependencyEdges: { type: integer }
|
|
19473
|
+
connectedShare: { type: number }
|
|
19474
|
+
rollupEdges:
|
|
19475
|
+
type: integer
|
|
19476
|
+
description: Cross-bucket edges in this roll-up, or relation edges shown for dataflow/SSA.
|
|
19477
|
+
axes:
|
|
19478
|
+
type: array
|
|
19479
|
+
description: Ordered axis labels for the heatmap.
|
|
19480
|
+
items: { type: string }
|
|
19481
|
+
matrix:
|
|
19482
|
+
type: array
|
|
19483
|
+
items:
|
|
19484
|
+
type: object
|
|
19485
|
+
required: [from, to, weight]
|
|
19486
|
+
properties:
|
|
19487
|
+
from: { type: string }
|
|
19488
|
+
to: { type: string }
|
|
19489
|
+
weight: { type: integer }
|
|
19490
|
+
focusBuckets:
|
|
19491
|
+
type: array
|
|
19492
|
+
description: >-
|
|
19493
|
+
Layers or domains that own the selected node / query, so roll-up views
|
|
19494
|
+
still answer a selection instead of silently ignoring it.
|
|
19495
|
+
items: { type: string }
|
|
19496
|
+
violations:
|
|
19497
|
+
type: array
|
|
19498
|
+
description: Layer-stack edges that climb the usual API → Service → Data → UI order.
|
|
19499
|
+
items:
|
|
19500
|
+
type: object
|
|
19501
|
+
required: [from, to, weight, reason]
|
|
19502
|
+
properties:
|
|
19503
|
+
from: { type: string }
|
|
19504
|
+
to: { type: string }
|
|
19505
|
+
weight: { type: integer }
|
|
19506
|
+
reason: { type: string }
|
|
19507
|
+
ledger:
|
|
19508
|
+
type: array
|
|
19509
|
+
description: Top dataflow / SSA flows with relation and certainty.
|
|
19510
|
+
items:
|
|
19511
|
+
type: object
|
|
19512
|
+
required: [from, to]
|
|
19513
|
+
properties:
|
|
19514
|
+
from: { type: string }
|
|
19515
|
+
to: { type: string }
|
|
19516
|
+
relation: { type: string }
|
|
19517
|
+
certainty: { type: string }
|
|
18787
19518
|
focus:
|
|
18788
19519
|
type: object
|
|
18789
19520
|
description: Present when free text drove the view.
|