@shivaedev/work-board 0.12.0 → 0.13.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/CHANGELOG.md +36 -0
- package/README.md +11 -11
- package/assets/agent.js +27 -31
- package/assets/native.js +34 -69
- package/assets/react.css +1 -1
- package/assets/react.js +39 -34
- package/dist/browser/diagnostics/schema.d.ts +49 -0
- package/dist/browser/diagnostics/schema.d.ts.map +1 -0
- package/dist/browser/diagnostics/schema.js +11 -0
- package/dist/browser/diagnostics/schema.js.map +1 -0
- package/dist/browser/views/ResultProjection.d.ts +245 -0
- package/dist/browser/views/ResultProjection.d.ts.map +1 -0
- package/dist/browser/views/ResultProjection.js +32 -0
- package/dist/browser/views/ResultProjection.js.map +1 -0
- package/dist/browser/views/remaining.d.ts +345 -0
- package/dist/browser/views/remaining.d.ts.map +1 -0
- package/dist/browser/views/remaining.js +21 -0
- package/dist/browser/views/remaining.js.map +1 -0
- package/dist/browser/views/schema.d.ts +715 -0
- package/dist/browser/views/schema.d.ts.map +1 -0
- package/dist/browser/views/schema.js +60 -0
- package/dist/browser/views/schema.js.map +1 -0
- package/dist/browser/views/state.d.ts +15 -0
- package/dist/browser/views/state.d.ts.map +1 -0
- package/dist/browser/views/state.js +45 -0
- package/dist/browser/views/state.js.map +1 -0
- package/dist/client/client.d.ts +5 -5
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +4 -4
- package/dist/client/client.js.map +1 -1
- package/dist/client/document/Mermaid.d.ts.map +1 -1
- package/dist/client/document/Mermaid.js +39 -10
- package/dist/client/document/Mermaid.js.map +1 -1
- package/dist/client/document/View.d.ts +5 -1
- package/dist/client/document/View.d.ts.map +1 -1
- package/dist/client/document/View.js +13 -1
- package/dist/client/document/View.js.map +1 -1
- package/dist/client/document/boardLayout.d.ts +6 -0
- package/dist/client/document/boardLayout.d.ts.map +1 -0
- package/dist/client/document/boardLayout.js +69 -0
- package/dist/client/document/boardLayout.js.map +1 -0
- package/dist/client/entry.d.ts +0 -12
- package/dist/client/entry.d.ts.map +1 -1
- package/dist/client/entry.js +0 -18
- package/dist/client/entry.js.map +1 -1
- package/dist/client/formDraft.d.ts +3 -0
- package/dist/client/formDraft.d.ts.map +1 -0
- package/dist/client/formDraft.js +8 -0
- package/dist/client/formDraft.js.map +1 -0
- package/dist/client/formFocus.d.ts.map +1 -1
- package/dist/client/formFocus.js +5 -0
- package/dist/client/formFocus.js.map +1 -1
- package/dist/client/handoffs/failureStatus.d.ts +2 -0
- package/dist/client/handoffs/failureStatus.d.ts.map +1 -0
- package/dist/client/handoffs/failureStatus.js +7 -0
- package/dist/client/handoffs/failureStatus.js.map +1 -0
- package/dist/client/page/routeQuery.d.ts +2 -7
- package/dist/client/page/routeQuery.d.ts.map +1 -1
- package/dist/client/page/routeQuery.js +0 -3
- package/dist/client/page/routeQuery.js.map +1 -1
- package/dist/client/react/Age.d.ts +9 -0
- package/dist/client/react/Age.d.ts.map +1 -0
- package/dist/client/react/Age.js +32 -0
- package/dist/client/react/Age.js.map +1 -0
- package/dist/client/react/AnswerForm.d.ts +5 -3
- package/dist/client/react/AnswerForm.d.ts.map +1 -1
- package/dist/client/react/AnswerForm.js +21 -11
- package/dist/client/react/AnswerForm.js.map +1 -1
- package/dist/client/react/AnswerPrompts.d.ts +10 -2
- package/dist/client/react/AnswerPrompts.d.ts.map +1 -1
- package/dist/client/react/AnswerPrompts.js +28 -12
- package/dist/client/react/AnswerPrompts.js.map +1 -1
- package/dist/client/react/BoardMain.d.ts +10 -0
- package/dist/client/react/BoardMain.d.ts.map +1 -0
- package/dist/client/react/BoardMain.js +19 -0
- package/dist/client/react/BoardMain.js.map +1 -0
- package/dist/client/react/BoardShell.d.ts +6 -1
- package/dist/client/react/BoardShell.d.ts.map +1 -1
- package/dist/client/react/BoardShell.js +34 -12
- package/dist/client/react/BoardShell.js.map +1 -1
- package/dist/client/react/ChangesMain.d.ts +8 -0
- package/dist/client/react/ChangesMain.d.ts.map +1 -0
- package/dist/client/react/ChangesMain.js +24 -0
- package/dist/client/react/ChangesMain.js.map +1 -0
- package/dist/client/react/DiagnosticsFleet.d.ts +6 -0
- package/dist/client/react/DiagnosticsFleet.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsFleet.js +16 -0
- package/dist/client/react/DiagnosticsFleet.js.map +1 -0
- package/dist/client/react/DiagnosticsMain.d.ts +8 -0
- package/dist/client/react/DiagnosticsMain.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsMain.js +11 -0
- package/dist/client/react/DiagnosticsMain.js.map +1 -0
- package/dist/client/react/DiagnosticsPage.d.ts +5 -0
- package/dist/client/react/DiagnosticsPage.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsPage.js +23 -0
- package/dist/client/react/DiagnosticsPage.js.map +1 -0
- package/dist/client/react/DocumentContext.d.ts.map +1 -1
- package/dist/client/react/DocumentContext.js +23 -3
- package/dist/client/react/DocumentContext.js.map +1 -1
- package/dist/client/react/DocumentMain.d.ts +2 -3
- package/dist/client/react/DocumentMain.d.ts.map +1 -1
- package/dist/client/react/DocumentMain.js +8 -4
- package/dist/client/react/DocumentMain.js.map +1 -1
- package/dist/client/react/Favorite.d.ts +5 -0
- package/dist/client/react/Favorite.d.ts.map +1 -0
- package/dist/client/react/Favorite.js +10 -0
- package/dist/client/react/Favorite.js.map +1 -0
- package/dist/client/react/FormField.d.ts +13 -0
- package/dist/client/react/FormField.d.ts.map +1 -0
- package/dist/client/react/FormField.js +39 -0
- package/dist/client/react/FormField.js.map +1 -0
- package/dist/client/react/HandoffForm.d.ts +5 -0
- package/dist/client/react/HandoffForm.d.ts.map +1 -0
- package/dist/client/react/HandoffForm.js +27 -0
- package/dist/client/react/HandoffForm.js.map +1 -0
- package/dist/client/react/HandoffPage.d.ts +5 -0
- package/dist/client/react/HandoffPage.d.ts.map +1 -0
- package/dist/client/react/HandoffPage.js +15 -0
- package/dist/client/react/HandoffPage.js.map +1 -0
- package/dist/client/react/HandoffPrompt.d.ts +6 -0
- package/dist/client/react/HandoffPrompt.d.ts.map +1 -0
- package/dist/client/react/HandoffPrompt.js +21 -0
- package/dist/client/react/HandoffPrompt.js.map +1 -0
- package/dist/client/react/Header.d.ts +11 -2
- package/dist/client/react/Header.d.ts.map +1 -1
- package/dist/client/react/Header.js +2 -2
- package/dist/client/react/Header.js.map +1 -1
- package/dist/client/react/HistoryComparison.d.ts +5 -0
- package/dist/client/react/HistoryComparison.d.ts.map +1 -0
- package/dist/client/react/HistoryComparison.js +14 -0
- package/dist/client/react/HistoryComparison.js.map +1 -0
- package/dist/client/react/HistoryRetention.d.ts +5 -0
- package/dist/client/react/HistoryRetention.d.ts.map +1 -0
- package/dist/client/react/HistoryRetention.js +28 -0
- package/dist/client/react/HistoryRetention.js.map +1 -0
- package/dist/client/react/HomeBoard.d.ts +5 -0
- package/dist/client/react/HomeBoard.d.ts.map +1 -0
- package/dist/client/react/HomeBoard.js +8 -0
- package/dist/client/react/HomeBoard.js.map +1 -0
- package/dist/client/react/InboxPage.d.ts +5 -0
- package/dist/client/react/InboxPage.d.ts.map +1 -0
- package/dist/client/react/InboxPage.js +18 -0
- package/dist/client/react/InboxPage.js.map +1 -0
- package/dist/client/react/LiveControls.d.ts +8 -0
- package/dist/client/react/LiveControls.d.ts.map +1 -0
- package/dist/client/react/LiveControls.js +51 -0
- package/dist/client/react/LiveControls.js.map +1 -0
- package/dist/client/react/Modal.d.ts +12 -0
- package/dist/client/react/Modal.d.ts.map +1 -0
- package/dist/client/react/Modal.js +62 -0
- package/dist/client/react/Modal.js.map +1 -0
- package/dist/client/react/NavigationTree.d.ts.map +1 -1
- package/dist/client/react/NavigationTree.js +2 -1
- package/dist/client/react/NavigationTree.js.map +1 -1
- package/dist/client/react/OverviewGroups.d.ts +5 -0
- package/dist/client/react/OverviewGroups.d.ts.map +1 -0
- package/dist/client/react/OverviewGroups.js +18 -0
- package/dist/client/react/OverviewGroups.js.map +1 -0
- package/dist/client/react/OverviewPage.d.ts +5 -0
- package/dist/client/react/OverviewPage.d.ts.map +1 -0
- package/dist/client/react/OverviewPage.js +16 -0
- package/dist/client/react/OverviewPage.js.map +1 -0
- package/dist/client/react/ProjectionFrame.d.ts +19 -0
- package/dist/client/react/ProjectionFrame.d.ts.map +1 -0
- package/dist/client/react/ProjectionFrame.js +85 -0
- package/dist/client/react/ProjectionFrame.js.map +1 -0
- package/dist/client/react/ProjectionMain.d.ts +10 -0
- package/dist/client/react/ProjectionMain.d.ts.map +1 -0
- package/dist/client/react/ProjectionMain.js +22 -0
- package/dist/client/react/ProjectionMain.js.map +1 -0
- package/dist/client/react/PromptOption.d.ts +12 -0
- package/dist/client/react/PromptOption.d.ts.map +1 -0
- package/dist/client/react/PromptOption.js +9 -0
- package/dist/client/react/PromptOption.js.map +1 -0
- package/dist/client/react/ReadingLibrary.d.ts +9 -0
- package/dist/client/react/ReadingLibrary.d.ts.map +1 -0
- package/dist/client/react/ReadingLibrary.js +78 -0
- package/dist/client/react/ReadingLibrary.js.map +1 -0
- package/dist/client/react/RemainingMain.d.ts +10 -0
- package/dist/client/react/RemainingMain.d.ts.map +1 -0
- package/dist/client/react/RemainingMain.js +27 -0
- package/dist/client/react/RemainingMain.js.map +1 -0
- package/dist/client/react/RespondPage.d.ts +5 -0
- package/dist/client/react/RespondPage.d.ts.map +1 -0
- package/dist/client/react/RespondPage.js +16 -0
- package/dist/client/react/RespondPage.js.map +1 -0
- package/dist/client/react/ResponseMarkdown.d.ts.map +1 -1
- package/dist/client/react/ResponseMarkdown.js +16 -2
- package/dist/client/react/ResponseMarkdown.js.map +1 -1
- package/dist/client/react/ResultCriteria.d.ts +5 -0
- package/dist/client/react/ResultCriteria.d.ts.map +1 -0
- package/dist/client/react/ResultCriteria.js +33 -0
- package/dist/client/react/ResultCriteria.js.map +1 -0
- package/dist/client/react/ResultFeedback.d.ts +5 -0
- package/dist/client/react/ResultFeedback.d.ts.map +1 -0
- package/dist/client/react/ResultFeedback.js +12 -0
- package/dist/client/react/ResultFeedback.js.map +1 -0
- package/dist/client/react/ResultPage.d.ts +5 -0
- package/dist/client/react/ResultPage.d.ts.map +1 -0
- package/dist/client/react/ResultPage.js +15 -0
- package/dist/client/react/ResultPage.js.map +1 -0
- package/dist/client/react/SavedViews.d.ts +4 -0
- package/dist/client/react/SavedViews.d.ts.map +1 -0
- package/dist/client/react/SavedViews.js +16 -0
- package/dist/client/react/SavedViews.js.map +1 -0
- package/dist/client/react/SearchDialog.d.ts +11 -0
- package/dist/client/react/SearchDialog.d.ts.map +1 -0
- package/dist/client/react/SearchDialog.js +67 -0
- package/dist/client/react/SearchDialog.js.map +1 -0
- package/dist/client/react/SearchResults.d.ts +7 -0
- package/dist/client/react/SearchResults.d.ts.map +1 -0
- package/dist/client/react/SearchResults.js +19 -0
- package/dist/client/react/SearchResults.js.map +1 -0
- package/dist/client/react/ShellApi.d.ts +11 -1
- package/dist/client/react/ShellApi.d.ts.map +1 -1
- package/dist/client/react/Sidebar.d.ts +5 -2
- package/dist/client/react/Sidebar.d.ts.map +1 -1
- package/dist/client/react/Sidebar.js +37 -2
- package/dist/client/react/Sidebar.js.map +1 -1
- package/dist/client/react/StartPage.d.ts +5 -0
- package/dist/client/react/StartPage.d.ts.map +1 -0
- package/dist/client/react/StartPage.js +5 -0
- package/dist/client/react/StartPage.js.map +1 -0
- package/dist/client/react/UpdatesToggle.d.ts +5 -0
- package/dist/client/react/UpdatesToggle.d.ts.map +1 -0
- package/dist/client/react/UpdatesToggle.js +9 -0
- package/dist/client/react/UpdatesToggle.js.map +1 -0
- package/dist/client/react/VisualControls.d.ts +17 -0
- package/dist/client/react/VisualControls.d.ts.map +1 -0
- package/dist/client/react/VisualControls.js +6 -0
- package/dist/client/react/VisualControls.js.map +1 -0
- package/dist/client/react/VisualInspection.d.ts +2 -0
- package/dist/client/react/VisualInspection.d.ts.map +1 -0
- package/dist/client/react/VisualInspection.js +26 -0
- package/dist/client/react/VisualInspection.js.map +1 -0
- package/dist/client/react/VisualViewer.d.ts +6 -0
- package/dist/client/react/VisualViewer.d.ts.map +1 -0
- package/dist/client/react/VisualViewer.js +106 -0
- package/dist/client/react/VisualViewer.js.map +1 -0
- package/dist/client/react/WorkCards.d.ts +5 -0
- package/dist/client/react/WorkCards.d.ts.map +1 -0
- package/dist/client/react/WorkCards.js +13 -0
- package/dist/client/react/WorkCards.js.map +1 -0
- package/dist/client/react/WorkControls.d.ts +5 -0
- package/dist/client/react/WorkControls.d.ts.map +1 -0
- package/dist/client/react/WorkControls.js +18 -0
- package/dist/client/react/WorkControls.js.map +1 -0
- package/dist/client/react/WorkDetail.d.ts +5 -0
- package/dist/client/react/WorkDetail.d.ts.map +1 -0
- package/dist/client/react/WorkDetail.js +12 -0
- package/dist/client/react/WorkDetail.js.map +1 -0
- package/dist/client/react/WorkItemTitle.d.ts +7 -0
- package/dist/client/react/WorkItemTitle.d.ts.map +1 -0
- package/dist/client/react/WorkItemTitle.js +6 -0
- package/dist/client/react/WorkItemTitle.js.map +1 -0
- package/dist/client/react/WorkPage.d.ts +5 -0
- package/dist/client/react/WorkPage.d.ts.map +1 -0
- package/dist/client/react/WorkPage.js +17 -0
- package/dist/client/react/WorkPage.js.map +1 -0
- package/dist/client/react/WorkResults.d.ts +5 -0
- package/dist/client/react/WorkResults.d.ts.map +1 -0
- package/dist/client/react/WorkResults.js +10 -0
- package/dist/client/react/WorkResults.js.map +1 -0
- package/dist/client/react/WorkTable.d.ts +5 -0
- package/dist/client/react/WorkTable.d.ts.map +1 -0
- package/dist/client/react/WorkTable.js +10 -0
- package/dist/client/react/WorkTable.js.map +1 -0
- package/dist/client/react/WorkTools.d.ts +5 -0
- package/dist/client/react/WorkTools.d.ts.map +1 -0
- package/dist/client/react/WorkTools.js +7 -0
- package/dist/client/react/WorkTools.js.map +1 -0
- package/dist/client/react/activeRead.d.ts +7 -0
- package/dist/client/react/activeRead.d.ts.map +1 -0
- package/dist/client/react/activeRead.js +13 -0
- package/dist/client/react/activeRead.js.map +1 -0
- package/dist/client/react/createResponse.d.ts +26 -0
- package/dist/client/react/createResponse.d.ts.map +1 -0
- package/dist/client/react/createResponse.js +29 -0
- package/dist/client/react/createResponse.js.map +1 -0
- package/dist/client/react/diagnosticsValues.d.ts +13 -0
- package/dist/client/react/diagnosticsValues.d.ts.map +1 -0
- package/dist/client/react/diagnosticsValues.js +49 -0
- package/dist/client/react/diagnosticsValues.js.map +1 -0
- package/dist/client/react/entry.js +6 -18
- package/dist/client/react/entry.js.map +1 -1
- package/dist/client/react/historyStore.d.ts +7 -0
- package/dist/client/react/historyStore.d.ts.map +1 -0
- package/dist/client/react/historyStore.js +61 -0
- package/dist/client/react/historyStore.js.map +1 -0
- package/dist/client/react/liveStatus.d.ts +16 -0
- package/dist/client/react/liveStatus.d.ts.map +1 -0
- package/dist/client/react/liveStatus.js +43 -0
- package/dist/client/react/liveStatus.js.map +1 -0
- package/dist/client/react/loadBoardPage.d.ts +1 -1
- package/dist/client/react/loadBoardPage.d.ts.map +1 -1
- package/dist/client/react/loadBoardPage.js +14 -4
- package/dist/client/react/loadBoardPage.js.map +1 -1
- package/dist/client/react/loadProjection.d.ts +674 -0
- package/dist/client/react/loadProjection.d.ts.map +1 -0
- package/dist/client/react/loadProjection.js +15 -0
- package/dist/client/react/loadProjection.js.map +1 -0
- package/dist/client/react/loadRemaining.d.ts +577 -0
- package/dist/client/react/loadRemaining.d.ts.map +1 -0
- package/dist/client/react/loadRemaining.js +19 -0
- package/dist/client/react/loadRemaining.js.map +1 -0
- package/dist/client/react/mainLocation.d.ts +6 -0
- package/dist/client/react/mainLocation.d.ts.map +1 -0
- package/dist/client/react/mainLocation.js +9 -0
- package/dist/client/react/mainLocation.js.map +1 -0
- package/dist/client/react/navigationLocation.d.ts +33 -0
- package/dist/client/react/navigationLocation.d.ts.map +1 -0
- package/dist/client/react/navigationLocation.js +22 -0
- package/dist/client/react/navigationLocation.js.map +1 -0
- package/dist/client/react/pageQuery.d.ts +5 -0
- package/dist/client/react/pageQuery.d.ts.map +1 -0
- package/dist/client/react/pageQuery.js +35 -0
- package/dist/client/react/pageQuery.js.map +1 -0
- package/dist/client/react/projectionChanges.d.ts +6 -0
- package/dist/client/react/projectionChanges.d.ts.map +1 -0
- package/dist/client/react/projectionChanges.js +16 -0
- package/dist/client/react/projectionChanges.js.map +1 -0
- package/dist/client/react/projectionRoute.d.ts +4 -0
- package/dist/client/react/projectionRoute.d.ts.map +1 -0
- package/dist/client/react/projectionRoute.js +18 -0
- package/dist/client/react/projectionRoute.js.map +1 -0
- package/dist/client/react/readerLink.d.ts +2 -0
- package/dist/client/react/readerLink.d.ts.map +1 -0
- package/dist/client/react/readerLink.js +8 -0
- package/dist/client/react/readerLink.js.map +1 -0
- package/dist/client/react/readingHistory.d.ts +38 -0
- package/dist/client/react/readingHistory.d.ts.map +1 -0
- package/dist/client/react/readingHistory.js +33 -0
- package/dist/client/react/readingHistory.js.map +1 -0
- package/dist/client/react/readingLibrary.d.ts +24 -0
- package/dist/client/react/readingLibrary.d.ts.map +1 -0
- package/dist/client/react/readingLibrary.js +18 -0
- package/dist/client/react/readingLibrary.js.map +1 -0
- package/dist/client/react/readingState.d.ts +20 -0
- package/dist/client/react/readingState.d.ts.map +1 -0
- package/dist/client/react/readingState.js +133 -0
- package/dist/client/react/readingState.js.map +1 -0
- package/dist/client/react/remainingRoute.d.ts +3 -0
- package/dist/client/react/remainingRoute.d.ts.map +1 -0
- package/dist/client/react/remainingRoute.js +19 -0
- package/dist/client/react/remainingRoute.js.map +1 -0
- package/dist/client/react/savedViews.d.ts +14 -0
- package/dist/client/react/savedViews.d.ts.map +1 -0
- package/dist/client/react/savedViews.js +87 -0
- package/dist/client/react/savedViews.js.map +1 -0
- package/dist/client/react/scheduleReading.d.ts +3 -0
- package/dist/client/react/scheduleReading.d.ts.map +1 -0
- package/dist/client/react/scheduleReading.js +36 -0
- package/dist/client/react/scheduleReading.js.map +1 -0
- package/dist/client/react/searchCommands.d.ts +11 -0
- package/dist/client/react/searchCommands.d.ts.map +1 -0
- package/dist/client/react/searchCommands.js +7 -0
- package/dist/client/react/searchCommands.js.map +1 -0
- package/dist/client/react/searchStatus.d.ts +6 -0
- package/dist/client/react/searchStatus.d.ts.map +1 -0
- package/dist/client/react/searchStatus.js +20 -0
- package/dist/client/react/searchStatus.js.map +1 -0
- package/dist/client/react/shellIds.d.ts +59 -0
- package/dist/client/react/shellIds.d.ts.map +1 -1
- package/dist/client/react/shellIds.js +59 -0
- package/dist/client/react/shellIds.js.map +1 -1
- package/dist/client/react/useAppearance.d.ts +14 -0
- package/dist/client/react/useAppearance.d.ts.map +1 -0
- package/dist/client/react/useAppearance.js +55 -0
- package/dist/client/react/useAppearance.js.map +1 -0
- package/dist/client/react/useBoardNavigation.d.ts +3 -0
- package/dist/client/react/useBoardNavigation.d.ts.map +1 -0
- package/dist/client/react/useBoardNavigation.js +129 -0
- package/dist/client/react/useBoardNavigation.js.map +1 -0
- package/dist/client/react/useDiagnosticsPolling.d.ts +3 -0
- package/dist/client/react/useDiagnosticsPolling.d.ts.map +1 -0
- package/dist/client/react/useDiagnosticsPolling.js +23 -0
- package/dist/client/react/useDiagnosticsPolling.js.map +1 -0
- package/dist/client/react/useDocumentPage.d.ts +1 -1
- package/dist/client/react/useDocumentPage.d.ts.map +1 -1
- package/dist/client/react/useFormFocus.d.ts +5 -0
- package/dist/client/react/useFormFocus.d.ts.map +1 -0
- package/dist/client/react/useFormFocus.js +46 -0
- package/dist/client/react/useFormFocus.js.map +1 -0
- package/dist/client/react/useHandoffForm.d.ts +69 -0
- package/dist/client/react/useHandoffForm.d.ts.map +1 -0
- package/dist/client/react/useHandoffForm.js +102 -0
- package/dist/client/react/useHandoffForm.js.map +1 -0
- package/dist/client/react/useHistoryComparison.d.ts +33 -0
- package/dist/client/react/useHistoryComparison.d.ts.map +1 -0
- package/dist/client/react/useHistoryComparison.js +146 -0
- package/dist/client/react/useHistoryComparison.js.map +1 -0
- package/dist/client/react/useMedia.d.ts +2 -0
- package/dist/client/react/useMedia.d.ts.map +1 -0
- package/dist/client/react/useMedia.js +19 -0
- package/dist/client/react/useMedia.js.map +1 -0
- package/dist/client/react/useResponseForm.d.ts +107 -0
- package/dist/client/react/useResponseForm.d.ts.map +1 -0
- package/dist/client/react/useResponseForm.js +138 -0
- package/dist/client/react/useResponseForm.js.map +1 -0
- package/dist/client/react/useSearchDialog.d.ts +7 -0
- package/dist/client/react/useSearchDialog.d.ts.map +1 -0
- package/dist/client/react/useSearchDialog.js +26 -0
- package/dist/client/react/useSearchDialog.js.map +1 -0
- package/dist/client/react/useSidebar.d.ts +9 -0
- package/dist/client/react/useSidebar.d.ts.map +1 -0
- package/dist/client/react/useSidebar.js +77 -0
- package/dist/client/react/useSidebar.js.map +1 -0
- package/dist/client/react/visualDimensions.d.ts +3 -0
- package/dist/client/react/visualDimensions.d.ts.map +1 -0
- package/dist/client/react/visualDimensions.js +21 -0
- package/dist/client/react/visualDimensions.js.map +1 -0
- package/dist/client/react/visualSources.d.ts +13 -0
- package/dist/client/react/visualSources.d.ts.map +1 -0
- package/dist/client/react/visualSources.js +92 -0
- package/dist/client/react/visualSources.js.map +1 -0
- package/dist/client/reconcile/normalized.d.ts +3 -0
- package/dist/client/reconcile/normalized.d.ts.map +1 -0
- package/dist/client/reconcile/{signature.js → normalized.js} +1 -37
- package/dist/client/reconcile/normalized.js.map +1 -0
- package/dist/client/responses/answerRecovery.d.ts +14 -0
- package/dist/client/responses/answerRecovery.d.ts.map +1 -0
- package/dist/client/responses/answerRecovery.js +33 -0
- package/dist/client/responses/answerRecovery.js.map +1 -0
- package/dist/client/responses/authorLabel.d.ts +1 -1
- package/dist/client/responses/authorLabel.d.ts.map +1 -1
- package/dist/client/responses/authorLabel.js +2 -2
- package/dist/client/responses/authorLabel.js.map +1 -1
- package/dist/client/responses/failure.d.ts +5 -0
- package/dist/client/responses/failure.d.ts.map +1 -0
- package/dist/client/responses/failure.js +13 -0
- package/dist/client/responses/failure.js.map +1 -0
- package/dist/client/responses/formSchema.d.ts +9 -0
- package/dist/client/responses/formSchema.d.ts.map +1 -1
- package/dist/client/responses/formSchema.js +3 -0
- package/dist/client/responses/formSchema.js.map +1 -1
- package/dist/client/responses/preview.d.ts +2 -2
- package/dist/client/responses/preview.d.ts.map +1 -1
- package/dist/client/responses/preview.js.map +1 -1
- package/dist/client/responses/retainContext.d.ts +6 -0
- package/dist/client/responses/retainContext.d.ts.map +1 -0
- package/dist/client/responses/retainContext.js +12 -0
- package/dist/client/responses/retainContext.js.map +1 -0
- package/dist/client/responses/summary.d.ts +6 -0
- package/dist/client/responses/summary.d.ts.map +1 -0
- package/dist/client/responses/summary.js +21 -0
- package/dist/client/responses/summary.js.map +1 -0
- package/dist/client/sourceChanged.d.ts +2 -0
- package/dist/client/sourceChanged.d.ts.map +1 -0
- package/dist/client/sourceChanged.js +4 -0
- package/dist/client/sourceChanged.js.map +1 -0
- package/dist/diagnostics/daemonContract.d.ts +1 -1
- package/dist/diagnostics/daemonContract.js +1 -1
- package/dist/diagnostics/daemonContract.js.map +1 -1
- package/dist/diagnostics/source.d.ts +14 -24
- package/dist/diagnostics/source.d.ts.map +1 -1
- package/dist/diagnostics/source.js +2 -9
- package/dist/diagnostics/source.js.map +1 -1
- package/dist/history/schema.d.ts +33 -0
- package/dist/history/schema.d.ts.map +1 -1
- package/dist/history/schema.js +12 -0
- package/dist/history/schema.js.map +1 -1
- package/dist/rpc/contract.d.ts +4235 -298
- package/dist/rpc/contract.d.ts.map +1 -1
- package/dist/rpc/contract.js +57 -3
- package/dist/rpc/contract.js.map +1 -1
- package/dist/rpc/handoffContract.d.ts +3 -3
- package/dist/rpc/responseContract.d.ts +5 -5
- package/dist/server/board.d.ts +4 -4
- package/dist/server/board.d.ts.map +1 -1
- package/dist/server/board.js +18 -95
- package/dist/server/board.js.map +1 -1
- package/dist/server/boardRuntime.d.ts +12 -0
- package/dist/server/boardRuntime.d.ts.map +1 -0
- package/dist/server/boardRuntime.js +37 -0
- package/dist/server/boardRuntime.js.map +1 -0
- package/dist/server/diagnostics/daemon.js +3 -3
- package/dist/server/diagnostics/daemon.js.map +1 -1
- package/dist/server/history/html.d.ts +0 -1
- package/dist/server/history/html.d.ts.map +1 -1
- package/dist/server/history/html.js +0 -3
- package/dist/server/history/html.js.map +1 -1
- package/dist/server/history/response.d.ts.map +1 -1
- package/dist/server/history/response.js +14 -1
- package/dist/server/history/response.js.map +1 -1
- package/dist/server/http/assets.d.ts +4 -4
- package/dist/server/http/assets.d.ts.map +1 -1
- package/dist/server/http/assets.js +1 -35
- package/dist/server/http/assets.js.map +1 -1
- package/dist/server/http/attachment.d.ts +2 -2
- package/dist/server/http/attachment.d.ts.map +1 -1
- package/dist/server/http/boardRoutes.d.ts +6 -0
- package/dist/server/http/boardRoutes.d.ts.map +1 -0
- package/dist/server/http/boardRoutes.js +45 -0
- package/dist/server/http/boardRoutes.js.map +1 -0
- package/dist/server/http/identity.d.ts +2 -2
- package/dist/server/http/identity.d.ts.map +1 -1
- package/dist/server/http/inbox.d.ts +1 -1
- package/dist/server/http/inbox.d.ts.map +1 -1
- package/dist/server/http/overview.d.ts +1 -1
- package/dist/server/http/overview.d.ts.map +1 -1
- package/dist/server/http/page.d.ts +2 -2
- package/dist/server/http/page.d.ts.map +1 -1
- package/dist/server/http/page.js +1 -2
- package/dist/server/http/page.js.map +1 -1
- package/dist/server/http/respond.d.ts +1 -1
- package/dist/server/http/respond.d.ts.map +1 -1
- package/dist/server/http/respond.js +1 -1
- package/dist/server/http/respond.js.map +1 -1
- package/dist/server/http/rpcPolicy.d.ts +4 -0
- package/dist/server/http/rpcPolicy.d.ts.map +1 -0
- package/dist/server/http/rpcPolicy.js +11 -0
- package/dist/server/http/rpcPolicy.js.map +1 -0
- package/dist/server/http/work.d.ts +2 -2
- package/dist/server/http/work.d.ts.map +1 -1
- package/dist/server/integration/diagnostics.d.ts +1 -1
- package/dist/server/responses/agent.d.ts +1 -1
- package/dist/server/responses/agent.d.ts.map +1 -1
- package/dist/server/responses/agent.js +2 -2
- package/dist/server/responses/agent.js.map +1 -1
- package/dist/server/responses/composerHtml.js +1 -1
- package/dist/server/responses/composerHtml.js.map +1 -1
- package/dist/server/responses/waitFor.d.ts +1 -1
- package/dist/server/responses/waitFor.d.ts.map +1 -1
- package/dist/server/rpc/HandlerOptions.d.ts +12 -0
- package/dist/server/rpc/HandlerOptions.d.ts.map +1 -0
- package/dist/server/rpc/HandlerOptions.js +2 -0
- package/dist/server/rpc/HandlerOptions.js.map +1 -0
- package/dist/server/rpc/handlers.d.ts +2 -2
- package/dist/server/rpc/handlers.d.ts.map +1 -1
- package/dist/server/rpc/handlers.js +17 -10
- package/dist/server/rpc/handlers.js.map +1 -1
- package/dist/server/serve-cli.js +8 -8
- package/dist/server/serve-cli.js.map +1 -1
- package/dist/server/serve.d.ts +2 -3
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/serve.js +20 -9
- package/dist/server/serve.js.map +1 -1
- package/dist/server/views/projectionQueries.d.ts +681 -0
- package/dist/server/views/projectionQueries.d.ts.map +1 -0
- package/dist/server/views/projectionQueries.js +70 -0
- package/dist/server/views/projectionQueries.js.map +1 -0
- package/dist/server/views/remainingQueries.d.ts +679 -0
- package/dist/server/views/remainingQueries.d.ts.map +1 -0
- package/dist/server/views/remainingQueries.js +58 -0
- package/dist/server/views/remainingQueries.js.map +1 -0
- package/dist/server/views/resultProjection.d.ts +420 -0
- package/dist/server/views/resultProjection.d.ts.map +1 -0
- package/dist/server/views/resultProjection.js +35 -0
- package/dist/server/views/resultProjection.js.map +1 -0
- package/dist/server/views/resultTargets.d.ts +6 -0
- package/dist/server/views/resultTargets.d.ts.map +1 -0
- package/dist/server/views/resultTargets.js +31 -0
- package/dist/server/views/resultTargets.js.map +1 -0
- package/dist/server/views/state.d.ts +8 -9
- package/dist/server/views/state.d.ts.map +1 -1
- package/dist/server/views/state.js +5 -38
- package/dist/server/views/state.js.map +1 -1
- package/dist/server/views/workStyle.d.ts.map +1 -1
- package/dist/server/views/workStyle.js +1 -0
- package/dist/server/views/workStyle.js.map +1 -1
- package/docs/delivery/decision-write-examples.md +1 -1
- package/docs/delivery/handoff-examples.md +1 -1
- package/docs/delivery/response-write-examples.md +1 -1
- package/docs/delivery/result-review-examples.md +1 -1
- package/docs/roadmap.md +7 -7
- package/package.json +52 -139
- package/src/browser/diagnostics/schema.ts +18 -0
- package/src/browser/views/ResultProjection.ts +37 -0
- package/src/browser/views/remaining.ts +26 -0
- package/src/browser/views/schema.ts +68 -0
- package/src/browser/views/state.ts +47 -0
- package/src/client/client.ts +8 -8
- package/src/client/document/Mermaid.ts +49 -9
- package/src/client/document/View.ts +14 -1
- package/src/client/document/boardLayout.ts +80 -0
- package/src/client/entry.ts +0 -24
- package/src/client/formDraft.ts +9 -0
- package/src/client/formFocus.ts +5 -0
- package/src/client/handoffs/failureStatus.ts +6 -0
- package/src/client/page/routeQuery.ts +0 -5
- package/src/client/react/Age.tsx +35 -0
- package/src/client/react/AnswerForm.tsx +88 -82
- package/src/client/react/AnswerPrompts.tsx +67 -54
- package/src/client/react/BoardMain.tsx +30 -0
- package/src/client/react/BoardShell.tsx +89 -27
- package/src/client/react/ChangesMain.tsx +68 -0
- package/src/client/react/DiagnosticsFleet.tsx +64 -0
- package/src/client/react/DiagnosticsMain.tsx +29 -0
- package/src/client/react/DiagnosticsPage.tsx +77 -0
- package/src/client/react/DocumentContext.tsx +25 -9
- package/src/client/react/DocumentMain.tsx +8 -6
- package/src/client/react/Favorite.tsx +17 -0
- package/src/client/react/FormField.tsx +68 -0
- package/src/client/react/HandoffForm.tsx +78 -0
- package/src/client/react/HandoffPage.tsx +78 -0
- package/src/client/react/HandoffPrompt.tsx +33 -0
- package/src/client/react/Header.tsx +34 -13
- package/src/client/react/HistoryComparison.tsx +60 -0
- package/src/client/react/HistoryRetention.tsx +29 -0
- package/src/client/react/HomeBoard.tsx +15 -0
- package/src/client/react/InboxPage.tsx +51 -0
- package/src/client/react/LiveControls.tsx +78 -0
- package/src/client/react/Modal.tsx +92 -0
- package/src/client/react/NavigationTree.tsx +2 -1
- package/src/client/react/OverviewGroups.tsx +61 -0
- package/src/client/react/OverviewPage.tsx +68 -0
- package/src/client/react/ProjectionFrame.tsx +140 -0
- package/src/client/react/ProjectionMain.tsx +63 -0
- package/src/client/react/PromptOption.tsx +56 -0
- package/src/client/react/ReadingLibrary.tsx +147 -0
- package/src/client/react/RemainingMain.tsx +66 -0
- package/src/client/react/RespondPage.tsx +41 -0
- package/src/client/react/ResponseMarkdown.tsx +32 -2
- package/src/client/react/ResultCriteria.tsx +78 -0
- package/src/client/react/ResultFeedback.tsx +67 -0
- package/src/client/react/ResultPage.tsx +50 -0
- package/src/client/react/SavedViews.tsx +61 -0
- package/src/client/react/SearchDialog.tsx +136 -0
- package/src/client/react/SearchResults.tsx +48 -0
- package/src/client/react/ShellApi.ts +11 -1
- package/src/client/react/Sidebar.tsx +57 -4
- package/src/client/react/StartPage.tsx +41 -0
- package/src/client/react/UpdatesToggle.tsx +13 -0
- package/src/client/react/VisualControls.tsx +59 -0
- package/src/client/react/VisualInspection.tsx +35 -0
- package/src/client/react/VisualViewer.tsx +147 -0
- package/src/client/react/WorkCards.tsx +39 -0
- package/src/client/react/WorkControls.tsx +73 -0
- package/src/client/react/WorkDetail.tsx +35 -0
- package/src/client/react/WorkItemTitle.tsx +9 -0
- package/src/client/react/WorkPage.tsx +59 -0
- package/src/client/react/WorkResults.tsx +9 -0
- package/src/client/react/WorkTable.tsx +39 -0
- package/src/client/react/WorkTools.tsx +17 -0
- package/src/client/react/activeRead.ts +15 -0
- package/src/client/react/createResponse.ts +40 -0
- package/src/client/react/diagnosticsValues.tsx +103 -0
- package/src/client/react/entry.css +20 -0
- package/src/client/react/entry.tsx +6 -19
- package/src/client/react/historyStore.ts +56 -0
- package/src/client/react/liveStatus.ts +52 -0
- package/src/client/react/loadBoardPage.ts +15 -5
- package/src/client/react/loadProjection.ts +23 -0
- package/src/client/react/loadRemaining.ts +27 -0
- package/src/client/react/mainLocation.ts +12 -0
- package/src/client/react/navigationLocation.ts +27 -0
- package/src/client/react/pageQuery.ts +38 -0
- package/src/client/react/projectionChanges.ts +21 -0
- package/src/client/react/projectionRoute.ts +21 -0
- package/src/client/react/readerLink.ts +9 -0
- package/src/client/react/readingHistory.ts +31 -0
- package/src/client/react/readingLibrary.ts +22 -0
- package/src/client/react/readingState.ts +133 -0
- package/src/client/react/remainingRoute.ts +19 -0
- package/src/client/react/savedViews.ts +84 -0
- package/src/client/react/scheduleReading.ts +41 -0
- package/src/client/react/searchCommands.ts +15 -0
- package/src/client/react/searchStatus.ts +30 -0
- package/src/client/react/shellIds.ts +59 -0
- package/src/client/react/useAppearance.ts +54 -0
- package/src/client/react/useBoardNavigation.ts +139 -0
- package/src/client/react/useDiagnosticsPolling.ts +24 -0
- package/src/client/react/useDocumentPage.ts +1 -1
- package/src/client/react/useFormFocus.ts +46 -0
- package/src/client/react/useHandoffForm.ts +105 -0
- package/src/client/react/useHistoryComparison.ts +142 -0
- package/src/client/react/useMedia.ts +19 -0
- package/src/client/react/useResponseForm.ts +147 -0
- package/src/client/react/useSearchDialog.ts +25 -0
- package/src/client/react/useSidebar.ts +81 -0
- package/src/client/react/visualDimensions.ts +20 -0
- package/src/client/react/visualSources.ts +105 -0
- package/src/client/reconcile/{signature.ts → normalized.ts} +0 -37
- package/src/client/responses/answerRecovery.ts +37 -0
- package/src/client/responses/authorLabel.ts +3 -3
- package/src/client/responses/failure.ts +13 -0
- package/src/client/responses/formSchema.ts +4 -0
- package/src/client/responses/preview.ts +2 -2
- package/src/client/responses/retainContext.ts +15 -0
- package/src/client/responses/summary.ts +25 -0
- package/src/client/sourceChanged.ts +3 -0
- package/src/diagnostics/daemonContract.ts +1 -1
- package/src/diagnostics/source.ts +5 -14
- package/src/history/schema.ts +15 -0
- package/src/rpc/contract.ts +57 -3
- package/src/server/board.ts +24 -126
- package/src/server/boardRuntime.ts +54 -0
- package/src/server/diagnostics/daemon.ts +3 -3
- package/src/server/history/html.ts +0 -3
- package/src/server/history/response.ts +15 -1
- package/src/server/http/assets.ts +2 -36
- package/src/server/http/attachment.ts +1 -1
- package/src/server/http/boardRoutes.ts +62 -0
- package/src/server/http/identity.ts +1 -1
- package/src/server/http/page.ts +2 -3
- package/src/server/http/respond.ts +1 -1
- package/src/server/http/rpcPolicy.ts +16 -0
- package/src/server/http/work.ts +1 -1
- package/src/server/responses/agent.ts +2 -2
- package/src/server/responses/composerHtml.ts +1 -1
- package/src/server/responses/waitFor.ts +1 -1
- package/src/server/rpc/HandlerOptions.ts +12 -0
- package/src/server/rpc/handlers.ts +18 -15
- package/src/server/serve-cli.ts +8 -8
- package/src/server/serve.ts +23 -10
- package/src/server/views/projectionQueries.ts +78 -0
- package/src/server/views/remainingQueries.ts +74 -0
- package/src/server/views/resultProjection.ts +45 -0
- package/src/server/views/resultTargets.ts +34 -0
- package/src/server/views/state.ts +5 -40
- package/src/server/views/workStyle.ts +1 -0
- package/dist/client/diagnostics/script.d.ts +0 -2
- package/dist/client/diagnostics/script.d.ts.map +0 -1
- package/dist/client/diagnostics/script.js +0 -31
- package/dist/client/diagnostics/script.js.map +0 -1
- package/dist/client/fieldFeedback.d.ts +0 -17
- package/dist/client/fieldFeedback.d.ts.map +0 -1
- package/dist/client/fieldFeedback.js +0 -38
- package/dist/client/fieldFeedback.js.map +0 -1
- package/dist/client/handoffs/copy.d.ts +0 -3
- package/dist/client/handoffs/copy.d.ts.map +0 -1
- package/dist/client/handoffs/copy.js +0 -47
- package/dist/client/handoffs/copy.js.map +0 -1
- package/dist/client/handoffs/fields.d.ts +0 -9
- package/dist/client/handoffs/fields.d.ts.map +0 -1
- package/dist/client/handoffs/fields.js +0 -34
- package/dist/client/handoffs/fields.js.map +0 -1
- package/dist/client/handoffs/form.d.ts +0 -36
- package/dist/client/handoffs/form.d.ts.map +0 -1
- package/dist/client/handoffs/form.js +0 -33
- package/dist/client/handoffs/form.js.map +0 -1
- package/dist/client/handoffs/setup.d.ts +0 -2
- package/dist/client/handoffs/setup.d.ts.map +0 -1
- package/dist/client/handoffs/setup.js +0 -125
- package/dist/client/handoffs/setup.js.map +0 -1
- package/dist/client/history/script.d.ts +0 -2
- package/dist/client/history/script.d.ts.map +0 -1
- package/dist/client/history/script.js +0 -128
- package/dist/client/history/script.js.map +0 -1
- package/dist/client/legacyRuntime.d.ts +0 -9
- package/dist/client/legacyRuntime.d.ts.map +0 -1
- package/dist/client/legacyRuntime.js +0 -15
- package/dist/client/legacyRuntime.js.map +0 -1
- package/dist/client/page/ageScript.d.ts +0 -2
- package/dist/client/page/ageScript.d.ts.map +0 -1
- package/dist/client/page/ageScript.js +0 -23
- package/dist/client/page/ageScript.js.map +0 -1
- package/dist/client/page/formReadingScript.d.ts +0 -2
- package/dist/client/page/formReadingScript.d.ts.map +0 -1
- package/dist/client/page/formReadingScript.js +0 -26
- package/dist/client/page/formReadingScript.js.map +0 -1
- package/dist/client/page/itemContextScript.d.ts +0 -2
- package/dist/client/page/itemContextScript.d.ts.map +0 -1
- package/dist/client/page/itemContextScript.js +0 -21
- package/dist/client/page/itemContextScript.js.map +0 -1
- package/dist/client/page/libraryScript.d.ts +0 -2
- package/dist/client/page/libraryScript.d.ts.map +0 -1
- package/dist/client/page/libraryScript.js +0 -85
- package/dist/client/page/libraryScript.js.map +0 -1
- package/dist/client/page/navigationHistoryScript.d.ts +0 -2
- package/dist/client/page/navigationHistoryScript.d.ts.map +0 -1
- package/dist/client/page/navigationHistoryScript.js +0 -47
- package/dist/client/page/navigationHistoryScript.js.map +0 -1
- package/dist/client/page/navigationScript.d.ts +0 -2
- package/dist/client/page/navigationScript.d.ts.map +0 -1
- package/dist/client/page/navigationScript.js +0 -113
- package/dist/client/page/navigationScript.js.map +0 -1
- package/dist/client/page/preferencesScript.d.ts +0 -2
- package/dist/client/page/preferencesScript.d.ts.map +0 -1
- package/dist/client/page/preferencesScript.js +0 -46
- package/dist/client/page/preferencesScript.js.map +0 -1
- package/dist/client/page/reactNavigationScript.d.ts +0 -2
- package/dist/client/page/reactNavigationScript.d.ts.map +0 -1
- package/dist/client/page/reactNavigationScript.js +0 -31
- package/dist/client/page/reactNavigationScript.js.map +0 -1
- package/dist/client/page/readingStateScript.d.ts +0 -2
- package/dist/client/page/readingStateScript.d.ts.map +0 -1
- package/dist/client/page/readingStateScript.js +0 -65
- package/dist/client/page/readingStateScript.js.map +0 -1
- package/dist/client/page/runtime.d.ts +0 -3
- package/dist/client/page/runtime.d.ts.map +0 -1
- package/dist/client/page/runtime.js +0 -111
- package/dist/client/page/runtime.js.map +0 -1
- package/dist/client/page/scripts.d.ts +0 -3
- package/dist/client/page/scripts.d.ts.map +0 -1
- package/dist/client/page/scripts.js +0 -91
- package/dist/client/page/scripts.js.map +0 -1
- package/dist/client/page/searchResultsScript.d.ts +0 -2
- package/dist/client/page/searchResultsScript.d.ts.map +0 -1
- package/dist/client/page/searchResultsScript.js +0 -64
- package/dist/client/page/searchResultsScript.js.map +0 -1
- package/dist/client/page/searchScript.d.ts +0 -2
- package/dist/client/page/searchScript.d.ts.map +0 -1
- package/dist/client/page/searchScript.js +0 -75
- package/dist/client/page/searchScript.js.map +0 -1
- package/dist/client/page/sidebarScript.d.ts +0 -2
- package/dist/client/page/sidebarScript.d.ts.map +0 -1
- package/dist/client/page/sidebarScript.js +0 -87
- package/dist/client/page/sidebarScript.js.map +0 -1
- package/dist/client/page/stateScript.d.ts +0 -2
- package/dist/client/page/stateScript.d.ts.map +0 -1
- package/dist/client/page/stateScript.js +0 -95
- package/dist/client/page/stateScript.js.map +0 -1
- package/dist/client/page/visualScript.d.ts +0 -2
- package/dist/client/page/visualScript.d.ts.map +0 -1
- package/dist/client/page/visualScript.js +0 -42
- package/dist/client/page/visualScript.js.map +0 -1
- package/dist/client/page/visualViewport.d.ts +0 -2
- package/dist/client/page/visualViewport.d.ts.map +0 -1
- package/dist/client/page/visualViewport.js +0 -87
- package/dist/client/page/visualViewport.js.map +0 -1
- package/dist/client/react/AnswerFocus.d.ts +0 -6
- package/dist/client/react/AnswerFocus.d.ts.map +0 -1
- package/dist/client/react/AnswerFocus.js +0 -12
- package/dist/client/react/AnswerFocus.js.map +0 -1
- package/dist/client/react/LegacyMain.d.ts +0 -9
- package/dist/client/react/LegacyMain.d.ts.map +0 -1
- package/dist/client/react/LegacyMain.js +0 -32
- package/dist/client/react/LegacyMain.js.map +0 -1
- package/dist/client/react/legacyPage.d.ts +0 -7
- package/dist/client/react/legacyPage.d.ts.map +0 -1
- package/dist/client/react/legacyPage.js +0 -63
- package/dist/client/react/legacyPage.js.map +0 -1
- package/dist/client/reconcile/patch.d.ts +0 -2
- package/dist/client/reconcile/patch.d.ts.map +0 -1
- package/dist/client/reconcile/patch.js +0 -64
- package/dist/client/reconcile/patch.js.map +0 -1
- package/dist/client/reconcile/signature.d.ts +0 -8
- package/dist/client/reconcile/signature.d.ts.map +0 -1
- package/dist/client/reconcile/signature.js.map +0 -1
- package/dist/client/reconcile/swap.d.ts +0 -2
- package/dist/client/reconcile/swap.d.ts.map +0 -1
- package/dist/client/reconcile/swap.js +0 -36
- package/dist/client/reconcile/swap.js.map +0 -1
- package/dist/client/responses/attach.d.ts +0 -2
- package/dist/client/responses/attach.d.ts.map +0 -1
- package/dist/client/responses/attach.js +0 -133
- package/dist/client/responses/attach.js.map +0 -1
- package/dist/client/responses/binding.d.ts +0 -3
- package/dist/client/responses/binding.d.ts.map +0 -1
- package/dist/client/responses/binding.js +0 -16
- package/dist/client/responses/binding.js.map +0 -1
- package/dist/client/responses/draft.d.ts +0 -13
- package/dist/client/responses/draft.d.ts.map +0 -1
- package/dist/client/responses/draft.js +0 -15
- package/dist/client/responses/draft.js.map +0 -1
- package/dist/client/responses/draftSession.d.ts +0 -8
- package/dist/client/responses/draftSession.d.ts.map +0 -1
- package/dist/client/responses/draftSession.js +0 -105
- package/dist/client/responses/draftSession.js.map +0 -1
- package/dist/client/responses/drafts.d.ts +0 -21
- package/dist/client/responses/drafts.d.ts.map +0 -1
- package/dist/client/responses/drafts.js +0 -68
- package/dist/client/responses/drafts.js.map +0 -1
- package/dist/client/responses/feedback.d.ts +0 -6
- package/dist/client/responses/feedback.d.ts.map +0 -1
- package/dist/client/responses/feedback.js +0 -77
- package/dist/client/responses/feedback.js.map +0 -1
- package/dist/client/responses/fields.d.ts +0 -12
- package/dist/client/responses/fields.d.ts.map +0 -1
- package/dist/client/responses/fields.js +0 -23
- package/dist/client/responses/fields.js.map +0 -1
- package/dist/client/responses/form.d.ts +0 -37
- package/dist/client/responses/form.d.ts.map +0 -1
- package/dist/client/responses/form.js +0 -43
- package/dist/client/responses/form.js.map +0 -1
- package/dist/client/responses/questionnaireControls.d.ts +0 -9
- package/dist/client/responses/questionnaireControls.d.ts.map +0 -1
- package/dist/client/responses/questionnaireControls.js +0 -82
- package/dist/client/responses/questionnaireControls.js.map +0 -1
- package/dist/client/responses/setup.d.ts +0 -2
- package/dist/client/responses/setup.d.ts.map +0 -1
- package/dist/client/responses/setup.js +0 -7
- package/dist/client/responses/setup.js.map +0 -1
- package/dist/client/responses/submit.d.ts +0 -5
- package/dist/client/responses/submit.d.ts.map +0 -1
- package/dist/client/responses/submit.js +0 -33
- package/dist/client/responses/submit.js.map +0 -1
- package/dist/client/views/savedScript.d.ts +0 -2
- package/dist/client/views/savedScript.d.ts.map +0 -1
- package/dist/client/views/savedScript.js +0 -89
- package/dist/client/views/savedScript.js.map +0 -1
- package/dist/server/diagnostics/html.d.ts +0 -8
- package/dist/server/diagnostics/html.d.ts.map +0 -1
- package/dist/server/diagnostics/html.js +0 -79
- package/dist/server/diagnostics/html.js.map +0 -1
- package/dist/server/diagnostics/page.d.ts +0 -55
- package/dist/server/diagnostics/page.d.ts.map +0 -1
- package/dist/server/diagnostics/page.js +0 -11
- package/dist/server/diagnostics/page.js.map +0 -1
- package/dist/server/handoffs/html.d.ts +0 -36
- package/dist/server/handoffs/html.d.ts.map +0 -1
- package/dist/server/handoffs/html.js +0 -31
- package/dist/server/handoffs/html.js.map +0 -1
- package/dist/server/handoffs/page.d.ts +0 -6
- package/dist/server/handoffs/page.d.ts.map +0 -1
- package/dist/server/handoffs/page.js +0 -34
- package/dist/server/handoffs/page.js.map +0 -1
- package/dist/server/http/changesPage.d.ts +0 -5
- package/dist/server/http/changesPage.d.ts.map +0 -1
- package/dist/server/http/changesPage.js +0 -13
- package/dist/server/http/changesPage.js.map +0 -1
- package/dist/server/http/readPage.d.ts +0 -4
- package/dist/server/http/readPage.d.ts.map +0 -1
- package/dist/server/http/readPage.js +0 -9
- package/dist/server/http/readPage.js.map +0 -1
- package/dist/server/http/start.d.ts +0 -5
- package/dist/server/http/start.d.ts.map +0 -1
- package/dist/server/http/start.js +0 -13
- package/dist/server/http/start.js.map +0 -1
- package/dist/server/page/startHtml.d.ts +0 -2
- package/dist/server/page/startHtml.d.ts.map +0 -1
- package/dist/server/page/startHtml.js +0 -10
- package/dist/server/page/startHtml.js.map +0 -1
- package/dist/server/responses/page.d.ts +0 -6
- package/dist/server/responses/page.d.ts.map +0 -1
- package/dist/server/responses/page.js +0 -25
- package/dist/server/responses/page.js.map +0 -1
- package/dist/server/results/criteria.d.ts +0 -3
- package/dist/server/results/criteria.d.ts.map +0 -1
- package/dist/server/results/criteria.js +0 -34
- package/dist/server/results/criteria.js.map +0 -1
- package/dist/server/results/feedback.d.ts +0 -6
- package/dist/server/results/feedback.d.ts.map +0 -1
- package/dist/server/results/feedback.js +0 -32
- package/dist/server/results/feedback.js.map +0 -1
- package/dist/server/results/page.d.ts +0 -6
- package/dist/server/results/page.d.ts.map +0 -1
- package/dist/server/results/page.js +0 -41
- package/dist/server/results/page.js.map +0 -1
- package/dist/server/rpc/transport.d.ts +0 -14
- package/dist/server/rpc/transport.d.ts.map +0 -1
- package/dist/server/rpc/transport.js +0 -15
- package/dist/server/rpc/transport.js.map +0 -1
- package/src/client/diagnostics/script.ts +0 -31
- package/src/client/fieldFeedback.ts +0 -53
- package/src/client/handoffs/copy.ts +0 -45
- package/src/client/handoffs/fields.ts +0 -38
- package/src/client/handoffs/form.ts +0 -41
- package/src/client/handoffs/setup.ts +0 -142
- package/src/client/history/script.ts +0 -127
- package/src/client/legacyRuntime.ts +0 -11
- package/src/client/page/ageScript.ts +0 -22
- package/src/client/page/formReadingScript.ts +0 -25
- package/src/client/page/itemContextScript.ts +0 -20
- package/src/client/page/libraryScript.ts +0 -84
- package/src/client/page/navigationHistoryScript.ts +0 -46
- package/src/client/page/navigationScript.ts +0 -113
- package/src/client/page/preferencesScript.ts +0 -45
- package/src/client/page/reactNavigationScript.ts +0 -30
- package/src/client/page/readingStateScript.ts +0 -64
- package/src/client/page/runtime.ts +0 -111
- package/src/client/page/scripts.ts +0 -91
- package/src/client/page/searchResultsScript.ts +0 -63
- package/src/client/page/searchScript.ts +0 -74
- package/src/client/page/sidebarScript.ts +0 -86
- package/src/client/page/stateScript.ts +0 -95
- package/src/client/page/visualScript.ts +0 -41
- package/src/client/page/visualViewport.ts +0 -86
- package/src/client/react/AnswerFocus.tsx +0 -10
- package/src/client/react/LegacyMain.tsx +0 -46
- package/src/client/react/legacyPage.ts +0 -69
- package/src/client/reconcile/patch.ts +0 -71
- package/src/client/reconcile/swap.ts +0 -37
- package/src/client/responses/attach.ts +0 -150
- package/src/client/responses/binding.ts +0 -16
- package/src/client/responses/draft.ts +0 -20
- package/src/client/responses/draftSession.ts +0 -108
- package/src/client/responses/drafts.ts +0 -82
- package/src/client/responses/feedback.ts +0 -81
- package/src/client/responses/fields.ts +0 -26
- package/src/client/responses/form.ts +0 -58
- package/src/client/responses/questionnaireControls.ts +0 -94
- package/src/client/responses/setup.ts +0 -6
- package/src/client/responses/submit.ts +0 -44
- package/src/client/views/savedScript.ts +0 -88
- package/src/server/diagnostics/html.ts +0 -93
- package/src/server/diagnostics/page.ts +0 -31
- package/src/server/handoffs/html.ts +0 -42
- package/src/server/handoffs/page.ts +0 -51
- package/src/server/http/changesPage.ts +0 -15
- package/src/server/http/readPage.ts +0 -13
- package/src/server/http/start.ts +0 -27
- package/src/server/page/startHtml.ts +0 -10
- package/src/server/responses/page.ts +0 -37
- package/src/server/results/criteria.ts +0 -37
- package/src/server/results/feedback.ts +0 -44
- package/src/server/results/page.ts +0 -63
- package/src/server/rpc/transport.ts +0 -34
|
@@ -4,8 +4,9 @@ import { useQuery } from "@shivaedev/effect-react/result-state.ts";
|
|
|
4
4
|
import type { Document } from "#browser/document/schema.ts";
|
|
5
5
|
import { documentQuery } from "#client/page/routeQuery.ts";
|
|
6
6
|
import { DocumentPage } from "./DocumentPage.tsx";
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
7
|
+
import type { MainLocation } from "./mainLocation.ts";
|
|
8
|
+
import { ProjectionMain } from "./ProjectionMain.tsx";
|
|
9
|
+
import { RemainingMain } from "./RemainingMain.tsx";
|
|
9
10
|
import type { ShellApi } from "./ShellApi.ts";
|
|
10
11
|
import { shellIds } from "./shellIds.ts";
|
|
11
12
|
import { useDocumentPage } from "./useDocumentPage.ts";
|
|
@@ -14,11 +15,9 @@ export function DocumentMain({
|
|
|
14
15
|
api,
|
|
15
16
|
url,
|
|
16
17
|
onPage,
|
|
17
|
-
initial,
|
|
18
18
|
}: {
|
|
19
19
|
readonly api: ShellApi;
|
|
20
20
|
readonly url: string;
|
|
21
|
-
readonly initial: string;
|
|
22
21
|
readonly onPage: (location: MainLocation) => void;
|
|
23
22
|
}) {
|
|
24
23
|
const query = useQuery(documentQuery(api, url));
|
|
@@ -34,8 +33,11 @@ export function DocumentMain({
|
|
|
34
33
|
const data = terminal ? undefined : (fresh ?? retained);
|
|
35
34
|
const status = readStatus(failure?._tag, Option.isSome(query.cause));
|
|
36
35
|
const hostRef = useDocumentPage({ data, onPage, pending: query.pending, status, url });
|
|
37
|
-
if (data?.reading?.board
|
|
38
|
-
return <
|
|
36
|
+
if (data?.reading?.board) {
|
|
37
|
+
return <ProjectionMain api={api} onPage={onPage} route="board" url={url} />;
|
|
38
|
+
}
|
|
39
|
+
if (url === "/" && failure?._tag === "NotFound") {
|
|
40
|
+
return <RemainingMain api={api} onPage={onPage} route="start" url={url} />;
|
|
39
41
|
}
|
|
40
42
|
return (
|
|
41
43
|
<>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { LibraryContext } from "./readingLibrary.ts";
|
|
3
|
+
import { shellIds } from "./shellIds.ts";
|
|
4
|
+
export function Favorite({ file, title }: { readonly file: string; readonly title: string }) {
|
|
5
|
+
const library = useContext(LibraryContext);
|
|
6
|
+
const saved = library.favorites.some((item) => item.file === file);
|
|
7
|
+
return (
|
|
8
|
+
<button
|
|
9
|
+
aria-pressed={saved}
|
|
10
|
+
id={shellIds.favoriteToggle}
|
|
11
|
+
onClick={() => library.toggle(file, document.getElementById("doc")?.querySelector("h1")?.textContent?.trim() || title)}
|
|
12
|
+
type="button"
|
|
13
|
+
>
|
|
14
|
+
{saved ? "Remove favorite" : "Save favorite"}
|
|
15
|
+
</button>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type ReactNode, useId, useLayoutEffect, useRef } from "react";
|
|
2
|
+
import { useField } from "@shivaedev/effect-form/react.ts";
|
|
3
|
+
import type { Fields, Form, Name } from "@shivaedev/effect-form/shape.ts";
|
|
4
|
+
|
|
5
|
+
type Control = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
6
|
+
export function FormField<TFields extends Fields, A, E, TRuntimeError>({
|
|
7
|
+
form,
|
|
8
|
+
name,
|
|
9
|
+
label,
|
|
10
|
+
maxLength,
|
|
11
|
+
required,
|
|
12
|
+
rows,
|
|
13
|
+
children,
|
|
14
|
+
autoComplete,
|
|
15
|
+
}: {
|
|
16
|
+
readonly form: Form<TFields, A, E, TRuntimeError>;
|
|
17
|
+
readonly name: Name<TFields>;
|
|
18
|
+
readonly label: string;
|
|
19
|
+
readonly maxLength?: number;
|
|
20
|
+
readonly required?: boolean;
|
|
21
|
+
readonly rows?: number;
|
|
22
|
+
readonly children?: ReactNode;
|
|
23
|
+
readonly autoComplete?: string;
|
|
24
|
+
}) {
|
|
25
|
+
const field = useField(form, name);
|
|
26
|
+
const ref = useRef<Control | null>(null);
|
|
27
|
+
const id = useId();
|
|
28
|
+
const value = typeof field.value === "string" ? field.value : "";
|
|
29
|
+
const error = name === "author" && !value.trim() ? "Add your local author label." : field.error;
|
|
30
|
+
useLayoutEffect(() => ref.current?.setCustomValidity(error ?? ""), [error]);
|
|
31
|
+
const props = {
|
|
32
|
+
"aria-describedby": `${id}-error`,
|
|
33
|
+
"aria-invalid": Boolean(error),
|
|
34
|
+
id,
|
|
35
|
+
name,
|
|
36
|
+
onBlur: field.onBlur,
|
|
37
|
+
ref: (element: Control | null) => {
|
|
38
|
+
ref.current = element;
|
|
39
|
+
},
|
|
40
|
+
required,
|
|
41
|
+
value,
|
|
42
|
+
};
|
|
43
|
+
function change(next: string) {
|
|
44
|
+
form.values.set({ ...form.values.value, [name]: next || (name === "supersedes" ? undefined : "") });
|
|
45
|
+
form.blur(name);
|
|
46
|
+
}
|
|
47
|
+
let control: ReactNode;
|
|
48
|
+
if (children) {
|
|
49
|
+
control = (
|
|
50
|
+
<select {...props} onChange={(event) => change(event.currentTarget.value)} onInput={(event) => change(event.currentTarget.value)}>
|
|
51
|
+
{children}
|
|
52
|
+
</select>
|
|
53
|
+
);
|
|
54
|
+
} else if (rows) {
|
|
55
|
+
control = <textarea {...props} maxLength={maxLength} onInput={(event) => change(event.currentTarget.value)} rows={rows} />;
|
|
56
|
+
} else {
|
|
57
|
+
control = <input {...props} autoComplete={autoComplete} maxLength={maxLength} onInput={(event) => change(event.currentTarget.value)} />;
|
|
58
|
+
}
|
|
59
|
+
return (
|
|
60
|
+
<label htmlFor={id}>
|
|
61
|
+
{label}
|
|
62
|
+
{control}
|
|
63
|
+
<span className="response-field-error" hidden={!error} id={`${id}-error`}>
|
|
64
|
+
{error}
|
|
65
|
+
</span>
|
|
66
|
+
</label>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Option } from "effect";
|
|
2
|
+
import type { HandoffPreview } from "#browser/handoffs/schema.ts";
|
|
3
|
+
import type { HandoffProjection } from "#browser/views/remaining.ts";
|
|
4
|
+
import { FormField } from "./FormField.tsx";
|
|
5
|
+
import { HandoffPrompt } from "./HandoffPrompt.tsx";
|
|
6
|
+
import { shellIds } from "./shellIds.ts";
|
|
7
|
+
import { useFormFocus } from "./useFormFocus.ts";
|
|
8
|
+
import { useHandoffForm } from "./useHandoffForm.ts";
|
|
9
|
+
export function HandoffForm({ data }: { readonly data: HandoffProjection }) {
|
|
10
|
+
const source = data.source;
|
|
11
|
+
if (!source) {
|
|
12
|
+
return <p role="status">Source unavailable: {data.unavailable}. Existing handoffs remain readable.</p>;
|
|
13
|
+
}
|
|
14
|
+
return <HandoffSession data={data} key={source.item} source={source} />;
|
|
15
|
+
}
|
|
16
|
+
function HandoffSession({ data, source }: { readonly data: HandoffProjection; readonly source: HandoffPreview }) {
|
|
17
|
+
const state = useHandoffForm(data, source);
|
|
18
|
+
const focus = useFormFocus(state.draft.key);
|
|
19
|
+
const saved = Option.getOrUndefined(state.created.created);
|
|
20
|
+
const writableStatus = typeof window === "undefined" ? "JavaScript is required to prepare a handoff." : state.status;
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
<details>
|
|
24
|
+
<summary>Exact source being reviewed</summary>
|
|
25
|
+
<pre>{source.context}</pre>
|
|
26
|
+
</details>
|
|
27
|
+
<form
|
|
28
|
+
{...focus}
|
|
29
|
+
data-item={source.item}
|
|
30
|
+
data-question={source.id}
|
|
31
|
+
data-revision={source.reviewedRevision}
|
|
32
|
+
data-source={source.source}
|
|
33
|
+
data-writable={data.writable}
|
|
34
|
+
id={shellIds.handoffForm}
|
|
35
|
+
noValidate
|
|
36
|
+
onInput={state.edit}
|
|
37
|
+
onSubmit={(event) => {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
if (data.writable && state.preview && state.valid && !state.created.saving) {
|
|
40
|
+
state.created.save();
|
|
41
|
+
}
|
|
42
|
+
}}
|
|
43
|
+
>
|
|
44
|
+
<FormField form={state.form} label="Recipient — local agent label" maxLength={200} name="recipient" required />
|
|
45
|
+
<FormField form={state.form} label="Goal" maxLength={8192} name="goal" required rows={3} />
|
|
46
|
+
<FormField form={state.form} label="Constraints (optional)" maxLength={8192} name="constraints" rows={4} />
|
|
47
|
+
<FormField form={state.form} label="Next action" maxLength={8192} name="nextAction" required rows={3} />
|
|
48
|
+
<p>
|
|
49
|
+
The file includes the full reviewed source and its declared acceptance criteria. Preparing it does not change the item or start an agent.
|
|
50
|
+
Drafts stay in this browser for seven days after the last edit, with a 256 KiB limit per draft.
|
|
51
|
+
</p>
|
|
52
|
+
<button
|
|
53
|
+
disabled={typeof window === "undefined" || state.created.saving}
|
|
54
|
+
id={shellIds.handoffPreview}
|
|
55
|
+
onClick={state.showPreview}
|
|
56
|
+
type="button"
|
|
57
|
+
>
|
|
58
|
+
Preview Markdown
|
|
59
|
+
</button>
|
|
60
|
+
<pre hidden={!state.preview} id={shellIds.handoffPreviewContent}>
|
|
61
|
+
{state.preview}
|
|
62
|
+
</pre>
|
|
63
|
+
<button disabled={!(data.writable && state.preview && state.valid) || state.created.saving} id={shellIds.handoffSubmit} type="submit">
|
|
64
|
+
Prepare handoff
|
|
65
|
+
</button>
|
|
66
|
+
<button disabled={typeof window === "undefined" || state.created.saving} id={shellIds.handoffClear} onClick={state.clear} type="button">
|
|
67
|
+
Clear draft
|
|
68
|
+
</button>
|
|
69
|
+
<p id={shellIds.handoffStatus} role="status">
|
|
70
|
+
{data.writable ? writableStatus : `${state.status} Read-only mode. Restart with --responses to enable local writes.`}
|
|
71
|
+
</p>
|
|
72
|
+
<section hidden={!saved} id={shellIds.handoffPrepared}>
|
|
73
|
+
{saved && <HandoffPrompt id={saved.id} prepared prompt={saved.prompt} />}
|
|
74
|
+
</section>
|
|
75
|
+
</form>
|
|
76
|
+
</>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { HandoffProjection } from "#browser/views/remaining.ts";
|
|
2
|
+
import { fileUrl } from "#files/url.ts";
|
|
3
|
+
import { HandoffForm } from "./HandoffForm.tsx";
|
|
4
|
+
import { HandoffPrompt } from "./HandoffPrompt.tsx";
|
|
5
|
+
import { ResponseMarkdown } from "./ResponseMarkdown.tsx";
|
|
6
|
+
import { shellIds } from "./shellIds.ts";
|
|
7
|
+
export function HandoffPage({ data }: { readonly data: HandoffProjection }) {
|
|
8
|
+
return (
|
|
9
|
+
<section className="response-panel">
|
|
10
|
+
<h1>Agent handoff · {data.item}</h1>
|
|
11
|
+
<p>
|
|
12
|
+
Prepare a Markdown file, then copy a tiny prompt into your existing agent session. Sessions may poll or wait for human answers. Agents record
|
|
13
|
+
receipt with ordinary file edits.
|
|
14
|
+
</p>
|
|
15
|
+
{Boolean(data.source) && (
|
|
16
|
+
<section className="response-context">
|
|
17
|
+
<ResponseMarkdown file={data.source?.source ?? ""} source={data.background} />
|
|
18
|
+
</section>
|
|
19
|
+
)}
|
|
20
|
+
<HandoffForm data={data} />
|
|
21
|
+
<section id={shellIds.handoffHistory}>
|
|
22
|
+
<h2>Prepared handoffs</h2>
|
|
23
|
+
{data.reading.unknown.length > 0 && (
|
|
24
|
+
<p role="status">
|
|
25
|
+
Some handoff history is unavailable: {data.reading.unknown.join(", ")}. Missing records do not establish that no receipt exists.
|
|
26
|
+
</p>
|
|
27
|
+
)}
|
|
28
|
+
{data.reading.records.length === 0 && <p>No readable handoff is recorded for this item.</p>}
|
|
29
|
+
{data.reading.records.map((record) => (
|
|
30
|
+
<HandoffEntry current={data.source} key={record.id} record={record} />
|
|
31
|
+
))}
|
|
32
|
+
</section>
|
|
33
|
+
</section>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function HandoffEntry({
|
|
38
|
+
record,
|
|
39
|
+
current,
|
|
40
|
+
}: {
|
|
41
|
+
readonly record: HandoffProjection["reading"]["records"][number];
|
|
42
|
+
readonly current: HandoffProjection["source"];
|
|
43
|
+
}) {
|
|
44
|
+
const h = record.handoff;
|
|
45
|
+
const same = current?.reviewedRevision === h.reviewedRevision && current.source === h.source;
|
|
46
|
+
return (
|
|
47
|
+
<article id={record.id}>
|
|
48
|
+
<h3>
|
|
49
|
+
<a href={fileUrl(record.file)}>{record.id}</a> · {h.recipient}
|
|
50
|
+
</h3>
|
|
51
|
+
<p>
|
|
52
|
+
<b>Receipt: {h.state}</b>
|
|
53
|
+
{h.state === "requested" ? " — prepared; receipt not confirmed" : ""}. Execution and acceptance are not recorded by this state.
|
|
54
|
+
</p>
|
|
55
|
+
<p>
|
|
56
|
+
{same ? "Current reviewed source" : "Earlier or unavailable reviewed source; recheck before acting"} ·{" "}
|
|
57
|
+
<a href={fileUrl(h.source)}>{h.source}</a> · <code>{h.reviewedRevision}</code>
|
|
58
|
+
</p>
|
|
59
|
+
{Boolean(h.by || h.note) && (
|
|
60
|
+
<p>
|
|
61
|
+
{h.by ?? "Attribution not recorded"}
|
|
62
|
+
{h.note ? ` · ${h.note}` : ""}
|
|
63
|
+
</p>
|
|
64
|
+
)}
|
|
65
|
+
<h4>Goal</h4>
|
|
66
|
+
<ResponseMarkdown file={h.source} source={h.goal} />
|
|
67
|
+
<h4>Constraints</h4>
|
|
68
|
+
{h.constraints ? <ResponseMarkdown file={h.source} source={h.constraints} /> : <p>None recorded.</p>}
|
|
69
|
+
<h4>Next action</h4>
|
|
70
|
+
<ResponseMarkdown file={h.source} source={h.nextAction} />
|
|
71
|
+
<HandoffPrompt id={record.id} prompt={record.prompt} />
|
|
72
|
+
<details>
|
|
73
|
+
<summary>Exact reviewed source snapshot</summary>
|
|
74
|
+
<pre>{record.context}</pre>
|
|
75
|
+
</details>
|
|
76
|
+
</article>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useRef, useState } from "react";
|
|
2
|
+
export function HandoffPrompt({ id, prompt, prepared = false }: { readonly id: string; readonly prompt: string; readonly prepared?: boolean }) {
|
|
3
|
+
const ref = useRef<HTMLTextAreaElement>(null);
|
|
4
|
+
const [status, setStatus] = useState(
|
|
5
|
+
prepared
|
|
6
|
+
? "Prepared; receipt not confirmed. Copy the prompt to your agent."
|
|
7
|
+
: "Copy and paste this into your agent session. Preparing a file does not notify an agent.",
|
|
8
|
+
);
|
|
9
|
+
async function handleCopy() {
|
|
10
|
+
try {
|
|
11
|
+
await navigator.clipboard.writeText(prompt);
|
|
12
|
+
setStatus("Prompt copied. Paste it into your existing agent session.");
|
|
13
|
+
} catch {
|
|
14
|
+
ref.current?.focus();
|
|
15
|
+
ref.current?.select();
|
|
16
|
+
setStatus("Clipboard unavailable. The prompt is selected; copy it manually.");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return (
|
|
20
|
+
<div className="handoff-copy">
|
|
21
|
+
<label>
|
|
22
|
+
Prompt for your existing agent session
|
|
23
|
+
<textarea id={`handoff-prompt-${id}`} readOnly ref={ref} rows={3} value={prompt} />
|
|
24
|
+
</label>
|
|
25
|
+
<button data-handoff-copy={`handoff-prompt-${id}`} onClick={handleCopy} type="button">
|
|
26
|
+
Copy tiny prompt
|
|
27
|
+
</button>
|
|
28
|
+
<p data-copy-status role="status">
|
|
29
|
+
{status}
|
|
30
|
+
</p>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { MainLocation } from "./mainLocation.ts";
|
|
2
3
|
import { shellIds } from "./shellIds.ts";
|
|
4
|
+
import type { AppearanceControls } from "./useAppearance.ts";
|
|
5
|
+
import type { SidebarControls } from "./useSidebar.ts";
|
|
3
6
|
export function InboxCount({ count, id }: { readonly count: number | null; readonly id: string }) {
|
|
4
7
|
return (
|
|
5
8
|
<span aria-label={`${count ?? "?"} waiting`} className="inbox-count" id={id} role="status">
|
|
@@ -7,29 +10,47 @@ export function InboxCount({ count, id }: { readonly count: number | null; reado
|
|
|
7
10
|
</span>
|
|
8
11
|
);
|
|
9
12
|
}
|
|
10
|
-
export function Header({
|
|
13
|
+
export function Header({
|
|
14
|
+
main,
|
|
15
|
+
count,
|
|
16
|
+
appearance,
|
|
17
|
+
sidebar,
|
|
18
|
+
openSearch,
|
|
19
|
+
live,
|
|
20
|
+
updates,
|
|
21
|
+
status,
|
|
22
|
+
}: {
|
|
23
|
+
readonly main: MainLocation;
|
|
24
|
+
readonly count: number | null;
|
|
25
|
+
readonly appearance: AppearanceControls;
|
|
26
|
+
readonly sidebar: SidebarControls;
|
|
27
|
+
readonly openSearch: () => void;
|
|
28
|
+
readonly live: ReactNode;
|
|
29
|
+
readonly updates: ReactNode;
|
|
30
|
+
readonly status: string;
|
|
31
|
+
}) {
|
|
11
32
|
return (
|
|
12
33
|
<>
|
|
13
34
|
<header className="bar">
|
|
14
|
-
<button aria-controls="sidebar" aria-expanded=
|
|
35
|
+
<button aria-controls="sidebar" aria-expanded={sidebar.open} id={shellIds.sidebarToggle} onClick={() => sidebar.toggle()} type="button">
|
|
15
36
|
Files
|
|
16
37
|
</button>
|
|
17
38
|
<Breadcrumbs file={main.file} />
|
|
18
39
|
<a aria-current={main.view === "inbox" ? "page" : undefined} className="inbox-link work-open" href="/_board/inbox" id={shellIds.inboxTopbar}>
|
|
19
40
|
Inbox <InboxCount count={count} id={shellIds.inboxTopbarCount} />
|
|
20
41
|
</a>
|
|
21
|
-
<button aria-controls="search-dialog" aria-haspopup="dialog"
|
|
42
|
+
<button aria-controls="search-dialog" aria-haspopup="dialog" id={shellIds.searchOpen} onClick={() => openSearch()} type="button">
|
|
22
43
|
Search <kbd>⌘/Ctrl K</kbd>
|
|
23
44
|
</button>
|
|
24
|
-
|
|
25
|
-
|
|
45
|
+
{live}
|
|
46
|
+
<span id={shellIds.navigationStatus} role="status">
|
|
47
|
+
{status}
|
|
26
48
|
</span>
|
|
27
|
-
<span id={shellIds.navigationStatus} role="status" />
|
|
28
49
|
</header>
|
|
29
50
|
<fieldset aria-label="Reading preferences" className="preferences">
|
|
30
51
|
<div className="preference">
|
|
31
52
|
<label htmlFor="theme">Theme</label>
|
|
32
|
-
<select
|
|
53
|
+
<select id={shellIds.theme} onChange={(event) => appearance.change({ theme: event.target.value })} value={appearance.theme}>
|
|
33
54
|
<option value="system">System</option>
|
|
34
55
|
<option value="light">Light</option>
|
|
35
56
|
<option value="dark">Dark</option>
|
|
@@ -37,15 +58,15 @@ export function Header({ main, count }: { readonly main: MainLocation; readonly
|
|
|
37
58
|
</div>
|
|
38
59
|
<div className="preference">
|
|
39
60
|
<label htmlFor="density">Density</label>
|
|
40
|
-
<select
|
|
61
|
+
<select id={shellIds.density} onChange={(event) => appearance.change({ density: event.target.value })} value={appearance.density}>
|
|
41
62
|
<option value="comfortable">Comfortable</option>
|
|
42
63
|
<option value="compact">Compact</option>
|
|
43
64
|
</select>
|
|
44
65
|
</div>
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
66
|
+
{updates}
|
|
67
|
+
<span id={shellIds.preferenceStatus} role="status">
|
|
68
|
+
{appearance.notice}
|
|
69
|
+
</span>
|
|
49
70
|
</fieldset>
|
|
50
71
|
</>
|
|
51
72
|
);
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { fileUrl } from "#files/url.ts";
|
|
2
|
+
import type { HistoryComparison as Comparison } from "#history/schema.ts";
|
|
3
|
+
export function HistoryComparison({ data }: { readonly data: Comparison }) {
|
|
4
|
+
const counts = (["added", "removed", "changed"] as const)
|
|
5
|
+
.map((kind) => `${data.changes.filter((change) => change.kind === kind).length} ${kind}`)
|
|
6
|
+
.join(" · ");
|
|
7
|
+
return (
|
|
8
|
+
<>
|
|
9
|
+
<p>
|
|
10
|
+
Compared with your observation at <time>{data.recordedAt}</time>.
|
|
11
|
+
</p>
|
|
12
|
+
<p role="status">{counts}</p>
|
|
13
|
+
{data.changes.length === 0 && <p>No source changes since that observation.</p>}
|
|
14
|
+
{data.issues.length > 0 && (
|
|
15
|
+
<aside aria-label="Identity limitations">
|
|
16
|
+
<ul>
|
|
17
|
+
{data.issues.map((issue) => (
|
|
18
|
+
<li key={issue}>{issue}</li>
|
|
19
|
+
))}
|
|
20
|
+
</ul>
|
|
21
|
+
<p>Ambiguous identities are compared by source path only.</p>
|
|
22
|
+
</aside>
|
|
23
|
+
)}
|
|
24
|
+
{data.changes.map((change) => (
|
|
25
|
+
<HistoryChange change={change} key={change.before?.file ?? change.after?.file} />
|
|
26
|
+
))}
|
|
27
|
+
</>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function HistoryChange({ change }: { readonly change: Comparison["changes"][number] }) {
|
|
32
|
+
const file = change.after?.file ?? change.before?.file ?? "";
|
|
33
|
+
const key = change.before ? `before:${change.before.file}` : `added:${file}`;
|
|
34
|
+
return (
|
|
35
|
+
<article className="history-change" data-key={key}>
|
|
36
|
+
<h2>
|
|
37
|
+
{change.kind}: {file}
|
|
38
|
+
</h2>
|
|
39
|
+
{change.before && change.after && change.before.file !== file && <p>Previously {change.before.file}</p>}
|
|
40
|
+
<ul>
|
|
41
|
+
{change.reasons.map((reason) => (
|
|
42
|
+
<li key={reason}>{reason}</li>
|
|
43
|
+
))}
|
|
44
|
+
</ul>
|
|
45
|
+
{change.after ? <a href={fileUrl(change.after.file)}>Read current source</a> : <p>Removed source; no current document link.</p>}
|
|
46
|
+
{Boolean(change.before) && (
|
|
47
|
+
<details data-history-source="remembered" data-key={`${key}:Remembered`}>
|
|
48
|
+
<summary>Remembered source (plain text)</summary>
|
|
49
|
+
<pre className="history-source">{change.before?.source}</pre>
|
|
50
|
+
</details>
|
|
51
|
+
)}
|
|
52
|
+
{Boolean(change.after) && (
|
|
53
|
+
<details data-history-source="current" data-key={`${key}:Current`}>
|
|
54
|
+
<summary>Current source (plain text)</summary>
|
|
55
|
+
<pre className="history-source">{change.after?.source}</pre>
|
|
56
|
+
</details>
|
|
57
|
+
)}
|
|
58
|
+
</article>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Option } from "effect";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { useQuery } from "@shivaedev/effect-react/result-state.ts";
|
|
4
|
+
import { historyStore } from "./historyStore.ts";
|
|
5
|
+
import type { ShellApi } from "./ShellApi.ts";
|
|
6
|
+
|
|
7
|
+
export function HistoryRetention({ api }: { readonly api: ShellApi }) {
|
|
8
|
+
const [store] = useState(historyStore);
|
|
9
|
+
const [baseline, setBaseline] = useState(store.read);
|
|
10
|
+
const query = useQuery(api.history.query({ action: "check", baseline }));
|
|
11
|
+
const data = Option.getOrUndefined(query.data);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (data?.discardBaseline && store.read() === baseline) {
|
|
14
|
+
store.write(null);
|
|
15
|
+
setBaseline(null);
|
|
16
|
+
document.documentElement.dataset.historyNotice = data.reason;
|
|
17
|
+
}
|
|
18
|
+
}, [baseline, data, store]);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
function sync(event: StorageEvent) {
|
|
21
|
+
if (event.key === store.key || event.key === null) {
|
|
22
|
+
setBaseline(store.read());
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
window.addEventListener("storage", sync);
|
|
26
|
+
return () => window.removeEventListener("storage", sync);
|
|
27
|
+
}, [store]);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BoardProjection } from "#browser/views/schema.ts";
|
|
2
|
+
import { DocumentView } from "#client/document/View.ts";
|
|
3
|
+
import { AnswerPanel } from "./AnswerPanel.tsx";
|
|
4
|
+
import { DocumentContext } from "./DocumentContext.tsx";
|
|
5
|
+
export function HomeBoard({ data }: { readonly data: BoardProjection }) {
|
|
6
|
+
return (
|
|
7
|
+
<>
|
|
8
|
+
<DocumentContext document={data.document} />
|
|
9
|
+
<DocumentView board={data.counts} document={data.document} />
|
|
10
|
+
{data.document.metadata.kind === "question" && data.document.metadata.question === undefined && data.document.identity && (
|
|
11
|
+
<AnswerPanel document={data.document} />
|
|
12
|
+
)}
|
|
13
|
+
</>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { InboxProjection } from "#browser/views/schema.ts";
|
|
2
|
+
import { Age } from "./Age.tsx";
|
|
3
|
+
export function InboxPage({ data }: { readonly data: InboxProjection }) {
|
|
4
|
+
return (
|
|
5
|
+
<>
|
|
6
|
+
<header className="work-head">
|
|
7
|
+
<p className="work-eyebrow">WORKSPACE · INBOX</p>
|
|
8
|
+
<h1>Inbox</h1>
|
|
9
|
+
<p>Questions and work waiting on a person. Oldest changed source first.</p>
|
|
10
|
+
</header>
|
|
11
|
+
<p className="work-total" role="status">
|
|
12
|
+
{data.complete ? `${data.items.length} waiting` : "Count unavailable"}
|
|
13
|
+
</p>
|
|
14
|
+
<section aria-label="Waiting on you" className="inbox-list">
|
|
15
|
+
<h2>Waiting on you</h2>
|
|
16
|
+
<InboxContent data={data} />
|
|
17
|
+
</section>
|
|
18
|
+
</>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
function InboxContent({ data }: { readonly data: InboxProjection }) {
|
|
22
|
+
if (!data.complete) {
|
|
23
|
+
return <p role="status">Workspace incomplete. Inbox membership and count are unavailable.</p>;
|
|
24
|
+
}
|
|
25
|
+
if (data.items.length === 0) {
|
|
26
|
+
return (
|
|
27
|
+
<p className="empty">
|
|
28
|
+
{data.sourceIssues ? "No classified waiting items. Check source issues in Overview." : "All quiet — nothing is waiting on a person."}
|
|
29
|
+
</p>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
return data.items.map((item) => <InboxRow item={item} key={item.file} />);
|
|
33
|
+
}
|
|
34
|
+
function InboxRow({ item }: { readonly item: InboxProjection["items"][number] }) {
|
|
35
|
+
return (
|
|
36
|
+
<article className="inbox-row">
|
|
37
|
+
<div>
|
|
38
|
+
<h3>
|
|
39
|
+
<a href={item.href}>{item.title}</a>
|
|
40
|
+
</h3>
|
|
41
|
+
<p>{item.reason}</p>
|
|
42
|
+
{Boolean(item.problem) && (
|
|
43
|
+
<p className="inbox-problem" role="status">
|
|
44
|
+
{item.problem} — open the source to resolve it.
|
|
45
|
+
</p>
|
|
46
|
+
)}
|
|
47
|
+
</div>
|
|
48
|
+
<p className="inbox-age">{item.modified === undefined ? "Age unavailable" : <Age modified={item.modified} />}</p>
|
|
49
|
+
</article>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useAtomValue } from "@effect/atom-react";
|
|
2
|
+
import { Option } from "effect";
|
|
3
|
+
import * as Atom from "effect/reactivity/Atom";
|
|
4
|
+
import { useEffect, useMemo, useState } from "react";
|
|
5
|
+
import { useQuery } from "@shivaedev/effect-react/result-state.ts";
|
|
6
|
+
import type { BrowserClient } from "#client/client.ts";
|
|
7
|
+
import { activeRead } from "./activeRead.ts";
|
|
8
|
+
import { liveStatus } from "./liveStatus.ts";
|
|
9
|
+
import { shellIds } from "./shellIds.ts";
|
|
10
|
+
|
|
11
|
+
const opening = Atom.make({ failed: false, pending: true });
|
|
12
|
+
interface Page {
|
|
13
|
+
readonly baseline: string | null;
|
|
14
|
+
readonly kind: string;
|
|
15
|
+
readonly url: string;
|
|
16
|
+
}
|
|
17
|
+
export function LiveControls({
|
|
18
|
+
client,
|
|
19
|
+
current,
|
|
20
|
+
navigationPending,
|
|
21
|
+
navigationFailed,
|
|
22
|
+
}: {
|
|
23
|
+
readonly client: BrowserClient;
|
|
24
|
+
readonly current: string;
|
|
25
|
+
readonly navigationPending: boolean;
|
|
26
|
+
readonly navigationFailed: boolean;
|
|
27
|
+
}) {
|
|
28
|
+
const status = useAtomValue(client.updates.status);
|
|
29
|
+
const paused = useAtomValue(client.updates.paused);
|
|
30
|
+
const watcher = useQuery(client.api.watcher.query());
|
|
31
|
+
const watching = Option.getOrUndefined(watcher.data)?.watching === true;
|
|
32
|
+
const [page, setPage] = useState<Page>();
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
function sync() {
|
|
35
|
+
const doc = document.getElementById("doc");
|
|
36
|
+
if (doc?.dataset.route !== current) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
setPage({
|
|
40
|
+
baseline: doc?.querySelector<HTMLElement>("[data-baseline]")?.dataset.baseline || null,
|
|
41
|
+
kind: doc?.dataset.projection ?? "document",
|
|
42
|
+
url: current,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
sync();
|
|
46
|
+
document.addEventListener("board-page", sync);
|
|
47
|
+
return () => document.removeEventListener("board-page", sync);
|
|
48
|
+
}, [current]);
|
|
49
|
+
const atom = useMemo(() => (page ? activeRead(client, page.kind, page.url, page.baseline) : opening), [client, page]);
|
|
50
|
+
const reading = useAtomValue(atom);
|
|
51
|
+
const displayed = liveStatus({
|
|
52
|
+
connection: status.connection,
|
|
53
|
+
failed: reading.failed,
|
|
54
|
+
navigationFailed,
|
|
55
|
+
paused,
|
|
56
|
+
pending: status.pending,
|
|
57
|
+
waiting: navigationPending || reading.pending,
|
|
58
|
+
watching,
|
|
59
|
+
});
|
|
60
|
+
useEffect(
|
|
61
|
+
() =>
|
|
62
|
+
client.registry.subscribe(
|
|
63
|
+
client.updates.paused,
|
|
64
|
+
(value) => {
|
|
65
|
+
if (!value) {
|
|
66
|
+
document.dispatchEvent(new Event("board-updates-resumed"));
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{ immediate: true },
|
|
70
|
+
),
|
|
71
|
+
[client],
|
|
72
|
+
);
|
|
73
|
+
return (
|
|
74
|
+
<span className="live" data-state={displayed.state} id={shellIds.live} role="status" title={displayed.title}>
|
|
75
|
+
{displayed.text}
|
|
76
|
+
</span>
|
|
77
|
+
);
|
|
78
|
+
}
|