@dev.fast/whiteboard 0.3.4 → 0.3.5-preview.20261021.131

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 (120) hide show
  1. package/dist/{account-alias-CprZojXd.js → account-alias-CisiYUZT.js} +13 -8
  2. package/dist/agent-cli-BglNRDZN.js +2 -0
  3. package/dist/{agent-cli-CThN7Q59.js → agent-cli-TJ7_5_B3.js} +15 -10
  4. package/dist/{agent-client-BOOi7EUR.js → agent-client-H53ajvrm.js} +13 -3
  5. package/dist/{authoring-tools-BNwuMnz6.js → authoring-tools-BCquUsB3.js} +34 -27
  6. package/dist/{background-server-DLSDogkI.js → background-server-BSYXD9au.js} +1 -1
  7. package/dist/{background-server-CkvxA-6O.js → background-server-Xom8cA_u.js} +5 -5
  8. package/dist/build-info.json +1 -1
  9. package/dist/{cli-R4yfa5DT.js → cli-BOnV4cCh.js} +1 -1
  10. package/dist/{cli-runner-Cuc9FSzu.js → cli-runner-cRY5NOno.js} +70 -34
  11. package/dist/cli.js +4 -3
  12. package/dist/{client-BN_FDxFr.js → client-UH1bEG7Z.js} +260 -49
  13. package/dist/{fuzzy-match-BO9bK37N.js → fuzzy-match-D_x3wumC.js} +6 -4
  14. package/dist/{headless-host-CVBOQyRS.js → headless-host-BEe-aFtB.js} +1 -1
  15. package/dist/{headless-host-Cog6SpS9.js → headless-host-CEb5d-A0.js} +563 -175
  16. package/dist/lens-selection-BxPk53c8.js +214 -0
  17. package/dist/{local-data-D_9tvdsp.js → local-data-mbCb1HDH.js} +2448 -347
  18. package/dist/{mcp-D1hziANa.js → mcp-cBtzXsmN.js} +9 -12
  19. package/dist/{package-paths-C--__jEv.js → package-paths-BkeQsdaw.js} +1 -1
  20. package/dist/profile-Dbyidrcr.js +2 -0
  21. package/dist/{profile-DokFw782.js → profile-duqp5uPa.js} +20 -8
  22. package/dist/{remote-attach-CEJ-kvDY.js → remote-attach-BeKuMm_x.js} +4 -4
  23. package/dist/{remote-extensions-GN8Gf_qG.js → remote-extensions-CX2fAec1.js} +1 -1
  24. package/dist/{remote-extensions-Blcjr9Ze.js → remote-extensions-CYWNTVSf.js} +3 -3
  25. package/dist/{remote-language-server-BTKBQ7x4.js → remote-language-server-DLWluAeR.js} +5 -5
  26. package/dist/{remote-uninstall-DW7Gdryh.js → remote-uninstall-Y3S0YmJs.js} +6 -6
  27. package/dist/{request-origin-Zcn_CjX4.js → request-origin-icXPv6jh.js} +55 -18
  28. package/dist/{review-app-launcher-CkwLclzR.js → review-app-launcher-DZvG5ZAh.js} +2 -2
  29. package/dist/{review-home-paths-j2BRAaNv.js → review-home-paths-BwH08ihj.js} +19 -17
  30. package/dist/{review-telemetry-BLNwYnLV.js → review-telemetry-AZ0imsmJ.js} +6 -6
  31. package/dist/runtime-CF4JXdb8.js +27 -0
  32. package/dist/runtime.d.ts +1 -1
  33. package/dist/runtime.js +1 -1
  34. package/dist/{s3-DtJFWC0G.js → s3-CsG2EWED.js} +1 -1
  35. package/dist/{s3-config-BTO12tCC.js → s3-config-CjcLyFV5.js} +4 -2
  36. package/dist/{s3-config-CSy3fx8H.js → s3-config-zz4GWh2T.js} +1 -1
  37. package/dist/server/desktop-host.js +28 -104
  38. package/dist/{server-discovery-Bey8IqXH.js → server-discovery-DeVTdcqK.js} +3 -3
  39. package/dist/sharing/index.d.ts +484 -74
  40. package/dist/sharing/index.js +1 -1
  41. package/dist/{src-DsM3jO8G.js → src-DYZLCUP_.js} +98 -18
  42. package/dist/{src-BMPuxWv4.js → src-DtfSndqS.js} +269 -227
  43. package/dist/{stored-document-migration-CChxtFAy.js → stored-document-migration-B29lve9-.js} +318 -271
  44. package/dist/{thread-state-5pYr6_zM.js → thread-state-BPpvKFwQ.js} +12 -2
  45. package/dist/{tool-failure-C9MpbXJJ.js → tool-failure-CQhyLht3.js} +10 -3
  46. package/instructions/authoring.md +20 -5
  47. package/package.json +4 -4
  48. package/src/agent-selection.ts +6 -0
  49. package/src/ask/agents.ts +13 -1
  50. package/src/ask/checkout-files.ts +2 -5
  51. package/src/ask/thread-state.ts +4 -0
  52. package/src/ask/thread.ts +61 -31
  53. package/src/ask/threads.ts +24 -3
  54. package/src/cli-install.ts +13 -2
  55. package/src/cli-runner.ts +4 -1
  56. package/src/cli.ts +4 -1
  57. package/src/diff-selection-migration.ts +48 -34
  58. package/src/heading-anchors.ts +42 -0
  59. package/src/lens-selection.ts +38 -2
  60. package/src/markdown.ts +42 -0
  61. package/src/posthog-capture-client.ts +1 -1
  62. package/src/review-api/README.md +52 -13
  63. package/src/review-api/activity.ts +1 -4
  64. package/src/review-api/agent-cli.ts +9 -1
  65. package/src/review-api/anchor-quotes.ts +14 -7
  66. package/src/review-api/ask-history.ts +118 -51
  67. package/src/review-api/authoring-tools.ts +45 -30
  68. package/src/review-api/azure-devops-provider.ts +2 -20
  69. package/src/review-api/azure-remote.ts +21 -0
  70. package/src/review-api/blocks/definition.ts +1 -1
  71. package/src/review-api/blocks/markdown.ts +2 -2
  72. package/src/review-api/board-order.ts +144 -0
  73. package/src/review-api/checkout-groups.ts +586 -0
  74. package/src/review-api/document-headings.ts +58 -27
  75. package/src/review-api/document-text.ts +31 -2
  76. package/src/review-api/document.ts +362 -67
  77. package/src/review-api/foreign-references.ts +328 -0
  78. package/src/review-api/github-provider.ts +51 -13
  79. package/src/review-api/http.ts +734 -135
  80. package/src/review-api/instructions.ts +0 -19
  81. package/src/review-api/link-preview.ts +113 -0
  82. package/src/review-api/local-data.ts +310 -46
  83. package/src/review-api/mcp.ts +7 -13
  84. package/src/review-api/onboarding.ts +1 -1
  85. package/src/review-api/profile.ts +37 -6
  86. package/src/review-api/public-tools.ts +24 -2
  87. package/src/review-api/pull-request.ts +82 -49
  88. package/src/review-api/request-origin.ts +10 -0
  89. package/src/review-api/review-progress.ts +61 -27
  90. package/src/review-api/scratchpad-plan-upgrade.ts +250 -0
  91. package/src/review-api/store-migrations.ts +355 -0
  92. package/src/review-api/store-schema.ts +38 -29
  93. package/src/review-api/store.ts +2176 -495
  94. package/src/review-api/worktree-events.ts +3 -5
  95. package/src/review-api/worktree-source.ts +3 -7
  96. package/src/review-api/worktree-structural.integration.ts +72 -0
  97. package/src/review-stack.ts +15 -23
  98. package/src/runtime.ts +4 -30
  99. package/src/server/desktop-host.ts +6 -1
  100. package/src/server/desktop-server.ts +1 -36
  101. package/src/server/headless-host.ts +0 -2
  102. package/src/server/hono-http.ts +2 -1
  103. package/src/server/review-gateway-list.ts +3 -5
  104. package/src/server/review-gateway-memory.ts +1 -1
  105. package/src/server/review-lifecycle-telemetry.ts +2 -2
  106. package/src/server/review-server-core.ts +1 -5
  107. package/src/server/structural-comparisons.ts +47 -0
  108. package/src/sharing/export.ts +36 -7
  109. package/src/sharing/host.ts +34 -14
  110. package/src/sharing/import.ts +156 -24
  111. package/src/sharing/repository.ts +143 -24
  112. package/src/startup-trace.ts +3 -3
  113. package/src/stored-document-migration.ts +110 -19
  114. package/src/ui-telemetry-events.ts +44 -18
  115. package/dist/agent-cli-C6SPSII0.js +0 -2
  116. package/dist/profile-CYPmvBoA.js +0 -2
  117. package/dist/runtime-CKiWhGrf.js +0 -52
  118. package/instructions/scratchpad.md +0 -23
  119. package/src/review-preferences.ts +0 -88
  120. package/src/server/legacy-tutorial-cleanup.ts +0 -38
@@ -1,2 +1,2 @@
1
- import { a as sharedReviewId, c as verifyShareRepository, i as SharedReviewStore, l as exportShare, n as ShareClient, o as validateShareBundle } from "../client-BN_FDxFr.js";
1
+ import { a as sharedReviewId, c as verifyShareRepository, i as SharedReviewStore, l as exportShare, n as ShareClient, o as validateShareBundle } from "../client-UH1bEG7Z.js";
2
2
  export { ShareClient, SharedReviewStore, exportShare, sharedReviewId, validateShareBundle, verifyShareRepository };
@@ -177,6 +177,12 @@ z.union([StructuralDiffEventSchema, ReviewStructuralDiffErrorSchema]);
177
177
  const REVIEW_CLIENT_HEADER = "x-review-client";
178
178
  const REVIEW_CLIENT_REMOTE = "remote";
179
179
  const REVIEW_HOST_HEADER = "x-review-host";
180
+ const PULL_REQUEST_STATES = [
181
+ "open",
182
+ "draft",
183
+ "merged",
184
+ "closed"
185
+ ];
180
186
  const requiredString$1 = z.string({ error: "must be a string" }).refine((value) => value.trim().length > 0, "must be a string");
181
187
  const stringAllowEmpty = z.string({ error: "must be a string" });
182
188
  const positiveInteger = z.number({ error: "must be a positive integer" }).int("must be a positive integer").positive("must be a positive integer");
@@ -184,7 +190,6 @@ const nonNegativeInteger = z.number({ error: "must be a non-negative integer" })
184
190
  const reviewDiffSideSchema = z.enum(["base", "head"], { error: "must be base or head" });
185
191
  const reviewViewSchema = z.enum([
186
192
  "review",
187
- "commits",
188
193
  "diff",
189
194
  "map",
190
195
  "trace"
@@ -227,11 +232,7 @@ z.strictObject({
227
232
  /** How embedded diffs lay out: base and head side by side, or one column. */
228
233
  const REVIEW_DIFF_LAYOUTS = ["split", "unified"];
229
234
  const REVIEW_DIFF_LAYOUT_SCOPES = ["diff", "peek"];
230
- const REVIEW_THEME_CHOICES = [
231
- "dark",
232
- "light",
233
- "system"
234
- ];
235
+ const REVIEW_COLOR_THEME_KINDS = ["dark", "light"];
235
236
  const reviewDiffrSummarizerInputSchema = z.object({
236
237
  enabled: z.boolean(),
237
238
  provider: z.string().min(1),
@@ -405,9 +406,38 @@ const ReviewStackLayerSchema = z.strictObject({
405
406
  "earlier",
406
407
  "current",
407
408
  "later"
408
- ])
409
+ ]),
410
+ /** The layer's PR state, as last read from GitHub. */
411
+ pullRequestState: z.enum(PULL_REQUEST_STATES).optional()
412
+ });
413
+ z.strictObject({
414
+ /** Bottom first. */
415
+ layers: z.array(ReviewStackLayerSchema),
416
+ /** The branch the stack sits on, as `main`. */
417
+ base: requiredString$1.optional()
418
+ });
419
+ const ReviewPlaceBoardSchema = z.strictObject({
420
+ reviewId: requiredString$1,
421
+ title: stringAllowEmpty,
422
+ icon: z.enum(["board", "code"])
423
+ });
424
+ const ReviewPlaceSiblingSchema = ReviewPlaceBoardSchema.extend({
425
+ pullRequestNumber: positiveInteger.optional(),
426
+ pullRequestState: z.enum(PULL_REQUEST_STATES).optional()
427
+ });
428
+ z.strictObject({
429
+ /** The board's PR state and branches, as last read from GitHub. */
430
+ pullRequestState: z.enum(PULL_REQUEST_STATES).optional(),
431
+ baseBranch: requiredString$1.optional(),
432
+ headBranch: requiredString$1.optional(),
433
+ /** The board itself. */
434
+ board: ReviewPlaceBoardSchema.optional(),
435
+ parent: ReviewPlaceBoardSchema.optional(),
436
+ /** Empty for a top-level board. */
437
+ siblings: z.array(ReviewPlaceSiblingSchema),
438
+ /** A top-level board's children in sibling order; absent for a child. */
439
+ children: z.array(ReviewPlaceSiblingSchema).optional()
409
440
  });
410
- z.strictObject({ layers: z.array(ReviewStackLayerSchema) });
411
441
  const ReviewCliInstallTargetSchema = z.enum([
412
442
  "claude",
413
443
  "codex",
@@ -673,13 +703,7 @@ const revealArgsSchema = z.strictObject({
673
703
  path: ["endLine"]
674
704
  });
675
705
  });
676
- /** The one scratchpad's fixed review id. */
677
- const SCRATCHPAD_REVIEW_ID = "scratchpad";
678
- const apiReviewIdSchema = z.union([
679
- z.uuid(),
680
- z.string().regex(/^shared-[a-f0-9]{64}$/),
681
- z.literal(SCRATCHPAD_REVIEW_ID)
682
- ]);
706
+ const apiReviewIdSchema = z.union([z.uuid(), z.string().regex(/^shared-[a-f0-9]{64}$/)]);
683
707
  const ReviewVerbRequestSchema = z.discriminatedUnion("name", [
684
708
  z.strictObject({
685
709
  name: z.literal("authoringCapabilities"),
@@ -727,7 +751,11 @@ const ReviewVerbRequestSchema = z.discriminatedUnion("name", [
727
751
  name: z.literal("openReview"),
728
752
  args: z.strictObject({
729
753
  reviewUuid: apiReviewIdSchema,
730
- active: z.boolean()
754
+ active: z.boolean(),
755
+ /** Block to scroll to after opening. */
756
+ blockId: requiredString$1.optional(),
757
+ /** View to show once it opens. */
758
+ view: reviewViewSchema.optional()
731
759
  })
732
760
  }),
733
761
  z.strictObject({
@@ -797,7 +825,44 @@ z.discriminatedUnion("event", [
797
825
  }),
798
826
  z.strictObject({
799
827
  event: z.literal("showReviewView"),
800
- view: reviewViewSchema
828
+ view: reviewViewSchema,
829
+ /** The board to switch, from its sidebar; else the one asking. */
830
+ reviewId: requiredString$1.optional()
831
+ }),
832
+ z.strictObject({
833
+ event: z.literal("revealBlock"),
834
+ reviewId: requiredString$1,
835
+ blockId: requiredString$1
836
+ }),
837
+ z.strictObject({
838
+ event: z.literal("selectLens"),
839
+ reviewId: requiredString$1,
840
+ lensId: requiredString$1.nullable()
841
+ }),
842
+ z.strictObject({
843
+ event: z.literal("markLens"),
844
+ reviewId: requiredString$1,
845
+ lensId: requiredString$1
846
+ }),
847
+ z.strictObject({
848
+ event: z.literal("pickCommit"),
849
+ reviewId: requiredString$1,
850
+ commit: requiredString$1.nullable()
851
+ }),
852
+ z.strictObject({
853
+ event: z.literal("openStackLayer"),
854
+ reviewId: requiredString$1,
855
+ branch: requiredString$1,
856
+ active: z.boolean()
857
+ }),
858
+ z.strictObject({
859
+ event: z.literal("openAskThread"),
860
+ reviewId: requiredString$1,
861
+ threadId: requiredString$1
862
+ }),
863
+ z.strictObject({
864
+ event: z.literal("toggleAskColumn"),
865
+ reviewId: requiredString$1
801
866
  })
802
867
  ]);
803
868
  z.discriminatedUnion("ok", [z.strictObject({
@@ -1005,6 +1070,21 @@ function parseReviewBugReportResponse(value) {
1005
1070
  return ReviewBugReportResponseSchema.parse(value);
1006
1071
  }
1007
1072
  //#endregion
1073
+ //#region ../review-protocol/src/board-icons.ts
1074
+ /** A board has code attached when its target is commits, a PR or a working
1075
+ * tree, even one with nothing to compare. A plan's target is its project. */
1076
+ const boardIconKind = (target) => target && target.kind !== "project" ? "code" : "board";
1077
+ /** What a board with no title is called wherever its title shows. */
1078
+ const UNTITLED_BOARD = "Untitled";
1079
+ /**
1080
+ * A board's title as every surface shows it. A person's new board keeps an
1081
+ * empty title until they name it; it reads "Untitled" everywhere. A title
1082
+ * someone typed, "Untitled" included, shows as typed.
1083
+ */
1084
+ function boardTitle(title) {
1085
+ return title?.trim() ? title : UNTITLED_BOARD;
1086
+ }
1087
+ //#endregion
1008
1088
  //#region ../review-protocol/src/index.ts
1009
1089
  function parseReviewDesktopDiscovery(value) {
1010
1090
  return parseZod(ReviewDesktopDiscoverySchema, value);
@@ -1039,4 +1119,4 @@ function formatIssuePath(path) {
1039
1119
  return output;
1040
1120
  }
1041
1121
  //#endregion
1042
- export { ReviewSelectedDiffSchema as A, ReviewApiSelectionSourceSchema as C, ReviewFeedbackSchema as D, ReviewFeedbackContactSchema as E, reviewDiffrSummarizerInputSchema as M, decodeStructuralDiffEvent as N, ReviewGatewayHostSchema as O, structuralChangeCounts as P, REVIEW_THEME_CHOICES as S, ReviewConnectRequestSchema as T, REVIEW_REMOTE_AGENT_IDS as _, parseReviewVerbRequest as a, REVIEW_REMOTE_INSTALL_LOCK as b, ReviewBugReportMetaV2Schema as c, REVIEW_CLIENT_HEADER as d, REVIEW_CLIENT_REMOTE as f, REVIEW_HOST_HEADER as g, REVIEW_DIFF_LAYOUT_SCOPES as h, parseReviewDesktopVerbResult as i, SCRATCHPAD_REVIEW_ID as j, ReviewOnboardingRunRequestSchema as k, ReviewBugReportRequestSchema as l, REVIEW_DIFF_LAYOUTS as m, parseReviewDesktopDiscovery as n, parseReviewVerbResponse as o, REVIEW_CLI_INSTALL_TARGET_LABELS as p, parseReviewDesktopVerbFrame as r, parseZod as s, parseReviewCliInstallApplyRequest as t, parseReviewBugReportResponse as u, REVIEW_REMOTE_ATTACH_BEGIN as v, ReviewCliInstallStampSchema as w, REVIEW_REMOTE_WRAPPER_MARK as x, REVIEW_REMOTE_ATTACH_END as y };
1122
+ export { ReviewGatewayHostSchema as A, REVIEW_REMOTE_INSTALL_LOCK as C, ReviewConnectRequestSchema as D, ReviewCliInstallStampSchema as E, structuralChangeCounts as F, ReviewSelectedDiffSchema as M, reviewDiffrSummarizerInputSchema as N, ReviewFeedbackContactSchema as O, decodeStructuralDiffEvent as P, REVIEW_REMOTE_ATTACH_END as S, ReviewApiSelectionSourceSchema as T, REVIEW_DIFF_LAYOUTS as _, parseReviewVerbRequest as a, REVIEW_REMOTE_AGENT_IDS as b, boardIconKind as c, ReviewBugReportRequestSchema as d, parseReviewBugReportResponse as f, REVIEW_COLOR_THEME_KINDS as g, REVIEW_CLI_INSTALL_TARGET_LABELS as h, parseReviewDesktopVerbResult as i, ReviewOnboardingRunRequestSchema as j, ReviewFeedbackSchema as k, boardTitle as l, REVIEW_CLIENT_REMOTE as m, parseReviewDesktopDiscovery as n, parseReviewVerbResponse as o, REVIEW_CLIENT_HEADER as p, parseReviewDesktopVerbFrame as r, parseZod as s, parseReviewCliInstallApplyRequest as t, ReviewBugReportMetaV2Schema as u, REVIEW_DIFF_LAYOUT_SCOPES as v, REVIEW_REMOTE_WRAPPER_MARK as w, REVIEW_REMOTE_ATTACH_BEGIN as x, REVIEW_HOST_HEADER as y };