termdock 1.4.55 → 1.4.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/ModelPreview-BSsPp4sV.js +4108 -0
- package/dist/client/assets/{abnfDiagram-VRR7QNED-v9KOyvUA.js → abnfDiagram-VRR7QNED-D7kNSKrm.js} +1 -1
- package/dist/client/assets/{arc-Dokn57ft.js → arc-DGGW1fex.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-B2_2J4-w.js → architectureDiagram-ZJ3FMSHR-49POg9H_.js} +1 -1
- package/dist/client/assets/{blockDiagram-677ZJIJ3-DFl0I-w9.js → blockDiagram-677ZJIJ3-DdI6y2Cy.js} +1 -1
- package/dist/client/assets/{c4Diagram-LMCZKHZV-Bo1Hy5ly.js → c4Diagram-LMCZKHZV-RQIIfwQM.js} +1 -1
- package/dist/client/assets/channel-cckCwkGi.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B-DVTvlK-j.js → chunk-2Q5K7J3B-BH6jcib0.js} +1 -1
- package/dist/client/assets/{chunk-32BRIVSS-NdC1yaOj.js → chunk-32BRIVSS-ClQX4UJs.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-ZRKNZVGo.js → chunk-5VM5RSS4-BAbJEgYm.js} +1 -1
- package/dist/client/assets/{chunk-EX3LRPZG-CzhNQmEu.js → chunk-EX3LRPZG-BGnGL94L.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-BL76uLj3.js → chunk-JWPE2WC7-YfYNbsiy.js} +1 -1
- package/dist/client/assets/{chunk-MOJQB5TN-ZNx7ZEmO.js → chunk-MOJQB5TN-Dr4HIY9H.js} +1 -1
- package/dist/client/assets/{chunk-RYQCIY6F-xxcXIEwu.js → chunk-RYQCIY6F-CiJELP-G.js} +1 -1
- package/dist/client/assets/{chunk-V7JOEXUC-Bg_lp0y3.js → chunk-V7JOEXUC-CMGJ7Q09.js} +1 -1
- package/dist/client/assets/{chunk-VR4S4FIN-C93CSXty.js → chunk-VR4S4FIN-ttnTbROA.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-DHn8Vn3c.js → chunk-XXDRQBXY-CtCw1ul4.js} +1 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-B6QSfcbD.js +1 -0
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-B6QSfcbD.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-Baif6bSx.js → cose-bilkent-JH36ORCC-Q9-6mRn-.js} +1 -1
- package/dist/client/assets/{cynefin-VYW2F7L2-DryF4Xhm.js → cynefin-VYW2F7L2-DQ2RXAPF.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-TSTJHNR4-BdlUIn8W.js → cynefinDiagram-TSTJHNR4-DxK-Hn1t.js} +1 -1
- package/dist/client/assets/{dagre-VKFMJZFB-C-D019df.js → dagre-VKFMJZFB-lstjro8g.js} +1 -1
- package/dist/client/assets/{diagram-FQU43EPY-DgdPi3di.js → diagram-FQU43EPY-CHMpu2zt.js} +1 -1
- package/dist/client/assets/{diagram-G47NLZAW-CZ-lA51n.js → diagram-G47NLZAW-BwAMogPp.js} +1 -1
- package/dist/client/assets/{diagram-NH7WQ7WH-A698GPm8.js → diagram-NH7WQ7WH-C3Wxq1rZ.js} +1 -1
- package/dist/client/assets/{diagram-OA4YK3LP-DR695wJg.js → diagram-OA4YK3LP-CKf4L8-k.js} +1 -1
- package/dist/client/assets/{diagram-WEI45ONY-jNiC3Mji.js → diagram-WEI45ONY-BCwGEPzV.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-CCIWWBDH-DV-zX_Gy.js → ebnfDiagram-CCIWWBDH-CMm5IECm.js} +1 -1
- package/dist/client/assets/{erDiagram-Q63AITRT-q8tX38xm.js → erDiagram-Q63AITRT-pjwPGsrf.js} +1 -1
- package/dist/client/assets/{flowDiagram-23GEKE2U-ChsZYCRf.js → flowDiagram-23GEKE2U-DCWFOU-M.js} +1 -1
- package/dist/client/assets/{ganttDiagram-NO4QXBWP-BqhsmAM7.js → ganttDiagram-NO4QXBWP-BO1OOmuG.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-BnUGLA-M.js → gitGraphDiagram-IHSO6WYX-B22GXKIw.js} +1 -1
- package/dist/client/assets/index-CwlRj1y8.css +1 -0
- package/dist/client/assets/index-D98mcpZR.js +438 -0
- package/dist/client/assets/{infoDiagram-FWYZ7A6U-DB2TpJYj.js → infoDiagram-FWYZ7A6U-BxVZ7jBX.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-Bt3UPJD3.js → ishikawaDiagram-FXEZZL3T-QtbQCqZw.js} +1 -1
- package/dist/client/assets/{journeyDiagram-5HDEW3XC-DiW3ZF-j.js → journeyDiagram-5HDEW3XC-B21RAaDv.js} +1 -1
- package/dist/client/assets/{kanban-definition-HUTT4EX6-DIqWSzdn.js → kanban-definition-HUTT4EX6-goZt785C.js} +1 -1
- package/dist/client/assets/{linear-DseQ2yoz.js → linear-Bbfh68Ch.js} +1 -1
- package/dist/client/assets/{mermaid.core-p5MzsEWg.js → mermaid.core-DlzL4UT6.js} +4 -4
- package/dist/client/assets/{mindmap-definition-LN4V7U3C-Bcr8vE-x.js → mindmap-definition-LN4V7U3C-DT1kTGRI.js} +1 -1
- package/dist/client/assets/{pegDiagram-2B236MQR-BIgxPBoQ.js → pegDiagram-2B236MQR-BaGklX1b.js} +1 -1
- package/dist/client/assets/{pieDiagram-ENE6RG2P-CY4Lg0At.js → pieDiagram-ENE6RG2P-CUIWtzdU.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-CIBEQHQ4.js → quadrantDiagram-ABIIQ3AL-Bm-_wmln.js} +1 -1
- package/dist/client/assets/{railroadDiagram-RFXS5EU6-Caq1SbrK.js → railroadDiagram-RFXS5EU6-B9o5Kn4t.js} +1 -1
- package/dist/client/assets/{requirementDiagram-TGXJPOKE-B6ZlT1wV.js → requirementDiagram-TGXJPOKE-JaXMhIrr.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-HTMAVEWB-B1f4JOr-.js → sankeyDiagram-HTMAVEWB-CSyIQqFn.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-CB12eCRf.js → sequenceDiagram-DBY2YBRQ-BZMfninx.js} +1 -1
- package/dist/client/assets/{sizeCapture-X5ZJPWSS-BTKjMjPw.js → sizeCapture-X5ZJPWSS-i_zebAZw.js} +1 -1
- package/dist/client/assets/{stateDiagram-2N3HPSRC-BwoS0_yj.js → stateDiagram-2N3HPSRC-CyJqP2pr.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-tRkeSHGl.js +1 -0
- package/dist/client/assets/{swimlanes-5IMT3BWC-CyY7nmOK.js → swimlanes-5IMT3BWC-Xo-F43bQ.js} +2 -2
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-CeswVAjV.js +8 -0
- package/dist/client/assets/{timeline-definition-FHXFAJF6-DuJhrZL3.js → timeline-definition-FHXFAJF6-HQS82s3B.js} +1 -1
- package/dist/client/assets/{vennDiagram-L72KCM5P-QY6zAcOu.js → vennDiagram-L72KCM5P-CGv58emV.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-EHGQE667-tCRSKFnO.js → wardleyDiagram-EHGQE667-BYZ-PSUt.js} +1 -1
- package/dist/client/assets/{xychartDiagram-FW5EYKEG-hrmaVtk8.js → xychartDiagram-FW5EYKEG-DG20c1h7.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/sw.js +1 -1
- package/dist/server/routes/filesystem.js +137 -35
- package/package.json +3 -1
- package/runtime-manifest.json +3 -3
- package/scripts/diag-td-slow.mjs +113 -0
- package/dist/client/assets/channel-CMy1yWmT.js +0 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-CWL2Kj7x.js +0 -1
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-CWL2Kj7x.js +0 -1
- package/dist/client/assets/index-7oItXRxL.js +0 -436
- package/dist/client/assets/index-BxDTdORQ.css +0 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-CPTGG4BJ.js +0 -1
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-BsEBNolb.js +0 -8
package/runtime-manifest.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"packageName": "termdock",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.56",
|
|
5
5
|
"runtimeProtocolVersion": 1,
|
|
6
6
|
"minimumDesktopVersion": "1.4.46",
|
|
7
7
|
"nodeMajor": 22,
|
|
8
|
-
"dependencyHash": "sha256-
|
|
9
|
-
"serverBundleHash": "sha256
|
|
8
|
+
"dependencyHash": "sha256-HxC6p3b4kFesefw+vmNYJtPtdIKJaZR1jFNb7DRJqjU=",
|
|
9
|
+
"serverBundleHash": "sha256-dCyAGoE4T9EwLzBvaaKz8RfPOx6gyna+WPY1ofn95DU=",
|
|
10
10
|
"entrypoint": "dist/server/cli.js",
|
|
11
11
|
"clientEntrypoint": "dist/client/index.html"
|
|
12
12
|
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Throwaway diagnostic helper for the termdock "requests get slow after ~30min" issue.
|
|
3
|
+
// Usage: node scripts/diag-td-slow.mjs [profileSeconds]
|
|
4
|
+
// Steps: SIGUSR1 the server → find inspector target → sample memory/active
|
|
5
|
+
// resources → optionally take a CPU profile and save it as td-cpu-profile.json.
|
|
6
|
+
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
import os from 'os';
|
|
9
|
+
import { execSync, spawnSync } from 'child_process';
|
|
10
|
+
|
|
11
|
+
const INSPECTOR_PORT = 9229;
|
|
12
|
+
const profileSeconds = Number(process.argv[2] || 0);
|
|
13
|
+
|
|
14
|
+
function findTdPid() {
|
|
15
|
+
const out = spawnSync('pgrep', ['-f', '(dist/server/cli.js|bin/td) --foreground'], { encoding: 'utf8' }).stdout.trim();
|
|
16
|
+
return out.split('\n')[0] || null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async function main() {
|
|
20
|
+
const pid = findTdPid();
|
|
21
|
+
if (!pid) {
|
|
22
|
+
console.error('No td server process found');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
console.log(`Server pid: ${pid}`);
|
|
26
|
+
|
|
27
|
+
// Enable the inspector if not already listening.
|
|
28
|
+
try {
|
|
29
|
+
const res = await fetch(`http://127.0.0.1:${INSPECTOR_PORT}/json/list`);
|
|
30
|
+
if (!res.ok) throw new Error(`status ${res.status}`);
|
|
31
|
+
} catch {
|
|
32
|
+
console.log('Enabling inspector via SIGUSR1...');
|
|
33
|
+
process.kill(Number(pid), 'SIGUSR1');
|
|
34
|
+
await new Promise((r) => setTimeout(r, 1500));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
let target;
|
|
38
|
+
for (let i = 0; i < 20; i++) {
|
|
39
|
+
try {
|
|
40
|
+
const list = await (await fetch(`http://127.0.0.1:${INSPECTOR_PORT}/json/list`)).json();
|
|
41
|
+
target = list.find((t) => t.title && t.title.includes('node')) || list[0];
|
|
42
|
+
if (target) break;
|
|
43
|
+
} catch { /* retry */ }
|
|
44
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
45
|
+
}
|
|
46
|
+
if (!target) {
|
|
47
|
+
console.error('Could not reach inspector');
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
console.log(`Inspector target: ${target.title} (${target.webSocketDebuggerUrl})`);
|
|
51
|
+
|
|
52
|
+
const ws = new WebSocket(target.webSocketDebuggerUrl);
|
|
53
|
+
let seq = 0;
|
|
54
|
+
const pending = new Map();
|
|
55
|
+
const send = (method, params = {}) => new Promise((resolve, reject) => {
|
|
56
|
+
const id = ++seq;
|
|
57
|
+
pending.set(id, { resolve, reject });
|
|
58
|
+
ws.send(JSON.stringify({ id, method, params }));
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
ws.onmessage = (ev) => {
|
|
62
|
+
const msg = JSON.parse(ev.data);
|
|
63
|
+
if (msg.id && pending.has(msg.id)) {
|
|
64
|
+
const { resolve, reject } = pending.get(msg.id);
|
|
65
|
+
pending.delete(msg.id);
|
|
66
|
+
if (msg.error) reject(new Error(JSON.stringify(msg.error)));
|
|
67
|
+
else resolve(msg.result);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
await new Promise((resolve, reject) => {
|
|
72
|
+
ws.onopen = resolve;
|
|
73
|
+
ws.onerror = reject;
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const evalExpr = async (expression) => {
|
|
77
|
+
const res = await send('Runtime.evaluate', { expression, returnByValue: true, awaitPromise: true });
|
|
78
|
+
return res.result?.value;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
82
|
+
const mem = await evalExpr('JSON.stringify(process.memoryUsage())');
|
|
83
|
+
const resources = await evalExpr(
|
|
84
|
+
'JSON.stringify(Object.entries(process.getActiveResourcesInfo().reduce((acc, r) => (acc[r] = (acc[r]||0)+1, acc), {})).sort((a,b)=>b[1]-a[1]))',
|
|
85
|
+
);
|
|
86
|
+
const fds = await evalExpr('JSON.stringify([...process._getActiveHandles()].map(h=>h.constructor?.name))');
|
|
87
|
+
const rssKb = fs.readFileSync(`/proc/${pid}/status`, 'utf8').match(/VmRSS:\s+(\d+)/)?.[1];
|
|
88
|
+
|
|
89
|
+
console.log(`\n=== ${stamp} ===`);
|
|
90
|
+
console.log(`RSS: ${rssKb} kB`);
|
|
91
|
+
console.log(`memoryUsage: ${mem}`);
|
|
92
|
+
console.log(`activeResources: ${resources}`);
|
|
93
|
+
console.log(`activeHandles: ${fds}`);
|
|
94
|
+
|
|
95
|
+
if (profileSeconds > 0) {
|
|
96
|
+
console.log(`\nCollecting CPU profile for ${profileSeconds}s...`);
|
|
97
|
+
await send('Profiler.enable');
|
|
98
|
+
await send('Profiler.start');
|
|
99
|
+
await new Promise((r) => setTimeout(r, profileSeconds * 1000));
|
|
100
|
+
const { profile } = await send('Profiler.stop');
|
|
101
|
+
const outFile = 'td-cpu-profile.json';
|
|
102
|
+
fs.writeFileSync(outFile, JSON.stringify(profile));
|
|
103
|
+
console.log(`Saved ${outFile}`);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
ws.close();
|
|
107
|
+
process.exit(0);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
main().catch((e) => {
|
|
111
|
+
console.error(e);
|
|
112
|
+
process.exit(1);
|
|
113
|
+
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as a,C as n}from"./mermaid.core-p5MzsEWg.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as t,C as e}from"./chunk-V7JOEXUC-Bg_lp0y3.js";import{b as i}from"./mermaid.core-p5MzsEWg.js";import"./chunk-5VM5RSS4-ZRKNZVGo.js";import"./chunk-XXDRQBXY-DHn8Vn3c.js";import"./chunk-VR4S4FIN-C93CSXty.js";import"./chunk-32BRIVSS-NdC1yaOj.js";import"./purify.es-CC4Brkr_.js";import"./index-7oItXRxL.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as t,C as e}from"./chunk-V7JOEXUC-Bg_lp0y3.js";import{b as i}from"./mermaid.core-p5MzsEWg.js";import"./chunk-5VM5RSS4-ZRKNZVGo.js";import"./chunk-XXDRQBXY-DHn8Vn3c.js";import"./chunk-VR4S4FIN-C93CSXty.js";import"./chunk-32BRIVSS-NdC1yaOj.js";import"./purify.es-CC4Brkr_.js";import"./index-7oItXRxL.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
|