@vibefield/rosetta-room 0.0.0-stage → 0.1.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.
Files changed (435) hide show
  1. package/README.md +247 -2
  2. package/dist/HistoryRoom.d.ts +98 -0
  3. package/dist/HistoryRoom.js +440 -0
  4. package/dist/TranscriptReader.d.ts +22 -0
  5. package/dist/TranscriptReader.js +72 -0
  6. package/dist/components/ColdStart.d.ts +4 -0
  7. package/dist/components/ColdStart.js +5 -0
  8. package/dist/components/FilterChips.d.ts +4 -0
  9. package/dist/components/FilterChips.js +5 -0
  10. package/dist/components/HostAct.d.ts +9 -0
  11. package/dist/components/HostAct.js +16 -0
  12. package/dist/components/HostMenu.d.ts +41 -0
  13. package/dist/components/HostMenu.js +216 -0
  14. package/dist/components/IngestStatus.d.ts +4 -0
  15. package/dist/components/IngestStatus.js +20 -0
  16. package/dist/components/ListActivityNotice.d.ts +5 -0
  17. package/dist/components/ListActivityNotice.js +4 -0
  18. package/dist/components/ListSections.d.ts +20 -0
  19. package/dist/components/ListSections.js +39 -0
  20. package/dist/components/RenameHeading.d.ts +9 -0
  21. package/dist/components/RenameHeading.js +75 -0
  22. package/dist/components/SearchStrip.d.ts +5 -0
  23. package/dist/components/SearchStrip.js +8 -0
  24. package/dist/components/SummaryMetrics.d.ts +13 -0
  25. package/dist/components/SummaryMetrics.js +9 -0
  26. package/dist/components/SummaryPanels.d.ts +35 -0
  27. package/dist/components/SummaryPanels.js +117 -0
  28. package/dist/components/Transcript.d.ts +46 -0
  29. package/dist/components/Transcript.js +358 -0
  30. package/dist/components/charts/ActivityChartDetail.d.ts +13 -0
  31. package/dist/components/charts/ActivityChartDetail.js +78 -0
  32. package/dist/components/charts/CalendarHeatmap.d.ts +16 -0
  33. package/dist/components/charts/CalendarHeatmap.js +55 -0
  34. package/dist/components/charts/DayActivityChart.d.ts +8 -0
  35. package/dist/components/charts/DayActivityChart.js +71 -0
  36. package/dist/components/charts/ModelsChartDetail.d.ts +7 -0
  37. package/dist/components/charts/ModelsChartDetail.js +19 -0
  38. package/dist/components/charts/ProjectChartDialog.d.ts +19 -0
  39. package/dist/components/charts/ProjectChartDialog.js +39 -0
  40. package/dist/components/charts/Streamgraph.d.ts +16 -0
  41. package/dist/components/charts/Streamgraph.js +94 -0
  42. package/dist/components/charts/Treemap.d.ts +26 -0
  43. package/dist/components/charts/Treemap.js +81 -0
  44. package/dist/components/charts/index.d.ts +9 -0
  45. package/dist/components/charts/index.js +4 -0
  46. package/dist/components/charts/streamgraph-layout.d.ts +23 -0
  47. package/dist/components/charts/streamgraph-layout.js +114 -0
  48. package/dist/components/charts/treemap-layout.d.ts +32 -0
  49. package/dist/components/charts/treemap-layout.js +140 -0
  50. package/dist/components/charts/types.d.ts +65 -0
  51. package/dist/components/charts/types.js +8 -0
  52. package/dist/components/file-viewer/FileViewerBrowsers.d.ts +10 -0
  53. package/dist/components/file-viewer/FileViewerBrowsers.js +65 -0
  54. package/dist/components/file-viewer/FileViewerDialog.d.ts +33 -0
  55. package/dist/components/file-viewer/FileViewerDialog.js +82 -0
  56. package/dist/components/file-viewer/FileViewerHeader.d.ts +26 -0
  57. package/dist/components/file-viewer/FileViewerHeader.js +17 -0
  58. package/dist/components/file-viewer/ImageGalleryDialog.d.ts +14 -0
  59. package/dist/components/file-viewer/ImageGalleryDialog.js +98 -0
  60. package/dist/components/file-viewer/diff/index.d.ts +2 -0
  61. package/dist/components/file-viewer/diff/index.js +2 -0
  62. package/dist/components/file-viewer/diff/parse.d.ts +2 -0
  63. package/dist/components/file-viewer/diff/parse.js +164 -0
  64. package/dist/components/file-viewer/diff/types.d.ts +44 -0
  65. package/dist/components/file-viewer/diff/types.js +7 -0
  66. package/dist/components/file-viewer/gallery-source.d.ts +11 -0
  67. package/dist/components/file-viewer/gallery-source.js +75 -0
  68. package/dist/components/file-viewer/image-resource.d.ts +19 -0
  69. package/dist/components/file-viewer/image-resource.js +60 -0
  70. package/dist/components/file-viewer/index.d.ts +5 -0
  71. package/dist/components/file-viewer/index.js +8 -0
  72. package/dist/components/file-viewer/markdown/blocks.d.ts +2 -0
  73. package/dist/components/file-viewer/markdown/blocks.js +277 -0
  74. package/dist/components/file-viewer/markdown/index.d.ts +4 -0
  75. package/dist/components/file-viewer/markdown/index.js +35 -0
  76. package/dist/components/file-viewer/markdown/inline.d.ts +10 -0
  77. package/dist/components/file-viewer/markdown/inline.js +178 -0
  78. package/dist/components/file-viewer/markdown/render.d.ts +9 -0
  79. package/dist/components/file-viewer/markdown/render.js +78 -0
  80. package/dist/components/file-viewer/markdown/types.d.ts +57 -0
  81. package/dist/components/file-viewer/markdown/types.js +11 -0
  82. package/dist/components/file-viewer/minimap/CodeMinimap.d.ts +10 -0
  83. package/dist/components/file-viewer/minimap/CodeMinimap.js +296 -0
  84. package/dist/components/file-viewer/minimap/layout.d.ts +60 -0
  85. package/dist/components/file-viewer/minimap/layout.js +117 -0
  86. package/dist/components/file-viewer/minimap/palette.d.ts +2 -0
  87. package/dist/components/file-viewer/minimap/palette.js +73 -0
  88. package/dist/components/file-viewer/minimap/raster.d.ts +19 -0
  89. package/dist/components/file-viewer/minimap/raster.js +122 -0
  90. package/dist/components/file-viewer/registry.d.ts +25 -0
  91. package/dist/components/file-viewer/registry.js +182 -0
  92. package/dist/components/file-viewer/syntax/grammars.d.ts +16 -0
  93. package/dist/components/file-viewer/syntax/grammars.js +221 -0
  94. package/dist/components/file-viewer/syntax/index.d.ts +8 -0
  95. package/dist/components/file-viewer/syntax/index.js +9 -0
  96. package/dist/components/file-viewer/syntax/languages.d.ts +14 -0
  97. package/dist/components/file-viewer/syntax/languages.js +115 -0
  98. package/dist/components/file-viewer/syntax/tokenize-config.d.ts +2 -0
  99. package/dist/components/file-viewer/syntax/tokenize-config.js +132 -0
  100. package/dist/components/file-viewer/syntax/tokenize-css.d.ts +2 -0
  101. package/dist/components/file-viewer/syntax/tokenize-css.js +169 -0
  102. package/dist/components/file-viewer/syntax/tokenize-markup.d.ts +2 -0
  103. package/dist/components/file-viewer/syntax/tokenize-markup.js +124 -0
  104. package/dist/components/file-viewer/syntax/tokenize.d.ts +9 -0
  105. package/dist/components/file-viewer/syntax/tokenize.js +289 -0
  106. package/dist/components/file-viewer/syntax/types.d.ts +74 -0
  107. package/dist/components/file-viewer/syntax/types.js +13 -0
  108. package/dist/components/file-viewer/types.d.ts +111 -0
  109. package/dist/components/file-viewer/types.js +8 -0
  110. package/dist/components/file-viewer/use-file-content.d.ts +26 -0
  111. package/dist/components/file-viewer/use-file-content.js +144 -0
  112. package/dist/components/file-viewer/views/BinaryView.d.ts +2 -0
  113. package/dist/components/file-viewer/views/BinaryView.js +34 -0
  114. package/dist/components/file-viewer/views/CodeView.d.ts +2 -0
  115. package/dist/components/file-viewer/views/CodeView.js +46 -0
  116. package/dist/components/file-viewer/views/DiffBody.d.ts +7 -0
  117. package/dist/components/file-viewer/views/DiffBody.js +77 -0
  118. package/dist/components/file-viewer/views/DiffView.d.ts +2 -0
  119. package/dist/components/file-viewer/views/DiffView.js +11 -0
  120. package/dist/components/file-viewer/views/ImageView.d.ts +9 -0
  121. package/dist/components/file-viewer/views/ImageView.js +28 -0
  122. package/dist/components/file-viewer/views/MarkdownView.d.ts +9 -0
  123. package/dist/components/file-viewer/views/MarkdownView.js +20 -0
  124. package/dist/components/file-viewer/views/SvgView.d.ts +9 -0
  125. package/dist/components/file-viewer/views/SvgView.js +10 -0
  126. package/dist/components/git/ChangeTree.d.ts +20 -0
  127. package/dist/components/git/ChangeTree.js +35 -0
  128. package/dist/components/git/CommitViewer.d.ts +12 -0
  129. package/dist/components/git/CommitViewer.js +85 -0
  130. package/dist/components/git/GitChanges.d.ts +17 -0
  131. package/dist/components/git/GitChanges.js +70 -0
  132. package/dist/components/git/GitHistory.d.ts +9 -0
  133. package/dist/components/git/GitHistory.js +58 -0
  134. package/dist/components/git/co-author.d.ts +14 -0
  135. package/dist/components/git/co-author.js +55 -0
  136. package/dist/components/git/git-file-source.d.ts +18 -0
  137. package/dist/components/git/git-file-source.js +53 -0
  138. package/dist/components/git/git-host.d.ts +24 -0
  139. package/dist/components/git/git-host.js +130 -0
  140. package/dist/components/git/index.d.ts +10 -0
  141. package/dist/components/git/index.js +12 -0
  142. package/dist/components/git/path-tree.d.ts +23 -0
  143. package/dist/components/git/path-tree.js +73 -0
  144. package/dist/components/git/session-files.d.ts +9 -0
  145. package/dist/components/git/session-files.js +50 -0
  146. package/dist/components/git/types.d.ts +92 -0
  147. package/dist/components/git/types.js +9 -0
  148. package/dist/components/projects/ProjectActivitySparkline.d.ts +6 -0
  149. package/dist/components/projects/ProjectActivitySparkline.js +12 -0
  150. package/dist/components/projects/ProjectList.d.ts +25 -0
  151. package/dist/components/projects/ProjectList.js +43 -0
  152. package/dist/components/projects/ProjectListItem.d.ts +19 -0
  153. package/dist/components/projects/ProjectListItem.js +78 -0
  154. package/dist/components/projects/ProjectsColumn.d.ts +19 -0
  155. package/dist/components/projects/ProjectsColumn.js +36 -0
  156. package/dist/components/projects/index.d.ts +8 -0
  157. package/dist/components/projects/index.js +4 -0
  158. package/dist/components/search/MatchStepper.d.ts +9 -0
  159. package/dist/components/search/MatchStepper.js +14 -0
  160. package/dist/components/search/SearchLauncher.d.ts +12 -0
  161. package/dist/components/search/SearchLauncher.js +13 -0
  162. package/dist/components/search/SearchSheet.d.ts +29 -0
  163. package/dist/components/search/SearchSheet.js +230 -0
  164. package/dist/components/search/index.d.ts +8 -0
  165. package/dist/components/search/index.js +4 -0
  166. package/dist/components/search/shortcut.d.ts +25 -0
  167. package/dist/components/search/shortcut.js +32 -0
  168. package/dist/components/sessions/SessionList.d.ts +24 -0
  169. package/dist/components/sessions/SessionList.js +76 -0
  170. package/dist/components/sessions/SessionListItem.d.ts +13 -0
  171. package/dist/components/sessions/SessionListItem.js +58 -0
  172. package/dist/components/sessions/SessionsColumn.d.ts +26 -0
  173. package/dist/components/sessions/SessionsColumn.js +32 -0
  174. package/dist/components/sessions/index.d.ts +9 -0
  175. package/dist/components/sessions/index.js +4 -0
  176. package/dist/components/sessions/session-display.d.ts +8 -0
  177. package/dist/components/sessions/session-display.js +18 -0
  178. package/dist/components/sessions/types.d.ts +7 -0
  179. package/dist/components/sessions/types.js +1 -0
  180. package/dist/components/transcript/Activity.d.ts +45 -0
  181. package/dist/components/transcript/Activity.js +75 -0
  182. package/dist/components/transcript/Anchor.d.ts +8 -0
  183. package/dist/components/transcript/Anchor.js +23 -0
  184. package/dist/components/transcript/Attachments.d.ts +21 -0
  185. package/dist/components/transcript/Attachments.js +138 -0
  186. package/dist/components/transcript/AuthoredMessage.d.ts +19 -0
  187. package/dist/components/transcript/AuthoredMessage.js +17 -0
  188. package/dist/components/transcript/Compaction.d.ts +9 -0
  189. package/dist/components/transcript/Compaction.js +50 -0
  190. package/dist/components/transcript/DayPill.d.ts +38 -0
  191. package/dist/components/transcript/DayPill.js +68 -0
  192. package/dist/components/transcript/Document.d.ts +32 -0
  193. package/dist/components/transcript/Document.js +503 -0
  194. package/dist/components/transcript/Favicon.d.ts +32 -0
  195. package/dist/components/transcript/Favicon.js +71 -0
  196. package/dist/components/transcript/HeadOfDocument.d.ts +19 -0
  197. package/dist/components/transcript/HeadOfDocument.js +44 -0
  198. package/dist/components/transcript/Ledger.d.ts +53 -0
  199. package/dist/components/transcript/Ledger.js +182 -0
  200. package/dist/components/transcript/LineDetail.d.ts +24 -0
  201. package/dist/components/transcript/LineDetail.js +81 -0
  202. package/dist/components/transcript/Marker.d.ts +33 -0
  203. package/dist/components/transcript/Marker.js +21 -0
  204. package/dist/components/transcript/MessagePreview.d.ts +12 -0
  205. package/dist/components/transcript/MessagePreview.js +58 -0
  206. package/dist/components/transcript/Prompt.d.ts +20 -0
  207. package/dist/components/transcript/Prompt.js +55 -0
  208. package/dist/components/transcript/Prose.d.ts +19 -0
  209. package/dist/components/transcript/Prose.js +109 -0
  210. package/dist/components/transcript/ReceiptPill.d.ts +10 -0
  211. package/dist/components/transcript/ReceiptPill.js +10 -0
  212. package/dist/components/transcript/ResponseHead.d.ts +9 -0
  213. package/dist/components/transcript/ResponseHead.js +36 -0
  214. package/dist/components/transcript/Subthread.d.ts +19 -0
  215. package/dist/components/transcript/Subthread.js +96 -0
  216. package/dist/components/transcript/Team.d.ts +53 -0
  217. package/dist/components/transcript/Team.js +185 -0
  218. package/dist/components/transcript/Thinking.d.ts +24 -0
  219. package/dist/components/transcript/Thinking.js +50 -0
  220. package/dist/components/transcript/TimelineMeta.d.ts +9 -0
  221. package/dist/components/transcript/TimelineMeta.js +161 -0
  222. package/dist/components/transcript/TranscriptLoading.d.ts +10 -0
  223. package/dist/components/transcript/TranscriptLoading.js +10 -0
  224. package/dist/components/transcript/WebDetail.d.ts +8 -0
  225. package/dist/components/transcript/WebDetail.js +29 -0
  226. package/dist/components/transcript/Workflow.d.ts +12 -0
  227. package/dist/components/transcript/Workflow.js +208 -0
  228. package/dist/components/transcript/activity-plan.d.ts +84 -0
  229. package/dist/components/transcript/activity-plan.js +209 -0
  230. package/dist/components/transcript/attachment-file-source.d.ts +23 -0
  231. package/dist/components/transcript/attachment-file-source.js +103 -0
  232. package/dist/components/transcript/attachment-gallery.d.ts +12 -0
  233. package/dist/components/transcript/attachment-gallery.js +33 -0
  234. package/dist/components/transcript/detail-parts.d.ts +50 -0
  235. package/dist/components/transcript/detail-parts.js +295 -0
  236. package/dist/components/transcript/disclosure-state.d.ts +6 -0
  237. package/dist/components/transcript/disclosure-state.js +32 -0
  238. package/dist/components/transcript/disclosure-store.d.ts +8 -0
  239. package/dist/components/transcript/disclosure-store.js +31 -0
  240. package/dist/components/transcript/document-model.d.ts +15 -0
  241. package/dist/components/transcript/document-model.js +104 -0
  242. package/dist/components/transcript/document-plan.d.ts +28 -0
  243. package/dist/components/transcript/document-plan.js +145 -0
  244. package/dist/components/transcript/fold-preference.d.ts +17 -0
  245. package/dist/components/transcript/fold-preference.js +63 -0
  246. package/dist/components/transcript/glyphs.d.ts +15 -0
  247. package/dist/components/transcript/glyphs.js +47 -0
  248. package/dist/components/transcript/index.d.ts +23 -0
  249. package/dist/components/transcript/index.js +22 -0
  250. package/dist/components/transcript/message-file-source.d.ts +15 -0
  251. package/dist/components/transcript/message-file-source.js +31 -0
  252. package/dist/components/transcript/message-preview.d.ts +9 -0
  253. package/dist/components/transcript/message-preview.js +46 -0
  254. package/dist/components/transcript/read-file-source.d.ts +7 -0
  255. package/dist/components/transcript/read-file-source.js +34 -0
  256. package/dist/components/transcript/reader-context.d.ts +13 -0
  257. package/dist/components/transcript/reader-context.js +55 -0
  258. package/dist/components/transcript/reading-identity.d.ts +2 -0
  259. package/dist/components/transcript/reading-identity.js +52 -0
  260. package/dist/components/transcript/scroll-to-row.d.ts +2 -0
  261. package/dist/components/transcript/scroll-to-row.js +13 -0
  262. package/dist/components/transcript/thread-index.d.ts +14 -0
  263. package/dist/components/transcript/thread-index.js +40 -0
  264. package/dist/components/transcript/thread-navigation.d.ts +5 -0
  265. package/dist/components/transcript/thread-navigation.js +3 -0
  266. package/dist/components/transcript/timeline-meta-file-source.d.ts +6 -0
  267. package/dist/components/transcript/timeline-meta-file-source.js +55 -0
  268. package/dist/components/transcript/timeline-meta-state.d.ts +12 -0
  269. package/dist/components/transcript/timeline-meta-state.js +24 -0
  270. package/dist/components/ui/ColumnHeading.d.ts +27 -0
  271. package/dist/components/ui/ColumnHeading.js +7 -0
  272. package/dist/components/ui/ConfirmDialog.d.ts +14 -0
  273. package/dist/components/ui/ConfirmDialog.js +22 -0
  274. package/dist/components/ui/DialogShell.d.ts +18 -0
  275. package/dist/components/ui/DialogShell.js +40 -0
  276. package/dist/components/ui/EmptyState.d.ts +10 -0
  277. package/dist/components/ui/EmptyState.js +6 -0
  278. package/dist/components/ui/ListSummaryHeader.d.ts +9 -0
  279. package/dist/components/ui/ListSummaryHeader.js +6 -0
  280. package/dist/components/ui/ListToolbar.d.ts +6 -0
  281. package/dist/components/ui/ListToolbar.js +5 -0
  282. package/dist/components/ui/ResultGroupHeader.d.ts +9 -0
  283. package/dist/components/ui/ResultGroupHeader.js +5 -0
  284. package/dist/components/ui/SegmentedControl.d.ts +16 -0
  285. package/dist/components/ui/SegmentedControl.js +9 -0
  286. package/dist/components/ui/SummaryMetric.d.ts +13 -0
  287. package/dist/components/ui/SummaryMetric.js +10 -0
  288. package/dist/components/ui/Veil.d.ts +7 -0
  289. package/dist/components/ui/Veil.js +5 -0
  290. package/dist/components/ui/index.d.ts +20 -0
  291. package/dist/components/ui/index.js +10 -0
  292. package/dist/components/worktree/WorktreeColumn.d.ts +22 -0
  293. package/dist/components/worktree/WorktreeColumn.js +170 -0
  294. package/dist/components/worktree/WorktreeFileTree.d.ts +19 -0
  295. package/dist/components/worktree/WorktreeFileTree.js +60 -0
  296. package/dist/components/worktree/WorktreeHeader.d.ts +32 -0
  297. package/dist/components/worktree/WorktreeHeader.js +81 -0
  298. package/dist/components/worktree/WorktreeList.d.ts +8 -0
  299. package/dist/components/worktree/WorktreeList.js +12 -0
  300. package/dist/components/worktree/index.d.ts +12 -0
  301. package/dist/components/worktree/index.js +7 -0
  302. package/dist/components/worktree/types.d.ts +17 -0
  303. package/dist/components/worktree/types.js +3 -0
  304. package/dist/components/worktree/use-worktree-guest.d.ts +21 -0
  305. package/dist/components/worktree/use-worktree-guest.js +92 -0
  306. package/dist/components/worktree/worktree-file-commands.d.ts +19 -0
  307. package/dist/components/worktree/worktree-file-commands.js +112 -0
  308. package/dist/components/worktree/worktree-file-source.d.ts +15 -0
  309. package/dist/components/worktree/worktree-file-source.js +75 -0
  310. package/dist/components/worktree/worktree-host.d.ts +31 -0
  311. package/dist/components/worktree/worktree-host.js +242 -0
  312. package/dist/fixtures/index.d.ts +24 -0
  313. package/dist/fixtures/index.js +292 -0
  314. package/dist/host-inputs.d.ts +231 -0
  315. package/dist/host-inputs.js +35 -0
  316. package/dist/index.d.ts +18 -0
  317. package/dist/index.js +14 -0
  318. package/dist/lib/activity-details.d.ts +23 -0
  319. package/dist/lib/activity-details.js +78 -0
  320. package/dist/lib/activity-order.d.ts +32 -0
  321. package/dist/lib/activity-order.js +86 -0
  322. package/dist/lib/agent-paths.d.ts +6 -0
  323. package/dist/lib/agent-paths.js +19 -0
  324. package/dist/lib/agents.d.ts +15 -0
  325. package/dist/lib/agents.js +60 -0
  326. package/dist/lib/catalog-status.d.ts +3 -0
  327. package/dist/lib/catalog-status.js +10 -0
  328. package/dist/lib/chart-data.d.ts +14 -0
  329. package/dist/lib/chart-data.js +151 -0
  330. package/dist/lib/day-activity.d.ts +21 -0
  331. package/dist/lib/day-activity.js +56 -0
  332. package/dist/lib/format.d.ts +24 -0
  333. package/dist/lib/format.js +116 -0
  334. package/dist/lib/hooks.d.ts +118 -0
  335. package/dist/lib/hooks.js +608 -0
  336. package/dist/lib/icons.d.ts +21 -0
  337. package/dist/lib/icons.js +49 -0
  338. package/dist/lib/image-media.d.ts +6 -0
  339. package/dist/lib/image-media.js +30 -0
  340. package/dist/lib/ingest-activity.d.ts +50 -0
  341. package/dist/lib/ingest-activity.js +151 -0
  342. package/dist/lib/ingest.d.ts +25 -0
  343. package/dist/lib/ingest.js +70 -0
  344. package/dist/lib/model-labels.d.ts +5 -0
  345. package/dist/lib/model-labels.js +28 -0
  346. package/dist/lib/model.d.ts +73 -0
  347. package/dist/lib/model.js +141 -0
  348. package/dist/lib/motion.d.ts +13 -0
  349. package/dist/lib/motion.js +80 -0
  350. package/dist/lib/room-storage.d.ts +13 -0
  351. package/dist/lib/room-storage.js +40 -0
  352. package/dist/lib/search-results.d.ts +27 -0
  353. package/dist/lib/search-results.js +83 -0
  354. package/dist/lib/search-sheet.d.ts +119 -0
  355. package/dist/lib/search-sheet.js +282 -0
  356. package/dist/lib/sections.d.ts +19 -0
  357. package/dist/lib/sections.js +36 -0
  358. package/dist/lib/session-activity.d.ts +5 -0
  359. package/dist/lib/session-activity.js +15 -0
  360. package/dist/lib/session-leases.d.ts +15 -0
  361. package/dist/lib/session-leases.js +61 -0
  362. package/dist/lib/spend.d.ts +42 -0
  363. package/dist/lib/spend.js +112 -0
  364. package/dist/lib/tint.d.ts +9 -0
  365. package/dist/lib/tint.js +53 -0
  366. package/dist/lib/transcript/collaboration.d.ts +97 -0
  367. package/dist/lib/transcript/collaboration.js +423 -0
  368. package/dist/lib/transcript/families.d.ts +212 -0
  369. package/dist/lib/transcript/families.js +906 -0
  370. package/dist/lib/transcript/favicons.d.ts +54 -0
  371. package/dist/lib/transcript/favicons.js +183 -0
  372. package/dist/lib/transcript/head-of-document.d.ts +27 -0
  373. package/dist/lib/transcript/head-of-document.js +274 -0
  374. package/dist/lib/transcript/head-state.d.ts +182 -0
  375. package/dist/lib/transcript/head-state.js +305 -0
  376. package/dist/lib/transcript/history-window.d.ts +13 -0
  377. package/dist/lib/transcript/history-window.js +52 -0
  378. package/dist/lib/transcript/images.d.ts +8 -0
  379. package/dist/lib/transcript/images.js +60 -0
  380. package/dist/lib/transcript/index.d.ts +15 -0
  381. package/dist/lib/transcript/index.js +8 -0
  382. package/dist/lib/transcript/ledger.d.ts +143 -0
  383. package/dist/lib/transcript/ledger.js +513 -0
  384. package/dist/lib/transcript/protocol.d.ts +23 -0
  385. package/dist/lib/transcript/protocol.js +1 -0
  386. package/dist/lib/transcript/sittings.d.ts +75 -0
  387. package/dist/lib/transcript/sittings.js +147 -0
  388. package/dist/lib/transcript/tail-scroll.d.ts +36 -0
  389. package/dist/lib/transcript/tail-scroll.js +167 -0
  390. package/dist/lib/transcript/tail-state.d.ts +17 -0
  391. package/dist/lib/transcript/tail-state.js +30 -0
  392. package/dist/lib/transcript/turns.d.ts +192 -0
  393. package/dist/lib/transcript/turns.js +576 -0
  394. package/dist/lib/transcript/use-transcript-opening.d.ts +12 -0
  395. package/dist/lib/transcript/use-transcript-opening.js +31 -0
  396. package/dist/lib/transcript/use-transcript-tail.d.ts +25 -0
  397. package/dist/lib/transcript/use-transcript-tail.js +158 -0
  398. package/dist/lib/transcript/vocabulary.d.ts +119 -0
  399. package/dist/lib/transcript/vocabulary.js +293 -0
  400. package/dist/lib/transcript/web-address.d.ts +6 -0
  401. package/dist/lib/transcript/web-address.js +18 -0
  402. package/dist/lib/transcript/workflow.d.ts +31 -0
  403. package/dist/lib/transcript/workflow.js +133 -0
  404. package/dist/lib/use-activity-order.d.ts +2 -0
  405. package/dist/lib/use-activity-order.js +23 -0
  406. package/dist/lib/use-day-usage.d.ts +8 -0
  407. package/dist/lib/use-day-usage.js +31 -0
  408. package/dist/lib/use-deferred-list-order.d.ts +26 -0
  409. package/dist/lib/use-deferred-list-order.js +142 -0
  410. package/dist/lib/use-ingest-activity.d.ts +2 -0
  411. package/dist/lib/use-ingest-activity.js +49 -0
  412. package/dist/lib/use-list-motion.d.ts +4 -0
  413. package/dist/lib/use-list-motion.js +67 -0
  414. package/dist/ports.d.ts +222 -0
  415. package/dist/ports.js +3 -0
  416. package/dist/room-context.d.ts +60 -0
  417. package/dist/room-context.js +87 -0
  418. package/dist/styles/activity-chart.css +127 -0
  419. package/dist/styles/attachments.css +29 -0
  420. package/dist/styles/favicon.css +73 -0
  421. package/dist/styles/history-room.css +18 -0
  422. package/dist/styles/host-inputs.css +250 -0
  423. package/dist/styles/image-gallery.css +30 -0
  424. package/dist/styles/ingest.css +51 -0
  425. package/dist/styles/message-preview.css +34 -0
  426. package/dist/styles/models-chart.css +66 -0
  427. package/dist/styles/project-chart.css +19 -0
  428. package/dist/styles/reader.css +33 -0
  429. package/dist/styles/room.css +1411 -0
  430. package/dist/styles/search.css +252 -0
  431. package/dist/styles/transcript-activity.css +70 -0
  432. package/dist/styles/transcript-head.css +220 -0
  433. package/dist/styles/transcript-loading.css +57 -0
  434. package/dist/styles/transcript.css +1226 -0
  435. package/package.json +61 -4
@@ -0,0 +1,209 @@
1
+ import { runSummary } from "../../lib/transcript/ledger.js";
2
+ import { collaborationStamp } from "../../lib/transcript/collaboration.js";
3
+ import { noticeText } from "../../lib/transcript/vocabulary.js";
4
+ export function activityRows(item) {
5
+ if (item.kind === "tool")
6
+ return item.line.rows;
7
+ if (item.kind === "prompt")
8
+ return item.prompt.rows;
9
+ return item.kind === "compaction" ? item.rows : [item.row];
10
+ }
11
+ export function activityRowKey(row) {
12
+ return `${row.session_id}:${row.timeline_id}`;
13
+ }
14
+ function eventAt(row) {
15
+ return row.body.type === "collaboration" ? collaborationStamp(row).at : row.at;
16
+ }
17
+ /** Tool lines must already have been cut at these boundaries before coalescing. */
18
+ export function activityCuts(rows, watermark, displayedRows = rows) {
19
+ const gaps = new Map();
20
+ const previous = new Map();
21
+ let watermarkId = null;
22
+ for (const row of rows) {
23
+ const ordinal = previous.get(row.session_id);
24
+ if (ordinal !== undefined && row.ordinal > ordinal + 1)
25
+ gaps.set(row.timeline_id, row.ordinal - ordinal - 1);
26
+ previous.set(row.session_id, row.ordinal);
27
+ if (watermarkId === null && watermark !== null && row.ordinal > watermark)
28
+ watermarkId = row.timeline_id;
29
+ }
30
+ // A delivery copy may be removed by ownership reconciliation. Keep its
31
+ // paging boundary before the next surviving source event, never discard it.
32
+ if (displayedRows !== rows) {
33
+ const displayed = new Set(displayedRows.map(row => row.timeline_id));
34
+ let next = null;
35
+ // i walks rows from its last index down to 0.
36
+ const rowAt = (index) => rows[index];
37
+ for (let i = rows.length - 1; i >= 0; i -= 1) {
38
+ const id = rowAt(i).timeline_id;
39
+ if (displayed.has(id)) {
40
+ next = id;
41
+ continue;
42
+ }
43
+ const gap = gaps.get(id);
44
+ if (gap !== undefined) {
45
+ gaps.delete(id);
46
+ if (next !== null)
47
+ gaps.set(next, (gaps.get(next) ?? 0) + gap);
48
+ }
49
+ if (watermarkId === id)
50
+ watermarkId = next;
51
+ }
52
+ }
53
+ return { gaps, watermarkId, cutBefore: new Set([...gaps.keys(), ...(watermarkId === null ? [] : [watermarkId])]) };
54
+ }
55
+ export function activityPlan(plan, options) {
56
+ const headed = new Set();
57
+ let firstContent = true;
58
+ const bounded = new Set();
59
+ return plan.map(({ sitting, parts }) => {
60
+ const blocks = [];
61
+ let items = [];
62
+ let partial = false;
63
+ const flush = () => {
64
+ if (items.length === 0)
65
+ return;
66
+ const rows = items.flatMap(activityRows);
67
+ blocks.push({ kind: "activity", key: `activity:${activityRowKey(rows[0])}`, items, rows, partial, at: eventAt(rows[0]) });
68
+ items = [];
69
+ partial = false;
70
+ };
71
+ const boundary = (rows) => {
72
+ for (const row of rows) {
73
+ if (bounded.has(row.timeline_id))
74
+ continue;
75
+ bounded.add(row.timeline_id);
76
+ const gap = options.gaps.get(row.timeline_id);
77
+ if (gap !== undefined) {
78
+ flush();
79
+ blocks.push({ kind: "gap", key: `gap:${activityRowKey(row)}`, count: gap, at: eventAt(row) });
80
+ }
81
+ if (row.timeline_id === options.watermarkId) {
82
+ flush();
83
+ blocks.push({ kind: "watermark", key: `watermark:${activityRowKey(row)}`, at: eventAt(row) });
84
+ }
85
+ }
86
+ };
87
+ const secondary = (item) => {
88
+ const rows = activityRows(item);
89
+ boundary(rows);
90
+ const request = (item.kind === "tool" && item.line.family === "question") ||
91
+ (item.kind === "marker" && item.notice.type === "permission_requested");
92
+ if (request) {
93
+ flush();
94
+ blocks.push({ kind: "request", key: item.key, item, at: eventAt(rows[0]) });
95
+ }
96
+ else {
97
+ if ((firstContent || rows.some(row => options.gaps.has(row.timeline_id))) && options.partial)
98
+ partial = true;
99
+ items.push(item);
100
+ }
101
+ firstContent = false;
102
+ };
103
+ for (const part of parts) {
104
+ const human = [];
105
+ const flushPrompts = () => {
106
+ if (human.length === 0)
107
+ return;
108
+ flush();
109
+ blocks.push({ kind: "prompt", key: human[0].key, prompts: human.splice(0), at: part.at });
110
+ firstContent = false;
111
+ };
112
+ for (const prompt of part.prompts) {
113
+ if (prompt.machine !== null || prompt.fromParent || prompt.row.body.type !== "user") {
114
+ flushPrompts();
115
+ secondary({ kind: "prompt", key: prompt.key, prompt });
116
+ }
117
+ else {
118
+ // A settings cluster can straddle a loaded gap or live watermark.
119
+ // Finish its earlier prompts before drawing the boundary marker.
120
+ if (prompt.rows.some(row => options.gaps.has(row.timeline_id) || row.timeline_id === options.watermarkId))
121
+ flushPrompts();
122
+ boundary([prompt.row]);
123
+ human.push(prompt);
124
+ // A setting's normalized value belongs to the user's command pill.
125
+ // Other machine output receives its own context disclosure.
126
+ if (prompt.commandOutputRow !== null && prompt.setting === null) {
127
+ human[human.length - 1] = { ...prompt, commandOutput: null };
128
+ flushPrompts();
129
+ const row = prompt.commandOutputRow;
130
+ if (row.body.type === "notice")
131
+ secondary({ kind: "marker", key: row.timeline_id,
132
+ row, at: row.at, notice: row.body.notice, text: noticeText(row.body.notice), tone: "plain" });
133
+ }
134
+ }
135
+ }
136
+ flushPrompts();
137
+ for (const segment of [...part.before, ...part.after]) {
138
+ if (segment.kind === "prose") {
139
+ boundary([segment.row]);
140
+ flush();
141
+ blocks.push({ kind: "reply", key: segment.key, segment,
142
+ head: headed.has(part.turn.key) ? null : part.turn.head, at: segment.at });
143
+ headed.add(part.turn.key);
144
+ firstContent = false;
145
+ }
146
+ else if (segment.kind === "ledger") {
147
+ for (const member of segment.members)
148
+ secondary(member.kind === "line"
149
+ ? { kind: "tool", key: member.key, line: member.line } : member);
150
+ }
151
+ else
152
+ secondary(segment);
153
+ }
154
+ }
155
+ flush();
156
+ return { sitting, blocks };
157
+ });
158
+ }
159
+ export function summarizeActivity(items) {
160
+ const lines = items.flatMap(item => item.kind === "tool" ? [item.line] : []);
161
+ const toolSummary = runSummary(lines);
162
+ const counts = new Map();
163
+ let failed = toolSummary.failed;
164
+ let interrupted = 0;
165
+ let cancelled = 0;
166
+ const runningRows = [];
167
+ const count = (name) => counts.set(name, (counts.get(name) ?? 0) + 1);
168
+ for (const item of items) {
169
+ const row = activityRows(item)[0];
170
+ if (item.kind === "tool") {
171
+ if (item.line.state === "running")
172
+ runningRows.push(...item.line.rows);
173
+ interrupted += item.line.rows.filter(row => row.body.type === "tool_use" && row.body.tool.status.value === "interrupted").length;
174
+ cancelled += item.line.rows.filter(row => row.body.type === "tool_use" && row.body.tool.status.value === "cancelled").length;
175
+ continue;
176
+ }
177
+ if (row.body.type === "collaboration") {
178
+ const event = row.body.event;
179
+ count(event.kind === "report" ? "report" : event.kind === "assignment" ? "assignment" :
180
+ event.kind !== "message" ? "team update" : event.channel === "peer" ? "peer message" :
181
+ event.channel === "coordinator" ? "coordinator follow-up" : "team message");
182
+ if (event.status === "failed")
183
+ failed += 1;
184
+ }
185
+ else if (item.kind === "thinking")
186
+ count("thought");
187
+ else if (item.kind === "prompt" && item.prompt.fromParent)
188
+ count("assignment");
189
+ else
190
+ count("context event");
191
+ if (item.kind === "marker") {
192
+ if (item.tone === "failed")
193
+ failed += 1;
194
+ if (item.notice.type === "async_task") {
195
+ if (["running", "pending"].includes(item.notice.status))
196
+ runningRows.push(item.row);
197
+ if (item.notice.status === "interrupted")
198
+ interrupted += 1;
199
+ if (item.notice.status === "cancelled")
200
+ cancelled += 1;
201
+ }
202
+ }
203
+ }
204
+ const nouns = toolSummary.nouns.map(noun => ({ ...noun, key: noun.family }));
205
+ for (const [name, total] of counts)
206
+ nouns.push({ key: name, text: `${total} ${name}${total === 1 ? "" : "s"}`, names: [], more: 0 });
207
+ const stamps = items.flatMap(activityRows).map(eventAt).filter((at) => at !== null);
208
+ return { nouns, failed, interrupted, cancelled, runningRows, firstAt: stamps[0] ?? null, lastAt: stamps.at(-1) ?? null };
209
+ }
@@ -0,0 +1,23 @@
1
+ import type { AssetRef } from "@vibefield/rosetta-protocol";
2
+ import type { AttachmentFact } from "../../lib/transcript/index.js";
3
+ import type { AssetSource } from "../../ports.js";
4
+ import type { FileHandle, FileSource } from "../file-viewer/index.js";
5
+ import type { ImageResource } from "../file-viewer/types.js";
6
+ /** Reads one stored member's bytes. */
7
+ export type AssetReader = (asset: AssetRef, signal: AbortSignal) => Promise<Uint8Array>;
8
+ export interface AttachmentReader {
9
+ /** The address of bytes the daemon kept, never a provider-authored path. */
10
+ assetUrl(fact: AttachmentFact): string | null;
11
+ imageResource(fact: AttachmentFact): ImageResource | null;
12
+ /** A stored transcript asset as the generic file viewer understands it. */
13
+ handleFor(fact: AttachmentFact): FileHandle | null;
14
+ canOpen(fact: AttachmentFact): boolean;
15
+ /** Stable by construction: `useFileContent` treats source identity as a read. */
16
+ readonly fileSource: FileSource;
17
+ readonly readAsset: AssetReader;
18
+ }
19
+ export declare function attachmentViewerName(fact: AttachmentFact): string;
20
+ export declare function createAttachmentReader(assets: AssetSource, readAsset: AssetReader): AttachmentReader;
21
+ /** The attachment reader for the document being read here: the host's
22
+ * addresses, and bytes through the reading session's client. */
23
+ export declare function useAttachmentReader(): AttachmentReader;
@@ -0,0 +1,103 @@
1
+ // Transcript attachments through the room's existing file-viewer seam.
2
+ //
3
+ // The viewer deliberately knows neither the daemon nor the transcript. This
4
+ // adapter turns a canonical content-addressed asset into the same `FileHandle`
5
+ // + `FileSource` pair the worktree supplies, so thumbnails and inline image
6
+ // markers open the established image view instead of navigating the page.
7
+ // Addresses come from the host's asset source; bytes ride the reading
8
+ // session's client.
9
+ import { useMemo } from "react";
10
+ import { useReadingSession, useRoom } from "../../room-context.js";
11
+ import { resolveKind } from "../file-viewer/index.js";
12
+ import { isOptimizedImageAsset } from "../../lib/image-media.js";
13
+ const EXTENSION_BY_MEDIA_TYPE = new Map([
14
+ ["image/png", "png"],
15
+ ["image/jpeg", "jpg"],
16
+ ["image/jpg", "jpg"],
17
+ ["image/gif", "gif"],
18
+ ["image/webp", "webp"],
19
+ ["image/avif", "avif"],
20
+ ["image/bmp", "bmp"],
21
+ ["image/x-icon", "ico"],
22
+ ["image/apng", "apng"],
23
+ ["image/svg+xml", "svg"],
24
+ ]);
25
+ export function attachmentViewerName(fact) {
26
+ const source = fact.ref?.source;
27
+ const base = fact.name?.trim() ||
28
+ fact.ref?.label?.trim() ||
29
+ "Image";
30
+ const kind = resolveKind(base).viewer.id;
31
+ if (kind === "image" || kind === "svg")
32
+ return base;
33
+ const mediaType = fact.mediaType ?? (source?.type === "asset" ? source.asset.media_type : null);
34
+ const extension = mediaType === null ? undefined : EXTENSION_BY_MEDIA_TYPE.get(mediaType.toLowerCase());
35
+ return extension === undefined ? base : `${base}.${extension}`;
36
+ }
37
+ /** One stored image as the viewer asks for it: by rendition, through the host. */
38
+ function imageOf(assets, asset, width, height) {
39
+ return { key: asset.digest, url: (rendition) => assets.imageAssetUrl(asset, rendition), width, height };
40
+ }
41
+ export function createAttachmentReader(assets, readAsset) {
42
+ function assetUrl(fact) {
43
+ const source = fact.ref?.source;
44
+ if (source === undefined || source === null || source.type !== "asset")
45
+ return null;
46
+ if (fact.kind === "image" && !isOptimizedImageAsset(source.asset))
47
+ return null;
48
+ return assets.attachmentAssetUrl(source.asset);
49
+ }
50
+ function imageResource(fact) {
51
+ const source = fact.ref?.source;
52
+ const asset = source?.type === "asset" && assetUrl(fact) !== null ? source.asset : null;
53
+ if (!asset || !isOptimizedImageAsset(asset))
54
+ return null;
55
+ return imageOf(assets, asset, fact.ref?.dimensions?.width, fact.ref?.dimensions?.height);
56
+ }
57
+ function handleFor(fact) {
58
+ const source = fact.ref?.source;
59
+ const url = assetUrl(fact);
60
+ if (source === undefined || source === null || source.type !== "asset" || url === null)
61
+ return null;
62
+ return {
63
+ key: `attachment:${source.asset.digest}`,
64
+ name: attachmentViewerName(fact),
65
+ path: null,
66
+ size: fact.byteLen ?? source.asset.byte_len,
67
+ ref: source.asset,
68
+ };
69
+ }
70
+ const fileSource = {
71
+ image(handle) {
72
+ const asset = handle.ref;
73
+ if (!asset || !isOptimizedImageAsset(asset))
74
+ return null;
75
+ return imageOf(assets, asset);
76
+ },
77
+ async read(handle, signal) {
78
+ const asset = handle.ref;
79
+ if (!asset || !isOptimizedImageAsset(asset))
80
+ throw new Error("that attachment is no longer available");
81
+ return readAsset(asset, signal);
82
+ },
83
+ };
84
+ return {
85
+ assetUrl,
86
+ imageResource,
87
+ handleFor,
88
+ canOpen: (fact) => fact.kind === "image" && handleFor(fact) !== null,
89
+ fileSource,
90
+ readAsset,
91
+ };
92
+ }
93
+ /** The attachment reader for the document being read here: the host's
94
+ * addresses, and bytes through the reading session's client. */
95
+ export function useAttachmentReader() {
96
+ const { assets, sessions } = useRoom();
97
+ const sessionId = useReadingSession();
98
+ return useMemo(() => createAttachmentReader(assets, (asset, signal) => {
99
+ if (sessionId === null)
100
+ return Promise.reject(new Error("No session is open to read that attachment"));
101
+ return sessions.run(sessionId, (client) => client.readAsset(asset, signal));
102
+ }), [assets, sessions, sessionId]);
103
+ }
@@ -0,0 +1,12 @@
1
+ import type { AttachmentFact } from "../../lib/transcript/index.js";
2
+ import type { FileSource } from "../file-viewer/index.js";
3
+ import type { GalleryImage } from "../file-viewer/ImageGalleryDialog.js";
4
+ import type { AttachmentReader } from "./attachment-file-source.js";
5
+ export type AttachmentOpener = (fact: AttachmentFact, row?: readonly AttachmentFact[]) => void;
6
+ /** Snapshot just the row that was opened, including distinct uses of one asset. */
7
+ export declare function attachmentGallery(reader: AttachmentReader, fact: AttachmentFact, row?: readonly AttachmentFact[]): {
8
+ images: GalleryImage[];
9
+ initialKey: string;
10
+ };
11
+ /** Transcript galleries read only optimized members committed during ingestion. */
12
+ export declare function createAttachmentGallerySource(reader: AttachmentReader): FileSource;
@@ -0,0 +1,33 @@
1
+ import { attachmentViewerName } from "./attachment-file-source.js";
2
+ /** Snapshot just the row that was opened, including distinct uses of one asset. */
3
+ export function attachmentGallery(reader, fact, row = [fact]) {
4
+ const images = row.filter(item => item.kind === "image").map((item, index) => {
5
+ const image = item.key === fact.key ? fact : item;
6
+ const asset = image.ref?.source.type === "asset" ? image.ref.source.asset : null;
7
+ return {
8
+ key: image.key,
9
+ label: image.ref?.label ?? `Image ${index + 1}`,
10
+ handle: reader.canOpen(image) ? {
11
+ key: image.key, name: attachmentViewerName(image),
12
+ path: null,
13
+ size: image.byteLen ?? asset?.byte_len ?? -1,
14
+ ref: image,
15
+ } : null,
16
+ };
17
+ });
18
+ return { images, initialKey: fact.key };
19
+ }
20
+ /** Transcript galleries read only optimized members committed during ingestion. */
21
+ export function createAttachmentGallerySource(reader) {
22
+ return {
23
+ image(handle) { return reader.imageResource(handle.ref); },
24
+ async read(handle, signal) {
25
+ const fact = handle.ref;
26
+ if (signal.aborted)
27
+ throw new DOMException("Image read cancelled", "AbortError");
28
+ if (reader.canOpen(fact) && fact.ref?.source.type === "asset")
29
+ return reader.readAsset(fact.ref.source.asset, signal);
30
+ throw new Error("Image data was not recorded");
31
+ },
32
+ };
33
+ }
@@ -0,0 +1,50 @@
1
+ import type { TaskSnapshotItem } from "@vibefield/rosetta-protocol";
2
+ import type { CommandFact, Diffstat, PathFact, TaskChange } from "../../lib/transcript/index.js";
3
+ import type { CanonicalDocument, CollaboratorRef, DisplayField, FileDelta, FindingItem, UserAnswer, UserQuestion } from "../../lib/transcript/protocol.js";
4
+ /** A bounded list is a list; an unbounded one is a scroll trap in the measure. */
5
+ export declare const LIST_CAP = 24;
6
+ export declare function PathList({ paths, total, onOpenPath, }: {
7
+ readonly paths: readonly PathFact[];
8
+ readonly total: number;
9
+ readonly onOpenPath?: ((path: PathFact) => void) | undefined;
10
+ }): import("react").JSX.Element;
11
+ /** A task action opens to a three-row glimpse immediately after that action.
12
+ * The changed row stays last; the reader can disclose the complete board. */
13
+ export declare function Tasks({ tasks, total, changedTaskId, change, }: {
14
+ readonly tasks: readonly TaskSnapshotItem[];
15
+ readonly total: number;
16
+ readonly changedTaskId: string | null;
17
+ readonly change: TaskChange | null;
18
+ }): import("react").JSX.Element;
19
+ export declare function DiffLines({ delta }: {
20
+ readonly delta: FileDelta;
21
+ }): import("react").JSX.Element;
22
+ export declare function DiffDetail({ deltas, diffstat, }: {
23
+ readonly deltas: readonly FileDelta[];
24
+ readonly diffstat: Diffstat;
25
+ }): import("react").JSX.Element;
26
+ export declare function CommandList({ commands, code, }: {
27
+ readonly commands: readonly CommandFact[];
28
+ readonly code: boolean;
29
+ }): import("react").JSX.Element;
30
+ /** Conversation, so it opens by default: the questions with their options and
31
+ * the answer marked in primary ink. */
32
+ export declare function Questions({ questions, answers, }: {
33
+ readonly questions: readonly UserQuestion[];
34
+ readonly answers: readonly UserAnswer[];
35
+ }): import("react").JSX.Element;
36
+ export declare function Findings({ findings, total }: {
37
+ readonly findings: readonly FindingItem[];
38
+ readonly total: number;
39
+ }): import("react").JSX.Element;
40
+ export declare function Fields({ fields }: {
41
+ readonly fields: readonly DisplayField[];
42
+ }): import("react").JSX.Element | null;
43
+ export declare function Document({ document }: {
44
+ readonly document: CanonicalDocument;
45
+ }): import("react").JSX.Element;
46
+ export declare function Participants({ participants, total, body, }: {
47
+ readonly participants: readonly CollaboratorRef[];
48
+ readonly total: number;
49
+ readonly body: string | null;
50
+ }): import("react").JSX.Element;