@dev.fast/whiteboard 0.5.2-preview.20261104.147 → 0.5.2-preview.20261109.148

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.
Files changed (48) hide show
  1. package/dist/{account-alias-DXpd0Px8.js → account-alias-Cs5YqXRj.js} +4 -4
  2. package/dist/agent-cli-DdUAmdca.js +2 -0
  3. package/dist/{agent-cli-COrZtFks.js → agent-cli-a5J-juuu.js} +8 -8
  4. package/dist/{agent-client-BFtYm3Ng.js → agent-client-CgnEo6lf.js} +3 -3
  5. package/dist/{authoring-tools-D1avYp8-.js → authoring-tools-BgZvnbjN.js} +3 -3
  6. package/dist/{background-server-HOJozY99.js → background-server-D8SaPvuC.js} +1 -1
  7. package/dist/{background-server-BiRSqjxG.js → background-server-DHEcsFwH.js} +4 -4
  8. package/dist/build-info.json +1 -1
  9. package/dist/{cli-CSlwGRvH.js → cli-Bq5zVqlc.js} +1 -1
  10. package/dist/{cli-runner-CuffXA0Q.js → cli-runner-hL2efcxb.js} +21 -21
  11. package/dist/cli.js +1 -1
  12. package/dist/{fuzzy-match-DEo941za.js → fuzzy-match-DNyQDN3P.js} +2 -2
  13. package/dist/{headless-host-BCkXVVpU.js → headless-host-CGyfb5mS.js} +1 -1
  14. package/dist/{headless-host-CIuJJjmM.js → headless-host-bb09yVkX.js} +17 -15
  15. package/dist/{import-CjcW7EIQ.js → import-_XAsWqen.js} +24 -139
  16. package/dist/{local-data-B5PBZ0Ge.js → local-data-ZQIkF5k1.js} +81 -70
  17. package/dist/{mcp-Ba3WvhUh.js → mcp-B-J8P5xm.js} +4 -4
  18. package/dist/{package-paths-Dk7MOXxN.js → package-paths-wobHueCx.js} +1 -1
  19. package/dist/profile-Bi2SbpSI.js +2 -0
  20. package/dist/{profile-CNMhLUhf.js → profile-D-SbO3p9.js} +2 -2
  21. package/dist/{remote-attach-DkZoYBHV.js → remote-attach-DyIESbbf.js} +4 -4
  22. package/dist/{remote-extensions-BvV29_gk.js → remote-extensions-BHHFPyYW.js} +1 -1
  23. package/dist/{remote-extensions-L95HNwIH.js → remote-extensions-gTMcRBg-.js} +2 -2
  24. package/dist/{remote-language-server-l4ConTfj.js → remote-language-server-Pp261dqJ.js} +4 -4
  25. package/dist/{remote-uninstall-BAQM7cU8.js → remote-uninstall-D_hSuBik.js} +5 -5
  26. package/dist/{request-origin-DZexKlc4.js → request-origin-ENYd0Ymr.js} +1 -1
  27. package/dist/{review-app-launcher-B5F10y_4.js → review-app-launcher-DR5vYGEl.js} +1 -1
  28. package/dist/{review-home-paths-BmZX2qiz.js → review-home-paths-B8909D07.js} +19 -19
  29. package/dist/{review-telemetry-kQ7esDRE.js → review-telemetry-CxNvwdDS.js} +4 -4
  30. package/dist/server/desktop-host.js +13 -13
  31. package/dist/{server-discovery-DYY_xeG9.js → server-discovery-Fme7f3fb.js} +2 -2
  32. package/dist/sharing/index.d.ts +21 -21
  33. package/dist/sharing/index.js +1 -1
  34. package/dist/{src-DirPN_Qh.js → src-BPrngiWX.js} +1769 -1
  35. package/dist/{stored-document-migration-vg0NAzXG.js → stored-document-migration-BQcUyXO8.js} +4 -73
  36. package/dist/{tool-failure-BLBwcl3H.js → tool-failure-Cgjidoud.js} +5 -5
  37. package/package.json +4 -5
  38. package/src/review-api/comparison-coverage.ts +6 -20
  39. package/src/review-api/http.ts +20 -16
  40. package/src/review-api/review-progress.ts +38 -123
  41. package/src/review-api/store.ts +4 -6
  42. package/src/software-map-diff-counts.ts +4 -2
  43. package/src/viewed-coverage.ts +9 -252
  44. package/dist/agent-cli-x6-Eh1S-.js +0 -2
  45. package/dist/profile-BstQkIY0.js +0 -2
  46. package/src/review-api/file-lenses.ts +0 -125
  47. package/src/unified-diff.ts +0 -71
  48. package/dist/{s3-CsG2EWED.js → s3-d8RGPKwt.js} +1 -1
@@ -1,11 +1,11 @@
1
1
  import { S as splitGitPatchFiles, T as runVcsSync, _ as listTrackedFilesAtCommit, a as diff, b as resolveRepoContext, c as diffFileSummariesWorkingTree, d as git, f as gitAt, g as listCommitRange, h as jjRevisionIsConflicted, i as detectLocalVcs, l as diffTrees, m as gitCommonDirSync, n as createBlobBatchReader, p as gitCommonDir, s as diffFileSummariesTrees, t as LocalVcsToolsMissingError, u as diffWorkingTree, v as parseGitRemote, w as runVcs, x as resolveRevision, y as readFileAtCommit } from "./src-Y30gweiK.js";
2
2
  import { c as jsonString, m as isStringValue, n as isJsonObject, o as jsonObject, u as parseJsonText } from "./src-X9phtB2j.js";
3
- import { A as parseMarkdown, B as lensSchema, D as summarizeEdit, E as sourceReferences, G as SourceRangeError, J as requireVisibleSource, K as checkSourcePath, M as checkReferences, O as markdownNodes, P as documentAdvice, R as applyLensEdit, S as respellEditLinks, V as lensSelections, Y as sliceSourceRange, a as boardLinks, at as sourceAnchors, b as respellCommitLinks, c as documentSchema, ct as activityBeginSchema, d as explicitPins, dt as focusSchema, h as pinsSchema, i as assignMissingIds, k as markdownText, l as editSchema, lt as activityEndSchema, m as pinnedRepositoryIds, n as anchorPins, nt as patchRows, o as boardRepositoryId, ot as unionIntervals, p as pinDocumentReferences, q as fileLineRangeSchema, r as applyEdit, s as commitLinkCommits, st as ReviewInputError, t as adoptFlowUnits, tt as parseAnchor, u as elements, ut as activityUpdateSchema, v as resourceReference, w as reviewTargetSchema, x as respellDocumentLinks, y as resourceReferences, z as lensEditSchema } from "./src-DirPN_Qh.js";
4
- import { I as applyStructuralUpdate, L as decodeStructuralDiffEvent, R as structuralChangeCounts, c as boardIconKind, l as boardTitle } from "./src-B-91Rd2d.js";
5
- import { s as safeStorageSegment } from "./review-home-paths-BmZX2qiz.js";
6
- import { C as emptyCoverage, D as subtractIntervals, O as updateCoverage, _ as fetchPullRequest, a as SoftwareModelValidationError, b as textIncludesQuote, c as traceSchema, d as setPullRequest, f as sourceBranchName, g as defaultPullRequestDeps, h as GitHubRefusedRead, i as readStoredDocument, l as pullRequestKey, m as resolvePullRequest, n as migrateStoredDocument, o as defineSoftwareMap, r as migrateStoredLenses, u as pullRequestUrl, v as remoteUrls, w as intersectIntervals, x as coverageSchema, y as azureRepositoryOf } from "./stored-document-migration-vg0NAzXG.js";
3
+ import { $ as fileLineRangeSchema, A as summarizeEdit, C as respellCommitLinks, D as reviewTargetSchema, F as checkReferences, H as lensEditSchema, J as updateCoverage, K as emptyCoverage, L as documentAdvice, M as markdownText, N as parseMarkdown, Q as checkSourcePath, S as resourceReferences, T as respellEditLinks, U as lensSchema, V as applyLensEdit, W as lensSelections, Z as SourceRangeError, _ as pinnedRepositoryIds, _t as activityUpdateSchema, a as anchorPins, c as boardLinks, d as documentSchema, dt as intersectIntervals, et as requireVisibleSource, f as editSchema, ft as subtractIntervals, g as pinDocumentReferences, gt as activityEndSchema, ht as activityBeginSchema, i as adoptFlowUnits, j as markdownNodes, k as sourceReferences, l as boardRepositoryId, m as explicitPins, mt as ReviewInputError, o as applyEdit, ot as parseAnchor, p as elements, pt as unionIntervals, s as assignMissingIds, st as patchRows, tt as sliceSourceRange, u as commitLinkCommits, ut as sourceAnchors, v as pinsSchema, vt as focusSchema, w as respellDocumentLinks, x as resourceReference } from "./src-BPrngiWX.js";
4
+ import { _ as fetchPullRequest, a as SoftwareModelValidationError, b as textIncludesQuote, c as traceSchema, d as setPullRequest, f as sourceBranchName, g as defaultPullRequestDeps, h as GitHubRefusedRead, i as readStoredDocument, l as pullRequestKey, m as resolvePullRequest, n as migrateStoredDocument, o as defineSoftwareMap, r as migrateStoredLenses, u as pullRequestUrl, v as remoteUrls, y as azureRepositoryOf } from "./stored-document-migration-BQcUyXO8.js";
7
5
  import { A as processStartIdentity, L as writePrivateJsonAtomic, O as pidReused, j as withFileLock, k as processIsAlive } from "./s3-config-CjcLyFV5.js";
6
+ import { s as safeStorageSegment } from "./review-home-paths-B8909D07.js";
8
7
  import { t as errorMessage } from "./error-message-OtiDonty.js";
8
+ import { I as applyStructuralUpdate, L as decodeStructuralDiffEvent, R as structuralChangeCounts, c as boardIconKind, l as boardTitle } from "./src-B-91Rd2d.js";
9
9
  import { a as askHistoryEntrySchema, i as askEntrySchema, m as isMissingFileError, o as askOfferSchema, s as askPermissionsSchema } from "./thread-state-Jxoh1hde.js";
10
10
  import { createRequire } from "node:module";
11
11
  import crypto, { createHash, randomUUID } from "node:crypto";
@@ -19,6 +19,76 @@ import { spawn } from "node:child_process";
19
19
  import { isDeepStrictEqual } from "node:util";
20
20
  import { DatabaseSync } from "node:sqlite";
21
21
  import { createInterface } from "node:readline";
22
+ //#region ../whiteboard-document/src/unified-patch.ts
23
+ const HUNK_HEADER = /^@@ -(?<oldStart>\d+)(?:,(?<oldLines>\d+))? \+(?<newStart>\d+)(?:,(?<newLines>\d+))? @@/;
24
+ function parseUnifiedPatch(file, patch) {
25
+ if (!patch) return [];
26
+ const hunks = [];
27
+ let current = null;
28
+ let oldLine = 0;
29
+ let newLine = 0;
30
+ for (const row of patch.split(/\r?\n/)) {
31
+ const header = HUNK_HEADER.exec(row);
32
+ if (header?.groups) {
33
+ current = {
34
+ file,
35
+ oldStart: Number(header.groups.oldStart),
36
+ oldLines: Number(header.groups.oldLines ?? "1"),
37
+ newStart: Number(header.groups.newStart),
38
+ newLines: Number(header.groups.newLines ?? "1"),
39
+ lines: []
40
+ };
41
+ oldLine = current.oldStart;
42
+ newLine = current.newStart;
43
+ hunks.push(current);
44
+ continue;
45
+ }
46
+ if (!current || row.startsWith("\")) continue;
47
+ const marker = row[0];
48
+ const text = row.slice(1);
49
+ let line = null;
50
+ if (marker === " ") {
51
+ line = {
52
+ kind: "context",
53
+ oldLine,
54
+ newLine,
55
+ text
56
+ };
57
+ oldLine += 1;
58
+ newLine += 1;
59
+ } else if (marker === "+") {
60
+ line = {
61
+ kind: "add",
62
+ oldLine: null,
63
+ newLine,
64
+ text
65
+ };
66
+ newLine += 1;
67
+ } else if (marker === "-") {
68
+ line = {
69
+ kind: "remove",
70
+ oldLine,
71
+ newLine: null,
72
+ text
73
+ };
74
+ oldLine += 1;
75
+ }
76
+ if (line) current.lines.push(line);
77
+ }
78
+ return hunks;
79
+ }
80
+ function patchChanges(file, patch) {
81
+ const changed = emptyCoverage();
82
+ for (const hunk of parseUnifiedPatch(file, patch)) for (const line of hunk.lines) {
83
+ if (line.kind === "add") changed.head.push([line.newLine - 1, line.newLine]);
84
+ if (line.kind === "remove") changed.base.push([line.oldLine - 1, line.oldLine]);
85
+ }
86
+ return {
87
+ base: unionIntervals(changed.base),
88
+ head: unionIntervals(changed.head)
89
+ };
90
+ }
91
+ //#endregion
22
92
  //#region ../../diffr/diffr-ts/dist/binary.js
23
93
  /** The diffr executable from the installed platform package, if npm installed one for this machine. */
24
94
  function diffrBinaryPath() {
@@ -1007,65 +1077,6 @@ var Comparison = class {
1007
1077
  }
1008
1078
  };
1009
1079
  //#endregion
1010
- //#region src/unified-diff.ts
1011
- const HUNK_HEADER = /^@@ -(?<oldStart>\d+)(?:,(?<oldLines>\d+))? \+(?<newStart>\d+)(?:,(?<newLines>\d+))? @@/;
1012
- function parseUnifiedPatch(file, patch) {
1013
- if (!patch) return [];
1014
- const hunks = [];
1015
- let current = null;
1016
- let oldLine = 0;
1017
- let newLine = 0;
1018
- for (const row of patch.split(/\r?\n/)) {
1019
- const header = HUNK_HEADER.exec(row);
1020
- if (header?.groups) {
1021
- current = {
1022
- file,
1023
- oldStart: Number(header.groups.oldStart),
1024
- oldLines: Number(header.groups.oldLines ?? "1"),
1025
- newStart: Number(header.groups.newStart),
1026
- newLines: Number(header.groups.newLines ?? "1"),
1027
- lines: []
1028
- };
1029
- oldLine = current.oldStart;
1030
- newLine = current.newStart;
1031
- hunks.push(current);
1032
- continue;
1033
- }
1034
- if (!current || row.startsWith("\")) continue;
1035
- const marker = row[0];
1036
- const text = row.slice(1);
1037
- let line = null;
1038
- if (marker === " ") {
1039
- line = {
1040
- kind: "context",
1041
- oldLine,
1042
- newLine,
1043
- text
1044
- };
1045
- oldLine += 1;
1046
- newLine += 1;
1047
- } else if (marker === "+") {
1048
- line = {
1049
- kind: "add",
1050
- oldLine: null,
1051
- newLine,
1052
- text
1053
- };
1054
- newLine += 1;
1055
- } else if (marker === "-") {
1056
- line = {
1057
- kind: "remove",
1058
- oldLine,
1059
- newLine: null,
1060
- text
1061
- };
1062
- oldLine += 1;
1063
- }
1064
- if (line) current.lines.push(line);
1065
- }
1066
- return hunks;
1067
- }
1068
- //#endregion
1069
1080
  //#region src/software-map-diff-counts.ts
1070
1081
  async function resolveSoftwareMapDiffCounts(input) {
1071
1082
  const baseRef = input.baseRef?.trim();
@@ -1350,13 +1361,7 @@ async function comparisonCoverage(data, reviewId, pins, signal, publish) {
1350
1361
  for (const file of await data.changes(pins)) {
1351
1362
  signal.throwIfAborted();
1352
1363
  const patch = patches?.get(file.path) ?? await data.changes(pins, file.path, file.previousPath);
1353
- const changed = emptyCoverage();
1354
- for (const hunk of parseUnifiedPatch(file.path, patch)) for (const line of hunk.lines) {
1355
- if (line.kind === "add") changed.head.push([line.newLine - 1, line.newLine]);
1356
- if (line.kind === "remove") changed.base.push([line.oldLine - 1, line.oldLine]);
1357
- }
1358
- changed.base = unionIntervals(changed.base);
1359
- changed.head = unionIntervals(changed.head);
1364
+ const changed = patchChanges(file.path, patch);
1360
1365
  const [base, head] = await Promise.all([file.status === "added" ? null : data.file(pins, "base", file.previousPath ?? file.path).then((value) => value.text).catch(() => null), file.status === "deleted" ? null : data.file(pins, "head", file.path).then((value) => value.text).catch(() => null)]);
1361
1366
  alignments.set(file.path, patchRows(patch, base === null ? 0 : base.split("\n").length, head === null ? 0 : head.split("\n").length));
1362
1367
  const readable = (file.status === "added" || base !== null) && (file.status === "deleted" || head !== null);
@@ -1631,6 +1636,12 @@ const mapInputSchema = z.strictObject({
1631
1636
  relationships: z.array(relationship).optional().describe("Model-level relationships, including people and systems. Use full endpoint paths; external systems are systems with external: true.")
1632
1637
  });
1633
1638
  //#endregion
1639
+ //#region src/viewed-coverage.ts
1640
+ const coverageSchema = z.object({
1641
+ base: z.array(z.tuple([z.number().int().nonnegative(), z.number().int().nonnegative()])),
1642
+ head: z.array(z.tuple([z.number().int().nonnegative(), z.number().int().nonnegative()]))
1643
+ });
1644
+ //#endregion
1634
1645
  //#region src/review-api/activity.ts
1635
1646
  const activitySchema = z.discriminatedUnion("action", [
1636
1647
  activityBeginSchema.extend({ action: z.literal("begin") }),
@@ -1,8 +1,8 @@
1
1
  import { n as isJsonObject } from "./src-X9phtB2j.js";
2
- import { st as ReviewInputError } from "./src-DirPN_Qh.js";
3
- import { a as toolResultText, s as ReviewApiError, t as ToolText } from "./agent-client-BFtYm3Ng.js";
4
- import { n as REVIEW_STATUS_TOOL, t as authoringTools } from "./authoring-tools-D1avYp8-.js";
5
- import { a as renderedImage, i as publicTool, n as RECOVERY, r as callPublicTool, t as toolFailure } from "./tool-failure-BLBwcl3H.js";
2
+ import { mt as ReviewInputError } from "./src-BPrngiWX.js";
3
+ import { a as toolResultText, s as ReviewApiError, t as ToolText } from "./agent-client-CgnEo6lf.js";
4
+ import { n as REVIEW_STATUS_TOOL, t as authoringTools } from "./authoring-tools-BgZvnbjN.js";
5
+ import { a as renderedImage, i as publicTool, n as RECOVERY, r as callPublicTool, t as toolFailure } from "./tool-failure-Cgjidoud.js";
6
6
  import { Server } from "@modelcontextprotocol/server";
7
7
  import { StdioServerTransport } from "@modelcontextprotocol/server/stdio";
8
8
  //#region src/review-api/mcp-client-agent.ts
@@ -1,5 +1,5 @@
1
1
  import { c as jsonString, o as jsonObject, u as parseJsonText } from "./src-X9phtB2j.js";
2
- import "./review-home-paths-BmZX2qiz.js";
2
+ import "./review-home-paths-B8909D07.js";
3
3
  import { readFileSync } from "node:fs";
4
4
  import path from "node:path";
5
5
  import { fileURLToPath } from "node:url";
@@ -0,0 +1,2 @@
1
+ import { t as openReviewProfile } from "./profile-D-SbO3p9.js";
2
+ export { openReviewProfile };
@@ -1,6 +1,6 @@
1
- import { a as projectOfCheckout, f as CheckoutGroups, o as groupCheckoutsAhead, s as initializeReviewStoreSchema, t as openLocalReviewStore } from "./local-data-B5PBZ0Ge.js";
2
- import "./review-home-paths-BmZX2qiz.js";
1
+ import { a as projectOfCheckout, f as CheckoutGroups, o as groupCheckoutsAhead, s as initializeReviewStoreSchema, t as openLocalReviewStore } from "./local-data-ZQIkF5k1.js";
3
2
  import { j as withFileLock } from "./s3-config-CjcLyFV5.js";
3
+ import "./review-home-paths-B8909D07.js";
4
4
  import { access, mkdir } from "node:fs/promises";
5
5
  import path from "node:path";
6
6
  import { DatabaseSync } from "node:sqlite";
@@ -1,7 +1,7 @@
1
- import { i as readReviewPackageVersion } from "./package-paths-Dk7MOXxN.js";
2
- import { a as readReviewServerHealth, l as serverNotReady } from "./server-discovery-DYY_xeG9.js";
3
- import { c as stopBackgroundServer, o as recordedBackgroundServer, r as ensureBackgroundServer } from "./background-server-BiRSqjxG.js";
4
- import { t as ensureRemoteLanguageServer } from "./remote-language-server-l4ConTfj.js";
1
+ import { i as readReviewPackageVersion } from "./package-paths-wobHueCx.js";
2
+ import { a as readReviewServerHealth, l as serverNotReady } from "./server-discovery-Fme7f3fb.js";
3
+ import { c as stopBackgroundServer, o as recordedBackgroundServer, r as ensureBackgroundServer } from "./background-server-DHEcsFwH.js";
4
+ import { t as ensureRemoteLanguageServer } from "./remote-language-server-Pp261dqJ.js";
5
5
  import path from "node:path";
6
6
  import { spawn } from "node:child_process";
7
7
  import { gt, valid } from "semver";
@@ -1,2 +1,2 @@
1
- import { t as ensureRemoteExtensions } from "./remote-extensions-L95HNwIH.js";
1
+ import { t as ensureRemoteExtensions } from "./remote-extensions-gTMcRBg-.js";
2
2
  export { ensureRemoteExtensions };
@@ -1,7 +1,7 @@
1
1
  import { u as parseJsonText } from "./src-X9phtB2j.js";
2
- import "./review-home-paths-BmZX2qiz.js";
3
2
  import { N as devReviewHome } from "./s3-config-CjcLyFV5.js";
4
- import { t as findReviewPackageRoot } from "./package-paths-Dk7MOXxN.js";
3
+ import "./review-home-paths-B8909D07.js";
4
+ import { t as findReviewPackageRoot } from "./package-paths-wobHueCx.js";
5
5
  import { createHash } from "node:crypto";
6
6
  import { z } from "zod";
7
7
  import { createReadStream, createWriteStream } from "node:fs";
@@ -1,8 +1,8 @@
1
- import "./review-home-paths-BmZX2qiz.js";
2
1
  import { A as processStartIdentity, j as withFileLock } from "./s3-config-CjcLyFV5.js";
3
- import { t as findReviewPackageRoot } from "./package-paths-Dk7MOXxN.js";
4
- import { n as cliSpawn, s as spawnDetached } from "./background-server-BiRSqjxG.js";
5
- import { r as remoteServerPaths, t as ensureRemoteExtensions } from "./remote-extensions-L95HNwIH.js";
2
+ import "./review-home-paths-B8909D07.js";
3
+ import { t as findReviewPackageRoot } from "./package-paths-wobHueCx.js";
4
+ import { n as cliSpawn, s as spawnDetached } from "./background-server-DHEcsFwH.js";
5
+ import { r as remoteServerPaths, t as ensureRemoteExtensions } from "./remote-extensions-gTMcRBg-.js";
6
6
  import { randomBytes } from "node:crypto";
7
7
  import { z } from "zod";
8
8
  import { mkdir, readFile, rename, stat, writeFile } from "node:fs/promises";
@@ -1,9 +1,9 @@
1
- import { T as REVIEW_REMOTE_WRAPPER_MARK, w as REVIEW_REMOTE_INSTALL_LOCK } from "./src-B-91Rd2d.js";
2
- import "./review-home-paths-BmZX2qiz.js";
3
1
  import { M as DEV_REVIEW_HOME_ENV } from "./s3-config-CjcLyFV5.js";
4
- import { c as stopBackgroundServer, o as recordedBackgroundServer } from "./background-server-BiRSqjxG.js";
5
- import { i as whiteboardRemoteHome } from "./remote-extensions-L95HNwIH.js";
6
- import { n as remoteLanguageServerGroups, r as stopProcessGroup } from "./remote-language-server-l4ConTfj.js";
2
+ import "./review-home-paths-B8909D07.js";
3
+ import { T as REVIEW_REMOTE_WRAPPER_MARK, w as REVIEW_REMOTE_INSTALL_LOCK } from "./src-B-91Rd2d.js";
4
+ import { c as stopBackgroundServer, o as recordedBackgroundServer } from "./background-server-DHEcsFwH.js";
5
+ import { i as whiteboardRemoteHome } from "./remote-extensions-gTMcRBg-.js";
6
+ import { n as remoteLanguageServerGroups, r as stopProcessGroup } from "./remote-language-server-Pp261dqJ.js";
7
7
  import { existsSync } from "node:fs";
8
8
  import { lstat, mkdir, readFile, readdir, rm, stat } from "node:fs/promises";
9
9
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  import { a as jsonNumber, c as jsonString, i as jsonBoolean, n as isJsonObject } from "./src-X9phtB2j.js";
2
- import { X as SELECTION_UNAVAILABLE_REASONS } from "./src-DirPN_Qh.js";
2
+ import { nt as SELECTION_UNAVAILABLE_REASONS } from "./src-BPrngiWX.js";
3
3
  import { _ as REVIEW_DIFF_LAYOUTS, b as REVIEW_OPEN_FILES_IN_CHOICES, g as REVIEW_COLOR_THEME_KINDS, v as REVIEW_DIFF_LAYOUT_SCOPES } from "./src-B-91Rd2d.js";
4
4
  import { n as askAgentIds } from "./thread-state-Jxoh1hde.js";
5
5
  import { z } from "zod";
@@ -1,5 +1,5 @@
1
1
  import { o as parseReviewVerbResponse } from "./src-B-91Rd2d.js";
2
- import { b as selectReviewInstance, m as healthyReviewInstance, v as reviewInstanceStartHint, y as reviewInstanceUnavailable } from "./server-discovery-DYY_xeG9.js";
2
+ import { b as selectReviewInstance, m as healthyReviewInstance, v as reviewInstanceStartHint, y as reviewInstanceUnavailable } from "./server-discovery-Fme7f3fb.js";
3
3
  import { closeSync, existsSync, fstatSync, mkdtempSync, openSync, readSync } from "node:fs";
4
4
  import path from "node:path";
5
5
  import { homedir, tmpdir } from "node:os";
@@ -1,8 +1,8 @@
1
1
  import { b as resolveRepoContext, d as git, f as gitAt, w as runVcs } from "./src-Y30gweiK.js";
2
2
  import { a as jsonNumber, c as jsonString, i as jsonBoolean, m as isStringValue, n as isJsonObject, o as jsonObject, r as jsonArray, t as isJsonArray, u as parseJsonText } from "./src-X9phtB2j.js";
3
- import { a as TRACE_STORE_CLIENT_ID, b as commitShaSchema, c as deleteStoreResponseSchema, d as listUploadsResponseSchema, f as storeErrorCodeSchema, g as uploadManifestMismatch, h as traceObjectNameSchema, i as storeRoutes, l as listSessionsResponseSchema, m as storeResponseSchema, n as DEVICE_TOKEN_PATH, o as beginUploadResponseSchema, p as storeErrorEnvelopeSchema, r as SESSION_PATH, s as completeUploadResponseSchema, t as DEVICE_CODE_PATH, u as listUploadsQuerySchema, x as sessionIdSchema } from "./src-CGP5ytbV.js";
4
3
  import { E as writeTraceConfigFile, F as writeFileAtomic, I as writeFileAtomicAsync, L as writePrivateJsonAtomic, N as devReviewHome, P as normalizeStoreOrigin, S as readTraceConfigFile, _ as emptyTraceConfig, b as hostedCaptureEnabled, c as resolveS3Setup, d as traceEnvPath, f as traceEnvValue$1, g as currentStore, h as TraceConfigurationError, i as isS3MockMode, l as s3CacheIdentity, m as DEFAULT_HOSTED_ORIGIN, n as clearTraceEnvCache$1, p as traceSettingsPath, u as s3MockRoot, v as enabledOriginsOf, w as s3Store, x as hostedOrigin, y as hasHostedStore } from "./s3-config-CjcLyFV5.js";
5
4
  import { t as errorMessage } from "./error-message-OtiDonty.js";
5
+ import { a as TRACE_STORE_CLIENT_ID, b as commitShaSchema, c as deleteStoreResponseSchema, d as listUploadsResponseSchema, f as storeErrorCodeSchema, g as uploadManifestMismatch, h as traceObjectNameSchema, i as storeRoutes, l as listSessionsResponseSchema, m as storeResponseSchema, n as DEVICE_TOKEN_PATH, o as beginUploadResponseSchema, p as storeErrorEnvelopeSchema, r as SESSION_PATH, s as completeUploadResponseSchema, t as DEVICE_CODE_PATH, u as listUploadsQuerySchema, x as sessionIdSchema } from "./src-CGP5ytbV.js";
6
6
  import crypto, { createHash, randomBytes } from "node:crypto";
7
7
  import { z } from "zod";
8
8
  import { accessSync, closeSync, constants, createReadStream, createWriteStream, existsSync, mkdirSync, openSync, readFileSync, readdirSync, rmSync, statSync } from "node:fs";
@@ -15,21 +15,6 @@ import { spawn } from "node:child_process";
15
15
  import { pipeline } from "node:stream/promises";
16
16
  import { createGunzip, createGzip } from "node:zlib";
17
17
  import { InvalidArgumentError, Option } from "commander";
18
- //#region ../trace-protocol/src/event-text.ts
19
- function extractTraceEventText$1(event) {
20
- if (!event) return "";
21
- if (event.kind === "user") return event.text;
22
- if (event.kind === "assistant") return event.markdown;
23
- if (event.kind === "tool") return [
24
- event.title,
25
- event.command,
26
- event.input,
27
- event.output
28
- ].filter(Boolean).join(" ");
29
- if (event.kind === "separator") return event.label;
30
- return "";
31
- }
32
- //#endregion
33
18
  //#region ../trace-core/src/cli-output.ts
34
19
  /** The stream a human report belongs on. */
35
20
  function humanStream(output) {
@@ -80,6 +65,21 @@ function jsonRequestedInArgv(argv) {
80
65
  return false;
81
66
  }
82
67
  //#endregion
68
+ //#region ../trace-protocol/src/event-text.ts
69
+ function extractTraceEventText$1(event) {
70
+ if (!event) return "";
71
+ if (event.kind === "user") return event.text;
72
+ if (event.kind === "assistant") return event.markdown;
73
+ if (event.kind === "tool") return [
74
+ event.title,
75
+ event.command,
76
+ event.input,
77
+ event.output
78
+ ].filter(Boolean).join(" ");
79
+ if (event.kind === "separator") return event.label;
80
+ return "";
81
+ }
82
+ //#endregion
83
83
  //#region ../trace-core/src/store-authorization.ts
84
84
  const context = new AsyncLocalStorage();
85
85
  /** Only a foreground CLI installs this callback; hooks never prompt. */
@@ -2546,7 +2546,7 @@ function isTraceStorageConfigured(scope = {}) {
2546
2546
  }
2547
2547
  /** Loads the direct-store implementation on demand, without opening a store. */
2548
2548
  async function loadS3TraceStorage() {
2549
- return (await import("./s3-CsG2EWED.js")).S3TraceStorage;
2549
+ return (await import("./s3-d8RGPKwt.js")).S3TraceStorage;
2550
2550
  }
2551
2551
  //#endregion
2552
2552
  //#region ../trace-core/src/trace-upload-status.ts
@@ -5272,7 +5272,7 @@ async function configureTraceMachine(input) {
5272
5272
  if (input.verify !== false) {
5273
5273
  if (env.TRACE_R2_MODE === "mock") verifiedAt = (/* @__PURE__ */ new Date()).toISOString();
5274
5274
  else {
5275
- const { S3TraceStorage } = await import("./s3-CsG2EWED.js");
5275
+ const { S3TraceStorage } = await import("./s3-d8RGPKwt.js");
5276
5276
  const readiness = await S3TraceStorage.fromCredentials({
5277
5277
  endpoint: credentials.endpoint,
5278
5278
  bucket: credentials.bucket,
@@ -5742,7 +5742,7 @@ async function runTraceStatus(input) {
5742
5742
  input.stderr.write("Upload status filters require hosted storage.\n");
5743
5743
  return 1;
5744
5744
  }
5745
- const [{ S3TraceStorage }, { describeS3Setup, noTraceConfigurationMessage }] = await Promise.all([import("./s3-CsG2EWED.js"), import("./s3-config-zz4GWh2T.js")]);
5745
+ const [{ S3TraceStorage }, { describeS3Setup, noTraceConfigurationMessage }] = await Promise.all([import("./s3-d8RGPKwt.js"), import("./s3-config-zz4GWh2T.js")]);
5746
5746
  const setup = describeS3Setup(input.scope.env);
5747
5747
  input.stdout.write(`Checking trace configuration (${setup.envPath})…\n`);
5748
5748
  for (const failure of await listTraceSyncFailures(input.scope.devHome)) input.stdout.write(describeTraceSyncFailure(failure));
@@ -1,9 +1,9 @@
1
1
  import { c as jsonString, l as jsonValueSchema, o as jsonObject, u as parseJsonText } from "./src-X9phtB2j.js";
2
- import "./src-B-91Rd2d.js";
3
- import "./review-home-paths-BmZX2qiz.js";
4
2
  import { F as writeFileAtomic, N as devReviewHome, j as withFileLock, k as processIsAlive } from "./s3-config-CjcLyFV5.js";
5
- import { i as readReviewPackageVersion, t as findReviewPackageRoot } from "./package-paths-Dk7MOXxN.js";
6
- import "./request-origin-DZexKlc4.js";
3
+ import "./review-home-paths-B8909D07.js";
4
+ import { i as readReviewPackageVersion, t as findReviewPackageRoot } from "./package-paths-wobHueCx.js";
5
+ import "./src-B-91Rd2d.js";
6
+ import "./request-origin-ENYd0Ymr.js";
7
7
  import { createHmac, randomUUID } from "node:crypto";
8
8
  import { z } from "zod";
9
9
  import { existsSync, readFileSync, rmSync } from "node:fs";
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import { S as splitGitPatchFiles, a as diff, o as diffFileSummaries } from "../src-Y30gweiK.js";
3
3
  import { c as jsonString, i as jsonBoolean, n as isJsonObject, p as isObjectValue, s as jsonProperty, u as parseJsonText } from "../src-X9phtB2j.js";
4
- import { C as StreamLimitError, v as legacyModeSchema, w as readBoundedStream } from "../import-CjcW7EIQ.js";
5
- import { st as ReviewInputError, y as resourceReferences } from "../src-DirPN_Qh.js";
6
- import { F as reviewDiffrSummarizerInputSchema, O as ReviewConnectRequestSchema, d as ReviewBugReportRequestSchema, f as parseReviewBugReportResponse, j as ReviewGatewayHostSchema, m as REVIEW_CLIENT_REMOTE, p as REVIEW_CLIENT_HEADER, r as parseReviewDesktopVerbFrame, s as parseZod, t as parseReviewCliInstallApplyRequest, u as ReviewBugReportMetaV2Schema, y as REVIEW_HOST_HEADER } from "../src-B-91Rd2d.js";
7
- import { i as reviewInstanceDiscoveryPath, o as reviewLegacyDiscoveryPath } from "../review-home-paths-BmZX2qiz.js";
8
- import { p as pullRequestProvider } from "../stored-document-migration-vg0NAzXG.js";
4
+ import { S as readBoundedStream, v as legacyModeSchema, x as StreamLimitError } from "../import-_XAsWqen.js";
5
+ import { S as resourceReferences, mt as ReviewInputError } from "../src-BPrngiWX.js";
6
+ import { p as pullRequestProvider } from "../stored-document-migration-BQcUyXO8.js";
9
7
  import { L as writePrivateJsonAtomic, N as devReviewHome } from "../s3-config-CjcLyFV5.js";
8
+ import { i as reviewInstanceDiscoveryPath, o as reviewLegacyDiscoveryPath } from "../review-home-paths-B8909D07.js";
10
9
  import { t as errorMessage } from "../error-message-OtiDonty.js";
11
- import { i as readReviewPackageVersion, t as findReviewPackageRoot } from "../package-paths-Dk7MOXxN.js";
12
- import { _ as reviewInstanceIdentity, u as REVIEW_INSTANCE_ENV } from "../server-discovery-DYY_xeG9.js";
13
- import { t as openReviewProfile } from "../profile-CNMhLUhf.js";
14
- import { r as reviewTelemetryChannel, t as ReviewTelemetry } from "../review-telemetry-kQ7esDRE.js";
15
- import { l as REVIEW_TELEMETRY_TABS } from "../request-origin-DZexKlc4.js";
16
- import { c as removeLegacyReviewSkills, d as skipCliInstall, h as detectConnectAgents, i as finishCliInstallUpdate, l as resetCliInstall, m as connectAgent, n as applyCliInstall, o as pathShimPath, r as declineCliInstall, s as removeCliInstall, t as aliasInstallationToAccount, u as resolveCliInstallStatus } from "../account-alias-DXpd0Px8.js";
17
- import { C as DEFAULT_MAX_REQUEST_BYTES, D as writeAnimationsEnabled, E as readAnimationsEnabled, O as cliAskTools, S as readBoundedRequestJson, T as ReviewServerError, _ as saveDiffrSummarizer, a as drainServerCrashReport, b as remoteShare, c as answerErrorsAsJson, d as captureSanitizedUiTelemetry, f as clientErrorsForSession, g as readDiffrConfig, h as migrateDiffrConfig, l as createWhiteboardCore, m as GlobalReviewDesktopVerbRelay, o as installProcessErrorTelemetry, p as recordClientError, r as takeOverServerHome, s as serverCrashReportPath, u as serverJson, v as setDiffrConfigValue, w as HttpJsonError, x as createNodeRequestListener, y as testDiffrSummarizer } from "../headless-host-CIuJJjmM.js";
18
- import { s as readQuerySchemas } from "../authoring-tools-D1avYp8-.js";
10
+ import { i as readReviewPackageVersion, t as findReviewPackageRoot } from "../package-paths-wobHueCx.js";
11
+ import { F as reviewDiffrSummarizerInputSchema, O as ReviewConnectRequestSchema, d as ReviewBugReportRequestSchema, f as parseReviewBugReportResponse, j as ReviewGatewayHostSchema, m as REVIEW_CLIENT_REMOTE, p as REVIEW_CLIENT_HEADER, r as parseReviewDesktopVerbFrame, s as parseZod, t as parseReviewCliInstallApplyRequest, u as ReviewBugReportMetaV2Schema, y as REVIEW_HOST_HEADER } from "../src-B-91Rd2d.js";
12
+ import { _ as reviewInstanceIdentity, u as REVIEW_INSTANCE_ENV } from "../server-discovery-Fme7f3fb.js";
13
+ import { t as openReviewProfile } from "../profile-D-SbO3p9.js";
14
+ import { r as reviewTelemetryChannel, t as ReviewTelemetry } from "../review-telemetry-CxNvwdDS.js";
15
+ import { l as REVIEW_TELEMETRY_TABS } from "../request-origin-ENYd0Ymr.js";
16
+ import { c as removeLegacyReviewSkills, d as skipCliInstall, h as detectConnectAgents, i as finishCliInstallUpdate, l as resetCliInstall, m as connectAgent, n as applyCliInstall, o as pathShimPath, r as declineCliInstall, s as removeCliInstall, t as aliasInstallationToAccount, u as resolveCliInstallStatus } from "../account-alias-Cs5YqXRj.js";
17
+ import { C as DEFAULT_MAX_REQUEST_BYTES, D as writeAnimationsEnabled, E as readAnimationsEnabled, O as cliAskTools, S as readBoundedRequestJson, T as ReviewServerError, _ as saveDiffrSummarizer, a as drainServerCrashReport, b as remoteShare, c as answerErrorsAsJson, d as captureSanitizedUiTelemetry, f as clientErrorsForSession, g as readDiffrConfig, h as migrateDiffrConfig, l as createWhiteboardCore, m as GlobalReviewDesktopVerbRelay, o as installProcessErrorTelemetry, p as recordClientError, r as takeOverServerHome, s as serverCrashReportPath, u as serverJson, v as setDiffrConfigValue, w as HttpJsonError, x as createNodeRequestListener, y as testDiffrSummarizer } from "../headless-host-bb09yVkX.js";
18
+ import { s as readQuerySchemas } from "../authoring-tools-BgZvnbjN.js";
19
19
  import crypto, { createHash, randomBytes } from "node:crypto";
20
20
  import { z } from "zod";
21
21
  import { Agent, request } from "undici";
@@ -1,7 +1,7 @@
1
1
  import { a as jsonNumber, n as isJsonObject, s as jsonProperty, u as parseJsonText } from "./src-X9phtB2j.js";
2
- import { n as parseReviewDesktopDiscovery } from "./src-B-91Rd2d.js";
3
- import { a as reviewInstancesDir, o as reviewLegacyDiscoveryPath, r as reviewDevInstanceKey, t as reviewDefaultInstancePath } from "./review-home-paths-BmZX2qiz.js";
4
2
  import { M as DEV_REVIEW_HOME_ENV, N as devReviewHome, k as processIsAlive } from "./s3-config-CjcLyFV5.js";
3
+ import { a as reviewInstancesDir, o as reviewLegacyDiscoveryPath, r as reviewDevInstanceKey, t as reviewDefaultInstancePath } from "./review-home-paths-B8909D07.js";
4
+ import { n as parseReviewDesktopDiscovery } from "./src-B-91Rd2d.js";
5
5
  import { z } from "zod";
6
6
  import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
7
7
  import path from "node:path";
@@ -728,6 +728,27 @@ declare const fileLineRangeSchema: z.ZodObject<{
728
728
  type FileLineRange = z.infer<typeof fileLineRangeSchema>;
729
729
  type AlignmentRow = readonly [number | null, number | null];
730
730
  //#endregion
731
+ //#region src/intervals.d.ts
732
+ /** Zero-based, half-open intervals; always normalized at the storage boundary. */
733
+ type LineInterval = [number, number];
734
+ //#endregion
735
+ //#region src/coverage.d.ts
736
+ interface Coverage {
737
+ base: LineInterval[];
738
+ head: LineInterval[];
739
+ }
740
+ interface CoverageFile {
741
+ path: string;
742
+ previousPath?: string;
743
+ fingerprint: string;
744
+ changed: Coverage;
745
+ /** The changed lines diffr folds by default: every changed line of a file
746
+ * it hides, or those under a region that starts collapsed. Absent without
747
+ * structural data, where every changed line is left to read. */
748
+ folded?: Coverage;
749
+ viewed: Coverage;
750
+ }
751
+ //#endregion
731
752
  //#region ../json/src/json.d.ts
732
753
  /**
733
754
  * JSON values as they come off the wire or out of a file. Parse into one of
@@ -1611,10 +1632,6 @@ interface WrittenComponent {
1611
1632
  type: Element["type"];
1612
1633
  }
1613
1634
  //#endregion
1614
- //#region src/intervals.d.ts
1615
- /** Zero-based, half-open intervals; always normalized at the storage boundary. */
1616
- type LineInterval = [number, number];
1617
- //#endregion
1618
1635
  //#region src/github-pr-graph.d.ts
1619
1636
  interface GitHubPullRequest {
1620
1637
  number: number;
@@ -1625,23 +1642,6 @@ interface GitHubPullRequest {
1625
1642
  draft: boolean;
1626
1643
  }
1627
1644
  //#endregion
1628
- //#region src/viewed-coverage.d.ts
1629
- interface Coverage {
1630
- base: LineInterval[];
1631
- head: LineInterval[];
1632
- }
1633
- interface CoverageFile {
1634
- path: string;
1635
- previousPath?: string;
1636
- fingerprint: string;
1637
- changed: Coverage;
1638
- /** The changed lines diffr folds by default: every changed line of a file
1639
- * it hides, or those under a region that starts collapsed. Absent without
1640
- * structural data, where every changed line is left to read. */
1641
- folded?: Coverage;
1642
- viewed: Coverage;
1643
- }
1644
- //#endregion
1645
1645
  //#region src/review-api/comparison-coverage.d.ts
1646
1646
  interface ComparisonCoverage {
1647
1647
  /** All Git changes are counted, even if folding is still loading. */
@@ -1,2 +1,2 @@
1
- import { a as shareKey, g as exportShare, o as validateShareBundle, t as importShare, u as ShareClient } from "../import-CjcW7EIQ.js";
1
+ import { a as shareKey, g as exportShare, o as validateShareBundle, t as importShare, u as ShareClient } from "../import-_XAsWqen.js";
2
2
  export { ShareClient, exportShare, importShare, shareKey, validateShareBundle };