@stigmer/react 3.1.1 → 3.1.3
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/composer/SessionComposer.d.ts +25 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +19 -8
- package/composer/SessionComposer.js.map +1 -1
- package/execution/ArtifactContentRenderer.d.ts +11 -1
- package/execution/ArtifactContentRenderer.d.ts.map +1 -1
- package/execution/ArtifactContentRenderer.js +39 -15
- package/execution/ArtifactContentRenderer.js.map +1 -1
- package/execution/ArtifactPreviewModal.d.ts +5 -5
- package/execution/ArtifactPreviewModal.js +4 -4
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/FileChangeProgressBar.d.ts +47 -0
- package/execution/FileChangeProgressBar.d.ts.map +1 -0
- package/execution/FileChangeProgressBar.js +49 -0
- package/execution/FileChangeProgressBar.js.map +1 -0
- package/execution/FileChangesView.d.ts.map +1 -1
- package/execution/FileChangesView.js +19 -4
- package/execution/FileChangesView.js.map +1 -1
- package/execution/FilePathContext.d.ts +8 -1
- package/execution/FilePathContext.d.ts.map +1 -1
- package/execution/FilePathContext.js.map +1 -1
- package/execution/FilePathLink.d.ts.map +1 -1
- package/execution/FilePathLink.js +21 -6
- package/execution/FilePathLink.js.map +1 -1
- package/execution/FileReviewAtoms.d.ts +27 -0
- package/execution/FileReviewAtoms.d.ts.map +1 -0
- package/execution/FileReviewAtoms.js +64 -0
- package/execution/FileReviewAtoms.js.map +1 -0
- package/execution/FileReviewCard.d.ts +2 -2
- package/execution/FileReviewCard.d.ts.map +1 -1
- package/execution/FileReviewCard.js +32 -62
- package/execution/FileReviewCard.js.map +1 -1
- package/execution/MessageEntry.d.ts +20 -0
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +19 -5
- package/execution/MessageEntry.js.map +1 -1
- package/execution/MessageThread.d.ts +75 -13
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +195 -27
- package/execution/MessageThread.js.map +1 -1
- package/execution/PlanArtifactCard.d.ts +36 -21
- package/execution/PlanArtifactCard.d.ts.map +1 -1
- package/execution/PlanArtifactCard.js +39 -25
- package/execution/PlanArtifactCard.js.map +1 -1
- package/execution/PlanCompletionCard.d.ts +4 -4
- package/execution/PlanCompletionCard.d.ts.map +1 -1
- package/execution/PlanCompletionCard.js +4 -4
- package/execution/PlanCompletionCard.js.map +1 -1
- package/execution/PlanDocumentMessage.d.ts +32 -0
- package/execution/PlanDocumentMessage.d.ts.map +1 -0
- package/execution/PlanDocumentMessage.js +37 -0
- package/execution/PlanDocumentMessage.js.map +1 -0
- package/execution/PlanStreamingCard.d.ts +50 -0
- package/execution/PlanStreamingCard.d.ts.map +1 -0
- package/execution/PlanStreamingCard.js +40 -0
- package/execution/PlanStreamingCard.js.map +1 -0
- package/execution/index.d.ts +9 -1
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +4 -0
- package/execution/index.js.map +1 -1
- package/execution/use-build-from-plan-hotkey.d.ts +1 -1
- package/execution/use-build-from-plan-hotkey.js +1 -1
- package/execution/useArtifactCopy.d.ts +51 -0
- package/execution/useArtifactCopy.d.ts.map +1 -0
- package/execution/useArtifactCopy.js +75 -0
- package/execution/useArtifactCopy.js.map +1 -0
- package/execution/useArtifactDownload.d.ts.map +1 -1
- package/execution/useArtifactDownload.js +17 -5
- package/execution/useArtifactDownload.js.map +1 -1
- package/execution/useCreateAgentExecution.d.ts +12 -0
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js +5 -1
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/github/decodeGitHubContent.d.ts +29 -0
- package/github/decodeGitHubContent.d.ts.map +1 -0
- package/github/decodeGitHubContent.js +72 -0
- package/github/decodeGitHubContent.js.map +1 -0
- package/github/index.d.ts +1 -0
- package/github/index.d.ts.map +1 -1
- package/github/index.js +1 -0
- package/github/index.js.map +1 -1
- package/github/useGitHubFileReader.d.ts +26 -0
- package/github/useGitHubFileReader.d.ts.map +1 -0
- package/github/useGitHubFileReader.js +106 -0
- package/github/useGitHubFileReader.js.map +1 -0
- package/github/useGitHubTreeLister.d.ts.map +1 -1
- package/github/useGitHubTreeLister.js +6 -2
- package/github/useGitHubTreeLister.js.map +1 -1
- package/index.d.ts +9 -9
- package/index.d.ts.map +1 -1
- package/index.js +5 -5
- package/index.js.map +1 -1
- package/internal/ResizableSplit.d.ts +72 -22
- package/internal/ResizableSplit.d.ts.map +1 -1
- package/internal/ResizableSplit.js +96 -38
- package/internal/ResizableSplit.js.map +1 -1
- package/internal/VirtualizedThread.d.ts +5 -3
- package/internal/VirtualizedThread.d.ts.map +1 -1
- package/internal/VirtualizedThread.js +6 -4
- package/internal/VirtualizedThread.js.map +1 -1
- package/internal/file-icons/index.d.ts +17 -0
- package/internal/file-icons/index.d.ts.map +1 -0
- package/internal/file-icons/index.js +60 -0
- package/internal/file-icons/index.js.map +1 -0
- package/internal/file-tree/FileTreeNode.d.ts +18 -1
- package/internal/file-tree/FileTreeNode.d.ts.map +1 -1
- package/internal/file-tree/FileTreeNode.js +11 -2
- package/internal/file-tree/FileTreeNode.js.map +1 -1
- package/internal/markdown-components.d.ts +38 -1
- package/internal/markdown-components.d.ts.map +1 -1
- package/internal/markdown-components.js +86 -11
- package/internal/markdown-components.js.map +1 -1
- package/{workflow → internal}/motion-preference.d.ts +7 -4
- package/internal/motion-preference.d.ts.map +1 -0
- package/{workflow → internal}/motion-preference.js +7 -4
- package/internal/motion-preference.js.map +1 -0
- package/internal/store/index.d.ts +33 -0
- package/internal/store/index.d.ts.map +1 -1
- package/internal/store/index.js +59 -0
- package/internal/store/index.js.map +1 -1
- package/internal/store/workspace-editors-store.d.ts +145 -0
- package/internal/store/workspace-editors-store.d.ts.map +1 -0
- package/internal/store/workspace-editors-store.js +208 -0
- package/internal/store/workspace-editors-store.js.map +1 -0
- package/internal/store/workspace-file-selection-store.d.ts +38 -0
- package/internal/store/workspace-file-selection-store.d.ts.map +1 -0
- package/internal/store/workspace-file-selection-store.js +62 -0
- package/internal/store/workspace-file-selection-store.js.map +1 -0
- package/internal/useRevealLine.d.ts +49 -0
- package/internal/useRevealLine.d.ts.map +1 -0
- package/internal/useRevealLine.js +43 -0
- package/internal/useRevealLine.js.map +1 -0
- package/library/detect-plan-artifact.d.ts +43 -4
- package/library/detect-plan-artifact.d.ts.map +1 -1
- package/library/detect-plan-artifact.js +45 -5
- package/library/detect-plan-artifact.js.map +1 -1
- package/library/detect-streaming-plan.d.ts +45 -0
- package/library/detect-streaming-plan.d.ts.map +1 -0
- package/library/detect-streaming-plan.js +83 -0
- package/library/detect-streaming-plan.js.map +1 -0
- package/library/index.d.ts +4 -1
- package/library/index.d.ts.map +1 -1
- package/library/index.js +2 -1
- package/library/index.js.map +1 -1
- package/package.json +4 -4
- package/session/NewSessionViewer.d.ts +19 -4
- package/session/NewSessionViewer.d.ts.map +1 -1
- package/session/NewSessionViewer.js +52 -25
- package/session/NewSessionViewer.js.map +1 -1
- package/session/PlanEditor.d.ts +55 -0
- package/session/PlanEditor.d.ts.map +1 -0
- package/session/PlanEditor.js +88 -0
- package/session/PlanEditor.js.map +1 -0
- package/session/PlanStreamingDocument.d.ts +30 -0
- package/session/PlanStreamingDocument.d.ts.map +1 -0
- package/session/PlanStreamingDocument.js +37 -0
- package/session/PlanStreamingDocument.js.map +1 -0
- package/session/SessionPanelChip.d.ts +26 -0
- package/session/SessionPanelChip.d.ts.map +1 -0
- package/session/SessionPanelChip.js +40 -0
- package/session/SessionPanelChip.js.map +1 -0
- package/session/SessionViewer.d.ts +34 -7
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +334 -33
- package/session/SessionViewer.js.map +1 -1
- package/session/{inspector → facets}/ArtifactsTab.d.ts +10 -2
- package/session/facets/ArtifactsTab.d.ts.map +1 -0
- package/session/{inspector → facets}/ArtifactsTab.js +8 -3
- package/session/facets/ArtifactsTab.js.map +1 -0
- package/session/{inspector → facets}/ChangesTab.d.ts +3 -3
- package/session/facets/ChangesTab.d.ts.map +1 -0
- package/session/{inspector → facets}/ChangesTab.js +3 -3
- package/session/facets/ChangesTab.js.map +1 -0
- package/session/facets/InspectTab.d.ts.map +1 -0
- package/session/facets/InspectTab.js.map +1 -0
- package/session/{inspector → facets}/SetupTab.d.ts +11 -2
- package/session/facets/SetupTab.d.ts.map +1 -0
- package/session/{inspector → facets}/SetupTab.js +4 -3
- package/session/facets/SetupTab.js.map +1 -0
- package/session/{inspector → facets}/UsageTab.d.ts +1 -1
- package/session/facets/UsageTab.d.ts.map +1 -0
- package/session/{inspector → facets}/UsageTab.js +1 -1
- package/session/facets/UsageTab.js.map +1 -0
- package/session/{inspector → facets}/index.d.ts +0 -6
- package/session/facets/index.d.ts.map +1 -0
- package/session/{inspector → facets}/index.js +0 -3
- package/session/facets/index.js.map +1 -0
- package/session/index.d.ts +11 -2
- package/session/index.d.ts.map +1 -1
- package/session/index.js +15 -2
- package/session/index.js.map +1 -1
- package/session/plan-document.d.ts +21 -0
- package/session/plan-document.d.ts.map +1 -0
- package/session/plan-document.js +28 -0
- package/session/plan-document.js.map +1 -0
- package/session/useOpenFileChange.d.ts +20 -0
- package/session/useOpenFileChange.d.ts.map +1 -0
- package/session/useOpenFileChange.js +31 -0
- package/session/useOpenFileChange.js.map +1 -0
- package/session/usePlanDraft.d.ts +52 -0
- package/session/usePlanDraft.d.ts.map +1 -0
- package/session/usePlanDraft.js +63 -0
- package/session/usePlanDraft.js.map +1 -0
- package/session/useSessionConversation.d.ts +14 -1
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +20 -2
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +1 -0
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionPanel.d.ts +120 -0
- package/session/useSessionPanel.d.ts.map +1 -0
- package/session/useSessionPanel.js +130 -0
- package/session/useSessionPanel.js.map +1 -0
- package/session/useSessionRailViews.d.ts +45 -0
- package/session/useSessionRailViews.d.ts.map +1 -0
- package/session/useSessionRailViews.js +105 -0
- package/session/useSessionRailViews.js.map +1 -0
- package/src/composer/SessionComposer.tsx +53 -10
- package/src/composer/__tests__/SessionComposer-contract.test.tsx +58 -4
- package/src/execution/ArtifactContentRenderer.tsx +101 -24
- package/src/execution/ArtifactPreviewModal.tsx +9 -9
- package/src/execution/FileChangeProgressBar.tsx +121 -0
- package/src/execution/FileChangesView.tsx +18 -4
- package/src/execution/FilePathContext.tsx +8 -1
- package/src/execution/FilePathLink.tsx +22 -6
- package/src/execution/FileReviewAtoms.tsx +89 -0
- package/src/execution/FileReviewCard.tsx +57 -90
- package/src/execution/MessageEntry.tsx +49 -1
- package/src/execution/MessageThread.tsx +308 -39
- package/src/execution/PlanArtifactCard.tsx +174 -64
- package/src/execution/PlanCompletionCard.tsx +5 -5
- package/src/execution/PlanDocumentMessage.tsx +96 -0
- package/src/execution/PlanStreamingCard.tsx +141 -0
- package/src/execution/__tests__/ArtifactContentRenderer.test.tsx +80 -1
- package/src/execution/__tests__/ArtifactPreviewModal.test.tsx +6 -6
- package/src/execution/__tests__/FileChangeProgressBar.test.tsx +125 -0
- package/src/execution/__tests__/FilePathLink.test.tsx +87 -0
- package/src/execution/__tests__/FileReviewCard.test.tsx +66 -7
- package/src/execution/__tests__/MessageThread.test.tsx +102 -1
- package/src/execution/__tests__/PlanArtifactCard.test.tsx +114 -26
- package/src/execution/__tests__/PlanCompletionCard.test.tsx +2 -2
- package/src/execution/__tests__/PlanDocumentMessage.test.tsx +55 -0
- package/src/execution/__tests__/PlanStreamingCard.test.tsx +56 -0
- package/src/execution/__tests__/buildThreadItems-plan-completion.test.ts +600 -22
- package/src/execution/__tests__/message-entry.test.tsx +17 -0
- package/src/execution/__tests__/useArtifactCopy.test.tsx +90 -0
- package/src/execution/__tests__/useArtifactDownload.test.tsx +2 -0
- package/src/execution/__tests__/useCreateAgentExecution.test.tsx +85 -0
- package/src/execution/index.ts +13 -1
- package/src/execution/use-build-from-plan-hotkey.ts +1 -1
- package/src/execution/useArtifactCopy.ts +109 -0
- package/src/execution/useArtifactDownload.ts +17 -5
- package/src/execution/useCreateAgentExecution.ts +18 -1
- package/src/github/__tests__/decodeGitHubContent.test.ts +102 -0
- package/src/github/__tests__/useGitHubFileReader.test.ts +183 -0
- package/src/github/decodeGitHubContent.ts +83 -0
- package/src/github/index.ts +1 -0
- package/src/github/useGitHubFileReader.ts +152 -0
- package/src/github/useGitHubTreeLister.ts +6 -2
- package/src/index.ts +69 -9
- package/src/internal/ResizableSplit.tsx +184 -51
- package/src/internal/VirtualizedThread.tsx +12 -4
- package/src/internal/__tests__/ResizableSplit.test.tsx +125 -3
- package/src/internal/__tests__/markdown-components.test.tsx +68 -0
- package/src/internal/__tests__/useRevealLine.test.tsx +97 -0
- package/src/internal/file-icons/__tests__/file-icons.test.tsx +35 -0
- package/src/internal/file-icons/index.tsx +137 -0
- package/src/internal/file-tree/FileTreeNode.tsx +56 -5
- package/src/internal/file-tree/__tests__/FileTreeNode-explorer.test.tsx +86 -0
- package/src/internal/markdown-components.tsx +116 -11
- package/src/{workflow → internal}/motion-preference.ts +7 -4
- package/src/internal/store/__tests__/workspace-editors-store.test.ts +216 -0
- package/src/internal/store/__tests__/workspace-file-selection-store.test.ts +118 -0
- package/src/internal/store/index.ts +94 -0
- package/src/internal/store/workspace-editors-store.ts +315 -0
- package/src/internal/store/workspace-file-selection-store.ts +88 -0
- package/src/internal/useRevealLine.ts +81 -0
- package/src/library/__tests__/detect-plan-artifact.test.ts +69 -0
- package/src/library/__tests__/detect-streaming-plan.test.ts +234 -0
- package/src/library/detect-plan-artifact.ts +62 -5
- package/src/library/detect-streaming-plan.ts +108 -0
- package/src/library/index.ts +7 -0
- package/src/session/NewSessionViewer.tsx +123 -55
- package/src/session/PlanEditor.tsx +361 -0
- package/src/session/PlanStreamingDocument.tsx +97 -0
- package/src/session/SessionPanelChip.tsx +103 -0
- package/src/session/SessionViewer.tsx +655 -96
- package/src/session/__tests__/NewSessionViewer.test.tsx +148 -0
- package/src/session/__tests__/PlanEditor.test.tsx +217 -0
- package/src/session/__tests__/PlanStreamingDocument.test.tsx +50 -0
- package/src/session/__tests__/SessionPanelChip.test.tsx +42 -0
- package/src/session/__tests__/SessionViewer-fileReviewDock.test.tsx +66 -4
- package/src/session/__tests__/SessionViewer-transcriptFileOpen.test.tsx +205 -0
- package/src/session/__tests__/audienceWiring.test.tsx +55 -19
- package/src/session/__tests__/useOpenFileChange.test.tsx +82 -0
- package/src/session/__tests__/usePlanDraft.test.ts +102 -0
- package/src/session/__tests__/useSessionConversation.test.tsx +44 -0
- package/src/session/__tests__/useSessionPanel.test.ts +298 -0
- package/src/session/__tests__/useSessionRailViews.test.tsx +124 -0
- package/src/session/{inspector → facets}/ArtifactsTab.tsx +27 -5
- package/src/session/{inspector → facets}/ChangesTab.tsx +3 -3
- package/src/session/{inspector → facets}/SetupTab.tsx +13 -1
- package/src/session/{inspector → facets}/UsageTab.tsx +1 -1
- package/src/session/{inspector → facets}/__tests__/ArtifactsTab.test.tsx +42 -8
- package/src/session/facets/__tests__/SetupTab.test.tsx +44 -0
- package/src/session/{inspector → facets}/index.ts +0 -16
- package/src/session/index.ts +30 -13
- package/src/session/plan-document.ts +30 -0
- package/src/session/useOpenFileChange.ts +53 -0
- package/src/session/usePlanDraft.ts +109 -0
- package/src/session/useSessionConversation.ts +38 -3
- package/src/session/useSessionPageFlow.ts +1 -0
- package/src/session/useSessionPanel.ts +288 -0
- package/src/session/useSessionRailViews.tsx +200 -0
- package/src/workflow/WorkflowExecutionGraph.tsx +1 -1
- package/src/workflow/index.ts +1 -1
- package/src/workflow/useFollowExecution.ts +1 -1
- package/src/workspace/EditorTabs.tsx +174 -0
- package/src/workspace/ExplorerTree.tsx +253 -0
- package/src/workspace/FileViewer.tsx +537 -0
- package/src/workspace/WorkspaceContentSearch.tsx +502 -0
- package/src/workspace/WorkspaceContentSearcher.ts +70 -0
- package/src/workspace/WorkspaceEditor.tsx +19 -16
- package/src/workspace/WorkspaceFileLister.ts +11 -0
- package/src/workspace/WorkspaceFileReader.ts +57 -0
- package/src/workspace/WorkspaceFileSearch.tsx +452 -0
- package/src/workspace/WorkspaceSurface.tsx +839 -0
- package/src/workspace/__tests__/EditorTabs.test.tsx +102 -0
- package/src/workspace/__tests__/ExplorerTree.test.tsx +204 -0
- package/src/workspace/__tests__/FileViewer.test.tsx +439 -0
- package/src/workspace/__tests__/WorkspaceContentSearch.test.tsx +229 -0
- package/src/workspace/__tests__/WorkspaceEditor-initialPanel.test.tsx +19 -0
- package/src/workspace/__tests__/WorkspaceFileSearch.test.tsx +227 -0
- package/src/workspace/__tests__/WorkspaceSurface.test.tsx +418 -0
- package/src/workspace/__tests__/a11y/harness.tsx +140 -0
- package/src/workspace/__tests__/a11y/mock-capabilities.ts +138 -0
- package/src/workspace/__tests__/a11y/workspace-editor.a11y.test.tsx +65 -0
- package/src/workspace/__tests__/a11y/workspace-explorer-search.a11y.test.tsx +112 -0
- package/src/workspace/__tests__/a11y/workspace-viewer-tabs.a11y.test.tsx +69 -0
- package/src/workspace/__tests__/findChangeForSelection.test.ts +132 -0
- package/src/workspace/__tests__/matchContentPreview.test.ts +55 -0
- package/src/workspace/__tests__/matchWorkspaceFiles.test.ts +104 -0
- package/src/workspace/__tests__/resolveWorkspaceFileSelection.test.ts +135 -0
- package/src/workspace/__tests__/useWorkspaceContentSearch.test.tsx +196 -0
- package/src/workspace/__tests__/useWorkspaceFileContent.test.tsx +190 -0
- package/src/workspace/__tests__/useWorkspaceFileSearch.test.tsx +162 -0
- package/src/workspace/findChangeForSelection.ts +61 -0
- package/src/workspace/index.ts +56 -2
- package/src/workspace/matchContentPreview.ts +51 -0
- package/src/workspace/matchWorkspaceFiles.ts +86 -0
- package/src/workspace/resolveWorkspaceFileSelection.ts +119 -0
- package/src/workspace/useWorkspaceContentSearch.ts +228 -0
- package/src/workspace/useWorkspaceFileContent.ts +129 -0
- package/src/workspace/useWorkspaceFileSearch.ts +184 -0
- package/src/workspace/useWorkspaceFiles.ts +27 -27
- package/src/workspace/workspaceListingCache.ts +93 -0
- package/styles.css +1 -1
- package/workflow/WorkflowExecutionGraph.js +1 -1
- package/workflow/WorkflowExecutionGraph.js.map +1 -1
- package/workflow/index.d.ts +1 -1
- package/workflow/index.d.ts.map +1 -1
- package/workflow/index.js +1 -1
- package/workflow/index.js.map +1 -1
- package/workflow/useFollowExecution.js +1 -1
- package/workflow/useFollowExecution.js.map +1 -1
- package/workspace/EditorTabs.d.ts +47 -0
- package/workspace/EditorTabs.d.ts.map +1 -0
- package/workspace/EditorTabs.js +78 -0
- package/workspace/EditorTabs.js.map +1 -0
- package/workspace/ExplorerTree.d.ts +32 -0
- package/workspace/ExplorerTree.d.ts.map +1 -0
- package/workspace/ExplorerTree.js +49 -0
- package/workspace/ExplorerTree.js.map +1 -0
- package/workspace/FileViewer.d.ts +93 -0
- package/workspace/FileViewer.d.ts.map +1 -0
- package/workspace/FileViewer.js +193 -0
- package/workspace/FileViewer.js.map +1 -0
- package/workspace/WorkspaceContentSearch.d.ts +41 -0
- package/workspace/WorkspaceContentSearch.d.ts.map +1 -0
- package/workspace/WorkspaceContentSearch.js +216 -0
- package/workspace/WorkspaceContentSearch.js.map +1 -0
- package/workspace/WorkspaceContentSearcher.d.ts +59 -0
- package/workspace/WorkspaceContentSearcher.d.ts.map +1 -0
- package/workspace/WorkspaceContentSearcher.js +7 -0
- package/workspace/WorkspaceContentSearcher.js.map +1 -0
- package/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/workspace/WorkspaceEditor.js +8 -10
- package/workspace/WorkspaceEditor.js.map +1 -1
- package/workspace/WorkspaceFileLister.d.ts +11 -0
- package/workspace/WorkspaceFileLister.d.ts.map +1 -1
- package/workspace/WorkspaceFileReader.d.ts +48 -0
- package/workspace/WorkspaceFileReader.d.ts.map +1 -0
- package/workspace/WorkspaceFileReader.js +11 -0
- package/workspace/WorkspaceFileReader.js.map +1 -0
- package/workspace/WorkspaceFileSearch.d.ts +32 -0
- package/workspace/WorkspaceFileSearch.d.ts.map +1 -0
- package/workspace/WorkspaceFileSearch.js +175 -0
- package/workspace/WorkspaceFileSearch.js.map +1 -0
- package/workspace/WorkspaceSurface.d.ts +151 -0
- package/workspace/WorkspaceSurface.d.ts.map +1 -0
- package/workspace/WorkspaceSurface.js +220 -0
- package/workspace/WorkspaceSurface.js.map +1 -0
- package/workspace/findChangeForSelection.d.ts +19 -0
- package/workspace/findChangeForSelection.d.ts.map +1 -0
- package/workspace/findChangeForSelection.js +46 -0
- package/workspace/findChangeForSelection.js.map +1 -0
- package/workspace/index.d.ts +24 -2
- package/workspace/index.d.ts.map +1 -1
- package/workspace/index.js +13 -1
- package/workspace/index.js.map +1 -1
- package/workspace/matchContentPreview.d.ts +21 -0
- package/workspace/matchContentPreview.d.ts.map +1 -0
- package/workspace/matchContentPreview.js +36 -0
- package/workspace/matchContentPreview.js.map +1 -0
- package/workspace/matchWorkspaceFiles.d.ts +30 -0
- package/workspace/matchWorkspaceFiles.d.ts.map +1 -0
- package/workspace/matchWorkspaceFiles.js +58 -0
- package/workspace/matchWorkspaceFiles.js.map +1 -0
- package/workspace/resolveWorkspaceFileSelection.d.ts +19 -0
- package/workspace/resolveWorkspaceFileSelection.d.ts.map +1 -0
- package/workspace/resolveWorkspaceFileSelection.js +115 -0
- package/workspace/resolveWorkspaceFileSelection.js.map +1 -0
- package/workspace/useWorkspaceContentSearch.d.ts +69 -0
- package/workspace/useWorkspaceContentSearch.d.ts.map +1 -0
- package/workspace/useWorkspaceContentSearch.js +154 -0
- package/workspace/useWorkspaceContentSearch.js.map +1 -0
- package/workspace/useWorkspaceFileContent.d.ts +73 -0
- package/workspace/useWorkspaceFileContent.d.ts.map +1 -0
- package/workspace/useWorkspaceFileContent.js +57 -0
- package/workspace/useWorkspaceFileContent.js.map +1 -0
- package/workspace/useWorkspaceFileSearch.d.ts +61 -0
- package/workspace/useWorkspaceFileSearch.d.ts.map +1 -0
- package/workspace/useWorkspaceFileSearch.js +119 -0
- package/workspace/useWorkspaceFileSearch.js.map +1 -0
- package/workspace/useWorkspaceFiles.d.ts +13 -5
- package/workspace/useWorkspaceFiles.d.ts.map +1 -1
- package/workspace/useWorkspaceFiles.js +18 -19
- package/workspace/useWorkspaceFiles.js.map +1 -1
- package/workspace/workspaceListingCache.d.ts +47 -0
- package/workspace/workspaceListingCache.d.ts.map +1 -0
- package/workspace/workspaceListingCache.js +55 -0
- package/workspace/workspaceListingCache.js.map +1 -0
- package/session/inspector/ArtifactsTab.d.ts.map +0 -1
- package/session/inspector/ArtifactsTab.js.map +0 -1
- package/session/inspector/ChangesTab.d.ts.map +0 -1
- package/session/inspector/ChangesTab.js.map +0 -1
- package/session/inspector/InspectTab.d.ts.map +0 -1
- package/session/inspector/InspectTab.js.map +0 -1
- package/session/inspector/SessionInspector.d.ts +0 -64
- package/session/inspector/SessionInspector.d.ts.map +0 -1
- package/session/inspector/SessionInspector.js +0 -53
- package/session/inspector/SessionInspector.js.map +0 -1
- package/session/inspector/SetupTab.d.ts.map +0 -1
- package/session/inspector/SetupTab.js.map +0 -1
- package/session/inspector/UsageTab.d.ts.map +0 -1
- package/session/inspector/UsageTab.js.map +0 -1
- package/session/inspector/WorkspaceTab.d.ts +0 -35
- package/session/inspector/WorkspaceTab.d.ts.map +0 -1
- package/session/inspector/WorkspaceTab.js +0 -75
- package/session/inspector/WorkspaceTab.js.map +0 -1
- package/session/inspector/index.d.ts.map +0 -1
- package/session/inspector/index.js.map +0 -1
- package/session/inspector/useSessionInspector.d.ts +0 -49
- package/session/inspector/useSessionInspector.d.ts.map +0 -1
- package/session/inspector/useSessionInspector.js +0 -122
- package/session/inspector/useSessionInspector.js.map +0 -1
- package/src/session/inspector/SessionInspector.tsx +0 -162
- package/src/session/inspector/WorkspaceTab.tsx +0 -245
- package/src/session/inspector/__tests__/useSessionInspector.test.ts +0 -251
- package/src/session/inspector/useSessionInspector.ts +0 -178
- package/src/workspace/WorkspaceEntryFiles.tsx +0 -196
- package/workflow/motion-preference.d.ts.map +0 -1
- package/workflow/motion-preference.js.map +0 -1
- package/workspace/WorkspaceEntryFiles.d.ts +0 -22
- package/workspace/WorkspaceEntryFiles.d.ts.map +0 -1
- package/workspace/WorkspaceEntryFiles.js +0 -58
- package/workspace/WorkspaceEntryFiles.js.map +0 -1
- /package/session/{inspector → facets}/InspectTab.d.ts +0 -0
- /package/session/{inspector → facets}/InspectTab.js +0 -0
- /package/src/{workflow → internal}/__tests__/motion-preference.test.ts +0 -0
- /package/src/session/{inspector → facets}/InspectTab.tsx +0 -0
- /package/src/session/{inspector → facets}/__tests__/ChangesTab.test.tsx +0 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { toError } from "../internal/toError.js";
|
|
4
|
+
import { loadEntryFiles } from "./workspaceListingCache.js";
|
|
5
|
+
import { matchWorkspaceFiles } from "./matchWorkspaceFiles.js";
|
|
6
|
+
const EMPTY_GROUPS = [];
|
|
7
|
+
/**
|
|
8
|
+
* Behavior hook powering workspace-wide filename/path search.
|
|
9
|
+
*
|
|
10
|
+
* Loads each entry's listing through the shared
|
|
11
|
+
* {@link loadEntryFiles} cache (warm from
|
|
12
|
+
* Files browsing → usually free), then ranks matches per entry with the pure
|
|
13
|
+
* {@link matchWorkspaceFiles}. Fetching is keyed by the set of entry ids, so a
|
|
14
|
+
* query change re-ranks the already-loaded listings without re-fetching. Errors
|
|
15
|
+
* are isolated per entry (one failing repo never blanks the rest), and a stale
|
|
16
|
+
* generation's late resolutions are ignored.
|
|
17
|
+
*
|
|
18
|
+
* Meant to be consumed by a component mounted only while Search is active
|
|
19
|
+
* (`WorkspaceFileSearch`), so the Files view incurs no search fetching.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* const { groups, totalMatches, isLoading } = useWorkspaceFileSearch({
|
|
24
|
+
* entries: workspace.entries,
|
|
25
|
+
* lister: workspaceFileLister,
|
|
26
|
+
* query,
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function useWorkspaceFileSearch({ entries, lister, query, }) {
|
|
31
|
+
const [states, setStates] = useState({});
|
|
32
|
+
// Latest entries read inside the effect without widening its dependency to the
|
|
33
|
+
// (possibly per-render) array identity — the effect keys on the id set instead.
|
|
34
|
+
const entriesRef = useRef(entries);
|
|
35
|
+
entriesRef.current = entries;
|
|
36
|
+
const entriesKey = entries.map((entry) => entry.id).join("\u0000");
|
|
37
|
+
// Ignore resolutions from a superseded entry set (id set or lister changed).
|
|
38
|
+
const generationRef = useRef(0);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (!lister) {
|
|
41
|
+
setStates({});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const currentEntries = entriesRef.current;
|
|
45
|
+
const generation = ++generationRef.current;
|
|
46
|
+
// Seed loading for not-yet-known entries; drop states for removed ones.
|
|
47
|
+
setStates((prev) => {
|
|
48
|
+
const next = {};
|
|
49
|
+
for (const entry of currentEntries) {
|
|
50
|
+
next[entry.id] = prev[entry.id] ?? { status: "loading" };
|
|
51
|
+
}
|
|
52
|
+
return next;
|
|
53
|
+
});
|
|
54
|
+
for (const entry of currentEntries) {
|
|
55
|
+
loadEntryFiles(entry, lister)
|
|
56
|
+
.then((listing) => {
|
|
57
|
+
if (generationRef.current !== generation)
|
|
58
|
+
return;
|
|
59
|
+
setStates((prev) => ({
|
|
60
|
+
...prev,
|
|
61
|
+
[entry.id]: listing === null
|
|
62
|
+
? { status: "unsupported" }
|
|
63
|
+
: { status: "ready", listing },
|
|
64
|
+
}));
|
|
65
|
+
})
|
|
66
|
+
.catch((err) => {
|
|
67
|
+
if (generationRef.current !== generation)
|
|
68
|
+
return;
|
|
69
|
+
setStates((prev) => ({
|
|
70
|
+
...prev,
|
|
71
|
+
[entry.id]: { status: "error", error: toError(err) },
|
|
72
|
+
}));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}, [entriesKey, lister]);
|
|
76
|
+
return useMemo(() => {
|
|
77
|
+
if (!lister) {
|
|
78
|
+
return {
|
|
79
|
+
groups: EMPTY_GROUPS,
|
|
80
|
+
totalMatches: 0,
|
|
81
|
+
isLoading: false,
|
|
82
|
+
isUnsupported: true,
|
|
83
|
+
error: null,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const groups = [];
|
|
87
|
+
let totalMatches = 0;
|
|
88
|
+
let isLoading = false;
|
|
89
|
+
let firstError = null;
|
|
90
|
+
let unsupportedCount = 0;
|
|
91
|
+
for (const entry of entries) {
|
|
92
|
+
const state = states[entry.id];
|
|
93
|
+
if (!state || state.status === "loading") {
|
|
94
|
+
isLoading = true;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (state.status === "unsupported") {
|
|
98
|
+
unsupportedCount += 1;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const error = state.status === "error" ? state.error ?? null : null;
|
|
102
|
+
if (error && !firstError)
|
|
103
|
+
firstError = error;
|
|
104
|
+
const truncated = state.listing?.truncated ?? false;
|
|
105
|
+
const matches = state.listing
|
|
106
|
+
? matchWorkspaceFiles(state.listing.files, query)
|
|
107
|
+
: [];
|
|
108
|
+
totalMatches += matches.length;
|
|
109
|
+
// A group is worth showing only when it carries matches, an error, or a
|
|
110
|
+
// truncation notice — otherwise it is silent.
|
|
111
|
+
if (matches.length > 0 || error || truncated) {
|
|
112
|
+
groups.push({ entry, matches, truncated, error });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const isUnsupported = entries.length > 0 && unsupportedCount === entries.length;
|
|
116
|
+
return { groups, totalMatches, isLoading, isUnsupported, error: firstError };
|
|
117
|
+
}, [entries, states, query, lister]);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=useWorkspaceFileSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWorkspaceFileSearch.js","sourceRoot":"","sources":["../../src/workspace/useWorkspaceFileSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { TreeNode } from "../internal/file-tree/index.js";
|
|
2
2
|
import type { WorkspaceEntry } from "./useWorkspaceEntries.js";
|
|
3
3
|
import type { WorkspaceFileLister } from "./WorkspaceFileLister.js";
|
|
4
4
|
/** Options for {@link useWorkspaceFiles}. */
|
|
@@ -16,6 +16,12 @@ export interface UseWorkspaceFilesReturn {
|
|
|
16
16
|
readonly isLoading: boolean;
|
|
17
17
|
/** Error from the lister, if any. */
|
|
18
18
|
readonly error: Error | null;
|
|
19
|
+
/**
|
|
20
|
+
* `true` when the listing was truncated by the backend (repository too large).
|
|
21
|
+
* The advisory entry is excluded from `tree`; callers render an incomplete-results
|
|
22
|
+
* banner from this flag instead (DD-11).
|
|
23
|
+
*/
|
|
24
|
+
readonly truncated: boolean;
|
|
19
25
|
/** Re-fetch the file listing for the current entry (cache-bust). */
|
|
20
26
|
readonly refresh: () => void;
|
|
21
27
|
}
|
|
@@ -23,16 +29,18 @@ export interface UseWorkspaceFilesReturn {
|
|
|
23
29
|
* Behavior hook that fetches and caches a file listing for a single
|
|
24
30
|
* workspace entry, converting it into a {@link TreeNode} hierarchy.
|
|
25
31
|
*
|
|
26
|
-
* - Calls the platform-injected `lister`
|
|
27
|
-
*
|
|
28
|
-
*
|
|
32
|
+
* - Calls the platform-injected `lister` (via the shared
|
|
33
|
+
* {@link loadEntryFiles} cache) when the
|
|
34
|
+
* entry changes.
|
|
35
|
+
* - Reads the shared listing cache so tab switches, re-expands, and the search
|
|
36
|
+
* surface are instant without re-fetching (one cache, keyed by `entry.id`).
|
|
29
37
|
* - Returns an empty tree and skips the call when `lister` is
|
|
30
38
|
* `undefined` (graceful degradation — DD-011 opt-in).
|
|
31
39
|
* - Memoizes the return value for referential stability (DD-010).
|
|
32
40
|
*
|
|
33
41
|
* @example
|
|
34
42
|
* ```tsx
|
|
35
|
-
* const { tree, isLoading, error, refresh } = useWorkspaceFiles({
|
|
43
|
+
* const { tree, isLoading, error, truncated, refresh } = useWorkspaceFiles({
|
|
36
44
|
* entry: selectedEntry,
|
|
37
45
|
* lister: workspaceFileLister,
|
|
38
46
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWorkspaceFiles.d.ts","sourceRoot":"","sources":["../../src/workspace/useWorkspaceFiles.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"useWorkspaceFiles.d.ts","sourceRoot":"","sources":["../../src/workspace/useWorkspaceFiles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,sGAAsG;IACtG,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAClD;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,MAAM,GACP,EAAE,wBAAwB,GAAG,uBAAuB,CA0EpD"}
|
|
@@ -1,29 +1,24 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { buildFileTree } from "../internal/file-tree/index.js";
|
|
4
3
|
import { toError } from "../internal/toError.js";
|
|
4
|
+
import { loadEntryFiles, peekEntryListing } from "./workspaceListingCache.js";
|
|
5
5
|
const EMPTY_TREE = [];
|
|
6
|
-
/**
|
|
7
|
-
* Module-level cache shared across all component instances. This ensures
|
|
8
|
-
* that switching between tabs (e.g., Workspace tab unmount/remount) doesn't
|
|
9
|
-
* re-fetch file listings that were already loaded. Entries are keyed by
|
|
10
|
-
* the workspace entry's stable ID.
|
|
11
|
-
*/
|
|
12
|
-
const sharedCache = new Map();
|
|
13
6
|
/**
|
|
14
7
|
* Behavior hook that fetches and caches a file listing for a single
|
|
15
8
|
* workspace entry, converting it into a {@link TreeNode} hierarchy.
|
|
16
9
|
*
|
|
17
|
-
* - Calls the platform-injected `lister`
|
|
18
|
-
*
|
|
19
|
-
*
|
|
10
|
+
* - Calls the platform-injected `lister` (via the shared
|
|
11
|
+
* {@link loadEntryFiles} cache) when the
|
|
12
|
+
* entry changes.
|
|
13
|
+
* - Reads the shared listing cache so tab switches, re-expands, and the search
|
|
14
|
+
* surface are instant without re-fetching (one cache, keyed by `entry.id`).
|
|
20
15
|
* - Returns an empty tree and skips the call when `lister` is
|
|
21
16
|
* `undefined` (graceful degradation — DD-011 opt-in).
|
|
22
17
|
* - Memoizes the return value for referential stability (DD-010).
|
|
23
18
|
*
|
|
24
19
|
* @example
|
|
25
20
|
* ```tsx
|
|
26
|
-
* const { tree, isLoading, error, refresh } = useWorkspaceFiles({
|
|
21
|
+
* const { tree, isLoading, error, truncated, refresh } = useWorkspaceFiles({
|
|
27
22
|
* entry: selectedEntry,
|
|
28
23
|
* lister: workspaceFileLister,
|
|
29
24
|
* });
|
|
@@ -33,14 +28,16 @@ export function useWorkspaceFiles({ entry, lister, }) {
|
|
|
33
28
|
const [isLoading, setIsLoading] = useState(false);
|
|
34
29
|
const [error, setError] = useState(null);
|
|
35
30
|
const [tree, setTree] = useState(EMPTY_TREE);
|
|
31
|
+
const [truncated, setTruncated] = useState(false);
|
|
36
32
|
const fetchIdRef = useRef(0);
|
|
37
33
|
const fetchFiles = useCallback(async (target, bustCache) => {
|
|
38
34
|
if (!lister)
|
|
39
35
|
return;
|
|
40
36
|
if (!bustCache) {
|
|
41
|
-
const cached =
|
|
37
|
+
const cached = peekEntryListing(target.id);
|
|
42
38
|
if (cached) {
|
|
43
39
|
setTree(cached.tree);
|
|
40
|
+
setTruncated(cached.truncated);
|
|
44
41
|
setError(null);
|
|
45
42
|
setIsLoading(false);
|
|
46
43
|
return;
|
|
@@ -50,17 +47,17 @@ export function useWorkspaceFiles({ entry, lister, }) {
|
|
|
50
47
|
setIsLoading(true);
|
|
51
48
|
setError(null);
|
|
52
49
|
try {
|
|
53
|
-
const
|
|
50
|
+
const listing = await loadEntryFiles(target, lister, { bustCache });
|
|
54
51
|
if (fetchIdRef.current !== id)
|
|
55
52
|
return;
|
|
56
|
-
if (
|
|
53
|
+
if (listing === null) {
|
|
57
54
|
setTree(EMPTY_TREE);
|
|
55
|
+
setTruncated(false);
|
|
58
56
|
setIsLoading(false);
|
|
59
57
|
return;
|
|
60
58
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
setTree(built);
|
|
59
|
+
setTree(listing.tree);
|
|
60
|
+
setTruncated(listing.truncated);
|
|
64
61
|
setIsLoading(false);
|
|
65
62
|
}
|
|
66
63
|
catch (err) {
|
|
@@ -68,12 +65,14 @@ export function useWorkspaceFiles({ entry, lister, }) {
|
|
|
68
65
|
return;
|
|
69
66
|
setError(toError(err));
|
|
70
67
|
setTree(EMPTY_TREE);
|
|
68
|
+
setTruncated(false);
|
|
71
69
|
setIsLoading(false);
|
|
72
70
|
}
|
|
73
71
|
}, [lister]);
|
|
74
72
|
useEffect(() => {
|
|
75
73
|
if (!entry || !lister) {
|
|
76
74
|
setTree(EMPTY_TREE);
|
|
75
|
+
setTruncated(false);
|
|
77
76
|
setIsLoading(false);
|
|
78
77
|
setError(null);
|
|
79
78
|
return;
|
|
@@ -85,6 +84,6 @@ export function useWorkspaceFiles({ entry, lister, }) {
|
|
|
85
84
|
fetchFiles(entry, true);
|
|
86
85
|
}
|
|
87
86
|
}, [entry, lister, fetchFiles]);
|
|
88
|
-
return useMemo(() => ({ tree, isLoading, error, refresh }), [tree, isLoading, error, refresh]);
|
|
87
|
+
return useMemo(() => ({ tree, isLoading, error, truncated, refresh }), [tree, isLoading, error, truncated, refresh]);
|
|
89
88
|
}
|
|
90
89
|
//# sourceMappingURL=useWorkspaceFiles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWorkspaceFiles.js","sourceRoot":"","sources":["../../src/workspace/useWorkspaceFiles.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useWorkspaceFiles.js","sourceRoot":"","sources":["../../src/workspace/useWorkspaceFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type TreeNode } from "../internal/file-tree/index.js";
|
|
2
|
+
import type { WorkspaceEntry } from "./useWorkspaceEntries.js";
|
|
3
|
+
import type { WorkspaceFileEntry, WorkspaceFileLister } from "./WorkspaceFileLister.js";
|
|
4
|
+
/**
|
|
5
|
+
* A processed listing for one workspace entry.
|
|
6
|
+
*
|
|
7
|
+
* Advisory `notice` entries (e.g. GitHub's "tree truncated" marker) are removed
|
|
8
|
+
* from {@link WorkspaceListing.files} and never enter {@link WorkspaceListing.tree};
|
|
9
|
+
* their presence is collapsed into {@link WorkspaceListing.truncated} so both the
|
|
10
|
+
* accordion and search render one honest "results may be incomplete" banner
|
|
11
|
+
* instead of a fake, clickable row (DD-11).
|
|
12
|
+
*/
|
|
13
|
+
export interface WorkspaceListing {
|
|
14
|
+
/** Openable entries (files and directories); advisory notices removed. */
|
|
15
|
+
readonly files: readonly WorkspaceFileEntry[];
|
|
16
|
+
/** Hierarchy of the openable files (directories excluded), ready for `FileTreeNode`. */
|
|
17
|
+
readonly tree: readonly TreeNode[];
|
|
18
|
+
/** `true` when the lister signalled the listing was incomplete (too many files). */
|
|
19
|
+
readonly truncated: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Options for {@link loadEntryFiles}. */
|
|
22
|
+
export interface LoadEntryFilesOptions {
|
|
23
|
+
/** Skip the cache and re-call the lister (the accordion's Refresh action). */
|
|
24
|
+
readonly bustCache?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Returns a cached {@link WorkspaceListing} for an entry synchronously, or
|
|
28
|
+
* `undefined` when nothing is cached. Lets a consumer render a warm listing
|
|
29
|
+
* instantly (no loading flash) before deciding whether to fetch.
|
|
30
|
+
*/
|
|
31
|
+
export declare function peekEntryListing(entryId: string): WorkspaceListing | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Loads and caches the processed listing for a single workspace entry.
|
|
34
|
+
*
|
|
35
|
+
* Returns the cached listing when present (unless `bustCache`), otherwise calls
|
|
36
|
+
* the platform-injected `lister`, processes the raw entries once, and caches the
|
|
37
|
+
* result. Returns `null` when the lister returns `null` (substrate unsupported
|
|
38
|
+
* for this entry) — the honest "unavailable here" signal, not cached.
|
|
39
|
+
*/
|
|
40
|
+
export declare function loadEntryFiles(entry: WorkspaceEntry, lister: WorkspaceFileLister, options?: LoadEntryFilesOptions): Promise<WorkspaceListing | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Clears the shared cache. Test-only seam for deterministic isolation.
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export declare function __clearWorkspaceListingCache(): void;
|
|
47
|
+
//# sourceMappingURL=workspaceListingCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceListingCache.d.ts","sourceRoot":"","sources":["../../src/workspace/workspaceListingCache.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAC;IACnC,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAYlC;AAUD;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Single source of truth for a workspace entry's file listing.
|
|
2
|
+
//
|
|
3
|
+
// Both surfaces that need a listing read through here: the Files accordion
|
|
4
|
+
// (`useWorkspaceFiles`, one entry) and workspace search (`useWorkspaceFileSearch`,
|
|
5
|
+
// many entries). Keeping one module-level cache — keyed by the stable-within-page
|
|
6
|
+
// `entry.id` — guarantees the two never double-fetch or drift, and lets one fetch
|
|
7
|
+
// produce every shape a consumer needs (flat files for search, a tree for the
|
|
8
|
+
// accordion, and the truncation flag for the banner).
|
|
9
|
+
import { buildFileTree } from "../internal/file-tree/index.js";
|
|
10
|
+
const sharedCache = new Map();
|
|
11
|
+
/**
|
|
12
|
+
* Returns a cached {@link WorkspaceListing} for an entry synchronously, or
|
|
13
|
+
* `undefined` when nothing is cached. Lets a consumer render a warm listing
|
|
14
|
+
* instantly (no loading flash) before deciding whether to fetch.
|
|
15
|
+
*/
|
|
16
|
+
export function peekEntryListing(entryId) {
|
|
17
|
+
return sharedCache.get(entryId);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Loads and caches the processed listing for a single workspace entry.
|
|
21
|
+
*
|
|
22
|
+
* Returns the cached listing when present (unless `bustCache`), otherwise calls
|
|
23
|
+
* the platform-injected `lister`, processes the raw entries once, and caches the
|
|
24
|
+
* result. Returns `null` when the lister returns `null` (substrate unsupported
|
|
25
|
+
* for this entry) — the honest "unavailable here" signal, not cached.
|
|
26
|
+
*/
|
|
27
|
+
export async function loadEntryFiles(entry, lister, options = {}) {
|
|
28
|
+
if (!options.bustCache) {
|
|
29
|
+
const cached = sharedCache.get(entry.id);
|
|
30
|
+
if (cached)
|
|
31
|
+
return cached;
|
|
32
|
+
}
|
|
33
|
+
const raw = await lister(entry);
|
|
34
|
+
if (raw === null)
|
|
35
|
+
return null;
|
|
36
|
+
const listing = buildListing(raw);
|
|
37
|
+
sharedCache.set(entry.id, listing);
|
|
38
|
+
return listing;
|
|
39
|
+
}
|
|
40
|
+
/** Processes a raw lister result into a {@link WorkspaceListing}. */
|
|
41
|
+
function buildListing(raw) {
|
|
42
|
+
const truncated = raw.some((entry) => entry.notice === true);
|
|
43
|
+
const files = raw.filter((entry) => !entry.notice);
|
|
44
|
+
const tree = buildFileTree(files.filter((entry) => !entry.isDirectory));
|
|
45
|
+
return { files, tree, truncated };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Clears the shared cache. Test-only seam for deterministic isolation.
|
|
49
|
+
*
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export function __clearWorkspaceListingCache() {
|
|
53
|
+
sharedCache.clear();
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=workspaceListingCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceListingCache.js","sourceRoot":"","sources":["../../src/workspace/workspaceListingCache.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mFAAmF;AACnF,kFAAkF;AAClF,kFAAkF;AAClF,8EAA8E;AAC9E,sDAAsD;AAEtD,OAAO,EAAE,aAAa,EAAiB,MAAM,gCAAgC,CAAC;AA+B9E,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAqB,EACrB,MAA2B,EAC3B,UAAiC,EAAE;IAEnC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,qEAAqE;AACrE,SAAS,YAAY,CAAC,GAAkC;IACtD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B;IAC1C,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactsTab.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/ArtifactsTab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAQlG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,iBAAiB,2CAsD9F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactsTab.js","sourceRoot":"","sources":["../../../src/session/inspector/ArtifactsTab.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EACL,mBAAmB,GAEpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAevE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAqB;IAC7F,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IAEpF,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAA2B,EAAE,EAAE;QAChE,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CACL,cAAK,SAAS,EAAC,iEAAiE,YAC9E,YAAG,SAAS,EAAC,+BAA+B,iFAExC,GACA,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BACE,cAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,YACnC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACxB,cAA6D,IAAI,EAAC,UAAU,YAC1E,KAAC,YAAY,IACX,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,GAAG,EAAE,GAAG,EACR,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,SAAS,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GACrC,IAPM,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAQrD,CACP,CAAC,GACE,EAEL,YAAY,IAAI,CACf,KAAC,oBAAoB,IACnB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,WAAW,EAAE,YAAY,CAAC,WAAW,EACrC,UAAU,EAAE,YAAY,CAAC,UAAU,EACnC,GAAG,EAAE,GAAG,EACR,IAAI,QACJ,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,EACT,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,GAErE,CACH,IACA,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChangesTab.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/ChangesTab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAIlG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,2CAuBzD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChangesTab.js","sourceRoot":"","sources":["../../../src/session/inspector/ChangesTab.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAMjE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,UAAU,EAAmB;IACxD,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEvE,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CACL,cAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,YACnC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACzB,cAA8C,IAAI,EAAC,UAAU,YAC3D,KAAC,aAAa,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,GAAI,IADrC,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAEtC,CACP,CAAC,GACE,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,iEAAiE,YAC9E,YAAG,SAAS,EAAC,+BAA+B,uHAGxC,GACA,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InspectTab.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/InspectTab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAClD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,YAAY,EAAE,EAAE,eAAe,2CAsB3D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InspectTab.js","sourceRoot":"","sources":["../../../src/session/inspector/InspectTab.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAQb;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,YAAY,EAAmB;IAC1D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CACL,eAAK,SAAS,EAAC,iEAAiE,aAC9E,KAAC,cAAc,KAAG,EAClB,YAAG,SAAS,EAAC,oCAAoC,2EAE7C,IACA,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,yCAAyC,aACtD,wCACc,eAAM,SAAS,EAAC,6BAA6B,YAAE,YAAY,CAAC,IAAI,GAAQ,IAClF,EACJ,YAAG,SAAS,EAAC,kBAAkB,iDAE3B,IACA,CACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,SAAS,EAAC,uBAAuB,iBACrB,MAAM,aAElB,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG,EAClD,eAAM,CAAC,EAAC,gBAAgB,GAAG,IACvB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
2
|
-
import { type SetupTabProps } from "./SetupTab.js";
|
|
3
|
-
import { type WorkspaceTabProps } from "./WorkspaceTab.js";
|
|
4
|
-
import type { SelectedThreadItem } from "../../internal/store/selection-store.js";
|
|
5
|
-
import type { ApplyResourceResult } from "../../library/useApplyResource.js";
|
|
6
|
-
/** Props for {@link SessionInspector}. */
|
|
7
|
-
export interface SessionInspectorProps {
|
|
8
|
-
/**
|
|
9
|
-
* The most relevant execution — the active streaming execution,
|
|
10
|
-
* or the last completed one. Drives the run-status header (phase badge).
|
|
11
|
-
*/
|
|
12
|
-
readonly displayExecution: AgentExecution | null;
|
|
13
|
-
/**
|
|
14
|
-
* All executions in the session (completed + active stream).
|
|
15
|
-
* Drives aggregation hooks for Changes, Artifacts, and Usage.
|
|
16
|
-
*/
|
|
17
|
-
readonly allExecutions: readonly AgentExecution[];
|
|
18
|
-
/** Organization slug for artifact Apply CTA. */
|
|
19
|
-
readonly org: string;
|
|
20
|
-
/** Currently selected thread item, or null. */
|
|
21
|
-
readonly selectedItem: SelectedThreadItem | null;
|
|
22
|
-
/** Called after a resource is applied from the Artifacts tab. */
|
|
23
|
-
readonly onApplied?: (result: ApplyResourceResult) => void;
|
|
24
|
-
/**
|
|
25
|
-
* Implement a plan from the Artifacts tab. When provided, plan
|
|
26
|
-
* artifacts (`plan.md`) surface an Implement action in their preview.
|
|
27
|
-
*/
|
|
28
|
-
readonly onImplementPlan?: () => void;
|
|
29
|
-
/**
|
|
30
|
-
* Session-level configuration for the Configure tab.
|
|
31
|
-
* Includes core config fields and optional interactive
|
|
32
|
-
* mutation callbacks. When mutation callbacks are absent,
|
|
33
|
-
* sections render read-only (DD-011 backward compatibility).
|
|
34
|
-
*/
|
|
35
|
-
readonly sessionConfig?: SetupTabProps;
|
|
36
|
-
/**
|
|
37
|
-
* Workspace tab configuration. When provided, the Workspace tab
|
|
38
|
-
* renders interactive workspace actions (add/remove entries, file
|
|
39
|
-
* tree browsing). When absent, the tab shows an empty state.
|
|
40
|
-
*/
|
|
41
|
-
readonly workspaceConfig?: WorkspaceTabProps;
|
|
42
|
-
/** Additional CSS classes. */
|
|
43
|
-
readonly className?: string;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Tabbed right-side inspector panel for agent sessions.
|
|
47
|
-
*
|
|
48
|
-
* Displays an always-visible run-status header (phase badge) above
|
|
49
|
-
* contextual tabs: Workspace, Config, Changes, Artifacts, Usage, and
|
|
50
|
-
* Inspect (when a thread item is selected). The agent's plan/todos render
|
|
51
|
-
* inline in the message thread (see {@link TodoCard}), not as a tab here.
|
|
52
|
-
*
|
|
53
|
-
* Mirrors the `ExecutionInspector` architecture from the workflow
|
|
54
|
-
* view — same `Tabs` primitive, same tab-FSM behavior hook, same
|
|
55
|
-
* contextual visibility pattern.
|
|
56
|
-
*
|
|
57
|
-
* `React.memo`'d to prevent re-renders from parent layout changes
|
|
58
|
-
* that don't affect inspector data.
|
|
59
|
-
*
|
|
60
|
-
* All visual properties flow through `--stgm-*` tokens. Zero
|
|
61
|
-
* Console/Next/Tauri dependencies (DD-004).
|
|
62
|
-
*/
|
|
63
|
-
export declare const SessionInspector: import("react").NamedExoticComponent<SessionInspectorProps>;
|
|
64
|
-
//# sourceMappingURL=SessionInspector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SessionInspector.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/SessionInspector.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAalG,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,cAAc,GAAG,IAAI,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,cAAc,EAAE,CAAC;IAClD,gDAAgD;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjD,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC;IAC7C,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB,6DAkF3B,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { memo } from "react";
|
|
4
|
-
import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
5
|
-
import { cn } from "@stigmer/theme";
|
|
6
|
-
import { Tabs } from "../../tabs/Tabs.js";
|
|
7
|
-
import { ExecutionPhaseBadge } from "../../execution/ExecutionPhaseBadge.js";
|
|
8
|
-
import { useSessionArtifacts } from "../useSessionArtifacts.js";
|
|
9
|
-
import { useSessionWriteBacks } from "../useSessionWriteBacks.js";
|
|
10
|
-
import { useSessionUsage } from "../useSessionUsage.js";
|
|
11
|
-
import { useSessionInspector } from "./useSessionInspector.js";
|
|
12
|
-
import { ChangesTab } from "./ChangesTab.js";
|
|
13
|
-
import { ArtifactsTab } from "./ArtifactsTab.js";
|
|
14
|
-
import { UsageTab } from "./UsageTab.js";
|
|
15
|
-
import { InspectTab } from "./InspectTab.js";
|
|
16
|
-
import { SetupTab } from "./SetupTab.js";
|
|
17
|
-
import { WorkspaceTab } from "./WorkspaceTab.js";
|
|
18
|
-
/**
|
|
19
|
-
* Tabbed right-side inspector panel for agent sessions.
|
|
20
|
-
*
|
|
21
|
-
* Displays an always-visible run-status header (phase badge) above
|
|
22
|
-
* contextual tabs: Workspace, Config, Changes, Artifacts, Usage, and
|
|
23
|
-
* Inspect (when a thread item is selected). The agent's plan/todos render
|
|
24
|
-
* inline in the message thread (see {@link TodoCard}), not as a tab here.
|
|
25
|
-
*
|
|
26
|
-
* Mirrors the `ExecutionInspector` architecture from the workflow
|
|
27
|
-
* view — same `Tabs` primitive, same tab-FSM behavior hook, same
|
|
28
|
-
* contextual visibility pattern.
|
|
29
|
-
*
|
|
30
|
-
* `React.memo`'d to prevent re-renders from parent layout changes
|
|
31
|
-
* that don't affect inspector data.
|
|
32
|
-
*
|
|
33
|
-
* All visual properties flow through `--stgm-*` tokens. Zero
|
|
34
|
-
* Console/Next/Tauri dependencies (DD-004).
|
|
35
|
-
*/
|
|
36
|
-
export const SessionInspector = memo(function SessionInspector({ displayExecution, allExecutions, org, selectedItem, onApplied, onImplementPlan, sessionConfig, workspaceConfig, className, }) {
|
|
37
|
-
const phase = displayExecution?.status?.phase ??
|
|
38
|
-
ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
|
|
39
|
-
const { hasWriteBacks, writeBackCount } = useSessionWriteBacks(allExecutions);
|
|
40
|
-
const { hasArtifacts, artifactCount } = useSessionArtifacts(allExecutions);
|
|
41
|
-
const { hasUsage } = useSessionUsage(allExecutions);
|
|
42
|
-
const { tabs, activeTab, onTabChange } = useSessionInspector({
|
|
43
|
-
phase: phase === ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED ? null : phase,
|
|
44
|
-
hasWriteBacks,
|
|
45
|
-
writeBackCount,
|
|
46
|
-
hasArtifacts,
|
|
47
|
-
artifactCount,
|
|
48
|
-
hasUsage,
|
|
49
|
-
selectedItem,
|
|
50
|
-
});
|
|
51
|
-
return (_jsxs("div", { className: cn("flex h-full flex-col", className), children: [_jsx("div", { role: "region", "aria-label": "Execution progress", className: "flex items-center gap-2 border-b border-border px-3 py-2.5", children: phase !== ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED ? (_jsx(ExecutionPhaseBadge, { phase: phase })) : (_jsx("span", { className: "text-xs text-muted-foreground", children: "No execution" })) }), _jsx(Tabs, { tabs: tabs, activeTab: activeTab, onTabChange: onTabChange, "aria-label": "Session details", className: "min-h-0 flex-1", children: _jsxs("div", { className: "h-full min-h-0 overflow-y-auto px-3 py-3", children: [activeTab === "workspace" && workspaceConfig && (_jsx(WorkspaceTab, { ...workspaceConfig })), activeTab === "configure" && sessionConfig && (_jsx(SetupTab, { ...sessionConfig })), activeTab === "changes" && (_jsx(ChangesTab, { executions: allExecutions })), activeTab === "artifacts" && (_jsx(ArtifactsTab, { executions: allExecutions, org: org, onApplied: onApplied, onImplementPlan: onImplementPlan })), activeTab === "usage" && (_jsx(UsageTab, { executions: allExecutions })), activeTab === "inspect" && (_jsx(InspectTab, { selectedItem: selectedItem }))] }) })] }));
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=SessionInspector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SessionInspector.js","sourceRoot":"","sources":["../../../src/session/inspector/SessionInspector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetupTab.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/SetupTab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAExF,mEAAmE;AACnE,MAAM,WAAW,yBAAyB;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,gDAAgD;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,0CAA0C;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACrD;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,cAAc,EACd,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,OAAO,EACP,SAAS,GACV,EAAE,aAAa,2CAgCf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetupTab.js","sourceRoot":"","sources":["../../../src/session/inspector/SetupTab.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UsageTab.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/UsageTab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAIlG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,aAAa,2CAcrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UsageTab.js","sourceRoot":"","sources":["../../../src/session/inspector/UsageTab.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,UAAU,EAAiB;IACpD,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE1C,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CACL,cAAK,SAAS,EAAC,iEAAiE,YAC9E,YAAG,SAAS,EAAC,+BAA+B,0EAExC,GACA,CACP,CAAC;IACJ,CAAC;IAED,OAAO,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,GAAI,CAAC;AACjD,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { UseWorkspaceEntriesReturn } from "../../workspace/useWorkspaceEntries.js";
|
|
2
|
-
import type { WorkspaceFileLister } from "../../workspace/WorkspaceFileLister.js";
|
|
3
|
-
import type { UseGitHubConnectionReturn } from "../../github/useGitHubConnection.js";
|
|
4
|
-
/**
|
|
5
|
-
* Interactive workspace actions required by the Workspace tab.
|
|
6
|
-
* Mirrors the shape from SetupTab for consistency but is the
|
|
7
|
-
* primary owner going forward.
|
|
8
|
-
*/
|
|
9
|
-
export interface WorkspaceTabActions {
|
|
10
|
-
readonly workspace: UseWorkspaceEntriesReturn;
|
|
11
|
-
readonly enableGitHub?: boolean;
|
|
12
|
-
readonly enableLocal?: boolean;
|
|
13
|
-
readonly gitHubConnection?: UseGitHubConnectionReturn;
|
|
14
|
-
readonly onBrowseLocalFolder?: () => Promise<string | null>;
|
|
15
|
-
readonly workspaceFileLister?: WorkspaceFileLister;
|
|
16
|
-
}
|
|
17
|
-
/** Props for {@link WorkspaceTab}. */
|
|
18
|
-
export interface WorkspaceTabProps {
|
|
19
|
-
readonly actions: WorkspaceTabActions;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Dedicated workspace tab for the SessionInspector.
|
|
23
|
-
*
|
|
24
|
-
* Provides a full-height layout for managing workspace entries:
|
|
25
|
-
* - Entry list with expandable file trees (accordion, one at a time)
|
|
26
|
-
* - Add actions: Browse Folder and Connect GitHub
|
|
27
|
-
* - Short display names with full path on hover
|
|
28
|
-
*
|
|
29
|
-
* Entries start collapsed by default to avoid expensive file-listing
|
|
30
|
-
* fetches until the user explicitly expands one.
|
|
31
|
-
*
|
|
32
|
-
* All visual properties flow through `--stgm-*` tokens (DD-005).
|
|
33
|
-
*/
|
|
34
|
-
export declare function WorkspaceTab({ actions }: WorkspaceTabProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
-
//# sourceMappingURL=WorkspaceTab.d.ts.map
|