@sriinnu/runic 2.0.0 → 2.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +261 -0
- package/LICENSE +373 -21
- package/README.md +96 -89
- package/THIRD-PARTY-NOTICES.md +651 -0
- package/package.json +14 -4
- package/.swiftformat +0 -50
- package/.swiftlint.yml +0 -160
- package/CONTRIBUTING.md +0 -456
- package/Icon.icns +0 -0
- package/Icon.icon/Assets/runic.png +0 -0
- package/Icon.icon/icon.json +0 -36
- package/Package.resolved +0 -51
- package/Package.swift +0 -136
- package/Packages/Helix/LICENSE +0 -21
- package/Packages/Helix/Package.swift +0 -29
- package/Packages/Helix/README.md +0 -976
- package/Packages/Helix/Sources/Helix/Binding.swift +0 -111
- package/Packages/Helix/Sources/Helix/CommandParser.swift +0 -160
- package/Packages/Helix/Sources/Helix/CommandSignature.swift +0 -117
- package/Packages/Helix/Sources/Helix/ExpressibleFromArgument.swift +0 -72
- package/Packages/Helix/Sources/Helix/HelpGenerator.swift +0 -175
- package/Packages/Helix/Sources/Helix/NameSpecification.swift +0 -98
- package/Packages/Helix/Sources/Helix/ParsableCommand.swift +0 -204
- package/Packages/Helix/Sources/Helix/Platform/DarwinPlatformContext.swift +0 -44
- package/Packages/Helix/Sources/Helix/Platform/LinuxPlatformContext.swift +0 -34
- package/Packages/Helix/Sources/Helix/Platform/PlatformContext+Default.swift +0 -91
- package/Packages/Helix/Sources/Helix/Platform/PlatformContext.swift +0 -94
- package/Packages/Helix/Sources/Helix/Platform/PlatformPath.swift +0 -167
- package/Packages/Helix/Sources/Helix/Platform/Stdio.swift +0 -99
- package/Packages/Helix/Sources/Helix/Platform/WebPlatformContext.swift +0 -146
- package/Packages/Helix/Sources/Helix/Platform/WindowsPlatformContext.swift +0 -97
- package/Packages/Helix/Sources/Helix/Program.swift +0 -204
- package/Packages/Helix/Sources/Helix/PropertyWrappers.swift +0 -367
- package/Packages/Silo/LICENSE +0 -21
- package/Packages/Silo/Package.swift +0 -34
- package/Packages/Silo/README.md +0 -466
- package/Packages/Silo/Sources/Silo/BinaryCookiesReader.swift +0 -169
- package/Packages/Silo/Sources/Silo/BrowserCookieAnalytics.swift +0 -365
- package/Packages/Silo/Sources/Silo/BrowserCookieBackends.swift +0 -594
- package/Packages/Silo/Sources/Silo/BrowserCookieClient.swift +0 -326
- package/Packages/Silo/Sources/Silo/BrowserCookieExport.swift +0 -154
- package/Packages/Silo/Sources/Silo/BrowserCookieImport.swift +0 -119
- package/Packages/Silo/Sources/Silo/BrowserCookieMockStore.swift +0 -121
- package/Packages/Silo/Sources/Silo/BrowserCookieModels.swift +0 -391
- package/Packages/Silo/Sources/Silo/ChromiumCookieReader.swift +0 -240
- package/Packages/Silo/Sources/Silo/CryptoSupport.swift +0 -86
- package/Packages/Silo/Sources/Silo/FirefoxCookieReader.swift +0 -172
- package/Packages/Silo/Sources/Silo/LinuxChromiumCookieReader.swift +0 -172
- package/Packages/Silo/Sources/Silo/LinuxSecretService.swift +0 -105
- package/Packages/Silo/Sources/Silo/MacOSChromiumCookieReader.swift +0 -191
- package/Packages/Silo/Sources/Silo/SQLiteSnapshot.swift +0 -41
- package/Packages/Silo/Sources/Silo/WindowsChromiumCookieReader.swift +0 -110
- package/RuniciOS/App/RuniciOSApp.swift +0 -105
- package/RuniciOS/Core/RunicTypographyiOS.swift +0 -24
- package/RuniciOS/Core/iOSUsageStore.swift +0 -192
- package/RuniciOS/Views/ProviderDetailView.swift +0 -312
- package/RuniciOS/Views/ProviderListView.swift +0 -228
- package/RuniciOS/Widgets/LargeWidget.swift +0 -367
- package/RuniciOS/Widgets/LiveActivity.swift +0 -342
- package/RuniciOS/Widgets/LockScreenWidget.swift +0 -273
- package/RuniciOS/Widgets/MediumWidget.swift +0 -370
- package/RuniciOS/Widgets/RunicWidget.swift +0 -274
- package/RuniciOS/Widgets/SmallWidget.swift +0 -281
- package/RuniciOS/Widgets/WidgetModels.swift +0 -285
- package/RuniciOS/Widgets/WidgetTimeline.swift +0 -270
- package/Scripts/CREATION-SUMMARY.md +0 -367
- package/Scripts/DIRECTORY-STRUCTURE.md +0 -358
- package/Scripts/GETTING-STARTED-CHECKLIST.md +0 -364
- package/Scripts/INDEX.md +0 -365
- package/Scripts/QUICK-REFERENCE.md +0 -164
- package/Scripts/README-SCRIPTS.md +0 -926
- package/Scripts/build-android.sh +0 -526
- package/Scripts/build-ios.sh +0 -529
- package/Scripts/build-macos.sh +0 -603
- package/Scripts/build-windows.sh +0 -504
- package/Scripts/build_icon.sh +0 -49
- package/Scripts/changelog-to-html.sh +0 -89
- package/Scripts/check-release-assets.sh +0 -10
- package/Scripts/ci-config.yml +0 -474
- package/Scripts/compile_and_run.sh +0 -219
- package/Scripts/compile_and_run_adhoc.sh +0 -4
- package/Scripts/docs-list.mjs +0 -119
- package/Scripts/make_appcast.sh +0 -58
- package/Scripts/package_app.sh +0 -409
- package/Scripts/release-lib.sh +0 -214
- package/Scripts/release.sh +0 -76
- package/Scripts/setup-all.sh +0 -387
- package/Scripts/setup-ios.sh +0 -404
- package/Scripts/setup-react-native.sh +0 -523
- package/Scripts/sign-and-notarize.sh +0 -122
- package/Scripts/test_live_update.sh +0 -38
- package/Scripts/validate_changelog.sh +0 -23
- package/Scripts/verify_appcast.sh +0 -92
- package/Sources/Runic/About.swift +0 -93
- package/Sources/Runic/AppNotifications.swift +0 -117
- package/Sources/Runic/Controllers/StatusItemController+Actions.swift +0 -670
- package/Sources/Runic/Controllers/StatusItemController+Animation.swift +0 -519
- package/Sources/Runic/Controllers/StatusItemController+ChartSubmenus.swift +0 -824
- package/Sources/Runic/Controllers/StatusItemController+CustomProviders.swift +0 -90
- package/Sources/Runic/Controllers/StatusItemController+Menu.swift +0 -1412
- package/Sources/Runic/Controllers/StatusItemController+MenuCards.swift +0 -339
- package/Sources/Runic/Controllers/StatusItemController+MenuHelpers.swift +0 -423
- package/Sources/Runic/Controllers/StatusItemController.swift +0 -360
- package/Sources/Runic/Core/BudgetNotificationManager.swift +0 -81
- package/Sources/Runic/Core/Login/ClaudeLoginRunner.swift +0 -103
- package/Sources/Runic/Core/Login/CodexLoginRunner.swift +0 -154
- package/Sources/Runic/Core/Login/CursorLoginRunner.swift +0 -206
- package/Sources/Runic/Core/Login/GeminiLoginRunner.swift +0 -92
- package/Sources/Runic/Core/Rendering/IconRenderer.swift +0 -1222
- package/Sources/Runic/Core/Rendering/IconView.swift +0 -122
- package/Sources/Runic/Core/Rendering/ProviderBrandIcon.swift +0 -71
- package/Sources/Runic/Core/RunicAnimation.swift +0 -53
- package/Sources/Runic/Core/RunicColors.swift +0 -73
- package/Sources/Runic/Core/RunicCornerRadius.swift +0 -15
- package/Sources/Runic/Core/RunicSpacing.swift +0 -68
- package/Sources/Runic/Core/RunicTypography.swift +0 -206
- package/Sources/Runic/Core/Stores/AuggieTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/AzureOpenAITokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/CerebrasTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/CohereTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/CopilotTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/CustomProviderStore.swift +0 -158
- package/Sources/Runic/Core/Stores/DeepSeekTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/FireworksTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/GroqTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/KimiTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/MiniMaxCookieHeaderStore.swift +0 -117
- package/Sources/Runic/Core/Stores/MiniMaxGroupIDStore.swift +0 -117
- package/Sources/Runic/Core/Stores/MiniMaxTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/MistralTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/OpenRouterTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/PerplexityTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/ProviderToggleStore.swift +0 -30
- package/Sources/Runic/Core/Stores/QwenTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/SambaNovaTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/SettingsStore.swift +0 -1749
- package/Sources/Runic/Core/Stores/TogetherTokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/UsageStore+Accessors.swift +0 -33
- package/Sources/Runic/Core/Stores/UsageStore+Status.swift +0 -189
- package/Sources/Runic/Core/Stores/UsageStore+TokenCost.swift +0 -33
- package/Sources/Runic/Core/Stores/UsageStore+WidgetSnapshot.swift +0 -67
- package/Sources/Runic/Core/Stores/UsageStore.swift +0 -3631
- package/Sources/Runic/Core/Stores/XAITokenStore.swift +0 -117
- package/Sources/Runic/Core/Stores/ZaiTokenStore.swift +0 -117
- package/Sources/Runic/Core/UsageExporter.swift +0 -197
- package/Sources/Runic/Date+RelativeDescription.swift +0 -21
- package/Sources/Runic/HiddenWindowView.swift +0 -32
- package/Sources/Runic/InstallOrigin.swift +0 -9
- package/Sources/Runic/KeyboardShortcuts+Names.swift +0 -6
- package/Sources/Runic/MouseLocationReader.swift +0 -65
- package/Sources/Runic/Notifications+Runic.swift +0 -6
- package/Sources/Runic/OpenAICreditsPurchaseWindowController.swift +0 -503
- package/Sources/Runic/ProviderRegistry.swift +0 -100
- package/Sources/Runic/ProviderSwitcherButtons.swift +0 -267
- package/Sources/Runic/Providers/Antigravity/AntigravityLoginFlow.swift +0 -11
- package/Sources/Runic/Providers/Antigravity/AntigravityProviderImplementation.swift +0 -14
- package/Sources/Runic/Providers/Auggie/AuggieProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Azure/AzureProviderImplementation.swift +0 -52
- package/Sources/Runic/Providers/Bedrock/BedrockProviderImplementation.swift +0 -42
- package/Sources/Runic/Providers/Cerebras/CerebrasProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Claude/ClaudeLoginFlow.swift +0 -26
- package/Sources/Runic/Providers/Claude/ClaudeProviderImplementation.swift +0 -14
- package/Sources/Runic/Providers/Codex/CodexLoginFlow.swift +0 -18
- package/Sources/Runic/Providers/Codex/CodexProviderImplementation.swift +0 -15
- package/Sources/Runic/Providers/Cohere/CohereProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Copilot/CopilotLoginFlow.swift +0 -193
- package/Sources/Runic/Providers/Copilot/CopilotProviderImplementation.swift +0 -110
- package/Sources/Runic/Providers/Cursor/CursorLoginFlow.swift +0 -28
- package/Sources/Runic/Providers/Cursor/CursorProviderImplementation.swift +0 -15
- package/Sources/Runic/Providers/DeepSeek/DeepSeekProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Factory/FactoryLoginFlow.swift +0 -12
- package/Sources/Runic/Providers/Factory/FactoryProviderImplementation.swift +0 -15
- package/Sources/Runic/Providers/Fireworks/FireworksProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Gemini/GeminiLoginFlow.swift +0 -20
- package/Sources/Runic/Providers/Gemini/GeminiProviderImplementation.swift +0 -15
- package/Sources/Runic/Providers/Groq/GroqProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Kimi/KimiProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/MiniMax/MiniMaxProviderImplementation.swift +0 -32
- package/Sources/Runic/Providers/Mistral/MistralProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/OpenRouter/OpenRouterProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Perplexity/PerplexityProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/SambaNova/SambaNovaProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Shared/ProviderCatalog.swift +0 -15
- package/Sources/Runic/Providers/Shared/ProviderImplementation.swift +0 -51
- package/Sources/Runic/Providers/Shared/ProviderImplementationRegistry.swift +0 -66
- package/Sources/Runic/Providers/Shared/ProviderLoginFlow.swift +0 -12
- package/Sources/Runic/Providers/Shared/ProviderSettingsDescriptors.swift +0 -99
- package/Sources/Runic/Providers/Shared/SystemSettingsLinks.swift +0 -18
- package/Sources/Runic/Providers/Together/TogetherProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/XAI/XAIProviderImplementation.swift +0 -24
- package/Sources/Runic/Providers/Zai/ZaiProviderImplementation.swift +0 -24
- package/Sources/Runic/Resources/Fonts/Caveat-Bold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/Caveat-Regular.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/FiraCode-Bold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/FiraCode-Light.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/FiraCode-Medium.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/FiraCode-Regular.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/FiraCode-SemiBold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/IBMPlexMono-Bold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/IBMPlexMono-Medium.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/IBMPlexMono-Regular.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/IBMPlexMono-SemiBold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/Inconsolata-Bold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/Inconsolata-Medium.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/Inconsolata-Regular.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/Inconsolata-SemiBold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/JetBrainsMono-Bold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/JetBrainsMono-Medium.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/JetBrainsMono-Regular.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/JetBrainsMono-SemiBold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/SpaceMono-Bold.ttf +0 -0
- package/Sources/Runic/Resources/Fonts/SpaceMono-Regular.ttf +0 -0
- package/Sources/Runic/Resources/ProviderIcon-antigravity.svg +0 -2
- package/Sources/Runic/Resources/ProviderIcon-auggie.svg +0 -3
- package/Sources/Runic/Resources/ProviderIcon-azure.svg +0 -5
- package/Sources/Runic/Resources/ProviderIcon-bedrock.svg +0 -7
- package/Sources/Runic/Resources/ProviderIcon-cerebras.svg +0 -3
- package/Sources/Runic/Resources/ProviderIcon-claude.svg +0 -1
- package/Sources/Runic/Resources/ProviderIcon-codex.svg +0 -1
- package/Sources/Runic/Resources/ProviderIcon-cohere.svg +0 -3
- package/Sources/Runic/Resources/ProviderIcon-copilot.svg +0 -1
- package/Sources/Runic/Resources/ProviderIcon-cursor.svg +0 -3
- package/Sources/Runic/Resources/ProviderIcon-deepseek.svg +0 -4
- package/Sources/Runic/Resources/ProviderIcon-factory.svg +0 -3
- package/Sources/Runic/Resources/ProviderIcon-fireworks.svg +0 -3
- package/Sources/Runic/Resources/ProviderIcon-gemini.svg +0 -1
- package/Sources/Runic/Resources/ProviderIcon-groq.svg +0 -1
- package/Sources/Runic/Resources/ProviderIcon-kimi.svg +0 -4
- package/Sources/Runic/Resources/ProviderIcon-minimax.svg +0 -1
- package/Sources/Runic/Resources/ProviderIcon-mistral.svg +0 -5
- package/Sources/Runic/Resources/ProviderIcon-openrouter.svg +0 -7
- package/Sources/Runic/Resources/ProviderIcon-perplexity.svg +0 -4
- package/Sources/Runic/Resources/ProviderIcon-qwen.svg +0 -9
- package/Sources/Runic/Resources/ProviderIcon-sambanova.svg +0 -4
- package/Sources/Runic/Resources/ProviderIcon-together.svg +0 -5
- package/Sources/Runic/Resources/ProviderIcon-vertexai.svg +0 -17
- package/Sources/Runic/Resources/ProviderIcon-xai.svg +0 -3
- package/Sources/Runic/Resources/ProviderIcon-zai.svg +0 -5
- package/Sources/Runic/Resources/RunicMenubarIcon.svg +0 -7
- package/Sources/Runic/Resources/provider-context-windows.json +0 -20
- package/Sources/Runic/RunicApp.swift +0 -367
- package/Sources/Runic/SessionQuotaNotifications.swift +0 -58
- package/Sources/Runic/UsagePaceText.swift +0 -52
- package/Sources/Runic/UsageProgressBar.swift +0 -228
- package/Sources/Runic/Utilities/DisplayLink.swift +0 -96
- package/Sources/Runic/Utilities/LoadingPattern.swift +0 -62
- package/Sources/Runic/Utilities/PerformanceConstants.swift +0 -85
- package/Sources/Runic/Views/Menu/AlertsMenuView.swift +0 -254
- package/Sources/Runic/Views/Menu/ChartPanelStyle.swift +0 -22
- package/Sources/Runic/Views/Menu/CostComparativeChartMenuView.swift +0 -275
- package/Sources/Runic/Views/Menu/CostHistoryChartMenuView.swift +0 -377
- package/Sources/Runic/Views/Menu/CreditsHistoryChartMenuView.swift +0 -312
- package/Sources/Runic/Views/Menu/EfficiencyMetricsMenuView.swift +0 -311
- package/Sources/Runic/Views/Menu/HeroStatCardsMenuView.swift +0 -231
- package/Sources/Runic/Views/Menu/HourlyActivityChartMenuView.swift +0 -228
- package/Sources/Runic/Views/Menu/InlineUsageChartView.swift +0 -157
- package/Sources/Runic/Views/Menu/MenuCardEntranceModifier.swift +0 -63
- package/Sources/Runic/Views/Menu/MenuCardSidebarView.swift +0 -248
- package/Sources/Runic/Views/Menu/MenuCardSkeletonView.swift +0 -104
- package/Sources/Runic/Views/Menu/MenuCardView.swift +0 -1889
- package/Sources/Runic/Views/Menu/MenuContent.swift +0 -153
- package/Sources/Runic/Views/Menu/MenuDescriptor.swift +0 -371
- package/Sources/Runic/Views/Menu/MenuHighlightStyle.swift +0 -35
- package/Sources/Runic/Views/Menu/ModelBreakdownMenuView.swift +0 -241
- package/Sources/Runic/Views/Menu/OverviewMenuView.swift +0 -281
- package/Sources/Runic/Views/Menu/ProjectBreakdownMenuView.swift +0 -214
- package/Sources/Runic/Views/Menu/ProjectBudgetMenuView.swift +0 -220
- package/Sources/Runic/Views/Menu/ProviderTabBarView.swift +0 -86
- package/Sources/Runic/Views/Menu/SubscriptionUtilizationChartMenuView.swift +0 -214
- package/Sources/Runic/Views/Menu/UsageBreakdownChartMenuView.swift +0 -398
- package/Sources/Runic/Views/Menu/UsageHeatmapMenuView.swift +0 -231
- package/Sources/Runic/Views/Menu/UsageTimelineChartMenuView.swift +0 -369
- package/Sources/Runic/Views/Menu/UsageWindowComparisonChartMenuView.swift +0 -191
- package/Sources/Runic/Views/Menu/WeeklyActivityChartMenuView.swift +0 -132
- package/Sources/Runic/Views/Performance/PerformanceDashboardView.swift +0 -621
- package/Sources/Runic/Views/Preferences/LiquidComponents.swift +0 -306
- package/Sources/Runic/Views/Preferences/PreferencesAboutPane.swift +0 -271
- package/Sources/Runic/Views/Preferences/PreferencesAdvancedPane.swift +0 -268
- package/Sources/Runic/Views/Preferences/PreferencesAlertsPane.swift +0 -418
- package/Sources/Runic/Views/Preferences/PreferencesAnalyticsPane.swift +0 -637
- package/Sources/Runic/Views/Preferences/PreferencesBudgetsPane.swift +0 -344
- package/Sources/Runic/Views/Preferences/PreferencesComponents.swift +0 -230
- package/Sources/Runic/Views/Preferences/PreferencesCustomProvidersPane.swift +0 -321
- package/Sources/Runic/Views/Preferences/PreferencesDebugPane.swift +0 -469
- package/Sources/Runic/Views/Preferences/PreferencesGeneralPane.swift +0 -250
- package/Sources/Runic/Views/Preferences/PreferencesHelpPane.swift +0 -50
- package/Sources/Runic/Views/Preferences/PreferencesIntegrationsPane.swift +0 -572
- package/Sources/Runic/Views/Preferences/PreferencesPerformancePane.swift +0 -291
- package/Sources/Runic/Views/Preferences/PreferencesProvidersPane.swift +0 -3480
- package/Sources/Runic/Views/Preferences/PreferencesSelection.swift +0 -29
- package/Sources/Runic/Views/Preferences/PreferencesSyncPane.swift +0 -61
- package/Sources/Runic/Views/Preferences/PreferencesView.swift +0 -213
- package/Sources/Runic/Views/Rating/QualityRatingView.swift +0 -238
- package/Sources/Runic/Views/Team/TeamDashboardView.swift +0 -376
- package/Sources/Runic/Views/Team/TeamInviteSheet.swift +0 -175
- package/Sources/Runic/Views/Team/TeamManagementView.swift +0 -762
- package/Sources/Runic/Views/Team/TeamMemberRow.swift +0 -181
- package/Sources/RunicCLI/CLIEntry.swift +0 -983
- package/Sources/RunicCLI/CLIRenderer.swift +0 -87
- package/Sources/RunicCLI/Commands/EnhancedUsageCommand.swift +0 -588
- package/Sources/RunicCLI/Commands/ModelsCommand.swift +0 -363
- package/Sources/RunicCLI/Commands/ProjectsCommand.swift +0 -453
- package/Sources/RunicCLI/Commands/ResetCommand.swift +0 -430
- package/Sources/RunicCLI/Commands/UsageLedgerSourceFactory.swift +0 -167
- package/Sources/RunicClaudeWatchdog/main.swift +0 -122
- package/Sources/RunicClaudeWebProbe/main.swift +0 -62
- package/Sources/RunicCore/AlertRuleStore.swift +0 -187
- package/Sources/RunicCore/BrowserCookieImportOrder.swift +0 -25
- package/Sources/RunicCore/CopilotUsageModels.swift +0 -84
- package/Sources/RunicCore/CostUsageFetcher.swift +0 -119
- package/Sources/RunicCore/CostUsageModels.swift +0 -479
- package/Sources/RunicCore/CreditsModels.swift +0 -50
- package/Sources/RunicCore/CustomProviders/CustomProviderModels.swift +0 -268
- package/Sources/RunicCore/CustomProviders/GenericProviderFetcher.swift +0 -631
- package/Sources/RunicCore/CustomProviders/ProviderTemplates.swift +0 -444
- package/Sources/RunicCore/Host/PTY/TTYCommandRunner.swift +0 -679
- package/Sources/RunicCore/Host/Process/SubprocessRunner.swift +0 -135
- package/Sources/RunicCore/Integrations/GitHubIntegration.swift +0 -173
- package/Sources/RunicCore/Logging/JSONStderrLogHandler.swift +0 -79
- package/Sources/RunicCore/Logging/OSLogLogHandler.swift +0 -86
- package/Sources/RunicCore/Logging/RunicLog.swift +0 -123
- package/Sources/RunicCore/Models/EnhancedUsageModels.swift +0 -370
- package/Sources/RunicCore/OpenAIDashboardModels.swift +0 -210
- package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardBrowserCookieImporter.swift +0 -676
- package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardFetcher.swift +0 -492
- package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardNavigationDelegate.swift +0 -51
- package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardParser.swift +0 -483
- package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardScrapeScript.swift +0 -558
- package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebViewCache.swift +0 -204
- package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebsiteDataStore.swift +0 -78
- package/Sources/RunicCore/PathEnvironment.swift +0 -482
- package/Sources/RunicCore/Performance/PerformanceModels.swift +0 -371
- package/Sources/RunicCore/Performance/PerformanceStorageImpl.swift +0 -426
- package/Sources/RunicCore/Policy/UsagePolicyEngine.swift +0 -178
- package/Sources/RunicCore/ProjectBudgetStore.swift +0 -102
- package/Sources/RunicCore/ProviderCostSnapshot.swift +0 -29
- package/Sources/RunicCore/Providers/Antigravity/AntigravityProviderDescriptor.swift +0 -68
- package/Sources/RunicCore/Providers/Antigravity/AntigravityStatusProbe.swift +0 -685
- package/Sources/RunicCore/Providers/Auggie/AuggieProviderDescriptor.swift +0 -83
- package/Sources/RunicCore/Providers/Auggie/AuggieUsageFetcher.swift +0 -142
- package/Sources/RunicCore/Providers/Azure/AzureProviderDescriptor.swift +0 -141
- package/Sources/RunicCore/Providers/Azure/AzureUsageFetcher.swift +0 -188
- package/Sources/RunicCore/Providers/Bedrock/BedrockProviderDescriptor.swift +0 -126
- package/Sources/RunicCore/Providers/Bedrock/BedrockUsageFetcher.swift +0 -164
- package/Sources/RunicCore/Providers/Cerebras/CerebrasProviderDescriptor.swift +0 -84
- package/Sources/RunicCore/Providers/Cerebras/CerebrasUsageFetcher.swift +0 -75
- package/Sources/RunicCore/Providers/Claude/ClaudeCLISession.swift +0 -332
- package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthCredentials.swift +0 -180
- package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthUsageFetcher.swift +0 -137
- package/Sources/RunicCore/Providers/Claude/ClaudeProviderDescriptor.swift +0 -209
- package/Sources/RunicCore/Providers/Claude/ClaudeStatusProbe.swift +0 -654
- package/Sources/RunicCore/Providers/Claude/ClaudeUsageDataSource.swift +0 -30
- package/Sources/RunicCore/Providers/Claude/ClaudeUsageFetcher.swift +0 -480
- package/Sources/RunicCore/Providers/Claude/ClaudeWeb/ClaudeWebAPIFetcher.swift +0 -780
- package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthCredentials.swift +0 -147
- package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthUsageFetcher.swift +0 -280
- package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexTokenRefresher.swift +0 -100
- package/Sources/RunicCore/Providers/Codex/CodexProviderDescriptor.swift +0 -245
- package/Sources/RunicCore/Providers/Codex/CodexStatusProbe.swift +0 -125
- package/Sources/RunicCore/Providers/Codex/CodexUsageDataSource.swift +0 -26
- package/Sources/RunicCore/Providers/Codex/CodexWebDashboardStrategy.swift +0 -183
- package/Sources/RunicCore/Providers/Cohere/CohereProviderDescriptor.swift +0 -83
- package/Sources/RunicCore/Providers/Cohere/CohereUsageFetcher.swift +0 -85
- package/Sources/RunicCore/Providers/Copilot/CopilotDeviceFlow.swift +0 -123
- package/Sources/RunicCore/Providers/Copilot/CopilotGitHubCLITokenReader.swift +0 -117
- package/Sources/RunicCore/Providers/Copilot/CopilotProviderDescriptor.swift +0 -100
- package/Sources/RunicCore/Providers/Copilot/CopilotUsageFetcher.swift +0 -293
- package/Sources/RunicCore/Providers/Copilot/CopilotVSCodeTokenReader.swift +0 -385
- package/Sources/RunicCore/Providers/Cursor/CursorProviderDescriptor.swift +0 -67
- package/Sources/RunicCore/Providers/Cursor/CursorStatusProbe.swift +0 -595
- package/Sources/RunicCore/Providers/DeepSeek/DeepSeekProviderDescriptor.swift +0 -85
- package/Sources/RunicCore/Providers/DeepSeek/DeepSeekUsageFetcher.swift +0 -108
- package/Sources/RunicCore/Providers/Factory/FactoryLocalStorageImporter.swift +0 -398
- package/Sources/RunicCore/Providers/Factory/FactoryProviderDescriptor.swift +0 -67
- package/Sources/RunicCore/Providers/Factory/FactoryStatusProbe.swift +0 -1276
- package/Sources/RunicCore/Providers/Fireworks/FireworksProviderDescriptor.swift +0 -84
- package/Sources/RunicCore/Providers/Fireworks/FireworksUsageFetcher.swift +0 -75
- package/Sources/RunicCore/Providers/Gemini/GeminiProviderDescriptor.swift +0 -67
- package/Sources/RunicCore/Providers/Gemini/GeminiStatusProbe.swift +0 -839
- package/Sources/RunicCore/Providers/Groq/GroqProviderDescriptor.swift +0 -83
- package/Sources/RunicCore/Providers/Groq/GroqUsageFetcher.swift +0 -71
- package/Sources/RunicCore/Providers/Kimi/KimiProviderDescriptor.swift +0 -83
- package/Sources/RunicCore/Providers/Kimi/KimiUsageFetcher.swift +0 -77
- package/Sources/RunicCore/Providers/MiniMax/MiniMaxProviderDescriptor.swift +0 -97
- package/Sources/RunicCore/Providers/MiniMax/MiniMaxSettingsReader.swift +0 -54
- package/Sources/RunicCore/Providers/MiniMax/MiniMaxUsageFetcher.swift +0 -168
- package/Sources/RunicCore/Providers/MiniMax/MiniMaxWebUsageFetcher.swift +0 -911
- package/Sources/RunicCore/Providers/Mistral/MistralProviderDescriptor.swift +0 -84
- package/Sources/RunicCore/Providers/Mistral/MistralUsageFetcher.swift +0 -75
- package/Sources/RunicCore/Providers/OpenRouter/OpenRouterProviderDescriptor.swift +0 -87
- package/Sources/RunicCore/Providers/OpenRouter/OpenRouterUsageFetcher.swift +0 -216
- package/Sources/RunicCore/Providers/Perplexity/PerplexityProviderDescriptor.swift +0 -84
- package/Sources/RunicCore/Providers/Perplexity/PerplexityUsageFetcher.swift +0 -75
- package/Sources/RunicCore/Providers/ProviderBranding.swift +0 -25
- package/Sources/RunicCore/Providers/ProviderCLIConfig.swift +0 -17
- package/Sources/RunicCore/Providers/ProviderDescriptor.swift +0 -129
- package/Sources/RunicCore/Providers/ProviderFetchPlan.swift +0 -263
- package/Sources/RunicCore/Providers/ProviderSettingsSnapshot.swift +0 -98
- package/Sources/RunicCore/Providers/ProviderTokenResolver.swift +0 -501
- package/Sources/RunicCore/Providers/ProviderVersionDetector.swift +0 -68
- package/Sources/RunicCore/Providers/Providers.swift +0 -184
- package/Sources/RunicCore/Providers/Qwen/QwenProviderDescriptor.swift +0 -86
- package/Sources/RunicCore/Providers/Qwen/QwenSettingsReader.swift +0 -30
- package/Sources/RunicCore/Providers/Qwen/QwenUsageStats.swift +0 -328
- package/Sources/RunicCore/Providers/SambaNova/SambaNovaProviderDescriptor.swift +0 -84
- package/Sources/RunicCore/Providers/SambaNova/SambaNovaUsageFetcher.swift +0 -75
- package/Sources/RunicCore/Providers/Together/TogetherProviderDescriptor.swift +0 -83
- package/Sources/RunicCore/Providers/Together/TogetherUsageFetcher.swift +0 -75
- package/Sources/RunicCore/Providers/VertexAI/VertexAIProviderDescriptor.swift +0 -123
- package/Sources/RunicCore/Providers/VertexAI/VertexAISettingsReader.swift +0 -48
- package/Sources/RunicCore/Providers/VertexAI/VertexAIUsageFetcher.swift +0 -144
- package/Sources/RunicCore/Providers/XAI/XAIProviderDescriptor.swift +0 -83
- package/Sources/RunicCore/Providers/XAI/XAIUsageFetcher.swift +0 -75
- package/Sources/RunicCore/Providers/Zai/ZaiProviderDescriptor.swift +0 -74
- package/Sources/RunicCore/Providers/Zai/ZaiSettingsReader.swift +0 -41
- package/Sources/RunicCore/Providers/Zai/ZaiUsageStats.swift +0 -745
- package/Sources/RunicCore/Sync/BackgroundSyncManager.swift +0 -384
- package/Sources/RunicCore/Sync/SyncConflictResolver.swift +0 -307
- package/Sources/RunicCore/Sync/SyncProtocol.swift +0 -287
- package/Sources/RunicCore/Sync/SyncRecord.swift +0 -402
- package/Sources/RunicCore/Sync/SyncUsageExample.swift +0 -288
- package/Sources/RunicCore/Sync/TeamSyncRecords.swift +0 -768
- package/Sources/RunicCore/Sync/iCloudSyncEngine.swift +0 -338
- package/Sources/RunicCore/Team/TeamModels.swift +0 -584
- package/Sources/RunicCore/Team/TeamShowbackExporter.swift +0 -495
- package/Sources/RunicCore/Team/TeamStore.swift +0 -809
- package/Sources/RunicCore/TextParsing.swift +0 -55
- package/Sources/RunicCore/UsageFetcher.swift +0 -694
- package/Sources/RunicCore/UsageFormatter.swift +0 -410
- package/Sources/RunicCore/UsageLedger/ClaudeUsageLogSource.swift +0 -441
- package/Sources/RunicCore/UsageLedger/CodexUsageLogSource.swift +0 -502
- package/Sources/RunicCore/UsageLedger/LedgerCache.swift +0 -161
- package/Sources/RunicCore/UsageLedger/OTelGenAILedgerAdapter.swift +0 -550
- package/Sources/RunicCore/UsageLedger/UsageLedger.swift +0 -29
- package/Sources/RunicCore/UsageLedger/UsageLedgerAggregator.swift +0 -675
- package/Sources/RunicCore/UsageLedger/UsageLedgerInsightsAdvisor.swift +0 -209
- package/Sources/RunicCore/UsageLedger/UsageLedgerModels.swift +0 -417
- package/Sources/RunicCore/UsageLedger/UsageLedgerProjectIdentity.swift +0 -284
- package/Sources/RunicCore/UsagePace.swift +0 -81
- package/Sources/RunicCore/Vendored/CostUsage/CostUsageCache.swift +0 -73
- package/Sources/RunicCore/Vendored/CostUsage/CostUsageJsonl.swift +0 -74
- package/Sources/RunicCore/Vendored/CostUsage/CostUsagePricing.swift +0 -208
- package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Claude.swift +0 -455
- package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Timestamp.swift +0 -132
- package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner.swift +0 -589
- package/Sources/RunicCore/WidgetSnapshot.swift +0 -183
- package/Sources/RunicMacroSupport/ProviderRegistrationMacros.swift +0 -14
- package/Sources/RunicMacros/ProviderRegistrationMacros.swift +0 -216
- package/Sources/RunicWidget/RunicWidgetBundle.swift +0 -79
- package/Sources/RunicWidget/RunicWidgetProvider.swift +0 -283
- package/Sources/RunicWidget/RunicWidgetViews.swift +0 -680
- package/Tests/RunicTests/AntigravityStatusProbeTests.swift +0 -50
- package/Tests/RunicTests/AppDelegateTests.swift +0 -48
- package/Tests/RunicTests/BrowserCookieOrderLabelTests.swift +0 -21
- package/Tests/RunicTests/CLIArgumentParsingTests.swift +0 -69
- package/Tests/RunicTests/CLICostTests.swift +0 -64
- package/Tests/RunicTests/CLIProviderSelectionTests.swift +0 -21
- package/Tests/RunicTests/CLISnapshotTests.swift +0 -71
- package/Tests/RunicTests/CLIWebFallbackTests.swift +0 -57
- package/Tests/RunicTests/ClaudeOAuthTests.swift +0 -163
- package/Tests/RunicTests/ClaudeResilienceTests.swift +0 -29
- package/Tests/RunicTests/ClaudeUsageTests.swift +0 -369
- package/Tests/RunicTests/CodexOAuthTests.swift +0 -121
- package/Tests/RunicTests/CodexUsageLogSourceTests.swift +0 -80
- package/Tests/RunicTests/CopilotTokenResolverTests.swift +0 -74
- package/Tests/RunicTests/CopilotVSCodeTokenReaderTests.swift +0 -74
- package/Tests/RunicTests/CostUsageDecodingTests.swift +0 -392
- package/Tests/RunicTests/CostUsagePricingTests.swift +0 -48
- package/Tests/RunicTests/CostUsageScannerTests.swift +0 -698
- package/Tests/RunicTests/CursorStatusProbeTests.swift +0 -322
- package/Tests/RunicTests/FactoryStatusProbeTests.swift +0 -67
- package/Tests/RunicTests/GeminiAPITestHelpers.swift +0 -94
- package/Tests/RunicTests/GeminiLoginAlertTests.swift +0 -27
- package/Tests/RunicTests/GeminiStatusProbeAPITests.swift +0 -283
- package/Tests/RunicTests/GeminiStatusProbePlanTests.swift +0 -279
- package/Tests/RunicTests/GeminiStatusProbeTests.swift +0 -232
- package/Tests/RunicTests/GeminiTestEnvironment.swift +0 -87
- package/Tests/RunicTests/GoogleWorkspaceStatusTests.swift +0 -72
- package/Tests/RunicTests/InstallOriginTests.swift +0 -17
- package/Tests/RunicTests/KeyboardShortcutsBundleTests.swift +0 -9
- package/Tests/RunicTests/LiveAccountTests.swift +0 -24
- package/Tests/RunicTests/LoadingPatternTests.swift +0 -34
- package/Tests/RunicTests/MenuCardModelTests.swift +0 -544
- package/Tests/RunicTests/MiniMaxCookieHeaderStoreTestSupport.swift +0 -11
- package/Tests/RunicTests/MiniMaxGroupIDStoreTestSupport.swift +0 -11
- package/Tests/RunicTests/MiniMaxParsingTests.swift +0 -67
- package/Tests/RunicTests/MiniMaxTokenStoreTestSupport.swift +0 -11
- package/Tests/RunicTests/OTelGenAILedgerAdapterTests.swift +0 -110
- package/Tests/RunicTests/OpenAIDashboardBrowserCookieImporterTests.swift +0 -16
- package/Tests/RunicTests/OpenAIDashboardFetcherCreditsWaitTests.swift +0 -74
- package/Tests/RunicTests/OpenAIDashboardOffscreenHostTests.swift +0 -26
- package/Tests/RunicTests/OpenAIDashboardParserTests.swift +0 -133
- package/Tests/RunicTests/OpenAIWebAccountSwitchTests.swift +0 -64
- package/Tests/RunicTests/OpenRouterTokenStoreTestSupport.swift +0 -131
- package/Tests/RunicTests/PathBuilderTests.swift +0 -236
- package/Tests/RunicTests/ProviderFetchPipelineTests.swift +0 -159
- package/Tests/RunicTests/ProviderIconResourcesTests.swift +0 -37
- package/Tests/RunicTests/ProviderMetadataStatusLinkTests.swift +0 -15
- package/Tests/RunicTests/ProviderRegistryTests.swift +0 -29
- package/Tests/RunicTests/ProviderSettingsDescriptorTests.swift +0 -236
- package/Tests/RunicTests/ProviderToggleStoreTests.swift +0 -50
- package/Tests/RunicTests/RunicTests.swift +0 -119
- package/Tests/RunicTests/SessionQuotaNotificationLogicTests.swift +0 -35
- package/Tests/RunicTests/SettingsStoreTests.swift +0 -265
- package/Tests/RunicTests/StatusItemAnimationTests.swift +0 -54
- package/Tests/RunicTests/StatusMenuTests.swift +0 -475
- package/Tests/RunicTests/StatusProbeTests.swift +0 -376
- package/Tests/RunicTests/SubprocessRunnerTests.swift +0 -18
- package/Tests/RunicTests/SubscriptionDetectionTests.swift +0 -64
- package/Tests/RunicTests/TTYCommandRunnerTests.swift +0 -147
- package/Tests/RunicTests/TTYIntegrationTests.swift +0 -41
- package/Tests/RunicTests/TeamShowbackExporterTests.swift +0 -157
- package/Tests/RunicTests/TextParsingTests.swift +0 -11
- package/Tests/RunicTests/UsageFormatterTests.swift +0 -111
- package/Tests/RunicTests/UsageLedgerAnomalyDetectionTests.swift +0 -170
- package/Tests/RunicTests/UsageLedgerForecastTests.swift +0 -211
- package/Tests/RunicTests/UsageLedgerInsightsAdvisorTests.swift +0 -81
- package/Tests/RunicTests/UsageLedgerProjectNameTests.swift +0 -168
- package/Tests/RunicTests/UsagePaceTests.swift +0 -76
- package/Tests/RunicTests/UsagePaceTextTests.swift +0 -108
- package/Tests/RunicTests/UsagePolicyEngineTests.swift +0 -89
- package/Tests/RunicTests/WidgetSnapshotTests.swift +0 -43
- package/Tests/RunicTests/ZaiProviderTests.swift +0 -59
- package/Tests/RunicTests/ZaiTokenStoreTestSupport.swift +0 -9
- package/TestsLinux/PlatformGatingTests.swift +0 -46
- package/appcast.xml +0 -104
- package/assets/logo-concept-stack.svg +0 -24
- package/assets/logo-minimal-bars.svg +0 -15
- package/assets/logo.svg +0 -20
- package/assets/logo2.svg +0 -43
- package/bin/docs-list +0 -5
- package/build-and-run.sh +0 -369
- package/docs/.nojekyll +0 -1
- package/docs/CNAME +0 -1
- package/docs/antigravity.md +0 -75
- package/docs/architecture.md +0 -32
- package/docs/claude.md +0 -93
- package/docs/cli-commands/integration_guide.md +0 -371
- package/docs/cli-commands/quick_reference.md +0 -362
- package/docs/cli-commands/readme.md +0 -361
- package/docs/cli.md +0 -156
- package/docs/cloudkit_sync_guide.md +0 -495
- package/docs/codebase_review.md +0 -288
- package/docs/codex-oauth.md +0 -635
- package/docs/codex.md +0 -104
- package/docs/codexbar.png +0 -0
- package/docs/copilot.md +0 -44
- package/docs/cursor.md +0 -46
- package/docs/design/designcomparisonchart.md +0 -510
- package/docs/design/implementationguide.md +0 -792
- package/docs/design/menubaricondesignconcepts.md +0 -796
- package/docs/design/mockups/hybridiconconcept.svg +0 -62
- package/docs/design/mockups/infinityiconconcept.svg +0 -41
- package/docs/design/mockups/infinityiconstates.svg +0 -129
- package/docs/design/mockups/wavelogorefined.svg +0 -48
- package/docs/design/quick_summary.md +0 -426
- package/docs/design/readme.md +0 -478
- package/docs/design/sizespecifications.md +0 -575
- package/docs/design-system.md +0 -836
- package/docs/factory.md +0 -103
- package/docs/gemini.md +0 -73
- package/docs/icon.md +0 -37
- package/docs/icon.png +0 -0
- package/docs/index.html +0 -175
- package/docs/keychain_fix.md +0 -274
- package/docs/minimax.md +0 -71
- package/docs/packaging.md +0 -25
- package/docs/progress-bar-improvements.md +0 -240
- package/docs/progress-bar-quick-reference.md +0 -283
- package/docs/progress-bar-technical-details.md +0 -432
- package/docs/progress-bar-visual-test.swift +0 -375
- package/docs/provider.md +0 -202
- package/docs/providers.md +0 -86
- package/docs/refactor/macros.md +0 -35
- package/docs/refresh-loop.md +0 -22
- package/docs/releasing-homebrew.md +0 -35
- package/docs/releasing.md +0 -121
- package/docs/research/concrete_todo_2026-02-22.md +0 -47
- package/docs/research/core-feature-research.md +0 -248
- package/docs/research/feature_uiux_roadmap_2026-02-22.md +0 -202
- package/docs/research/parity_matrix.md +0 -49
- package/docs/research/provider_expansion_candidates_2026-02-22.md +0 -80
- package/docs/research/provider_model_token_project_matrix_2026-02-23.md +0 -46
- package/docs/research/release_gate_checklist.md +0 -57
- package/docs/site.css +0 -505
- package/docs/sparkle.md +0 -28
- package/docs/status.md +0 -28
- package/docs/sync/implementation.md +0 -393
- package/docs/sync/readme.md +0 -317
- package/docs/sync_files_summary.md +0 -391
- package/docs/sync_quick_reference.md +0 -225
- package/docs/todo.md +0 -11
- package/docs/ui.md +0 -29
- package/docs/web-integration.md +0 -9
- package/docs/widgets.md +0 -85
- package/docs/workflows/error-handling-improvements.md +0 -434
- package/docs/workflows/folder_structure.md +0 -299
- package/docs/workflows/loading_states.md +0 -446
- package/docs/workflows/loading_states_examples.md +0 -565
- package/docs/workflows/loading_states_flow.md +0 -430
- package/docs/workflows/performance_optimizations.md +0 -457
- package/docs/workflows/phase1-cli-testing-report.md +0 -313
- package/docs/workflows/quick_reference.md +0 -228
- package/docs/workflows/readme.md +0 -59
- package/docs/workflows/recent_improvements.md +0 -275
- package/docs/workflows/sync_enablement_summary.md +0 -400
- package/docs/zai.md +0 -43
- package/runic.png +0 -0
- package/runic.svg +0 -15
- package/version.env +0 -2
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
# RunicCLI Phase 1 Testing - Final Report
|
|
2
|
-
|
|
3
|
-
## Executive Summary
|
|
4
|
-
|
|
5
|
-
Testing of the RunicCLI executable has been completed. The build succeeds, and most Phase 1 enhancements are properly implemented. However, there are 2 critical issues preventing full functionality.
|
|
6
|
-
|
|
7
|
-
**Build Status**: ✅ PASS (1.29s)
|
|
8
|
-
**Overall Test Status**: 🟡 PARTIAL PASS (6/8 commands working)
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Detailed Test Results
|
|
13
|
-
|
|
14
|
-
### ✅ Test 1: Build Command
|
|
15
|
-
```bash
|
|
16
|
-
swift build -c release --product RunicCLI
|
|
17
|
-
```
|
|
18
|
-
**Result**: SUCCESS
|
|
19
|
-
- Build completed in 1.29 seconds
|
|
20
|
-
- Warnings about disabled files (expected, not blocking)
|
|
21
|
-
|
|
22
|
-
### ✅ Test 2: Usage Command (Text Format)
|
|
23
|
-
```bash
|
|
24
|
-
.build/release/RunicCLI usage
|
|
25
|
-
```
|
|
26
|
-
**Result**: SUCCESS
|
|
27
|
-
- Displays usage for all providers
|
|
28
|
-
- Color-coded progress bars
|
|
29
|
-
- Shows session/weekly usage percentages
|
|
30
|
-
- Provider errors are expected (missing credentials)
|
|
31
|
-
|
|
32
|
-
### ❌ Test 3: Usage Command (JSON Format)
|
|
33
|
-
```bash
|
|
34
|
-
.build/release/RunicCLI usage --format=json
|
|
35
|
-
```
|
|
36
|
-
**Result**: FAILURE
|
|
37
|
-
**Error**: `Helix.HelixError error 3`
|
|
38
|
-
|
|
39
|
-
**Root Cause**: The `runUsage` function in CLIEntry.swift (lines 102-170) doesn't properly implement JSON encoding. It tries to parse text output as JSON instead of encoding structured data.
|
|
40
|
-
|
|
41
|
-
**Code Location**: `/Users/srinivaspendela/Sriinnu/AI/Runic/Sources/RunicCLI/CLIEntry.swift:158-169`
|
|
42
|
-
|
|
43
|
-
**Fix Required**: Replace text concatenation with proper Encodable struct and JSONEncoder
|
|
44
|
-
|
|
45
|
-
### ⚠️ Test 4: Insights - Projects View with Budget
|
|
46
|
-
```bash
|
|
47
|
-
.build/release/RunicCLI insights --view projects --budget --json
|
|
48
|
-
```
|
|
49
|
-
**Result**: COMMAND WORKS (No data available)
|
|
50
|
-
- Command parsing: ✅ PASS
|
|
51
|
-
- Budget flag recognition: ✅ PASS
|
|
52
|
-
- JSON flag recognition: ✅ PASS
|
|
53
|
-
- Output: "No insights available." (expected when no log data exists)
|
|
54
|
-
|
|
55
|
-
**Note**: This is correct behavior. The command works, but requires historical usage log data to display results.
|
|
56
|
-
|
|
57
|
-
### ⚠️ Test 5: Insights - Hourly Granularity
|
|
58
|
-
```bash
|
|
59
|
-
.build/release/RunicCLI insights --view daily --granularity hourly --json
|
|
60
|
-
```
|
|
61
|
-
**Result**: COMMAND WORKS (No data available)
|
|
62
|
-
- Command parsing: ✅ PASS
|
|
63
|
-
- Granularity flag: ✅ PASS
|
|
64
|
-
- Hourly aggregation logic: ✅ IMPLEMENTED (lines 272-274 in CLIEntry.swift)
|
|
65
|
-
- Output: "No insights available." (expected)
|
|
66
|
-
|
|
67
|
-
**Code**:
|
|
68
|
-
```swift
|
|
69
|
-
if let granularity = granularityArg, granularity == "hourly" {
|
|
70
|
-
let summaries = UsageLedgerAggregator.hourlySummaries(entries: entries, timeZone: timeZone)
|
|
71
|
-
Self.renderInsightsOutput(summaries, isJson: isJson, isPretty: isPretty)
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### ⚠️ Test 6: Insights - Comparative View
|
|
76
|
-
```bash
|
|
77
|
-
.build/release/RunicCLI insights --view comparative --json
|
|
78
|
-
```
|
|
79
|
-
**Result**: COMMAND WORKS (No data available)
|
|
80
|
-
- Comparative view: ✅ IMPLEMENTED (lines 296-298 in CLIEntry.swift)
|
|
81
|
-
- Model cost comparison: ✅ IMPLEMENTED (lines 406-437)
|
|
82
|
-
- Cost-per-token ranking: ✅ IMPLEMENTED
|
|
83
|
-
- Output: "No insights available." (expected)
|
|
84
|
-
|
|
85
|
-
**Implementation**:
|
|
86
|
-
```swift
|
|
87
|
-
case "comparative":
|
|
88
|
-
let comparisons = Self.modelCostComparison(entries: entries)
|
|
89
|
-
Self.renderInsightsOutput(comparisons, isJson: isJson, isPretty: isPretty)
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### ⚠️ Test 7: Insights - Efficiency Metrics
|
|
93
|
-
```bash
|
|
94
|
-
.build/release/RunicCLI insights --view efficiency --json
|
|
95
|
-
```
|
|
96
|
-
**Result**: COMMAND WORKS (No data available)
|
|
97
|
-
- Efficiency view: ✅ IMPLEMENTED (lines 299-301 in CLIEntry.swift)
|
|
98
|
-
- Efficiency metrics calculation: ✅ IMPLEMENTED (lines 441-469)
|
|
99
|
-
- Metrics include: tokens/request, cost/request, cache hit rate
|
|
100
|
-
- Output: "No insights available." (expected)
|
|
101
|
-
|
|
102
|
-
**Implementation**:
|
|
103
|
-
```swift
|
|
104
|
-
case "efficiency":
|
|
105
|
-
let efficiencies = Self.modelEfficiencyMetrics(entries: entries)
|
|
106
|
-
Self.renderInsightsOutput(efficiencies, isJson: isJson, isPretty: isPretty)
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
**Metrics Calculated**:
|
|
110
|
-
- Tokens per request
|
|
111
|
-
- Cost per request
|
|
112
|
-
- Cache hit rate
|
|
113
|
-
- Total cost
|
|
114
|
-
|
|
115
|
-
### ❌ Test 8: Alerts Command
|
|
116
|
-
```bash
|
|
117
|
-
.build/release/RunicCLI alerts list --format=json
|
|
118
|
-
```
|
|
119
|
-
**Result**: COMMAND NOT AVAILABLE
|
|
120
|
-
|
|
121
|
-
**Root Cause**:
|
|
122
|
-
1. AlertsCommand.swift is disabled (renamed to .disabled extension)
|
|
123
|
-
2. Command is not registered in CLIEntry.swift's Program descriptor (line 81)
|
|
124
|
-
|
|
125
|
-
**Files**:
|
|
126
|
-
- Implementation exists: `/Users/srinivaspendela/Sriinnu/AI/Runic/Sources/RunicCLI/Commands/AlertsCommand.swift.disabled`
|
|
127
|
-
- Full implementation complete (513 lines)
|
|
128
|
-
- Supports: list, add, test, remove, enable, disable subcommands
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Feature Implementation Status
|
|
133
|
-
|
|
134
|
-
### ✅ Fully Implemented Features
|
|
135
|
-
|
|
136
|
-
1. **Insights Command Framework**
|
|
137
|
-
- Daily view with hourly granularity support
|
|
138
|
-
- Session view
|
|
139
|
-
- Blocks view
|
|
140
|
-
- Models view
|
|
141
|
-
- Projects view
|
|
142
|
-
- Comparative view (NEW in Phase 1)
|
|
143
|
-
- Efficiency view (NEW in Phase 1)
|
|
144
|
-
|
|
145
|
-
2. **Budget Tracking** (NEW in Phase 1)
|
|
146
|
-
- --budget flag support
|
|
147
|
-
- Project budget enrichment
|
|
148
|
-
- Budget status (ok, warning, critical)
|
|
149
|
-
- Month-to-date tracking
|
|
150
|
-
|
|
151
|
-
3. **Comparative Analysis** (NEW in Phase 1)
|
|
152
|
-
- Model cost-per-token comparison
|
|
153
|
-
- Automatic ranking
|
|
154
|
-
- Total cost and token tracking
|
|
155
|
-
- Request count metrics
|
|
156
|
-
|
|
157
|
-
4. **Efficiency Metrics** (NEW in Phase 1)
|
|
158
|
-
- Tokens per request
|
|
159
|
-
- Cost per request
|
|
160
|
-
- Cache hit rate calculation
|
|
161
|
-
- Per-model efficiency tracking
|
|
162
|
-
|
|
163
|
-
5. **JSON Output**
|
|
164
|
-
- Works for all insights views
|
|
165
|
-
- Pretty-print support
|
|
166
|
-
- ISO8601 date formatting
|
|
167
|
-
- Proper encoding of all data types
|
|
168
|
-
|
|
169
|
-
6. **Git Integration**
|
|
170
|
-
- --with-commits flag
|
|
171
|
-
- Links usage entries to git commits
|
|
172
|
-
- 5-minute window matching
|
|
173
|
-
- Commit SHA and message display
|
|
174
|
-
|
|
175
|
-
### ❌ Broken Features
|
|
176
|
-
|
|
177
|
-
1. **Usage Command JSON Output**
|
|
178
|
-
- Text output works perfectly
|
|
179
|
-
- JSON output throws Helix error
|
|
180
|
-
- Root cause: improper JSON encoding implementation
|
|
181
|
-
|
|
182
|
-
2. **Alerts Command**
|
|
183
|
-
- Fully implemented but disabled
|
|
184
|
-
- Not registered in CLI entry point
|
|
185
|
-
- All subcommands coded and ready
|
|
186
|
-
|
|
187
|
-
### ⚠️ Requires Test Data
|
|
188
|
-
|
|
189
|
-
All insights views work correctly but require historical log data:
|
|
190
|
-
- Daily/hourly summaries
|
|
191
|
-
- Session summaries
|
|
192
|
-
- Block summaries
|
|
193
|
-
- Model summaries
|
|
194
|
-
- Project summaries
|
|
195
|
-
- Comparative analysis
|
|
196
|
-
- Efficiency metrics
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Code Quality Assessment
|
|
201
|
-
|
|
202
|
-
### ✅ Well-Implemented
|
|
203
|
-
|
|
204
|
-
1. **Modular Design**: Clean separation between command parsing and execution
|
|
205
|
-
2. **Error Handling**: Proper error messages for missing data
|
|
206
|
-
3. **Type Safety**: Strong typing with Encodable protocols
|
|
207
|
-
4. **Code Organization**: Clear structure with MARK comments
|
|
208
|
-
5. **Configurability**: Extensive flag and option support
|
|
209
|
-
|
|
210
|
-
### ⚠️ Areas for Improvement
|
|
211
|
-
|
|
212
|
-
1. **Usage JSON Output**: Needs proper JSONEncoder implementation
|
|
213
|
-
2. **Disabled Files**: Should be removed or properly excluded
|
|
214
|
-
3. **Test Coverage**: No automated tests found
|
|
215
|
-
4. **Documentation**: In-code documentation is good, but external docs missing
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## Critical Issues
|
|
220
|
-
|
|
221
|
-
### Issue #1: Usage Command JSON Output
|
|
222
|
-
**Severity**: HIGH
|
|
223
|
-
**Impact**: Users cannot export usage data as JSON
|
|
224
|
-
**File**: `Sources/RunicCLI/CLIEntry.swift:102-170`
|
|
225
|
-
|
|
226
|
-
**Current Implementation**:
|
|
227
|
-
```swift
|
|
228
|
-
// Lines 158-169: Tries to parse text as JSON (WRONG)
|
|
229
|
-
if isPretty && isJson {
|
|
230
|
-
if let data = output.data(using: .utf8),
|
|
231
|
-
let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any],
|
|
232
|
-
// ... this fails because output is text, not JSON
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
**Required Fix**:
|
|
236
|
-
- Create Encodable struct for usage data
|
|
237
|
-
- Use JSONEncoder to encode the struct
|
|
238
|
-
- Remove text-to-JSON conversion attempt
|
|
239
|
-
|
|
240
|
-
### Issue #2: Alerts Command Disabled
|
|
241
|
-
**Severity**: MEDIUM
|
|
242
|
-
**Impact**: Alert management functionality unavailable
|
|
243
|
-
**Files**:
|
|
244
|
-
- `Sources/RunicCLI/Commands/AlertsCommand.swift.disabled`
|
|
245
|
-
- `Sources/RunicCLI/CLIEntry.swift`
|
|
246
|
-
|
|
247
|
-
**Required Fix**:
|
|
248
|
-
1. Rename `AlertsCommand.swift.disabled` to `AlertsCommand.swift`
|
|
249
|
-
2. Import AlertsCommand in CLIEntry.swift
|
|
250
|
-
3. Add alerts descriptor to Program (line 81)
|
|
251
|
-
4. Add case for "alerts" in switch statement (line 85)
|
|
252
|
-
|
|
253
|
-
---
|
|
254
|
-
|
|
255
|
-
## Recommendations
|
|
256
|
-
|
|
257
|
-
### Immediate (Before Production)
|
|
258
|
-
1. ✅ Fix usage command JSON output
|
|
259
|
-
2. ✅ Enable and register alerts command
|
|
260
|
-
3. ✅ Test all commands with real usage data
|
|
261
|
-
|
|
262
|
-
### Short-term
|
|
263
|
-
1. Add automated integration tests
|
|
264
|
-
2. Create user documentation
|
|
265
|
-
3. Add JSON schema validation
|
|
266
|
-
4. Handle empty data gracefully (return [] instead of error)
|
|
267
|
-
|
|
268
|
-
### Long-term
|
|
269
|
-
1. Add comprehensive error logging
|
|
270
|
-
2. Performance optimization for large datasets
|
|
271
|
-
3. Add data export formats (CSV, etc.)
|
|
272
|
-
4. Implement caching for expensive operations
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## Test Environment
|
|
277
|
-
|
|
278
|
-
- **Working Directory**: `/Users/srinivaspendela/Sriinnu/AI/Runic`
|
|
279
|
-
- **Build Tool**: Swift Package Manager
|
|
280
|
-
- **Build Configuration**: Release
|
|
281
|
-
- **Platform**: macOS (Darwin 24.6.0)
|
|
282
|
-
- **Build Time**: 1.29 seconds
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
## Conclusion
|
|
287
|
-
|
|
288
|
-
**Phase 1 CLI Enhancements Implementation: 75% Complete**
|
|
289
|
-
|
|
290
|
-
**Working (6/8)**:
|
|
291
|
-
- ✅ Insights command with all views
|
|
292
|
-
- ✅ Budget tracking integration
|
|
293
|
-
- ✅ Hourly granularity support
|
|
294
|
-
- ✅ Comparative analysis
|
|
295
|
-
- ✅ Efficiency metrics
|
|
296
|
-
- ✅ Git commit linking
|
|
297
|
-
|
|
298
|
-
**Broken (2/8)**:
|
|
299
|
-
- ❌ Usage command JSON output
|
|
300
|
-
- ❌ Alerts command (disabled)
|
|
301
|
-
|
|
302
|
-
**Key Achievements**:
|
|
303
|
-
- All new Phase 1 features are properly implemented in the insights command
|
|
304
|
-
- JSON encoding works correctly for all insights views
|
|
305
|
-
- Command parsing and flag handling works perfectly
|
|
306
|
-
- Code structure is clean and maintainable
|
|
307
|
-
|
|
308
|
-
**Blocking Issues**:
|
|
309
|
-
- Usage command cannot export JSON (Helix error)
|
|
310
|
-
- Alerts functionality is completely unavailable
|
|
311
|
-
|
|
312
|
-
**Recommendation**: Fix the two critical issues before considering Phase 1 complete. The core functionality is solid, but these bugs prevent full usability.
|
|
313
|
-
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
# Runic Quick Reference
|
|
2
|
-
|
|
3
|
-
**For developers who want to get productive fast.**
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 🚀 Quick Start
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Clone and build
|
|
11
|
-
git clone <repo-url>
|
|
12
|
-
cd Runic
|
|
13
|
-
RUNIC_SIGNING=adhoc ./Scripts/compile_and_run.sh
|
|
14
|
-
|
|
15
|
-
# Run tests
|
|
16
|
-
swift test
|
|
17
|
-
|
|
18
|
-
# Package app
|
|
19
|
-
./Scripts/package_app.sh
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 📁 Where Is Everything?
|
|
25
|
-
|
|
26
|
-
| What | Where |
|
|
27
|
-
|------|-------|
|
|
28
|
-
| **State management** | `Core/Stores/UsageStore.swift` |
|
|
29
|
-
| **Menubar icon** | `Core/Rendering/IconRenderer.swift` |
|
|
30
|
-
| **Menu UI** | `Views/Menu/MenuCardView.swift` |
|
|
31
|
-
| **Settings UI** | `Views/Preferences/Preferences*Pane.swift` |
|
|
32
|
-
| **Animations** | `Controllers/StatusItemController+Animation.swift` |
|
|
33
|
-
| **Performance config** | `Utilities/PerformanceConstants.swift` |
|
|
34
|
-
| **Provider code** | `Providers/{ProviderName}/` |
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## 🔧 Common Tasks
|
|
39
|
-
|
|
40
|
-
### Adding a New Provider
|
|
41
|
-
|
|
42
|
-
1. Create folder: `Providers/ProviderName/`
|
|
43
|
-
2. Add files:
|
|
44
|
-
- `ProviderNameProviderImplementation.swift`
|
|
45
|
-
- `ProviderNameLoginFlow.swift`
|
|
46
|
-
3. Add icon: `Resources/ProviderIcon-providername.svg`
|
|
47
|
-
4. Register: `RunicCore/Providers/Providers.swift`
|
|
48
|
-
|
|
49
|
-
### Adjusting UI Spacing
|
|
50
|
-
|
|
51
|
-
```swift
|
|
52
|
-
// Menu cards
|
|
53
|
-
MenuCardMetrics.sectionSpacing = 8
|
|
54
|
-
MenuCardMetrics.lineSpacing = 4
|
|
55
|
-
|
|
56
|
-
// Preferences
|
|
57
|
-
PreferencesLayoutMetrics.paneHorizontal = 35
|
|
58
|
-
PreferencesLayoutMetrics.paneVertical = 25
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Tuning Performance
|
|
62
|
-
|
|
63
|
-
Edit `Utilities/PerformanceConstants.swift`:
|
|
64
|
-
```swift
|
|
65
|
-
static let menubarFPS = 60 // Animation frame rate
|
|
66
|
-
static let iconCacheSize = 64 // Icon cache size
|
|
67
|
-
static let staleDuration = Duration.seconds(300) // 5 min stale
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Finding Code
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# Search for function/class
|
|
74
|
-
grep -r "functionName" Sources/
|
|
75
|
-
|
|
76
|
-
# Find files by name
|
|
77
|
-
find Sources/ -name "*Store*"
|
|
78
|
-
|
|
79
|
-
# Search with line numbers
|
|
80
|
-
grep -rn "MARK:" Sources/Runic/
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## 🎨 UI Layout
|
|
86
|
-
|
|
87
|
-
### Menubar Icon
|
|
88
|
-
- **Size:** 18×18pt (36×36px @2x)
|
|
89
|
-
- **Renderer:** `IconRenderer.swift`
|
|
90
|
-
- **Shows:** Usage bars, stale indicator, provider status
|
|
91
|
-
|
|
92
|
-
### Menu Cards
|
|
93
|
-
- **Width:** Auto (SwiftUI)
|
|
94
|
-
- **Padding:** 12pt horizontal
|
|
95
|
-
- **Spacing:** 8pt between sections, 4pt between lines
|
|
96
|
-
|
|
97
|
-
### Preferences Window
|
|
98
|
-
- **Size:** 500×400pt
|
|
99
|
-
- **Tabs:** About, General, Providers, Advanced, Help, Debug
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## ⚡ Performance Guidelines
|
|
104
|
-
|
|
105
|
-
### Do's ✅
|
|
106
|
-
- Use O(1) lookups (Dictionary, Set)
|
|
107
|
-
- Cache expensive operations
|
|
108
|
-
- Stop animations when not needed
|
|
109
|
-
- Use cookies before API calls
|
|
110
|
-
|
|
111
|
-
### Don'ts ❌
|
|
112
|
-
- Never block main thread
|
|
113
|
-
- Avoid O(n) operations on large datasets
|
|
114
|
-
- Don't leak tokens (always cache first)
|
|
115
|
-
- No magic numbers (use constants)
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## 🐛 Debugging
|
|
120
|
-
|
|
121
|
-
### Check Logs
|
|
122
|
-
```bash
|
|
123
|
-
# App logs
|
|
124
|
-
log stream --predicate 'process == "Runic"' --level debug
|
|
125
|
-
|
|
126
|
-
# Build errors
|
|
127
|
-
swift build 2>&1 | grep error
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Common Issues
|
|
131
|
-
|
|
132
|
-
| Problem | Solution |
|
|
133
|
-
|---------|----------|
|
|
134
|
-
| **Stale binary** | `pkill -x Runic && ./Scripts/compile_and_run.sh` |
|
|
135
|
-
| **Build fails** | `rm -rf .build && swift build` |
|
|
136
|
-
| **Icon not updating** | Clear cache in Debug preferences |
|
|
137
|
-
| **Menu not showing** | Check `StatusItemController+Menu.swift` |
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## 📊 Code Statistics
|
|
142
|
-
|
|
143
|
-
| Metric | Value |
|
|
144
|
-
|--------|-------|
|
|
145
|
-
| **Total files** | ~119 |
|
|
146
|
-
| **Total lines** | ~30,000 |
|
|
147
|
-
| **Avg file size** | ~250 lines |
|
|
148
|
-
| **Largest file** | UsageStore.swift (2089 lines) |
|
|
149
|
-
| **Providers** | 11 (Claude, Codex, Cursor, etc.) |
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## 🔗 Key Files Quick Links
|
|
154
|
-
|
|
155
|
-
### Core (Business Logic)
|
|
156
|
-
- [UsageStore.swift](Sources/Runic/Core/Stores/UsageStore.swift) - Main state (2089 lines)
|
|
157
|
-
- [IconRenderer.swift](Sources/Runic/Core/Rendering/IconRenderer.swift) - Icon generation (882 lines)
|
|
158
|
-
- [PerformanceConstants.swift](Sources/Runic/Utilities/PerformanceConstants.swift) - Config (50 lines)
|
|
159
|
-
|
|
160
|
-
### UI (SwiftUI)
|
|
161
|
-
- [MenuCardView.swift](Sources/Runic/Views/Menu/MenuCardView.swift) - Menu UI (1093 lines)
|
|
162
|
-
- [PreferencesView.swift](Sources/Runic/Views/Preferences/PreferencesView.swift) - Settings (200 lines)
|
|
163
|
-
|
|
164
|
-
### Controllers (AppKit)
|
|
165
|
-
- [StatusItemController.swift](Sources/Runic/Controllers/StatusItemController.swift) - Menubar (318 lines)
|
|
166
|
-
- [StatusItemController+Menu.swift](Sources/Runic/Controllers/StatusItemController+Menu.swift) - Menu builder (1878 lines)
|
|
167
|
-
- [StatusItemController+Animation.swift](Sources/Runic/Controllers/StatusItemController+Animation.swift) - Animations (469 lines)
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## 🎯 Terminology
|
|
172
|
-
|
|
173
|
-
| Term | Meaning |
|
|
174
|
-
|------|---------|
|
|
175
|
-
| **Ping** | Fetch latest usage data from provider |
|
|
176
|
-
| **Snapshot** | Point-in-time usage data |
|
|
177
|
-
| **Stale** | Data older than 5 minutes |
|
|
178
|
-
| **Provider** | AI service (Claude, Codex, etc.) |
|
|
179
|
-
| **Status item** | macOS menubar icon |
|
|
180
|
-
| **Template image** | Image that adapts to menubar theme |
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## 🔑 Keyboard Shortcuts
|
|
185
|
-
|
|
186
|
-
| Shortcut | Action |
|
|
187
|
-
|----------|--------|
|
|
188
|
-
| `⌘⇧R` | Open Runic menu |
|
|
189
|
-
| `⌘,` | Preferences |
|
|
190
|
-
| `⌘Q` | Quit |
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## 📚 Documentation Files
|
|
195
|
-
|
|
196
|
-
| File | Purpose |
|
|
197
|
-
|------|---------|
|
|
198
|
-
| **README.md** | Project overview |
|
|
199
|
-
| **AGENTS.md** | AI agent guidelines |
|
|
200
|
-
| **FOLDER_STRUCTURE.md** | Code organization guide |
|
|
201
|
-
| **RECENT_IMPROVEMENTS.md** | Latest changes |
|
|
202
|
-
| **QUICK_REFERENCE.md** | This file |
|
|
203
|
-
| **PLAN.md** | Development roadmap |
|
|
204
|
-
| **CHANGELOG.md** | Version history |
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## 💡 Pro Tips
|
|
209
|
-
|
|
210
|
-
1. **Use folder structure** - Files are organized logically (see FOLDER_STRUCTURE.md)
|
|
211
|
-
2. **Read file headers** - Key files have comprehensive documentation
|
|
212
|
-
3. **Check PerformanceConstants** - All tuning knobs in one place
|
|
213
|
-
4. **Follow AGENTS.md** - Guidelines for consistent development
|
|
214
|
-
5. **Always rebuild** - Use `compile_and_run.sh` after changes
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
## 🆘 Getting Help
|
|
219
|
-
|
|
220
|
-
1. **Read docs** - Start with README.md, then FOLDER_STRUCTURE.md
|
|
221
|
-
2. **Check AGENTS.md** - Development guidelines and patterns
|
|
222
|
-
3. **Search code** - Use grep/find to locate examples
|
|
223
|
-
4. **Check git log** - See how features were implemented
|
|
224
|
-
5. **Ask maintainers** - Open an issue or discussion
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
**Updated:** 2026-01-16 | **Version:** v0.16.1 | **Build:** 49
|
package/docs/workflows/readme.md
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# Runic Documentation & Workflows
|
|
2
|
-
|
|
3
|
-
This folder contains comprehensive documentation and workflow guides for the Runic project.
|
|
4
|
-
|
|
5
|
-
## 📚 Documentation Files
|
|
6
|
-
|
|
7
|
-
### Quick References
|
|
8
|
-
- **[QUICK_REFERENCE.md](QUICK_REFERENCE.md)** - Fast lookup guide for developers
|
|
9
|
-
- Common tasks (adding providers, tuning performance)
|
|
10
|
-
- Where to find everything
|
|
11
|
-
- Debugging tips and pro tips
|
|
12
|
-
|
|
13
|
-
### Architecture & Structure
|
|
14
|
-
- **[FOLDER_STRUCTURE.md](FOLDER_STRUCTURE.md)** - Complete code organization guide
|
|
15
|
-
- Detailed folder structure with descriptions
|
|
16
|
-
- Design principles and naming conventions
|
|
17
|
-
- Code comment guidelines
|
|
18
|
-
- File reference tables
|
|
19
|
-
|
|
20
|
-
### Workflows & Best Practices
|
|
21
|
-
- **[PERFORMANCE_OPTIMIZATIONS.md](PERFORMANCE_OPTIMIZATIONS.md)** - Performance tuning guide
|
|
22
|
-
- Zero token leakage policy
|
|
23
|
-
- Animation performance (60 FPS)
|
|
24
|
-
- Caching strategies
|
|
25
|
-
- Single ping approach
|
|
26
|
-
|
|
27
|
-
### Change History
|
|
28
|
-
- **[RECENT_IMPROVEMENTS.md](RECENT_IMPROVEMENTS.md)** - Latest updates and changes
|
|
29
|
-
- Recent feature additions
|
|
30
|
-
- UI/UX refinements
|
|
31
|
-
- Code organization improvements
|
|
32
|
-
- Build history
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## 🎯 Getting Started
|
|
37
|
-
|
|
38
|
-
**New to Runic?** Start here:
|
|
39
|
-
1. Read [QUICK_REFERENCE.md](QUICK_REFERENCE.md) for common tasks
|
|
40
|
-
2. Check [FOLDER_STRUCTURE.md](FOLDER_STRUCTURE.md) to understand the codebase
|
|
41
|
-
3. Review [PERFORMANCE_OPTIMIZATIONS.md](PERFORMANCE_OPTIMIZATIONS.md) for best practices
|
|
42
|
-
|
|
43
|
-
**Working on a feature?**
|
|
44
|
-
- Use [FOLDER_STRUCTURE.md](FOLDER_STRUCTURE.md) to find relevant files
|
|
45
|
-
- Follow guidelines in [PERFORMANCE_OPTIMIZATIONS.md](PERFORMANCE_OPTIMIZATIONS.md)
|
|
46
|
-
- Check [RECENT_IMPROVEMENTS.md](RECENT_IMPROVEMENTS.md) for latest patterns
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## 📖 Additional Documentation
|
|
51
|
-
|
|
52
|
-
For more documentation, see the main `docs/` folder:
|
|
53
|
-
- **API documentation** - Provider-specific API docs
|
|
54
|
-
- **Architecture guides** - System design documents
|
|
55
|
-
- **Release guides** - Build and release processes
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
**Last Updated:** 2026-01-17
|