mdmaid-desk 0.1.21 → 0.1.23
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 +29 -12
- package/dist/api-client.d.ts +4 -1
- package/dist/api-client.js +45 -7
- package/dist/api-client.js.map +1 -1
- package/dist/cli.d.ts +5 -0
- package/dist/cli.js +183 -7
- package/dist/cli.js.map +1 -1
- package/dist/domain.d.ts +2 -2
- package/dist/domain.js +2 -0
- package/dist/domain.js.map +1 -1
- package/dist/mermaid-validation.d.ts +9 -1
- package/dist/mermaid-validation.js +23 -7
- package/dist/mermaid-validation.js.map +1 -1
- package/dist/server.js +17 -5
- package/dist/server.js.map +1 -1
- package/dist/sqlite-storage.d.ts +1 -1
- package/dist/sqlite-storage.js +41 -3
- package/dist/sqlite-storage.js.map +1 -1
- package/dist/tui.js +3 -2
- package/dist/tui.js.map +1 -1
- package/dist/web-client.d.ts +3 -1
- package/dist/web-client.js +66 -17
- package/dist/web-client.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,8 +39,8 @@ The repository contains the first usable shared-service vertical slice:
|
|
|
39
39
|
- daemon-first CLI writes with daemonless SQLite fallback;
|
|
40
40
|
- explicit start, status, stop, login-service install, and uninstall lifecycle;
|
|
41
41
|
- stable port-80 default with explicit alternate ports for isolated testing;
|
|
42
|
-
- `workspace`, `register`, `import`, `review`, `list`, `web`, `tui`,
|
|
43
|
-
commands.
|
|
42
|
+
- `workspace`, `validate`, `register`, `import`, `review`, `list`, `web`, `tui`,
|
|
43
|
+
and `daemon` commands.
|
|
44
44
|
|
|
45
45
|
Stdin import, comments, and editing remain planned milestones. Document
|
|
46
46
|
registration works without a daemon, but automatically
|
|
@@ -149,6 +149,16 @@ the first accepted value and assembles the visible label as
|
|
|
149
149
|
workspaces with the same repository/task identity appear under that one
|
|
150
150
|
project. Branch names are not used as display names.
|
|
151
151
|
|
|
152
|
+
Preflight every Mermaid fence without changing the catalog:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
mdmaid-desk validate /path/to/repository/docs/plan.md --json
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The command exits `0` when every diagram parses and `1` when any diagram is
|
|
159
|
+
invalid. Its versioned JSON report includes the total diagram count and every
|
|
160
|
+
issue with its block number, Markdown start line, and parser diagnostic.
|
|
161
|
+
|
|
152
162
|
Registration remains passive even when attention is `approval`. To ask for a
|
|
153
163
|
human decision and keep the current agent command waiting, declare the review
|
|
154
164
|
contract explicitly:
|
|
@@ -164,11 +174,12 @@ mdmaid-desk register /path/to/repository/docs/plan.md \
|
|
|
164
174
|
--json
|
|
165
175
|
```
|
|
166
176
|
|
|
167
|
-
The web and TUI show Approve, Request changes,
|
|
168
|
-
document revision has a pending request. The response JSON
|
|
169
|
-
producer's request message and the human's response text.
|
|
170
|
-
requires explanatory text. Updating document content makes
|
|
171
|
-
stale; opening, reading, or marking the document done never
|
|
177
|
+
The web and TUI show Approve, Request changes, Reject, and Mark superseded only
|
|
178
|
+
while that exact document revision has a pending request. The response JSON
|
|
179
|
+
includes both the producer's request message and the human's response text.
|
|
180
|
+
`changes_requested` requires explanatory text. Updating document content makes
|
|
181
|
+
the old request stale; opening, reading, or marking the document done never
|
|
182
|
+
approves it.
|
|
172
183
|
|
|
173
184
|
Review operations are also composable:
|
|
174
185
|
|
|
@@ -333,6 +344,9 @@ mdmaid-desk register .agent-runs/change-reviews/current/review.md \
|
|
|
333
344
|
|
|
334
345
|
The decision is bound to the registered document revision and content hash.
|
|
335
346
|
Changing the review artifact makes the pending request stale.
|
|
347
|
+
If a separate newer review replaces an unreviewed request, mark the old request
|
|
348
|
+
`superseded`; this wakes a waiting producer without approving, requesting
|
|
349
|
+
changes, or rejecting the obsolete version.
|
|
336
350
|
|
|
337
351
|
For a native terminal diff, include one or more standard Git patches in fenced
|
|
338
352
|
`diff` blocks. The reader opens in Diff mode when it finds a valid patch and
|
|
@@ -352,17 +366,20 @@ beside a line number for line feedback or use **feedback on file**. Anchored
|
|
|
352
366
|
notes become durable structured response items when
|
|
353
367
|
Request Changes is submitted, alongside a separate general note;
|
|
354
368
|
`review wait --json` returns their file paths, stable hunk IDs, optional line
|
|
355
|
-
and side, kinds, and messages. Open notes prevent accidental
|
|
356
|
-
|
|
369
|
+
and side, kinds, and messages. Open notes prevent accidental Approve, Reject,
|
|
370
|
+
or Supersede actions. The review surface is intentionally read-only:
|
|
357
371
|
staging, reverting, or editing would invalidate the frozen snapshot being
|
|
358
372
|
approved. Change Reviews with no native diff or with parser safety warnings
|
|
359
373
|
cannot be approved; the human can still Request Changes or Reject them.
|
|
360
374
|
|
|
361
375
|
Registration, import, and live-reference reconciliation validate every
|
|
362
376
|
Mermaid fence with Mermaid's parser. A bad diagram rejects the update with its
|
|
363
|
-
block number, Markdown start line, and parser diagnostic.
|
|
364
|
-
|
|
365
|
-
|
|
377
|
+
block number, Markdown start line, and parser diagnostic. API errors include
|
|
378
|
+
the same complete report under `error.validation`; `register --json` and
|
|
379
|
+
`import --json` preserve it so a producer can patch every reported block before
|
|
380
|
+
retrying. Browser rendering is also isolated per diagram so a runtime failure
|
|
381
|
+
remains visible without hiding the document or its stable
|
|
382
|
+
`/d/<document-id>` URL.
|
|
366
383
|
|
|
367
384
|
The default state directory is:
|
|
368
385
|
|
package/dist/api-client.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { DocumentAction, DocumentImport, DocumentRegistration, HealthData, PublicDocument, PublicProject, PublicReviewRequest, PublicWorkspace, TerminalRenderPreferences, TerminalRender, WebRender, ReviewRequestRegistration, ReviewRequestResponse, ReviewStatus, WorkspaceRegistration } from "./api-types.js";
|
|
2
|
+
import type { MermaidValidationReport } from "./mermaid-validation.js";
|
|
2
3
|
export declare class DeskApiError extends Error {
|
|
3
4
|
readonly status: number;
|
|
4
5
|
readonly code: string;
|
|
5
|
-
|
|
6
|
+
readonly validation?: MermaidValidationReport | undefined;
|
|
7
|
+
constructor(status: number, code: string, message: string, validation?: MermaidValidationReport | undefined);
|
|
6
8
|
}
|
|
7
9
|
export interface CatalogEvent {
|
|
8
10
|
action: string;
|
|
@@ -37,3 +39,4 @@ export declare class DeskApiClient {
|
|
|
37
39
|
act(id: string, action: DocumentAction): Promise<PublicDocument>;
|
|
38
40
|
subscribeCatalog(listener: (event: CatalogEvent) => void, options?: CatalogSubscriptionOptions): Promise<void>;
|
|
39
41
|
}
|
|
42
|
+
export declare function isPublicReviewRequest(value: unknown): value is PublicReviewRequest;
|
package/dist/api-client.js
CHANGED
|
@@ -3,10 +3,12 @@ import { isChangeReviewDiff } from "./change-review.js";
|
|
|
3
3
|
export class DeskApiError extends Error {
|
|
4
4
|
status;
|
|
5
5
|
code;
|
|
6
|
-
|
|
6
|
+
validation;
|
|
7
|
+
constructor(status, code, message, validation) {
|
|
7
8
|
super(message);
|
|
8
9
|
this.status = status;
|
|
9
10
|
this.code = code;
|
|
11
|
+
this.validation = validation;
|
|
10
12
|
this.name = "DeskApiError";
|
|
11
13
|
}
|
|
12
14
|
}
|
|
@@ -238,7 +240,7 @@ export class DeskApiClient {
|
|
|
238
240
|
}
|
|
239
241
|
if (!response.ok) {
|
|
240
242
|
if (isErrorEnvelope(body)) {
|
|
241
|
-
throw new DeskApiError(response.status, body.error.code, body.error.message);
|
|
243
|
+
throw new DeskApiError(response.status, body.error.code, body.error.message, body.error.validation);
|
|
242
244
|
}
|
|
243
245
|
throw new Error(`Daemon request failed (${response.status})`);
|
|
244
246
|
}
|
|
@@ -301,7 +303,7 @@ function isPublicDocument(value) {
|
|
|
301
303
|
typeof value.updatedAt === "string" &&
|
|
302
304
|
typeof value.route === "string");
|
|
303
305
|
}
|
|
304
|
-
function isPublicReviewRequest(value) {
|
|
306
|
+
export function isPublicReviewRequest(value) {
|
|
305
307
|
if (!isRecord(value)) {
|
|
306
308
|
return false;
|
|
307
309
|
}
|
|
@@ -349,9 +351,21 @@ function isReviewFeedbackItem(value) {
|
|
|
349
351
|
if (!/^feedback-[a-f0-9]{20}$/.test(value.id) || !validPath || !validMessage) {
|
|
350
352
|
return false;
|
|
351
353
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
354
|
+
const validHunk = value.hunkId === undefined ||
|
|
355
|
+
(typeof value.hunkId === "string" && /^hunk-[a-f0-9]{20}$/.test(value.hunkId));
|
|
356
|
+
const validLine = value.line === undefined ||
|
|
357
|
+
(typeof value.line === "number" && Number.isSafeInteger(value.line) && value.line > 0);
|
|
358
|
+
const validSide = value.side === undefined || value.side === "old" || value.side === "new";
|
|
359
|
+
if (!validHunk ||
|
|
360
|
+
!validLine ||
|
|
361
|
+
!validSide ||
|
|
362
|
+
(value.line === undefined) !== (value.side === undefined) ||
|
|
363
|
+
(value.line !== undefined && value.hunkId === undefined)) {
|
|
364
|
+
return false;
|
|
365
|
+
}
|
|
366
|
+
return value.kind === "feedback" ||
|
|
367
|
+
(value.kind === "todo" && value.hunkId === undefined &&
|
|
368
|
+
value.line === undefined && value.side === undefined);
|
|
355
369
|
}
|
|
356
370
|
function isWebRender(value) {
|
|
357
371
|
return (isRecord(value) &&
|
|
@@ -374,7 +388,31 @@ function isErrorEnvelope(value) {
|
|
|
374
388
|
return (isRecord(value) &&
|
|
375
389
|
isRecord(value.error) &&
|
|
376
390
|
typeof value.error.code === "string" &&
|
|
377
|
-
typeof value.error.message === "string"
|
|
391
|
+
typeof value.error.message === "string" &&
|
|
392
|
+
(value.error.validation === undefined ||
|
|
393
|
+
isMermaidValidationReport(value.error.validation)));
|
|
394
|
+
}
|
|
395
|
+
function isMermaidValidationReport(value) {
|
|
396
|
+
if (!isRecord(value) ||
|
|
397
|
+
value.kind !== "mermaid" ||
|
|
398
|
+
typeof value.valid !== "boolean" ||
|
|
399
|
+
!isInteger(value.diagramCount) ||
|
|
400
|
+
value.diagramCount < 0 ||
|
|
401
|
+
!Array.isArray(value.issues)) {
|
|
402
|
+
return false;
|
|
403
|
+
}
|
|
404
|
+
const issuesValid = value.issues.every((issue) => isRecord(issue) &&
|
|
405
|
+
isInteger(issue.block) &&
|
|
406
|
+
issue.block >= 1 &&
|
|
407
|
+
issue.block <= value.diagramCount &&
|
|
408
|
+
isInteger(issue.line) &&
|
|
409
|
+
issue.line >= 1 &&
|
|
410
|
+
typeof issue.message === "string" &&
|
|
411
|
+
issue.message.length > 0 &&
|
|
412
|
+
issue.message.length <= 2_000);
|
|
413
|
+
return (issuesValid &&
|
|
414
|
+
value.issues.length <= value.diagramCount &&
|
|
415
|
+
value.valid === (value.issues.length === 0));
|
|
378
416
|
}
|
|
379
417
|
function dispatchEventBlock(block, listener, onReady) {
|
|
380
418
|
let type = "message";
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { type ReviewRequest } from "./catalog.js";
|
|
2
3
|
import { DeskApiClient } from "./api-client.js";
|
|
3
4
|
import { type DaemonConnection } from "./daemon-state.js";
|
|
4
5
|
import { type DeskServerOptions, type RunningDeskServer } from "./server.js";
|
|
@@ -18,6 +19,10 @@ export interface RunOptions {
|
|
|
18
19
|
waitForShutdown?: (server: RunningDeskServer) => Promise<void>;
|
|
19
20
|
signal?: AbortSignal;
|
|
20
21
|
reviewPollIntervalMs?: number;
|
|
22
|
+
runningPackageVersion?: string;
|
|
23
|
+
readInstalledPackageVersion?: () => string;
|
|
24
|
+
resumeReviewWait?: (id: string, signal?: AbortSignal) => Promise<ReviewRequest>;
|
|
25
|
+
updatedCliEntryPath?: string;
|
|
21
26
|
}
|
|
22
27
|
export declare function run(args: string[], stdout: Writer, stderr: Writer, options?: RunOptions): Promise<number>;
|
|
23
28
|
export declare function isEntrypoint(moduleUrl: string, entryPath: string): boolean;
|
package/dist/cli.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
2
|
+
import { execFile } from "node:child_process";
|
|
3
|
+
import { constants as fsConstants, realpathSync } from "node:fs";
|
|
4
|
+
import { lstat, open, realpath } from "node:fs/promises";
|
|
3
5
|
import { homedir } from "node:os";
|
|
4
|
-
import { basename, join, resolve } from "node:path";
|
|
6
|
+
import { basename, extname, join, resolve } from "node:path";
|
|
5
7
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
6
8
|
import { Catalog, } from "./catalog.js";
|
|
7
|
-
import { DeskApiClient, DeskApiError } from "./api-client.js";
|
|
9
|
+
import { DeskApiClient, DeskApiError, isPublicReviewRequest, } from "./api-client.js";
|
|
8
10
|
import { connectToDaemon, connectToDaemonInfo, daemonDescriptorPath, descriptorForServer, removeDaemonDescriptor, writeDaemonDescriptor, } from "./daemon-state.js";
|
|
9
11
|
import { startDaemon as startBackgroundDaemon, stopDaemon as stopBackgroundDaemon, } from "./daemon-lifecycle.js";
|
|
10
12
|
import { normalizePublicUrl, startDeskServer, } from "./server.js";
|
|
@@ -13,6 +15,10 @@ import { readPackageVersion } from "./package-info.js";
|
|
|
13
15
|
import { DEFAULT_DESK_ORIGIN, DEFAULT_DESK_PORT, } from "./service-config.js";
|
|
14
16
|
import { runTui as runTerminalWorkspace } from "./tui.js";
|
|
15
17
|
import { installUserService as installLoginService, uninstallUserService as uninstallLoginService, } from "./user-service.js";
|
|
18
|
+
import { MermaidValidationError, validateMermaidMarkdown, } from "./mermaid-validation.js";
|
|
19
|
+
const MAX_VALIDATION_BYTES = 2 * 1024 * 1024;
|
|
20
|
+
const RUNNING_PACKAGE_VERSION = readPackageVersion();
|
|
21
|
+
const MAX_UPDATED_WAITER_OUTPUT_BYTES = 256 * 1024;
|
|
16
22
|
const DOCUMENT_KINDS = new Set([
|
|
17
23
|
"definition",
|
|
18
24
|
"brief",
|
|
@@ -44,6 +50,7 @@ const REVIEW_OUTCOMES = new Set([
|
|
|
44
50
|
"approved",
|
|
45
51
|
"changes_requested",
|
|
46
52
|
"rejected",
|
|
53
|
+
"superseded",
|
|
47
54
|
]);
|
|
48
55
|
const registerUsage = `Usage:
|
|
49
56
|
mdmaid-desk register <file.md> --workspace <id>
|
|
@@ -65,6 +72,7 @@ Usage:
|
|
|
65
72
|
[--repository <identity>] [--repository-name <name>]
|
|
66
73
|
[--artifact-root <path> ...]
|
|
67
74
|
mdmaid-desk workspace list
|
|
75
|
+
mdmaid-desk validate <file.md> [--json]
|
|
68
76
|
mdmaid-desk register <file.md> --workspace <id>
|
|
69
77
|
[--live] [--task <id>] [--feature-name <text>] [--producer <name>]
|
|
70
78
|
[--kind <kind>] [--title <title>]
|
|
@@ -81,7 +89,8 @@ Usage:
|
|
|
81
89
|
[--kind plan-decision|change-decision] [--message <text>] [--json]
|
|
82
90
|
mdmaid-desk review show <review-id> [--json]
|
|
83
91
|
mdmaid-desk review wait <review-id> [--json]
|
|
84
|
-
mdmaid-desk review respond <review-id>
|
|
92
|
+
mdmaid-desk review respond <review-id>
|
|
93
|
+
--outcome approved|changes_requested|rejected|superseded
|
|
85
94
|
[--message <text>] [--json]
|
|
86
95
|
mdmaid-desk list [--workspace <id>] [--task <id>]
|
|
87
96
|
mdmaid-desk web [--port <port>]
|
|
@@ -99,6 +108,8 @@ Document sources:
|
|
|
99
108
|
`;
|
|
100
109
|
class UsageError extends Error {
|
|
101
110
|
}
|
|
111
|
+
class InstalledPackageVersionChanged extends Error {
|
|
112
|
+
}
|
|
102
113
|
const silentWriter = { write: () => undefined };
|
|
103
114
|
export async function run(args, stdout, stderr, options = {}) {
|
|
104
115
|
try {
|
|
@@ -145,6 +156,9 @@ export async function run(args, stdout, stderr, options = {}) {
|
|
|
145
156
|
if (args[0] === "daemon") {
|
|
146
157
|
return await runDaemon(statePath, args.slice(1), stdout, options);
|
|
147
158
|
}
|
|
159
|
+
if (args[0] === "validate") {
|
|
160
|
+
return await runValidate(args.slice(1), stdout);
|
|
161
|
+
}
|
|
148
162
|
if (args[0] === "web") {
|
|
149
163
|
const web = parseWebConfiguration(args.slice(1));
|
|
150
164
|
const running = await (options.connectDaemonInfo ?? connectToDaemonInfo)(statePath);
|
|
@@ -193,7 +207,20 @@ export async function run(args, stdout, stderr, options = {}) {
|
|
|
193
207
|
}
|
|
194
208
|
catch (error) {
|
|
195
209
|
const message = error instanceof Error ? error.message : String(error);
|
|
196
|
-
|
|
210
|
+
const validation = validationReportFromError(error);
|
|
211
|
+
if (args.includes("--json") && validation !== undefined) {
|
|
212
|
+
stderr.write(`${JSON.stringify({
|
|
213
|
+
schemaVersion: 1,
|
|
214
|
+
error: {
|
|
215
|
+
code: "invalid_mermaid",
|
|
216
|
+
message,
|
|
217
|
+
validation,
|
|
218
|
+
},
|
|
219
|
+
})}\n`);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
stderr.write(`error: ${message}\n`);
|
|
223
|
+
}
|
|
197
224
|
if (error instanceof UsageError) {
|
|
198
225
|
stderr.write(usage);
|
|
199
226
|
return 2;
|
|
@@ -201,6 +228,69 @@ export async function run(args, stdout, stderr, options = {}) {
|
|
|
201
228
|
return 1;
|
|
202
229
|
}
|
|
203
230
|
}
|
|
231
|
+
async function runValidate(args, stdout) {
|
|
232
|
+
const parsed = parseArguments(args, new Set(["json"]));
|
|
233
|
+
rejectUnknownOptions(parsed, new Set(["json"]));
|
|
234
|
+
const path = parsed.positionals[0];
|
|
235
|
+
if (!path) {
|
|
236
|
+
throw new UsageError("validation path is required");
|
|
237
|
+
}
|
|
238
|
+
if (parsed.positionals.length > 1) {
|
|
239
|
+
throw new UsageError("validate accepts one document path");
|
|
240
|
+
}
|
|
241
|
+
const markdown = await readValidationTarget(path);
|
|
242
|
+
const validation = await validateMermaidMarkdown(markdown);
|
|
243
|
+
if (hasFlag(parsed, "json")) {
|
|
244
|
+
stdout.write(`${JSON.stringify({ schemaVersion: 1, validation })}\n`);
|
|
245
|
+
}
|
|
246
|
+
else if (validation.valid) {
|
|
247
|
+
stdout.write(`valid: ${validation.diagramCount} Mermaid diagram${validation.diagramCount === 1 ? "" : "s"}\n`);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
stdout.write(`${new MermaidValidationError(validation).message}\n`);
|
|
251
|
+
}
|
|
252
|
+
return validation.valid ? 0 : 1;
|
|
253
|
+
}
|
|
254
|
+
async function readValidationTarget(path) {
|
|
255
|
+
const requestedPath = resolve(path);
|
|
256
|
+
if (extname(requestedPath).toLowerCase() !== ".md") {
|
|
257
|
+
throw new Error("only Markdown files can be validated");
|
|
258
|
+
}
|
|
259
|
+
const requestedInfo = await lstat(requestedPath);
|
|
260
|
+
if (requestedInfo.isSymbolicLink()) {
|
|
261
|
+
throw new Error("validation path must not be a symlink");
|
|
262
|
+
}
|
|
263
|
+
// The explicit CLI path is the authorization boundary for this read. Resolve
|
|
264
|
+
// it before opening and refuse link traversal at the final component.
|
|
265
|
+
const canonicalPath = await realpath(requestedPath);
|
|
266
|
+
const handle = await open(canonicalPath, fsConstants.O_RDONLY | (fsConstants.O_NOFOLLOW ?? 0));
|
|
267
|
+
try {
|
|
268
|
+
const info = await handle.stat();
|
|
269
|
+
if (!info.isFile()) {
|
|
270
|
+
throw new Error("validation target must be a regular file");
|
|
271
|
+
}
|
|
272
|
+
if (info.size > MAX_VALIDATION_BYTES) {
|
|
273
|
+
throw new Error(`document exceeds ${MAX_VALIDATION_BYTES} bytes`);
|
|
274
|
+
}
|
|
275
|
+
const content = await handle.readFile();
|
|
276
|
+
if (content.length > MAX_VALIDATION_BYTES) {
|
|
277
|
+
throw new Error(`document exceeds ${MAX_VALIDATION_BYTES} bytes`);
|
|
278
|
+
}
|
|
279
|
+
return content.toString("utf8");
|
|
280
|
+
}
|
|
281
|
+
finally {
|
|
282
|
+
await handle.close();
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
function validationReportFromError(error) {
|
|
286
|
+
if (error instanceof MermaidValidationError) {
|
|
287
|
+
return error.report;
|
|
288
|
+
}
|
|
289
|
+
if (error instanceof DeskApiError) {
|
|
290
|
+
return error.validation;
|
|
291
|
+
}
|
|
292
|
+
return undefined;
|
|
293
|
+
}
|
|
204
294
|
async function runWeb(catalog, statePath, configuration, stdout, options) {
|
|
205
295
|
const { port, publicUrl } = configuration;
|
|
206
296
|
const token = await readOrCreateAuthToken(statePath);
|
|
@@ -778,14 +868,21 @@ async function loadReviewRequest(statePath, id, options) {
|
|
|
778
868
|
}
|
|
779
869
|
async function waitForReviewRequest(statePath, id, options) {
|
|
780
870
|
const interval = options.reviewPollIntervalMs ?? 1_000;
|
|
871
|
+
const resumeWithUpdatedCli = async () => await (options.resumeReviewWait ?? ((reviewId, signal) => resumeReviewWaitWithUpdatedCli(reviewId, signal, options.updatedCliEntryPath)))(id, options.signal);
|
|
781
872
|
while (true) {
|
|
782
873
|
throwIfAborted(options.signal);
|
|
874
|
+
if (installedPackageVersionChanged(options)) {
|
|
875
|
+
return await resumeWithUpdatedCli();
|
|
876
|
+
}
|
|
783
877
|
const client = await (options.connectDaemon ?? connectToDaemon)(statePath);
|
|
784
878
|
if (client) {
|
|
785
879
|
try {
|
|
786
|
-
return await waitForReviewEvent(client, id, options.signal);
|
|
880
|
+
return await waitForReviewEvent(client, id, options.signal, interval, () => installedPackageVersionChanged(options));
|
|
787
881
|
}
|
|
788
882
|
catch (error) {
|
|
883
|
+
if (error instanceof InstalledPackageVersionChanged) {
|
|
884
|
+
return await resumeWithUpdatedCli();
|
|
885
|
+
}
|
|
789
886
|
if (options.signal?.aborted) {
|
|
790
887
|
throw new Error("review wait cancelled");
|
|
791
888
|
}
|
|
@@ -817,7 +914,7 @@ async function waitForReviewRequest(statePath, id, options) {
|
|
|
817
914
|
await abortableDelay(interval, options.signal);
|
|
818
915
|
}
|
|
819
916
|
}
|
|
820
|
-
async function waitForReviewEvent(client, id, signal) {
|
|
917
|
+
async function waitForReviewEvent(client, id, signal, updateCheckIntervalMs = 1_000, packageVersionChanged = () => false) {
|
|
821
918
|
const current = await client.getReviewRequest(id);
|
|
822
919
|
if (current.status !== "pending") {
|
|
823
920
|
return current;
|
|
@@ -826,11 +923,17 @@ async function waitForReviewEvent(client, id, signal) {
|
|
|
826
923
|
return await new Promise((resolvePromise, reject) => {
|
|
827
924
|
let settled = false;
|
|
828
925
|
let checking = false;
|
|
926
|
+
const updateTimer = setInterval(() => {
|
|
927
|
+
if (packageVersionChanged()) {
|
|
928
|
+
finish(() => reject(new InstalledPackageVersionChanged()));
|
|
929
|
+
}
|
|
930
|
+
}, updateCheckIntervalMs);
|
|
829
931
|
const finish = (operation) => {
|
|
830
932
|
if (settled) {
|
|
831
933
|
return;
|
|
832
934
|
}
|
|
833
935
|
settled = true;
|
|
936
|
+
clearInterval(updateTimer);
|
|
834
937
|
controller.abort();
|
|
835
938
|
signal?.removeEventListener("abort", onAbort);
|
|
836
939
|
operation();
|
|
@@ -875,6 +978,79 @@ async function waitForReviewEvent(client, id, signal) {
|
|
|
875
978
|
.catch((error) => finish(() => reject(error)));
|
|
876
979
|
});
|
|
877
980
|
}
|
|
981
|
+
function installedPackageVersionChanged(options) {
|
|
982
|
+
try {
|
|
983
|
+
const runningVersion = options.runningPackageVersion ??
|
|
984
|
+
RUNNING_PACKAGE_VERSION;
|
|
985
|
+
const installedVersion = (options.readInstalledPackageVersion ?? readPackageVersion)();
|
|
986
|
+
return installedVersion !== runningVersion;
|
|
987
|
+
}
|
|
988
|
+
catch {
|
|
989
|
+
// Package replacement is not necessarily atomic. Keep the existing wait
|
|
990
|
+
// alive until the new installation exposes valid package metadata.
|
|
991
|
+
return false;
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
function resumeReviewWaitWithUpdatedCli(id, signal, updatedCliEntryPath) {
|
|
995
|
+
const entryPath = updatedCliEntryPath ?? process.argv[1];
|
|
996
|
+
if (!entryPath) {
|
|
997
|
+
throw new Error("cannot locate the CLI entrypoint for waiter update");
|
|
998
|
+
}
|
|
999
|
+
return new Promise((resolvePromise, reject) => {
|
|
1000
|
+
execFile(process.execPath, [entryPath, "review", "wait", id, "--json"], {
|
|
1001
|
+
encoding: "utf8",
|
|
1002
|
+
env: process.env,
|
|
1003
|
+
maxBuffer: MAX_UPDATED_WAITER_OUTPUT_BYTES,
|
|
1004
|
+
signal,
|
|
1005
|
+
}, (error, stdout, stderr) => {
|
|
1006
|
+
if (error) {
|
|
1007
|
+
if (signal?.aborted) {
|
|
1008
|
+
reject(new Error("review wait cancelled"));
|
|
1009
|
+
return;
|
|
1010
|
+
}
|
|
1011
|
+
const detail = stderr.trim();
|
|
1012
|
+
reject(new Error(detail === ""
|
|
1013
|
+
? `updated review waiter failed: ${error.message}`
|
|
1014
|
+
: `updated review waiter failed: ${detail}`));
|
|
1015
|
+
return;
|
|
1016
|
+
}
|
|
1017
|
+
try {
|
|
1018
|
+
resolvePromise(parseUpdatedReviewWaitOutput(stdout, id));
|
|
1019
|
+
}
|
|
1020
|
+
catch (parseError) {
|
|
1021
|
+
reject(parseError);
|
|
1022
|
+
}
|
|
1023
|
+
});
|
|
1024
|
+
});
|
|
1025
|
+
}
|
|
1026
|
+
function parseUpdatedReviewWaitOutput(output, expectedId) {
|
|
1027
|
+
let parsed;
|
|
1028
|
+
try {
|
|
1029
|
+
parsed = JSON.parse(output);
|
|
1030
|
+
}
|
|
1031
|
+
catch {
|
|
1032
|
+
throw new Error("updated review waiter returned invalid JSON");
|
|
1033
|
+
}
|
|
1034
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
1035
|
+
throw new Error("updated review waiter returned an invalid response");
|
|
1036
|
+
}
|
|
1037
|
+
const envelope = parsed;
|
|
1038
|
+
const request = envelope.reviewRequest;
|
|
1039
|
+
if (typeof envelope.schemaVersion !== "number" ||
|
|
1040
|
+
!Number.isSafeInteger(envelope.schemaVersion) ||
|
|
1041
|
+
envelope.schemaVersion < 1 ||
|
|
1042
|
+
typeof request !== "object" ||
|
|
1043
|
+
request === null ||
|
|
1044
|
+
Array.isArray(request)) {
|
|
1045
|
+
throw new Error("updated review waiter returned an invalid response");
|
|
1046
|
+
}
|
|
1047
|
+
if (!isPublicReviewRequest(request) ||
|
|
1048
|
+
request.id !== expectedId ||
|
|
1049
|
+
request.status === "pending") {
|
|
1050
|
+
throw new Error("updated review waiter returned an invalid review request");
|
|
1051
|
+
}
|
|
1052
|
+
return structuredClone(request);
|
|
1053
|
+
}
|
|
878
1054
|
function throwIfAborted(signal) {
|
|
879
1055
|
if (signal?.aborted) {
|
|
880
1056
|
throw new Error("review wait cancelled");
|