@ttsc/graph 0.24.0 → 0.26.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/lib/model/TtscGraphSession.d.ts +0 -6
- package/lib/model/TtscGraphSession.js +0 -15
- package/lib/model/TtscGraphSession.js.map +1 -1
- package/lib/model/loadGraph.js +20 -7
- package/lib/model/loadGraph.js.map +1 -1
- package/lib/nativeExecutable.d.ts +22 -0
- package/lib/nativeExecutable.js +76 -0
- package/lib/nativeExecutable.js.map +1 -1
- package/lib/view.js +17 -2
- package/lib/view.js.map +1 -1
- package/package.json +3 -3
- package/src/model/TtscGraphSession.ts +0 -31
- package/src/model/loadGraph.ts +20 -13
- package/src/nativeExecutable.ts +83 -0
- package/src/view.ts +21 -7
|
@@ -7,11 +7,6 @@ export interface TtscGraphSessionOptions {
|
|
|
7
7
|
tsconfig: string;
|
|
8
8
|
/** Absolute native binary path, resolved from `cwd` when omitted. */
|
|
9
9
|
binary?: string;
|
|
10
|
-
/**
|
|
11
|
-
* Maximum time for one native snapshot response. Defaults to five minutes,
|
|
12
|
-
* which is more than ten times the published 28.7-second VS Code cold index.
|
|
13
|
-
*/
|
|
14
|
-
requestTimeoutMs?: number;
|
|
15
10
|
}
|
|
16
11
|
/** Per-call controls for a native graph refresh. */
|
|
17
12
|
export interface TtscGraphRequestOptions {
|
|
@@ -30,7 +25,6 @@ export declare class TtscGraphSession {
|
|
|
30
25
|
private readonly cwd;
|
|
31
26
|
private readonly tsconfig;
|
|
32
27
|
private readonly binary;
|
|
33
|
-
private readonly requestTimeoutMs;
|
|
34
28
|
private child;
|
|
35
29
|
private nextId;
|
|
36
30
|
private readonly pending;
|
|
@@ -56,8 +56,6 @@ const loadGraph_1 = require("./loadGraph");
|
|
|
56
56
|
*/
|
|
57
57
|
const PROTOCOL_VERSION = 1;
|
|
58
58
|
const GRAPH_SNAPSHOT_PROTOCOL_VERSION = 1;
|
|
59
|
-
const DEFAULT_REQUEST_TIMEOUT_MS = 300000;
|
|
60
|
-
const MAX_TIMER_MS = 2147483647;
|
|
61
59
|
const TERMINATION_GRACE_MS = 1000;
|
|
62
60
|
/**
|
|
63
61
|
* Resident bridge to `ttscgraph serve`.
|
|
@@ -71,7 +69,6 @@ class TtscGraphSession {
|
|
|
71
69
|
cwd;
|
|
72
70
|
tsconfig;
|
|
73
71
|
binary;
|
|
74
|
-
requestTimeoutMs;
|
|
75
72
|
child;
|
|
76
73
|
nextId = 0;
|
|
77
74
|
pending = new Map();
|
|
@@ -80,12 +77,6 @@ class TtscGraphSession {
|
|
|
80
77
|
shardStore = new TtscGraphShardStore_1.TtscGraphShardStore();
|
|
81
78
|
closed = false;
|
|
82
79
|
constructor(options) {
|
|
83
|
-
const requestTimeoutMs = options.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
84
|
-
if (!Number.isSafeInteger(requestTimeoutMs) ||
|
|
85
|
-
requestTimeoutMs <= 0 ||
|
|
86
|
-
requestTimeoutMs > MAX_TIMER_MS) {
|
|
87
|
-
throw new TypeError(`@ttsc/graph: requestTimeoutMs must be an integer between 1 and ${String(MAX_TIMER_MS)}`);
|
|
88
|
-
}
|
|
89
80
|
// Resolve the platform binary from the project this session serves, so the
|
|
90
81
|
// MCP server started from an unrelated directory still finds the target's
|
|
91
82
|
// installed `ttsc`.
|
|
@@ -99,7 +90,6 @@ class TtscGraphSession {
|
|
|
99
90
|
this.cwd = options.cwd;
|
|
100
91
|
this.tsconfig = options.tsconfig;
|
|
101
92
|
this.binary = binary;
|
|
102
|
-
this.requestTimeoutMs = requestTimeoutMs;
|
|
103
93
|
}
|
|
104
94
|
/** Return a graph for the current disk snapshot, serialized per tool call. */
|
|
105
95
|
graph(options = {}) {
|
|
@@ -231,12 +221,8 @@ class TtscGraphSession {
|
|
|
231
221
|
child,
|
|
232
222
|
resolve,
|
|
233
223
|
reject,
|
|
234
|
-
timer: setTimeout(() => {
|
|
235
|
-
this.failChild(child, new Error(`@ttsc/graph: native snapshot request timed out after ${String(this.requestTimeoutMs)} ms${stderrSuffix(child)}`));
|
|
236
|
-
}, this.requestTimeoutMs),
|
|
237
224
|
signal,
|
|
238
225
|
};
|
|
239
|
-
pending.timer.unref();
|
|
240
226
|
if (signal !== undefined) {
|
|
241
227
|
pending.abort = () => this.failChild(child, cancelledError(signal, child));
|
|
242
228
|
signal.addEventListener("abort", pending.abort, { once: true });
|
|
@@ -1129,7 +1115,6 @@ class TtscGraphSession {
|
|
|
1129
1115
|
if (this.pending.get(id) !== pending)
|
|
1130
1116
|
return;
|
|
1131
1117
|
this.pending.delete(id);
|
|
1132
|
-
clearTimeout(pending.timer);
|
|
1133
1118
|
if (pending.signal !== undefined && pending.abort !== undefined) {
|
|
1134
1119
|
pending.signal.removeEventListener("abort", pending.abort);
|
|
1135
1120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TtscGraphSession.js","sourceRoot":"","sources":["../../src/model/TtscGraphSession.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TtscGraphSession.js","sourceRoot":"","sources":["../../src/model/TtscGraphSession.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA2E;AAC3E,kEAAqC;AACrC,kDAA0B;AAE1B,0DAAuD;AACvD,8DAA2D;AAE3D,uDAAoD;AACpD,+DAA4D;AAC5D,2CAAkD;AAElD;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAC1C,MAAM,oBAAoB,GAAG,IAAK,CAAC;AAgCnC;;;;;;;GAOG;AACH;IACmB,GAAG,CAAS;IACZ,QAAQ,CAAS;IACjB,MAAM,CAAS;IACxB,KAAK,CAA0B;IAC/B,MAAM,GAAG,CAAC,CAAC;IACF,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACzC,OAAO,CAA8B;IACrC,UAAU,GAAG,IAAI,yCAAmB,EAAE,CAAC;IACvC,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAmB,OAAgC;QACjD,2EAA2E;QAC3E,0EAA0E;QAC1E,oBAAoB;QACpB,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,IAAI,IAAA,uCAAkB,EAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,uDAAuD;gBACrD,qDAAqD;gBACrD,+CAA+C,CAClD,CAAC;QACJ,CAAC;QACD,IAAA,mCAAgB,EAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,8EAA8E;IACvE,KAAK,CACV,OAAO,GAA4B,EAAE;QAErC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAA0C,CAAC;QAC/C,IAAI,MAA+B,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvD,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,CAAC;YACb,CAAC,CAAC;YACF,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,CAAC;YACb,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;aACpB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACtB,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC3D,IAAI,OAAO;gBAAE,OAAO;YACpB,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6DAA6D;IACtD,KAAK;QACV,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;;YAC3D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAoB;QACxC,2EAA2E;QAC3E,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,IAAI,CAAC,OAAO,GAAG,iCAAe,CAAC,IAAI,CACjC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACzC,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;wBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAClE,MAAM,OAAO,CAAC;gBAChB,CAAC;YACH,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvC,uEAAuE;gBACvE,qEAAqE;gBACrE,IAAI,CAAC,OAAO,GAAG,iCAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,CAAC,IAAI,mDAAmD,MAAM,CAAC,+BAA+B,CAAC,6BAA6B,CAC5J,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,uBAAuB,CAAC,QAA4B;QAC1D,MAAM,MAAM,GACV,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAC1C,IAAI,OAA2B,CAAC;QAChC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClE,OAAO,GAAG,0CAA0C,CAAC;YACvD,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,GAAG,0CAA0C,CAAC;QACvD,CAAC;aAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,GAAG,4DAA4D,CAAC;YACzE,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,GAAG,8DAA8D,CAAC;QAC3E,CAAC;QACD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,KAAK,CAAC;IACd,CAAC;IAEO,OAAO,CAAC,MAAoB;QAClC,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;QACzB,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,MAAM,OAAO,GAAY;gBACvB,KAAK;gBACL,OAAO;gBACP,MAAM;gBACN,MAAM;aACP,CAAC;YACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,CACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAM,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CACvB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,CAAC,IAAI,EACpF,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO;gBAClD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO;oBAAE,OAAO;gBAC7C,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,IAAI,KAAK,CACP,mDAAmD,KAAK,CAAC,OAAO,EAAE,CACnE,CACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,gEAAgE;YAChE,uEAAuE;YACvE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,IACE,IAAI,CAAC,KAAK,KAAK,SAAS;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;YACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,EACtC,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,0BAAK,EACnB,IAAI,CAAC,MAAM,EACX,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,EACzD,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CACvD,CAAC;QACF,MAAM,KAAK,GAAG,uBAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC1C,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAC5B,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,IAAI,KAAK,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAClE,CACF,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO;YACjC,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,IAAI,KAAK,CACP,4CAA4C,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,YAAY,CAChG,KAAK,CACN,EAAE,CACJ,EACD,KAAK,CACN,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,KAAkB,EAAE,IAAY;QAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO;QACjC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,IAAI,KAAK,CACP,sDAAsD,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAC/E,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,oBAAoB;QACpB,MAAM,OAAO,GAAuB;;;aAClC,MAAM,EAEN,CAAC,CAAC,MAAM,CAAC,eAAe;YACxB,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACjC,yEAAyE;YACzE,0DAA0D;YAC1D,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,IAAI,KAAK,CACP,gDACE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EACpE,yBAAyB,MAAM,CAAC,gBAAgB,CAAC,IAAI;gBACnD,iEAAiE;gBACjE,sCAAsC,CACzC,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,QAA4B,CAAC;QACjC,IAAI,CAAC;YACH,oEAAoE;YACpE,sEAAsE;YACtE,qEAAqE;YACrE,oEAAoE;YACpE,8CAA8C;YAC9C,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAoC,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,IAAI,KAAK,CACP,gEAAgE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CACzF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,wEAAwE;QACxE,4EAA4E;QAC5E,gCAAgC;QAChC,IACE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;YAC1B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,KAAK,+BAAmB,CAAC;YACjE,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAC9B,QAAQ,CAAC,QAAQ,CAAC,aAAa,KAAK,+BAAmB,CAAC,EAC1D,CAAC;YACD,0EAA0E;YAC1E,uCAAuC;YACvC,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,IAAI,KAAK,CACP,6CAA6C,MAAM,CACjD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa;gBACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CACnC,wBAAwB,MAAM,CAAC,+BAAmB,CAAC,IAAI;gBACtD,iEAAiE;gBACjE,sCAAsC,CACzC,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO;QAC7D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEO,SAAS,CAAC,KAAkB,EAAE,KAAY,EAAE,SAAS,GAAG,IAAI;QAClE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO;QACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAC5C,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,SAAS;YAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEO,WAAW,CAAC,KAAY,EAAE,KAAmB;QACnD,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACnD,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CACnB,EAAU,EACV,OAAgB,EAChB,MAAkC;QAElC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,YAAY,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;YAC/C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF;;AAED,SAAS,cAAc,CAAC,KAAqC;IAC3D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO;IACjE,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO;QACjE,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;IACH,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACzB,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,MAAoB,EAAE,KAAmB;IAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,iDAAiD,WAAW,CAAC,MAAM,CAAC,GAClE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAC/C,EAAE,CACH,CAAC;IACF,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB;IACvC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;IAC9B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,KAAK,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
package/lib/model/loadGraph.js
CHANGED
|
@@ -45,10 +45,6 @@ const typia_1 = __importDefault(require("typia"));
|
|
|
45
45
|
const nativeExecutable_1 = require("../nativeExecutable");
|
|
46
46
|
const resolveGraphBinary_1 = require("../resolveGraphBinary");
|
|
47
47
|
const TtscGraphMemory_1 = require("./TtscGraphMemory");
|
|
48
|
-
// A full-project dump is the whole fact graph as one JSON document; a large
|
|
49
|
-
// monorepo runs to many megabytes, well past spawnSync's 1 MiB default, so the
|
|
50
|
-
// buffer is raised to a ceiling no real graph reaches.
|
|
51
|
-
const MAX_DUMP_BYTES = 1024 * 1024 * 1024;
|
|
52
48
|
/**
|
|
53
49
|
* The dump schema version this client reads.
|
|
54
50
|
*
|
|
@@ -85,14 +81,31 @@ function loadGraph(options = {}) {
|
|
|
85
81
|
"or set TTSC_GRAPH_BINARY to an absolute path.");
|
|
86
82
|
}
|
|
87
83
|
(0, nativeExecutable_1.ensureExecutable)(binary);
|
|
88
|
-
|
|
84
|
+
// The dump goes to a file rather than a pipe, so no output ceiling applies:
|
|
85
|
+
// a graph is as large as the repository is, and any limit named here would be
|
|
86
|
+
// a guess about someone else's monorepo. See `captureProcessOutput`.
|
|
87
|
+
const capture = (0, nativeExecutable_1.captureProcessOutput)();
|
|
88
|
+
let result;
|
|
89
|
+
let stdout;
|
|
90
|
+
let stderr;
|
|
91
|
+
try {
|
|
92
|
+
result = (0, node_child_process_1.spawnSync)(binary, ["dump", "--cwd", cwd, "--tsconfig", tsconfig], {
|
|
93
|
+
stdio: ["ignore", capture.stdoutFd, capture.stderrFd],
|
|
94
|
+
windowsHide: true,
|
|
95
|
+
});
|
|
96
|
+
stdout = capture.read("stdout");
|
|
97
|
+
stderr = capture.read("stderr");
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
capture.dispose();
|
|
101
|
+
}
|
|
89
102
|
if (result.error) {
|
|
90
103
|
throw new Error(`@ttsc/graph: ttscgraph dump failed: ${result.error.message}`);
|
|
91
104
|
}
|
|
92
105
|
if (result.status !== 0) {
|
|
93
|
-
throw new Error(`@ttsc/graph: ttscgraph dump exited with ${result.status}: ${
|
|
106
|
+
throw new Error(`@ttsc/graph: ttscgraph dump exited with ${result.status}: ${stderr.trim()}`);
|
|
94
107
|
}
|
|
95
|
-
return TtscGraphMemory_1.TtscGraphMemory.from(parseDump(
|
|
108
|
+
return TtscGraphMemory_1.TtscGraphMemory.from(parseDump(stdout));
|
|
96
109
|
}
|
|
97
110
|
/**
|
|
98
111
|
* Parse and validate `ttscgraph dump` output. typia asserts the full
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadGraph.js","sourceRoot":"","sources":["../../src/model/loadGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA+C;AAC/C,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"loadGraph.js","sourceRoot":"","sources":["../../src/model/loadGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,3 +7,25 @@
|
|
|
7
7
|
* paths, so it must apply the same first-run repair here.
|
|
8
8
|
*/
|
|
9
9
|
export declare function ensureExecutable(binary: string): void;
|
|
10
|
+
export interface CapturedProcessOutput {
|
|
11
|
+
/** Close the descriptors and remove the backing files. */
|
|
12
|
+
dispose(): void;
|
|
13
|
+
/** Read one stream's text. */
|
|
14
|
+
read(stream: "stdout" | "stderr"): string;
|
|
15
|
+
stderrFd: number;
|
|
16
|
+
stdoutFd: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A pair of temporary files standing in for a child process's pipes.
|
|
20
|
+
*
|
|
21
|
+
* `spawnSync` holds a _piped_ stream in this process's memory and refuses to
|
|
22
|
+
* keep more than `maxBuffer` bytes, so any piped capture has to name a ceiling
|
|
23
|
+
* — and a ceiling is a number nobody chose for this machine, deciding that a
|
|
24
|
+
* large but legitimate graph said too much. Handing the child a file descriptor
|
|
25
|
+
* instead means the bytes never pass through this heap on their way out of the
|
|
26
|
+
* child: how much a process may write is the filesystem's business, and that is
|
|
27
|
+
* the same answer everywhere. Reading the result back still materializes a
|
|
28
|
+
* string, so V8's own maximum string length remains the outer bound — a
|
|
29
|
+
* property of the runtime rather than a budget chosen here.
|
|
30
|
+
*/
|
|
31
|
+
export declare function captureProcessOutput(): CapturedProcessOutput;
|
package/lib/nativeExecutable.js
CHANGED
|
@@ -4,7 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ensureExecutable = ensureExecutable;
|
|
7
|
+
exports.captureProcessOutput = captureProcessOutput;
|
|
7
8
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
11
|
/**
|
|
9
12
|
* Ensure a resolved native binary can be executed on POSIX installs.
|
|
10
13
|
*
|
|
@@ -30,4 +33,77 @@ function ensureExecutable(binary) {
|
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* A pair of temporary files standing in for a child process's pipes.
|
|
38
|
+
*
|
|
39
|
+
* `spawnSync` holds a _piped_ stream in this process's memory and refuses to
|
|
40
|
+
* keep more than `maxBuffer` bytes, so any piped capture has to name a ceiling
|
|
41
|
+
* — and a ceiling is a number nobody chose for this machine, deciding that a
|
|
42
|
+
* large but legitimate graph said too much. Handing the child a file descriptor
|
|
43
|
+
* instead means the bytes never pass through this heap on their way out of the
|
|
44
|
+
* child: how much a process may write is the filesystem's business, and that is
|
|
45
|
+
* the same answer everywhere. Reading the result back still materializes a
|
|
46
|
+
* string, so V8's own maximum string length remains the outer bound — a
|
|
47
|
+
* property of the runtime rather than a budget chosen here.
|
|
48
|
+
*/
|
|
49
|
+
function captureProcessOutput() {
|
|
50
|
+
const directory = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), "ttscgraph-spawn-"));
|
|
51
|
+
const stdoutPath = node_path_1.default.join(directory, "stdout");
|
|
52
|
+
const stderrPath = node_path_1.default.join(directory, "stderr");
|
|
53
|
+
const stdoutFd = node_fs_1.default.openSync(stdoutPath, "w+");
|
|
54
|
+
let stderrFd;
|
|
55
|
+
try {
|
|
56
|
+
stderrFd = node_fs_1.default.openSync(stderrPath, "w+");
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
// The first descriptor and the directory are already live, and no caller
|
|
60
|
+
// ever received a handle to dispose of them.
|
|
61
|
+
closeQuietly(stdoutFd);
|
|
62
|
+
removeQuietly(directory);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
dispose() {
|
|
67
|
+
closeQuietly(stdoutFd);
|
|
68
|
+
closeQuietly(stderrFd);
|
|
69
|
+
removeQuietly(directory);
|
|
70
|
+
},
|
|
71
|
+
read(stream) {
|
|
72
|
+
const location = stream === "stdout" ? stdoutPath : stderrPath;
|
|
73
|
+
try {
|
|
74
|
+
return node_fs_1.default.readFileSync(location, "utf8");
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// A spawn that never launched leaves nothing behind.
|
|
78
|
+
return "";
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
stderrFd,
|
|
82
|
+
stdoutFd,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** Close a descriptor, ignoring one that is already closed. */
|
|
86
|
+
function closeQuietly(fd) {
|
|
87
|
+
try {
|
|
88
|
+
node_fs_1.default.closeSync(fd);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Already closed; removing the directory is what reclaims the space.
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Remove the capture directory without letting cleanup replace a result.
|
|
96
|
+
*
|
|
97
|
+
* `dispose` runs from a `finally`, so a throw here would surface instead of the
|
|
98
|
+
* spawn's own outcome — and on Windows a grandchild that inherited the handle
|
|
99
|
+
* can hold the file long enough to make removal fail.
|
|
100
|
+
*/
|
|
101
|
+
function removeQuietly(directory) {
|
|
102
|
+
try {
|
|
103
|
+
node_fs_1.default.rmSync(directory, { force: true, recursive: true });
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Best effort.
|
|
107
|
+
}
|
|
108
|
+
}
|
|
33
109
|
//# sourceMappingURL=nativeExecutable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeExecutable.js","sourceRoot":"","sources":["../src/nativeExecutable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nativeExecutable.js","sourceRoot":"","sources":["../src/nativeExecutable.ts"],"names":[],"mappings":";;;;;;;AAAA,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAE7B;;;;;;;GAOG;AACH,0BAAiC,MAAc;IAC7C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO;IACzC,IAAI,CAAC;QACH,iBAAE,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,iBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;YAC9C,iBAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAWD;;;;;;;;;;;;GAYG;AACH;IACE,MAAM,SAAS,GAAG,iBAAE,CAAC,WAAW,CAAC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,iBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,6CAA6C;QAC7C,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvB,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO;QACL,OAAO;YACL,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,MAAM;YACT,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;YAC/D,IAAI,CAAC;gBACH,OAAO,iBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;gBACrD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,SAAS,YAAY,CAAC,EAAU;IAC9B,IAAI,CAAC;QACH,iBAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,SAAiB;IACtC,IAAI,CAAC;QACH,iBAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC"}
|
package/lib/view.js
CHANGED
|
@@ -52,7 +52,22 @@ function runView(argv) {
|
|
|
52
52
|
}
|
|
53
53
|
(0, nativeExecutable_1.ensureExecutable)(binary);
|
|
54
54
|
process.stderr.write(`@ttsc/graph: building the graph for ${opts.cwd} (${opts.tsconfig})...\n`);
|
|
55
|
-
|
|
55
|
+
// The dump goes to a file rather than a pipe, so no output ceiling applies.
|
|
56
|
+
const capture = (0, nativeExecutable_1.captureProcessOutput)();
|
|
57
|
+
let dump;
|
|
58
|
+
let dumpStdout;
|
|
59
|
+
let dumpStderr;
|
|
60
|
+
try {
|
|
61
|
+
dump = (0, node_child_process_1.spawnSync)(binary, ["dump", "--cwd", opts.cwd, "--tsconfig", opts.tsconfig], {
|
|
62
|
+
stdio: ["ignore", capture.stdoutFd, capture.stderrFd],
|
|
63
|
+
windowsHide: true,
|
|
64
|
+
});
|
|
65
|
+
dumpStdout = capture.read("stdout");
|
|
66
|
+
dumpStderr = capture.read("stderr");
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
capture.dispose();
|
|
70
|
+
}
|
|
56
71
|
if (dump.error) {
|
|
57
72
|
process.stderr.write(`@ttsc/graph: ${dump.error.message}\n`);
|
|
58
73
|
return 1;
|
|
@@ -63,7 +78,7 @@ function runView(argv) {
|
|
|
63
78
|
}
|
|
64
79
|
let raw;
|
|
65
80
|
try {
|
|
66
|
-
raw = (0, loadGraph_1.parseDump)(
|
|
81
|
+
raw = (0, loadGraph_1.parseDump)(dumpStdout);
|
|
67
82
|
}
|
|
68
83
|
catch (error) {
|
|
69
84
|
const message = error instanceof Error ? error.message : String(error);
|
package/lib/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAsD;AACtD,sDAAyB;AACzB,0DAA6B;AAC7B,0DAA6B;AAE7B,iDAKwB;AACxB,iDAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttsc/graph",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Checker-resolved architecture graph over MCP for coding agents, backed by ttsc's in-process TypeScript-Go compiler.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"typia": "13.2.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"ttsc": "^0.
|
|
23
|
+
"ttsc": "^0.26.0"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
26
|
"ttsc",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"three": "^0.184.0",
|
|
43
43
|
"three-forcegraph": "^1.43.4",
|
|
44
44
|
"typescript": "^7.0.2",
|
|
45
|
-
"ttsc": "0.
|
|
45
|
+
"ttsc": "0.26.0"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|
|
@@ -19,15 +19,12 @@ import { DUMP_SCHEMA_VERSION } from "./loadGraph";
|
|
|
19
19
|
*/
|
|
20
20
|
const PROTOCOL_VERSION = 1;
|
|
21
21
|
const GRAPH_SNAPSHOT_PROTOCOL_VERSION = 1;
|
|
22
|
-
const DEFAULT_REQUEST_TIMEOUT_MS = 300_000;
|
|
23
|
-
const MAX_TIMER_MS = 2_147_483_647;
|
|
24
22
|
const TERMINATION_GRACE_MS = 1_000;
|
|
25
23
|
|
|
26
24
|
interface Pending {
|
|
27
25
|
child: NativeChild;
|
|
28
26
|
resolve: (response: ITtscGraphSnapshot) => void;
|
|
29
27
|
reject: (error: Error) => void;
|
|
30
|
-
timer: NodeJS.Timeout;
|
|
31
28
|
signal?: AbortSignal;
|
|
32
29
|
abort?: () => void;
|
|
33
30
|
}
|
|
@@ -46,11 +43,6 @@ export interface TtscGraphSessionOptions {
|
|
|
46
43
|
tsconfig: string;
|
|
47
44
|
/** Absolute native binary path, resolved from `cwd` when omitted. */
|
|
48
45
|
binary?: string;
|
|
49
|
-
/**
|
|
50
|
-
* Maximum time for one native snapshot response. Defaults to five minutes,
|
|
51
|
-
* which is more than ten times the published 28.7-second VS Code cold index.
|
|
52
|
-
*/
|
|
53
|
-
requestTimeoutMs?: number;
|
|
54
46
|
}
|
|
55
47
|
|
|
56
48
|
/** Per-call controls for a native graph refresh. */
|
|
@@ -71,7 +63,6 @@ export class TtscGraphSession {
|
|
|
71
63
|
private readonly cwd: string;
|
|
72
64
|
private readonly tsconfig: string;
|
|
73
65
|
private readonly binary: string;
|
|
74
|
-
private readonly requestTimeoutMs: number;
|
|
75
66
|
private child: NativeChild | undefined;
|
|
76
67
|
private nextId = 0;
|
|
77
68
|
private readonly pending = new Map<number, Pending>();
|
|
@@ -81,17 +72,6 @@ export class TtscGraphSession {
|
|
|
81
72
|
private closed = false;
|
|
82
73
|
|
|
83
74
|
public constructor(options: TtscGraphSessionOptions) {
|
|
84
|
-
const requestTimeoutMs =
|
|
85
|
-
options.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
86
|
-
if (
|
|
87
|
-
!Number.isSafeInteger(requestTimeoutMs) ||
|
|
88
|
-
requestTimeoutMs <= 0 ||
|
|
89
|
-
requestTimeoutMs > MAX_TIMER_MS
|
|
90
|
-
) {
|
|
91
|
-
throw new TypeError(
|
|
92
|
-
`@ttsc/graph: requestTimeoutMs must be an integer between 1 and ${String(MAX_TIMER_MS)}`,
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
75
|
// Resolve the platform binary from the project this session serves, so the
|
|
96
76
|
// MCP server started from an unrelated directory still finds the target's
|
|
97
77
|
// installed `ttsc`.
|
|
@@ -108,7 +88,6 @@ export class TtscGraphSession {
|
|
|
108
88
|
this.cwd = options.cwd;
|
|
109
89
|
this.tsconfig = options.tsconfig;
|
|
110
90
|
this.binary = binary;
|
|
111
|
-
this.requestTimeoutMs = requestTimeoutMs;
|
|
112
91
|
}
|
|
113
92
|
|
|
114
93
|
/** Return a graph for the current disk snapshot, serialized per tool call. */
|
|
@@ -236,17 +215,8 @@ export class TtscGraphSession {
|
|
|
236
215
|
child,
|
|
237
216
|
resolve,
|
|
238
217
|
reject,
|
|
239
|
-
timer: setTimeout(() => {
|
|
240
|
-
this.failChild(
|
|
241
|
-
child,
|
|
242
|
-
new Error(
|
|
243
|
-
`@ttsc/graph: native snapshot request timed out after ${String(this.requestTimeoutMs)} ms${stderrSuffix(child)}`,
|
|
244
|
-
),
|
|
245
|
-
);
|
|
246
|
-
}, this.requestTimeoutMs),
|
|
247
218
|
signal,
|
|
248
219
|
};
|
|
249
|
-
pending.timer.unref();
|
|
250
220
|
if (signal !== undefined) {
|
|
251
221
|
pending.abort = () =>
|
|
252
222
|
this.failChild(child, cancelledError(signal, child));
|
|
@@ -439,7 +409,6 @@ export class TtscGraphSession {
|
|
|
439
409
|
): void {
|
|
440
410
|
if (this.pending.get(id) !== pending) return;
|
|
441
411
|
this.pending.delete(id);
|
|
442
|
-
clearTimeout(pending.timer);
|
|
443
412
|
if (pending.signal !== undefined && pending.abort !== undefined) {
|
|
444
413
|
pending.signal.removeEventListener("abort", pending.abort);
|
|
445
414
|
}
|
package/src/model/loadGraph.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
2
|
import typia from "typia";
|
|
3
3
|
|
|
4
|
-
import { ensureExecutable } from "../nativeExecutable";
|
|
4
|
+
import { captureProcessOutput, ensureExecutable } from "../nativeExecutable";
|
|
5
5
|
import { resolveGraphBinary } from "../resolveGraphBinary";
|
|
6
6
|
import { ITtscGraphDump } from "../structures/ITtscGraphDump";
|
|
7
7
|
import { TtscGraphMemory } from "./TtscGraphMemory";
|
|
8
8
|
|
|
9
|
-
// A full-project dump is the whole fact graph as one JSON document; a large
|
|
10
|
-
// monorepo runs to many megabytes, well past spawnSync's 1 MiB default, so the
|
|
11
|
-
// buffer is raised to a ceiling no real graph reaches.
|
|
12
|
-
const MAX_DUMP_BYTES = 1024 * 1024 * 1024;
|
|
13
|
-
|
|
14
9
|
/**
|
|
15
10
|
* The dump schema version this client reads.
|
|
16
11
|
*
|
|
@@ -64,11 +59,23 @@ export function loadGraph(
|
|
|
64
59
|
}
|
|
65
60
|
ensureExecutable(binary);
|
|
66
61
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
62
|
+
// The dump goes to a file rather than a pipe, so no output ceiling applies:
|
|
63
|
+
// a graph is as large as the repository is, and any limit named here would be
|
|
64
|
+
// a guess about someone else's monorepo. See `captureProcessOutput`.
|
|
65
|
+
const capture = captureProcessOutput();
|
|
66
|
+
let result;
|
|
67
|
+
let stdout: string;
|
|
68
|
+
let stderr: string;
|
|
69
|
+
try {
|
|
70
|
+
result = spawnSync(binary, ["dump", "--cwd", cwd, "--tsconfig", tsconfig], {
|
|
71
|
+
stdio: ["ignore", capture.stdoutFd, capture.stderrFd],
|
|
72
|
+
windowsHide: true,
|
|
73
|
+
});
|
|
74
|
+
stdout = capture.read("stdout");
|
|
75
|
+
stderr = capture.read("stderr");
|
|
76
|
+
} finally {
|
|
77
|
+
capture.dispose();
|
|
78
|
+
}
|
|
72
79
|
if (result.error) {
|
|
73
80
|
throw new Error(
|
|
74
81
|
`@ttsc/graph: ttscgraph dump failed: ${result.error.message}`,
|
|
@@ -76,11 +83,11 @@ export function loadGraph(
|
|
|
76
83
|
}
|
|
77
84
|
if (result.status !== 0) {
|
|
78
85
|
throw new Error(
|
|
79
|
-
`@ttsc/graph: ttscgraph dump exited with ${result.status}: ${
|
|
86
|
+
`@ttsc/graph: ttscgraph dump exited with ${result.status}: ${stderr.trim()}`,
|
|
80
87
|
);
|
|
81
88
|
}
|
|
82
89
|
|
|
83
|
-
return TtscGraphMemory.from(parseDump(
|
|
90
|
+
return TtscGraphMemory.from(parseDump(stdout));
|
|
84
91
|
}
|
|
85
92
|
|
|
86
93
|
/**
|
package/src/nativeExecutable.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* Ensure a resolved native binary can be executed on POSIX installs.
|
|
@@ -22,3 +24,84 @@ export function ensureExecutable(binary: string): void {
|
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
}
|
|
27
|
+
|
|
28
|
+
export interface CapturedProcessOutput {
|
|
29
|
+
/** Close the descriptors and remove the backing files. */
|
|
30
|
+
dispose(): void;
|
|
31
|
+
/** Read one stream's text. */
|
|
32
|
+
read(stream: "stdout" | "stderr"): string;
|
|
33
|
+
stderrFd: number;
|
|
34
|
+
stdoutFd: number;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* A pair of temporary files standing in for a child process's pipes.
|
|
39
|
+
*
|
|
40
|
+
* `spawnSync` holds a _piped_ stream in this process's memory and refuses to
|
|
41
|
+
* keep more than `maxBuffer` bytes, so any piped capture has to name a ceiling
|
|
42
|
+
* — and a ceiling is a number nobody chose for this machine, deciding that a
|
|
43
|
+
* large but legitimate graph said too much. Handing the child a file descriptor
|
|
44
|
+
* instead means the bytes never pass through this heap on their way out of the
|
|
45
|
+
* child: how much a process may write is the filesystem's business, and that is
|
|
46
|
+
* the same answer everywhere. Reading the result back still materializes a
|
|
47
|
+
* string, so V8's own maximum string length remains the outer bound — a
|
|
48
|
+
* property of the runtime rather than a budget chosen here.
|
|
49
|
+
*/
|
|
50
|
+
export function captureProcessOutput(): CapturedProcessOutput {
|
|
51
|
+
const directory = fs.mkdtempSync(path.join(os.tmpdir(), "ttscgraph-spawn-"));
|
|
52
|
+
const stdoutPath = path.join(directory, "stdout");
|
|
53
|
+
const stderrPath = path.join(directory, "stderr");
|
|
54
|
+
const stdoutFd = fs.openSync(stdoutPath, "w+");
|
|
55
|
+
let stderrFd: number;
|
|
56
|
+
try {
|
|
57
|
+
stderrFd = fs.openSync(stderrPath, "w+");
|
|
58
|
+
} catch (error) {
|
|
59
|
+
// The first descriptor and the directory are already live, and no caller
|
|
60
|
+
// ever received a handle to dispose of them.
|
|
61
|
+
closeQuietly(stdoutFd);
|
|
62
|
+
removeQuietly(directory);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
dispose(): void {
|
|
67
|
+
closeQuietly(stdoutFd);
|
|
68
|
+
closeQuietly(stderrFd);
|
|
69
|
+
removeQuietly(directory);
|
|
70
|
+
},
|
|
71
|
+
read(stream): string {
|
|
72
|
+
const location = stream === "stdout" ? stdoutPath : stderrPath;
|
|
73
|
+
try {
|
|
74
|
+
return fs.readFileSync(location, "utf8");
|
|
75
|
+
} catch {
|
|
76
|
+
// A spawn that never launched leaves nothing behind.
|
|
77
|
+
return "";
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
stderrFd,
|
|
81
|
+
stdoutFd,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Close a descriptor, ignoring one that is already closed. */
|
|
86
|
+
function closeQuietly(fd: number): void {
|
|
87
|
+
try {
|
|
88
|
+
fs.closeSync(fd);
|
|
89
|
+
} catch {
|
|
90
|
+
// Already closed; removing the directory is what reclaims the space.
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Remove the capture directory without letting cleanup replace a result.
|
|
96
|
+
*
|
|
97
|
+
* `dispose` runs from a `finally`, so a throw here would surface instead of the
|
|
98
|
+
* spawn's own outcome — and on Windows a grandchild that inherited the handle
|
|
99
|
+
* can hold the file long enough to make removal fail.
|
|
100
|
+
*/
|
|
101
|
+
function removeQuietly(directory: string): void {
|
|
102
|
+
try {
|
|
103
|
+
fs.rmSync(directory, { force: true, recursive: true });
|
|
104
|
+
} catch {
|
|
105
|
+
// Best effort.
|
|
106
|
+
}
|
|
107
|
+
}
|
package/src/view.ts
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
projectOptions,
|
|
11
11
|
} from "./launcherArgs";
|
|
12
12
|
import { parseDump } from "./model/loadGraph";
|
|
13
|
-
import { ensureExecutable } from "./nativeExecutable";
|
|
13
|
+
import { captureProcessOutput, ensureExecutable } from "./nativeExecutable";
|
|
14
14
|
import { reduce } from "./reduce";
|
|
15
15
|
import { resolveGraphBinary } from "./resolveGraphBinary";
|
|
16
16
|
|
|
@@ -70,11 +70,25 @@ export function runView(argv: readonly string[]): number | void {
|
|
|
70
70
|
process.stderr.write(
|
|
71
71
|
`@ttsc/graph: building the graph for ${opts.cwd} (${opts.tsconfig})...\n`,
|
|
72
72
|
);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
// The dump goes to a file rather than a pipe, so no output ceiling applies.
|
|
74
|
+
const capture = captureProcessOutput();
|
|
75
|
+
let dump;
|
|
76
|
+
let dumpStdout: string;
|
|
77
|
+
let dumpStderr: string;
|
|
78
|
+
try {
|
|
79
|
+
dump = spawnSync(
|
|
80
|
+
binary,
|
|
81
|
+
["dump", "--cwd", opts.cwd, "--tsconfig", opts.tsconfig],
|
|
82
|
+
{
|
|
83
|
+
stdio: ["ignore", capture.stdoutFd, capture.stderrFd],
|
|
84
|
+
windowsHide: true,
|
|
85
|
+
},
|
|
86
|
+
);
|
|
87
|
+
dumpStdout = capture.read("stdout");
|
|
88
|
+
dumpStderr = capture.read("stderr");
|
|
89
|
+
} finally {
|
|
90
|
+
capture.dispose();
|
|
91
|
+
}
|
|
78
92
|
if (dump.error) {
|
|
79
93
|
process.stderr.write(`@ttsc/graph: ${dump.error.message}\n`);
|
|
80
94
|
return 1;
|
|
@@ -86,7 +100,7 @@ export function runView(argv: readonly string[]): number | void {
|
|
|
86
100
|
|
|
87
101
|
let raw: ReturnType<typeof parseDump>;
|
|
88
102
|
try {
|
|
89
|
-
raw = parseDump(
|
|
103
|
+
raw = parseDump(dumpStdout);
|
|
90
104
|
} catch (error) {
|
|
91
105
|
const message = error instanceof Error ? error.message : String(error);
|
|
92
106
|
process.stderr.write(
|