@jacques-ai/cli 0.0.7-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/mascot-ansi.d.ts +8 -0
- package/dist/assets/mascot-ansi.d.ts.map +1 -0
- package/dist/assets/mascot-ansi.js +15 -0
- package/dist/assets/mascot-ansi.js.map +1 -0
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +53 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/client-helper.d.ts +14 -0
- package/dist/commands/client-helper.d.ts.map +1 -0
- package/dist/commands/client-helper.js +38 -0
- package/dist/commands/client-helper.js.map +1 -0
- package/dist/commands/dashboard.d.ts +8 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +159 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +6 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/list.d.ts +5 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +13 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/search.d.ts +13 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +79 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/setup.d.ts +8 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +32 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +5 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +27 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/components/ActiveSessionsView.d.ts +18 -0
- package/dist/components/ActiveSessionsView.d.ts.map +1 -0
- package/dist/components/ActiveSessionsView.js +68 -0
- package/dist/components/ActiveSessionsView.js.map +1 -0
- package/dist/components/AddContextConfirmView.d.ts +21 -0
- package/dist/components/AddContextConfirmView.d.ts.map +1 -0
- package/dist/components/AddContextConfirmView.js +44 -0
- package/dist/components/AddContextConfirmView.js.map +1 -0
- package/dist/components/App.d.ts +11 -0
- package/dist/components/App.d.ts.map +1 -0
- package/dist/components/App.js +292 -0
- package/dist/components/App.js.map +1 -0
- package/dist/components/ArchiveBrowserView.d.ts +40 -0
- package/dist/components/ArchiveBrowserView.d.ts.map +1 -0
- package/dist/components/ArchiveBrowserView.js +161 -0
- package/dist/components/ArchiveBrowserView.js.map +1 -0
- package/dist/components/ArchiveInitProgressView.d.ts +16 -0
- package/dist/components/ArchiveInitProgressView.d.ts.map +1 -0
- package/dist/components/ArchiveInitProgressView.js +72 -0
- package/dist/components/ArchiveInitProgressView.js.map +1 -0
- package/dist/components/AutoCompactToggle.d.ts +16 -0
- package/dist/components/AutoCompactToggle.d.ts.map +1 -0
- package/dist/components/AutoCompactToggle.js +12 -0
- package/dist/components/AutoCompactToggle.js.map +1 -0
- package/dist/components/BottomControls.d.ts +12 -0
- package/dist/components/BottomControls.d.ts.map +1 -0
- package/dist/components/BottomControls.js +11 -0
- package/dist/components/BottomControls.js.map +1 -0
- package/dist/components/CompactHeader.d.ts +21 -0
- package/dist/components/CompactHeader.d.ts.map +1 -0
- package/dist/components/CompactHeader.js +63 -0
- package/dist/components/CompactHeader.js.map +1 -0
- package/dist/components/CompactPanel.d.ts +22 -0
- package/dist/components/CompactPanel.d.ts.map +1 -0
- package/dist/components/CompactPanel.js +31 -0
- package/dist/components/CompactPanel.js.map +1 -0
- package/dist/components/ContentBox.d.ts +14 -0
- package/dist/components/ContentBox.d.ts.map +1 -0
- package/dist/components/ContentBox.js +24 -0
- package/dist/components/ContentBox.js.map +1 -0
- package/dist/components/ContextProgress.d.ts +14 -0
- package/dist/components/ContextProgress.d.ts.map +1 -0
- package/dist/components/ContextProgress.js +36 -0
- package/dist/components/ContextProgress.js.map +1 -0
- package/dist/components/Dashboard.d.ts +46 -0
- package/dist/components/Dashboard.d.ts.map +1 -0
- package/dist/components/Dashboard.js +67 -0
- package/dist/components/Dashboard.js.map +1 -0
- package/dist/components/FilterSelectionView.d.ts +15 -0
- package/dist/components/FilterSelectionView.d.ts.map +1 -0
- package/dist/components/FilterSelectionView.js +27 -0
- package/dist/components/FilterSelectionView.js.map +1 -0
- package/dist/components/GoogleDocsBrowserView.d.ts +20 -0
- package/dist/components/GoogleDocsBrowserView.d.ts.map +1 -0
- package/dist/components/GoogleDocsBrowserView.js +72 -0
- package/dist/components/GoogleDocsBrowserView.js.map +1 -0
- package/dist/components/HandoffBrowserView.d.ts +20 -0
- package/dist/components/HandoffBrowserView.d.ts.map +1 -0
- package/dist/components/HandoffBrowserView.js +66 -0
- package/dist/components/HandoffBrowserView.js.map +1 -0
- package/dist/components/Header.d.ts +14 -0
- package/dist/components/Header.d.ts.map +1 -0
- package/dist/components/Header.js +16 -0
- package/dist/components/Header.js.map +1 -0
- package/dist/components/HorizontalMenu.d.ts +24 -0
- package/dist/components/HorizontalMenu.d.ts.map +1 -0
- package/dist/components/HorizontalMenu.js +20 -0
- package/dist/components/HorizontalMenu.js.map +1 -0
- package/dist/components/ImageMascot.d.ts +8 -0
- package/dist/components/ImageMascot.d.ts.map +1 -0
- package/dist/components/ImageMascot.js +7 -0
- package/dist/components/ImageMascot.js.map +1 -0
- package/dist/components/LLMWorkingView.d.ts +19 -0
- package/dist/components/LLMWorkingView.d.ts.map +1 -0
- package/dist/components/LLMWorkingView.js +72 -0
- package/dist/components/LLMWorkingView.js.map +1 -0
- package/dist/components/LoadContextView.d.ts +22 -0
- package/dist/components/LoadContextView.d.ts.map +1 -0
- package/dist/components/LoadContextView.js +83 -0
- package/dist/components/LoadContextView.js.map +1 -0
- package/dist/components/MainMenuView.d.ts +20 -0
- package/dist/components/MainMenuView.d.ts.map +1 -0
- package/dist/components/MainMenuView.js +49 -0
- package/dist/components/MainMenuView.js.map +1 -0
- package/dist/components/Mascot.d.ts +24 -0
- package/dist/components/Mascot.d.ts.map +1 -0
- package/dist/components/Mascot.js +32 -0
- package/dist/components/Mascot.js.map +1 -0
- package/dist/components/Menu.d.ts +22 -0
- package/dist/components/Menu.d.ts.map +1 -0
- package/dist/components/Menu.js +28 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/NotionBrowserView.d.ts +21 -0
- package/dist/components/NotionBrowserView.d.ts.map +1 -0
- package/dist/components/NotionBrowserView.js +75 -0
- package/dist/components/NotionBrowserView.js.map +1 -0
- package/dist/components/ObsidianBrowserView.d.ts +21 -0
- package/dist/components/ObsidianBrowserView.d.ts.map +1 -0
- package/dist/components/ObsidianBrowserView.js +74 -0
- package/dist/components/ObsidianBrowserView.js.map +1 -0
- package/dist/components/ObsidianConfigView.d.ts +19 -0
- package/dist/components/ObsidianConfigView.d.ts.map +1 -0
- package/dist/components/ObsidianConfigView.js +45 -0
- package/dist/components/ObsidianConfigView.js.map +1 -0
- package/dist/components/PlaceholderView.d.ts +15 -0
- package/dist/components/PlaceholderView.d.ts.map +1 -0
- package/dist/components/PlaceholderView.js +20 -0
- package/dist/components/PlaceholderView.js.map +1 -0
- package/dist/components/PlanViewerView.d.ts +26 -0
- package/dist/components/PlanViewerView.d.ts.map +1 -0
- package/dist/components/PlanViewerView.js +170 -0
- package/dist/components/PlanViewerView.js.map +1 -0
- package/dist/components/ProgressBar.d.ts +24 -0
- package/dist/components/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar.js +23 -0
- package/dist/components/ProgressBar.js.map +1 -0
- package/dist/components/ProjectDashboardView.d.ts +38 -0
- package/dist/components/ProjectDashboardView.d.ts.map +1 -0
- package/dist/components/ProjectDashboardView.js +129 -0
- package/dist/components/ProjectDashboardView.js.map +1 -0
- package/dist/components/SaveContextView.d.ts +32 -0
- package/dist/components/SaveContextView.d.ts.map +1 -0
- package/dist/components/SaveContextView.js +41 -0
- package/dist/components/SaveContextView.js.map +1 -0
- package/dist/components/SessionDetails.d.ts +14 -0
- package/dist/components/SessionDetails.d.ts.map +1 -0
- package/dist/components/SessionDetails.js +87 -0
- package/dist/components/SessionDetails.js.map +1 -0
- package/dist/components/SessionsExperimentView.d.ts +35 -0
- package/dist/components/SessionsExperimentView.d.ts.map +1 -0
- package/dist/components/SessionsExperimentView.js +347 -0
- package/dist/components/SessionsExperimentView.js.map +1 -0
- package/dist/components/SessionsList.d.ts +20 -0
- package/dist/components/SessionsList.d.ts.map +1 -0
- package/dist/components/SessionsList.js +75 -0
- package/dist/components/SessionsList.js.map +1 -0
- package/dist/components/SettingsView.d.ts +48 -0
- package/dist/components/SettingsView.d.ts.map +1 -0
- package/dist/components/SettingsView.js +156 -0
- package/dist/components/SettingsView.js.map +1 -0
- package/dist/components/SourceSelectionView.d.ts +26 -0
- package/dist/components/SourceSelectionView.d.ts.map +1 -0
- package/dist/components/SourceSelectionView.js +109 -0
- package/dist/components/SourceSelectionView.js.map +1 -0
- package/dist/components/VerticalMenu.d.ts +18 -0
- package/dist/components/VerticalMenu.d.ts.map +1 -0
- package/dist/components/VerticalMenu.js +15 -0
- package/dist/components/VerticalMenu.js.map +1 -0
- package/dist/components/ascii-art/index.d.ts +6 -0
- package/dist/components/ascii-art/index.d.ts.map +1 -0
- package/dist/components/ascii-art/index.js +6 -0
- package/dist/components/ascii-art/index.js.map +1 -0
- package/dist/components/ascii-art/progress.d.ts +53 -0
- package/dist/components/ascii-art/progress.d.ts.map +1 -0
- package/dist/components/ascii-art/progress.js +102 -0
- package/dist/components/ascii-art/progress.js.map +1 -0
- package/dist/components/ascii-art/scene.d.ts +34 -0
- package/dist/components/ascii-art/scene.d.ts.map +1 -0
- package/dist/components/ascii-art/scene.js +72 -0
- package/dist/components/ascii-art/scene.js.map +1 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +25 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/layout/HorizontalLayout.d.ts +19 -0
- package/dist/components/layout/HorizontalLayout.d.ts.map +1 -0
- package/dist/components/layout/HorizontalLayout.js +62 -0
- package/dist/components/layout/HorizontalLayout.js.map +1 -0
- package/dist/components/layout/VerticalLayout.d.ts +16 -0
- package/dist/components/layout/VerticalLayout.d.ts.map +1 -0
- package/dist/components/layout/VerticalLayout.js +32 -0
- package/dist/components/layout/VerticalLayout.js.map +1 -0
- package/dist/components/layout/index.d.ts +6 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +4 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/layout/theme.d.ts +20 -0
- package/dist/components/layout/theme.d.ts.map +1 -0
- package/dist/components/layout/theme.js +23 -0
- package/dist/components/layout/theme.js.map +1 -0
- package/dist/components/setup/DoneStep.d.ts +7 -0
- package/dist/components/setup/DoneStep.d.ts.map +1 -0
- package/dist/components/setup/DoneStep.js +31 -0
- package/dist/components/setup/DoneStep.js.map +1 -0
- package/dist/components/setup/InstallingStep.d.ts +11 -0
- package/dist/components/setup/InstallingStep.d.ts.map +1 -0
- package/dist/components/setup/InstallingStep.js +27 -0
- package/dist/components/setup/InstallingStep.js.map +1 -0
- package/dist/components/setup/OptionsStep.d.ts +9 -0
- package/dist/components/setup/OptionsStep.d.ts.map +1 -0
- package/dist/components/setup/OptionsStep.js +39 -0
- package/dist/components/setup/OptionsStep.js.map +1 -0
- package/dist/components/setup/PrerequisitesStep.d.ts +7 -0
- package/dist/components/setup/PrerequisitesStep.d.ts.map +1 -0
- package/dist/components/setup/PrerequisitesStep.js +31 -0
- package/dist/components/setup/PrerequisitesStep.js.map +1 -0
- package/dist/components/setup/SetupFrame.d.ts +17 -0
- package/dist/components/setup/SetupFrame.d.ts.map +1 -0
- package/dist/components/setup/SetupFrame.js +33 -0
- package/dist/components/setup/SetupFrame.js.map +1 -0
- package/dist/components/setup/SetupWizard.d.ts +9 -0
- package/dist/components/setup/SetupWizard.d.ts.map +1 -0
- package/dist/components/setup/SetupWizard.js +149 -0
- package/dist/components/setup/SetupWizard.js.map +1 -0
- package/dist/components/setup/Spinner.d.ts +10 -0
- package/dist/components/setup/Spinner.d.ts.map +1 -0
- package/dist/components/setup/Spinner.js +20 -0
- package/dist/components/setup/Spinner.js.map +1 -0
- package/dist/components/setup/SyncStep.d.ts +11 -0
- package/dist/components/setup/SyncStep.d.ts.map +1 -0
- package/dist/components/setup/SyncStep.js +47 -0
- package/dist/components/setup/SyncStep.js.map +1 -0
- package/dist/components/setup/VerificationStep.d.ts +7 -0
- package/dist/components/setup/VerificationStep.d.ts.map +1 -0
- package/dist/components/setup/VerificationStep.js +27 -0
- package/dist/components/setup/VerificationStep.js.map +1 -0
- package/dist/components/setup/WelcomeStep.d.ts +6 -0
- package/dist/components/setup/WelcomeStep.d.ts.map +1 -0
- package/dist/components/setup/WelcomeStep.js +17 -0
- package/dist/components/setup/WelcomeStep.js.map +1 -0
- package/dist/components/shared/ProgressLine.d.ts +10 -0
- package/dist/components/shared/ProgressLine.d.ts.map +1 -0
- package/dist/components/shared/ProgressLine.js +18 -0
- package/dist/components/shared/ProgressLine.js.map +1 -0
- package/dist/components/shared/ProjectLine.d.ts +10 -0
- package/dist/components/shared/ProjectLine.d.ts.map +1 -0
- package/dist/components/shared/ProjectLine.js +19 -0
- package/dist/components/shared/ProjectLine.js.map +1 -0
- package/dist/components/shared/ScanningIndicator.d.ts +9 -0
- package/dist/components/shared/ScanningIndicator.d.ts.map +1 -0
- package/dist/components/shared/ScanningIndicator.js +22 -0
- package/dist/components/shared/ScanningIndicator.js.map +1 -0
- package/dist/components/shared/StatusLine.d.ts +13 -0
- package/dist/components/shared/StatusLine.d.ts.map +1 -0
- package/dist/components/shared/StatusLine.js +24 -0
- package/dist/components/shared/StatusLine.js.map +1 -0
- package/dist/components/shared/StatusLine.test.d.ts +8 -0
- package/dist/components/shared/StatusLine.test.d.ts.map +1 -0
- package/dist/components/shared/StatusLine.test.js +50 -0
- package/dist/components/shared/StatusLine.test.js.map +1 -0
- package/dist/components/shared/index.d.ts +4 -0
- package/dist/components/shared/index.d.ts.map +1 -0
- package/dist/components/shared/index.js +4 -0
- package/dist/components/shared/index.js.map +1 -0
- package/dist/handoff/catalog.test.d.ts +5 -0
- package/dist/handoff/catalog.test.d.ts.map +1 -0
- package/dist/handoff/catalog.test.js +172 -0
- package/dist/handoff/catalog.test.js.map +1 -0
- package/dist/handoff/subagents.test.d.ts +8 -0
- package/dist/handoff/subagents.test.d.ts.map +1 -0
- package/dist/handoff/subagents.test.js +139 -0
- package/dist/handoff/subagents.test.js.map +1 -0
- package/dist/hooks/useAddContextFlow.d.ts +29 -0
- package/dist/hooks/useAddContextFlow.d.ts.map +1 -0
- package/dist/hooks/useAddContextFlow.js +83 -0
- package/dist/hooks/useAddContextFlow.js.map +1 -0
- package/dist/hooks/useArchiveBrowser.d.ts +37 -0
- package/dist/hooks/useArchiveBrowser.d.ts.map +1 -0
- package/dist/hooks/useArchiveBrowser.js +175 -0
- package/dist/hooks/useArchiveBrowser.js.map +1 -0
- package/dist/hooks/useClaudeToken.d.ts +29 -0
- package/dist/hooks/useClaudeToken.d.ts.map +1 -0
- package/dist/hooks/useClaudeToken.js +166 -0
- package/dist/hooks/useClaudeToken.js.map +1 -0
- package/dist/hooks/useGoogleDocsBrowser.d.ts +29 -0
- package/dist/hooks/useGoogleDocsBrowser.d.ts.map +1 -0
- package/dist/hooks/useGoogleDocsBrowser.js +146 -0
- package/dist/hooks/useGoogleDocsBrowser.js.map +1 -0
- package/dist/hooks/useHandoffBrowser.d.ts +27 -0
- package/dist/hooks/useHandoffBrowser.d.ts.map +1 -0
- package/dist/hooks/useHandoffBrowser.js +92 -0
- package/dist/hooks/useHandoffBrowser.js.map +1 -0
- package/dist/hooks/useJacquesClient.d.ts +69 -0
- package/dist/hooks/useJacquesClient.d.ts.map +1 -0
- package/dist/hooks/useJacquesClient.js +248 -0
- package/dist/hooks/useJacquesClient.js.map +1 -0
- package/dist/hooks/useLlmWorking.d.ts +30 -0
- package/dist/hooks/useLlmWorking.d.ts.map +1 -0
- package/dist/hooks/useLlmWorking.js +127 -0
- package/dist/hooks/useLlmWorking.js.map +1 -0
- package/dist/hooks/useLoadContext.d.ts +27 -0
- package/dist/hooks/useLoadContext.d.ts.map +1 -0
- package/dist/hooks/useLoadContext.js +102 -0
- package/dist/hooks/useLoadContext.js.map +1 -0
- package/dist/hooks/useNotification.d.ts +36 -0
- package/dist/hooks/useNotification.d.ts.map +1 -0
- package/dist/hooks/useNotification.js +89 -0
- package/dist/hooks/useNotification.js.map +1 -0
- package/dist/hooks/useNotification.test.d.ts +9 -0
- package/dist/hooks/useNotification.test.d.ts.map +1 -0
- package/dist/hooks/useNotification.test.js +144 -0
- package/dist/hooks/useNotification.test.js.map +1 -0
- package/dist/hooks/useNotionBrowser.d.ts +30 -0
- package/dist/hooks/useNotionBrowser.d.ts.map +1 -0
- package/dist/hooks/useNotionBrowser.js +154 -0
- package/dist/hooks/useNotionBrowser.js.map +1 -0
- package/dist/hooks/useObsidianBrowser.d.ts +42 -0
- package/dist/hooks/useObsidianBrowser.d.ts.map +1 -0
- package/dist/hooks/useObsidianBrowser.js +63 -0
- package/dist/hooks/useObsidianBrowser.js.map +1 -0
- package/dist/hooks/useObsidianConfig.d.ts +28 -0
- package/dist/hooks/useObsidianConfig.d.ts.map +1 -0
- package/dist/hooks/useObsidianConfig.js +119 -0
- package/dist/hooks/useObsidianConfig.js.map +1 -0
- package/dist/hooks/useObsidianFileBrowser.d.ts +29 -0
- package/dist/hooks/useObsidianFileBrowser.d.ts.map +1 -0
- package/dist/hooks/useObsidianFileBrowser.js +114 -0
- package/dist/hooks/useObsidianFileBrowser.js.map +1 -0
- package/dist/hooks/useProjectDashboard.d.ts +38 -0
- package/dist/hooks/useProjectDashboard.d.ts.map +1 -0
- package/dist/hooks/useProjectDashboard.js +224 -0
- package/dist/hooks/useProjectDashboard.js.map +1 -0
- package/dist/hooks/useProjectSelector.d.ts +17 -0
- package/dist/hooks/useProjectSelector.d.ts.map +1 -0
- package/dist/hooks/useProjectSelector.js +43 -0
- package/dist/hooks/useProjectSelector.js.map +1 -0
- package/dist/hooks/useProjectSelector.test.d.ts +7 -0
- package/dist/hooks/useProjectSelector.test.d.ts.map +1 -0
- package/dist/hooks/useProjectSelector.test.js +117 -0
- package/dist/hooks/useProjectSelector.test.js.map +1 -0
- package/dist/hooks/useSaveFlow.d.ts +30 -0
- package/dist/hooks/useSaveFlow.d.ts.map +1 -0
- package/dist/hooks/useSaveFlow.js +195 -0
- package/dist/hooks/useSaveFlow.js.map +1 -0
- package/dist/hooks/useSessions.test.d.ts +7 -0
- package/dist/hooks/useSessions.test.d.ts.map +1 -0
- package/dist/hooks/useSessions.test.js +153 -0
- package/dist/hooks/useSessions.test.js.map +1 -0
- package/dist/hooks/useSessionsExperiment.d.ts +97 -0
- package/dist/hooks/useSessionsExperiment.d.ts.map +1 -0
- package/dist/hooks/useSessionsExperiment.js +321 -0
- package/dist/hooks/useSessionsExperiment.js.map +1 -0
- package/dist/hooks/useSettings.d.ts +47 -0
- package/dist/hooks/useSettings.d.ts.map +1 -0
- package/dist/hooks/useSettings.js +245 -0
- package/dist/hooks/useSettings.js.map +1 -0
- package/dist/hooks/useSetupWizard.d.ts +35 -0
- package/dist/hooks/useSetupWizard.d.ts.map +1 -0
- package/dist/hooks/useSetupWizard.js +438 -0
- package/dist/hooks/useSetupWizard.js.map +1 -0
- package/dist/hooks/useUsageLimits.d.ts +24 -0
- package/dist/hooks/useUsageLimits.d.ts.map +1 -0
- package/dist/hooks/useUsageLimits.js +58 -0
- package/dist/hooks/useUsageLimits.js.map +1 -0
- package/dist/hooks/useUsageLimits.test.d.ts +7 -0
- package/dist/hooks/useUsageLimits.test.d.ts.map +1 -0
- package/dist/hooks/useUsageLimits.test.js +136 -0
- package/dist/hooks/useUsageLimits.test.js.map +1 -0
- package/dist/hooks/useWorktrees.d.ts +28 -0
- package/dist/hooks/useWorktrees.d.ts.map +1 -0
- package/dist/hooks/useWorktrees.js +57 -0
- package/dist/hooks/useWorktrees.js.map +1 -0
- package/dist/hooks/useWorktrees.test.d.ts +7 -0
- package/dist/hooks/useWorktrees.test.d.ts.map +1 -0
- package/dist/hooks/useWorktrees.test.js +119 -0
- package/dist/hooks/useWorktrees.test.js.map +1 -0
- package/dist/templates/compact-prompt.d.ts +16 -0
- package/dist/templates/compact-prompt.d.ts.map +1 -0
- package/dist/templates/compact-prompt.js +47 -0
- package/dist/templates/compact-prompt.js.map +1 -0
- package/dist/templates/context-skill.d.ts +8 -0
- package/dist/templates/context-skill.d.ts.map +1 -0
- package/dist/templates/context-skill.js +42 -0
- package/dist/templates/context-skill.js.map +1 -0
- package/dist/types.d.ts +127 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/activity.d.ts +17 -0
- package/dist/utils/activity.d.ts.map +1 -0
- package/dist/utils/activity.js +78 -0
- package/dist/utils/activity.js.map +1 -0
- package/dist/utils/bottom-controls.d.ts +24 -0
- package/dist/utils/bottom-controls.d.ts.map +1 -0
- package/dist/utils/bottom-controls.js +29 -0
- package/dist/utils/bottom-controls.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +20 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/constants.d.ts +6 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +6 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/format.d.ts +17 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +31 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/session-mode.d.ts +14 -0
- package/dist/utils/session-mode.d.ts.map +1 -0
- package/dist/utils/session-mode.js +29 -0
- package/dist/utils/session-mode.js.map +1 -0
- package/dist/utils/session-mode.test.d.ts +7 -0
- package/dist/utils/session-mode.test.d.ts.map +1 -0
- package/dist/utils/session-mode.test.js +102 -0
- package/dist/utils/session-mode.test.js.map +1 -0
- package/dist/utils/sessions-items-builder.d.ts +29 -0
- package/dist/utils/sessions-items-builder.d.ts.map +1 -0
- package/dist/utils/sessions-items-builder.js +394 -0
- package/dist/utils/sessions-items-builder.js.map +1 -0
- package/dist/utils/settings.d.ts +100 -0
- package/dist/utils/settings.d.ts.map +1 -0
- package/dist/utils/settings.js +206 -0
- package/dist/utils/settings.js.map +1 -0
- package/dist/websocket-client.d.ts +70 -0
- package/dist/websocket-client.d.ts.map +1 -0
- package/dist/websocket-client.js +188 -0
- package/dist/websocket-client.js.map +1 -0
- package/hooks/adapters/__init__.py +17 -0
- package/hooks/adapters/__pycache__/__init__.cpython-311.pyc +0 -0
- package/hooks/adapters/__pycache__/__init__.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/__init__.cpython-314.pyc +0 -0
- package/hooks/adapters/__pycache__/base.cpython-311.pyc +0 -0
- package/hooks/adapters/__pycache__/base.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/base.cpython-314.pyc +0 -0
- package/hooks/adapters/__pycache__/calibration.cpython-311.pyc +0 -0
- package/hooks/adapters/__pycache__/calibration.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/calibration.cpython-314.pyc +0 -0
- package/hooks/adapters/__pycache__/claude_code.cpython-311.pyc +0 -0
- package/hooks/adapters/__pycache__/claude_code.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/claude_code.cpython-314.pyc +0 -0
- package/hooks/adapters/__pycache__/cursor.cpython-311.pyc +0 -0
- package/hooks/adapters/__pycache__/cursor.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/cursor.cpython-314.pyc +0 -0
- package/hooks/adapters/__pycache__/skills.cpython-311.pyc +0 -0
- package/hooks/adapters/__pycache__/skills.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/skills.cpython-314.pyc +0 -0
- package/hooks/adapters/__pycache__/test_adapters.cpython-311-pytest-9.0.2.pyc +0 -0
- package/hooks/adapters/__pycache__/test_adapters.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/test_calibration.cpython-311-pytest-9.0.2.pyc +0 -0
- package/hooks/adapters/__pycache__/test_skills.cpython-311-pytest-9.0.2.pyc +0 -0
- package/hooks/adapters/__pycache__/test_tokenizer.cpython-311-pytest-9.0.2.pyc +0 -0
- package/hooks/adapters/__pycache__/tokenizer.cpython-311.pyc +0 -0
- package/hooks/adapters/__pycache__/tokenizer.cpython-313.pyc +0 -0
- package/hooks/adapters/__pycache__/tokenizer.cpython-314.pyc +0 -0
- package/hooks/adapters/base.py +459 -0
- package/hooks/adapters/calibration.py +236 -0
- package/hooks/adapters/claude_code.py +316 -0
- package/hooks/adapters/context_parser.py +288 -0
- package/hooks/adapters/cursor.py +258 -0
- package/hooks/adapters/skills.py +160 -0
- package/hooks/adapters/template.py +281 -0
- package/hooks/adapters/test_adapters.py +516 -0
- package/hooks/adapters/test_calibration.py +235 -0
- package/hooks/adapters/test_skills.py +162 -0
- package/hooks/adapters/test_tokenizer.py +158 -0
- package/hooks/adapters/tokenizer.py +192 -0
- package/hooks/claude-code/pre-tool-use.py +36 -0
- package/hooks/claude-code/register-session.py +35 -0
- package/hooks/claude-code/report-activity.py +32 -0
- package/hooks/claude-code/session-idle.py +32 -0
- package/hooks/claude-code/statusline.sh +91 -0
- package/hooks/claude-code/unregister-session.py +32 -0
- package/hooks/cursor/README.md +61 -0
- package/hooks/cursor/after-agent-response.py +97 -0
- package/hooks/cursor/hooks.json.template +30 -0
- package/hooks/cursor/post-tool-use.py +32 -0
- package/hooks/cursor/pre-compact.py +61 -0
- package/hooks/cursor/session-end.py +32 -0
- package/hooks/cursor/session-start.py +66 -0
- package/hooks/git-detect.sh +47 -0
- package/hooks/install.py +441 -0
- package/hooks/jacques-register-session.py +286 -0
- package/hooks/jacques-report-activity.py +145 -0
- package/hooks/jacques-session-idle.py +57 -0
- package/hooks/jacques-unregister-session.py +57 -0
- package/hooks/requirements.txt +9 -0
- package/hooks/statusline.py +457 -0
- package/hooks/statusline.sh +212 -0
- package/package.json +63 -0
- package/skills/jacques-continue/SKILL.md +87 -0
- package/skills/jacques-handoff/SKILL.md +147 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { MUTED_TEXT, ERROR_COLOR, WARNING_COLOR, SUCCESS_COLOR } from "./layout/theme.js";
|
|
4
|
+
export function ContextProgress({ session, }) {
|
|
5
|
+
if (!session) {
|
|
6
|
+
return (_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Text, { color: MUTED_TEXT, children: " No active session" }) }));
|
|
7
|
+
}
|
|
8
|
+
const metrics = session.context_metrics;
|
|
9
|
+
if (!metrics) {
|
|
10
|
+
return (_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Text, { color: MUTED_TEXT, children: " Context: Waiting for data..." }) }));
|
|
11
|
+
}
|
|
12
|
+
const percentage = metrics.used_percentage;
|
|
13
|
+
const usedTokens = metrics.total_input_tokens || 0;
|
|
14
|
+
const windowSize = metrics.context_window_size || 200000;
|
|
15
|
+
const isEstimate = metrics.is_estimate ?? false;
|
|
16
|
+
// Format numbers with commas
|
|
17
|
+
const formatNumber = (n) => n.toLocaleString();
|
|
18
|
+
// Determine color based on usage
|
|
19
|
+
const getColor = (pct) => {
|
|
20
|
+
if (pct >= 70)
|
|
21
|
+
return ERROR_COLOR;
|
|
22
|
+
if (pct >= 50)
|
|
23
|
+
return WARNING_COLOR;
|
|
24
|
+
return SUCCESS_COLOR;
|
|
25
|
+
};
|
|
26
|
+
const color = getColor(percentage);
|
|
27
|
+
// Build progress bar (50 chars wide)
|
|
28
|
+
const barWidth = 50;
|
|
29
|
+
const filledWidth = Math.round((percentage / 100) * barWidth);
|
|
30
|
+
const emptyWidth = barWidth - filledWidth;
|
|
31
|
+
const filledBar = "█".repeat(filledWidth);
|
|
32
|
+
const emptyBar = "░".repeat(emptyWidth);
|
|
33
|
+
return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsxs(Text, { children: [" ", _jsxs(Text, { color: color, children: ["Context: ", percentage.toFixed(1), "%"] }), _jsxs(Text, { color: MUTED_TEXT, children: [" ", "(", formatNumber(usedTokens), " / ", formatNumber(windowSize), " tokens)", isEstimate ? " ~" : ""] })] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: color, children: filledBar }), _jsx(Text, { color: MUTED_TEXT, children: emptyBar })] })] }));
|
|
34
|
+
}
|
|
35
|
+
export default ContextProgress;
|
|
36
|
+
//# sourceMappingURL=ContextProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextProgress.js","sourceRoot":"","sources":["../../src/components/ContextProgress.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAO1F,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,GACc;IACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,YACrC,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,mCAA2B,GAC9C,CACP,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,YACrC,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,8CAAsC,GACzD,CACP,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,IAAI,MAAM,CAAC;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;IAEhD,6BAA6B;IAC7B,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IAE/D,iCAAiC;IACjC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE;QACvC,IAAI,GAAG,IAAI,EAAE;YAAE,OAAO,WAAW,CAAC;QAClC,IAAI,GAAG,IAAI,EAAE;YAAE,OAAO,aAAa,CAAC;QACpC,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEnC,qCAAqC;IACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAExC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aAErC,MAAC,IAAI,eACF,YAAY,EACb,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,0BAAY,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC5D,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,aACpB,GAAG,OACF,YAAY,CAAC,UAAU,CAAC,SAAK,YAAY,CAAC,UAAU,CAAC,cACtD,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAClB,IACF,EAGP,MAAC,IAAI,eACF,YAAY,EACb,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAAG,SAAS,GAAQ,EACtC,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,YAAG,QAAQ,GAAQ,IACrC,IACH,CACP,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dashboard Component
|
|
3
|
+
*
|
|
4
|
+
* Thin view router that tracks terminal dimensions and delegates
|
|
5
|
+
* rendering to the appropriate view component based on currentView.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import type { UseSettingsState } from "../hooks/useSettings.js";
|
|
9
|
+
import type { UseArchiveBrowserState } from "../hooks/useArchiveBrowser.js";
|
|
10
|
+
import type { UseProjectDashboardState } from "../hooks/useProjectDashboard.js";
|
|
11
|
+
import type { UseClaudeTokenState } from "../hooks/useClaudeToken.js";
|
|
12
|
+
import type { ContentItem } from "../hooks/useSessionsExperiment.js";
|
|
13
|
+
import type { UsageLimits } from "../hooks/useUsageLimits.js";
|
|
14
|
+
import type { Session } from "@jacques-ai/core";
|
|
15
|
+
export type DashboardView = "main" | "settings" | "archive-browser" | "archive-initializing" | "project-dashboard" | "plan-viewer" | "sessions-experiment" | "sessions" | "projects" | "worktrees" | "save" | "load" | "load-sources" | "obsidian-config" | "obsidian-browser" | "google-docs-browser" | "notion-browser" | "add-context-confirm" | "fetch" | "handoff-browser" | "llm-working";
|
|
16
|
+
interface DashboardProps {
|
|
17
|
+
sessions: Session[];
|
|
18
|
+
focusedSessionId: string | null;
|
|
19
|
+
currentView: DashboardView;
|
|
20
|
+
selectedMenuIndex: number;
|
|
21
|
+
notification: string | null;
|
|
22
|
+
selectedProject: string | null;
|
|
23
|
+
settings: UseSettingsState;
|
|
24
|
+
claudeToken: UseClaudeTokenState;
|
|
25
|
+
usageLimits: UsageLimits | null;
|
|
26
|
+
usageLoading: boolean;
|
|
27
|
+
archive: UseArchiveBrowserState;
|
|
28
|
+
projectDashboard: UseProjectDashboardState;
|
|
29
|
+
sessionsExpItems: ContentItem[];
|
|
30
|
+
sessionsExpSelectableIndices: number[];
|
|
31
|
+
sessionsExpSelectedIndex: number;
|
|
32
|
+
sessionsExpSelectedIds: Set<string>;
|
|
33
|
+
sessionsExpShowHelp: boolean;
|
|
34
|
+
sessionsExpScrollBias: number;
|
|
35
|
+
sessionsExpIsCreatingWorktree: boolean;
|
|
36
|
+
sessionsExpNewWorktreeName: string;
|
|
37
|
+
sessionsExpWorktreeCreateError: string | null;
|
|
38
|
+
sessionsExpRepoRoot: string | null;
|
|
39
|
+
sessionsExpCreatingForRepoRoot: string | null;
|
|
40
|
+
sessionsExpRemoveDeleteBranch: boolean;
|
|
41
|
+
sessionsExpRemoveForce: boolean;
|
|
42
|
+
scanning?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export declare function Dashboard(props: DashboardProps): React.ReactElement;
|
|
45
|
+
export default Dashboard;
|
|
46
|
+
//# sourceMappingURL=Dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/components/Dashboard.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AASnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,iBAAiB,GACjB,sBAAsB,GACtB,mBAAmB,GACnB,aAAa,GACb,qBAAqB,GAErB,UAAU,GACV,UAAU,GACV,WAAW,GACX,MAAM,GACN,MAAM,GACN,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,qBAAqB,GACrB,gBAAgB,GAChB,qBAAqB,GACrB,OAAO,GACP,iBAAiB,GACjB,aAAa,CAAC;AAElB,UAAU,cAAc;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,mBAAmB,CAAC;IACjC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IAEtB,OAAO,EAAE,sBAAsB,CAAC;IAEhC,gBAAgB,EAAE,wBAAwB,CAAC;IAE3C,gBAAgB,EAAE,WAAW,EAAE,CAAC;IAChC,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6BAA6B,EAAE,OAAO,CAAC;IACvC,0BAA0B,EAAE,MAAM,CAAC;IACnC,8BAA8B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8BAA8B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,6BAA6B,EAAE,OAAO,CAAC;IACvC,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CA+JnE;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Dashboard Component
|
|
4
|
+
*
|
|
5
|
+
* Thin view router that tracks terminal dimensions and delegates
|
|
6
|
+
* rendering to the appropriate view component based on currentView.
|
|
7
|
+
*/
|
|
8
|
+
import { useState, useEffect } from "react";
|
|
9
|
+
import { Box, useStdout } from "ink";
|
|
10
|
+
import { MainMenuView } from "./MainMenuView.js";
|
|
11
|
+
import { SettingsView } from "./SettingsView.js";
|
|
12
|
+
import { ArchiveBrowserView } from "./ArchiveBrowserView.js";
|
|
13
|
+
import { ArchiveInitProgressView } from "./ArchiveInitProgressView.js";
|
|
14
|
+
import { ProjectDashboardView } from "./ProjectDashboardView.js";
|
|
15
|
+
import { PlanViewerView } from "./PlanViewerView.js";
|
|
16
|
+
import { SessionsExperimentView } from "./SessionsExperimentView.js";
|
|
17
|
+
import { getProjectGroupKey } from "@jacques-ai/core";
|
|
18
|
+
export function Dashboard(props) {
|
|
19
|
+
const { stdout } = useStdout();
|
|
20
|
+
const [terminalWidth, setTerminalWidth] = useState(stdout?.columns || 80);
|
|
21
|
+
const [terminalHeight, setTerminalHeight] = useState(stdout?.rows || 24);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const handleResize = () => {
|
|
24
|
+
if (stdout && "write" in stdout && typeof stdout.write === "function") {
|
|
25
|
+
stdout.write("\x1Bc");
|
|
26
|
+
}
|
|
27
|
+
if (stdout?.columns)
|
|
28
|
+
setTerminalWidth(stdout.columns);
|
|
29
|
+
if (stdout?.rows)
|
|
30
|
+
setTerminalHeight(stdout.rows);
|
|
31
|
+
};
|
|
32
|
+
if (stdout && "on" in stdout && typeof stdout.on === "function") {
|
|
33
|
+
stdout.on("resize", handleResize);
|
|
34
|
+
return () => {
|
|
35
|
+
if ("off" in stdout && typeof stdout.off === "function") {
|
|
36
|
+
stdout.off("resize", handleResize);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}, [stdout]);
|
|
41
|
+
const tw = terminalWidth;
|
|
42
|
+
const th = terminalHeight;
|
|
43
|
+
const focusedSession = props.sessions.find((s) => s.session_id === props.focusedSessionId);
|
|
44
|
+
switch (props.currentView) {
|
|
45
|
+
case "settings":
|
|
46
|
+
return (_jsx(Box, { width: tw, height: th, flexDirection: "column", children: _jsx(SettingsView, { terminalWidth: tw, selectedIndex: props.settings.index, autoArchive: props.settings.autoArchiveEnabled, skipPermissions: props.settings.skipPermissions, stats: props.settings.archiveStats, loading: props.settings.archiveStatsLoading, scrollOffset: props.settings.scrollOffset, syncProgress: props.settings.syncProgress, usageLimits: props.usageLimits, usageLoading: props.usageLoading, claudeConnected: props.claudeToken.connected, claudeTokenMasked: props.claudeToken.tokenMasked, claudeTokenInput: props.claudeToken.tokenInput, claudeTokenError: props.claudeToken.tokenError, isTokenInputMode: props.claudeToken.isInputMode, isTokenVerifying: props.claudeToken.isVerifying, showConnectionSuccess: props.claudeToken.showSuccess, notificationSettings: props.settings.notificationSettings, notificationsLoading: props.settings.notificationsLoading }) }));
|
|
47
|
+
case "archive-browser":
|
|
48
|
+
return (_jsx(Box, { width: tw, height: th, flexDirection: "column", children: _jsx(ArchiveBrowserView, { items: props.archive.items, selectedIndex: props.archive.selectedIndex, scrollOffset: props.archive.scrollOffset, terminalWidth: tw, loading: props.archive.loading, error: props.archive.error }) }));
|
|
49
|
+
case "archive-initializing":
|
|
50
|
+
return (_jsx(Box, { width: tw, height: th, flexDirection: "column", children: _jsx(ArchiveInitProgressView, { progress: props.archive.initProgress, result: props.archive.initResult, terminalWidth: tw }) }));
|
|
51
|
+
case "project-dashboard": {
|
|
52
|
+
const projectSession = focusedSession || props.sessions[0];
|
|
53
|
+
const projectName = projectSession ? getProjectGroupKey(projectSession) : "Unknown Project";
|
|
54
|
+
return (_jsx(Box, { width: tw, height: th, flexDirection: "column", children: _jsx(ProjectDashboardView, { projectName: projectName, terminalWidth: tw, terminalHeight: th, statistics: props.projectDashboard.stats, sessions: props.projectDashboard.dashboardSessions, plans: props.projectDashboard.plans, activeSection: props.projectDashboard.section, selectedIndex: props.projectDashboard.selectedIndex, scrollOffset: props.projectDashboard.scrollOffset, loading: props.projectDashboard.loading, planProgress: props.projectDashboard.planProgressMap }) }));
|
|
55
|
+
}
|
|
56
|
+
case "sessions-experiment":
|
|
57
|
+
return (_jsx(Box, { width: tw, height: th, flexDirection: "column", children: _jsx(SessionsExperimentView, { items: props.sessionsExpItems, selectableIndices: props.sessionsExpSelectableIndices, selectedIndex: props.sessionsExpSelectedIndex, selectedIds: props.sessionsExpSelectedIds, showHelp: props.sessionsExpShowHelp, scrollBias: props.sessionsExpScrollBias, notification: props.notification, terminalWidth: tw, terminalHeight: th, isCreatingWorktree: props.sessionsExpIsCreatingWorktree, newWorktreeName: props.sessionsExpNewWorktreeName, worktreeCreateError: props.sessionsExpWorktreeCreateError, repoRoot: props.sessionsExpRepoRoot, creatingForRepoRoot: props.sessionsExpCreatingForRepoRoot, projectName: props.selectedProject, removeDeleteBranch: props.sessionsExpRemoveDeleteBranch, removeForce: props.sessionsExpRemoveForce, scanning: props.scanning }) }));
|
|
58
|
+
case "plan-viewer":
|
|
59
|
+
if (!props.projectDashboard.planViewerPlan)
|
|
60
|
+
break;
|
|
61
|
+
return (_jsx(Box, { width: tw, height: th, flexDirection: "column", children: _jsx(PlanViewerView, { plan: props.projectDashboard.planViewerPlan, content: props.projectDashboard.planViewerContent, terminalWidth: tw, terminalHeight: th, scrollOffset: props.projectDashboard.planViewerScrollOffset, progress: props.projectDashboard.planViewerProgress, progressLoading: props.projectDashboard.planViewerProgressLoading }) }));
|
|
62
|
+
}
|
|
63
|
+
// Main menu view (default)
|
|
64
|
+
return (_jsx(Box, { width: tw, height: th, flexDirection: "column", children: _jsx(MainMenuView, { sessions: props.sessions, focusedSession: focusedSession ?? null, selectedMenuIndex: props.selectedMenuIndex, notification: props.notification, terminalWidth: tw, selectedProject: props.selectedProject, scanning: props.scanning }) }));
|
|
65
|
+
}
|
|
66
|
+
export default Dashboard;
|
|
67
|
+
//# sourceMappingURL=Dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../src/components/Dashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filter Selection View
|
|
3
|
+
*
|
|
4
|
+
* Shows filter options with token estimates for saving contexts.
|
|
5
|
+
*/
|
|
6
|
+
import React from "react";
|
|
7
|
+
import type { FilterTokenEstimates } from "@jacques-ai/core";
|
|
8
|
+
interface FilterSelectionViewProps {
|
|
9
|
+
estimates: FilterTokenEstimates;
|
|
10
|
+
selectedFilterIndex: number;
|
|
11
|
+
terminalWidth: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function FilterSelectionView({ estimates, selectedFilterIndex, terminalWidth, }: FilterSelectionViewProps): React.ReactElement;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=FilterSelectionView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterSelectionView.d.ts","sourceRoot":"","sources":["../../src/components/FilterSelectionView.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,UAAU,wBAAwB;IAChC,SAAS,EAAE,oBAAoB,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAQD,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,mBAAmB,EACnB,aAAa,GACd,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAmD/C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { formatSessionTokenCount as formatTokenCount, FILTER_CONFIGS, FilterType, } from "@jacques-ai/core";
|
|
4
|
+
import { ACCENT_COLOR } from "./layout/theme.js";
|
|
5
|
+
const FILTER_ORDER = [
|
|
6
|
+
FilterType.EVERYTHING,
|
|
7
|
+
FilterType.WITHOUT_TOOLS,
|
|
8
|
+
FilterType.MESSAGES_ONLY,
|
|
9
|
+
];
|
|
10
|
+
export function FilterSelectionView({ estimates, selectedFilterIndex, terminalWidth, }) {
|
|
11
|
+
const isHorizontal = terminalWidth >= 60;
|
|
12
|
+
return (_jsxs(Box, { flexDirection: "column", gap: 0, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: ACCENT_COLOR, children: "Select save format" }) }), FILTER_ORDER.map((filterType, index) => {
|
|
13
|
+
const config = FILTER_CONFIGS[filterType];
|
|
14
|
+
const estimate = estimates[filterType];
|
|
15
|
+
const isSelected = index === selectedFilterIndex;
|
|
16
|
+
const currentTokens = formatTokenCount(estimate.current);
|
|
17
|
+
const filteredTokens = formatTokenCount(estimate.filtered);
|
|
18
|
+
const savings = estimate.savings > 0
|
|
19
|
+
? ` (-${estimate.savingsPercent.toFixed(0)}%)`
|
|
20
|
+
: "";
|
|
21
|
+
const tokenDisplay = estimate.savings === 0
|
|
22
|
+
? `${currentTokens} tokens (no change)`
|
|
23
|
+
: `${currentTokens} → ${filteredTokens} tokens${savings}`;
|
|
24
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { children: _jsxs(Text, { color: isSelected ? ACCENT_COLOR : "white", children: [isSelected ? "> " : " ", _jsx(Text, { bold: isSelected, children: config.label })] }) }), _jsx(Box, { marginLeft: 4, children: _jsx(Text, { dimColor: true, children: tokenDisplay }) })] }, filterType));
|
|
25
|
+
}), _jsx(Box, { marginTop: 1, borderStyle: "single", borderColor: "gray", paddingX: 1, children: _jsx(Text, { dimColor: true, children: "[\u2191\u2193] Navigate \u2022 [Enter] Select \u2022 [Esc] Cancel" }) })] }));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=FilterSelectionView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterSelectionView.js","sourceRoot":"","sources":["../../src/components/FilterSelectionView.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EACL,uBAAuB,IAAI,gBAAgB,EAC3C,cAAc,EACd,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,MAAM,YAAY,GAAG;IACnB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,aAAa;CACzB,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAClC,SAAS,EACT,mBAAmB,EACnB,aAAa,GACY;IACzB,MAAM,YAAY,GAAG,aAAa,IAAI,EAAE,CAAC;IAEzC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAEhC,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,YAAY,mCAEvB,GACH,EAGL,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBACtC,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM,UAAU,GAAG,KAAK,KAAK,mBAAmB,CAAC;gBAEjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACzD,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC3D,MAAM,OAAO,GACX,QAAQ,CAAC,OAAO,GAAG,CAAC;oBAClB,CAAC,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;oBAC9C,CAAC,CAAC,EAAE,CAAC;gBAET,MAAM,YAAY,GAChB,QAAQ,CAAC,OAAO,KAAK,CAAC;oBACpB,CAAC,CAAC,GAAG,aAAa,qBAAqB;oBACvC,CAAC,CAAC,GAAG,aAAa,MAAM,cAAc,UAAU,OAAO,EAAE,CAAC;gBAE9D,OAAO,CACL,MAAC,GAAG,IAAkB,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aAC1D,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,aAC7C,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACzB,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,YAAG,MAAM,CAAC,KAAK,GAAQ,IACxC,GACH,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,QAAQ,kBAAE,YAAY,GAAQ,GAChC,KATE,UAAU,CAUd,CACP,CAAC;YACJ,CAAC,CAAC,EAGF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,YACpE,KAAC,IAAI,IAAC,QAAQ,wFAAqD,GAC/D,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoogleDocsBrowserView Component
|
|
3
|
+
*
|
|
4
|
+
* File explorer for Google Drive documents with expandable folders.
|
|
5
|
+
* Uses the same bordered layout as the main dashboard.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import type { FlatTreeItem } from "@jacques-ai/core";
|
|
9
|
+
interface GoogleDocsBrowserViewProps {
|
|
10
|
+
items: FlatTreeItem[];
|
|
11
|
+
selectedIndex: number;
|
|
12
|
+
scrollOffset: number;
|
|
13
|
+
terminalWidth: number;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
error?: string | null;
|
|
16
|
+
}
|
|
17
|
+
export declare const GOOGLE_DOCS_VISIBLE_ITEMS = 6;
|
|
18
|
+
export declare function GoogleDocsBrowserView({ items, selectedIndex, scrollOffset, terminalWidth, loading, error, }: GoogleDocsBrowserViewProps): React.ReactElement;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=GoogleDocsBrowserView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoogleDocsBrowserView.d.ts","sourceRoot":"","sources":["../../src/components/GoogleDocsBrowserView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAWrD,UAAU,0BAA0B;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAGD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,OAAe,EACf,KAAY,GACb,EAAE,0BAA0B,GAAG,KAAK,CAAC,YAAY,CAyIjD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { HorizontalLayout, VerticalLayout, ACCENT_COLOR, MUTED_TEXT, ERROR_COLOR, HORIZONTAL_LAYOUT_MIN_WIDTH, FIXED_CONTENT_HEIGHT, } from "./layout/index.js";
|
|
4
|
+
// Visible items in the scrollable area (reserve lines for header/footer)
|
|
5
|
+
export const GOOGLE_DOCS_VISIBLE_ITEMS = 6;
|
|
6
|
+
export function GoogleDocsBrowserView({ items, selectedIndex, scrollOffset, terminalWidth, loading = false, error = null, }) {
|
|
7
|
+
const useHorizontalLayout = terminalWidth >= HORIZONTAL_LAYOUT_MIN_WIDTH;
|
|
8
|
+
const showVersion = terminalWidth >= 70;
|
|
9
|
+
// Calculate visible window
|
|
10
|
+
const totalItems = items.length;
|
|
11
|
+
const canScrollUp = scrollOffset > 0;
|
|
12
|
+
const canScrollDown = scrollOffset + GOOGLE_DOCS_VISIBLE_ITEMS < totalItems;
|
|
13
|
+
// Get visible slice
|
|
14
|
+
const visibleItems = items.slice(scrollOffset, scrollOffset + GOOGLE_DOCS_VISIBLE_ITEMS);
|
|
15
|
+
// Build content lines
|
|
16
|
+
const contentLines = [];
|
|
17
|
+
// Title line
|
|
18
|
+
if (canScrollUp) {
|
|
19
|
+
contentLines.push(_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: ACCENT_COLOR, children: ["Google Docs", " "] }), _jsx(Text, { color: MUTED_TEXT, children: "\u25B2 more" })] }, "title"));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
contentLines.push(_jsx(Text, { bold: true, color: ACCENT_COLOR, children: "Google Docs" }, "title"));
|
|
23
|
+
}
|
|
24
|
+
// Separator
|
|
25
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "─".repeat(35) }, "sep"));
|
|
26
|
+
// Loading state
|
|
27
|
+
if (loading) {
|
|
28
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "Loading files..." }, "loading"));
|
|
29
|
+
}
|
|
30
|
+
// Error state
|
|
31
|
+
else if (error) {
|
|
32
|
+
contentLines.push(_jsxs(Text, { color: ERROR_COLOR, children: ["\u2717 ", error] }, "error"));
|
|
33
|
+
}
|
|
34
|
+
// Empty state
|
|
35
|
+
else if (items.length === 0) {
|
|
36
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "No documents found" }, "empty"));
|
|
37
|
+
}
|
|
38
|
+
// File list
|
|
39
|
+
else {
|
|
40
|
+
for (let i = 0; i < visibleItems.length; i++) {
|
|
41
|
+
const item = visibleItems[i];
|
|
42
|
+
const actualIndex = scrollOffset + i;
|
|
43
|
+
const isSelected = actualIndex === selectedIndex;
|
|
44
|
+
const textColor = isSelected ? ACCENT_COLOR : "white";
|
|
45
|
+
// Indentation based on depth
|
|
46
|
+
const indent = " ".repeat(item.depth);
|
|
47
|
+
// Icon and name
|
|
48
|
+
let icon;
|
|
49
|
+
let suffix = "";
|
|
50
|
+
if (item.type === "folder") {
|
|
51
|
+
icon = item.isExpanded ? "▼ " : "▶ ";
|
|
52
|
+
suffix = ` (${item.fileCount})`;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
icon = "📄 ";
|
|
56
|
+
}
|
|
57
|
+
contentLines.push(_jsxs(Text, { color: textColor, bold: isSelected, children: [isSelected ? ">" : " ", indent, icon, item.name, _jsx(Text, { color: MUTED_TEXT, children: suffix })] }, item.id));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Scroll down indicator or footer
|
|
61
|
+
if (canScrollDown) {
|
|
62
|
+
contentLines.push(_jsxs(Text, { color: MUTED_TEXT, children: ["\u25BC ", totalItems - scrollOffset - GOOGLE_DOCS_VISIBLE_ITEMS, " more"] }, "more"));
|
|
63
|
+
}
|
|
64
|
+
// Pad to fixed height
|
|
65
|
+
while (contentLines.length < FIXED_CONTENT_HEIGHT) {
|
|
66
|
+
contentLines.push(_jsx(Box, {}, `pad-${contentLines.length}`));
|
|
67
|
+
}
|
|
68
|
+
const bottomControls = (_jsx(Text, { color: MUTED_TEXT, children: "[Enter] Select [Esc] Back" }));
|
|
69
|
+
// Render with layout
|
|
70
|
+
return (_jsx(Box, { width: terminalWidth, flexDirection: "column", children: useHorizontalLayout ? (_jsx(HorizontalLayout, { content: contentLines, terminalWidth: terminalWidth, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls })) : (_jsx(VerticalLayout, { content: contentLines, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls })) }));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=GoogleDocsBrowserView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoogleDocsBrowserView.js","sourceRoot":"","sources":["../../src/components/GoogleDocsBrowserView.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAW3B,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,IAAI,GACe;IAC3B,MAAM,mBAAmB,GAAG,aAAa,IAAI,2BAA2B,CAAC;IACzE,MAAM,WAAW,GAAG,aAAa,IAAI,EAAE,CAAC;IAExC,2BAA2B;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,YAAY,GAAG,yBAAyB,GAAG,UAAU,CAAC;IAE5E,oBAAoB;IACpB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,yBAAyB,CAAC,CAAC;IAEzF,sBAAsB;IACtB,MAAM,YAAY,GAAsB,EAAE,CAAC;IAE3C,aAAa;IACb,IAAI,WAAW,EAAE,CAAC;QAChB,YAAY,CAAC,IAAI,CACf,MAAC,IAAI,eACH,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,YAAY,4BAChB,GAAG,IACV,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,4BAAe,KAJ9B,OAAO,CAKV,CACR,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,IAAI,CACf,KAAC,IAAI,IAAa,IAAI,QAAC,KAAK,EAAE,YAAY,6BAAhC,OAAO,CAEV,CACR,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,YAAY,CAAC,IAAI,CACf,KAAC,IAAI,IAAW,KAAK,EAAE,UAAU,YAC9B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IADP,KAAK,CAER,CACR,CAAC;IAEF,gBAAgB;IAChB,IAAI,OAAO,EAAE,CAAC;QACZ,YAAY,CAAC,IAAI,CACf,KAAC,IAAI,IAAe,KAAK,EAAE,UAAU,kCAA3B,SAAS,CAEZ,CACR,CAAC;IACJ,CAAC;IACD,cAAc;SACT,IAAI,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,IAAI,CACf,MAAC,IAAI,IAAa,KAAK,EAAE,WAAW,wBAC/B,KAAK,KADA,OAAO,CAEV,CACR,CAAC;IACJ,CAAC;IACD,cAAc;SACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,CACf,KAAC,IAAI,IAAa,KAAK,EAAE,UAAU,oCAAzB,OAAO,CAEV,CACR,CAAC;IACJ,CAAC;IACD,YAAY;SACP,CAAC;QACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,WAAW,KAAK,aAAa,CAAC;YACjD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;YAEtD,6BAA6B;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvC,gBAAgB;YAChB,IAAI,IAAY,CAAC;YACjB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrC,MAAM,GAAG,KAAK,IAAI,CAAC,SAAS,GAAG,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,KAAK,CAAC;YACf,CAAC;YAED,YAAY,CAAC,IAAI,CACf,MAAC,IAAI,IAAe,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,aACnD,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EACtB,MAAM,EACN,IAAI,EACJ,IAAI,CAAC,IAAI,EACV,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,YAAG,MAAM,GAAQ,KAL/B,IAAI,CAAC,EAAE,CAMX,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,aAAa,EAAE,CAAC;QAClB,YAAY,CAAC,IAAI,CACf,MAAC,IAAI,IAAY,KAAK,EAAE,UAAU,wBAC7B,UAAU,GAAG,YAAY,GAAG,yBAAyB,cADhD,MAAM,CAET,CACR,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,OAAO,YAAY,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QAClD,YAAY,CAAC,IAAI,CAAC,KAAC,GAAG,MAAM,OAAO,YAAY,CAAC,MAAM,EAAE,CAAI,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,cAAc,GAAG,CACrB,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,0CAAkC,CAC1D,CAAC;IAEF,qBAAqB;IACrB,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAC,QAAQ,YAC9C,mBAAmB,CAAC,CAAC,CAAC,CACrB,KAAC,gBAAgB,IACf,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAC,SAAS,EACf,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IACb,OAAO,EAAE,YAAY,EACrB,KAAK,EAAC,SAAS,EACf,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,GAC9B,CACH,GACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HandoffBrowserView Component
|
|
3
|
+
*
|
|
4
|
+
* Browse and select handoff files from .jacques/handoffs/
|
|
5
|
+
* Similar pattern to ObsidianBrowserView.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import type { HandoffEntry } from "@jacques-ai/core";
|
|
9
|
+
interface HandoffBrowserViewProps {
|
|
10
|
+
entries: HandoffEntry[];
|
|
11
|
+
selectedIndex: number;
|
|
12
|
+
scrollOffset: number;
|
|
13
|
+
terminalWidth: number;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
error?: string | null;
|
|
16
|
+
}
|
|
17
|
+
declare const VISIBLE_ITEMS = 6;
|
|
18
|
+
export declare function HandoffBrowserView({ entries, selectedIndex, scrollOffset, terminalWidth, loading, error, }: HandoffBrowserViewProps): React.ReactElement;
|
|
19
|
+
export { VISIBLE_ITEMS };
|
|
20
|
+
//# sourceMappingURL=HandoffBrowserView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandoffBrowserView.d.ts","sourceRoot":"","sources":["../../src/components/HandoffBrowserView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYrD,UAAU,uBAAuB;IAC/B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAGD,QAAA,MAAM,aAAa,IAAI,CAAC;AAExB,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,aAAa,EACb,YAAY,EACZ,aAAa,EACb,OAAe,EACf,KAAY,GACb,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAkI9C;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { formatHandoffDate, formatTokenEstimate } from "@jacques-ai/core";
|
|
4
|
+
import { HorizontalLayout, VerticalLayout, ACCENT_COLOR, MUTED_TEXT, ERROR_COLOR, HORIZONTAL_LAYOUT_MIN_WIDTH, FIXED_CONTENT_HEIGHT, } from "./layout/index.js";
|
|
5
|
+
// Visible items in the scrollable area (reserve lines for header/footer)
|
|
6
|
+
const VISIBLE_ITEMS = 6;
|
|
7
|
+
export function HandoffBrowserView({ entries, selectedIndex, scrollOffset, terminalWidth, loading = false, error = null, }) {
|
|
8
|
+
const useHorizontalLayout = terminalWidth >= HORIZONTAL_LAYOUT_MIN_WIDTH;
|
|
9
|
+
const showVersion = terminalWidth >= 70;
|
|
10
|
+
// Calculate visible window
|
|
11
|
+
const totalItems = entries.length;
|
|
12
|
+
const canScrollUp = scrollOffset > 0;
|
|
13
|
+
const canScrollDown = scrollOffset + VISIBLE_ITEMS < totalItems;
|
|
14
|
+
// Get visible slice
|
|
15
|
+
const visibleItems = entries.slice(scrollOffset, scrollOffset + VISIBLE_ITEMS);
|
|
16
|
+
// Build content lines
|
|
17
|
+
const contentLines = [];
|
|
18
|
+
// Title line with scroll indicator
|
|
19
|
+
if (canScrollUp) {
|
|
20
|
+
contentLines.push(_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: ACCENT_COLOR, children: ["Browse Handoffs", " "] }), _jsx(Text, { color: MUTED_TEXT, children: "\u25B2 more" })] }, "title"));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
contentLines.push(_jsx(Text, { bold: true, color: ACCENT_COLOR, children: "Browse Handoffs" }, "title"));
|
|
24
|
+
}
|
|
25
|
+
// Separator
|
|
26
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "─".repeat(35) }, "sep"));
|
|
27
|
+
// Loading state
|
|
28
|
+
if (loading) {
|
|
29
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "Loading handoffs..." }, "loading"));
|
|
30
|
+
}
|
|
31
|
+
// Error state
|
|
32
|
+
else if (error) {
|
|
33
|
+
contentLines.push(_jsxs(Text, { color: ERROR_COLOR, children: ["\u2717 ", error] }, "error"));
|
|
34
|
+
}
|
|
35
|
+
// Empty state
|
|
36
|
+
else if (entries.length === 0) {
|
|
37
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "No handoffs found" }, "empty"));
|
|
38
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "Press [h] to generate one" }, "hint"));
|
|
39
|
+
}
|
|
40
|
+
// Handoff list
|
|
41
|
+
else {
|
|
42
|
+
for (let i = 0; i < visibleItems.length; i++) {
|
|
43
|
+
const entry = visibleItems[i];
|
|
44
|
+
const actualIndex = scrollOffset + i;
|
|
45
|
+
const isSelected = actualIndex === selectedIndex;
|
|
46
|
+
const textColor = isSelected ? ACCENT_COLOR : "white";
|
|
47
|
+
// Format: "2026-01-31 14:30 - Session Handoff (2.1k tokens)"
|
|
48
|
+
const dateStr = formatHandoffDate(entry.timestamp);
|
|
49
|
+
const tokenStr = formatTokenEstimate(entry.tokenEstimate);
|
|
50
|
+
contentLines.push(_jsxs(Text, { color: textColor, bold: isSelected, children: [isSelected ? "> " : " ", dateStr, _jsxs(Text, { color: MUTED_TEXT, children: [" (", tokenStr, " tokens)"] })] }, entry.filename));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Scroll down indicator or footer
|
|
54
|
+
if (canScrollDown) {
|
|
55
|
+
contentLines.push(_jsxs(Text, { color: MUTED_TEXT, children: ["\u25BC ", totalItems - scrollOffset - VISIBLE_ITEMS, " more"] }, "more"));
|
|
56
|
+
}
|
|
57
|
+
// Pad to fixed height
|
|
58
|
+
while (contentLines.length < FIXED_CONTENT_HEIGHT) {
|
|
59
|
+
contentLines.push(_jsx(Box, {}, `pad-${contentLines.length}`));
|
|
60
|
+
}
|
|
61
|
+
const bottomControls = (_jsx(Text, { color: MUTED_TEXT, children: "[Enter] Copy [Esc] Back" }));
|
|
62
|
+
// Render with layout
|
|
63
|
+
return (_jsx(Box, { width: terminalWidth, flexDirection: "column", children: useHorizontalLayout ? (_jsx(HorizontalLayout, { content: contentLines, terminalWidth: terminalWidth, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls })) : (_jsx(VerticalLayout, { content: contentLines, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls })) }));
|
|
64
|
+
}
|
|
65
|
+
export { VISIBLE_ITEMS };
|
|
66
|
+
//# sourceMappingURL=HandoffBrowserView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandoffBrowserView.js","sourceRoot":"","sources":["../../src/components/HandoffBrowserView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Header Component
|
|
3
|
+
*
|
|
4
|
+
* Displays the mascot, title, version, and connection status.
|
|
5
|
+
* Layout inspired by Claude Code's header.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
interface HeaderProps {
|
|
9
|
+
connected: boolean;
|
|
10
|
+
sessionCount: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function Header({ connected, sessionCount, }: HeaderProps): React.ReactElement;
|
|
13
|
+
export default Header;
|
|
14
|
+
//# sourceMappingURL=Header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,UAAU,WAAW;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,YAAY,GACb,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAalC;AA4BD,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { Mascot } from "./Mascot.js";
|
|
4
|
+
import { ACCENT_COLOR, SUCCESS_COLOR, ERROR_COLOR } from "./layout/theme.js";
|
|
5
|
+
const VERSION = "0.1.0";
|
|
6
|
+
export function Header({ connected, sessionCount, }) {
|
|
7
|
+
return (_jsxs(Box, { children: [_jsx(Mascot, { size: "large" }), _jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [_jsxs(Text, { bold: true, color: ACCENT_COLOR, children: ["Jacques ", _jsxs(Text, { color: "gray", children: ["v", VERSION] })] }), _jsx(Text, { color: "gray", children: "Jacques Context Monitor" }), _jsx(ConnectionStatus, { connected: connected, sessionCount: sessionCount })] })] }));
|
|
8
|
+
}
|
|
9
|
+
function ConnectionStatus({ connected, sessionCount, }) {
|
|
10
|
+
if (connected) {
|
|
11
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: SUCCESS_COLOR, children: "\u25CF Connected" }), sessionCount > 0 && (_jsxs(Text, { color: "gray", children: [" ", "\u00B7 ", sessionCount, " session", sessionCount !== 1 ? "s" : ""] }))] }));
|
|
12
|
+
}
|
|
13
|
+
return _jsx(Text, { color: ERROR_COLOR, children: "\u25CB Disconnected" });
|
|
14
|
+
}
|
|
15
|
+
export default Header;
|
|
16
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,OAAO,GAAG,OAAO,CAAC;AAOxB,MAAM,UAAU,MAAM,CAAC,EACrB,SAAS,EACT,YAAY,GACA;IACZ,OAAO,CACL,MAAC,GAAG,eACF,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,GAAG,EACvB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACvC,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,YAAY,yBACpB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAG,OAAO,IAAQ,IACvC,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wCAA+B,EACjD,KAAC,gBAAgB,IAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAI,IAClE,IACF,CACP,CAAC;AACJ,CAAC;AAOD,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,YAAY,GACU;IACtB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,aAAa,iCAAoB,EAC7C,YAAY,GAAG,CAAC,IAAI,CACnB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aACf,GAAG,aACD,YAAY,cAAU,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IACjD,CACR,IACI,CACR,CAAC;IACJ,CAAC;IAED,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,oCAAuB,CAAC;AACzD,CAAC;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HorizontalMenu Component
|
|
3
|
+
*
|
|
4
|
+
* Arrow-navigable horizontal button menu
|
|
5
|
+
*/
|
|
6
|
+
import React from "react";
|
|
7
|
+
export interface MenuItem {
|
|
8
|
+
key: string;
|
|
9
|
+
label: string;
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
}
|
|
12
|
+
interface HorizontalMenuProps {
|
|
13
|
+
items: MenuItem[];
|
|
14
|
+
selectedIndex: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Horizontal menu with arrow navigation
|
|
18
|
+
* - Selected + enabled: "> Button" (cyan, bold)
|
|
19
|
+
* - Unselected + enabled: " Button" (white)
|
|
20
|
+
* - Disabled: " Button" (gray, dim)
|
|
21
|
+
*/
|
|
22
|
+
export declare function HorizontalMenu({ items, selectedIndex }: HorizontalMenuProps): React.ReactElement;
|
|
23
|
+
export default HorizontalMenu;
|
|
24
|
+
//# sourceMappingURL=HorizontalMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HorizontalMenu.d.ts","sourceRoot":"","sources":["../../src/components/HorizontalMenu.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAqBhG;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text, Box } from "ink";
|
|
3
|
+
import { ACCENT_COLOR } from "./layout/theme.js";
|
|
4
|
+
/**
|
|
5
|
+
* Horizontal menu with arrow navigation
|
|
6
|
+
* - Selected + enabled: "> Button" (cyan, bold)
|
|
7
|
+
* - Unselected + enabled: " Button" (white)
|
|
8
|
+
* - Disabled: " Button" (gray, dim)
|
|
9
|
+
*/
|
|
10
|
+
export function HorizontalMenu({ items, selectedIndex }) {
|
|
11
|
+
return (_jsx(Box, { marginLeft: 4, children: items.map((item, index) => {
|
|
12
|
+
const isSelected = index === selectedIndex && item.enabled;
|
|
13
|
+
const prefix = isSelected ? "> " : " ";
|
|
14
|
+
const color = isSelected ? ACCENT_COLOR : item.enabled ? "white" : "gray";
|
|
15
|
+
const bold = isSelected;
|
|
16
|
+
return (_jsxs(Text, { children: [prefix, _jsx(Text, { color: color, bold: bold, dimColor: !item.enabled, children: item.label }), index < items.length - 1 && " "] }, item.key));
|
|
17
|
+
}) }));
|
|
18
|
+
}
|
|
19
|
+
export default HorizontalMenu;
|
|
20
|
+
//# sourceMappingURL=HorizontalMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HorizontalMenu.js","sourceRoot":"","sources":["../../src/components/HorizontalMenu.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAajD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,aAAa,EAAuB;IAC1E,OAAO,CACL,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YACf,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzB,MAAM,UAAU,GAAG,KAAK,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC;YAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1E,MAAM,IAAI,GAAG,UAAU,CAAC;YAExB,OAAO,CACL,MAAC,IAAI,eACF,MAAM,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,YACpD,IAAI,CAAC,KAAK,GACN,EACN,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,KAL1B,IAAI,CAAC,GAAG,CAMZ,CACR,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageMascot.d.ts","sourceRoot":"","sources":["../../src/components/ImageMascot.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,WAAW,IAAI,KAAK,CAAC,YAAY,CAMhD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { MASCOT_ANSI } from "../assets/mascot-ansi.js";
|
|
4
|
+
export function ImageMascot() {
|
|
5
|
+
return (_jsx(Box, { flexDirection: "column", children: _jsx(Text, { children: MASCOT_ANSI }) }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=ImageMascot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageMascot.js","sourceRoot":"","sources":["../../src/components/ImageMascot.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,KAAC,IAAI,cAAE,WAAW,GAAQ,GACtB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Working View
|
|
3
|
+
*
|
|
4
|
+
* Displays LLM operation progress with spinner, streaming text preview,
|
|
5
|
+
* and token counts. Handles its own layout (horizontal/vertical).
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
export interface LLMWorkingViewProps {
|
|
9
|
+
title: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
elapsedSeconds?: number;
|
|
12
|
+
streamingText?: string;
|
|
13
|
+
inputTokens?: number;
|
|
14
|
+
outputTokens?: number;
|
|
15
|
+
currentStage?: string;
|
|
16
|
+
terminalWidth: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function LLMWorkingView({ title, description, elapsedSeconds, streamingText, inputTokens, outputTokens, currentStage, terminalWidth, }: LLMWorkingViewProps): React.ReactElement;
|
|
19
|
+
//# sourceMappingURL=LLMWorkingView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LLMWorkingView.d.ts","sourceRoot":"","sources":["../../src/components/LLMWorkingView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAanD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,cAAc,EACd,aAAkB,EAClB,WAAe,EACf,YAAgB,EAChB,YAAiB,EACjB,aAAa,GACd,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CA8G1C"}
|