@ttsc/graph 0.30.4 → 0.31.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/README.md +122 -30
- package/lib/CapturedProcessOutput.d.ts +47 -0
- package/lib/CapturedProcessOutput.js +3 -0
- package/lib/CapturedProcessOutput.js.map +1 -0
- package/lib/ILauncherOption.d.ts +22 -0
- package/lib/ILauncherOption.js +3 -0
- package/lib/ILauncherOption.js.map +1 -0
- package/lib/IProjectOptions.d.ts +18 -0
- package/lib/IProjectOptions.js +3 -0
- package/lib/IProjectOptions.js.map +1 -0
- package/lib/ParsedLauncherOptions.d.ts +13 -0
- package/lib/ParsedLauncherOptions.js +3 -0
- package/lib/ParsedLauncherOptions.js.map +1 -0
- package/lib/TtscGraphApplication.d.ts +38 -1
- package/lib/TtscGraphApplication.js +26 -1
- package/lib/TtscGraphApplication.js.map +1 -1
- package/lib/TtscGraphLauncherArguments.d.ts +115 -0
- package/lib/TtscGraphLauncherArguments.js +181 -0
- package/lib/TtscGraphLauncherArguments.js.map +1 -0
- package/lib/TtscGraphViewSnapshot.d.ts +35 -0
- package/lib/TtscGraphViewSnapshot.js +48 -0
- package/lib/TtscGraphViewSnapshot.js.map +1 -0
- package/lib/index.d.ts +9 -24
- package/lib/index.js +6 -128
- package/lib/index.js.map +1 -1
- package/lib/internal/GraphProcessTrace.d.ts +1 -0
- package/lib/internal/GraphProcessTrace.js +235 -0
- package/lib/internal/GraphProcessTrace.js.map +1 -0
- package/lib/launcherArgs.d.ts +75 -16
- package/lib/launcherArgs.js +77 -8
- package/lib/launcherArgs.js.map +1 -1
- package/lib/model/IArtifactDirectory.d.ts +26 -0
- package/lib/model/IArtifactDirectory.js +3 -0
- package/lib/model/IArtifactDirectory.js.map +1 -0
- package/lib/model/IArtifactInputs.d.ts +19 -0
- package/lib/model/IArtifactInputs.js +3 -0
- package/lib/model/IArtifactInputs.js.map +1 -0
- package/lib/model/IPublishedArtifacts.d.ts +76 -0
- package/lib/model/IPublishedArtifacts.js +3 -0
- package/lib/model/IPublishedArtifacts.js.map +1 -0
- package/lib/model/IPublishedArtifactsResident.d.ts +19 -0
- package/lib/model/IPublishedArtifactsResident.js +3 -0
- package/lib/model/IPublishedArtifactsResident.js.map +1 -0
- package/lib/model/ITtscLintDaemonTarget.d.ts +20 -0
- package/lib/model/ITtscLintDaemonTarget.js +3 -0
- package/lib/model/ITtscLintDaemonTarget.js.map +1 -0
- package/lib/model/TtscGraphLinePeer.d.ts +146 -0
- package/lib/model/TtscGraphLinePeer.js +213 -0
- package/lib/model/TtscGraphLinePeer.js.map +1 -0
- package/lib/model/TtscGraphMemory.d.ts +156 -16
- package/lib/model/TtscGraphMemory.js +228 -222
- package/lib/model/TtscGraphMemory.js.map +1 -1
- package/lib/model/TtscGraphNativeArguments.d.ts +40 -0
- package/lib/model/TtscGraphNativeArguments.js +64 -0
- package/lib/model/TtscGraphNativeArguments.js.map +1 -0
- package/lib/model/TtscGraphNodeId.d.ts +55 -3
- package/lib/model/TtscGraphNodeId.js +40 -2
- package/lib/model/TtscGraphNodeId.js.map +1 -1
- package/lib/model/TtscGraphProjection.d.ts +156 -0
- package/lib/model/TtscGraphProjection.js +390 -0
- package/lib/model/TtscGraphProjection.js.map +1 -0
- package/lib/model/TtscGraphProtocol.d.ts +28 -0
- package/lib/model/TtscGraphProtocol.js +928 -0
- package/lib/model/TtscGraphProtocol.js.map +1 -0
- package/lib/model/TtscGraphReadonly.d.ts +15 -0
- package/lib/model/TtscGraphReadonly.js +3 -0
- package/lib/model/TtscGraphReadonly.js.map +1 -0
- package/lib/model/TtscGraphRequestOptions.d.ts +16 -0
- package/lib/model/TtscGraphRequestOptions.js +3 -0
- package/lib/model/TtscGraphRequestOptions.js.map +1 -0
- package/lib/model/TtscGraphSession.d.ts +82 -36
- package/lib/model/TtscGraphSession.js +164 -1238
- package/lib/model/TtscGraphSession.js.map +1 -1
- package/lib/model/TtscGraphSessionOptions.d.ts +20 -0
- package/lib/model/TtscGraphSessionOptions.js +3 -0
- package/lib/model/TtscGraphSessionOptions.js.map +1 -0
- package/lib/model/TtscGraphSessionState.d.ts +187 -0
- package/lib/model/TtscGraphSessionState.js +417 -0
- package/lib/model/TtscGraphSessionState.js.map +1 -0
- package/lib/model/TtscGraphShardStore.d.ts +64 -3
- package/lib/model/TtscGraphShardStore.js +85 -15
- package/lib/model/TtscGraphShardStore.js.map +1 -1
- package/lib/model/TtscGraphSourceReader.d.ts +31 -8
- package/lib/model/TtscGraphSourceReader.js +37 -13
- package/lib/model/TtscGraphSourceReader.js.map +1 -1
- package/lib/model/TtscLintDaemon.d.ts +35 -17
- package/lib/model/TtscLintDaemon.js +39 -117
- package/lib/model/TtscLintDaemon.js.map +1 -1
- package/lib/model/TtscLintDaemonState.d.ts +69 -0
- package/lib/model/TtscLintDaemonState.js +166 -0
- package/lib/model/TtscLintDaemonState.js.map +1 -0
- package/lib/model/copyGraphRecords.d.ts +14 -0
- package/lib/model/copyGraphRecords.js +19 -0
- package/lib/model/copyGraphRecords.js.map +1 -0
- package/lib/model/copyGraphSnapshot.d.ts +17 -0
- package/lib/model/copyGraphSnapshot.js +33 -0
- package/lib/model/copyGraphSnapshot.js.map +1 -0
- package/lib/model/loadGraph.d.ts +19 -10
- package/lib/model/loadGraph.js +21 -12
- package/lib/model/loadGraph.js.map +1 -1
- package/lib/model/publishedArtifacts.d.ts +78 -97
- package/lib/model/publishedArtifacts.js +271 -85
- package/lib/model/publishedArtifacts.js.map +1 -1
- package/lib/nativeExecutable.d.ts +19 -8
- package/lib/nativeExecutable.js +75 -15
- package/lib/nativeExecutable.js.map +1 -1
- package/lib/reduce.d.ts +19 -45
- package/lib/reduce.js +19 -3
- package/lib/reduce.js.map +1 -1
- package/lib/resolveGraphBinary.d.ts +9 -0
- package/lib/resolveGraphBinary.js +11 -3
- package/lib/resolveGraphBinary.js.map +1 -1
- package/lib/runGraph.d.ts +21 -0
- package/lib/runGraph.js +83 -0
- package/lib/runGraph.js.map +1 -0
- package/lib/server/IResolvedGraphHandle.d.ts +22 -0
- package/lib/server/IResolvedGraphHandle.js +3 -0
- package/lib/server/IResolvedGraphHandle.js.map +1 -0
- package/lib/server/createServer.d.ts +14 -10
- package/lib/server/createServer.js +42 -39
- package/lib/server/createServer.js.map +1 -1
- package/lib/server/exportSurface.d.ts +23 -1
- package/lib/server/exportSurface.js +23 -1
- package/lib/server/exportSurface.js.map +1 -1
- package/lib/server/formatGraphFailure.d.ts +20 -0
- package/lib/server/formatGraphFailure.js +35 -0
- package/lib/server/formatGraphFailure.js.map +1 -0
- package/lib/server/pathPolicy.d.ts +70 -5
- package/lib/server/pathPolicy.js +66 -4
- package/lib/server/pathPolicy.js.map +1 -1
- package/lib/server/resolveHandle.d.ts +10 -5
- package/lib/server/resolveHandle.js +39 -7
- package/lib/server/resolveHandle.js.map +1 -1
- package/lib/server/resultAudit.d.ts +17 -14
- package/lib/server/resultAudit.js +56 -27
- package/lib/server/resultAudit.js.map +1 -1
- package/lib/server/resultNext.d.ts +26 -1
- package/lib/server/resultNext.js +14 -0
- package/lib/server/resultNext.js.map +1 -1
- package/lib/server/runDetails.d.ts +72 -15
- package/lib/server/runDetails.js +104 -69
- package/lib/server/runDetails.js.map +1 -1
- package/lib/server/runEntrypoints.d.ts +9 -0
- package/lib/server/runEntrypoints.js +9 -0
- package/lib/server/runEntrypoints.js.map +1 -1
- package/lib/server/runLookup.d.ts +13 -3
- package/lib/server/runLookup.js +19 -6
- package/lib/server/runLookup.js.map +1 -1
- package/lib/server/runOverview.d.ts +13 -4
- package/lib/server/runOverview.js +13 -4
- package/lib/server/runOverview.js.map +1 -1
- package/lib/server/runTour.d.ts +9 -0
- package/lib/server/runTour.js +33 -65
- package/lib/server/runTour.js.map +1 -1
- package/lib/server/runTrace.d.ts +25 -1
- package/lib/server/runTrace.js +133 -88
- package/lib/server/runTrace.js.map +1 -1
- package/lib/server/startServer.d.ts +16 -0
- package/lib/server/startServer.js +24 -1
- package/lib/server/startServer.js.map +1 -1
- package/lib/structures/ITtscGraphApplication.d.ts +95 -41
- package/lib/structures/ITtscGraphDecorator.d.ts +18 -0
- package/lib/structures/ITtscGraphDetails.d.ts +81 -6
- package/lib/structures/ITtscGraphDocTag.d.ts +17 -8
- package/lib/structures/ITtscGraphDump.d.ts +106 -8
- package/lib/structures/ITtscGraphEdge.d.ts +14 -2
- package/lib/structures/ITtscGraphEntrypoints.d.ts +81 -6
- package/lib/structures/ITtscGraphEscape.d.ts +24 -2
- package/lib/structures/ITtscGraphEvidence.d.ts +9 -0
- package/lib/structures/ITtscGraphLookup.d.ts +42 -9
- package/lib/structures/ITtscGraphNext.d.ts +12 -1
- package/lib/structures/ITtscGraphNode.d.ts +38 -11
- package/lib/structures/ITtscGraphOverview.d.ts +81 -6
- package/lib/structures/ITtscGraphSnapshot.d.ts +97 -2
- package/lib/structures/ITtscGraphSpan.d.ts +9 -0
- package/lib/structures/ITtscGraphTour.d.ts +83 -9
- package/lib/structures/ITtscGraphTrace.d.ts +99 -14
- package/lib/structures/RawDump.d.ts +22 -0
- package/lib/structures/RawDump.js +3 -0
- package/lib/structures/RawDump.js.map +1 -0
- package/lib/structures/RawEdge.d.ts +20 -0
- package/lib/structures/RawEdge.js +3 -0
- package/lib/structures/RawEdge.js.map +1 -0
- package/lib/structures/RawNode.d.ts +26 -0
- package/lib/structures/RawNode.js +3 -0
- package/lib/structures/RawNode.js.map +1 -0
- package/lib/structures/TtscGraphArtifactNodeKind.d.ts +9 -0
- package/lib/structures/TtscGraphArtifactNodeKind.js +9 -0
- package/lib/structures/TtscGraphArtifactNodeKind.js.map +1 -1
- package/lib/structures/TtscGraphDumpEdgeKind.d.ts +15 -1
- package/lib/structures/TtscGraphDumpNodeKind.d.ts +9 -0
- package/lib/structures/TtscGraphEdgeKind.d.ts +13 -4
- package/lib/structures/TtscGraphNodeKind.d.ts +9 -0
- package/lib/structures/TtscGraphNodeModifier.d.ts +9 -0
- package/lib/structures/ViewerLink.d.ts +20 -0
- package/lib/structures/ViewerLink.js +3 -0
- package/lib/structures/ViewerLink.js.map +1 -0
- package/lib/structures/ViewerNode.d.ts +24 -0
- package/lib/structures/ViewerNode.js +3 -0
- package/lib/structures/ViewerNode.js.map +1 -0
- package/lib/structures/ViewerPayload.d.ts +42 -0
- package/lib/structures/ViewerPayload.js +3 -0
- package/lib/structures/ViewerPayload.js.map +1 -0
- package/lib/view.d.ts +9 -0
- package/lib/view.js +203 -91
- package/lib/view.js.map +1 -1
- package/lib/viewer/viewer.js +1 -1
- package/package.json +8 -6
- package/src/CapturedProcessOutput.ts +50 -0
- package/src/ILauncherOption.ts +24 -0
- package/src/IProjectOptions.ts +19 -0
- package/src/ParsedLauncherOptions.ts +13 -0
- package/src/TtscGraphApplication.ts +38 -1
- package/src/TtscGraphLauncherArguments.ts +207 -0
- package/src/TtscGraphViewSnapshot.ts +46 -0
- package/src/index.ts +9 -160
- package/src/internal/GraphProcessTrace.ts +242 -0
- package/src/launcherArgs.ts +89 -23
- package/src/model/IArtifactDirectory.ts +27 -0
- package/src/model/IArtifactInputs.ts +21 -0
- package/src/model/IPublishedArtifacts.ts +81 -0
- package/src/model/IPublishedArtifactsResident.ts +24 -0
- package/src/model/ITtscLintDaemonTarget.ts +22 -0
- package/src/model/TtscGraphLinePeer.ts +318 -0
- package/src/model/TtscGraphMemory.ts +284 -246
- package/src/model/TtscGraphNativeArguments.ts +67 -0
- package/src/model/TtscGraphNodeId.ts +57 -3
- package/src/model/TtscGraphProjection.ts +473 -0
- package/src/model/TtscGraphProtocol.ts +90 -0
- package/src/model/TtscGraphReadonly.ts +17 -0
- package/src/model/TtscGraphRequestOptions.ts +16 -0
- package/src/model/TtscGraphSession.ts +196 -475
- package/src/model/TtscGraphSessionOptions.ts +22 -0
- package/src/model/TtscGraphSessionState.ts +558 -0
- package/src/model/TtscGraphShardStore.ts +99 -23
- package/src/model/TtscGraphSourceReader.ts +37 -15
- package/src/model/TtscLintDaemon.ts +55 -136
- package/src/model/TtscLintDaemonState.ts +174 -0
- package/src/model/copyGraphRecords.ts +17 -0
- package/src/model/copyGraphSnapshot.ts +30 -0
- package/src/model/loadGraph.ts +23 -12
- package/src/model/publishedArtifacts.ts +361 -182
- package/src/nativeExecutable.ts +93 -26
- package/src/reduce.ts +24 -51
- package/src/resolveGraphBinary.ts +13 -3
- package/src/runGraph.ts +90 -0
- package/src/server/IResolvedGraphHandle.ts +24 -0
- package/src/server/createServer.ts +16 -22
- package/src/server/exportSurface.ts +23 -1
- package/src/server/formatGraphFailure.ts +32 -0
- package/src/server/pathPolicy.ts +70 -5
- package/src/server/resolveHandle.ts +45 -14
- package/src/server/resultAudit.ts +58 -27
- package/src/server/resultNext.ts +26 -1
- package/src/server/runDetails.ts +138 -73
- package/src/server/runEntrypoints.ts +13 -1
- package/src/server/runLookup.ts +23 -7
- package/src/server/runOverview.ts +17 -5
- package/src/server/runTour.ts +44 -82
- package/src/server/runTrace.ts +175 -102
- package/src/server/startServer.ts +29 -1
- package/src/structures/ITtscGraphApplication.ts +95 -41
- package/src/structures/ITtscGraphDecorator.ts +18 -0
- package/src/structures/ITtscGraphDetails.ts +81 -6
- package/src/structures/ITtscGraphDocTag.ts +17 -8
- package/src/structures/ITtscGraphDump.ts +106 -8
- package/src/structures/ITtscGraphEdge.ts +14 -2
- package/src/structures/ITtscGraphEntrypoints.ts +81 -6
- package/src/structures/ITtscGraphEscape.ts +24 -2
- package/src/structures/ITtscGraphEvidence.ts +9 -0
- package/src/structures/ITtscGraphLookup.ts +42 -9
- package/src/structures/ITtscGraphNext.ts +12 -1
- package/src/structures/ITtscGraphNode.ts +38 -11
- package/src/structures/ITtscGraphOverview.ts +88 -6
- package/src/structures/ITtscGraphSnapshot.ts +117 -2
- package/src/structures/ITtscGraphSpan.ts +9 -0
- package/src/structures/ITtscGraphTour.ts +83 -9
- package/src/structures/ITtscGraphTrace.ts +100 -14
- package/src/structures/RawDump.ts +25 -0
- package/src/structures/RawEdge.ts +22 -0
- package/src/structures/RawNode.ts +31 -0
- package/src/structures/TtscGraphArtifactNodeKind.ts +9 -0
- package/src/structures/TtscGraphDumpEdgeKind.ts +15 -1
- package/src/structures/TtscGraphDumpNodeKind.ts +9 -0
- package/src/structures/TtscGraphEdgeKind.ts +13 -4
- package/src/structures/TtscGraphNodeKind.ts +9 -0
- package/src/structures/TtscGraphNodeModifier.ts +9 -0
- package/src/structures/ViewerLink.ts +22 -0
- package/src/structures/ViewerNode.ts +28 -0
- package/src/structures/ViewerPayload.ts +52 -0
- package/src/view.ts +208 -110
- package/src/viewer/legend.ts +119 -27
|
@@ -4,8 +4,20 @@ import { TtscGraphEdgeKind } from "./TtscGraphEdgeKind";
|
|
|
4
4
|
/**
|
|
5
5
|
* A directed relationship between two {@link ITtscGraphNode}s, both named by
|
|
6
6
|
* `id`. The triple `(from, to, kind)` is unique; a repeat keeps the first
|
|
7
|
-
* source-order evidence. Every edge is compiler-resolved,
|
|
8
|
-
*
|
|
7
|
+
* source-order evidence. Every edge between declarations is compiler-resolved,
|
|
8
|
+
* apart from the `contains` ownership the memory layer derives and the
|
|
9
|
+
* trace-only `dispatches` hop, and an artifact node's `contains` parent is the
|
|
10
|
+
* one its publishing plugin named. There is no per-edge trust flag: `kind` says
|
|
11
|
+
* which of these an edge is.
|
|
12
|
+
*
|
|
13
|
+
* @evidence contracts/common.md#principled-implementation Directed endpoint identities and a relation kind express a resolved edge; optional evidence supplies coordinates without changing identity.
|
|
14
|
+
* @evidence contracts/common.md#clear-and-simple-design One record separates relation identity from its source span, with no duplicated node payload.
|
|
15
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Relation kinds come from the shared vocabulary rather than fixture-specific relationships.
|
|
16
|
+
* @evidence contracts/common.md#meaningful-documentation Native documentation states edge uniqueness and first-source evidence semantics; member comments are visibly separated.
|
|
17
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
18
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
19
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
20
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
9
21
|
*/
|
|
10
22
|
export interface ITtscGraphEdge {
|
|
11
23
|
/** Node id the relationship originates from. */
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import { ITtscGraphDecorator } from "./ITtscGraphDecorator";
|
|
2
2
|
import { ITtscGraphEvidence } from "./ITtscGraphEvidence";
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* The first compact source-free handle list for a TypeScript code question.
|
|
6
|
+
*
|
|
7
|
+
* @evidence contracts/common.md#principled-implementation Hits, explicit mentions and neighborhoods distinguish ranked selection from handle resolution and direct relationships.
|
|
8
|
+
* @evidence contracts/common.md#clear-and-simple-design The three collections share compact node records instead of inlining source or another request shape.
|
|
9
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The result exposes truncation rather than representing a capped shortlist as complete.
|
|
10
|
+
* @evidence contracts/common.md#meaningful-documentation Native member comments distinguish ranking, explicit mentions and capped context with separated member blocks.
|
|
11
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
12
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
13
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
14
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
15
|
+
*/
|
|
5
16
|
export interface ITtscGraphEntrypoints {
|
|
6
17
|
/** Discriminator for first-pass question indexing. */
|
|
7
18
|
type: "entrypoints";
|
|
@@ -23,6 +34,15 @@ export namespace ITtscGraphEntrypoints {
|
|
|
23
34
|
/**
|
|
24
35
|
* First handles when the question is narrow but the symbol name is not yet
|
|
25
36
|
* known.
|
|
37
|
+
*
|
|
38
|
+
* @evidence contracts/common.md#principled-implementation Query plus optional hit and neighbor limits specify first-pass indexing without requiring an already resolved symbol.
|
|
39
|
+
* @evidence contracts/common.md#clear-and-simple-design Two bounds control different result populations; the query remains the sole search input.
|
|
40
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Bounds are caller-visible result options, not hidden agent throttling.
|
|
41
|
+
* @evidence contracts/common.md#meaningful-documentation Field comments explain the question input, limit defaults and when deeper tools should replace a wider list.
|
|
42
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
43
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
44
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
45
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
26
46
|
*/
|
|
27
47
|
export interface IRequest {
|
|
28
48
|
/** Discriminator for first-pass question indexing. */
|
|
@@ -52,7 +72,18 @@ export namespace ITtscGraphEntrypoints {
|
|
|
52
72
|
neighbors?: number;
|
|
53
73
|
}
|
|
54
74
|
|
|
55
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* A compact symbol coordinate, optionally with its declaration signature.
|
|
77
|
+
*
|
|
78
|
+
* @evidence contracts/common.md#principled-implementation Stable identity and source coordinates represent a symbol; optional signature and decorators preserve available declaration facts.
|
|
79
|
+
* @evidence contracts/common.md#clear-and-simple-design Shared node coordinates avoid duplicating the same shape across hits and neighborhoods.
|
|
80
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Optional facts remain absent when unavailable rather than becoming fabricated declarations.
|
|
81
|
+
* @evidence contracts/common.md#meaningful-documentation Native comments state stable handles, one-based lines and signature availability beside separated members.
|
|
82
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
83
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
84
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
85
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
86
|
+
*/
|
|
56
87
|
export interface INode {
|
|
57
88
|
/** Stable node id for subsequent graph calls. */
|
|
58
89
|
id: string;
|
|
@@ -76,13 +107,35 @@ export namespace ITtscGraphEntrypoints {
|
|
|
76
107
|
decorators?: ITtscGraphDecorator[];
|
|
77
108
|
}
|
|
78
109
|
|
|
79
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* One ranked search hit.
|
|
112
|
+
*
|
|
113
|
+
* @evidence contracts/common.md#principled-implementation Extending the node coordinate with a relative score separates relevance from resolved identity.
|
|
114
|
+
* @evidence contracts/common.md#clear-and-simple-design Inheritance adds only the fact unique to a ranked hit.
|
|
115
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts A score reports ranking, not proof that this declaration answers the question.
|
|
116
|
+
* @evidence contracts/common.md#meaningful-documentation The score comment states its direction and relative meaning without implying confidence.
|
|
117
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
118
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
119
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
120
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
121
|
+
*/
|
|
80
122
|
export interface IHit extends INode {
|
|
81
123
|
/** Relative relevance; higher is a better match. */
|
|
82
124
|
score: number;
|
|
83
125
|
}
|
|
84
126
|
|
|
85
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* A code handle written in the query, with its resolution status.
|
|
129
|
+
*
|
|
130
|
+
* @evidence contracts/common.md#principled-implementation The original handle and optional node or candidates distinguish successful and ambiguous resolution.
|
|
131
|
+
* @evidence contracts/common.md#clear-and-simple-design One mention record keeps submitted text beside its resolution instead of mixing it into scored hits.
|
|
132
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Ambiguous names carry candidates rather than a guessed winner.
|
|
133
|
+
* @evidence contracts/common.md#meaningful-documentation The native comments explain the original spelling and unambiguous versus ambiguous outcomes.
|
|
134
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
135
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
136
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
137
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
138
|
+
*/
|
|
86
139
|
export interface IMention {
|
|
87
140
|
/** The exact handle text found in the query. */
|
|
88
141
|
handle: string;
|
|
@@ -94,7 +147,18 @@ export namespace ITtscGraphEntrypoints {
|
|
|
94
147
|
candidates?: INode[];
|
|
95
148
|
}
|
|
96
149
|
|
|
97
|
-
/**
|
|
150
|
+
/**
|
|
151
|
+
* Direct dependency context around one indexed symbol.
|
|
152
|
+
*
|
|
153
|
+
* @evidence contracts/common.md#principled-implementation Separate outgoing and incoming lists preserve relationship direction around the indexed node.
|
|
154
|
+
* @evidence contracts/common.md#clear-and-simple-design Extending the compact node adds only its two context lists.
|
|
155
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The lists represent direct capped context rather than inventing transitive paths.
|
|
156
|
+
* @evidence contracts/common.md#meaningful-documentation Each list documents its direction and the neighbor bound, with a blank line between members.
|
|
157
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
158
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
159
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
160
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
161
|
+
*/
|
|
98
162
|
export interface INeighborhood extends INode {
|
|
99
163
|
/** Symbols this node directly uses, capped by `neighbors`. */
|
|
100
164
|
dependsOn: IReference[];
|
|
@@ -103,7 +167,18 @@ export namespace ITtscGraphEntrypoints {
|
|
|
103
167
|
dependedOnBy: IReference[];
|
|
104
168
|
}
|
|
105
169
|
|
|
106
|
-
/**
|
|
170
|
+
/**
|
|
171
|
+
* One neighboring symbol and the relationship leading to it.
|
|
172
|
+
*
|
|
173
|
+
* @evidence contracts/common.md#principled-implementation Neighbor identity, relation kind and optional source span represent one resolved dependency without losing its cause.
|
|
174
|
+
* @evidence contracts/common.md#clear-and-simple-design Coordinates and relation are kept together so callers need no second node lookup to display context.
|
|
175
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Evidence reports the actual reference rather than substituting a matching name.
|
|
176
|
+
* @evidence contracts/common.md#meaningful-documentation Native comments explain stable handles, coordinate units and edge evidence without source bodies.
|
|
177
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
178
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
179
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
180
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
181
|
+
*/
|
|
107
182
|
export interface IReference {
|
|
108
183
|
/** Stable id of the neighboring node. */
|
|
109
184
|
id: string;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* The no-op result for when graph is not the useful next evidence source.
|
|
3
|
+
*
|
|
4
|
+
* @evidence contracts/common.md#principled-implementation Literal escape and skipped discriminators distinguish an intentional no-op from an empty graph answer.
|
|
5
|
+
* @evidence contracts/common.md#clear-and-simple-design The reason and optional next step explain the no-op without carrying graph state.
|
|
6
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Escape is an explicit caller choice, not a hidden suppression of legitimate graph requests.
|
|
7
|
+
* @evidence contracts/common.md#meaningful-documentation Field comments explain the no-op and optional follow-up; prose and tags have a blank separator.
|
|
8
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
9
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
10
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
11
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
12
|
+
*/
|
|
2
13
|
export interface ITtscGraphEscape {
|
|
3
14
|
/** Discriminator for the no-op escape route. */
|
|
4
15
|
type: "escape";
|
|
@@ -14,7 +25,18 @@ export interface ITtscGraphEscape {
|
|
|
14
25
|
}
|
|
15
26
|
|
|
16
27
|
export namespace ITtscGraphEscape {
|
|
17
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Skip graph work when graph evidence is unnecessary or exhausted.
|
|
30
|
+
*
|
|
31
|
+
* @evidence contracts/common.md#principled-implementation The escape discriminator selects a no-op and requires the caller's reason rather than implying a graph finding.
|
|
32
|
+
* @evidence contracts/common.md#clear-and-simple-design Only the reason and optional next step are needed for the escape boundary.
|
|
33
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The branch provides a supported escape without caps, cooldowns or forced graph use.
|
|
34
|
+
* @evidence contracts/common.md#meaningful-documentation Native comments identify non-graph evidence and explain when source spans justify reading a body.
|
|
35
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
36
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
37
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
38
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
39
|
+
*/
|
|
18
40
|
export interface IRequest {
|
|
19
41
|
/** Discriminator for the no-op escape route. */
|
|
20
42
|
type: "escape";
|
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
* grounding only, never identity (a node's id is position-invariant, see
|
|
5
5
|
* {@link ITtscGraphNode}). Lines and columns are 1-based; MCP keeps evidence as
|
|
6
6
|
* coordinates, so read the file yourself when you truly need source text.
|
|
7
|
+
*
|
|
8
|
+
* @evidence contracts/common.md#principled-implementation File plus one-based coordinates identify a source location while optional end coordinates express incomplete ranges.
|
|
9
|
+
* @evidence contracts/common.md#clear-and-simple-design The record carries coordinates only; node identity and source content remain outside this responsibility.
|
|
10
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Positions are display evidence, never a substitute for stable symbol identity.
|
|
11
|
+
* @evidence contracts/common.md#meaningful-documentation Native comments explicitly state coordinate units, optional endpoints and the distinction between grounding and identity.
|
|
12
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
13
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
14
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
15
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
7
16
|
*/
|
|
8
17
|
export interface ITtscGraphEvidence {
|
|
9
18
|
/** Project-relative path of the file the span lives in. */
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import { ITtscGraphDecorator } from "./ITtscGraphDecorator";
|
|
2
2
|
import { ITtscGraphDocTag } from "./ITtscGraphDocTag";
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Targeted symbol lookup when a concrete name or handle is being resolved.
|
|
6
|
+
*
|
|
7
|
+
* @evidence contracts/common.md#principled-implementation A literal lookup discriminator and ranked hits represent targeted search while truncation records omitted matches.
|
|
8
|
+
* @evidence contracts/common.md#clear-and-simple-design The envelope carries one collection and its completeness indication, leaving search inputs in the request.
|
|
9
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The omission flag prevents a bounded exact-citation match from masquerading as exhaustive coverage.
|
|
10
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain why truncation matters for documentation targets; member blocks remain separated.
|
|
11
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
12
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
13
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
14
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
15
|
+
*/
|
|
5
16
|
export interface ITtscGraphLookup {
|
|
6
17
|
/** Discriminator for targeted symbol lookup. */
|
|
7
18
|
type: "lookup";
|
|
@@ -12,18 +23,29 @@ export interface ITtscGraphLookup {
|
|
|
12
23
|
/**
|
|
13
24
|
* True when a match was left out by the limit.
|
|
14
25
|
*
|
|
15
|
-
* The audit for the ranked operations already tells a reader that
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
26
|
+
* The audit for the ranked operations already tells a reader that `truncated`
|
|
27
|
+
* marks where more was left out, and this result had no such field — so a cut
|
|
28
|
+
* looked exactly like a complete answer. That is tolerable for a name query,
|
|
29
|
+
* where the ranking is a shortlist by design, and it is not for a
|
|
30
|
+
* documentation target: those hits are an exact match on an address, so a
|
|
31
|
+
* caller asking which code implements a specification is owed the fact that
|
|
21
32
|
* it did not get all of it.
|
|
22
33
|
*/
|
|
23
34
|
truncated?: boolean;
|
|
24
35
|
}
|
|
25
36
|
export namespace ITtscGraphLookup {
|
|
26
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Find a concrete class, method, function, property, type, or dotted handle.
|
|
39
|
+
*
|
|
40
|
+
* @evidence contracts/common.md#principled-implementation Query supports symbol search and exact documentation addresses; optional limits and external inclusion express the search boundary.
|
|
41
|
+
* @evidence contracts/common.md#clear-and-simple-design One query owns lookup semantics rather than introducing separate redundant search APIs.
|
|
42
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Address spelling is supplied by the caller, with no repository-specific citation shortcuts.
|
|
43
|
+
* @evidence contracts/common.md#meaningful-documentation Separate paragraphs describe name lookup, citation lookup, limits and external declarations with their defaults.
|
|
44
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
45
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
46
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
47
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
48
|
+
*/
|
|
27
49
|
export interface IRequest {
|
|
28
50
|
/** Discriminator for targeted symbol lookup. */
|
|
29
51
|
type: "lookup";
|
|
@@ -62,7 +84,18 @@ export namespace ITtscGraphLookup {
|
|
|
62
84
|
includeExternal?: boolean;
|
|
63
85
|
}
|
|
64
86
|
|
|
65
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* One ranked hit with a handle to follow via `details` or `trace`.
|
|
89
|
+
*
|
|
90
|
+
* @evidence contracts/common.md#principled-implementation Resolved coordinates and optional declaration facts ground the hit; relative score describes selection and tags explain citation matches.
|
|
91
|
+
* @evidence contracts/common.md#clear-and-simple-design A compact record combines display facts and follow-up identity without source bodies.
|
|
92
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Matching tags are reported as written rather than certified as true or resolved specifications.
|
|
93
|
+
* @evidence contracts/common.md#meaningful-documentation Member comments explain optional tags, one-based lines and relative score separately.
|
|
94
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
95
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
96
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
97
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
98
|
+
*/
|
|
66
99
|
export interface IHit {
|
|
67
100
|
/** Stable node id for subsequent graph calls. */
|
|
68
101
|
id: string;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* What to do with a compiler-derived graph result.
|
|
3
|
+
*
|
|
4
|
+
* @evidence contracts/common.md#principled-implementation The action union represents the supported next decisions, with request identifying the operation for inspect.
|
|
5
|
+
* @evidence contracts/common.md#clear-and-simple-design Action, optional request and reason separate control choice from its explanation in one small record.
|
|
6
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts This vocabulary carries a result decision without encoding agent-specific control hacks.
|
|
7
|
+
* @evidence contracts/common.md#meaningful-documentation The action comment describes each decision and the inspect request's conditional meaning using native member documentation.
|
|
8
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
9
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
10
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
11
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
12
|
+
*/
|
|
2
13
|
export interface ITtscGraphNext {
|
|
3
14
|
/**
|
|
4
15
|
* What to do with this result:
|
|
@@ -11,6 +11,15 @@ import { TtscGraphNodeModifier } from "./TtscGraphNodeModifier";
|
|
|
11
11
|
* `src/order.ts#OrderService.create:method`), so inserting a line above a
|
|
12
12
|
* declaration does not re-key it. Line and span live in `evidence` and are
|
|
13
13
|
* never part of identity.
|
|
14
|
+
*
|
|
15
|
+
* @evidence contracts/common.md#principled-implementation Stable ids separate declaration identity from movable source positions; optional fields retain only facts the producer collected.
|
|
16
|
+
* @evidence contracts/common.md#clear-and-simple-design One node record groups identity, declaration shape and grounding while artifact parent and native flags remain optional facets.
|
|
17
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Dynamic object members and non-enumerable types receive no fabricated outline or sampled literal set.
|
|
18
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain stable identity, optional capability-backed facts and source-versus-implementation spans.
|
|
19
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
20
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
21
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
22
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
14
23
|
*/
|
|
15
24
|
export interface ITtscGraphNode {
|
|
16
25
|
/** Position-invariant identity (see the interface doc for the id grammar). */
|
|
@@ -123,8 +132,8 @@ export interface ITtscGraphNode {
|
|
|
123
132
|
* interprets without re-parsing source.
|
|
124
133
|
*
|
|
125
134
|
* This is where a declaration says what outside the type system it answers
|
|
126
|
-
* to
|
|
127
|
-
*
|
|
135
|
+
* to. A plugin may also publish an artifact node for that target; the raw tag
|
|
136
|
+
* remains a declaration fact independently of whether such a node exists.
|
|
128
137
|
*
|
|
129
138
|
* Read it only when `provenance.capabilities` lists `docTags`. Without that
|
|
130
139
|
* claim the field is absent because the producer never looked, which is a
|
|
@@ -136,13 +145,9 @@ export interface ITtscGraphNode {
|
|
|
136
145
|
* The declaration head, cut by the producer where the compiler says the body
|
|
137
146
|
* opens.
|
|
138
147
|
*
|
|
139
|
-
* Absent when the producer could not bound the head
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
* text when a declaration shares its line with its body, and it stops early
|
|
143
|
-
* when the head itself contains a brace — a type-literal parameter, an object
|
|
144
|
-
* return type, a destructured parameter. Prefer this field wherever it is
|
|
145
|
-
* present.
|
|
148
|
+
* Absent when the producer could not bound the head. Consumers omit the
|
|
149
|
+
* signature rather than infer it from a physical line, which may contain an
|
|
150
|
+
* implementation body or only part of a multiline declaration head.
|
|
146
151
|
*/
|
|
147
152
|
signature?: string;
|
|
148
153
|
|
|
@@ -156,7 +161,18 @@ export interface ITtscGraphNode {
|
|
|
156
161
|
implementation?: ITtscGraphEvidence;
|
|
157
162
|
}
|
|
158
163
|
export namespace ITtscGraphNode {
|
|
159
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* One member of an enum: the name a caller writes and the value it carries.
|
|
166
|
+
*
|
|
167
|
+
* @evidence contracts/common.md#principled-implementation Required name and optional folded value preserve computed enum members whose names remain known when values do not.
|
|
168
|
+
* @evidence contracts/common.md#clear-and-simple-design Two fields retain the callable spelling and value without minting a separate member node.
|
|
169
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Unfoldable values remain absent rather than receiving expected literals.
|
|
170
|
+
* @evidence contracts/common.md#meaningful-documentation Native comments explain unqualified names and TypeScript source spelling of optional constants.
|
|
171
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
172
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
173
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
174
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
175
|
+
*/
|
|
160
176
|
export interface IEnumMember {
|
|
161
177
|
/** The member's own name, unqualified (`Red` on `Colors.Red`). */
|
|
162
178
|
name: string;
|
|
@@ -169,7 +185,18 @@ export namespace ITtscGraphNode {
|
|
|
169
185
|
value?: string;
|
|
170
186
|
}
|
|
171
187
|
|
|
172
|
-
/**
|
|
188
|
+
/**
|
|
189
|
+
* One direct, statically named member of an object-literal variable.
|
|
190
|
+
*
|
|
191
|
+
* @evidence contracts/common.md#principled-implementation Static name, data/callable kind and optional coordinates express a source-visible member rather than dynamic runtime keys.
|
|
192
|
+
* @evidence contracts/common.md#clear-and-simple-design The outline stores only declaration presentation; relationships remain on graph nodes.
|
|
193
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Spreads and unresolved computed names do not acquire invented member identities.
|
|
194
|
+
* @evidence contracts/common.md#meaningful-documentation Comments document the property/method distinction, one-based line and compiler-snapshot signature.
|
|
195
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
196
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
197
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
198
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
199
|
+
*/
|
|
173
200
|
export interface IObjectMember {
|
|
174
201
|
/** The source-visible static property name. */
|
|
175
202
|
name: string;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* A compact, source-read-free project map for broad orientation only.
|
|
3
|
+
*
|
|
4
|
+
* @evidence contracts/common.md#principled-implementation Counts and optional facet collections describe graph structure without claiming runtime behavior.
|
|
5
|
+
* @evidence contracts/common.md#clear-and-simple-design The envelope separates totals from layers, dependency hotspots and public API projections.
|
|
6
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Facets carry graph observations rather than repository-name-based architecture guesses.
|
|
7
|
+
* @evidence contracts/common.md#meaningful-documentation Native member comments describe each facet's ordering and the absolute project locator.
|
|
8
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
9
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
10
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
11
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
12
|
+
*/
|
|
2
13
|
export interface ITtscGraphOverview {
|
|
3
14
|
/** Discriminator for source-free project overview. */
|
|
4
15
|
type: "overview";
|
|
@@ -19,7 +30,18 @@ export interface ITtscGraphOverview {
|
|
|
19
30
|
publicApi?: ITtscGraphOverview.IPublicApi[];
|
|
20
31
|
}
|
|
21
32
|
export namespace ITtscGraphOverview {
|
|
22
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Which broad architecture facets `overview` should return.
|
|
35
|
+
*
|
|
36
|
+
* @evidence contracts/common.md#principled-implementation The aspect union names exactly the supported structural projections and all selects their combination.
|
|
37
|
+
* @evidence contracts/common.md#clear-and-simple-design One optional selector replaces independent flags for the same mutually selectable facets.
|
|
38
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The request explicitly selects orientation; it does not rewrite a runtime-flow question into an overview.
|
|
39
|
+
* @evidence contracts/common.md#meaningful-documentation The aspect comment states default behavior and explains which questions need other operations.
|
|
40
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
41
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
42
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
43
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
44
|
+
*/
|
|
23
45
|
export interface IRequest {
|
|
24
46
|
/** Discriminator for source-free project overview. */
|
|
25
47
|
type: "overview";
|
|
@@ -40,7 +62,18 @@ export namespace ITtscGraphOverview {
|
|
|
40
62
|
aspect?: "all" | "layers" | "hotspots" | "publicApi";
|
|
41
63
|
}
|
|
42
64
|
|
|
43
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Size of the graph by node/edge totals and per-kind node counts.
|
|
67
|
+
*
|
|
68
|
+
* @evidence contracts/common.md#principled-implementation Separate totals distinguish source containers, all nodes and all edges while the keyed record preserves per-kind counts.
|
|
69
|
+
* @evidence contracts/common.md#clear-and-simple-design Four aggregate fields carry counts without retaining the counted graph entries.
|
|
70
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Counts include their documented structural populations rather than selected fixture totals.
|
|
71
|
+
* @evidence contracts/common.md#meaningful-documentation Comments explain which containers and structural edges contribute to each total.
|
|
72
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
73
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
74
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
75
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
76
|
+
*/
|
|
44
77
|
export interface ICounts {
|
|
45
78
|
/** Number of source file container nodes. */
|
|
46
79
|
files: number;
|
|
@@ -55,34 +88,74 @@ export namespace ITtscGraphOverview {
|
|
|
55
88
|
byKind: Record<string, number>;
|
|
56
89
|
}
|
|
57
90
|
|
|
58
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* One folder layer: its source files and export surface.
|
|
93
|
+
*
|
|
94
|
+
* @evidence contracts/common.md#principled-implementation A directory coordinate and distinct file/export counts represent a structural layer without inferring architectural intent.
|
|
95
|
+
* @evidence contracts/common.md#clear-and-simple-design Only the directory and its two aggregate populations are retained.
|
|
96
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Folder names are coordinates, not hardcoded semantic layer classifications.
|
|
97
|
+
* @evidence contracts/common.md#meaningful-documentation Comments state project-relative directory spelling and what each count includes.
|
|
98
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
99
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
100
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
101
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
102
|
+
*/
|
|
59
103
|
export interface ILayer {
|
|
60
104
|
/** Directory, project-relative. */
|
|
61
105
|
dir: string;
|
|
106
|
+
|
|
62
107
|
/** Distinct source files under it. */
|
|
63
108
|
files: number;
|
|
109
|
+
|
|
64
110
|
/** Exported symbols declared under it. */
|
|
65
111
|
exported: number;
|
|
66
112
|
}
|
|
67
113
|
|
|
68
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* A compact symbol coordinate that can be passed to deeper graph tools.
|
|
116
|
+
*
|
|
117
|
+
* @evidence contracts/common.md#principled-implementation Identity, name, kind and coordinates express a graph symbol while unknown line remains optional.
|
|
118
|
+
* @evidence contracts/common.md#clear-and-simple-design The common coordinate is reused by hotspots and public API entries without embedded implementation text.
|
|
119
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The record keeps stable identity instead of guessing a symbol from its display name.
|
|
120
|
+
* @evidence contracts/common.md#meaningful-documentation Member comments identify stable follow-up handles, qualified names and one-based lines.
|
|
121
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
122
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
123
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
124
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
125
|
+
*/
|
|
69
126
|
export interface INode {
|
|
70
127
|
/** Stable handle for `details` or `trace`. */
|
|
71
128
|
id: string;
|
|
129
|
+
|
|
72
130
|
/** The symbol's qualified name when available. */
|
|
73
131
|
name: string;
|
|
132
|
+
|
|
74
133
|
/** Its declaration kind (`class`, `interface`, `function`, ...). */
|
|
75
134
|
kind: string;
|
|
135
|
+
|
|
76
136
|
/** Project-relative path of the file that declares it. */
|
|
77
137
|
file: string;
|
|
138
|
+
|
|
78
139
|
/** 1-based declaration line, when known. */
|
|
79
140
|
line?: number;
|
|
80
141
|
}
|
|
81
142
|
|
|
82
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* A high-dependency symbol with its non-structural fan-in and fan-out.
|
|
145
|
+
*
|
|
146
|
+
* @evidence contracts/common.md#principled-implementation Directional non-structural edge counts express dependency connectivity instead of counting containment as usage.
|
|
147
|
+
* @evidence contracts/common.md#clear-and-simple-design Extending the common node adds only incoming and outgoing counts.
|
|
148
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Connectivity is reported as graph structure, not a fixture-specific importance verdict.
|
|
149
|
+
* @evidence contracts/common.md#meaningful-documentation The type and member comments explicitly distinguish non-structural fan-in and fan-out.
|
|
150
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
151
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
152
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
153
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
154
|
+
*/
|
|
83
155
|
export interface IHotspot extends INode {
|
|
84
156
|
/** Non-structural edges pointing at this symbol. */
|
|
85
157
|
fanIn: number;
|
|
158
|
+
|
|
86
159
|
/** Non-structural edges leaving this symbol. */
|
|
87
160
|
fanOut: number;
|
|
88
161
|
}
|
|
@@ -90,6 +163,15 @@ export namespace ITtscGraphOverview {
|
|
|
90
163
|
/**
|
|
91
164
|
* One exported public-API symbol. The list is ranked by how depended-on the
|
|
92
165
|
* symbol is, excluding test, typings, and generated files.
|
|
166
|
+
*
|
|
167
|
+
* @evidence contracts/common.md#principled-implementation The alias uses the same coordinate representation because public API membership changes selection, not node shape.
|
|
168
|
+
* @evidence contracts/common.md#clear-and-simple-design A type alias avoids duplicating the identical INode record.
|
|
169
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Selection exclusions concern source provenance, not named downstream projects.
|
|
170
|
+
* @evidence contracts/common.md#meaningful-documentation The native paragraph explains ranking and excluded populations rather than restating the alias.
|
|
171
|
+
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources data shape only: it holds no handle, task or retained state.
|
|
172
|
+
* @evidenceExclude contracts/performance.md#efficient-algorithms data shape only: it contains no loop or algorithm.
|
|
173
|
+
* @evidenceExclude contracts/performance.md#reuse-equivalent-work data shape only: it computes nothing another request could share.
|
|
174
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation data shape only: it touches no file, path or process.
|
|
93
175
|
*/
|
|
94
176
|
export type IPublicApi = INode;
|
|
95
177
|
}
|