@sriinnu/runic 2.0.0 → 2.11.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.
Files changed (610) hide show
  1. package/CHANGELOG.md +256 -0
  2. package/LICENSE +373 -21
  3. package/README.md +96 -89
  4. package/THIRD-PARTY-NOTICES.md +651 -0
  5. package/package.json +14 -4
  6. package/.swiftformat +0 -50
  7. package/.swiftlint.yml +0 -160
  8. package/CONTRIBUTING.md +0 -456
  9. package/Icon.icns +0 -0
  10. package/Icon.icon/Assets/runic.png +0 -0
  11. package/Icon.icon/icon.json +0 -36
  12. package/Package.resolved +0 -51
  13. package/Package.swift +0 -136
  14. package/Packages/Helix/LICENSE +0 -21
  15. package/Packages/Helix/Package.swift +0 -29
  16. package/Packages/Helix/README.md +0 -976
  17. package/Packages/Helix/Sources/Helix/Binding.swift +0 -111
  18. package/Packages/Helix/Sources/Helix/CommandParser.swift +0 -160
  19. package/Packages/Helix/Sources/Helix/CommandSignature.swift +0 -117
  20. package/Packages/Helix/Sources/Helix/ExpressibleFromArgument.swift +0 -72
  21. package/Packages/Helix/Sources/Helix/HelpGenerator.swift +0 -175
  22. package/Packages/Helix/Sources/Helix/NameSpecification.swift +0 -98
  23. package/Packages/Helix/Sources/Helix/ParsableCommand.swift +0 -204
  24. package/Packages/Helix/Sources/Helix/Platform/DarwinPlatformContext.swift +0 -44
  25. package/Packages/Helix/Sources/Helix/Platform/LinuxPlatformContext.swift +0 -34
  26. package/Packages/Helix/Sources/Helix/Platform/PlatformContext+Default.swift +0 -91
  27. package/Packages/Helix/Sources/Helix/Platform/PlatformContext.swift +0 -94
  28. package/Packages/Helix/Sources/Helix/Platform/PlatformPath.swift +0 -167
  29. package/Packages/Helix/Sources/Helix/Platform/Stdio.swift +0 -99
  30. package/Packages/Helix/Sources/Helix/Platform/WebPlatformContext.swift +0 -146
  31. package/Packages/Helix/Sources/Helix/Platform/WindowsPlatformContext.swift +0 -97
  32. package/Packages/Helix/Sources/Helix/Program.swift +0 -204
  33. package/Packages/Helix/Sources/Helix/PropertyWrappers.swift +0 -367
  34. package/Packages/Silo/LICENSE +0 -21
  35. package/Packages/Silo/Package.swift +0 -34
  36. package/Packages/Silo/README.md +0 -466
  37. package/Packages/Silo/Sources/Silo/BinaryCookiesReader.swift +0 -169
  38. package/Packages/Silo/Sources/Silo/BrowserCookieAnalytics.swift +0 -365
  39. package/Packages/Silo/Sources/Silo/BrowserCookieBackends.swift +0 -594
  40. package/Packages/Silo/Sources/Silo/BrowserCookieClient.swift +0 -326
  41. package/Packages/Silo/Sources/Silo/BrowserCookieExport.swift +0 -154
  42. package/Packages/Silo/Sources/Silo/BrowserCookieImport.swift +0 -119
  43. package/Packages/Silo/Sources/Silo/BrowserCookieMockStore.swift +0 -121
  44. package/Packages/Silo/Sources/Silo/BrowserCookieModels.swift +0 -391
  45. package/Packages/Silo/Sources/Silo/ChromiumCookieReader.swift +0 -240
  46. package/Packages/Silo/Sources/Silo/CryptoSupport.swift +0 -86
  47. package/Packages/Silo/Sources/Silo/FirefoxCookieReader.swift +0 -172
  48. package/Packages/Silo/Sources/Silo/LinuxChromiumCookieReader.swift +0 -172
  49. package/Packages/Silo/Sources/Silo/LinuxSecretService.swift +0 -105
  50. package/Packages/Silo/Sources/Silo/MacOSChromiumCookieReader.swift +0 -191
  51. package/Packages/Silo/Sources/Silo/SQLiteSnapshot.swift +0 -41
  52. package/Packages/Silo/Sources/Silo/WindowsChromiumCookieReader.swift +0 -110
  53. package/RuniciOS/App/RuniciOSApp.swift +0 -105
  54. package/RuniciOS/Core/RunicTypographyiOS.swift +0 -24
  55. package/RuniciOS/Core/iOSUsageStore.swift +0 -192
  56. package/RuniciOS/Views/ProviderDetailView.swift +0 -312
  57. package/RuniciOS/Views/ProviderListView.swift +0 -228
  58. package/RuniciOS/Widgets/LargeWidget.swift +0 -367
  59. package/RuniciOS/Widgets/LiveActivity.swift +0 -342
  60. package/RuniciOS/Widgets/LockScreenWidget.swift +0 -273
  61. package/RuniciOS/Widgets/MediumWidget.swift +0 -370
  62. package/RuniciOS/Widgets/RunicWidget.swift +0 -274
  63. package/RuniciOS/Widgets/SmallWidget.swift +0 -281
  64. package/RuniciOS/Widgets/WidgetModels.swift +0 -285
  65. package/RuniciOS/Widgets/WidgetTimeline.swift +0 -270
  66. package/Scripts/CREATION-SUMMARY.md +0 -367
  67. package/Scripts/DIRECTORY-STRUCTURE.md +0 -358
  68. package/Scripts/GETTING-STARTED-CHECKLIST.md +0 -364
  69. package/Scripts/INDEX.md +0 -365
  70. package/Scripts/QUICK-REFERENCE.md +0 -164
  71. package/Scripts/README-SCRIPTS.md +0 -926
  72. package/Scripts/build-android.sh +0 -526
  73. package/Scripts/build-ios.sh +0 -529
  74. package/Scripts/build-macos.sh +0 -603
  75. package/Scripts/build-windows.sh +0 -504
  76. package/Scripts/build_icon.sh +0 -49
  77. package/Scripts/changelog-to-html.sh +0 -89
  78. package/Scripts/check-release-assets.sh +0 -10
  79. package/Scripts/ci-config.yml +0 -474
  80. package/Scripts/compile_and_run.sh +0 -219
  81. package/Scripts/compile_and_run_adhoc.sh +0 -4
  82. package/Scripts/docs-list.mjs +0 -119
  83. package/Scripts/make_appcast.sh +0 -58
  84. package/Scripts/package_app.sh +0 -409
  85. package/Scripts/release-lib.sh +0 -214
  86. package/Scripts/release.sh +0 -76
  87. package/Scripts/setup-all.sh +0 -387
  88. package/Scripts/setup-ios.sh +0 -404
  89. package/Scripts/setup-react-native.sh +0 -523
  90. package/Scripts/sign-and-notarize.sh +0 -122
  91. package/Scripts/test_live_update.sh +0 -38
  92. package/Scripts/validate_changelog.sh +0 -23
  93. package/Scripts/verify_appcast.sh +0 -92
  94. package/Sources/Runic/About.swift +0 -93
  95. package/Sources/Runic/AppNotifications.swift +0 -117
  96. package/Sources/Runic/Controllers/StatusItemController+Actions.swift +0 -670
  97. package/Sources/Runic/Controllers/StatusItemController+Animation.swift +0 -519
  98. package/Sources/Runic/Controllers/StatusItemController+ChartSubmenus.swift +0 -824
  99. package/Sources/Runic/Controllers/StatusItemController+CustomProviders.swift +0 -90
  100. package/Sources/Runic/Controllers/StatusItemController+Menu.swift +0 -1412
  101. package/Sources/Runic/Controllers/StatusItemController+MenuCards.swift +0 -339
  102. package/Sources/Runic/Controllers/StatusItemController+MenuHelpers.swift +0 -423
  103. package/Sources/Runic/Controllers/StatusItemController.swift +0 -360
  104. package/Sources/Runic/Core/BudgetNotificationManager.swift +0 -81
  105. package/Sources/Runic/Core/Login/ClaudeLoginRunner.swift +0 -103
  106. package/Sources/Runic/Core/Login/CodexLoginRunner.swift +0 -154
  107. package/Sources/Runic/Core/Login/CursorLoginRunner.swift +0 -206
  108. package/Sources/Runic/Core/Login/GeminiLoginRunner.swift +0 -92
  109. package/Sources/Runic/Core/Rendering/IconRenderer.swift +0 -1222
  110. package/Sources/Runic/Core/Rendering/IconView.swift +0 -122
  111. package/Sources/Runic/Core/Rendering/ProviderBrandIcon.swift +0 -71
  112. package/Sources/Runic/Core/RunicAnimation.swift +0 -53
  113. package/Sources/Runic/Core/RunicColors.swift +0 -73
  114. package/Sources/Runic/Core/RunicCornerRadius.swift +0 -15
  115. package/Sources/Runic/Core/RunicSpacing.swift +0 -68
  116. package/Sources/Runic/Core/RunicTypography.swift +0 -206
  117. package/Sources/Runic/Core/Stores/AuggieTokenStore.swift +0 -117
  118. package/Sources/Runic/Core/Stores/AzureOpenAITokenStore.swift +0 -117
  119. package/Sources/Runic/Core/Stores/CerebrasTokenStore.swift +0 -117
  120. package/Sources/Runic/Core/Stores/CohereTokenStore.swift +0 -117
  121. package/Sources/Runic/Core/Stores/CopilotTokenStore.swift +0 -117
  122. package/Sources/Runic/Core/Stores/CustomProviderStore.swift +0 -158
  123. package/Sources/Runic/Core/Stores/DeepSeekTokenStore.swift +0 -117
  124. package/Sources/Runic/Core/Stores/FireworksTokenStore.swift +0 -117
  125. package/Sources/Runic/Core/Stores/GroqTokenStore.swift +0 -117
  126. package/Sources/Runic/Core/Stores/KimiTokenStore.swift +0 -117
  127. package/Sources/Runic/Core/Stores/MiniMaxCookieHeaderStore.swift +0 -117
  128. package/Sources/Runic/Core/Stores/MiniMaxGroupIDStore.swift +0 -117
  129. package/Sources/Runic/Core/Stores/MiniMaxTokenStore.swift +0 -117
  130. package/Sources/Runic/Core/Stores/MistralTokenStore.swift +0 -117
  131. package/Sources/Runic/Core/Stores/OpenRouterTokenStore.swift +0 -117
  132. package/Sources/Runic/Core/Stores/PerplexityTokenStore.swift +0 -117
  133. package/Sources/Runic/Core/Stores/ProviderToggleStore.swift +0 -30
  134. package/Sources/Runic/Core/Stores/QwenTokenStore.swift +0 -117
  135. package/Sources/Runic/Core/Stores/SambaNovaTokenStore.swift +0 -117
  136. package/Sources/Runic/Core/Stores/SettingsStore.swift +0 -1749
  137. package/Sources/Runic/Core/Stores/TogetherTokenStore.swift +0 -117
  138. package/Sources/Runic/Core/Stores/UsageStore+Accessors.swift +0 -33
  139. package/Sources/Runic/Core/Stores/UsageStore+Status.swift +0 -189
  140. package/Sources/Runic/Core/Stores/UsageStore+TokenCost.swift +0 -33
  141. package/Sources/Runic/Core/Stores/UsageStore+WidgetSnapshot.swift +0 -67
  142. package/Sources/Runic/Core/Stores/UsageStore.swift +0 -3631
  143. package/Sources/Runic/Core/Stores/XAITokenStore.swift +0 -117
  144. package/Sources/Runic/Core/Stores/ZaiTokenStore.swift +0 -117
  145. package/Sources/Runic/Core/UsageExporter.swift +0 -197
  146. package/Sources/Runic/Date+RelativeDescription.swift +0 -21
  147. package/Sources/Runic/HiddenWindowView.swift +0 -32
  148. package/Sources/Runic/InstallOrigin.swift +0 -9
  149. package/Sources/Runic/KeyboardShortcuts+Names.swift +0 -6
  150. package/Sources/Runic/MouseLocationReader.swift +0 -65
  151. package/Sources/Runic/Notifications+Runic.swift +0 -6
  152. package/Sources/Runic/OpenAICreditsPurchaseWindowController.swift +0 -503
  153. package/Sources/Runic/ProviderRegistry.swift +0 -100
  154. package/Sources/Runic/ProviderSwitcherButtons.swift +0 -267
  155. package/Sources/Runic/Providers/Antigravity/AntigravityLoginFlow.swift +0 -11
  156. package/Sources/Runic/Providers/Antigravity/AntigravityProviderImplementation.swift +0 -14
  157. package/Sources/Runic/Providers/Auggie/AuggieProviderImplementation.swift +0 -24
  158. package/Sources/Runic/Providers/Azure/AzureProviderImplementation.swift +0 -52
  159. package/Sources/Runic/Providers/Bedrock/BedrockProviderImplementation.swift +0 -42
  160. package/Sources/Runic/Providers/Cerebras/CerebrasProviderImplementation.swift +0 -24
  161. package/Sources/Runic/Providers/Claude/ClaudeLoginFlow.swift +0 -26
  162. package/Sources/Runic/Providers/Claude/ClaudeProviderImplementation.swift +0 -14
  163. package/Sources/Runic/Providers/Codex/CodexLoginFlow.swift +0 -18
  164. package/Sources/Runic/Providers/Codex/CodexProviderImplementation.swift +0 -15
  165. package/Sources/Runic/Providers/Cohere/CohereProviderImplementation.swift +0 -24
  166. package/Sources/Runic/Providers/Copilot/CopilotLoginFlow.swift +0 -193
  167. package/Sources/Runic/Providers/Copilot/CopilotProviderImplementation.swift +0 -110
  168. package/Sources/Runic/Providers/Cursor/CursorLoginFlow.swift +0 -28
  169. package/Sources/Runic/Providers/Cursor/CursorProviderImplementation.swift +0 -15
  170. package/Sources/Runic/Providers/DeepSeek/DeepSeekProviderImplementation.swift +0 -24
  171. package/Sources/Runic/Providers/Factory/FactoryLoginFlow.swift +0 -12
  172. package/Sources/Runic/Providers/Factory/FactoryProviderImplementation.swift +0 -15
  173. package/Sources/Runic/Providers/Fireworks/FireworksProviderImplementation.swift +0 -24
  174. package/Sources/Runic/Providers/Gemini/GeminiLoginFlow.swift +0 -20
  175. package/Sources/Runic/Providers/Gemini/GeminiProviderImplementation.swift +0 -15
  176. package/Sources/Runic/Providers/Groq/GroqProviderImplementation.swift +0 -24
  177. package/Sources/Runic/Providers/Kimi/KimiProviderImplementation.swift +0 -24
  178. package/Sources/Runic/Providers/MiniMax/MiniMaxProviderImplementation.swift +0 -32
  179. package/Sources/Runic/Providers/Mistral/MistralProviderImplementation.swift +0 -24
  180. package/Sources/Runic/Providers/OpenRouter/OpenRouterProviderImplementation.swift +0 -24
  181. package/Sources/Runic/Providers/Perplexity/PerplexityProviderImplementation.swift +0 -24
  182. package/Sources/Runic/Providers/SambaNova/SambaNovaProviderImplementation.swift +0 -24
  183. package/Sources/Runic/Providers/Shared/ProviderCatalog.swift +0 -15
  184. package/Sources/Runic/Providers/Shared/ProviderImplementation.swift +0 -51
  185. package/Sources/Runic/Providers/Shared/ProviderImplementationRegistry.swift +0 -66
  186. package/Sources/Runic/Providers/Shared/ProviderLoginFlow.swift +0 -12
  187. package/Sources/Runic/Providers/Shared/ProviderSettingsDescriptors.swift +0 -99
  188. package/Sources/Runic/Providers/Shared/SystemSettingsLinks.swift +0 -18
  189. package/Sources/Runic/Providers/Together/TogetherProviderImplementation.swift +0 -24
  190. package/Sources/Runic/Providers/XAI/XAIProviderImplementation.swift +0 -24
  191. package/Sources/Runic/Providers/Zai/ZaiProviderImplementation.swift +0 -24
  192. package/Sources/Runic/Resources/Fonts/Caveat-Bold.ttf +0 -0
  193. package/Sources/Runic/Resources/Fonts/Caveat-Regular.ttf +0 -0
  194. package/Sources/Runic/Resources/Fonts/FiraCode-Bold.ttf +0 -0
  195. package/Sources/Runic/Resources/Fonts/FiraCode-Light.ttf +0 -0
  196. package/Sources/Runic/Resources/Fonts/FiraCode-Medium.ttf +0 -0
  197. package/Sources/Runic/Resources/Fonts/FiraCode-Regular.ttf +0 -0
  198. package/Sources/Runic/Resources/Fonts/FiraCode-SemiBold.ttf +0 -0
  199. package/Sources/Runic/Resources/Fonts/IBMPlexMono-Bold.ttf +0 -0
  200. package/Sources/Runic/Resources/Fonts/IBMPlexMono-Medium.ttf +0 -0
  201. package/Sources/Runic/Resources/Fonts/IBMPlexMono-Regular.ttf +0 -0
  202. package/Sources/Runic/Resources/Fonts/IBMPlexMono-SemiBold.ttf +0 -0
  203. package/Sources/Runic/Resources/Fonts/Inconsolata-Bold.ttf +0 -0
  204. package/Sources/Runic/Resources/Fonts/Inconsolata-Medium.ttf +0 -0
  205. package/Sources/Runic/Resources/Fonts/Inconsolata-Regular.ttf +0 -0
  206. package/Sources/Runic/Resources/Fonts/Inconsolata-SemiBold.ttf +0 -0
  207. package/Sources/Runic/Resources/Fonts/JetBrainsMono-Bold.ttf +0 -0
  208. package/Sources/Runic/Resources/Fonts/JetBrainsMono-Medium.ttf +0 -0
  209. package/Sources/Runic/Resources/Fonts/JetBrainsMono-Regular.ttf +0 -0
  210. package/Sources/Runic/Resources/Fonts/JetBrainsMono-SemiBold.ttf +0 -0
  211. package/Sources/Runic/Resources/Fonts/SpaceMono-Bold.ttf +0 -0
  212. package/Sources/Runic/Resources/Fonts/SpaceMono-Regular.ttf +0 -0
  213. package/Sources/Runic/Resources/ProviderIcon-antigravity.svg +0 -2
  214. package/Sources/Runic/Resources/ProviderIcon-auggie.svg +0 -3
  215. package/Sources/Runic/Resources/ProviderIcon-azure.svg +0 -5
  216. package/Sources/Runic/Resources/ProviderIcon-bedrock.svg +0 -7
  217. package/Sources/Runic/Resources/ProviderIcon-cerebras.svg +0 -3
  218. package/Sources/Runic/Resources/ProviderIcon-claude.svg +0 -1
  219. package/Sources/Runic/Resources/ProviderIcon-codex.svg +0 -1
  220. package/Sources/Runic/Resources/ProviderIcon-cohere.svg +0 -3
  221. package/Sources/Runic/Resources/ProviderIcon-copilot.svg +0 -1
  222. package/Sources/Runic/Resources/ProviderIcon-cursor.svg +0 -3
  223. package/Sources/Runic/Resources/ProviderIcon-deepseek.svg +0 -4
  224. package/Sources/Runic/Resources/ProviderIcon-factory.svg +0 -3
  225. package/Sources/Runic/Resources/ProviderIcon-fireworks.svg +0 -3
  226. package/Sources/Runic/Resources/ProviderIcon-gemini.svg +0 -1
  227. package/Sources/Runic/Resources/ProviderIcon-groq.svg +0 -1
  228. package/Sources/Runic/Resources/ProviderIcon-kimi.svg +0 -4
  229. package/Sources/Runic/Resources/ProviderIcon-minimax.svg +0 -1
  230. package/Sources/Runic/Resources/ProviderIcon-mistral.svg +0 -5
  231. package/Sources/Runic/Resources/ProviderIcon-openrouter.svg +0 -7
  232. package/Sources/Runic/Resources/ProviderIcon-perplexity.svg +0 -4
  233. package/Sources/Runic/Resources/ProviderIcon-qwen.svg +0 -9
  234. package/Sources/Runic/Resources/ProviderIcon-sambanova.svg +0 -4
  235. package/Sources/Runic/Resources/ProviderIcon-together.svg +0 -5
  236. package/Sources/Runic/Resources/ProviderIcon-vertexai.svg +0 -17
  237. package/Sources/Runic/Resources/ProviderIcon-xai.svg +0 -3
  238. package/Sources/Runic/Resources/ProviderIcon-zai.svg +0 -5
  239. package/Sources/Runic/Resources/RunicMenubarIcon.svg +0 -7
  240. package/Sources/Runic/Resources/provider-context-windows.json +0 -20
  241. package/Sources/Runic/RunicApp.swift +0 -367
  242. package/Sources/Runic/SessionQuotaNotifications.swift +0 -58
  243. package/Sources/Runic/UsagePaceText.swift +0 -52
  244. package/Sources/Runic/UsageProgressBar.swift +0 -228
  245. package/Sources/Runic/Utilities/DisplayLink.swift +0 -96
  246. package/Sources/Runic/Utilities/LoadingPattern.swift +0 -62
  247. package/Sources/Runic/Utilities/PerformanceConstants.swift +0 -85
  248. package/Sources/Runic/Views/Menu/AlertsMenuView.swift +0 -254
  249. package/Sources/Runic/Views/Menu/ChartPanelStyle.swift +0 -22
  250. package/Sources/Runic/Views/Menu/CostComparativeChartMenuView.swift +0 -275
  251. package/Sources/Runic/Views/Menu/CostHistoryChartMenuView.swift +0 -377
  252. package/Sources/Runic/Views/Menu/CreditsHistoryChartMenuView.swift +0 -312
  253. package/Sources/Runic/Views/Menu/EfficiencyMetricsMenuView.swift +0 -311
  254. package/Sources/Runic/Views/Menu/HeroStatCardsMenuView.swift +0 -231
  255. package/Sources/Runic/Views/Menu/HourlyActivityChartMenuView.swift +0 -228
  256. package/Sources/Runic/Views/Menu/InlineUsageChartView.swift +0 -157
  257. package/Sources/Runic/Views/Menu/MenuCardEntranceModifier.swift +0 -63
  258. package/Sources/Runic/Views/Menu/MenuCardSidebarView.swift +0 -248
  259. package/Sources/Runic/Views/Menu/MenuCardSkeletonView.swift +0 -104
  260. package/Sources/Runic/Views/Menu/MenuCardView.swift +0 -1889
  261. package/Sources/Runic/Views/Menu/MenuContent.swift +0 -153
  262. package/Sources/Runic/Views/Menu/MenuDescriptor.swift +0 -371
  263. package/Sources/Runic/Views/Menu/MenuHighlightStyle.swift +0 -35
  264. package/Sources/Runic/Views/Menu/ModelBreakdownMenuView.swift +0 -241
  265. package/Sources/Runic/Views/Menu/OverviewMenuView.swift +0 -281
  266. package/Sources/Runic/Views/Menu/ProjectBreakdownMenuView.swift +0 -214
  267. package/Sources/Runic/Views/Menu/ProjectBudgetMenuView.swift +0 -220
  268. package/Sources/Runic/Views/Menu/ProviderTabBarView.swift +0 -86
  269. package/Sources/Runic/Views/Menu/SubscriptionUtilizationChartMenuView.swift +0 -214
  270. package/Sources/Runic/Views/Menu/UsageBreakdownChartMenuView.swift +0 -398
  271. package/Sources/Runic/Views/Menu/UsageHeatmapMenuView.swift +0 -231
  272. package/Sources/Runic/Views/Menu/UsageTimelineChartMenuView.swift +0 -369
  273. package/Sources/Runic/Views/Menu/UsageWindowComparisonChartMenuView.swift +0 -191
  274. package/Sources/Runic/Views/Menu/WeeklyActivityChartMenuView.swift +0 -132
  275. package/Sources/Runic/Views/Performance/PerformanceDashboardView.swift +0 -621
  276. package/Sources/Runic/Views/Preferences/LiquidComponents.swift +0 -306
  277. package/Sources/Runic/Views/Preferences/PreferencesAboutPane.swift +0 -271
  278. package/Sources/Runic/Views/Preferences/PreferencesAdvancedPane.swift +0 -268
  279. package/Sources/Runic/Views/Preferences/PreferencesAlertsPane.swift +0 -418
  280. package/Sources/Runic/Views/Preferences/PreferencesAnalyticsPane.swift +0 -637
  281. package/Sources/Runic/Views/Preferences/PreferencesBudgetsPane.swift +0 -344
  282. package/Sources/Runic/Views/Preferences/PreferencesComponents.swift +0 -230
  283. package/Sources/Runic/Views/Preferences/PreferencesCustomProvidersPane.swift +0 -321
  284. package/Sources/Runic/Views/Preferences/PreferencesDebugPane.swift +0 -469
  285. package/Sources/Runic/Views/Preferences/PreferencesGeneralPane.swift +0 -250
  286. package/Sources/Runic/Views/Preferences/PreferencesHelpPane.swift +0 -50
  287. package/Sources/Runic/Views/Preferences/PreferencesIntegrationsPane.swift +0 -572
  288. package/Sources/Runic/Views/Preferences/PreferencesPerformancePane.swift +0 -291
  289. package/Sources/Runic/Views/Preferences/PreferencesProvidersPane.swift +0 -3480
  290. package/Sources/Runic/Views/Preferences/PreferencesSelection.swift +0 -29
  291. package/Sources/Runic/Views/Preferences/PreferencesSyncPane.swift +0 -61
  292. package/Sources/Runic/Views/Preferences/PreferencesView.swift +0 -213
  293. package/Sources/Runic/Views/Rating/QualityRatingView.swift +0 -238
  294. package/Sources/Runic/Views/Team/TeamDashboardView.swift +0 -376
  295. package/Sources/Runic/Views/Team/TeamInviteSheet.swift +0 -175
  296. package/Sources/Runic/Views/Team/TeamManagementView.swift +0 -762
  297. package/Sources/Runic/Views/Team/TeamMemberRow.swift +0 -181
  298. package/Sources/RunicCLI/CLIEntry.swift +0 -983
  299. package/Sources/RunicCLI/CLIRenderer.swift +0 -87
  300. package/Sources/RunicCLI/Commands/EnhancedUsageCommand.swift +0 -588
  301. package/Sources/RunicCLI/Commands/ModelsCommand.swift +0 -363
  302. package/Sources/RunicCLI/Commands/ProjectsCommand.swift +0 -453
  303. package/Sources/RunicCLI/Commands/ResetCommand.swift +0 -430
  304. package/Sources/RunicCLI/Commands/UsageLedgerSourceFactory.swift +0 -167
  305. package/Sources/RunicClaudeWatchdog/main.swift +0 -122
  306. package/Sources/RunicClaudeWebProbe/main.swift +0 -62
  307. package/Sources/RunicCore/AlertRuleStore.swift +0 -187
  308. package/Sources/RunicCore/BrowserCookieImportOrder.swift +0 -25
  309. package/Sources/RunicCore/CopilotUsageModels.swift +0 -84
  310. package/Sources/RunicCore/CostUsageFetcher.swift +0 -119
  311. package/Sources/RunicCore/CostUsageModels.swift +0 -479
  312. package/Sources/RunicCore/CreditsModels.swift +0 -50
  313. package/Sources/RunicCore/CustomProviders/CustomProviderModels.swift +0 -268
  314. package/Sources/RunicCore/CustomProviders/GenericProviderFetcher.swift +0 -631
  315. package/Sources/RunicCore/CustomProviders/ProviderTemplates.swift +0 -444
  316. package/Sources/RunicCore/Host/PTY/TTYCommandRunner.swift +0 -679
  317. package/Sources/RunicCore/Host/Process/SubprocessRunner.swift +0 -135
  318. package/Sources/RunicCore/Integrations/GitHubIntegration.swift +0 -173
  319. package/Sources/RunicCore/Logging/JSONStderrLogHandler.swift +0 -79
  320. package/Sources/RunicCore/Logging/OSLogLogHandler.swift +0 -86
  321. package/Sources/RunicCore/Logging/RunicLog.swift +0 -123
  322. package/Sources/RunicCore/Models/EnhancedUsageModels.swift +0 -370
  323. package/Sources/RunicCore/OpenAIDashboardModels.swift +0 -210
  324. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardBrowserCookieImporter.swift +0 -676
  325. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardFetcher.swift +0 -492
  326. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardNavigationDelegate.swift +0 -51
  327. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardParser.swift +0 -483
  328. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardScrapeScript.swift +0 -558
  329. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebViewCache.swift +0 -204
  330. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebsiteDataStore.swift +0 -78
  331. package/Sources/RunicCore/PathEnvironment.swift +0 -482
  332. package/Sources/RunicCore/Performance/PerformanceModels.swift +0 -371
  333. package/Sources/RunicCore/Performance/PerformanceStorageImpl.swift +0 -426
  334. package/Sources/RunicCore/Policy/UsagePolicyEngine.swift +0 -178
  335. package/Sources/RunicCore/ProjectBudgetStore.swift +0 -102
  336. package/Sources/RunicCore/ProviderCostSnapshot.swift +0 -29
  337. package/Sources/RunicCore/Providers/Antigravity/AntigravityProviderDescriptor.swift +0 -68
  338. package/Sources/RunicCore/Providers/Antigravity/AntigravityStatusProbe.swift +0 -685
  339. package/Sources/RunicCore/Providers/Auggie/AuggieProviderDescriptor.swift +0 -83
  340. package/Sources/RunicCore/Providers/Auggie/AuggieUsageFetcher.swift +0 -142
  341. package/Sources/RunicCore/Providers/Azure/AzureProviderDescriptor.swift +0 -141
  342. package/Sources/RunicCore/Providers/Azure/AzureUsageFetcher.swift +0 -188
  343. package/Sources/RunicCore/Providers/Bedrock/BedrockProviderDescriptor.swift +0 -126
  344. package/Sources/RunicCore/Providers/Bedrock/BedrockUsageFetcher.swift +0 -164
  345. package/Sources/RunicCore/Providers/Cerebras/CerebrasProviderDescriptor.swift +0 -84
  346. package/Sources/RunicCore/Providers/Cerebras/CerebrasUsageFetcher.swift +0 -75
  347. package/Sources/RunicCore/Providers/Claude/ClaudeCLISession.swift +0 -332
  348. package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthCredentials.swift +0 -180
  349. package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthUsageFetcher.swift +0 -137
  350. package/Sources/RunicCore/Providers/Claude/ClaudeProviderDescriptor.swift +0 -209
  351. package/Sources/RunicCore/Providers/Claude/ClaudeStatusProbe.swift +0 -654
  352. package/Sources/RunicCore/Providers/Claude/ClaudeUsageDataSource.swift +0 -30
  353. package/Sources/RunicCore/Providers/Claude/ClaudeUsageFetcher.swift +0 -480
  354. package/Sources/RunicCore/Providers/Claude/ClaudeWeb/ClaudeWebAPIFetcher.swift +0 -780
  355. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthCredentials.swift +0 -147
  356. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthUsageFetcher.swift +0 -280
  357. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexTokenRefresher.swift +0 -100
  358. package/Sources/RunicCore/Providers/Codex/CodexProviderDescriptor.swift +0 -245
  359. package/Sources/RunicCore/Providers/Codex/CodexStatusProbe.swift +0 -125
  360. package/Sources/RunicCore/Providers/Codex/CodexUsageDataSource.swift +0 -26
  361. package/Sources/RunicCore/Providers/Codex/CodexWebDashboardStrategy.swift +0 -183
  362. package/Sources/RunicCore/Providers/Cohere/CohereProviderDescriptor.swift +0 -83
  363. package/Sources/RunicCore/Providers/Cohere/CohereUsageFetcher.swift +0 -85
  364. package/Sources/RunicCore/Providers/Copilot/CopilotDeviceFlow.swift +0 -123
  365. package/Sources/RunicCore/Providers/Copilot/CopilotGitHubCLITokenReader.swift +0 -117
  366. package/Sources/RunicCore/Providers/Copilot/CopilotProviderDescriptor.swift +0 -100
  367. package/Sources/RunicCore/Providers/Copilot/CopilotUsageFetcher.swift +0 -293
  368. package/Sources/RunicCore/Providers/Copilot/CopilotVSCodeTokenReader.swift +0 -385
  369. package/Sources/RunicCore/Providers/Cursor/CursorProviderDescriptor.swift +0 -67
  370. package/Sources/RunicCore/Providers/Cursor/CursorStatusProbe.swift +0 -595
  371. package/Sources/RunicCore/Providers/DeepSeek/DeepSeekProviderDescriptor.swift +0 -85
  372. package/Sources/RunicCore/Providers/DeepSeek/DeepSeekUsageFetcher.swift +0 -108
  373. package/Sources/RunicCore/Providers/Factory/FactoryLocalStorageImporter.swift +0 -398
  374. package/Sources/RunicCore/Providers/Factory/FactoryProviderDescriptor.swift +0 -67
  375. package/Sources/RunicCore/Providers/Factory/FactoryStatusProbe.swift +0 -1276
  376. package/Sources/RunicCore/Providers/Fireworks/FireworksProviderDescriptor.swift +0 -84
  377. package/Sources/RunicCore/Providers/Fireworks/FireworksUsageFetcher.swift +0 -75
  378. package/Sources/RunicCore/Providers/Gemini/GeminiProviderDescriptor.swift +0 -67
  379. package/Sources/RunicCore/Providers/Gemini/GeminiStatusProbe.swift +0 -839
  380. package/Sources/RunicCore/Providers/Groq/GroqProviderDescriptor.swift +0 -83
  381. package/Sources/RunicCore/Providers/Groq/GroqUsageFetcher.swift +0 -71
  382. package/Sources/RunicCore/Providers/Kimi/KimiProviderDescriptor.swift +0 -83
  383. package/Sources/RunicCore/Providers/Kimi/KimiUsageFetcher.swift +0 -77
  384. package/Sources/RunicCore/Providers/MiniMax/MiniMaxProviderDescriptor.swift +0 -97
  385. package/Sources/RunicCore/Providers/MiniMax/MiniMaxSettingsReader.swift +0 -54
  386. package/Sources/RunicCore/Providers/MiniMax/MiniMaxUsageFetcher.swift +0 -168
  387. package/Sources/RunicCore/Providers/MiniMax/MiniMaxWebUsageFetcher.swift +0 -911
  388. package/Sources/RunicCore/Providers/Mistral/MistralProviderDescriptor.swift +0 -84
  389. package/Sources/RunicCore/Providers/Mistral/MistralUsageFetcher.swift +0 -75
  390. package/Sources/RunicCore/Providers/OpenRouter/OpenRouterProviderDescriptor.swift +0 -87
  391. package/Sources/RunicCore/Providers/OpenRouter/OpenRouterUsageFetcher.swift +0 -216
  392. package/Sources/RunicCore/Providers/Perplexity/PerplexityProviderDescriptor.swift +0 -84
  393. package/Sources/RunicCore/Providers/Perplexity/PerplexityUsageFetcher.swift +0 -75
  394. package/Sources/RunicCore/Providers/ProviderBranding.swift +0 -25
  395. package/Sources/RunicCore/Providers/ProviderCLIConfig.swift +0 -17
  396. package/Sources/RunicCore/Providers/ProviderDescriptor.swift +0 -129
  397. package/Sources/RunicCore/Providers/ProviderFetchPlan.swift +0 -263
  398. package/Sources/RunicCore/Providers/ProviderSettingsSnapshot.swift +0 -98
  399. package/Sources/RunicCore/Providers/ProviderTokenResolver.swift +0 -501
  400. package/Sources/RunicCore/Providers/ProviderVersionDetector.swift +0 -68
  401. package/Sources/RunicCore/Providers/Providers.swift +0 -184
  402. package/Sources/RunicCore/Providers/Qwen/QwenProviderDescriptor.swift +0 -86
  403. package/Sources/RunicCore/Providers/Qwen/QwenSettingsReader.swift +0 -30
  404. package/Sources/RunicCore/Providers/Qwen/QwenUsageStats.swift +0 -328
  405. package/Sources/RunicCore/Providers/SambaNova/SambaNovaProviderDescriptor.swift +0 -84
  406. package/Sources/RunicCore/Providers/SambaNova/SambaNovaUsageFetcher.swift +0 -75
  407. package/Sources/RunicCore/Providers/Together/TogetherProviderDescriptor.swift +0 -83
  408. package/Sources/RunicCore/Providers/Together/TogetherUsageFetcher.swift +0 -75
  409. package/Sources/RunicCore/Providers/VertexAI/VertexAIProviderDescriptor.swift +0 -123
  410. package/Sources/RunicCore/Providers/VertexAI/VertexAISettingsReader.swift +0 -48
  411. package/Sources/RunicCore/Providers/VertexAI/VertexAIUsageFetcher.swift +0 -144
  412. package/Sources/RunicCore/Providers/XAI/XAIProviderDescriptor.swift +0 -83
  413. package/Sources/RunicCore/Providers/XAI/XAIUsageFetcher.swift +0 -75
  414. package/Sources/RunicCore/Providers/Zai/ZaiProviderDescriptor.swift +0 -74
  415. package/Sources/RunicCore/Providers/Zai/ZaiSettingsReader.swift +0 -41
  416. package/Sources/RunicCore/Providers/Zai/ZaiUsageStats.swift +0 -745
  417. package/Sources/RunicCore/Sync/BackgroundSyncManager.swift +0 -384
  418. package/Sources/RunicCore/Sync/SyncConflictResolver.swift +0 -307
  419. package/Sources/RunicCore/Sync/SyncProtocol.swift +0 -287
  420. package/Sources/RunicCore/Sync/SyncRecord.swift +0 -402
  421. package/Sources/RunicCore/Sync/SyncUsageExample.swift +0 -288
  422. package/Sources/RunicCore/Sync/TeamSyncRecords.swift +0 -768
  423. package/Sources/RunicCore/Sync/iCloudSyncEngine.swift +0 -338
  424. package/Sources/RunicCore/Team/TeamModels.swift +0 -584
  425. package/Sources/RunicCore/Team/TeamShowbackExporter.swift +0 -495
  426. package/Sources/RunicCore/Team/TeamStore.swift +0 -809
  427. package/Sources/RunicCore/TextParsing.swift +0 -55
  428. package/Sources/RunicCore/UsageFetcher.swift +0 -694
  429. package/Sources/RunicCore/UsageFormatter.swift +0 -410
  430. package/Sources/RunicCore/UsageLedger/ClaudeUsageLogSource.swift +0 -441
  431. package/Sources/RunicCore/UsageLedger/CodexUsageLogSource.swift +0 -502
  432. package/Sources/RunicCore/UsageLedger/LedgerCache.swift +0 -161
  433. package/Sources/RunicCore/UsageLedger/OTelGenAILedgerAdapter.swift +0 -550
  434. package/Sources/RunicCore/UsageLedger/UsageLedger.swift +0 -29
  435. package/Sources/RunicCore/UsageLedger/UsageLedgerAggregator.swift +0 -675
  436. package/Sources/RunicCore/UsageLedger/UsageLedgerInsightsAdvisor.swift +0 -209
  437. package/Sources/RunicCore/UsageLedger/UsageLedgerModels.swift +0 -417
  438. package/Sources/RunicCore/UsageLedger/UsageLedgerProjectIdentity.swift +0 -284
  439. package/Sources/RunicCore/UsagePace.swift +0 -81
  440. package/Sources/RunicCore/Vendored/CostUsage/CostUsageCache.swift +0 -73
  441. package/Sources/RunicCore/Vendored/CostUsage/CostUsageJsonl.swift +0 -74
  442. package/Sources/RunicCore/Vendored/CostUsage/CostUsagePricing.swift +0 -208
  443. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Claude.swift +0 -455
  444. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Timestamp.swift +0 -132
  445. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner.swift +0 -589
  446. package/Sources/RunicCore/WidgetSnapshot.swift +0 -183
  447. package/Sources/RunicMacroSupport/ProviderRegistrationMacros.swift +0 -14
  448. package/Sources/RunicMacros/ProviderRegistrationMacros.swift +0 -216
  449. package/Sources/RunicWidget/RunicWidgetBundle.swift +0 -79
  450. package/Sources/RunicWidget/RunicWidgetProvider.swift +0 -283
  451. package/Sources/RunicWidget/RunicWidgetViews.swift +0 -680
  452. package/Tests/RunicTests/AntigravityStatusProbeTests.swift +0 -50
  453. package/Tests/RunicTests/AppDelegateTests.swift +0 -48
  454. package/Tests/RunicTests/BrowserCookieOrderLabelTests.swift +0 -21
  455. package/Tests/RunicTests/CLIArgumentParsingTests.swift +0 -69
  456. package/Tests/RunicTests/CLICostTests.swift +0 -64
  457. package/Tests/RunicTests/CLIProviderSelectionTests.swift +0 -21
  458. package/Tests/RunicTests/CLISnapshotTests.swift +0 -71
  459. package/Tests/RunicTests/CLIWebFallbackTests.swift +0 -57
  460. package/Tests/RunicTests/ClaudeOAuthTests.swift +0 -163
  461. package/Tests/RunicTests/ClaudeResilienceTests.swift +0 -29
  462. package/Tests/RunicTests/ClaudeUsageTests.swift +0 -369
  463. package/Tests/RunicTests/CodexOAuthTests.swift +0 -121
  464. package/Tests/RunicTests/CodexUsageLogSourceTests.swift +0 -80
  465. package/Tests/RunicTests/CopilotTokenResolverTests.swift +0 -74
  466. package/Tests/RunicTests/CopilotVSCodeTokenReaderTests.swift +0 -74
  467. package/Tests/RunicTests/CostUsageDecodingTests.swift +0 -392
  468. package/Tests/RunicTests/CostUsagePricingTests.swift +0 -48
  469. package/Tests/RunicTests/CostUsageScannerTests.swift +0 -698
  470. package/Tests/RunicTests/CursorStatusProbeTests.swift +0 -322
  471. package/Tests/RunicTests/FactoryStatusProbeTests.swift +0 -67
  472. package/Tests/RunicTests/GeminiAPITestHelpers.swift +0 -94
  473. package/Tests/RunicTests/GeminiLoginAlertTests.swift +0 -27
  474. package/Tests/RunicTests/GeminiStatusProbeAPITests.swift +0 -283
  475. package/Tests/RunicTests/GeminiStatusProbePlanTests.swift +0 -279
  476. package/Tests/RunicTests/GeminiStatusProbeTests.swift +0 -232
  477. package/Tests/RunicTests/GeminiTestEnvironment.swift +0 -87
  478. package/Tests/RunicTests/GoogleWorkspaceStatusTests.swift +0 -72
  479. package/Tests/RunicTests/InstallOriginTests.swift +0 -17
  480. package/Tests/RunicTests/KeyboardShortcutsBundleTests.swift +0 -9
  481. package/Tests/RunicTests/LiveAccountTests.swift +0 -24
  482. package/Tests/RunicTests/LoadingPatternTests.swift +0 -34
  483. package/Tests/RunicTests/MenuCardModelTests.swift +0 -544
  484. package/Tests/RunicTests/MiniMaxCookieHeaderStoreTestSupport.swift +0 -11
  485. package/Tests/RunicTests/MiniMaxGroupIDStoreTestSupport.swift +0 -11
  486. package/Tests/RunicTests/MiniMaxParsingTests.swift +0 -67
  487. package/Tests/RunicTests/MiniMaxTokenStoreTestSupport.swift +0 -11
  488. package/Tests/RunicTests/OTelGenAILedgerAdapterTests.swift +0 -110
  489. package/Tests/RunicTests/OpenAIDashboardBrowserCookieImporterTests.swift +0 -16
  490. package/Tests/RunicTests/OpenAIDashboardFetcherCreditsWaitTests.swift +0 -74
  491. package/Tests/RunicTests/OpenAIDashboardOffscreenHostTests.swift +0 -26
  492. package/Tests/RunicTests/OpenAIDashboardParserTests.swift +0 -133
  493. package/Tests/RunicTests/OpenAIWebAccountSwitchTests.swift +0 -64
  494. package/Tests/RunicTests/OpenRouterTokenStoreTestSupport.swift +0 -131
  495. package/Tests/RunicTests/PathBuilderTests.swift +0 -236
  496. package/Tests/RunicTests/ProviderFetchPipelineTests.swift +0 -159
  497. package/Tests/RunicTests/ProviderIconResourcesTests.swift +0 -37
  498. package/Tests/RunicTests/ProviderMetadataStatusLinkTests.swift +0 -15
  499. package/Tests/RunicTests/ProviderRegistryTests.swift +0 -29
  500. package/Tests/RunicTests/ProviderSettingsDescriptorTests.swift +0 -236
  501. package/Tests/RunicTests/ProviderToggleStoreTests.swift +0 -50
  502. package/Tests/RunicTests/RunicTests.swift +0 -119
  503. package/Tests/RunicTests/SessionQuotaNotificationLogicTests.swift +0 -35
  504. package/Tests/RunicTests/SettingsStoreTests.swift +0 -265
  505. package/Tests/RunicTests/StatusItemAnimationTests.swift +0 -54
  506. package/Tests/RunicTests/StatusMenuTests.swift +0 -475
  507. package/Tests/RunicTests/StatusProbeTests.swift +0 -376
  508. package/Tests/RunicTests/SubprocessRunnerTests.swift +0 -18
  509. package/Tests/RunicTests/SubscriptionDetectionTests.swift +0 -64
  510. package/Tests/RunicTests/TTYCommandRunnerTests.swift +0 -147
  511. package/Tests/RunicTests/TTYIntegrationTests.swift +0 -41
  512. package/Tests/RunicTests/TeamShowbackExporterTests.swift +0 -157
  513. package/Tests/RunicTests/TextParsingTests.swift +0 -11
  514. package/Tests/RunicTests/UsageFormatterTests.swift +0 -111
  515. package/Tests/RunicTests/UsageLedgerAnomalyDetectionTests.swift +0 -170
  516. package/Tests/RunicTests/UsageLedgerForecastTests.swift +0 -211
  517. package/Tests/RunicTests/UsageLedgerInsightsAdvisorTests.swift +0 -81
  518. package/Tests/RunicTests/UsageLedgerProjectNameTests.swift +0 -168
  519. package/Tests/RunicTests/UsagePaceTests.swift +0 -76
  520. package/Tests/RunicTests/UsagePaceTextTests.swift +0 -108
  521. package/Tests/RunicTests/UsagePolicyEngineTests.swift +0 -89
  522. package/Tests/RunicTests/WidgetSnapshotTests.swift +0 -43
  523. package/Tests/RunicTests/ZaiProviderTests.swift +0 -59
  524. package/Tests/RunicTests/ZaiTokenStoreTestSupport.swift +0 -9
  525. package/TestsLinux/PlatformGatingTests.swift +0 -46
  526. package/appcast.xml +0 -104
  527. package/assets/logo-concept-stack.svg +0 -24
  528. package/assets/logo-minimal-bars.svg +0 -15
  529. package/assets/logo.svg +0 -20
  530. package/assets/logo2.svg +0 -43
  531. package/bin/docs-list +0 -5
  532. package/build-and-run.sh +0 -369
  533. package/docs/.nojekyll +0 -1
  534. package/docs/CNAME +0 -1
  535. package/docs/antigravity.md +0 -75
  536. package/docs/architecture.md +0 -32
  537. package/docs/claude.md +0 -93
  538. package/docs/cli-commands/integration_guide.md +0 -371
  539. package/docs/cli-commands/quick_reference.md +0 -362
  540. package/docs/cli-commands/readme.md +0 -361
  541. package/docs/cli.md +0 -156
  542. package/docs/cloudkit_sync_guide.md +0 -495
  543. package/docs/codebase_review.md +0 -288
  544. package/docs/codex-oauth.md +0 -635
  545. package/docs/codex.md +0 -104
  546. package/docs/codexbar.png +0 -0
  547. package/docs/copilot.md +0 -44
  548. package/docs/cursor.md +0 -46
  549. package/docs/design/designcomparisonchart.md +0 -510
  550. package/docs/design/implementationguide.md +0 -792
  551. package/docs/design/menubaricondesignconcepts.md +0 -796
  552. package/docs/design/mockups/hybridiconconcept.svg +0 -62
  553. package/docs/design/mockups/infinityiconconcept.svg +0 -41
  554. package/docs/design/mockups/infinityiconstates.svg +0 -129
  555. package/docs/design/mockups/wavelogorefined.svg +0 -48
  556. package/docs/design/quick_summary.md +0 -426
  557. package/docs/design/readme.md +0 -478
  558. package/docs/design/sizespecifications.md +0 -575
  559. package/docs/design-system.md +0 -836
  560. package/docs/factory.md +0 -103
  561. package/docs/gemini.md +0 -73
  562. package/docs/icon.md +0 -37
  563. package/docs/icon.png +0 -0
  564. package/docs/index.html +0 -175
  565. package/docs/keychain_fix.md +0 -274
  566. package/docs/minimax.md +0 -71
  567. package/docs/packaging.md +0 -25
  568. package/docs/progress-bar-improvements.md +0 -240
  569. package/docs/progress-bar-quick-reference.md +0 -283
  570. package/docs/progress-bar-technical-details.md +0 -432
  571. package/docs/progress-bar-visual-test.swift +0 -375
  572. package/docs/provider.md +0 -202
  573. package/docs/providers.md +0 -86
  574. package/docs/refactor/macros.md +0 -35
  575. package/docs/refresh-loop.md +0 -22
  576. package/docs/releasing-homebrew.md +0 -35
  577. package/docs/releasing.md +0 -121
  578. package/docs/research/concrete_todo_2026-02-22.md +0 -47
  579. package/docs/research/core-feature-research.md +0 -248
  580. package/docs/research/feature_uiux_roadmap_2026-02-22.md +0 -202
  581. package/docs/research/parity_matrix.md +0 -49
  582. package/docs/research/provider_expansion_candidates_2026-02-22.md +0 -80
  583. package/docs/research/provider_model_token_project_matrix_2026-02-23.md +0 -46
  584. package/docs/research/release_gate_checklist.md +0 -57
  585. package/docs/site.css +0 -505
  586. package/docs/sparkle.md +0 -28
  587. package/docs/status.md +0 -28
  588. package/docs/sync/implementation.md +0 -393
  589. package/docs/sync/readme.md +0 -317
  590. package/docs/sync_files_summary.md +0 -391
  591. package/docs/sync_quick_reference.md +0 -225
  592. package/docs/todo.md +0 -11
  593. package/docs/ui.md +0 -29
  594. package/docs/web-integration.md +0 -9
  595. package/docs/widgets.md +0 -85
  596. package/docs/workflows/error-handling-improvements.md +0 -434
  597. package/docs/workflows/folder_structure.md +0 -299
  598. package/docs/workflows/loading_states.md +0 -446
  599. package/docs/workflows/loading_states_examples.md +0 -565
  600. package/docs/workflows/loading_states_flow.md +0 -430
  601. package/docs/workflows/performance_optimizations.md +0 -457
  602. package/docs/workflows/phase1-cli-testing-report.md +0 -313
  603. package/docs/workflows/quick_reference.md +0 -228
  604. package/docs/workflows/readme.md +0 -59
  605. package/docs/workflows/recent_improvements.md +0 -275
  606. package/docs/workflows/sync_enablement_summary.md +0 -400
  607. package/docs/zai.md +0 -43
  608. package/runic.png +0 -0
  609. package/runic.svg +0 -15
  610. package/version.env +0 -2
@@ -1,375 +0,0 @@
1
- import SwiftUI
2
-
3
- /// Visual test cases for the improved UsageProgressBar
4
- /// Copy this into a SwiftUI preview or test view to see all variants
5
-
6
- struct ProgressBarShowcase: View {
7
- var body: some View {
8
- VStack(alignment: .leading, spacing: 32) {
9
- Text("UsageProgressBar Improvements")
10
- .font(.title.bold())
11
-
12
- // MARK: - Height Variants
13
- VStack(alignment: .leading, spacing: 16) {
14
- Text("Height Variants")
15
- .font(.headline)
16
-
17
- VStack(alignment: .leading, spacing: 8) {
18
- Text("Compact (6pt) - Team member rows")
19
- .font(.caption)
20
- .foregroundStyle(.secondary)
21
- UsageProgressBar(
22
- percent: 75,
23
- tint: .blue,
24
- accessibilityLabel: "Compact example",
25
- height: .compact)
26
-
27
- Text("Regular (8pt) - Default menu cards")
28
- .font(.caption)
29
- .foregroundStyle(.secondary)
30
- UsageProgressBar(
31
- percent: 60,
32
- tint: .green,
33
- accessibilityLabel: "Regular example",
34
- height: .regular)
35
-
36
- Text("Large (10pt) - Dashboard hero sections")
37
- .font(.caption)
38
- .foregroundStyle(.secondary)
39
- UsageProgressBar(
40
- percent: 85,
41
- tint: .orange,
42
- accessibilityLabel: "Large example",
43
- height: .large)
44
- }
45
- }
46
-
47
- Divider()
48
-
49
- // MARK: - Percentage Variants
50
- VStack(alignment: .leading, spacing: 16) {
51
- Text("Different Percentages (Regular)")
52
- .font(.headline)
53
-
54
- VStack(alignment: .leading, spacing: 8) {
55
- HStack {
56
- Text("10%")
57
- .font(.caption.monospacedDigit())
58
- .frame(width: 50, alignment: .trailing)
59
- UsageProgressBar(
60
- percent: 10,
61
- tint: .green,
62
- accessibilityLabel: "10 percent")
63
- }
64
-
65
- HStack {
66
- Text("25%")
67
- .font(.caption.monospacedDigit())
68
- .frame(width: 50, alignment: .trailing)
69
- UsageProgressBar(
70
- percent: 25,
71
- tint: .green,
72
- accessibilityLabel: "25 percent")
73
- }
74
-
75
- HStack {
76
- Text("50%")
77
- .font(.caption.monospacedDigit())
78
- .frame(width: 50, alignment: .trailing)
79
- UsageProgressBar(
80
- percent: 50,
81
- tint: .blue,
82
- accessibilityLabel: "50 percent")
83
- }
84
-
85
- HStack {
86
- Text("75%")
87
- .font(.caption.monospacedDigit())
88
- .frame(width: 50, alignment: .trailing)
89
- UsageProgressBar(
90
- percent: 75,
91
- tint: .orange,
92
- accessibilityLabel: "75 percent")
93
- }
94
-
95
- HStack {
96
- Text("90%")
97
- .font(.caption.monospacedDigit())
98
- .frame(width: 50, alignment: .trailing)
99
- UsageProgressBar(
100
- percent: 90,
101
- tint: .red,
102
- accessibilityLabel: "90 percent")
103
- }
104
-
105
- HStack {
106
- Text("100%")
107
- .font(.caption.monospacedDigit())
108
- .frame(width: 50, alignment: .trailing)
109
- UsageProgressBar(
110
- percent: 100,
111
- tint: .red,
112
- accessibilityLabel: "100 percent")
113
- }
114
- }
115
- }
116
-
117
- Divider()
118
-
119
- // MARK: - Color Variants
120
- VStack(alignment: .leading, spacing: 16) {
121
- Text("Color Variants")
122
- .font(.headline)
123
-
124
- VStack(alignment: .leading, spacing: 8) {
125
- HStack {
126
- Text("Blue")
127
- .font(.caption)
128
- .frame(width: 80, alignment: .leading)
129
- UsageProgressBar(
130
- percent: 65,
131
- tint: .blue,
132
- accessibilityLabel: "Blue")
133
- }
134
-
135
- HStack {
136
- Text("Green")
137
- .font(.caption)
138
- .frame(width: 80, alignment: .leading)
139
- UsageProgressBar(
140
- percent: 45,
141
- tint: .green,
142
- accessibilityLabel: "Green")
143
- }
144
-
145
- HStack {
146
- Text("Orange")
147
- .font(.caption)
148
- .frame(width: 80, alignment: .leading)
149
- UsageProgressBar(
150
- percent: 75,
151
- tint: .orange,
152
- accessibilityLabel: "Orange")
153
- }
154
-
155
- HStack {
156
- Text("Red")
157
- .font(.caption)
158
- .frame(width: 80, alignment: .leading)
159
- UsageProgressBar(
160
- percent: 90,
161
- tint: .red,
162
- accessibilityLabel: "Red")
163
- }
164
-
165
- HStack {
166
- Text("Purple")
167
- .font(.caption)
168
- .frame(width: 80, alignment: .leading)
169
- UsageProgressBar(
170
- percent: 55,
171
- tint: .purple,
172
- accessibilityLabel: "Purple")
173
- }
174
-
175
- HStack {
176
- Text("Custom")
177
- .font(.caption)
178
- .frame(width: 80, alignment: .leading)
179
- UsageProgressBar(
180
- percent: 70,
181
- tint: Color(red: 0.3, green: 0.7, blue: 0.9),
182
- accessibilityLabel: "Custom color")
183
- }
184
- }
185
- }
186
-
187
- Divider()
188
-
189
- // MARK: - Animation Demo
190
- VStack(alignment: .leading, spacing: 16) {
191
- Text("Animation Test")
192
- .font(.headline)
193
-
194
- AnimatedProgressDemo()
195
- }
196
-
197
- Divider()
198
-
199
- // MARK: - Real-World Examples
200
- VStack(alignment: .leading, spacing: 16) {
201
- Text("Real-World Examples")
202
- .font(.headline)
203
-
204
- // API Usage Card
205
- VStack(alignment: .leading, spacing: 8) {
206
- HStack {
207
- Text("API Usage")
208
- .font(.body.weight(.medium))
209
- Spacer()
210
- Text("1,234 / 2,000")
211
- .font(.caption)
212
- .foregroundStyle(.secondary)
213
- }
214
-
215
- UsageProgressBar(
216
- percent: 61.7,
217
- tint: .blue,
218
- accessibilityLabel: "API usage")
219
-
220
- HStack {
221
- Text("61.7% used")
222
- .font(.caption)
223
- Spacer()
224
- Text("Resets in 12 days")
225
- .font(.caption)
226
- .foregroundStyle(.secondary)
227
- }
228
- }
229
- .padding()
230
- .background(
231
- RoundedRectangle(cornerRadius: 8, style: .continuous)
232
- .fill(Color(nsColor: .controlBackgroundColor)))
233
-
234
- // Budget Tracking
235
- VStack(alignment: .leading, spacing: 8) {
236
- HStack {
237
- Text("Project Budget")
238
- .font(.body.weight(.medium))
239
- Spacer()
240
- Text("$45 / $50")
241
- .font(.caption)
242
- .foregroundStyle(.secondary)
243
- }
244
-
245
- UsageProgressBar(
246
- percent: 90,
247
- tint: .orange,
248
- accessibilityLabel: "Budget usage")
249
-
250
- HStack {
251
- Text("90% spent")
252
- .font(.caption)
253
- .foregroundStyle(.orange)
254
- Spacer()
255
- Text("Near limit")
256
- .font(.caption)
257
- .foregroundStyle(.orange)
258
- .fontWeight(.medium)
259
- }
260
- }
261
- .padding()
262
- .background(
263
- RoundedRectangle(cornerRadius: 8, style: .continuous)
264
- .fill(Color(nsColor: .controlBackgroundColor)))
265
-
266
- // Team Member Quota
267
- HStack(spacing: 12) {
268
- Circle()
269
- .fill(.blue)
270
- .frame(width: 36, height: 36)
271
- .overlay {
272
- Text("JD")
273
- .font(.footnote.weight(.semibold))
274
- .foregroundStyle(.white)
275
- }
276
-
277
- VStack(alignment: .leading, spacing: 4) {
278
- Text("John Doe")
279
- .font(.body.weight(.medium))
280
-
281
- HStack(spacing: 4) {
282
- Text("8,500 / 10,000")
283
- .font(.caption2)
284
- .foregroundStyle(.secondary)
285
-
286
- UsageProgressBar(
287
- percent: 85,
288
- tint: .red,
289
- accessibilityLabel: "John Doe quota",
290
- height: .compact)
291
- .frame(maxWidth: 100)
292
- }
293
- }
294
- }
295
- .padding()
296
- .background(
297
- RoundedRectangle(cornerRadius: 8, style: .continuous)
298
- .fill(Color(nsColor: .controlBackgroundColor)))
299
- }
300
- }
301
- .padding(32)
302
- .frame(width: 500)
303
- }
304
- }
305
-
306
- /// Demonstrates the smooth spring animation
307
- private struct AnimatedProgressDemo: View {
308
- @State private var percent: Double = 0
309
-
310
- var body: some View {
311
- VStack(alignment: .leading, spacing: 8) {
312
- Text("Spring animation (tap to randomize)")
313
- .font(.caption)
314
- .foregroundStyle(.secondary)
315
-
316
- UsageProgressBar(
317
- percent: self.percent,
318
- tint: .purple,
319
- accessibilityLabel: "Animation demo")
320
- .onTapGesture {
321
- self.percent = Double.random(in: 10...100)
322
- }
323
-
324
- HStack {
325
- Button("0%") { self.percent = 0 }
326
- .buttonStyle(.bordered)
327
- .controlSize(.mini)
328
- Button("25%") { self.percent = 25 }
329
- .buttonStyle(.bordered)
330
- .controlSize(.mini)
331
- Button("50%") { self.percent = 50 }
332
- .buttonStyle(.bordered)
333
- .controlSize(.mini)
334
- Button("75%") { self.percent = 75 }
335
- .buttonStyle(.bordered)
336
- .controlSize(.mini)
337
- Button("100%") { self.percent = 100 }
338
- .buttonStyle(.bordered)
339
- .controlSize(.mini)
340
- }
341
- }
342
- }
343
- }
344
-
345
- // MARK: - Preview
346
-
347
- #Preview {
348
- ProgressBarShowcase()
349
- }
350
-
351
- // MARK: - Usage Instructions
352
-
353
- /*
354
- To test the improved progress bar:
355
-
356
- 1. Create a new SwiftUI view in Xcode
357
- 2. Copy this entire file content
358
- 3. Use the #Preview to see all variants
359
- 4. Test the animation by clicking buttons
360
- 5. Verify VoiceOver reads percentages correctly
361
-
362
- Key improvements to observe:
363
- - Glossy top highlight (white gradient)
364
- - Subtle glow/shadow around filled portion
365
- - 3-color gradient for depth
366
- - Smooth spring animation (natural bounce)
367
- - Track border for definition
368
- - Three distinct size options
369
-
370
- Compare with the old version:
371
- - Smoother, more refined appearance
372
- - Better visual hierarchy
373
- - More professional and modern
374
- - Maintains accessibility
375
- */
package/docs/provider.md DELETED
@@ -1,202 +0,0 @@
1
- ---
2
- summary: "Provider authoring guide: shared host APIs, provider boundaries, and how to add a new provider."
3
- read_when:
4
- - Adding a new provider (usage + status + identity)
5
- - Refactoring provider architecture or shared host APIs
6
- - Reviewing provider boundaries (no identity leakage)
7
- ---
8
-
9
- # Provider authoring guide
10
-
11
- Goal: adding a provider should feel like:
12
- - add one folder
13
- - define one descriptor + strategies
14
- - add one implementation (UI hooks only)
15
- - done (tests + docs)
16
-
17
- This doc describes the **current provider architecture** (post-macro registry) and the exact steps to add a new provider.
18
-
19
- ## Terms
20
- - **Provider**: a source of usage/quota/status data (Codex, Claude, Gemini, Antigravity, Cursor, …).
21
- - **Descriptor**: the single source of truth for labels, URLs, defaults, and fetch strategies.
22
- - **Fetch strategy**: one concrete way to obtain usage (CLI, web cookies, OAuth API, local probe, etc.).
23
- - **Host APIs**: shared capabilities we provide to providers (Keychain, browser cookies, PTY, HTTP, WebView scrape, token-cost).
24
- - **Identity fields**: email/org/plan/loginMethod. Must stay **siloed per provider**.
25
-
26
- ## Architecture overview (now)
27
- - `Sources/RunicCore`: provider descriptors + fetch strategies + probes + parsing + shared utilities.
28
- - `Sources/Runic`: UI/state + provider implementations (settings/login/menu hooks only).
29
- - Provider IDs are compile-time: `UsageProvider` enum (used for persistence + widgets).
30
- - Provider wiring is descriptor-driven:
31
- - `ProviderDescriptor` owns labels, URLs, default enablement, and fetch pipeline.
32
- - `ProviderFetchStrategy` objects implement concrete fetch paths.
33
- - CLI + app both call the same descriptor/fetch pipeline.
34
-
35
- Common building blocks already exist:
36
- - PTY: `TTYCommandRunner`
37
- - subprocess: `SubprocessRunner`
38
- - cookie import: `BrowserCookieImporter` (Safari/Chrome/Firefox adapters)
39
- - OpenAI dashboard web scrape: `OpenAIDashboardFetcher` (WKWebView + JS)
40
- - cost usage: local log scanner (Codex + Claude)
41
-
42
- The old “switch provider” wiring is gone. Everything should be driven by the descriptor and its strategies.
43
-
44
- ## Provider descriptor (source of truth)
45
-
46
- Introduce a single descriptor per provider:
47
- - `id` (stable `UsageProvider`)
48
- - display/labels/URLs (menu title, dashboard URL, status URL)
49
- - UI branding (icon name, primary color)
50
- - capabilities (supportsCredits, supportsTokenCost, supportsStatusPolling, supportsLogin)
51
- - fetch plan (allowed `--source` modes + ordered strategy pipeline)
52
- - CLI metadata (cliName, aliases, version provider)
53
- - account behavior (e.g., `usesAccountFallback` for Codex auth.json)
54
-
55
- UI and settings should become descriptor-driven:
56
- - no provider-specific branching for labels/links/toggle titles
57
- - minimal provider-specific UI (only when a provider truly needs bespoke UX)
58
-
59
- ## Fetch strategies
60
-
61
- A provider declares a pipeline of strategies, in priority order. Each strategy:
62
- - advertises a `kind` (cli, web cookies, oauth, api token, local probe, web dashboard)
63
- - declares availability (checks settings, cookies, env vars, installed CLI)
64
- - fetches `UsageSnapshot` (and optional credits/dashboard)
65
- - can be filtered by CLI `--source` or app settings
66
-
67
- The pipeline resolves to the best available strategy, and falls back on failure when allowed.
68
- Each run returns a `ProviderFetchOutcome` with **attempts + errors** for debug UI and CLI `--verbose`.
69
-
70
- ## Host APIs are explicit, small, testable
71
- Expose a narrow set of protocols/structs that provider implementations can use:
72
- - `KeychainAPI`: read-only, allowlisted service/account pairs
73
- - `BrowserCookieAPI`: import cookies by domain list; returns cookie header + diagnostics
74
- - `PTYAPI`: run CLI interactions with timeouts + “send on substring” + stop rules
75
- - `HTTPAPI`: URLSession wrapper with domain allowlist + standard headers + tracing
76
- - `WebViewScrapeAPI`: WKWebView lease + `evaluateJavaScript` + snapshot dumping
77
- - `TokenCostAPI`: Cost Usage local-log integration (Codex/Claude today; extend later)
78
- - `StatusAPI`: status polling helpers (Statuspage + Workspace incidents)
79
- - `LoggerAPI`: scoped logger + redaction helpers
80
-
81
- Rule: providers do not talk to `FileManager`, `Security`, or “browser internals” directly unless they *are* the host API implementation.
82
-
83
- ## Provider-specific code layout
84
- - `Sources/RunicCore/Providers/<ProviderID>/`
85
- - `<ProviderID>Descriptor.swift` (descriptor + strategy pipeline)
86
- - `<ProviderID>Strategies.swift` (strategy implementations)
87
- - `<ProviderID>Probe.swift` / `<ProviderID>Fetcher.swift`
88
- - `<ProviderID>Models.swift`
89
- - `<ProviderID>Parser.swift` (if text/HTML parsing)
90
- - `Sources/Runic/Providers/<ProviderID>/`
91
- - `<ProviderID>ProviderImplementation.swift` (settings/login UI hooks only)
92
-
93
- ## Minimal provider example (copy-paste)
94
-
95
- ```swift
96
- import RunicMacroSupport
97
- import Foundation
98
-
99
- @ProviderDescriptorRegistration
100
- @ProviderDescriptorDefinition
101
- public enum ExampleProviderDescriptor {
102
- static func makeDescriptor() -> ProviderDescriptor {
103
- ProviderDescriptor(
104
- id: .example,
105
- metadata: ProviderMetadata(
106
- id: .example,
107
- displayName: "Example",
108
- sessionLabel: "Session",
109
- weeklyLabel: "Weekly",
110
- opusLabel: nil,
111
- supportsOpus: false,
112
- supportsCredits: false,
113
- creditsHint: "",
114
- toggleTitle: "Show Example usage",
115
- cliName: "example",
116
- defaultEnabled: false,
117
- isPrimaryProvider: false,
118
- usesAccountFallback: false,
119
- dashboardURL: nil,
120
- statusPageURL: nil),
121
- branding: ProviderBranding(
122
- iconStyle: .codex,
123
- iconResourceName: "ProviderIcon-example",
124
- color: ProviderColor(red: 0.2, green: 0.6, blue: 0.8)),
125
- tokenCost: ProviderTokenCostConfig(
126
- supportsTokenCost: false,
127
- noDataMessage: { "Example cost summary is not supported." }),
128
- fetchPlan: ProviderFetchPlan(
129
- sourceModes: [.auto, .cli],
130
- pipeline: ProviderFetchPipeline(resolveStrategies: { _ in [ExampleFetchStrategy()] })),
131
- cli: ProviderCLIConfig(
132
- name: "example",
133
- versionDetector: nil))
134
- }
135
- }
136
-
137
- struct ExampleFetchStrategy: ProviderFetchStrategy {
138
- let id: String = "example.cli"
139
- let kind: ProviderFetchKind = .cli
140
-
141
- func isAvailable(_: ProviderFetchContext) async -> Bool { true }
142
-
143
- func fetch(_: ProviderFetchContext) async throws -> ProviderFetchResult {
144
- let usage = UsageSnapshot(
145
- primary: .init(usedPercent: 0, windowMinutes: nil, resetsAt: nil, resetDescription: nil),
146
- secondary: nil,
147
- updatedAt: Date(),
148
- identity: nil)
149
- return self.makeResult(usage: usage, sourceLabel: "cli")
150
- }
151
-
152
- func shouldFallback(on _: Error, context _: ProviderFetchContext) -> Bool { false }
153
- }
154
- ```
155
-
156
- ## Guardrails (non-negotiable)
157
- - Identity silo: never display identity/plan fields from provider A inside provider B UI.
158
- - Privacy: default to on-device parsing; browser cookies are opt-in and never persisted by us beyond WebKit stores.
159
- - Reliability: providers must be timeout-bounded; no unbounded waits on network/PTY/UI.
160
- - Degradation: prefer cached data over flapping; show clear errors when stale.
161
-
162
- ## Adding a new provider (current flow)
163
-
164
- Checklist:
165
- - Add `UsageProvider` case in `Sources/RunicCore/Providers/Providers.swift`.
166
- - Create `Sources/RunicCore/Providers/<ProviderID>/`:
167
- - `<ProviderID>Descriptor.swift`: define `ProviderDescriptor` + fetch pipeline.
168
- - `<ProviderID>Strategies.swift`: implement one or more `ProviderFetchStrategy`.
169
- - `<ProviderID>Probe.swift` / `<ProviderID>Fetcher.swift`: concrete fetcher logic.
170
- - `<ProviderID>Models.swift`: snapshot structs.
171
- - `<ProviderID>Parser.swift` (if needed).
172
- - Attach `@ProviderDescriptorRegistration` + `@ProviderDescriptorDefinition` to the descriptor type.
173
- Implement `static func makeDescriptor() -> ProviderDescriptor`.
174
- - Attach `@ProviderImplementationRegistration` to the implementation type (macros auto-register).
175
- - No manual list edits.
176
- - Add `Sources/Runic/Providers/<ProviderID>/<ProviderID>ProviderImplementation.swift`:
177
- - `ProviderImplementation` only for settings/login UI hooks.
178
- - Add icons + color in descriptor:
179
- - `iconName` must match `ProviderIcon-<id>` asset.
180
- - Color used in menu cards + switcher.
181
- - If CLI-specific behavior is needed:
182
- - add `cliName`, `cliAliases`, `sourceModes`, `versionProvider` in descriptor.
183
- - strategies decide which `--source` modes apply.
184
- - Tests:
185
- - `UsageSnapshot` mapping unit tests
186
- - strategy availability + fallback tests
187
- - CLI provider parsing (aliases + --source validation)
188
- - Docs:
189
- - add provider section in `docs/providers.md` with data source + auth notes
190
- - update `docs/provider.md` if the pipeline model changes
191
-
192
- ## UI notes (Providers settings)
193
- Current: checkboxes per provider.
194
-
195
- Preferred direction: table/list rows (like a “sessions” table):
196
- - Provider (name + short auth hint)
197
- - Enabled toggle
198
- - Status (ok/stale/error + last updated)
199
- - Auth source (CLI / cookies / web / oauth) when applicable
200
- - Actions (Login / Diagnose / Copy debug log)
201
-
202
- This keeps the pane scannable once we have >5 providers.
package/docs/providers.md DELETED
@@ -1,86 +0,0 @@
1
- ---
2
- summary: "Provider data sources and parsing overview (Codex, Claude, Gemini, Antigravity, Cursor, Droid/Factory, MiniMax, z.ai, Copilot)."
3
- read_when:
4
- - Adding or modifying provider fetch/parsing
5
- - Adjusting provider labels, toggles, or metadata
6
- - Reviewing data sources for providers
7
- ---
8
-
9
- # Providers
10
-
11
- ## Fetch strategies (current)
12
- Legend: web (browser cookies/WebView), cli (RPC/PTy), oauth (API), api token, local probe, web dashboard.
13
- Source labels (CLI/header): `openai-web`, `web`, `oauth`, `api`, `local`, plus provider-specific CLI labels (e.g. `codex-cli`, `claude`).
14
-
15
- | Provider | Strategies (ordered for auto) |
16
- | --- | --- |
17
- | Codex | Web dashboard (`openai-web`) → CLI RPC/PTy (`codex-cli`); app uses CLI usage + optional dashboard scrape. |
18
- | Claude | OAuth API (`oauth`) → Web API (`web`) → CLI PTY (`claude`). |
19
- | Gemini | OAuth API via Gemini CLI credentials (`api`). |
20
- | Antigravity | Local LSP/HTTP probe (`local`). |
21
- | Cursor | Web API via cookies → stored WebKit session (`web`). |
22
- | Droid/Factory | Web cookies → stored tokens → local storage → WorkOS cookies (`web`). |
23
- | MiniMax | Web cookies + Chromium local storage token (`web`). |
24
- | z.ai | API token (Keychain/env) → quota API (`api`). |
25
- | Copilot | API token (device flow/env) → copilot_internal API (`api`). |
26
-
27
- ## Codex
28
- - Web dashboard (when enabled): `https://chatgpt.com/codex/settings/usage` via WebView + browser cookies.
29
- - CLI RPC default: `codex ... app-server` JSON-RPC (`account/read`, `account/rateLimits/read`).
30
- - CLI PTY fallback: `/status` scrape.
31
- - Local cost usage: scans `~/.codex/sessions/**/*.jsonl` (last 30 days).
32
- - Status: Statuspage.io (OpenAI).
33
- - Details: `docs/codex.md`.
34
-
35
- ## Claude
36
- - OAuth API (preferred when CLI credentials exist).
37
- - Web API (browser cookies) fallback when OAuth missing.
38
- - CLI PTY fallback when OAuth + web are unavailable.
39
- - Local cost usage: scans `~/.config/claude/projects/**/*.jsonl` (last 30 days).
40
- - Status: Statuspage.io (Anthropic).
41
- - Details: `docs/claude.md`.
42
-
43
- ## z.ai
44
- - API token from Keychain or `Z_AI_API_KEY` env var.
45
- - `GET https://api.z.ai/api/monitor/usage/quota/limit`.
46
- - Status: none yet.
47
- - Details: `docs/zai.md`.
48
-
49
- ## Gemini
50
- - OAuth-backed quota API (`retrieveUserQuota`) using Gemini CLI credentials.
51
- - Token refresh via Google OAuth if expired.
52
- - Tier detection via `loadCodeAssist`.
53
- - Status: Google Workspace incidents (Gemini product).
54
- - Details: `docs/gemini.md`.
55
-
56
- ## Antigravity
57
- - Local Antigravity language server (internal protocol, HTTPS on localhost).
58
- - `GetUserStatus` primary; `GetCommandModelConfigs` fallback.
59
- - Status: Google Workspace incidents (Gemini product).
60
- - Details: `docs/antigravity.md`.
61
-
62
- ## Cursor
63
- - Web API via browser cookies (`cursor.com` + `cursor.sh`).
64
- - Fallback: stored WebKit session.
65
- - Status: Statuspage.io (Cursor).
66
- - Details: `docs/cursor.md`.
67
-
68
- ## Droid (Factory)
69
- - Web API via Factory cookies, bearer tokens, and WorkOS refresh tokens.
70
- - Multiple fallback strategies (cookies → stored tokens → local storage → WorkOS cookies).
71
- - Status: `https://status.factory.ai`.
72
- - Details: `docs/factory.md`.
73
-
74
- ## MiniMax
75
- - Web-only. Uses browser cookies plus a Chromium local storage access token.
76
- - Primary endpoint: `https://platform.minimax.io/user-center/payment/coding-plan` (HTML parse).
77
- - Fallback endpoint: `https://platform.minimax.io/v1/api/openplatform/coding_plan/remains`.
78
- - Status: none yet.
79
- - Details: `docs/minimax.md`.
80
-
81
- ## Copilot
82
- - GitHub device flow OAuth token + `api.github.com/copilot_internal/user`.
83
- - Status: Statuspage.io (GitHub).
84
- - Details: `docs/copilot.md`.
85
-
86
- See also: `docs/provider.md` for architecture notes.