@thinkai/tai-api-contract 2.116.0 → 2.119.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 +498 -1
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +95 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/openapi/openapi.yaml +656 -3
- package/package.json +1 -1
- package/src/generated/openapi.ts +498 -1
- package/src/index.ts +116 -0
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.119.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}/...`.
|
|
@@ -7878,6 +7878,23 @@ paths:
|
|
|
7878
7878
|
"409":
|
|
7879
7879
|
description: No ready repository index in scope
|
|
7880
7880
|
|
|
7881
|
+
/workspaces/{workspaceId}/knowledge-pages/generate/status:
|
|
7882
|
+
get:
|
|
7883
|
+
tags: [CodeChat]
|
|
7884
|
+
summary: Get live workspace context generation progress
|
|
7885
|
+
operationId: getWorkspaceContextGenerationStatus
|
|
7886
|
+
parameters:
|
|
7887
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7888
|
+
responses:
|
|
7889
|
+
"200":
|
|
7890
|
+
description: Current or most recent workspace context generation phase
|
|
7891
|
+
content:
|
|
7892
|
+
application/json:
|
|
7893
|
+
schema:
|
|
7894
|
+
$ref: "#/components/schemas/WorkspaceContextGenerationStatusDto"
|
|
7895
|
+
"401":
|
|
7896
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7897
|
+
|
|
7881
7898
|
/workspaces/{workspaceId}/knowledge-pages/prd/generate:
|
|
7882
7899
|
post:
|
|
7883
7900
|
tags: [CodeChat]
|
|
@@ -7911,6 +7928,73 @@ paths:
|
|
|
7911
7928
|
"409":
|
|
7912
7929
|
description: No ready repository index in scope
|
|
7913
7930
|
|
|
7931
|
+
/workspaces/{workspaceId}/knowledge-graph:
|
|
7932
|
+
get:
|
|
7933
|
+
tags: [CodeChat]
|
|
7934
|
+
summary: Get the persisted workspace knowledge graph
|
|
7935
|
+
description: >-
|
|
7936
|
+
Cross-repository graph (repo nodes and dependency edges) built when workspace
|
|
7937
|
+
knowledge pages are generated. Empty until the first successful generate.
|
|
7938
|
+
operationId: getWorkspaceKnowledgeGraph
|
|
7939
|
+
parameters:
|
|
7940
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7941
|
+
responses:
|
|
7942
|
+
"200":
|
|
7943
|
+
description: Workspace knowledge graph
|
|
7944
|
+
content:
|
|
7945
|
+
application/json:
|
|
7946
|
+
schema:
|
|
7947
|
+
$ref: "#/components/schemas/WorkspaceKnowledgeGraphDto"
|
|
7948
|
+
"401":
|
|
7949
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7950
|
+
"404":
|
|
7951
|
+
description: Graph not generated yet
|
|
7952
|
+
|
|
7953
|
+
/workspaces/{workspaceId}/knowledge-pages/export:
|
|
7954
|
+
get:
|
|
7955
|
+
tags: [CodeChat]
|
|
7956
|
+
summary: Export workspace knowledge for local use
|
|
7957
|
+
description: >-
|
|
7958
|
+
Download workspace context as `WORKSPACE.md` (markdown) or a structured
|
|
7959
|
+
`wkg-pack` JSON bundle. Markdown rewrites `ecg://` deep links per `linkMode`.
|
|
7960
|
+
operationId: exportWorkspaceKnowledgePages
|
|
7961
|
+
parameters:
|
|
7962
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7963
|
+
- name: format
|
|
7964
|
+
in: query
|
|
7965
|
+
required: false
|
|
7966
|
+
schema:
|
|
7967
|
+
type: string
|
|
7968
|
+
enum: [markdown, wkg-pack, zip]
|
|
7969
|
+
default: markdown
|
|
7970
|
+
- name: linkMode
|
|
7971
|
+
in: query
|
|
7972
|
+
required: false
|
|
7973
|
+
description: How to rewrite ecg:// links in markdown export
|
|
7974
|
+
schema:
|
|
7975
|
+
type: string
|
|
7976
|
+
enum: [github, platform, relative]
|
|
7977
|
+
default: github
|
|
7978
|
+
responses:
|
|
7979
|
+
"200":
|
|
7980
|
+
description: Export payload (markdown body or wkg-pack JSON)
|
|
7981
|
+
content:
|
|
7982
|
+
text/markdown:
|
|
7983
|
+
schema:
|
|
7984
|
+
type: string
|
|
7985
|
+
description: WORKSPACE.md body when format=markdown
|
|
7986
|
+
application/json:
|
|
7987
|
+
schema:
|
|
7988
|
+
$ref: "#/components/schemas/WorkspaceKnowledgePackDto"
|
|
7989
|
+
"401":
|
|
7990
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7991
|
+
"403":
|
|
7992
|
+
description: Code Intelligence is disabled for this workspace
|
|
7993
|
+
"404":
|
|
7994
|
+
description: No workspace knowledge pages to export
|
|
7995
|
+
"501":
|
|
7996
|
+
description: ZIP export not implemented (use markdown or wkg-pack)
|
|
7997
|
+
|
|
7914
7998
|
/workspaces/{workspaceId}/code-intelligence/repo-wiki-json:
|
|
7915
7999
|
get:
|
|
7916
8000
|
tags: [CodeChat]
|
|
@@ -9325,6 +9409,30 @@ paths:
|
|
|
9325
9409
|
"503":
|
|
9326
9410
|
$ref: "#/components/responses/ZenHrSyncInProgress"
|
|
9327
9411
|
|
|
9412
|
+
/workspaces/{workspaceId}/ingest-coverage:
|
|
9413
|
+
get:
|
|
9414
|
+
tags: [Workspace]
|
|
9415
|
+
summary: Ingest / backfill data coverage
|
|
9416
|
+
operationId: getWorkspaceIngestCoverage
|
|
9417
|
+
description: >
|
|
9418
|
+
Read-only snapshot of historical ingest coverage for connected pipelines
|
|
9419
|
+
(productivity GitHub, AI usage/spend per provider, SDLC components, monitoring, HRIS).
|
|
9420
|
+
Aggregates existing watermarks and stored day/week evidence — does not trigger ingest or refresh.
|
|
9421
|
+
Requires workspace membership. Disconnected sources are omitted.
|
|
9422
|
+
parameters:
|
|
9423
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
9424
|
+
responses:
|
|
9425
|
+
"200":
|
|
9426
|
+
description: Ingest coverage for connected pipelines
|
|
9427
|
+
content:
|
|
9428
|
+
application/json:
|
|
9429
|
+
schema:
|
|
9430
|
+
$ref: "#/components/schemas/IngestCoverageDto"
|
|
9431
|
+
"401":
|
|
9432
|
+
$ref: "#/components/responses/Unauthorized"
|
|
9433
|
+
"403":
|
|
9434
|
+
$ref: "#/components/responses/Forbidden"
|
|
9435
|
+
|
|
9328
9436
|
/workspaces/{workspaceId}/hris/status:
|
|
9329
9437
|
get:
|
|
9330
9438
|
tags: [HRIS]
|
|
@@ -17661,6 +17769,289 @@ components:
|
|
|
17661
17769
|
nullable: true
|
|
17662
17770
|
description: ISO timestamp of the most recent successful HRIS sync, or null if never synced.
|
|
17663
17771
|
|
|
17772
|
+
IngestCoverageGapDto:
|
|
17773
|
+
type: object
|
|
17774
|
+
required: [from, to]
|
|
17775
|
+
additionalProperties: false
|
|
17776
|
+
properties:
|
|
17777
|
+
from:
|
|
17778
|
+
type: string
|
|
17779
|
+
description: Inclusive gap start (ISO date or UTC Monday week start).
|
|
17780
|
+
to:
|
|
17781
|
+
type: string
|
|
17782
|
+
description: Inclusive gap end (ISO date or UTC Monday week start).
|
|
17783
|
+
|
|
17784
|
+
IngestCoverageLastRunDto:
|
|
17785
|
+
type: object
|
|
17786
|
+
additionalProperties: false
|
|
17787
|
+
properties:
|
|
17788
|
+
startedAt:
|
|
17789
|
+
type: string
|
|
17790
|
+
format: date-time
|
|
17791
|
+
nullable: true
|
|
17792
|
+
completedAt:
|
|
17793
|
+
type: string
|
|
17794
|
+
format: date-time
|
|
17795
|
+
nullable: true
|
|
17796
|
+
durationMs:
|
|
17797
|
+
type: integer
|
|
17798
|
+
format: int64
|
|
17799
|
+
nullable: true
|
|
17800
|
+
mode:
|
|
17801
|
+
type: string
|
|
17802
|
+
nullable: true
|
|
17803
|
+
description: Pipeline-specific run mode (e.g. recent, historical, refresh).
|
|
17804
|
+
outcome:
|
|
17805
|
+
type: string
|
|
17806
|
+
enum: [ok, failed, in_progress]
|
|
17807
|
+
nullable: true
|
|
17808
|
+
|
|
17809
|
+
IngestCoverageProductivityRepoDto:
|
|
17810
|
+
type: object
|
|
17811
|
+
required: [slug, queueStatus]
|
|
17812
|
+
additionalProperties: false
|
|
17813
|
+
properties:
|
|
17814
|
+
slug:
|
|
17815
|
+
type: string
|
|
17816
|
+
queueStatus:
|
|
17817
|
+
type: string
|
|
17818
|
+
enum: [pending, complete, failed, skipped]
|
|
17819
|
+
weeksWithData:
|
|
17820
|
+
type: integer
|
|
17821
|
+
minimum: 0
|
|
17822
|
+
nullable: true
|
|
17823
|
+
earliestWeek:
|
|
17824
|
+
type: string
|
|
17825
|
+
nullable: true
|
|
17826
|
+
latestWeek:
|
|
17827
|
+
type: string
|
|
17828
|
+
nullable: true
|
|
17829
|
+
missingWeeks:
|
|
17830
|
+
type: integer
|
|
17831
|
+
minimum: 0
|
|
17832
|
+
nullable: true
|
|
17833
|
+
gaps:
|
|
17834
|
+
type: array
|
|
17835
|
+
items:
|
|
17836
|
+
$ref: "#/components/schemas/IngestCoverageGapDto"
|
|
17837
|
+
lastErrorKind:
|
|
17838
|
+
type: string
|
|
17839
|
+
nullable: true
|
|
17840
|
+
|
|
17841
|
+
IngestCoverageProductivityDetailDto:
|
|
17842
|
+
type: object
|
|
17843
|
+
additionalProperties: false
|
|
17844
|
+
properties:
|
|
17845
|
+
phase:
|
|
17846
|
+
type: string
|
|
17847
|
+
enum: [recent, historical, complete]
|
|
17848
|
+
nullable: true
|
|
17849
|
+
historicalWeekStart:
|
|
17850
|
+
type: string
|
|
17851
|
+
nullable: true
|
|
17852
|
+
pendingRepoCount:
|
|
17853
|
+
type: integer
|
|
17854
|
+
minimum: 0
|
|
17855
|
+
skippedRepoCount:
|
|
17856
|
+
type: integer
|
|
17857
|
+
minimum: 0
|
|
17858
|
+
failedRepoCount:
|
|
17859
|
+
type: integer
|
|
17860
|
+
minimum: 0
|
|
17861
|
+
coveragePercent:
|
|
17862
|
+
type: number
|
|
17863
|
+
nullable: true
|
|
17864
|
+
repos:
|
|
17865
|
+
type: array
|
|
17866
|
+
items:
|
|
17867
|
+
$ref: "#/components/schemas/IngestCoverageProductivityRepoDto"
|
|
17868
|
+
|
|
17869
|
+
IngestCoverageFactFamilyDto:
|
|
17870
|
+
type: object
|
|
17871
|
+
required: [id]
|
|
17872
|
+
additionalProperties: false
|
|
17873
|
+
properties:
|
|
17874
|
+
id:
|
|
17875
|
+
type: string
|
|
17876
|
+
enum: [daily_usage, spend_daily, model_daily, product_daily]
|
|
17877
|
+
expectedDays:
|
|
17878
|
+
type: integer
|
|
17879
|
+
minimum: 0
|
|
17880
|
+
daysPresent:
|
|
17881
|
+
type: integer
|
|
17882
|
+
minimum: 0
|
|
17883
|
+
ingestedFrom:
|
|
17884
|
+
type: string
|
|
17885
|
+
nullable: true
|
|
17886
|
+
ingestedTo:
|
|
17887
|
+
type: string
|
|
17888
|
+
nullable: true
|
|
17889
|
+
missingDayCount:
|
|
17890
|
+
type: integer
|
|
17891
|
+
minimum: 0
|
|
17892
|
+
gaps:
|
|
17893
|
+
type: array
|
|
17894
|
+
items:
|
|
17895
|
+
$ref: "#/components/schemas/IngestCoverageGapDto"
|
|
17896
|
+
|
|
17897
|
+
IngestCoverageAiDetailDto:
|
|
17898
|
+
type: object
|
|
17899
|
+
additionalProperties: false
|
|
17900
|
+
properties:
|
|
17901
|
+
factFamilies:
|
|
17902
|
+
type: array
|
|
17903
|
+
items:
|
|
17904
|
+
$ref: "#/components/schemas/IngestCoverageFactFamilyDto"
|
|
17905
|
+
refreshInProgress:
|
|
17906
|
+
type: boolean
|
|
17907
|
+
|
|
17908
|
+
IngestCoverageSdlcComponentDto:
|
|
17909
|
+
type: object
|
|
17910
|
+
required: [id]
|
|
17911
|
+
additionalProperties: false
|
|
17912
|
+
properties:
|
|
17913
|
+
id:
|
|
17914
|
+
type: string
|
|
17915
|
+
enum:
|
|
17916
|
+
[
|
|
17917
|
+
rollup,
|
|
17918
|
+
security_ingest,
|
|
17919
|
+
governance_github,
|
|
17920
|
+
governance_auditor,
|
|
17921
|
+
financial_ingest,
|
|
17922
|
+
cost_refresher,
|
|
17923
|
+
]
|
|
17924
|
+
latestBucketDate:
|
|
17925
|
+
type: string
|
|
17926
|
+
nullable: true
|
|
17927
|
+
lookbackDays:
|
|
17928
|
+
type: integer
|
|
17929
|
+
minimum: 0
|
|
17930
|
+
mode:
|
|
17931
|
+
type: string
|
|
17932
|
+
nullable: true
|
|
17933
|
+
gaps:
|
|
17934
|
+
type: array
|
|
17935
|
+
items:
|
|
17936
|
+
$ref: "#/components/schemas/IngestCoverageGapDto"
|
|
17937
|
+
missingCount:
|
|
17938
|
+
type: integer
|
|
17939
|
+
minimum: 0
|
|
17940
|
+
nullable: true
|
|
17941
|
+
lastSuccessAt:
|
|
17942
|
+
type: string
|
|
17943
|
+
format: date-time
|
|
17944
|
+
nullable: true
|
|
17945
|
+
staleForMs:
|
|
17946
|
+
type: integer
|
|
17947
|
+
format: int64
|
|
17948
|
+
nullable: true
|
|
17949
|
+
isStale:
|
|
17950
|
+
type: boolean
|
|
17951
|
+
|
|
17952
|
+
IngestCoverageSdlcDetailDto:
|
|
17953
|
+
type: object
|
|
17954
|
+
additionalProperties: false
|
|
17955
|
+
properties:
|
|
17956
|
+
components:
|
|
17957
|
+
type: array
|
|
17958
|
+
items:
|
|
17959
|
+
$ref: "#/components/schemas/IngestCoverageSdlcComponentDto"
|
|
17960
|
+
|
|
17961
|
+
IngestCoverageSyncDetailDto:
|
|
17962
|
+
type: object
|
|
17963
|
+
additionalProperties: false
|
|
17964
|
+
properties:
|
|
17965
|
+
provider:
|
|
17966
|
+
type: string
|
|
17967
|
+
syncStatus:
|
|
17968
|
+
type: string
|
|
17969
|
+
enum: [ok, error, never]
|
|
17970
|
+
|
|
17971
|
+
IngestCoveragePipelineDto:
|
|
17972
|
+
type: object
|
|
17973
|
+
required: [id, kind, status, targetWindowDays, isStale]
|
|
17974
|
+
additionalProperties: false
|
|
17975
|
+
properties:
|
|
17976
|
+
id:
|
|
17977
|
+
type: string
|
|
17978
|
+
kind:
|
|
17979
|
+
type: string
|
|
17980
|
+
enum: [productivity_github, ai_usage, sdlc_github, monitoring, hris]
|
|
17981
|
+
provider:
|
|
17982
|
+
type: string
|
|
17983
|
+
nullable: true
|
|
17984
|
+
status:
|
|
17985
|
+
type: string
|
|
17986
|
+
enum: [not_started, backfilling, incremental, complete, failed, in_progress]
|
|
17987
|
+
targetWindowDays:
|
|
17988
|
+
type: integer
|
|
17989
|
+
minimum: 0
|
|
17990
|
+
ingestedFrom:
|
|
17991
|
+
type: string
|
|
17992
|
+
nullable: true
|
|
17993
|
+
ingestedTo:
|
|
17994
|
+
type: string
|
|
17995
|
+
nullable: true
|
|
17996
|
+
progressPercent:
|
|
17997
|
+
type: number
|
|
17998
|
+
nullable: true
|
|
17999
|
+
lastSuccessAt:
|
|
18000
|
+
type: string
|
|
18001
|
+
format: date-time
|
|
18002
|
+
nullable: true
|
|
18003
|
+
lastAttemptAt:
|
|
18004
|
+
type: string
|
|
18005
|
+
format: date-time
|
|
18006
|
+
nullable: true
|
|
18007
|
+
lastErrorKind:
|
|
18008
|
+
type: string
|
|
18009
|
+
nullable: true
|
|
18010
|
+
lastErrorMessage:
|
|
18011
|
+
type: string
|
|
18012
|
+
nullable: true
|
|
18013
|
+
staleForMs:
|
|
18014
|
+
type: integer
|
|
18015
|
+
format: int64
|
|
18016
|
+
nullable: true
|
|
18017
|
+
isStale:
|
|
18018
|
+
type: boolean
|
|
18019
|
+
dataLagDays:
|
|
18020
|
+
type: integer
|
|
18021
|
+
minimum: 0
|
|
18022
|
+
nullable: true
|
|
18023
|
+
gaps:
|
|
18024
|
+
type: array
|
|
18025
|
+
items:
|
|
18026
|
+
$ref: "#/components/schemas/IngestCoverageGapDto"
|
|
18027
|
+
missingCount:
|
|
18028
|
+
type: integer
|
|
18029
|
+
minimum: 0
|
|
18030
|
+
nullable: true
|
|
18031
|
+
lastRun:
|
|
18032
|
+
$ref: "#/components/schemas/IngestCoverageLastRunDto"
|
|
18033
|
+
productivity:
|
|
18034
|
+
$ref: "#/components/schemas/IngestCoverageProductivityDetailDto"
|
|
18035
|
+
ai:
|
|
18036
|
+
$ref: "#/components/schemas/IngestCoverageAiDetailDto"
|
|
18037
|
+
sdlc:
|
|
18038
|
+
$ref: "#/components/schemas/IngestCoverageSdlcDetailDto"
|
|
18039
|
+
sync:
|
|
18040
|
+
$ref: "#/components/schemas/IngestCoverageSyncDetailDto"
|
|
18041
|
+
|
|
18042
|
+
IngestCoverageDto:
|
|
18043
|
+
type: object
|
|
18044
|
+
required: [pipelines]
|
|
18045
|
+
additionalProperties: false
|
|
18046
|
+
properties:
|
|
18047
|
+
pipelines:
|
|
18048
|
+
type: array
|
|
18049
|
+
items:
|
|
18050
|
+
$ref: "#/components/schemas/IngestCoveragePipelineDto"
|
|
18051
|
+
generatedAt:
|
|
18052
|
+
type: string
|
|
18053
|
+
format: date-time
|
|
18054
|
+
|
|
17664
18055
|
HrisSyncStatusDto:
|
|
17665
18056
|
type: object
|
|
17666
18057
|
required: [provider, lastSyncAt, status]
|
|
@@ -18197,7 +18588,10 @@ components:
|
|
|
18197
18588
|
syncedAt:
|
|
18198
18589
|
type: string
|
|
18199
18590
|
format: date-time
|
|
18200
|
-
description:
|
|
18591
|
+
description: >-
|
|
18592
|
+
ISO timestamp when numbers were computed server-side. An empty string
|
|
18593
|
+
means the workspace has no successful AI-tool refresh or productivity
|
|
18594
|
+
ingest timestamp yet.
|
|
18201
18595
|
isMock:
|
|
18202
18596
|
type: boolean
|
|
18203
18597
|
description: Must be false for production handlers
|
|
@@ -19069,6 +19463,11 @@ components:
|
|
|
19069
19463
|
type: array
|
|
19070
19464
|
description: Ready repository indexes to synthesize from. Omit or send empty for all ready indexes.
|
|
19071
19465
|
items: { type: string, format: uuid }
|
|
19466
|
+
deepResearch:
|
|
19467
|
+
type: boolean
|
|
19468
|
+
description: >-
|
|
19469
|
+
When true and execution keys are configured, run a deeper LLM pass to
|
|
19470
|
+
expand Key decisions with multi-repo citations (falls back to deterministic on failure).
|
|
19072
19471
|
|
|
19073
19472
|
GenerateWorkspaceKnowledgePagesResultDto:
|
|
19074
19473
|
type: object
|
|
@@ -19091,6 +19490,26 @@ components:
|
|
|
19091
19490
|
usage:
|
|
19092
19491
|
$ref: "#/components/schemas/CodeIntelligenceUsageDto"
|
|
19093
19492
|
|
|
19493
|
+
WorkspaceContextGenerationStatusDto:
|
|
19494
|
+
type: object
|
|
19495
|
+
required: [phase, status, detail, updatedAt]
|
|
19496
|
+
properties:
|
|
19497
|
+
phase:
|
|
19498
|
+
type: string
|
|
19499
|
+
enum: [inventory, facts, contracts, integrations, clustering, llm, persisted]
|
|
19500
|
+
status:
|
|
19501
|
+
type: string
|
|
19502
|
+
enum: [running, complete, failed]
|
|
19503
|
+
detail: { type: string }
|
|
19504
|
+
updatedAt: { type: string, format: date-time }
|
|
19505
|
+
partial:
|
|
19506
|
+
type: object
|
|
19507
|
+
properties:
|
|
19508
|
+
repoCount: { type: integer }
|
|
19509
|
+
contractCount: { type: integer }
|
|
19510
|
+
groupCount: { type: integer }
|
|
19511
|
+
standaloneCount: { type: integer }
|
|
19512
|
+
|
|
19094
19513
|
GeneratePrdDraftBodyDto:
|
|
19095
19514
|
type: object
|
|
19096
19515
|
required: [featureIntent]
|
|
@@ -19144,7 +19563,11 @@ components:
|
|
|
19144
19563
|
properties:
|
|
19145
19564
|
id: { type: string, format: uuid }
|
|
19146
19565
|
workspaceId: { type: string, format: uuid }
|
|
19147
|
-
slug:
|
|
19566
|
+
slug:
|
|
19567
|
+
type: string
|
|
19568
|
+
description: >-
|
|
19569
|
+
Page slug. `workspace-agent` is the canonical hub; supporting pages include
|
|
19570
|
+
`workspace-overview`, `cross-repo-map`, `shared-concepts`, and `prd-*` drafts.
|
|
19148
19571
|
title: { type: string }
|
|
19149
19572
|
bodyMd: { type: string }
|
|
19150
19573
|
sortOrder: { type: integer }
|
|
@@ -19192,6 +19615,136 @@ components:
|
|
|
19192
19615
|
platformSnippet:
|
|
19193
19616
|
type: string
|
|
19194
19617
|
description: Bounded markdown summary of platform evidence for the system panel
|
|
19618
|
+
insights:
|
|
19619
|
+
$ref: "#/components/schemas/WorkspaceContextInsightsDto"
|
|
19620
|
+
|
|
19621
|
+
WorkspaceContextInsightsDto:
|
|
19622
|
+
type: object
|
|
19623
|
+
required:
|
|
19624
|
+
[
|
|
19625
|
+
kind,
|
|
19626
|
+
version,
|
|
19627
|
+
generatedAt,
|
|
19628
|
+
repoRoles,
|
|
19629
|
+
emergentInsights,
|
|
19630
|
+
sharedConcepts,
|
|
19631
|
+
crossRepoLinks,
|
|
19632
|
+
contracts,
|
|
19633
|
+
groups,
|
|
19634
|
+
standaloneRepos,
|
|
19635
|
+
coverage,
|
|
19636
|
+
integrationFootprints,
|
|
19637
|
+
integrationOpportunities,
|
|
19638
|
+
]
|
|
19639
|
+
properties:
|
|
19640
|
+
kind: { type: string, enum: [workspace-insights] }
|
|
19641
|
+
version: { type: integer, enum: [2] }
|
|
19642
|
+
generatedAt: { type: string, format: date-time }
|
|
19643
|
+
repoRoles:
|
|
19644
|
+
type: array
|
|
19645
|
+
items:
|
|
19646
|
+
type: object
|
|
19647
|
+
required: [repoId, repoName, role, rationale]
|
|
19648
|
+
properties:
|
|
19649
|
+
repoId: { type: string, format: uuid }
|
|
19650
|
+
repoName: { type: string }
|
|
19651
|
+
role: { type: string }
|
|
19652
|
+
rationale: { type: string }
|
|
19653
|
+
emergentInsights:
|
|
19654
|
+
type: array
|
|
19655
|
+
items:
|
|
19656
|
+
type: object
|
|
19657
|
+
required: [kind, title, detail, repoIds, certainty]
|
|
19658
|
+
properties:
|
|
19659
|
+
kind: { type: string }
|
|
19660
|
+
title: { type: string }
|
|
19661
|
+
detail: { type: string }
|
|
19662
|
+
repoIds: { type: array, items: { type: string, format: uuid } }
|
|
19663
|
+
certainty: { type: string, enum: [fact, inference, possibility] }
|
|
19664
|
+
evidenceRefs: { type: array, items: { type: string } }
|
|
19665
|
+
sharedConcepts:
|
|
19666
|
+
type: array
|
|
19667
|
+
items:
|
|
19668
|
+
type: object
|
|
19669
|
+
required: [term, repoNames, kind]
|
|
19670
|
+
properties:
|
|
19671
|
+
term: { type: string }
|
|
19672
|
+
repoNames: { type: array, items: { type: string } }
|
|
19673
|
+
kind: { type: string }
|
|
19674
|
+
crossRepoLinks:
|
|
19675
|
+
type: array
|
|
19676
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgeCrossRepoLinkDto" }
|
|
19677
|
+
contracts:
|
|
19678
|
+
type: array
|
|
19679
|
+
items:
|
|
19680
|
+
type: object
|
|
19681
|
+
required: [id, kind, specKey, producers, consumers, certainty, score]
|
|
19682
|
+
properties:
|
|
19683
|
+
id: { type: string }
|
|
19684
|
+
kind: { type: string }
|
|
19685
|
+
specKey: { type: string }
|
|
19686
|
+
producers: { type: array, items: { type: object, additionalProperties: true } }
|
|
19687
|
+
consumers: { type: array, items: { type: object, additionalProperties: true } }
|
|
19688
|
+
certainty: { type: string, enum: [fact, inference, possibility] }
|
|
19689
|
+
score: { type: number, minimum: 0, maximum: 1 }
|
|
19690
|
+
groups:
|
|
19691
|
+
type: array
|
|
19692
|
+
items:
|
|
19693
|
+
type: object
|
|
19694
|
+
required:
|
|
19695
|
+
[
|
|
19696
|
+
id,
|
|
19697
|
+
kind,
|
|
19698
|
+
label,
|
|
19699
|
+
repoIds,
|
|
19700
|
+
backboneContractIds,
|
|
19701
|
+
possibilityLinkCount,
|
|
19702
|
+
integrationSummary,
|
|
19703
|
+
summary,
|
|
19704
|
+
]
|
|
19705
|
+
properties:
|
|
19706
|
+
id: { type: string }
|
|
19707
|
+
kind: { type: string }
|
|
19708
|
+
label: { type: string }
|
|
19709
|
+
repoIds: { type: array, items: { type: string, format: uuid } }
|
|
19710
|
+
backboneContractIds: { type: array, items: { type: string } }
|
|
19711
|
+
possibilityLinkCount: { type: integer }
|
|
19712
|
+
integrationSummary: { type: string }
|
|
19713
|
+
summary: { type: string }
|
|
19714
|
+
standaloneRepos:
|
|
19715
|
+
type: array
|
|
19716
|
+
items:
|
|
19717
|
+
type: object
|
|
19718
|
+
required: [repoId, repoName, summary]
|
|
19719
|
+
properties:
|
|
19720
|
+
repoId: { type: string, format: uuid }
|
|
19721
|
+
repoName: { type: string }
|
|
19722
|
+
summary: { type: string }
|
|
19723
|
+
coverage:
|
|
19724
|
+
type: array
|
|
19725
|
+
items:
|
|
19726
|
+
type: object
|
|
19727
|
+
required: [repoId, detected, resolved, external, unresolved]
|
|
19728
|
+
properties:
|
|
19729
|
+
repoId: { type: string, format: uuid }
|
|
19730
|
+
detected: { type: integer }
|
|
19731
|
+
resolved: { type: integer }
|
|
19732
|
+
external: { type: integer }
|
|
19733
|
+
unresolved: { type: integer }
|
|
19734
|
+
integrationFootprints:
|
|
19735
|
+
type: array
|
|
19736
|
+
items:
|
|
19737
|
+
type: object
|
|
19738
|
+
required: [repoId, repoName, availableSignals, missingSignals, gaps]
|
|
19739
|
+
properties:
|
|
19740
|
+
repoId: { type: string, format: uuid }
|
|
19741
|
+
repoName: { type: string }
|
|
19742
|
+
availableSignals: { type: array, items: { type: string } }
|
|
19743
|
+
missingSignals: { type: array, items: { type: string } }
|
|
19744
|
+
gaps: { type: array, items: { type: string } }
|
|
19745
|
+
integrationOpportunities:
|
|
19746
|
+
type: array
|
|
19747
|
+
items: { type: string }
|
|
19195
19748
|
|
|
19196
19749
|
WorkspaceKnowledgePageListDto:
|
|
19197
19750
|
type: object
|
|
@@ -19203,6 +19756,106 @@ components:
|
|
|
19203
19756
|
systemContext:
|
|
19204
19757
|
$ref: "#/components/schemas/WorkspaceKnowledgeSystemContextDto"
|
|
19205
19758
|
|
|
19759
|
+
WorkspaceKnowledgeGraphNodeDto:
|
|
19760
|
+
type: object
|
|
19761
|
+
required: [id, label, kind]
|
|
19762
|
+
properties:
|
|
19763
|
+
id: { type: string }
|
|
19764
|
+
label: { type: string }
|
|
19765
|
+
score: { type: number, minimum: 0, maximum: 1 }
|
|
19766
|
+
contractId: { type: string }
|
|
19767
|
+
kind:
|
|
19768
|
+
type: string
|
|
19769
|
+
enum: [repo, package, protocol]
|
|
19770
|
+
|
|
19771
|
+
WorkspaceKnowledgeGraphEdgeDto:
|
|
19772
|
+
type: object
|
|
19773
|
+
required: [from, to, relation]
|
|
19774
|
+
properties:
|
|
19775
|
+
from: { type: string, description: Source node id (usually repoId) }
|
|
19776
|
+
to: { type: string, description: Target node id (usually repoId) }
|
|
19777
|
+
relation: { type: string }
|
|
19778
|
+
label: { type: string }
|
|
19779
|
+
certainty:
|
|
19780
|
+
type: string
|
|
19781
|
+
enum: [fact, inference, possibility]
|
|
19782
|
+
|
|
19783
|
+
WorkspaceKnowledgeGraphDto:
|
|
19784
|
+
type: object
|
|
19785
|
+
required: [kind, version, exportedAt, nodes, edges]
|
|
19786
|
+
properties:
|
|
19787
|
+
kind: { type: string, enum: [workspace-kg] }
|
|
19788
|
+
version: { type: integer }
|
|
19789
|
+
exportedAt: { type: string, format: date-time }
|
|
19790
|
+
nodes:
|
|
19791
|
+
type: array
|
|
19792
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgeGraphNodeDto" }
|
|
19793
|
+
edges:
|
|
19794
|
+
type: array
|
|
19795
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgeGraphEdgeDto" }
|
|
19796
|
+
|
|
19797
|
+
WorkspaceKnowledgeCrossRepoLinkDto:
|
|
19798
|
+
type: object
|
|
19799
|
+
required: [fromRepoId, toRepoId, relation, certainty, evidence, label]
|
|
19800
|
+
properties:
|
|
19801
|
+
fromRepoId: { type: string, format: uuid }
|
|
19802
|
+
toRepoId: { type: string, format: uuid }
|
|
19803
|
+
fromRepoName: { type: string }
|
|
19804
|
+
toRepoName: { type: string }
|
|
19805
|
+
relation: { type: string }
|
|
19806
|
+
certainty:
|
|
19807
|
+
type: string
|
|
19808
|
+
enum: [fact, inference, possibility]
|
|
19809
|
+
evidence: { type: string }
|
|
19810
|
+
label: { type: string }
|
|
19811
|
+
|
|
19812
|
+
WorkspaceKnowledgePackRepoDto:
|
|
19813
|
+
type: object
|
|
19814
|
+
required: [repoId, repoName]
|
|
19815
|
+
properties:
|
|
19816
|
+
repoId: { type: string, format: uuid }
|
|
19817
|
+
repoName: { type: string }
|
|
19818
|
+
commitSha: { type: string, nullable: true }
|
|
19819
|
+
providerSlug: { type: string, nullable: true }
|
|
19820
|
+
wikiOutline:
|
|
19821
|
+
type: array
|
|
19822
|
+
items:
|
|
19823
|
+
type: object
|
|
19824
|
+
required: [slug, title]
|
|
19825
|
+
properties:
|
|
19826
|
+
slug: { type: string }
|
|
19827
|
+
title: { type: string }
|
|
19828
|
+
|
|
19829
|
+
WorkspaceKnowledgePackPageDto:
|
|
19830
|
+
type: object
|
|
19831
|
+
required: [slug, title, bodyMd]
|
|
19832
|
+
properties:
|
|
19833
|
+
slug: { type: string }
|
|
19834
|
+
title: { type: string }
|
|
19835
|
+
bodyMd: { type: string }
|
|
19836
|
+
|
|
19837
|
+
WorkspaceKnowledgePackDto:
|
|
19838
|
+
type: object
|
|
19839
|
+
required: [kind, version, exportedAt, pages, crossRepoLinks, repos]
|
|
19840
|
+
properties:
|
|
19841
|
+
kind: { type: string, enum: [wkg-pack] }
|
|
19842
|
+
version: { type: integer }
|
|
19843
|
+
exportedAt: { type: string, format: date-time }
|
|
19844
|
+
workspaceName: { type: string }
|
|
19845
|
+
pages:
|
|
19846
|
+
type: array
|
|
19847
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgePackPageDto" }
|
|
19848
|
+
crossRepoLinks:
|
|
19849
|
+
type: array
|
|
19850
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgeCrossRepoLinkDto" }
|
|
19851
|
+
repos:
|
|
19852
|
+
type: array
|
|
19853
|
+
items: { $ref: "#/components/schemas/WorkspaceKnowledgePackRepoDto" }
|
|
19854
|
+
graph:
|
|
19855
|
+
$ref: "#/components/schemas/WorkspaceKnowledgeGraphDto"
|
|
19856
|
+
workspaceContext:
|
|
19857
|
+
$ref: "#/components/schemas/WorkspaceContextInsightsDto"
|
|
19858
|
+
|
|
19206
19859
|
CodeIntelligenceUsageDto:
|
|
19207
19860
|
type: object
|
|
19208
19861
|
required: [operation, provider, inputTokens, outputTokens]
|