@yorz/cli 0.5.2 → 0.6.1
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/cli/index.js +109 -17
- package/dist/gui/assets/{abnfDiagram-VRR7QNED-DhLcjtGN.js → abnfDiagram-VRR7QNED-CpQSXKD3.js} +1 -1
- package/dist/gui/assets/{arc-BL0qZm8w.js → arc-BFSj3oux.js} +1 -1
- package/dist/gui/assets/{architectureDiagram-ZJ3FMSHR-CWjMvcMF.js → architectureDiagram-ZJ3FMSHR-DUUbTneR.js} +1 -1
- package/dist/gui/assets/{blockDiagram-677ZJIJ3-Uz7zEOKL.js → blockDiagram-677ZJIJ3-b_cB7_jE.js} +1 -1
- package/dist/gui/assets/{c4Diagram-LMCZKHZV-BvZ1lBzh.js → c4Diagram-LMCZKHZV-BW2WDVS6.js} +1 -1
- package/dist/gui/assets/channel-ChMv_4IC.js +1 -0
- package/dist/gui/assets/{chunk-2Q5K7J3B-BbQyCdmr.js → chunk-2Q5K7J3B-DBPdFkwf.js} +1 -1
- package/dist/gui/assets/{chunk-32BRIVSS-Ds1IHaZm.js → chunk-32BRIVSS-DIbss3Mf.js} +1 -1
- package/dist/gui/assets/{chunk-5VM5RSS4-D9JdEyHt.js → chunk-5VM5RSS4-iGPM2FiL.js} +1 -1
- package/dist/gui/assets/{chunk-EX3LRPZG-oX3EhQot.js → chunk-EX3LRPZG-CFO6icXh.js} +1 -1
- package/dist/gui/assets/{chunk-JWPE2WC7-BbYRospG.js → chunk-JWPE2WC7-BoSzxOe1.js} +1 -1
- package/dist/gui/assets/{chunk-MOJQB5TN-_7tOgu0t.js → chunk-MOJQB5TN-DenA9g0A.js} +1 -1
- package/dist/gui/assets/{chunk-RYQCIY6F-BFRq_dy8.js → chunk-RYQCIY6F-6OVqI5Jh.js} +1 -1
- package/dist/gui/assets/{chunk-V7JOEXUC-DaT-HFaL.js → chunk-V7JOEXUC-CwTJoQCL.js} +1 -1
- package/dist/gui/assets/{chunk-VR4S4FIN-B-e98k7C.js → chunk-VR4S4FIN-D1Hv1RW-.js} +1 -1
- package/dist/gui/assets/{chunk-XXDRQBXY-RIATjTXU.js → chunk-XXDRQBXY-5jwTXqEl.js} +1 -1
- package/dist/gui/assets/classDiagram-OUVF2IWQ-YMNyCLvX.js +1 -0
- package/dist/gui/assets/classDiagram-v2-EOCWNBFH-YMNyCLvX.js +1 -0
- package/dist/gui/assets/{cose-bilkent-JH36ORCC-DNBPTk-r.js → cose-bilkent-JH36ORCC-Cc8VWY9x.js} +1 -1
- package/dist/gui/assets/{cynefin-VYW2F7L2-BQXFmXSG.js → cynefin-VYW2F7L2-BXFPytZ_.js} +1 -1
- package/dist/gui/assets/{cynefinDiagram-TSTJHNR4-BjRZryO9.js → cynefinDiagram-TSTJHNR4-WZDfGA2i.js} +1 -1
- package/dist/gui/assets/{dagre-VKFMJZFB-iYsJkVs4.js → dagre-VKFMJZFB-Dip6iJOF.js} +1 -1
- package/dist/gui/assets/{diagram-FQU43EPY-BhNypTaO.js → diagram-FQU43EPY-CFLYoHwF.js} +1 -1
- package/dist/gui/assets/{diagram-G47NLZAW-Cf0W_-2H.js → diagram-G47NLZAW-BswWoT3h.js} +1 -1
- package/dist/gui/assets/{diagram-NH7WQ7WH-B_FprRMM.js → diagram-NH7WQ7WH-BizhF8Pc.js} +1 -1
- package/dist/gui/assets/{diagram-OA4YK3LP-CumfdhaI.js → diagram-OA4YK3LP-BckN9mPI.js} +1 -1
- package/dist/gui/assets/{diagram-WEI45ONY-LqS6bbEJ.js → diagram-WEI45ONY-ht6wkF4x.js} +1 -1
- package/dist/gui/assets/{ebnfDiagram-CCIWWBDH-C0VU_mlO.js → ebnfDiagram-CCIWWBDH-DyVIzHp5.js} +1 -1
- package/dist/gui/assets/{erDiagram-Q63AITRT-Dv5O47LN.js → erDiagram-Q63AITRT-DRFWvAAm.js} +1 -1
- package/dist/gui/assets/{flowDiagram-23GEKE2U-DtKrQdQs.js → flowDiagram-23GEKE2U-CiBwda7G.js} +1 -1
- package/dist/gui/assets/{ganttDiagram-NO4QXBWP-DriDYXqA.js → ganttDiagram-NO4QXBWP-vRQNKo6Y.js} +1 -1
- package/dist/gui/assets/{gitGraphDiagram-IHSO6WYX-BdKJo-ZF.js → gitGraphDiagram-IHSO6WYX-BYCaD1Fo.js} +1 -1
- package/dist/gui/assets/index-Dwx7eFhj.css +1 -0
- package/dist/gui/assets/index-DzV2HQw-.js +36 -0
- package/dist/gui/assets/{infoDiagram-FWYZ7A6U-CIiOkocS.js → infoDiagram-FWYZ7A6U-1Y32iWPH.js} +1 -1
- package/dist/gui/assets/{ishikawaDiagram-FXEZZL3T-DPIQoqmt.js → ishikawaDiagram-FXEZZL3T-BQDQ7prq.js} +1 -1
- package/dist/gui/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/dist/gui/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/gui/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- package/dist/gui/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
- package/dist/gui/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2 +0 -0
- package/dist/gui/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff +0 -0
- package/dist/gui/assets/{journeyDiagram-5HDEW3XC-U4jmPfY2.js → journeyDiagram-5HDEW3XC-DSWI24Bt.js} +1 -1
- package/dist/gui/assets/{kanban-definition-HUTT4EX6-IyRTaw34.js → kanban-definition-HUTT4EX6-fiE0W_uC.js} +1 -1
- package/dist/gui/assets/{linear-CBAHw7_a.js → linear-DqWevqMh.js} +1 -1
- package/dist/gui/assets/{mermaid.core-DZkDfFY_.js → mermaid.core-bsNbTKFB.js} +4 -4
- package/dist/gui/assets/{mindmap-definition-LN4V7U3C-bL7Ll4F2.js → mindmap-definition-LN4V7U3C-DnUeh13j.js} +1 -1
- package/dist/gui/assets/{pegDiagram-2B236MQR-BpsIcyGU.js → pegDiagram-2B236MQR-DE_8gOxy.js} +1 -1
- package/dist/gui/assets/{pieDiagram-ENE6RG2P-CCmNCxks.js → pieDiagram-ENE6RG2P-Wf_jl50X.js} +1 -1
- package/dist/gui/assets/{quadrantDiagram-ABIIQ3AL-Bob4IJnj.js → quadrantDiagram-ABIIQ3AL-Dt-Yn4ZI.js} +1 -1
- package/dist/gui/assets/{railroadDiagram-RFXS5EU6-HuVPehU_.js → railroadDiagram-RFXS5EU6-0I6kqmlH.js} +1 -1
- package/dist/gui/assets/{requirementDiagram-TGXJPOKE-DEfnUjAp.js → requirementDiagram-TGXJPOKE-Dozq39w_.js} +1 -1
- package/dist/gui/assets/{sankeyDiagram-HTMAVEWB-DrFCyp3y.js → sankeyDiagram-HTMAVEWB-Cs7yO0KJ.js} +1 -1
- package/dist/gui/assets/{sequenceDiagram-DBY2YBRQ-DpdcL9St.js → sequenceDiagram-DBY2YBRQ-EQLpVCpV.js} +1 -1
- package/dist/gui/assets/{sizeCapture-X5ZJPWSS-C_Jr0rzu.js → sizeCapture-X5ZJPWSS-BXUb6X9N.js} +1 -1
- package/dist/gui/assets/{stateDiagram-2N3HPSRC-BMvSL0gZ.js → stateDiagram-2N3HPSRC-CYHgCnOc.js} +1 -1
- package/dist/gui/assets/stateDiagram-v2-6OUMAXLB-CqWHqtRs.js +1 -0
- package/dist/gui/assets/{swimlanes-5IMT3BWC-B8vajQdN.js → swimlanes-5IMT3BWC-BgsUQUHx.js} +2 -2
- package/dist/gui/assets/swimlanesDiagram-G3AALYLV-CoZVjlW6.js +8 -0
- package/dist/gui/assets/{timeline-definition-FHXFAJF6-BYPr5oRM.js → timeline-definition-FHXFAJF6-CQJufImP.js} +1 -1
- package/dist/gui/assets/{vennDiagram-L72KCM5P-Zxsd6OOL.js → vennDiagram-L72KCM5P-L-2iYmD5.js} +1 -1
- package/dist/gui/assets/{wardleyDiagram-EHGQE667-5hM1OnjP.js → wardleyDiagram-EHGQE667-BamRRrE7.js} +1 -1
- package/dist/gui/assets/{xychartDiagram-FW5EYKEG-pkI7p278.js → xychartDiagram-FW5EYKEG-itKwurP4.js} +1 -1
- package/dist/gui/index.html +26 -3
- package/package.json +3 -2
- package/dist/gui/assets/channel-DXW7D-GH.js +0 -1
- package/dist/gui/assets/classDiagram-OUVF2IWQ-CemKJkww.js +0 -1
- package/dist/gui/assets/classDiagram-v2-EOCWNBFH-CemKJkww.js +0 -1
- package/dist/gui/assets/index-BhiRKuE5.js +0 -36
- package/dist/gui/assets/index-CWpwy2sQ.css +0 -1
- package/dist/gui/assets/stateDiagram-v2-6OUMAXLB-Ce8AqLzK.js +0 -1
- package/dist/gui/assets/swimlanesDiagram-G3AALYLV-XWsxZefl.js +0 -8
package/dist/cli/index.js
CHANGED
|
@@ -6,9 +6,9 @@ import { join, isAbsolute, resolve, basename as basename$1, dirname, extname, se
|
|
|
6
6
|
import { createHash, randomUUID, randomBytes } from "node:crypto";
|
|
7
7
|
import { existsSync, openSync, closeSync, statSync, readSync, mkdirSync, watch, createReadStream } from "node:fs";
|
|
8
8
|
import { spawn, execFile } from "node:child_process";
|
|
9
|
+
import { promisify } from "node:util";
|
|
9
10
|
import { serve } from "@hono/node-server";
|
|
10
11
|
import { Hono } from "hono";
|
|
11
|
-
import { promisify } from "node:util";
|
|
12
12
|
import { streamSSE } from "hono/streaming";
|
|
13
13
|
import { fileURLToPath } from "node:url";
|
|
14
14
|
import trash from "trash";
|
|
@@ -22,7 +22,7 @@ import { createOpencode } from "@opencode-ai/sdk";
|
|
|
22
22
|
import { createInterface as createInterface$1 } from "node:readline/promises";
|
|
23
23
|
import MarkdownIt from "markdown-it";
|
|
24
24
|
const name = "@yorz/cli";
|
|
25
|
-
const version = "0.
|
|
25
|
+
const version = "0.6.1";
|
|
26
26
|
const type = "module";
|
|
27
27
|
const description = "";
|
|
28
28
|
const bin = { "yorz": "./dist/cli/index.js" };
|
|
@@ -33,9 +33,9 @@ const license = "LGPL-3.0-or-later";
|
|
|
33
33
|
const repository = { "type": "git", "url": "git+https://github.com/hughfenghen/YorZ.git" };
|
|
34
34
|
const homepage = "https://github.com/hughfenghen/YorZ#readme";
|
|
35
35
|
const publishConfig = { "access": "public" };
|
|
36
|
-
const scripts = { "build": "pnpm run build:cli && pnpm run build:gui", "build:cli": "vite build", "build:gui": "vite build --config vite.gui.config.ts", "dev:cli": "pnpm run build:cli && node dist/cli/index.js serve --port 7424 --foreground", "dev:gui": "vite --config vite.gui.config.ts", "typecheck": "tsc -b", "test": "vitest run", "test:agent": "node scripts/test-agent.mjs", "test:e2e": "playwright test", "format": 'prettier --write "src/**/*.{ts,tsx,md,css}"', "prepublishOnly": "pnpm run build" };
|
|
36
|
+
const scripts = { "build": "pnpm run build:cli && pnpm run build:gui", "build:cli": "vite build", "build:gui": "vite build --config vite.gui.config.ts", "dev:cli": "pnpm run build:cli && node dist/cli/index.js serve --port 7424 --foreground", "dev:gui": "vite --config vite.gui.config.ts", "typecheck": "tsc -b", "test": "vitest run", "test:agent": "node scripts/test-agent.mjs", "test:e2e": "pnpm run build && playwright test", "format": 'prettier --write "src/**/*.{ts,tsx,md,css}"', "prepublishOnly": "pnpm run build" };
|
|
37
37
|
const dependencies = { "@anthropic-ai/claude-agent-sdk": "^0.3.207", "@hono/node-server": "^2.0.4", "@openai/codex-sdk": "^0.144.1", "@opencode-ai/sdk": "^1.17.18", "chokidar": "^5.0.0", "commander": "^12.1.0", "gray-matter": "^4.0.3", "hono": "^4.12.25", "jsdom": "^25.0.1", "markdown-it": "^14.2.0", "mermaid": "^11.0.0", "morphdom": "^2.7.8", "timeago.js": "^4.0.2", "trash": "^10.1.1" };
|
|
38
|
-
const devDependencies = { "@kobalte/core": "^0.13.12", "@playwright/test": "^1.61.0", "@solidjs/router": "^0.16.1", "@types/jsdom": "^21.1.7", "@types/markdown-it": "^14.1.2", "@types/node": "^22.10.0", "autoprefixer": "^10.5.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "concurrently": "^9.1.0", "highlight.js": "^11.11.1", "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.1", "lucide-solid": "^1.24.0", "markdown-it-task-lists": "^2.1.1", "postcss": "^8.5.16", "prettier": "^3.4.0", "solid-js": "^1.9.13", "tailwind-merge": "^3.6.0", "tailwindcss": "^3.4.19", "tailwindcss-animate": "^1.0.7", "typescript": "^5.7.0", "vite": "^6.0.0", "vite-plugin-solid": "^2.11.12", "vitest": "^2.1.0" };
|
|
38
|
+
const devDependencies = { "@fontsource/jetbrains-mono": "^5.3.0", "@kobalte/core": "^0.13.12", "@playwright/test": "^1.61.0", "@solidjs/router": "^0.16.1", "@types/jsdom": "^21.1.7", "@types/markdown-it": "^14.1.2", "@types/node": "^22.10.0", "autoprefixer": "^10.5.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "concurrently": "^9.1.0", "highlight.js": "^11.11.1", "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.1", "lucide-solid": "^1.24.0", "markdown-it-task-lists": "^2.1.1", "postcss": "^8.5.16", "prettier": "^3.4.0", "solid-js": "^1.9.13", "tailwind-merge": "^3.6.0", "tailwindcss": "^3.4.19", "tailwindcss-animate": "^1.0.7", "typescript": "^5.7.0", "vite": "^6.0.0", "vite-plugin-solid": "^2.11.12", "vitest": "^2.1.0" };
|
|
39
39
|
const pkg = {
|
|
40
40
|
name,
|
|
41
41
|
version,
|
|
@@ -6417,6 +6417,9 @@ function resolveGlobalInstallCommand(env = process.env, argv = process.argv) {
|
|
|
6417
6417
|
return { cmd: "npm", args: ["install", "-g", "@yorz/cli@latest"] };
|
|
6418
6418
|
}
|
|
6419
6419
|
}
|
|
6420
|
+
function resolveRestartCommand(platform2 = process.platform) {
|
|
6421
|
+
return { cmd: platform2 === "win32" ? "yorz.cmd" : "yorz", args: ["serve", "restart"] };
|
|
6422
|
+
}
|
|
6420
6423
|
function detectPackageManager(values) {
|
|
6421
6424
|
const source = values.filter(Boolean).join(" ").toLowerCase();
|
|
6422
6425
|
if (source.includes("pnpm")) return "pnpm";
|
|
@@ -6440,9 +6443,8 @@ function defaultRunUpdate() {
|
|
|
6440
6443
|
return runProcess(install2.cmd, install2.args);
|
|
6441
6444
|
}
|
|
6442
6445
|
function defaultRunRestart() {
|
|
6443
|
-
const
|
|
6444
|
-
|
|
6445
|
-
const child = spawn(process.execPath, [entry, "serve", "restart"], {
|
|
6446
|
+
const restart = resolveRestartCommand();
|
|
6447
|
+
const child = spawn(restart.cmd, restart.args, {
|
|
6446
6448
|
detached: true,
|
|
6447
6449
|
stdio: "ignore"
|
|
6448
6450
|
});
|
|
@@ -6603,6 +6605,7 @@ function installGlobalErrorHandlers() {
|
|
|
6603
6605
|
});
|
|
6604
6606
|
}
|
|
6605
6607
|
const log = () => getLogger().child("serve");
|
|
6608
|
+
const execFileAsync = promisify(execFile);
|
|
6606
6609
|
function silenceConsoleMirror() {
|
|
6607
6610
|
configureLogger({ mirrorConsole: false });
|
|
6608
6611
|
}
|
|
@@ -6637,11 +6640,15 @@ async function runServe(opts) {
|
|
|
6637
6640
|
noRegisterCwd: opts.noRegisterCwd
|
|
6638
6641
|
});
|
|
6639
6642
|
if (opts.recordRuntime) {
|
|
6643
|
+
const snapshot = await readProcessSnapshot(process.pid);
|
|
6640
6644
|
await upsertProcess({
|
|
6641
6645
|
pid: process.pid,
|
|
6642
6646
|
port: handle.port,
|
|
6643
6647
|
url: handle.url,
|
|
6644
|
-
startedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
6648
|
+
startedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6649
|
+
execPath: process.execPath,
|
|
6650
|
+
argv: process.argv,
|
|
6651
|
+
processStartedAt: snapshot?.processStartedAt
|
|
6645
6652
|
});
|
|
6646
6653
|
console.log(`Stop with: yorz serve stop`);
|
|
6647
6654
|
} else {
|
|
@@ -6777,12 +6784,19 @@ async function runStopServe() {
|
|
|
6777
6784
|
message: "YorZ Service is not running."
|
|
6778
6785
|
};
|
|
6779
6786
|
}
|
|
6780
|
-
const
|
|
6781
|
-
|
|
6787
|
+
const checks = await Promise.all(
|
|
6788
|
+
all.map(async (proc) => ({ proc, snapshot: await readProcessSnapshot(proc.pid) }))
|
|
6789
|
+
);
|
|
6790
|
+
const alive = checks.filter(
|
|
6791
|
+
(check) => check.snapshot && isStoppableYorzProcess(check.proc, check.snapshot)
|
|
6792
|
+
);
|
|
6793
|
+
const dead = checks.filter(
|
|
6794
|
+
(check) => !check.snapshot || !isStoppableYorzProcess(check.proc, check.snapshot)
|
|
6795
|
+
);
|
|
6782
6796
|
if (alive.length === 0) {
|
|
6783
6797
|
await removeRuntime();
|
|
6784
|
-
log().warn("cleared stale runtime records", { pids: dead.map((p) => p.pid) });
|
|
6785
|
-
const deadPidList = dead.map((p) => `pid=${p.pid}`).join(", ");
|
|
6798
|
+
log().warn("cleared stale runtime records", { pids: dead.map((p) => p.proc.pid) });
|
|
6799
|
+
const deadPidList = dead.map((p) => `pid=${p.proc.pid}`).join(", ");
|
|
6786
6800
|
return {
|
|
6787
6801
|
stopped: false,
|
|
6788
6802
|
stoppedPids: [],
|
|
@@ -6793,7 +6807,7 @@ async function runStopServe() {
|
|
|
6793
6807
|
const stoppedPids = [];
|
|
6794
6808
|
const stoppedUrls = [];
|
|
6795
6809
|
const failedPids = [];
|
|
6796
|
-
for (const proc of alive) {
|
|
6810
|
+
for (const { proc } of alive) {
|
|
6797
6811
|
try {
|
|
6798
6812
|
process.kill(proc.pid, "SIGTERM");
|
|
6799
6813
|
log().info("sent SIGTERM", { pid: proc.pid, url: proc.url });
|
|
@@ -6888,8 +6902,13 @@ async function waitForRuntime(pid, timeoutMs) {
|
|
|
6888
6902
|
async function readLiveProcesses() {
|
|
6889
6903
|
const all = await readAllProcesses();
|
|
6890
6904
|
if (all.length === 0) return [];
|
|
6891
|
-
const
|
|
6892
|
-
|
|
6905
|
+
const checks = await Promise.all(
|
|
6906
|
+
all.map(async (proc) => ({ proc, snapshot: await readProcessSnapshot(proc.pid) }))
|
|
6907
|
+
);
|
|
6908
|
+
const alive = checks.filter((check) => check.snapshot && isStoppableYorzProcess(check.proc, check.snapshot)).map((check) => check.proc);
|
|
6909
|
+
const dead = checks.filter(
|
|
6910
|
+
(check) => !check.snapshot || !isStoppableYorzProcess(check.proc, check.snapshot)
|
|
6911
|
+
);
|
|
6893
6912
|
if (dead.length > 0) {
|
|
6894
6913
|
if (alive.length === 0) {
|
|
6895
6914
|
await removeRuntime();
|
|
@@ -6927,7 +6946,10 @@ function toProcessEntry(obj) {
|
|
|
6927
6946
|
pid: obj.pid,
|
|
6928
6947
|
port: obj.port,
|
|
6929
6948
|
url: obj.url,
|
|
6930
|
-
startedAt: obj.startedAt
|
|
6949
|
+
startedAt: obj.startedAt,
|
|
6950
|
+
execPath: typeof obj.execPath === "string" ? obj.execPath : void 0,
|
|
6951
|
+
argv: Array.isArray(obj.argv) && obj.argv.every((v) => typeof v === "string") ? obj.argv : void 0,
|
|
6952
|
+
processStartedAt: typeof obj.processStartedAt === "string" ? obj.processStartedAt : void 0
|
|
6931
6953
|
};
|
|
6932
6954
|
}
|
|
6933
6955
|
function tryV1Entry(parsed) {
|
|
@@ -6938,7 +6960,10 @@ function tryV1Entry(parsed) {
|
|
|
6938
6960
|
pid: parsed.pid,
|
|
6939
6961
|
port: parsed.port,
|
|
6940
6962
|
url: parsed.url,
|
|
6941
|
-
startedAt: parsed.startedAt
|
|
6963
|
+
startedAt: parsed.startedAt,
|
|
6964
|
+
execPath: typeof parsed.execPath === "string" ? parsed.execPath : void 0,
|
|
6965
|
+
argv: Array.isArray(parsed.argv) && parsed.argv.every((v) => typeof v === "string") ? parsed.argv : void 0,
|
|
6966
|
+
processStartedAt: typeof parsed.processStartedAt === "string" ? parsed.processStartedAt : void 0
|
|
6942
6967
|
};
|
|
6943
6968
|
}
|
|
6944
6969
|
async function upsertProcess(entry) {
|
|
@@ -6975,6 +7000,73 @@ function isProcessAlive(pid) {
|
|
|
6975
7000
|
return false;
|
|
6976
7001
|
}
|
|
6977
7002
|
}
|
|
7003
|
+
function isStoppableYorzProcess(entry, snapshot) {
|
|
7004
|
+
if (!hasRuntimeIdentity(entry)) return true;
|
|
7005
|
+
return isTrustedYorzProcess(entry, snapshot);
|
|
7006
|
+
}
|
|
7007
|
+
function hasRuntimeIdentity(entry) {
|
|
7008
|
+
return Boolean(entry.execPath || entry.argv || entry.processStartedAt);
|
|
7009
|
+
}
|
|
7010
|
+
function isTrustedYorzProcess(entry, snapshot) {
|
|
7011
|
+
if (!entry.processStartedAt || snapshot.processStartedAt !== entry.processStartedAt) return false;
|
|
7012
|
+
if (!entry.execPath || !entry.argv) return false;
|
|
7013
|
+
const required = [
|
|
7014
|
+
entry.execPath,
|
|
7015
|
+
entry.argv[1],
|
|
7016
|
+
"serve",
|
|
7017
|
+
"--foreground",
|
|
7018
|
+
"--record-runtime"
|
|
7019
|
+
].filter((arg) => typeof arg === "string" && arg.length > 0);
|
|
7020
|
+
const commandMatches = required.every((arg) => snapshot.commandLine.includes(arg));
|
|
7021
|
+
return commandMatches;
|
|
7022
|
+
}
|
|
7023
|
+
async function readProcessSnapshot(pid) {
|
|
7024
|
+
if (!isProcessAlive(pid)) return null;
|
|
7025
|
+
if (process.platform === "win32") return readWindowsProcessSnapshot(pid);
|
|
7026
|
+
return readPosixProcessSnapshot(pid);
|
|
7027
|
+
}
|
|
7028
|
+
async function readPosixProcessSnapshot(pid) {
|
|
7029
|
+
try {
|
|
7030
|
+
const { stdout } = await execFileAsync("ps", [
|
|
7031
|
+
"-ww",
|
|
7032
|
+
"-p",
|
|
7033
|
+
String(pid),
|
|
7034
|
+
"-o",
|
|
7035
|
+
"lstart=",
|
|
7036
|
+
"-o",
|
|
7037
|
+
"command="
|
|
7038
|
+
]);
|
|
7039
|
+
const line = stdout.trim();
|
|
7040
|
+
if (!line) return null;
|
|
7041
|
+
const parts = line.match(/^(\S+\s+\S+\s+\d+\s+\d+:\d+:\d+\s+\d+)\s+([\s\S]+)$/);
|
|
7042
|
+
if (!parts) return { commandLine: line };
|
|
7043
|
+
return { processStartedAt: parts[1], commandLine: parts[2] };
|
|
7044
|
+
} catch {
|
|
7045
|
+
return null;
|
|
7046
|
+
}
|
|
7047
|
+
}
|
|
7048
|
+
async function readWindowsProcessSnapshot(pid) {
|
|
7049
|
+
try {
|
|
7050
|
+
const script = [
|
|
7051
|
+
`$p = Get-CimInstance Win32_Process -Filter "ProcessId = ${pid}"`,
|
|
7052
|
+
"if ($null -eq $p) { exit 1 }",
|
|
7053
|
+
"$p | Select-Object CommandLine,CreationDate | ConvertTo-Json -Compress"
|
|
7054
|
+
].join("; ");
|
|
7055
|
+
const { stdout } = await execFileAsync("powershell.exe", [
|
|
7056
|
+
"-NoProfile",
|
|
7057
|
+
"-NonInteractive",
|
|
7058
|
+
"-Command",
|
|
7059
|
+
script
|
|
7060
|
+
]);
|
|
7061
|
+
const parsed = JSON.parse(stdout.trim());
|
|
7062
|
+
const commandLine = typeof parsed.CommandLine === "string" ? parsed.CommandLine : "";
|
|
7063
|
+
const processStartedAt = typeof parsed.CreationDate === "string" ? parsed.CreationDate : void 0;
|
|
7064
|
+
if (!commandLine) return null;
|
|
7065
|
+
return { commandLine, processStartedAt };
|
|
7066
|
+
} catch {
|
|
7067
|
+
return null;
|
|
7068
|
+
}
|
|
7069
|
+
}
|
|
6978
7070
|
async function waitForProcessExit(pid, timeoutMs) {
|
|
6979
7071
|
const until = Date.now() + timeoutMs;
|
|
6980
7072
|
while (Date.now() < until) {
|
package/dist/gui/assets/{abnfDiagram-VRR7QNED-DhLcjtGN.js → abnfDiagram-VRR7QNED-CpQSXKD3.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-DenA9g0A.js";import{p as f}from"./chunk-JWPE2WC7-BoSzxOe1.js";import{_ as n,l as o}from"./mermaid.core-bsNbTKFB.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BXFPytZ_.js";import"./index-DzV2HQw-.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-
|
|
1
|
+
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-bsNbTKFB.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|