@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,161 @@
|
|
|
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
|
+
import { buildBottomControls } from "../utils/bottom-controls.js";
|
|
5
|
+
// Visible items in the scrollable area (reserve lines for header/footer)
|
|
6
|
+
export const ARCHIVE_VISIBLE_ITEMS = 6;
|
|
7
|
+
/**
|
|
8
|
+
* Format duration in a human-readable way
|
|
9
|
+
*/
|
|
10
|
+
function formatDuration(minutes) {
|
|
11
|
+
if (minutes < 60) {
|
|
12
|
+
return `${minutes}m`;
|
|
13
|
+
}
|
|
14
|
+
const hours = Math.floor(minutes / 60);
|
|
15
|
+
const mins = minutes % 60;
|
|
16
|
+
return mins > 0 ? `${hours}h ${mins}m` : `${hours}h`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Format date as "Jan 31"
|
|
20
|
+
*/
|
|
21
|
+
function formatDate(isoDate) {
|
|
22
|
+
const date = new Date(isoDate);
|
|
23
|
+
const months = [
|
|
24
|
+
"Jan",
|
|
25
|
+
"Feb",
|
|
26
|
+
"Mar",
|
|
27
|
+
"Apr",
|
|
28
|
+
"May",
|
|
29
|
+
"Jun",
|
|
30
|
+
"Jul",
|
|
31
|
+
"Aug",
|
|
32
|
+
"Sep",
|
|
33
|
+
"Oct",
|
|
34
|
+
"Nov",
|
|
35
|
+
"Dec",
|
|
36
|
+
];
|
|
37
|
+
return `${months[date.getMonth()]} ${date.getDate()}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Truncate text to fit within a width
|
|
41
|
+
*/
|
|
42
|
+
function truncate(text, maxLen) {
|
|
43
|
+
if (text.length <= maxLen)
|
|
44
|
+
return text;
|
|
45
|
+
return text.substring(0, maxLen - 3) + "...";
|
|
46
|
+
}
|
|
47
|
+
export function ArchiveBrowserView({ items, selectedIndex, scrollOffset, terminalWidth, loading = false, error = null, }) {
|
|
48
|
+
const useHorizontalLayout = terminalWidth >= HORIZONTAL_LAYOUT_MIN_WIDTH;
|
|
49
|
+
const showVersion = terminalWidth >= 70;
|
|
50
|
+
// Calculate visible window
|
|
51
|
+
const totalItems = items.length;
|
|
52
|
+
const canScrollUp = scrollOffset > 0;
|
|
53
|
+
const canScrollDown = scrollOffset + ARCHIVE_VISIBLE_ITEMS < totalItems;
|
|
54
|
+
// Get visible slice
|
|
55
|
+
const visibleItems = items.slice(scrollOffset, scrollOffset + ARCHIVE_VISIBLE_ITEMS);
|
|
56
|
+
// Build content lines
|
|
57
|
+
const contentLines = [];
|
|
58
|
+
// Title line with scroll indicator
|
|
59
|
+
if (canScrollUp) {
|
|
60
|
+
contentLines.push(_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: ACCENT_COLOR, children: ["Archive Browser", " "] }), _jsx(Text, { color: MUTED_TEXT, children: "\u25B2 more" })] }, "title"));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
contentLines.push(_jsx(Text, { bold: true, color: ACCENT_COLOR, children: "Archive Browser" }, "title"));
|
|
64
|
+
}
|
|
65
|
+
// Separator
|
|
66
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "─".repeat(35) }, "sep"));
|
|
67
|
+
// Loading state
|
|
68
|
+
if (loading) {
|
|
69
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "Loading archive..." }, "loading"));
|
|
70
|
+
}
|
|
71
|
+
// Error state
|
|
72
|
+
else if (error) {
|
|
73
|
+
contentLines.push(_jsxs(Text, { color: ERROR_COLOR, children: ["\u2717 ", error] }, "error"));
|
|
74
|
+
}
|
|
75
|
+
// Empty state
|
|
76
|
+
else if (items.length === 0) {
|
|
77
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "No archived conversations" }, "empty"));
|
|
78
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "Use Settings > Initialize Archive" }, "hint"));
|
|
79
|
+
}
|
|
80
|
+
// Item list
|
|
81
|
+
else {
|
|
82
|
+
for (let i = 0; i < visibleItems.length; i++) {
|
|
83
|
+
const item = visibleItems[i];
|
|
84
|
+
const actualIndex = scrollOffset + i;
|
|
85
|
+
const isSelected = actualIndex === selectedIndex;
|
|
86
|
+
const textColor = isSelected ? ACCENT_COLOR : "white";
|
|
87
|
+
if (item.type === "project") {
|
|
88
|
+
// Project header
|
|
89
|
+
const expandIcon = item.expanded ? "▼" : "▶";
|
|
90
|
+
contentLines.push(_jsxs(Text, { color: textColor, bold: isSelected, children: [isSelected ? "> " : " ", expandIcon, " ", item.projectSlug, _jsxs(Text, { color: MUTED_TEXT, children: [" (", item.conversationCount, ")"] })] }, item.key));
|
|
91
|
+
}
|
|
92
|
+
else if (item.manifest) {
|
|
93
|
+
// Conversation entry (indented under project)
|
|
94
|
+
const manifest = item.manifest;
|
|
95
|
+
const date = formatDate(manifest.endedAt);
|
|
96
|
+
const duration = formatDuration(manifest.durationMinutes);
|
|
97
|
+
const title = truncate(manifest.title, 25);
|
|
98
|
+
contentLines.push(_jsxs(Text, { color: textColor, children: [isSelected ? " > " : " ", title, _jsxs(Text, { color: MUTED_TEXT, children: [" ", "- ", date, " (", duration, ", ", manifest.messageCount, " msgs)"] })] }, item.key));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Scroll down indicator or footer
|
|
103
|
+
if (canScrollDown) {
|
|
104
|
+
contentLines.push(_jsxs(Text, { color: MUTED_TEXT, children: ["\u25BC ", totalItems - scrollOffset - ARCHIVE_VISIBLE_ITEMS, " more"] }, "more"));
|
|
105
|
+
}
|
|
106
|
+
// Pad to fixed height
|
|
107
|
+
while (contentLines.length < FIXED_CONTENT_HEIGHT) {
|
|
108
|
+
contentLines.push(_jsx(Text, { children: " " }, `pad-${contentLines.length}`));
|
|
109
|
+
}
|
|
110
|
+
const { element: bottomControls, width: bottomControlsWidth } = buildBottomControls([
|
|
111
|
+
{ key: "Enter", label: " Expand/View " },
|
|
112
|
+
{ key: "Esc", label: " Back" },
|
|
113
|
+
]);
|
|
114
|
+
// Render with layout
|
|
115
|
+
return (_jsx(Box, { width: terminalWidth, flexDirection: "column", children: useHorizontalLayout ? (_jsx(HorizontalLayout, { content: contentLines, terminalWidth: terminalWidth, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls, bottomControlsWidth: bottomControlsWidth })) : (_jsx(VerticalLayout, { content: contentLines, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls })) }));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Build flat list from manifests grouped by project.
|
|
119
|
+
* Projects are collapsed by default.
|
|
120
|
+
* Uses projectId for grouping and expansion tracking, projectSlug for display.
|
|
121
|
+
*/
|
|
122
|
+
export function buildArchiveList(manifestsByProject, expandedProjects) {
|
|
123
|
+
const items = [];
|
|
124
|
+
// Get entries and sort by projectSlug for display
|
|
125
|
+
const entries = Array.from(manifestsByProject.entries());
|
|
126
|
+
// Sort by projectSlug (derived from first manifest) for human-readable ordering
|
|
127
|
+
entries.sort((a, b) => {
|
|
128
|
+
const slugA = a[1][0]?.projectSlug || a[0];
|
|
129
|
+
const slugB = b[1][0]?.projectSlug || b[0];
|
|
130
|
+
return slugA.localeCompare(slugB);
|
|
131
|
+
});
|
|
132
|
+
for (const [projectId, manifests] of entries) {
|
|
133
|
+
// Get display name from first manifest's projectSlug
|
|
134
|
+
const projectSlug = manifests[0]?.projectSlug || projectId;
|
|
135
|
+
const isExpanded = expandedProjects.has(projectId);
|
|
136
|
+
// Add project header
|
|
137
|
+
items.push({
|
|
138
|
+
type: "project",
|
|
139
|
+
key: `project-${projectId}`,
|
|
140
|
+
projectId,
|
|
141
|
+
projectSlug,
|
|
142
|
+
expanded: isExpanded,
|
|
143
|
+
conversationCount: manifests.length,
|
|
144
|
+
});
|
|
145
|
+
// Add conversations if expanded
|
|
146
|
+
if (isExpanded) {
|
|
147
|
+
for (const manifest of manifests) {
|
|
148
|
+
items.push({
|
|
149
|
+
type: "conversation",
|
|
150
|
+
key: `conv-${manifest.id}`,
|
|
151
|
+
projectId,
|
|
152
|
+
projectSlug,
|
|
153
|
+
manifest,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return items;
|
|
159
|
+
}
|
|
160
|
+
export default ArchiveBrowserView;
|
|
161
|
+
//# sourceMappingURL=ArchiveBrowserView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArchiveBrowserView.js","sourceRoot":"","sources":["../../src/components/ArchiveBrowserView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArchiveInitProgressView Component
|
|
3
|
+
*
|
|
4
|
+
* Progress display during archive initialization.
|
|
5
|
+
* Shows scanning/archiving phase, progress bar, and statistics.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import type { ArchiveProgress, ArchiveInitResult } from "@jacques-ai/core";
|
|
9
|
+
interface ArchiveInitProgressViewProps {
|
|
10
|
+
progress: ArchiveProgress | null;
|
|
11
|
+
result: ArchiveInitResult | null;
|
|
12
|
+
terminalWidth: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function ArchiveInitProgressView({ progress, result, terminalWidth, }: ArchiveInitProgressViewProps): React.ReactElement;
|
|
15
|
+
export default ArchiveInitProgressView;
|
|
16
|
+
//# sourceMappingURL=ArchiveInitProgressView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArchiveInitProgressView.d.ts","sourceRoot":"","sources":["../../src/components/ArchiveInitProgressView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,UAAU,4BAA4B;IACpC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,MAAM,EACN,aAAa,GACd,EAAE,4BAA4B,GAAG,KAAK,CAAC,YAAY,CAuJnD;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { HorizontalLayout, VerticalLayout, ACCENT_COLOR, MUTED_TEXT, ERROR_COLOR, SUCCESS_COLOR, HORIZONTAL_LAYOUT_MIN_WIDTH, FIXED_CONTENT_HEIGHT, } from "./layout/index.js";
|
|
4
|
+
import { buildBottomControls } from "../utils/bottom-controls.js";
|
|
5
|
+
export function ArchiveInitProgressView({ progress, result, terminalWidth, }) {
|
|
6
|
+
const useHorizontalLayout = terminalWidth >= HORIZONTAL_LAYOUT_MIN_WIDTH;
|
|
7
|
+
const showVersion = terminalWidth >= 70;
|
|
8
|
+
// Build content lines
|
|
9
|
+
const contentLines = [];
|
|
10
|
+
// Title
|
|
11
|
+
contentLines.push(_jsx(Text, { bold: true, color: ACCENT_COLOR, children: result ? "Archive Initialized" : "Initializing Archive" }, "title"));
|
|
12
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "─".repeat(35) }, "sep"));
|
|
13
|
+
if (result) {
|
|
14
|
+
// Show final results
|
|
15
|
+
contentLines.push(_jsx(Text, { children: " " }, "spacer1"));
|
|
16
|
+
contentLines.push(_jsxs(Text, { color: "white", children: ["Total sessions found: ", result.totalSessions] }, "total"));
|
|
17
|
+
contentLines.push(_jsxs(Text, { color: SUCCESS_COLOR, children: ["Successfully archived: ", result.archived] }, "archived"));
|
|
18
|
+
if (result.skipped > 0) {
|
|
19
|
+
contentLines.push(_jsxs(Text, { color: MUTED_TEXT, children: ["Already archived: ", result.skipped] }, "skipped"));
|
|
20
|
+
}
|
|
21
|
+
if (result.errors > 0) {
|
|
22
|
+
contentLines.push(_jsxs(Text, { color: ERROR_COLOR, children: ["Errors: ", result.errors] }, "errors"));
|
|
23
|
+
}
|
|
24
|
+
contentLines.push(_jsx(Text, { children: " " }, "spacer2"));
|
|
25
|
+
contentLines.push(_jsx(Text, { color: SUCCESS_COLOR, bold: true, children: "Done!" }, "done"));
|
|
26
|
+
}
|
|
27
|
+
else if (progress) {
|
|
28
|
+
// Show progress
|
|
29
|
+
contentLines.push(_jsx(Text, { children: " " }, "spacer1"));
|
|
30
|
+
// Phase indicator
|
|
31
|
+
const phaseLabel = progress.phase === "scanning" ? "Scanning projects..." : "Archiving...";
|
|
32
|
+
contentLines.push(_jsx(Text, { color: "white", children: phaseLabel }, "phase"));
|
|
33
|
+
// Progress bar
|
|
34
|
+
if (progress.total > 0) {
|
|
35
|
+
const percent = Math.round((progress.completed / progress.total) * 100);
|
|
36
|
+
const barWidth = 25;
|
|
37
|
+
const filled = Math.round((progress.completed / progress.total) * barWidth);
|
|
38
|
+
const empty = barWidth - filled;
|
|
39
|
+
const bar = "█".repeat(filled) + "░".repeat(empty);
|
|
40
|
+
contentLines.push(_jsxs(Text, { children: [_jsx(Text, { color: ACCENT_COLOR, children: bar }), _jsxs(Text, { color: MUTED_TEXT, children: [" ", progress.completed, "/", progress.total, " (", percent, "%)"] })] }, "progress"));
|
|
41
|
+
}
|
|
42
|
+
// Current item
|
|
43
|
+
contentLines.push(_jsx(Text, { children: " " }, "spacer2"));
|
|
44
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, wrap: "truncate", children: progress.current }, "current"));
|
|
45
|
+
// Statistics
|
|
46
|
+
if (progress.skipped > 0 || progress.errors > 0) {
|
|
47
|
+
contentLines.push(_jsx(Text, { children: " " }, "spacer3"));
|
|
48
|
+
if (progress.skipped > 0) {
|
|
49
|
+
contentLines.push(_jsxs(Text, { color: MUTED_TEXT, children: ["Skipped: ", progress.skipped] }, "skipped"));
|
|
50
|
+
}
|
|
51
|
+
if (progress.errors > 0) {
|
|
52
|
+
contentLines.push(_jsxs(Text, { color: ERROR_COLOR, children: ["Errors: ", progress.errors] }, "errors"));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// Starting state
|
|
58
|
+
contentLines.push(_jsx(Text, { children: " " }, "spacer1"));
|
|
59
|
+
contentLines.push(_jsx(Text, { color: MUTED_TEXT, children: "Starting..." }, "starting"));
|
|
60
|
+
}
|
|
61
|
+
// Pad to fixed height
|
|
62
|
+
while (contentLines.length < FIXED_CONTENT_HEIGHT) {
|
|
63
|
+
contentLines.push(_jsx(Text, { children: " " }, `pad-${contentLines.length}`));
|
|
64
|
+
}
|
|
65
|
+
const { element: bottomControls, width: bottomControlsWidth } = result
|
|
66
|
+
? buildBottomControls([{ key: "Esc", label: " Back" }])
|
|
67
|
+
: buildBottomControls([{ key: "Esc", label: " cancel" }]);
|
|
68
|
+
// Render with layout
|
|
69
|
+
return (_jsx(Box, { width: terminalWidth, flexDirection: "column", children: useHorizontalLayout ? (_jsx(HorizontalLayout, { content: contentLines, terminalWidth: terminalWidth, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls, bottomControlsWidth: bottomControlsWidth })) : (_jsx(VerticalLayout, { content: contentLines, title: "Jacques", showVersion: showVersion, bottomControls: bottomControls })) }));
|
|
70
|
+
}
|
|
71
|
+
export default ArchiveInitProgressView;
|
|
72
|
+
//# sourceMappingURL=ArchiveInitProgressView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArchiveInitProgressView.js","sourceRoot":"","sources":["../../src/components/ArchiveInitProgressView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutoCompactToggle Component
|
|
3
|
+
*
|
|
4
|
+
* Displays auto-compact status and allows toggling via keyboard shortcut [a].
|
|
5
|
+
* Shows warning about the 78% bug when auto-compact is disabled.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import type { AutoCompactStatus } from "@jacques-ai/core";
|
|
9
|
+
interface AutoCompactToggleProps {
|
|
10
|
+
autocompact: AutoCompactStatus | null;
|
|
11
|
+
onToggle?: () => void;
|
|
12
|
+
showHint?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function AutoCompactToggle({ autocompact, onToggle, showHint, }: AutoCompactToggleProps): React.ReactElement;
|
|
15
|
+
export default AutoCompactToggle;
|
|
16
|
+
//# sourceMappingURL=AutoCompactToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoCompactToggle.d.ts","sourceRoot":"","sources":["../../src/components/AutoCompactToggle.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,UAAU,sBAAsB;IAC9B,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,QAAQ,EACR,QAAe,GAChB,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CA0B7C;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { MUTED_TEXT, SUCCESS_COLOR, WARNING_COLOR } from "./layout/theme.js";
|
|
4
|
+
export function AutoCompactToggle({ autocompact, onToggle, showHint = true, }) {
|
|
5
|
+
if (!autocompact) {
|
|
6
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: MUTED_TEXT, children: "Auto-compact: Unknown " }), showHint && _jsx(Text, { color: MUTED_TEXT, children: "[a] toggle" })] }));
|
|
7
|
+
}
|
|
8
|
+
const { enabled, threshold, bug_threshold } = autocompact;
|
|
9
|
+
return (_jsxs(Box, { children: [_jsx(Text, { children: "Auto-compact: " }), _jsxs(Text, { color: enabled ? SUCCESS_COLOR : WARNING_COLOR, bold: true, children: ["[", enabled ? "ON" : "OFF", "]"] }), enabled ? (_jsxs(Text, { color: MUTED_TEXT, children: [" at ", threshold, "%"] })) : (_jsxs(Text, { color: WARNING_COLOR, children: [" (bug@~", bug_threshold, "%)"] })), showHint && onToggle && _jsx(Text, { color: MUTED_TEXT, children: " [a] toggle" })] }));
|
|
10
|
+
}
|
|
11
|
+
export default AutoCompactToggle;
|
|
12
|
+
//# sourceMappingURL=AutoCompactToggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoCompactToggle.js","sourceRoot":"","sources":["../../src/components/AutoCompactToggle.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAS7E,MAAM,UAAU,iBAAiB,CAAC,EAChC,WAAW,EACX,QAAQ,EACR,QAAQ,GAAG,IAAI,GACQ;IACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,uCAA+B,EACrD,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,2BAAmB,IACnD,CACP,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IAE1D,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,iCAAsB,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,wBACtD,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SACnB,EACN,OAAO,CAAC,CAAC,CAAC,CACT,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,qBAAO,SAAS,SAAS,CACjD,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,KAAK,EAAE,aAAa,wBAAU,aAAa,UAAU,CAC5D,EACA,QAAQ,IAAI,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,4BAAoB,IAChE,CACP,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BottomControls Component
|
|
3
|
+
*
|
|
4
|
+
* Displays keyboard shortcuts at the bottom of the dashboard
|
|
5
|
+
*/
|
|
6
|
+
import React from "react";
|
|
7
|
+
/**
|
|
8
|
+
* Bottom control bar showing available keyboard shortcuts
|
|
9
|
+
*/
|
|
10
|
+
export declare function BottomControls(): React.ReactElement;
|
|
11
|
+
export default BottomControls;
|
|
12
|
+
//# sourceMappingURL=BottomControls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomControls.d.ts","sourceRoot":"","sources":["../../src/components/BottomControls.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;GAEG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAAC,YAAY,CAWnD;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text, Box } from "ink";
|
|
3
|
+
import { SECONDARY_COLOR } from "./layout/theme.js";
|
|
4
|
+
/**
|
|
5
|
+
* Bottom control bar showing available keyboard shortcuts
|
|
6
|
+
*/
|
|
7
|
+
export function BottomControls() {
|
|
8
|
+
return (_jsx(Box, { children: _jsxs(Text, { children: [_jsx(Text, { color: SECONDARY_COLOR, children: "[Q]" }), _jsx(Text, { children: "uit " }), _jsx(Text, { color: SECONDARY_COLOR, children: "[S]" }), _jsx(Text, { children: "ettings" })] }) }));
|
|
9
|
+
}
|
|
10
|
+
export default BottomControls;
|
|
11
|
+
//# sourceMappingURL=BottomControls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomControls.js","sourceRoot":"","sources":["../../src/components/BottomControls.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,KAAC,GAAG,cACF,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,eAAe,oBAAY,EACxC,KAAC,IAAI,wBAAa,EAClB,KAAC,IAAI,IAAC,KAAK,EAAE,eAAe,oBAAY,EACxC,KAAC,IAAI,0BAAe,IACf,GACH,CACP,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompactHeader Component
|
|
3
|
+
*
|
|
4
|
+
* Combines mascot + title + progress + project into 3-line compact header
|
|
5
|
+
*/
|
|
6
|
+
import React from "react";
|
|
7
|
+
import type { Session } from "@jacques-ai/core";
|
|
8
|
+
interface CompactHeaderProps {
|
|
9
|
+
version: string;
|
|
10
|
+
session: Session | null;
|
|
11
|
+
connected: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Compact 3-line header with mascot on left, content on right
|
|
15
|
+
* Line 1: Mascot hair + "JACQUES Context Manager v0.1.0"
|
|
16
|
+
* Line 2: Mascot face + progress bar + percentage + tokens
|
|
17
|
+
* Line 3: Mascot eyes + "project-name / Terminal"
|
|
18
|
+
*/
|
|
19
|
+
export declare function CompactHeader({ version, session, connected }: CompactHeaderProps): React.ReactElement;
|
|
20
|
+
export default CompactHeader;
|
|
21
|
+
//# sourceMappingURL=CompactHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactHeader.d.ts","sourceRoot":"","sources":["../../src/components/CompactHeader.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAqFD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAcrG;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Text, Box } from "ink";
|
|
3
|
+
import { Mascot } from "./Mascot.js";
|
|
4
|
+
import { ProgressBar } from "./ProgressBar.js";
|
|
5
|
+
import { ACCENT_COLOR, WARNING_COLOR, ERROR_COLOR, SUCCESS_COLOR } from "./layout/theme.js";
|
|
6
|
+
/**
|
|
7
|
+
* Progress bar line with percentage and token counts
|
|
8
|
+
*/
|
|
9
|
+
function ProgressLine({ session }) {
|
|
10
|
+
if (!session || !session.context_metrics) {
|
|
11
|
+
return (_jsx(Box, { children: _jsxs(Text, { color: "gray", children: ["░".repeat(20), " N/A"] }) }));
|
|
12
|
+
}
|
|
13
|
+
const metrics = session.context_metrics;
|
|
14
|
+
const percentage = metrics.used_percentage;
|
|
15
|
+
const usedTokens = metrics.total_input_tokens;
|
|
16
|
+
const maxTokens = metrics.context_window_size;
|
|
17
|
+
// Format tokens with K suffix
|
|
18
|
+
const formatTokens = (tokens) => {
|
|
19
|
+
if (tokens >= 1000) {
|
|
20
|
+
return `${Math.round(tokens / 1000)}k`;
|
|
21
|
+
}
|
|
22
|
+
return tokens.toString();
|
|
23
|
+
};
|
|
24
|
+
// Color based on percentage (matching plan: green < 50%, yellow 50-70%, red >= 70%)
|
|
25
|
+
let color;
|
|
26
|
+
if (percentage >= 70) {
|
|
27
|
+
color = ERROR_COLOR;
|
|
28
|
+
}
|
|
29
|
+
else if (percentage >= 50) {
|
|
30
|
+
color = WARNING_COLOR;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
color = SUCCESS_COLOR;
|
|
34
|
+
}
|
|
35
|
+
return (_jsxs(Box, { children: [_jsx(ProgressBar, { percentage: percentage, width: 20, showLabel: false, isEstimate: metrics.is_estimate }), _jsxs(Text, { color: color, children: [" ", metrics.is_estimate ? "~" : "", percentage.toFixed(1), "%"] }), _jsxs(Text, { color: "gray", children: [" ", "(", formatTokens(usedTokens), "/", formatTokens(maxTokens), ")"] })] }));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Project and terminal line
|
|
39
|
+
*/
|
|
40
|
+
function ProjectLine({ session }) {
|
|
41
|
+
if (!session) {
|
|
42
|
+
return _jsx(Text, { color: "gray", children: "No active session" });
|
|
43
|
+
}
|
|
44
|
+
const project = session.project || "unknown";
|
|
45
|
+
const terminal = session.terminal?.term_program || "Terminal";
|
|
46
|
+
// Truncate project name if too long
|
|
47
|
+
const maxProjectLength = 30;
|
|
48
|
+
const truncatedProject = project.length > maxProjectLength
|
|
49
|
+
? project.substring(0, maxProjectLength - 3) + "..."
|
|
50
|
+
: project;
|
|
51
|
+
return (_jsxs(Text, { children: [truncatedProject, _jsx(Text, { color: "gray", children: " / " }), terminal] }));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Compact 3-line header with mascot on left, content on right
|
|
55
|
+
* Line 1: Mascot hair + "JACQUES Context Manager v0.1.0"
|
|
56
|
+
* Line 2: Mascot face + progress bar + percentage + tokens
|
|
57
|
+
* Line 3: Mascot eyes + "project-name / Terminal"
|
|
58
|
+
*/
|
|
59
|
+
export function CompactHeader({ version, session, connected }) {
|
|
60
|
+
return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Mascot, { variant: "inline" }), _jsxs(Box, { flexDirection: "column", marginLeft: 3, children: [_jsxs(Text, { bold: true, color: ACCENT_COLOR, children: ["JACQUES Context Manager", " ", _jsxs(Text, { color: "gray", children: ["v", version] })] }), _jsx(ProgressLine, { session: session }), _jsx(ProjectLine, { session: session })] })] }));
|
|
61
|
+
}
|
|
62
|
+
export default CompactHeader;
|
|
63
|
+
//# sourceMappingURL=CompactHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactHeader.js","sourceRoot":"","sources":["../../src/components/CompactHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompactPanel Component
|
|
3
|
+
*
|
|
4
|
+
* Shows manual compact workflow instructions and copy buttons
|
|
5
|
+
* when context usage exceeds a threshold (e.g., 70%).
|
|
6
|
+
*
|
|
7
|
+
* Panel States:
|
|
8
|
+
* 1. Hidden - Context below threshold
|
|
9
|
+
* 2. Warning - Shows instructions + "Copy Compact Prompt" hint
|
|
10
|
+
* 3. Ready - Handoff file detected, shows "Copy Handoff Content" hint
|
|
11
|
+
*/
|
|
12
|
+
import React from "react";
|
|
13
|
+
import type { Session } from "@jacques-ai/core";
|
|
14
|
+
interface CompactPanelProps {
|
|
15
|
+
session: Session | undefined;
|
|
16
|
+
handoffReady?: boolean;
|
|
17
|
+
onCopyPrompt?: () => void;
|
|
18
|
+
onCopyHandoff?: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare function CompactPanel({ session, handoffReady, onCopyPrompt, onCopyHandoff, }: CompactPanelProps): React.ReactElement | null;
|
|
21
|
+
export default CompactPanel;
|
|
22
|
+
//# sourceMappingURL=CompactPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactPanel.d.ts","sourceRoot":"","sources":["../../src/components/CompactPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAMD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,YAAoB,EACpB,YAAY,EACZ,aAAa,GACd,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA+F/C;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { ACCENT_COLOR, MUTED_TEXT, ERROR_COLOR, WARNING_COLOR, SUCCESS_COLOR } from "./layout/theme.js";
|
|
4
|
+
// Thresholds for showing the panel
|
|
5
|
+
const WARNING_THRESHOLD = 70;
|
|
6
|
+
const DANGER_THRESHOLD = 78;
|
|
7
|
+
export function CompactPanel({ session, handoffReady = false, onCopyPrompt, onCopyHandoff, }) {
|
|
8
|
+
if (!session) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
const contextUsed = session.context_metrics?.used_percentage ?? 0;
|
|
12
|
+
const autocompact = session.autocompact;
|
|
13
|
+
// Determine the effective danger threshold
|
|
14
|
+
// If auto-compact is disabled, the bug may trigger at 78%
|
|
15
|
+
const effectiveDangerThreshold = autocompact && !autocompact.enabled && autocompact.bug_threshold
|
|
16
|
+
? autocompact.bug_threshold
|
|
17
|
+
: (autocompact?.threshold ?? 95);
|
|
18
|
+
// Don't show if context is below warning threshold
|
|
19
|
+
if (contextUsed < WARNING_THRESHOLD) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
// Determine panel state and styling
|
|
23
|
+
const isDanger = contextUsed >= effectiveDangerThreshold - 5;
|
|
24
|
+
const isHighWarning = contextUsed >= WARNING_THRESHOLD;
|
|
25
|
+
const borderColor = isDanger ? ERROR_COLOR : isHighWarning ? WARNING_COLOR : MUTED_TEXT;
|
|
26
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: borderColor, paddingX: 1, marginTop: 1, children: [_jsx(Box, { children: _jsx(Text, { bold: true, color: isDanger ? ERROR_COLOR : WARNING_COLOR, children: isDanger ? "⚠️ CONTEXT CRITICAL" : "📋 COMPACT WORKFLOW" }) }), isDanger ? (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: ERROR_COLOR, bold: true, children: ["Context at ", contextUsed.toFixed(0), "% - DANGER! Auto-compact may trigger at ~", effectiveDangerThreshold, "%!"] }), _jsx(Text, { color: ERROR_COLOR, children: "Create handoff NOW before context is lost." })] })) : (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: WARNING_COLOR, children: ["Context at ", contextUsed.toFixed(0), "% - Create handoff before ~78% bug triggers."] }) })), _jsx(Box, { marginTop: 1, flexDirection: "column", children: handoffReady ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: SUCCESS_COLOR, bold: true, children: "\u2713 Handoff file ready: .jacques-handoff.md" }), _jsx(Text, { children: "Press [h] to copy, then:" }), _jsx(Text, { color: ACCENT_COLOR, children: "1. Close this Claude Code session (type /exit or Ctrl+C)" }), _jsx(Text, { color: ACCENT_COLOR, children: "2. Start a NEW Claude Code session" }), _jsx(Text, { color: ACCENT_COLOR, children: "3. Paste the handoff content to continue" })] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: "1. Press [c] to copy the compact prompt" }), _jsx(Text, { children: "2. Paste it into the Claude Code chat" }), _jsx(Text, { children: "3. Claude will create .jacques-handoff.md" }), _jsx(Text, { color: ACCENT_COLOR, bold: true, children: "4. Close Claude Code and start a NEW session" }), _jsx(Text, { children: "5. Paste the handoff to continue your work" })] })) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: MUTED_TEXT, children: handoffReady
|
|
27
|
+
? "[h] Copy handoff [c] Copy prompt [a] Toggle auto-compact"
|
|
28
|
+
: "[c] Copy prompt [a] Toggle auto-compact" }) })] }));
|
|
29
|
+
}
|
|
30
|
+
export default CompactPanel;
|
|
31
|
+
//# sourceMappingURL=CompactPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactPanel.js","sourceRoot":"","sources":["../../src/components/CompactPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContentBox Component
|
|
3
|
+
*
|
|
4
|
+
* Bordered box container with themed borders
|
|
5
|
+
* Wraps content in side borders automatically
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
interface ContentBoxProps {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
width?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function ContentBox({ children, width, }: ContentBoxProps): React.ReactElement;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=ContentBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentBox.d.ts","sourceRoot":"","sources":["../../src/components/ContentBox.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,eAAe;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyBD,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAU,GACX,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAsBtC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* ContentBox Component
|
|
4
|
+
*
|
|
5
|
+
* Bordered box container with themed borders
|
|
6
|
+
* Wraps content in side borders automatically
|
|
7
|
+
*/
|
|
8
|
+
import React from "react";
|
|
9
|
+
import { Box, Text } from "ink";
|
|
10
|
+
import { BORDER_COLOR } from "./layout/theme.js";
|
|
11
|
+
/**
|
|
12
|
+
* Wrap a single line of content with side borders
|
|
13
|
+
*/
|
|
14
|
+
function BorderedLine({ children, width, }) {
|
|
15
|
+
const borderColor = BORDER_COLOR;
|
|
16
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: borderColor, children: "\u2502" }), _jsx(Box, { width: width, flexShrink: 0, children: children }), _jsx(Text, { color: borderColor, children: "\u2502" })] }));
|
|
17
|
+
}
|
|
18
|
+
export function ContentBox({ children, width = 48, }) {
|
|
19
|
+
const borderColor = BORDER_COLOR;
|
|
20
|
+
// Convert children to array for mapping
|
|
21
|
+
const childArray = React.Children.toArray(children);
|
|
22
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: borderColor, children: ["\u256D", "─".repeat(width), "\u256E"] }), childArray.map((child, index) => (_jsx(BorderedLine, { width: width, children: child }, index))), _jsxs(Text, { color: borderColor, children: ["\u2570", "─".repeat(width), "\u256F"] })] }));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ContentBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentBox.js","sourceRoot":"","sources":["../../src/components/ContentBox.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD;;GAEG;AACH,SAAS,YAAY,CAAC,EACpB,QAAQ,EACR,KAAK,GAIN;IACC,MAAM,WAAW,GAAG,YAAY,CAAC;IAEjC,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,uBAAU,EAClC,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,YAC7B,QAAQ,GACL,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,uBAAU,IAC9B,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,GAAG,EAAE,GACM;IAChB,MAAM,WAAW,GAAG,YAAY,CAAC;IAEjC,wCAAwC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,MAAC,IAAI,IAAC,KAAK,EAAE,WAAW,uBAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,cAAS,EAGrD,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,KAAC,YAAY,IAAa,KAAK,EAAE,KAAK,YACnC,KAAK,IADW,KAAK,CAET,CAChB,CAAC,EAGF,MAAC,IAAI,IAAC,KAAK,EAAE,WAAW,uBAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,cAAS,IAClD,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContextProgress Component
|
|
3
|
+
*
|
|
4
|
+
* Simplified progress bar shown below header.
|
|
5
|
+
* Displays context usage percentage and token counts.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
import type { Session } from "@jacques-ai/core";
|
|
9
|
+
interface ContextProgressProps {
|
|
10
|
+
session: Session | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function ContextProgress({ session, }: ContextProgressProps): React.ReactElement;
|
|
13
|
+
export default ContextProgress;
|
|
14
|
+
//# sourceMappingURL=ContextProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextProgress.d.ts","sourceRoot":"","sources":["../../src/components/ContextProgress.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAC9B,OAAO,GACR,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,CAgE3C;AAED,eAAe,eAAe,CAAC"}
|