@vibefield/rosetta-room 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +247 -2
- package/dist/HistoryRoom.d.ts +98 -0
- package/dist/HistoryRoom.js +440 -0
- package/dist/TranscriptReader.d.ts +22 -0
- package/dist/TranscriptReader.js +72 -0
- package/dist/components/ColdStart.d.ts +4 -0
- package/dist/components/ColdStart.js +5 -0
- package/dist/components/FilterChips.d.ts +4 -0
- package/dist/components/FilterChips.js +5 -0
- package/dist/components/HostAct.d.ts +9 -0
- package/dist/components/HostAct.js +16 -0
- package/dist/components/HostMenu.d.ts +41 -0
- package/dist/components/HostMenu.js +216 -0
- package/dist/components/IngestStatus.d.ts +4 -0
- package/dist/components/IngestStatus.js +20 -0
- package/dist/components/ListActivityNotice.d.ts +5 -0
- package/dist/components/ListActivityNotice.js +4 -0
- package/dist/components/ListSections.d.ts +20 -0
- package/dist/components/ListSections.js +39 -0
- package/dist/components/RenameHeading.d.ts +9 -0
- package/dist/components/RenameHeading.js +75 -0
- package/dist/components/SearchStrip.d.ts +5 -0
- package/dist/components/SearchStrip.js +8 -0
- package/dist/components/SummaryMetrics.d.ts +13 -0
- package/dist/components/SummaryMetrics.js +9 -0
- package/dist/components/SummaryPanels.d.ts +35 -0
- package/dist/components/SummaryPanels.js +117 -0
- package/dist/components/Transcript.d.ts +46 -0
- package/dist/components/Transcript.js +358 -0
- package/dist/components/charts/ActivityChartDetail.d.ts +13 -0
- package/dist/components/charts/ActivityChartDetail.js +78 -0
- package/dist/components/charts/CalendarHeatmap.d.ts +16 -0
- package/dist/components/charts/CalendarHeatmap.js +55 -0
- package/dist/components/charts/DayActivityChart.d.ts +8 -0
- package/dist/components/charts/DayActivityChart.js +71 -0
- package/dist/components/charts/ModelsChartDetail.d.ts +7 -0
- package/dist/components/charts/ModelsChartDetail.js +19 -0
- package/dist/components/charts/ProjectChartDialog.d.ts +19 -0
- package/dist/components/charts/ProjectChartDialog.js +39 -0
- package/dist/components/charts/Streamgraph.d.ts +16 -0
- package/dist/components/charts/Streamgraph.js +94 -0
- package/dist/components/charts/Treemap.d.ts +26 -0
- package/dist/components/charts/Treemap.js +81 -0
- package/dist/components/charts/index.d.ts +9 -0
- package/dist/components/charts/index.js +4 -0
- package/dist/components/charts/streamgraph-layout.d.ts +23 -0
- package/dist/components/charts/streamgraph-layout.js +114 -0
- package/dist/components/charts/treemap-layout.d.ts +32 -0
- package/dist/components/charts/treemap-layout.js +140 -0
- package/dist/components/charts/types.d.ts +65 -0
- package/dist/components/charts/types.js +8 -0
- package/dist/components/file-viewer/FileViewerBrowsers.d.ts +10 -0
- package/dist/components/file-viewer/FileViewerBrowsers.js +65 -0
- package/dist/components/file-viewer/FileViewerDialog.d.ts +33 -0
- package/dist/components/file-viewer/FileViewerDialog.js +82 -0
- package/dist/components/file-viewer/FileViewerHeader.d.ts +26 -0
- package/dist/components/file-viewer/FileViewerHeader.js +17 -0
- package/dist/components/file-viewer/ImageGalleryDialog.d.ts +14 -0
- package/dist/components/file-viewer/ImageGalleryDialog.js +98 -0
- package/dist/components/file-viewer/diff/index.d.ts +2 -0
- package/dist/components/file-viewer/diff/index.js +2 -0
- package/dist/components/file-viewer/diff/parse.d.ts +2 -0
- package/dist/components/file-viewer/diff/parse.js +164 -0
- package/dist/components/file-viewer/diff/types.d.ts +44 -0
- package/dist/components/file-viewer/diff/types.js +7 -0
- package/dist/components/file-viewer/gallery-source.d.ts +11 -0
- package/dist/components/file-viewer/gallery-source.js +75 -0
- package/dist/components/file-viewer/image-resource.d.ts +19 -0
- package/dist/components/file-viewer/image-resource.js +60 -0
- package/dist/components/file-viewer/index.d.ts +5 -0
- package/dist/components/file-viewer/index.js +8 -0
- package/dist/components/file-viewer/markdown/blocks.d.ts +2 -0
- package/dist/components/file-viewer/markdown/blocks.js +277 -0
- package/dist/components/file-viewer/markdown/index.d.ts +4 -0
- package/dist/components/file-viewer/markdown/index.js +35 -0
- package/dist/components/file-viewer/markdown/inline.d.ts +10 -0
- package/dist/components/file-viewer/markdown/inline.js +178 -0
- package/dist/components/file-viewer/markdown/render.d.ts +9 -0
- package/dist/components/file-viewer/markdown/render.js +78 -0
- package/dist/components/file-viewer/markdown/types.d.ts +57 -0
- package/dist/components/file-viewer/markdown/types.js +11 -0
- package/dist/components/file-viewer/minimap/CodeMinimap.d.ts +10 -0
- package/dist/components/file-viewer/minimap/CodeMinimap.js +296 -0
- package/dist/components/file-viewer/minimap/layout.d.ts +60 -0
- package/dist/components/file-viewer/minimap/layout.js +117 -0
- package/dist/components/file-viewer/minimap/palette.d.ts +2 -0
- package/dist/components/file-viewer/minimap/palette.js +73 -0
- package/dist/components/file-viewer/minimap/raster.d.ts +19 -0
- package/dist/components/file-viewer/minimap/raster.js +122 -0
- package/dist/components/file-viewer/registry.d.ts +25 -0
- package/dist/components/file-viewer/registry.js +182 -0
- package/dist/components/file-viewer/syntax/grammars.d.ts +16 -0
- package/dist/components/file-viewer/syntax/grammars.js +221 -0
- package/dist/components/file-viewer/syntax/index.d.ts +8 -0
- package/dist/components/file-viewer/syntax/index.js +9 -0
- package/dist/components/file-viewer/syntax/languages.d.ts +14 -0
- package/dist/components/file-viewer/syntax/languages.js +115 -0
- package/dist/components/file-viewer/syntax/tokenize-config.d.ts +2 -0
- package/dist/components/file-viewer/syntax/tokenize-config.js +132 -0
- package/dist/components/file-viewer/syntax/tokenize-css.d.ts +2 -0
- package/dist/components/file-viewer/syntax/tokenize-css.js +169 -0
- package/dist/components/file-viewer/syntax/tokenize-markup.d.ts +2 -0
- package/dist/components/file-viewer/syntax/tokenize-markup.js +124 -0
- package/dist/components/file-viewer/syntax/tokenize.d.ts +9 -0
- package/dist/components/file-viewer/syntax/tokenize.js +289 -0
- package/dist/components/file-viewer/syntax/types.d.ts +74 -0
- package/dist/components/file-viewer/syntax/types.js +13 -0
- package/dist/components/file-viewer/types.d.ts +111 -0
- package/dist/components/file-viewer/types.js +8 -0
- package/dist/components/file-viewer/use-file-content.d.ts +26 -0
- package/dist/components/file-viewer/use-file-content.js +144 -0
- package/dist/components/file-viewer/views/BinaryView.d.ts +2 -0
- package/dist/components/file-viewer/views/BinaryView.js +34 -0
- package/dist/components/file-viewer/views/CodeView.d.ts +2 -0
- package/dist/components/file-viewer/views/CodeView.js +46 -0
- package/dist/components/file-viewer/views/DiffBody.d.ts +7 -0
- package/dist/components/file-viewer/views/DiffBody.js +77 -0
- package/dist/components/file-viewer/views/DiffView.d.ts +2 -0
- package/dist/components/file-viewer/views/DiffView.js +11 -0
- package/dist/components/file-viewer/views/ImageView.d.ts +9 -0
- package/dist/components/file-viewer/views/ImageView.js +28 -0
- package/dist/components/file-viewer/views/MarkdownView.d.ts +9 -0
- package/dist/components/file-viewer/views/MarkdownView.js +20 -0
- package/dist/components/file-viewer/views/SvgView.d.ts +9 -0
- package/dist/components/file-viewer/views/SvgView.js +10 -0
- package/dist/components/git/ChangeTree.d.ts +20 -0
- package/dist/components/git/ChangeTree.js +35 -0
- package/dist/components/git/CommitViewer.d.ts +12 -0
- package/dist/components/git/CommitViewer.js +85 -0
- package/dist/components/git/GitChanges.d.ts +17 -0
- package/dist/components/git/GitChanges.js +70 -0
- package/dist/components/git/GitHistory.d.ts +9 -0
- package/dist/components/git/GitHistory.js +58 -0
- package/dist/components/git/co-author.d.ts +14 -0
- package/dist/components/git/co-author.js +55 -0
- package/dist/components/git/git-file-source.d.ts +18 -0
- package/dist/components/git/git-file-source.js +53 -0
- package/dist/components/git/git-host.d.ts +24 -0
- package/dist/components/git/git-host.js +130 -0
- package/dist/components/git/index.d.ts +10 -0
- package/dist/components/git/index.js +12 -0
- package/dist/components/git/path-tree.d.ts +23 -0
- package/dist/components/git/path-tree.js +73 -0
- package/dist/components/git/session-files.d.ts +9 -0
- package/dist/components/git/session-files.js +50 -0
- package/dist/components/git/types.d.ts +92 -0
- package/dist/components/git/types.js +9 -0
- package/dist/components/projects/ProjectActivitySparkline.d.ts +6 -0
- package/dist/components/projects/ProjectActivitySparkline.js +12 -0
- package/dist/components/projects/ProjectList.d.ts +25 -0
- package/dist/components/projects/ProjectList.js +43 -0
- package/dist/components/projects/ProjectListItem.d.ts +19 -0
- package/dist/components/projects/ProjectListItem.js +78 -0
- package/dist/components/projects/ProjectsColumn.d.ts +19 -0
- package/dist/components/projects/ProjectsColumn.js +36 -0
- package/dist/components/projects/index.d.ts +8 -0
- package/dist/components/projects/index.js +4 -0
- package/dist/components/search/MatchStepper.d.ts +9 -0
- package/dist/components/search/MatchStepper.js +14 -0
- package/dist/components/search/SearchLauncher.d.ts +12 -0
- package/dist/components/search/SearchLauncher.js +13 -0
- package/dist/components/search/SearchSheet.d.ts +29 -0
- package/dist/components/search/SearchSheet.js +230 -0
- package/dist/components/search/index.d.ts +8 -0
- package/dist/components/search/index.js +4 -0
- package/dist/components/search/shortcut.d.ts +25 -0
- package/dist/components/search/shortcut.js +32 -0
- package/dist/components/sessions/SessionList.d.ts +24 -0
- package/dist/components/sessions/SessionList.js +76 -0
- package/dist/components/sessions/SessionListItem.d.ts +13 -0
- package/dist/components/sessions/SessionListItem.js +58 -0
- package/dist/components/sessions/SessionsColumn.d.ts +26 -0
- package/dist/components/sessions/SessionsColumn.js +32 -0
- package/dist/components/sessions/index.d.ts +9 -0
- package/dist/components/sessions/index.js +4 -0
- package/dist/components/sessions/session-display.d.ts +8 -0
- package/dist/components/sessions/session-display.js +18 -0
- package/dist/components/sessions/types.d.ts +7 -0
- package/dist/components/sessions/types.js +1 -0
- package/dist/components/transcript/Activity.d.ts +45 -0
- package/dist/components/transcript/Activity.js +75 -0
- package/dist/components/transcript/Anchor.d.ts +8 -0
- package/dist/components/transcript/Anchor.js +23 -0
- package/dist/components/transcript/Attachments.d.ts +21 -0
- package/dist/components/transcript/Attachments.js +138 -0
- package/dist/components/transcript/AuthoredMessage.d.ts +19 -0
- package/dist/components/transcript/AuthoredMessage.js +17 -0
- package/dist/components/transcript/Compaction.d.ts +9 -0
- package/dist/components/transcript/Compaction.js +50 -0
- package/dist/components/transcript/DayPill.d.ts +38 -0
- package/dist/components/transcript/DayPill.js +68 -0
- package/dist/components/transcript/Document.d.ts +32 -0
- package/dist/components/transcript/Document.js +503 -0
- package/dist/components/transcript/Favicon.d.ts +32 -0
- package/dist/components/transcript/Favicon.js +71 -0
- package/dist/components/transcript/HeadOfDocument.d.ts +19 -0
- package/dist/components/transcript/HeadOfDocument.js +44 -0
- package/dist/components/transcript/Ledger.d.ts +53 -0
- package/dist/components/transcript/Ledger.js +182 -0
- package/dist/components/transcript/LineDetail.d.ts +24 -0
- package/dist/components/transcript/LineDetail.js +81 -0
- package/dist/components/transcript/Marker.d.ts +33 -0
- package/dist/components/transcript/Marker.js +21 -0
- package/dist/components/transcript/MessagePreview.d.ts +12 -0
- package/dist/components/transcript/MessagePreview.js +58 -0
- package/dist/components/transcript/Prompt.d.ts +20 -0
- package/dist/components/transcript/Prompt.js +55 -0
- package/dist/components/transcript/Prose.d.ts +19 -0
- package/dist/components/transcript/Prose.js +109 -0
- package/dist/components/transcript/ReceiptPill.d.ts +10 -0
- package/dist/components/transcript/ReceiptPill.js +10 -0
- package/dist/components/transcript/ResponseHead.d.ts +9 -0
- package/dist/components/transcript/ResponseHead.js +36 -0
- package/dist/components/transcript/Subthread.d.ts +19 -0
- package/dist/components/transcript/Subthread.js +96 -0
- package/dist/components/transcript/Team.d.ts +53 -0
- package/dist/components/transcript/Team.js +185 -0
- package/dist/components/transcript/Thinking.d.ts +24 -0
- package/dist/components/transcript/Thinking.js +50 -0
- package/dist/components/transcript/TimelineMeta.d.ts +9 -0
- package/dist/components/transcript/TimelineMeta.js +161 -0
- package/dist/components/transcript/TranscriptLoading.d.ts +10 -0
- package/dist/components/transcript/TranscriptLoading.js +10 -0
- package/dist/components/transcript/WebDetail.d.ts +8 -0
- package/dist/components/transcript/WebDetail.js +29 -0
- package/dist/components/transcript/Workflow.d.ts +12 -0
- package/dist/components/transcript/Workflow.js +208 -0
- package/dist/components/transcript/activity-plan.d.ts +84 -0
- package/dist/components/transcript/activity-plan.js +209 -0
- package/dist/components/transcript/attachment-file-source.d.ts +23 -0
- package/dist/components/transcript/attachment-file-source.js +103 -0
- package/dist/components/transcript/attachment-gallery.d.ts +12 -0
- package/dist/components/transcript/attachment-gallery.js +33 -0
- package/dist/components/transcript/detail-parts.d.ts +50 -0
- package/dist/components/transcript/detail-parts.js +295 -0
- package/dist/components/transcript/disclosure-state.d.ts +6 -0
- package/dist/components/transcript/disclosure-state.js +32 -0
- package/dist/components/transcript/disclosure-store.d.ts +8 -0
- package/dist/components/transcript/disclosure-store.js +31 -0
- package/dist/components/transcript/document-model.d.ts +15 -0
- package/dist/components/transcript/document-model.js +104 -0
- package/dist/components/transcript/document-plan.d.ts +28 -0
- package/dist/components/transcript/document-plan.js +145 -0
- package/dist/components/transcript/fold-preference.d.ts +17 -0
- package/dist/components/transcript/fold-preference.js +63 -0
- package/dist/components/transcript/glyphs.d.ts +15 -0
- package/dist/components/transcript/glyphs.js +47 -0
- package/dist/components/transcript/index.d.ts +23 -0
- package/dist/components/transcript/index.js +22 -0
- package/dist/components/transcript/message-file-source.d.ts +15 -0
- package/dist/components/transcript/message-file-source.js +31 -0
- package/dist/components/transcript/message-preview.d.ts +9 -0
- package/dist/components/transcript/message-preview.js +46 -0
- package/dist/components/transcript/read-file-source.d.ts +7 -0
- package/dist/components/transcript/read-file-source.js +34 -0
- package/dist/components/transcript/reader-context.d.ts +13 -0
- package/dist/components/transcript/reader-context.js +55 -0
- package/dist/components/transcript/reading-identity.d.ts +2 -0
- package/dist/components/transcript/reading-identity.js +52 -0
- package/dist/components/transcript/scroll-to-row.d.ts +2 -0
- package/dist/components/transcript/scroll-to-row.js +13 -0
- package/dist/components/transcript/thread-index.d.ts +14 -0
- package/dist/components/transcript/thread-index.js +40 -0
- package/dist/components/transcript/thread-navigation.d.ts +5 -0
- package/dist/components/transcript/thread-navigation.js +3 -0
- package/dist/components/transcript/timeline-meta-file-source.d.ts +6 -0
- package/dist/components/transcript/timeline-meta-file-source.js +55 -0
- package/dist/components/transcript/timeline-meta-state.d.ts +12 -0
- package/dist/components/transcript/timeline-meta-state.js +24 -0
- package/dist/components/ui/ColumnHeading.d.ts +27 -0
- package/dist/components/ui/ColumnHeading.js +7 -0
- package/dist/components/ui/ConfirmDialog.d.ts +14 -0
- package/dist/components/ui/ConfirmDialog.js +22 -0
- package/dist/components/ui/DialogShell.d.ts +18 -0
- package/dist/components/ui/DialogShell.js +40 -0
- package/dist/components/ui/EmptyState.d.ts +10 -0
- package/dist/components/ui/EmptyState.js +6 -0
- package/dist/components/ui/ListSummaryHeader.d.ts +9 -0
- package/dist/components/ui/ListSummaryHeader.js +6 -0
- package/dist/components/ui/ListToolbar.d.ts +6 -0
- package/dist/components/ui/ListToolbar.js +5 -0
- package/dist/components/ui/ResultGroupHeader.d.ts +9 -0
- package/dist/components/ui/ResultGroupHeader.js +5 -0
- package/dist/components/ui/SegmentedControl.d.ts +16 -0
- package/dist/components/ui/SegmentedControl.js +9 -0
- package/dist/components/ui/SummaryMetric.d.ts +13 -0
- package/dist/components/ui/SummaryMetric.js +10 -0
- package/dist/components/ui/Veil.d.ts +7 -0
- package/dist/components/ui/Veil.js +5 -0
- package/dist/components/ui/index.d.ts +20 -0
- package/dist/components/ui/index.js +10 -0
- package/dist/components/worktree/WorktreeColumn.d.ts +22 -0
- package/dist/components/worktree/WorktreeColumn.js +170 -0
- package/dist/components/worktree/WorktreeFileTree.d.ts +19 -0
- package/dist/components/worktree/WorktreeFileTree.js +60 -0
- package/dist/components/worktree/WorktreeHeader.d.ts +32 -0
- package/dist/components/worktree/WorktreeHeader.js +81 -0
- package/dist/components/worktree/WorktreeList.d.ts +8 -0
- package/dist/components/worktree/WorktreeList.js +12 -0
- package/dist/components/worktree/index.d.ts +12 -0
- package/dist/components/worktree/index.js +7 -0
- package/dist/components/worktree/types.d.ts +17 -0
- package/dist/components/worktree/types.js +3 -0
- package/dist/components/worktree/use-worktree-guest.d.ts +21 -0
- package/dist/components/worktree/use-worktree-guest.js +92 -0
- package/dist/components/worktree/worktree-file-commands.d.ts +19 -0
- package/dist/components/worktree/worktree-file-commands.js +112 -0
- package/dist/components/worktree/worktree-file-source.d.ts +15 -0
- package/dist/components/worktree/worktree-file-source.js +75 -0
- package/dist/components/worktree/worktree-host.d.ts +31 -0
- package/dist/components/worktree/worktree-host.js +242 -0
- package/dist/fixtures/index.d.ts +24 -0
- package/dist/fixtures/index.js +292 -0
- package/dist/host-inputs.d.ts +231 -0
- package/dist/host-inputs.js +35 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +14 -0
- package/dist/lib/activity-details.d.ts +23 -0
- package/dist/lib/activity-details.js +78 -0
- package/dist/lib/activity-order.d.ts +32 -0
- package/dist/lib/activity-order.js +86 -0
- package/dist/lib/agent-paths.d.ts +6 -0
- package/dist/lib/agent-paths.js +19 -0
- package/dist/lib/agents.d.ts +15 -0
- package/dist/lib/agents.js +60 -0
- package/dist/lib/catalog-status.d.ts +3 -0
- package/dist/lib/catalog-status.js +10 -0
- package/dist/lib/chart-data.d.ts +14 -0
- package/dist/lib/chart-data.js +151 -0
- package/dist/lib/day-activity.d.ts +21 -0
- package/dist/lib/day-activity.js +56 -0
- package/dist/lib/format.d.ts +24 -0
- package/dist/lib/format.js +116 -0
- package/dist/lib/hooks.d.ts +118 -0
- package/dist/lib/hooks.js +608 -0
- package/dist/lib/icons.d.ts +21 -0
- package/dist/lib/icons.js +49 -0
- package/dist/lib/image-media.d.ts +6 -0
- package/dist/lib/image-media.js +30 -0
- package/dist/lib/ingest-activity.d.ts +50 -0
- package/dist/lib/ingest-activity.js +151 -0
- package/dist/lib/ingest.d.ts +25 -0
- package/dist/lib/ingest.js +70 -0
- package/dist/lib/model-labels.d.ts +5 -0
- package/dist/lib/model-labels.js +28 -0
- package/dist/lib/model.d.ts +73 -0
- package/dist/lib/model.js +141 -0
- package/dist/lib/motion.d.ts +13 -0
- package/dist/lib/motion.js +80 -0
- package/dist/lib/room-storage.d.ts +13 -0
- package/dist/lib/room-storage.js +40 -0
- package/dist/lib/search-results.d.ts +27 -0
- package/dist/lib/search-results.js +83 -0
- package/dist/lib/search-sheet.d.ts +119 -0
- package/dist/lib/search-sheet.js +282 -0
- package/dist/lib/sections.d.ts +19 -0
- package/dist/lib/sections.js +36 -0
- package/dist/lib/session-activity.d.ts +5 -0
- package/dist/lib/session-activity.js +15 -0
- package/dist/lib/session-leases.d.ts +15 -0
- package/dist/lib/session-leases.js +61 -0
- package/dist/lib/spend.d.ts +42 -0
- package/dist/lib/spend.js +112 -0
- package/dist/lib/tint.d.ts +9 -0
- package/dist/lib/tint.js +53 -0
- package/dist/lib/transcript/collaboration.d.ts +97 -0
- package/dist/lib/transcript/collaboration.js +423 -0
- package/dist/lib/transcript/families.d.ts +212 -0
- package/dist/lib/transcript/families.js +906 -0
- package/dist/lib/transcript/favicons.d.ts +54 -0
- package/dist/lib/transcript/favicons.js +183 -0
- package/dist/lib/transcript/head-of-document.d.ts +27 -0
- package/dist/lib/transcript/head-of-document.js +274 -0
- package/dist/lib/transcript/head-state.d.ts +182 -0
- package/dist/lib/transcript/head-state.js +305 -0
- package/dist/lib/transcript/history-window.d.ts +13 -0
- package/dist/lib/transcript/history-window.js +52 -0
- package/dist/lib/transcript/images.d.ts +8 -0
- package/dist/lib/transcript/images.js +60 -0
- package/dist/lib/transcript/index.d.ts +15 -0
- package/dist/lib/transcript/index.js +8 -0
- package/dist/lib/transcript/ledger.d.ts +143 -0
- package/dist/lib/transcript/ledger.js +513 -0
- package/dist/lib/transcript/protocol.d.ts +23 -0
- package/dist/lib/transcript/protocol.js +1 -0
- package/dist/lib/transcript/sittings.d.ts +75 -0
- package/dist/lib/transcript/sittings.js +147 -0
- package/dist/lib/transcript/tail-scroll.d.ts +36 -0
- package/dist/lib/transcript/tail-scroll.js +167 -0
- package/dist/lib/transcript/tail-state.d.ts +17 -0
- package/dist/lib/transcript/tail-state.js +30 -0
- package/dist/lib/transcript/turns.d.ts +192 -0
- package/dist/lib/transcript/turns.js +576 -0
- package/dist/lib/transcript/use-transcript-opening.d.ts +12 -0
- package/dist/lib/transcript/use-transcript-opening.js +31 -0
- package/dist/lib/transcript/use-transcript-tail.d.ts +25 -0
- package/dist/lib/transcript/use-transcript-tail.js +158 -0
- package/dist/lib/transcript/vocabulary.d.ts +119 -0
- package/dist/lib/transcript/vocabulary.js +293 -0
- package/dist/lib/transcript/web-address.d.ts +6 -0
- package/dist/lib/transcript/web-address.js +18 -0
- package/dist/lib/transcript/workflow.d.ts +31 -0
- package/dist/lib/transcript/workflow.js +133 -0
- package/dist/lib/use-activity-order.d.ts +2 -0
- package/dist/lib/use-activity-order.js +23 -0
- package/dist/lib/use-day-usage.d.ts +8 -0
- package/dist/lib/use-day-usage.js +31 -0
- package/dist/lib/use-deferred-list-order.d.ts +26 -0
- package/dist/lib/use-deferred-list-order.js +142 -0
- package/dist/lib/use-ingest-activity.d.ts +2 -0
- package/dist/lib/use-ingest-activity.js +49 -0
- package/dist/lib/use-list-motion.d.ts +4 -0
- package/dist/lib/use-list-motion.js +67 -0
- package/dist/ports.d.ts +222 -0
- package/dist/ports.js +3 -0
- package/dist/room-context.d.ts +60 -0
- package/dist/room-context.js +87 -0
- package/dist/styles/activity-chart.css +127 -0
- package/dist/styles/attachments.css +29 -0
- package/dist/styles/favicon.css +73 -0
- package/dist/styles/history-room.css +18 -0
- package/dist/styles/host-inputs.css +250 -0
- package/dist/styles/image-gallery.css +30 -0
- package/dist/styles/ingest.css +51 -0
- package/dist/styles/message-preview.css +34 -0
- package/dist/styles/models-chart.css +66 -0
- package/dist/styles/project-chart.css +19 -0
- package/dist/styles/reader.css +33 -0
- package/dist/styles/room.css +1411 -0
- package/dist/styles/search.css +252 -0
- package/dist/styles/transcript-activity.css +70 -0
- package/dist/styles/transcript-head.css +220 -0
- package/dist/styles/transcript-loading.css +57 -0
- package/dist/styles/transcript.css +1226 -0
- package/package.json +61 -4
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { CanonicalText } from "@vibefield/rosetta-protocol";
|
|
3
|
+
import type { AttachmentFact } from "../../lib/transcript/index.js";
|
|
4
|
+
import type { AttachmentOpener } from "./attachment-gallery.js";
|
|
5
|
+
/** One reading of text and images, shared by prompts, replies and full messages. */
|
|
6
|
+
export declare function AuthoredMessage({ text, recordedText, attachments, messageKey, role, onReceipt, onOpenAttachment, preview, renderText, imagesOutside, title, matched }: {
|
|
7
|
+
readonly text: string | null;
|
|
8
|
+
readonly recordedText?: CanonicalText | null;
|
|
9
|
+
readonly attachments: readonly AttachmentFact[];
|
|
10
|
+
readonly messageKey: string;
|
|
11
|
+
readonly role: "user" | "agent";
|
|
12
|
+
readonly onReceipt: (text: string) => void;
|
|
13
|
+
readonly onOpenAttachment: AttachmentOpener;
|
|
14
|
+
readonly preview?: boolean;
|
|
15
|
+
readonly imagesOutside?: boolean;
|
|
16
|
+
readonly title?: string;
|
|
17
|
+
readonly matched?: boolean;
|
|
18
|
+
readonly renderText?: (content: ReactNode) => ReactNode;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { ActivityImagesContext, Attachments, useAttachmentActions } from "./Attachments.js";
|
|
4
|
+
import { MessagePreview } from "./MessagePreview.js";
|
|
5
|
+
import { Prose } from "./Prose.js";
|
|
6
|
+
/** One reading of text and images, shared by prompts, replies and full messages. */
|
|
7
|
+
export function AuthoredMessage({ text, recordedText, attachments, messageKey, role, onReceipt, onOpenAttachment, preview = true, renderText, imagesOutside = false, title, matched }) {
|
|
8
|
+
const actions = useAttachmentActions(onOpenAttachment, onReceipt, attachments);
|
|
9
|
+
const gathered = useContext(ActivityImagesContext);
|
|
10
|
+
const shared = imagesOutside ? gathered : null;
|
|
11
|
+
const open = (fact, row) => shared && fact.kind === "image" ? shared(fact) : actions.open(fact, row);
|
|
12
|
+
const prose = { text: text ?? "", imageAttachments: attachments, onOpenAttachment: open, onReceipt };
|
|
13
|
+
const content = (text !== null || recordedText?.type === "member") ? (preview
|
|
14
|
+
? _jsx(MessagePreview, { ...prose, messageKey: messageKey, role: role, recordedText: recordedText, title: title, matched: matched })
|
|
15
|
+
: _jsx(Prose, { ...prose })) : null;
|
|
16
|
+
return _jsxs(_Fragment, { children: [renderText ? renderText(content) : content, _jsx(Attachments, { facts: shared ? attachments.filter(fact => fact.kind !== "image") : attachments, onOpenAttachment: open, reveal: actions.reveal })] });
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CanonicalText } from "@vibefield/rosetta-protocol";
|
|
2
|
+
export declare function Compaction({ text, domId, timelineId, hit, forceOpen, onReceipt, }: {
|
|
3
|
+
readonly text: CanonicalText;
|
|
4
|
+
readonly domId: string;
|
|
5
|
+
readonly timelineId: string;
|
|
6
|
+
readonly hit: boolean;
|
|
7
|
+
readonly forceOpen: boolean;
|
|
8
|
+
readonly onReceipt: (message: string) => void;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// §03 G — generated continuation context belongs to the system marker.
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { useReadingSession, useRoom } from "../../room-context.js";
|
|
5
|
+
import { MessagePreview } from "./MessagePreview.js";
|
|
6
|
+
import { LineChevron } from "./glyphs.js";
|
|
7
|
+
import { useRowDisclosure } from "./disclosure-state.js";
|
|
8
|
+
/** Loaded only on disclosure. Oversized summaries are content-addressed;
|
|
9
|
+
* their preview must never be presented or copied as the complete recap. */
|
|
10
|
+
function SummaryBody({ canonical, messageKey, matched, onReceipt, }) {
|
|
11
|
+
const [loaded, setLoaded] = useState(null);
|
|
12
|
+
const [attempt, setAttempt] = useState(0);
|
|
13
|
+
const { sessions } = useRoom();
|
|
14
|
+
const readingSession = useReadingSession();
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (canonical.type === "inline")
|
|
17
|
+
return;
|
|
18
|
+
const controller = new AbortController();
|
|
19
|
+
setLoaded(null);
|
|
20
|
+
const read = readingSession === null
|
|
21
|
+
? Promise.reject(new Error("No session is open to read the stored summary"))
|
|
22
|
+
: sessions.run(readingSession, (client) => client.readTextAsset(canonical.asset, controller.signal));
|
|
23
|
+
void read.then((text) => {
|
|
24
|
+
if (!controller.signal.aborted)
|
|
25
|
+
setLoaded({ text, error: null });
|
|
26
|
+
}, (error) => {
|
|
27
|
+
if (controller.signal.aborted)
|
|
28
|
+
return;
|
|
29
|
+
setLoaded({
|
|
30
|
+
text: null,
|
|
31
|
+
error: error instanceof Error ? error.message : "The stored summary is unavailable",
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
return () => controller.abort();
|
|
35
|
+
}, [canonical, attempt, sessions, readingSession]);
|
|
36
|
+
const text = canonical.type === "inline" ? canonical.text : loaded?.text ?? null;
|
|
37
|
+
return (_jsxs("div", { className: "tr-compaction__body", children: [_jsxs("div", { className: "tr-compaction__byline", children: [_jsx("span", { children: "Agent-generated context for continuing this session." }), text !== null && (_jsx("button", { type: "button", onClick: () => {
|
|
38
|
+
navigator.clipboard.writeText(text)
|
|
39
|
+
.then(() => onReceipt("Copied summary"))
|
|
40
|
+
.catch(() => onReceipt("The clipboard refused it"));
|
|
41
|
+
}, children: "copy summary" }))] }), text !== null ? (_jsx("div", { className: "tr-prose ah-syntax", children: _jsx(MessagePreview, { messageKey: messageKey, role: "agent", title: "Compaction summary", matched: matched, text: text, onReceipt: onReceipt }) })) : loaded?.error ? (_jsxs("p", { className: "tr-compaction__status", role: "status", children: ["Could not load the full summary. ", loaded.error, " ", _jsx("button", { type: "button", onClick: () => setAttempt(attempt + 1), children: "Retry" })] })) : (_jsx("p", { className: "tr-compaction__status", role: "status", children: "Loading full summary\u2026" }))] }));
|
|
42
|
+
}
|
|
43
|
+
export function Compaction({ text, domId, timelineId, hit, forceOpen, onReceipt, }) {
|
|
44
|
+
const [open, setOpen] = useRowDisclosure(domId, forceOpen || hit);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (forceOpen || hit)
|
|
47
|
+
setOpen(true);
|
|
48
|
+
}, [forceOpen, hit]);
|
|
49
|
+
return (_jsxs("details", { className: "tr-compaction", id: domId, "data-timeline-id": timelineId, "data-hit": hit || undefined, open: open, onToggle: (event) => setOpen(event.currentTarget.open), children: [_jsx("summary", { className: "tr-mark", children: _jsxs("span", { className: "tr-compaction__label", children: [_jsx("span", { className: "chev", children: _jsx(LineChevron, {}) }), "Context compacted", _jsx("span", { className: "tr-compaction__hint", children: "\u00B7 summary" })] }) }), open && (_jsx(SummaryBody, { canonical: text, messageKey: domId, matched: hit, onReceipt: onReceipt }, text.type === "member" ? text.asset.digest : "inline"))] }));
|
|
50
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { MouseEvent, ReactNode } from "react";
|
|
2
|
+
import type { DayEntry, Sitting as SittingModel } from "../../lib/transcript/index.js";
|
|
3
|
+
export interface PillText {
|
|
4
|
+
readonly lead: string;
|
|
5
|
+
readonly after: string | null;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* `Mon 31 Aug` for a day cut, `Tue 1 Sep · 00:02` + `after 44m` when a pause
|
|
9
|
+
* crossed a day, `12:31` + `after 12h 18m` within one. Null when the sitting
|
|
10
|
+
* is neither — a session that lives on one day with no pause draws no pill at
|
|
11
|
+
* all, because the column head's range already says when it was.
|
|
12
|
+
*/
|
|
13
|
+
export declare function pillText(sitting: SittingModel): PillText | null;
|
|
14
|
+
export interface DayPillProps {
|
|
15
|
+
readonly sitting: SittingModel;
|
|
16
|
+
readonly onPress: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare function DayPill({ sitting, onPress }: DayPillProps): import("react").JSX.Element | null;
|
|
19
|
+
export declare function Sitting({ sitting, children, }: {
|
|
20
|
+
readonly sitting: SittingModel;
|
|
21
|
+
readonly children: ReactNode;
|
|
22
|
+
}): import("react").JSX.Element;
|
|
23
|
+
export interface DayMenuProps {
|
|
24
|
+
readonly days: readonly DayEntry[];
|
|
25
|
+
readonly currentDayKey: string | null;
|
|
26
|
+
/** Pixels from the frame's top — set from the pressed pill's own rect. */
|
|
27
|
+
readonly top: number;
|
|
28
|
+
readonly onJump: (day: DayEntry) => void;
|
|
29
|
+
readonly onDismiss: () => void;
|
|
30
|
+
}
|
|
31
|
+
export declare function DayMenu({ days, currentDayKey, top, onJump, onDismiss }: DayMenuProps): import("react").JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* Stamp `data-stuck` on whichever pill is currently pinned to the top edge.
|
|
34
|
+
* The record does this from the scroll handler rather than an
|
|
35
|
+
* IntersectionObserver because the question is "is this element AT the edge",
|
|
36
|
+
* which a rect comparison answers exactly and a threshold only approximates.
|
|
37
|
+
*/
|
|
38
|
+
export declare function markStuckPills(scroller: HTMLElement | null): void;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import { clockShort, duration } from "../../lib/format.js";
|
|
4
|
+
import { useReaderMode } from "./reader-context.js";
|
|
5
|
+
/**
|
|
6
|
+
* `Mon 31 Aug` for a day cut, `Tue 1 Sep · 00:02` + `after 44m` when a pause
|
|
7
|
+
* crossed a day, `12:31` + `after 12h 18m` within one. Null when the sitting
|
|
8
|
+
* is neither — a session that lives on one day with no pause draws no pill at
|
|
9
|
+
* all, because the column head's range already says when it was.
|
|
10
|
+
*/
|
|
11
|
+
export function pillText(sitting) {
|
|
12
|
+
const after = sitting.pauseMs === null ? null : `after ${duration(0, sitting.pauseMs)}`;
|
|
13
|
+
const day = sitting.dayLabel;
|
|
14
|
+
const resumed = sitting.resumedAt === null ? null : clockShort(sitting.resumedAt);
|
|
15
|
+
if (sitting.dayChanged && day !== null) {
|
|
16
|
+
return { lead: resumed === null ? day : `${day} · ${resumed}`, after };
|
|
17
|
+
}
|
|
18
|
+
if (resumed !== null)
|
|
19
|
+
return { lead: resumed, after };
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
export function DayPill({ sitting, onPress }) {
|
|
23
|
+
// In the reader the day is a label: it opens no menu.
|
|
24
|
+
const reading = useReaderMode();
|
|
25
|
+
const text = pillText(sitting);
|
|
26
|
+
if (text === null)
|
|
27
|
+
return null;
|
|
28
|
+
return (_jsx("div", { className: sitting.isFirst ? "tr-day tr-day--first" : "tr-day", "data-stuck": "false", "data-day-key": sitting.dayKey ?? undefined, children: reading ? (_jsxs("span", { className: "tr-day__pill", children: [text.lead, text.after !== null && _jsx("span", { className: "after", children: text.after })] })) : (_jsxs("button", { type: "button", className: "tr-day__pill", title: "Jump to a day", "aria-haspopup": "menu", onClick: onPress, children: [text.lead, text.after !== null && _jsx("span", { className: "after", children: text.after })] })) }));
|
|
29
|
+
}
|
|
30
|
+
export function Sitting({ sitting, children, }) {
|
|
31
|
+
return (_jsx("section", { className: "tr-sitting", "data-sitting-key": sitting.key, children: children }));
|
|
32
|
+
}
|
|
33
|
+
export function DayMenu({ days, currentDayKey, top, onJump, onDismiss }) {
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const onKey = (event) => {
|
|
36
|
+
if (event.key === "Escape")
|
|
37
|
+
onDismiss();
|
|
38
|
+
};
|
|
39
|
+
window.addEventListener("keydown", onKey);
|
|
40
|
+
return () => window.removeEventListener("keydown", onKey);
|
|
41
|
+
}, [onDismiss]);
|
|
42
|
+
return (_jsx("div", { className: "tr-daymenu", role: "menu", style: { top }, children: days.map((day) => (_jsxs("button", { type: "button", role: "menuitem", "aria-current": day.dayKey === currentDayKey ? "true" : undefined, onClick: () => onJump(day), children: [day.dayLabel, _jsxs("span", { children: [day.sittingCount, " ", day.sittingCount === 1 ? "sitting" : "sittings"] })] }, day.dayKey))) }));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Stamp `data-stuck` on whichever pill is currently pinned to the top edge.
|
|
46
|
+
* The record does this from the scroll handler rather than an
|
|
47
|
+
* IntersectionObserver because the question is "is this element AT the edge",
|
|
48
|
+
* which a rect comparison answers exactly and a threshold only approximates.
|
|
49
|
+
*/
|
|
50
|
+
export function markStuckPills(scroller) {
|
|
51
|
+
if (scroller === null)
|
|
52
|
+
return;
|
|
53
|
+
// The sticky edge is the SCROLLPORT's padding box plus the pill's declared
|
|
54
|
+
// inset. Read both from CSS so the stamp follows the layout instead of
|
|
55
|
+
// keeping a second, slightly different copy of its geometry here.
|
|
56
|
+
const padding = Number.parseFloat(getComputedStyle(scroller).paddingTop) || 0;
|
|
57
|
+
const edge = scroller.getBoundingClientRect().top + padding;
|
|
58
|
+
const scrolled = scroller.scrollTop > 0;
|
|
59
|
+
for (const day of scroller.querySelectorAll(".tr-day")) {
|
|
60
|
+
const rect = day.getBoundingClientRect();
|
|
61
|
+
const inset = Number.parseFloat(getComputedStyle(day).top) || 0;
|
|
62
|
+
const top = edge + inset;
|
|
63
|
+
// Pinned means AT the edge and still in view: a pill whose section has
|
|
64
|
+
// ended is being pushed out, and a pushed-out pill is not chrome.
|
|
65
|
+
const stuck = scrolled && rect.top - top <= 1 && rect.bottom > edge;
|
|
66
|
+
day.setAttribute("data-stuck", stuck ? "true" : "false");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { SessionRow } from "@vibefield/rosetta-protocol";
|
|
3
|
+
import type { AttachmentFact, PathFact } from "../../lib/transcript/index.js";
|
|
4
|
+
import type { TimelineFeed } from "../../lib/hooks.js";
|
|
5
|
+
import type { TimelineLayout } from "../../lib/transcript/use-transcript-tail.js";
|
|
6
|
+
import type { TranscriptModel } from "./document-model.js";
|
|
7
|
+
import type { ThreadFocus, ThreadIndex } from "./thread-index.js";
|
|
8
|
+
export interface TranscriptDocumentProps {
|
|
9
|
+
readonly session: SessionRow;
|
|
10
|
+
readonly model: TranscriptModel;
|
|
11
|
+
readonly feed: TimelineFeed;
|
|
12
|
+
/** The cold backfill is running: a streaming session is being INDEXED by the
|
|
13
|
+
* daemon, not run by an agent — the watermark must not claim life. */
|
|
14
|
+
readonly duringBackfill: boolean;
|
|
15
|
+
readonly index: ThreadIndex;
|
|
16
|
+
readonly focus: ThreadFocus | null;
|
|
17
|
+
readonly highlightedTimelineId: string | null;
|
|
18
|
+
readonly onFocusConsumed: () => void;
|
|
19
|
+
readonly onReceipt: (text: string) => void;
|
|
20
|
+
readonly onOpenAttachment: (fact: AttachmentFact, row?: readonly AttachmentFact[]) => void;
|
|
21
|
+
readonly onOpenPath: (path: PathFact) => void;
|
|
22
|
+
readonly getRuntimeKind: (runtimeId: string) => string;
|
|
23
|
+
readonly homeDirectory: string | null;
|
|
24
|
+
/** The day list only exists where a menu can be drawn: the root column. */
|
|
25
|
+
readonly onPillPress: ((element: HTMLElement, dayKey: string | null) => void) | null;
|
|
26
|
+
/** The head of the document (§08), mounted above the first sitting. */
|
|
27
|
+
readonly head?: ReactNode;
|
|
28
|
+
readonly nested?: boolean;
|
|
29
|
+
/** Root scroll surface observes the actual rendered team chronology. */
|
|
30
|
+
readonly onTimelineLayout?: (layout: TimelineLayout) => void;
|
|
31
|
+
}
|
|
32
|
+
export declare function TranscriptDocument({ session, model: baseModel, feed, duringBackfill, index, focus, highlightedTimelineId: parentHighlightedTimelineId, onFocusConsumed, onReceipt, onOpenAttachment, onOpenPath, getRuntimeKind, homeDirectory, onPillPress, head, nested, onTimelineLayout, }: TranscriptDocumentProps): import("react").JSX.Element;
|