@sriinnu/runic 1.2.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 (586) hide show
  1. package/CHANGELOG.md +267 -0
  2. package/LICENSE +373 -21
  3. package/README.md +98 -84
  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/iOSUsageStore.swift +0 -192
  55. package/RuniciOS/Views/ProviderDetailView.swift +0 -312
  56. package/RuniciOS/Views/ProviderListView.swift +0 -228
  57. package/RuniciOS/Widgets/LargeWidget.swift +0 -367
  58. package/RuniciOS/Widgets/LiveActivity.swift +0 -342
  59. package/RuniciOS/Widgets/LockScreenWidget.swift +0 -273
  60. package/RuniciOS/Widgets/MediumWidget.swift +0 -370
  61. package/RuniciOS/Widgets/RunicWidget.swift +0 -274
  62. package/RuniciOS/Widgets/SmallWidget.swift +0 -281
  63. package/RuniciOS/Widgets/WidgetModels.swift +0 -285
  64. package/RuniciOS/Widgets/WidgetTimeline.swift +0 -270
  65. package/Scripts/CREATION-SUMMARY.md +0 -367
  66. package/Scripts/DIRECTORY-STRUCTURE.md +0 -358
  67. package/Scripts/GETTING-STARTED-CHECKLIST.md +0 -364
  68. package/Scripts/INDEX.md +0 -365
  69. package/Scripts/QUICK-REFERENCE.md +0 -164
  70. package/Scripts/README-SCRIPTS.md +0 -926
  71. package/Scripts/build-android.sh +0 -526
  72. package/Scripts/build-ios.sh +0 -529
  73. package/Scripts/build-macos.sh +0 -603
  74. package/Scripts/build-windows.sh +0 -504
  75. package/Scripts/build_icon.sh +0 -49
  76. package/Scripts/changelog-to-html.sh +0 -89
  77. package/Scripts/check-release-assets.sh +0 -10
  78. package/Scripts/ci-config.yml +0 -474
  79. package/Scripts/compile_and_run.sh +0 -219
  80. package/Scripts/compile_and_run_adhoc.sh +0 -4
  81. package/Scripts/docs-list.mjs +0 -119
  82. package/Scripts/make_appcast.sh +0 -58
  83. package/Scripts/package_app.sh +0 -409
  84. package/Scripts/release-lib.sh +0 -214
  85. package/Scripts/release.sh +0 -76
  86. package/Scripts/setup-all.sh +0 -387
  87. package/Scripts/setup-ios.sh +0 -404
  88. package/Scripts/setup-react-native.sh +0 -523
  89. package/Scripts/sign-and-notarize.sh +0 -122
  90. package/Scripts/test_live_update.sh +0 -38
  91. package/Scripts/validate_changelog.sh +0 -23
  92. package/Scripts/verify_appcast.sh +0 -92
  93. package/Sources/Runic/About.swift +0 -93
  94. package/Sources/Runic/AppNotifications.swift +0 -115
  95. package/Sources/Runic/Controllers/StatusItemController+Actions.swift +0 -666
  96. package/Sources/Runic/Controllers/StatusItemController+Animation.swift +0 -518
  97. package/Sources/Runic/Controllers/StatusItemController+ChartSubmenus.swift +0 -810
  98. package/Sources/Runic/Controllers/StatusItemController+CustomProviders.swift +0 -87
  99. package/Sources/Runic/Controllers/StatusItemController+Menu.swift +0 -1407
  100. package/Sources/Runic/Controllers/StatusItemController+MenuCards.swift +0 -337
  101. package/Sources/Runic/Controllers/StatusItemController+MenuHelpers.swift +0 -395
  102. package/Sources/Runic/Controllers/StatusItemController.swift +0 -360
  103. package/Sources/Runic/Core/BudgetNotificationManager.swift +0 -80
  104. package/Sources/Runic/Core/Login/ClaudeLoginRunner.swift +0 -103
  105. package/Sources/Runic/Core/Login/CodexLoginRunner.swift +0 -154
  106. package/Sources/Runic/Core/Login/CursorLoginRunner.swift +0 -206
  107. package/Sources/Runic/Core/Login/GeminiLoginRunner.swift +0 -92
  108. package/Sources/Runic/Core/Rendering/IconRenderer.swift +0 -1216
  109. package/Sources/Runic/Core/Rendering/IconView.swift +0 -120
  110. package/Sources/Runic/Core/Rendering/ProviderBrandIcon.swift +0 -71
  111. package/Sources/Runic/Core/RunicAnimation.swift +0 -53
  112. package/Sources/Runic/Core/RunicColors.swift +0 -73
  113. package/Sources/Runic/Core/RunicCornerRadius.swift +0 -15
  114. package/Sources/Runic/Core/RunicSpacing.swift +0 -68
  115. package/Sources/Runic/Core/Stores/AuggieTokenStore.swift +0 -119
  116. package/Sources/Runic/Core/Stores/AzureOpenAITokenStore.swift +0 -119
  117. package/Sources/Runic/Core/Stores/CerebrasTokenStore.swift +0 -119
  118. package/Sources/Runic/Core/Stores/CohereTokenStore.swift +0 -119
  119. package/Sources/Runic/Core/Stores/CopilotTokenStore.swift +0 -119
  120. package/Sources/Runic/Core/Stores/CustomProviderStore.swift +0 -158
  121. package/Sources/Runic/Core/Stores/DeepSeekTokenStore.swift +0 -119
  122. package/Sources/Runic/Core/Stores/FireworksTokenStore.swift +0 -119
  123. package/Sources/Runic/Core/Stores/GroqTokenStore.swift +0 -119
  124. package/Sources/Runic/Core/Stores/KimiTokenStore.swift +0 -119
  125. package/Sources/Runic/Core/Stores/MiniMaxCookieHeaderStore.swift +0 -119
  126. package/Sources/Runic/Core/Stores/MiniMaxGroupIDStore.swift +0 -119
  127. package/Sources/Runic/Core/Stores/MiniMaxTokenStore.swift +0 -119
  128. package/Sources/Runic/Core/Stores/MistralTokenStore.swift +0 -119
  129. package/Sources/Runic/Core/Stores/OpenRouterTokenStore.swift +0 -119
  130. package/Sources/Runic/Core/Stores/PerplexityTokenStore.swift +0 -119
  131. package/Sources/Runic/Core/Stores/ProviderToggleStore.swift +0 -30
  132. package/Sources/Runic/Core/Stores/QwenTokenStore.swift +0 -119
  133. package/Sources/Runic/Core/Stores/SambaNovaTokenStore.swift +0 -119
  134. package/Sources/Runic/Core/Stores/SettingsStore.swift +0 -1711
  135. package/Sources/Runic/Core/Stores/TogetherTokenStore.swift +0 -119
  136. package/Sources/Runic/Core/Stores/UsageStore+Accessors.swift +0 -20
  137. package/Sources/Runic/Core/Stores/UsageStore+Status.swift +0 -189
  138. package/Sources/Runic/Core/Stores/UsageStore+TokenCost.swift +0 -33
  139. package/Sources/Runic/Core/Stores/UsageStore+WidgetSnapshot.swift +0 -67
  140. package/Sources/Runic/Core/Stores/UsageStore.swift +0 -3605
  141. package/Sources/Runic/Core/Stores/XAITokenStore.swift +0 -119
  142. package/Sources/Runic/Core/Stores/ZaiTokenStore.swift +0 -118
  143. package/Sources/Runic/Core/UsageExporter.swift +0 -193
  144. package/Sources/Runic/Date+RelativeDescription.swift +0 -21
  145. package/Sources/Runic/HiddenWindowView.swift +0 -32
  146. package/Sources/Runic/InstallOrigin.swift +0 -9
  147. package/Sources/Runic/KeyboardShortcuts+Names.swift +0 -6
  148. package/Sources/Runic/MouseLocationReader.swift +0 -65
  149. package/Sources/Runic/Notifications+Runic.swift +0 -6
  150. package/Sources/Runic/OpenAICreditsPurchaseWindowController.swift +0 -503
  151. package/Sources/Runic/ProviderRegistry.swift +0 -100
  152. package/Sources/Runic/ProviderSwitcherButtons.swift +0 -267
  153. package/Sources/Runic/Providers/Antigravity/AntigravityLoginFlow.swift +0 -11
  154. package/Sources/Runic/Providers/Antigravity/AntigravityProviderImplementation.swift +0 -14
  155. package/Sources/Runic/Providers/Auggie/AuggieProviderImplementation.swift +0 -24
  156. package/Sources/Runic/Providers/Azure/AzureProviderImplementation.swift +0 -52
  157. package/Sources/Runic/Providers/Bedrock/BedrockProviderImplementation.swift +0 -42
  158. package/Sources/Runic/Providers/Cerebras/CerebrasProviderImplementation.swift +0 -24
  159. package/Sources/Runic/Providers/Claude/ClaudeLoginFlow.swift +0 -26
  160. package/Sources/Runic/Providers/Claude/ClaudeProviderImplementation.swift +0 -14
  161. package/Sources/Runic/Providers/Codex/CodexLoginFlow.swift +0 -18
  162. package/Sources/Runic/Providers/Codex/CodexProviderImplementation.swift +0 -15
  163. package/Sources/Runic/Providers/Cohere/CohereProviderImplementation.swift +0 -24
  164. package/Sources/Runic/Providers/Copilot/CopilotLoginFlow.swift +0 -193
  165. package/Sources/Runic/Providers/Copilot/CopilotProviderImplementation.swift +0 -110
  166. package/Sources/Runic/Providers/Cursor/CursorLoginFlow.swift +0 -28
  167. package/Sources/Runic/Providers/Cursor/CursorProviderImplementation.swift +0 -15
  168. package/Sources/Runic/Providers/DeepSeek/DeepSeekProviderImplementation.swift +0 -24
  169. package/Sources/Runic/Providers/Factory/FactoryLoginFlow.swift +0 -12
  170. package/Sources/Runic/Providers/Factory/FactoryProviderImplementation.swift +0 -15
  171. package/Sources/Runic/Providers/Fireworks/FireworksProviderImplementation.swift +0 -24
  172. package/Sources/Runic/Providers/Gemini/GeminiLoginFlow.swift +0 -20
  173. package/Sources/Runic/Providers/Gemini/GeminiProviderImplementation.swift +0 -15
  174. package/Sources/Runic/Providers/Groq/GroqProviderImplementation.swift +0 -24
  175. package/Sources/Runic/Providers/Kimi/KimiProviderImplementation.swift +0 -24
  176. package/Sources/Runic/Providers/MiniMax/MiniMaxProviderImplementation.swift +0 -32
  177. package/Sources/Runic/Providers/Mistral/MistralProviderImplementation.swift +0 -24
  178. package/Sources/Runic/Providers/OpenRouter/OpenRouterProviderImplementation.swift +0 -24
  179. package/Sources/Runic/Providers/Perplexity/PerplexityProviderImplementation.swift +0 -24
  180. package/Sources/Runic/Providers/SambaNova/SambaNovaProviderImplementation.swift +0 -24
  181. package/Sources/Runic/Providers/Shared/ProviderCatalog.swift +0 -15
  182. package/Sources/Runic/Providers/Shared/ProviderImplementation.swift +0 -48
  183. package/Sources/Runic/Providers/Shared/ProviderImplementationRegistry.swift +0 -66
  184. package/Sources/Runic/Providers/Shared/ProviderLoginFlow.swift +0 -12
  185. package/Sources/Runic/Providers/Shared/ProviderSettingsDescriptors.swift +0 -99
  186. package/Sources/Runic/Providers/Shared/SystemSettingsLinks.swift +0 -18
  187. package/Sources/Runic/Providers/Together/TogetherProviderImplementation.swift +0 -24
  188. package/Sources/Runic/Providers/XAI/XAIProviderImplementation.swift +0 -24
  189. package/Sources/Runic/Providers/Zai/ZaiProviderImplementation.swift +0 -24
  190. package/Sources/Runic/Resources/ProviderIcon-antigravity.svg +0 -2
  191. package/Sources/Runic/Resources/ProviderIcon-auggie.svg +0 -3
  192. package/Sources/Runic/Resources/ProviderIcon-azure.svg +0 -5
  193. package/Sources/Runic/Resources/ProviderIcon-bedrock.svg +0 -7
  194. package/Sources/Runic/Resources/ProviderIcon-cerebras.svg +0 -3
  195. package/Sources/Runic/Resources/ProviderIcon-claude.svg +0 -1
  196. package/Sources/Runic/Resources/ProviderIcon-codex.svg +0 -1
  197. package/Sources/Runic/Resources/ProviderIcon-cohere.svg +0 -3
  198. package/Sources/Runic/Resources/ProviderIcon-copilot.svg +0 -1
  199. package/Sources/Runic/Resources/ProviderIcon-cursor.svg +0 -3
  200. package/Sources/Runic/Resources/ProviderIcon-deepseek.svg +0 -4
  201. package/Sources/Runic/Resources/ProviderIcon-factory.svg +0 -3
  202. package/Sources/Runic/Resources/ProviderIcon-fireworks.svg +0 -3
  203. package/Sources/Runic/Resources/ProviderIcon-gemini.svg +0 -1
  204. package/Sources/Runic/Resources/ProviderIcon-groq.svg +0 -1
  205. package/Sources/Runic/Resources/ProviderIcon-kimi.svg +0 -4
  206. package/Sources/Runic/Resources/ProviderIcon-minimax.svg +0 -1
  207. package/Sources/Runic/Resources/ProviderIcon-mistral.svg +0 -5
  208. package/Sources/Runic/Resources/ProviderIcon-openrouter.svg +0 -7
  209. package/Sources/Runic/Resources/ProviderIcon-perplexity.svg +0 -4
  210. package/Sources/Runic/Resources/ProviderIcon-qwen.svg +0 -9
  211. package/Sources/Runic/Resources/ProviderIcon-sambanova.svg +0 -4
  212. package/Sources/Runic/Resources/ProviderIcon-together.svg +0 -5
  213. package/Sources/Runic/Resources/ProviderIcon-vertexai.svg +0 -17
  214. package/Sources/Runic/Resources/ProviderIcon-xai.svg +0 -3
  215. package/Sources/Runic/Resources/ProviderIcon-zai.svg +0 -5
  216. package/Sources/Runic/Resources/RunicMenubarIcon.svg +0 -7
  217. package/Sources/Runic/Resources/provider-context-windows.json +0 -20
  218. package/Sources/Runic/RunicApp.swift +0 -357
  219. package/Sources/Runic/SessionQuotaNotifications.swift +0 -58
  220. package/Sources/Runic/UsagePaceText.swift +0 -52
  221. package/Sources/Runic/UsageProgressBar.swift +0 -224
  222. package/Sources/Runic/Utilities/DisplayLink.swift +0 -96
  223. package/Sources/Runic/Utilities/LoadingPattern.swift +0 -60
  224. package/Sources/Runic/Utilities/PerformanceConstants.swift +0 -85
  225. package/Sources/Runic/Views/Menu/AlertsMenuView.swift +0 -256
  226. package/Sources/Runic/Views/Menu/ChartPanelStyle.swift +0 -22
  227. package/Sources/Runic/Views/Menu/CostComparativeChartMenuView.swift +0 -275
  228. package/Sources/Runic/Views/Menu/CostHistoryChartMenuView.swift +0 -377
  229. package/Sources/Runic/Views/Menu/CreditsHistoryChartMenuView.swift +0 -312
  230. package/Sources/Runic/Views/Menu/EfficiencyMetricsMenuView.swift +0 -312
  231. package/Sources/Runic/Views/Menu/HeroStatCardsMenuView.swift +0 -228
  232. package/Sources/Runic/Views/Menu/HourlyActivityChartMenuView.swift +0 -228
  233. package/Sources/Runic/Views/Menu/InlineUsageChartView.swift +0 -155
  234. package/Sources/Runic/Views/Menu/MenuCardEntranceModifier.swift +0 -64
  235. package/Sources/Runic/Views/Menu/MenuCardSidebarView.swift +0 -268
  236. package/Sources/Runic/Views/Menu/MenuCardSkeletonView.swift +0 -104
  237. package/Sources/Runic/Views/Menu/MenuCardView.swift +0 -1900
  238. package/Sources/Runic/Views/Menu/MenuContent.swift +0 -150
  239. package/Sources/Runic/Views/Menu/MenuDescriptor.swift +0 -369
  240. package/Sources/Runic/Views/Menu/MenuHighlightStyle.swift +0 -42
  241. package/Sources/Runic/Views/Menu/ModelBreakdownMenuView.swift +0 -235
  242. package/Sources/Runic/Views/Menu/OverviewMenuView.swift +0 -278
  243. package/Sources/Runic/Views/Menu/ProjectBreakdownMenuView.swift +0 -209
  244. package/Sources/Runic/Views/Menu/ProjectBudgetMenuView.swift +0 -220
  245. package/Sources/Runic/Views/Menu/ProviderTabBarView.swift +0 -88
  246. package/Sources/Runic/Views/Menu/SubscriptionUtilizationChartMenuView.swift +0 -201
  247. package/Sources/Runic/Views/Menu/UsageBreakdownChartMenuView.swift +0 -398
  248. package/Sources/Runic/Views/Menu/UsageHeatmapMenuView.swift +0 -232
  249. package/Sources/Runic/Views/Menu/UsageTimelineChartMenuView.swift +0 -364
  250. package/Sources/Runic/Views/Menu/UsageWindowComparisonChartMenuView.swift +0 -190
  251. package/Sources/Runic/Views/Menu/WeeklyActivityChartMenuView.swift +0 -132
  252. package/Sources/Runic/Views/Performance/PerformanceDashboardView.swift +0 -618
  253. package/Sources/Runic/Views/Preferences/LiquidComponents.swift +0 -305
  254. package/Sources/Runic/Views/Preferences/PreferencesAboutPane.swift +0 -271
  255. package/Sources/Runic/Views/Preferences/PreferencesAdvancedPane.swift +0 -268
  256. package/Sources/Runic/Views/Preferences/PreferencesAlertsPane.swift +0 -422
  257. package/Sources/Runic/Views/Preferences/PreferencesAnalyticsPane.swift +0 -641
  258. package/Sources/Runic/Views/Preferences/PreferencesBudgetsPane.swift +0 -344
  259. package/Sources/Runic/Views/Preferences/PreferencesComponents.swift +0 -230
  260. package/Sources/Runic/Views/Preferences/PreferencesCustomProvidersPane.swift +0 -322
  261. package/Sources/Runic/Views/Preferences/PreferencesDebugPane.swift +0 -469
  262. package/Sources/Runic/Views/Preferences/PreferencesGeneralPane.swift +0 -231
  263. package/Sources/Runic/Views/Preferences/PreferencesHelpPane.swift +0 -50
  264. package/Sources/Runic/Views/Preferences/PreferencesIntegrationsPane.swift +0 -567
  265. package/Sources/Runic/Views/Preferences/PreferencesPerformancePane.swift +0 -288
  266. package/Sources/Runic/Views/Preferences/PreferencesProvidersPane.swift +0 -3435
  267. package/Sources/Runic/Views/Preferences/PreferencesSelection.swift +0 -25
  268. package/Sources/Runic/Views/Preferences/PreferencesSyncPane.swift +0 -59
  269. package/Sources/Runic/Views/Preferences/PreferencesView.swift +0 -206
  270. package/Sources/Runic/Views/Rating/QualityRatingView.swift +0 -238
  271. package/Sources/Runic/Views/Team/TeamDashboardView.swift +0 -371
  272. package/Sources/Runic/Views/Team/TeamInviteSheet.swift +0 -175
  273. package/Sources/Runic/Views/Team/TeamManagementView.swift +0 -761
  274. package/Sources/Runic/Views/Team/TeamMemberRow.swift +0 -181
  275. package/Sources/RunicCLI/CLIEntry.swift +0 -942
  276. package/Sources/RunicCLI/CLIRenderer.swift +0 -87
  277. package/Sources/RunicCLI/Commands/EnhancedUsageCommand.swift +0 -588
  278. package/Sources/RunicCLI/Commands/ModelsCommand.swift +0 -362
  279. package/Sources/RunicCLI/Commands/ProjectsCommand.swift +0 -439
  280. package/Sources/RunicCLI/Commands/ResetCommand.swift +0 -429
  281. package/Sources/RunicCLI/Commands/UsageLedgerSourceFactory.swift +0 -168
  282. package/Sources/RunicClaudeWatchdog/main.swift +0 -122
  283. package/Sources/RunicClaudeWebProbe/main.swift +0 -62
  284. package/Sources/RunicCore/AlertRuleStore.swift +0 -187
  285. package/Sources/RunicCore/BrowserCookieImportOrder.swift +0 -25
  286. package/Sources/RunicCore/CopilotUsageModels.swift +0 -84
  287. package/Sources/RunicCore/CostUsageFetcher.swift +0 -119
  288. package/Sources/RunicCore/CostUsageModels.swift +0 -479
  289. package/Sources/RunicCore/CreditsModels.swift +0 -50
  290. package/Sources/RunicCore/CustomProviders/CustomProviderModels.swift +0 -269
  291. package/Sources/RunicCore/CustomProviders/GenericProviderFetcher.swift +0 -633
  292. package/Sources/RunicCore/CustomProviders/ProviderTemplates.swift +0 -500
  293. package/Sources/RunicCore/Host/PTY/TTYCommandRunner.swift +0 -679
  294. package/Sources/RunicCore/Host/Process/SubprocessRunner.swift +0 -135
  295. package/Sources/RunicCore/Integrations/GitHubIntegration.swift +0 -173
  296. package/Sources/RunicCore/Logging/JSONStderrLogHandler.swift +0 -79
  297. package/Sources/RunicCore/Logging/OSLogLogHandler.swift +0 -86
  298. package/Sources/RunicCore/Logging/RunicLog.swift +0 -123
  299. package/Sources/RunicCore/Models/EnhancedUsageModels.swift +0 -371
  300. package/Sources/RunicCore/OpenAIDashboardModels.swift +0 -210
  301. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardBrowserCookieImporter.swift +0 -676
  302. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardFetcher.swift +0 -492
  303. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardNavigationDelegate.swift +0 -51
  304. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardParser.swift +0 -483
  305. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardScrapeScript.swift +0 -558
  306. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebViewCache.swift +0 -204
  307. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebsiteDataStore.swift +0 -78
  308. package/Sources/RunicCore/PathEnvironment.swift +0 -482
  309. package/Sources/RunicCore/Performance/PerformanceModels.swift +0 -371
  310. package/Sources/RunicCore/Performance/PerformanceStorageImpl.swift +0 -409
  311. package/Sources/RunicCore/Policy/UsagePolicyEngine.swift +0 -178
  312. package/Sources/RunicCore/ProjectBudgetStore.swift +0 -99
  313. package/Sources/RunicCore/ProviderCostSnapshot.swift +0 -29
  314. package/Sources/RunicCore/Providers/Antigravity/AntigravityProviderDescriptor.swift +0 -66
  315. package/Sources/RunicCore/Providers/Antigravity/AntigravityStatusProbe.swift +0 -685
  316. package/Sources/RunicCore/Providers/Auggie/AuggieProviderDescriptor.swift +0 -83
  317. package/Sources/RunicCore/Providers/Auggie/AuggieUsageFetcher.swift +0 -142
  318. package/Sources/RunicCore/Providers/Azure/AzureProviderDescriptor.swift +0 -141
  319. package/Sources/RunicCore/Providers/Azure/AzureUsageFetcher.swift +0 -188
  320. package/Sources/RunicCore/Providers/Bedrock/BedrockProviderDescriptor.swift +0 -126
  321. package/Sources/RunicCore/Providers/Bedrock/BedrockUsageFetcher.swift +0 -168
  322. package/Sources/RunicCore/Providers/Cerebras/CerebrasProviderDescriptor.swift +0 -84
  323. package/Sources/RunicCore/Providers/Cerebras/CerebrasUsageFetcher.swift +0 -75
  324. package/Sources/RunicCore/Providers/Claude/ClaudeCLISession.swift +0 -332
  325. package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthCredentials.swift +0 -180
  326. package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthUsageFetcher.swift +0 -137
  327. package/Sources/RunicCore/Providers/Claude/ClaudeProviderDescriptor.swift +0 -207
  328. package/Sources/RunicCore/Providers/Claude/ClaudeStatusProbe.swift +0 -654
  329. package/Sources/RunicCore/Providers/Claude/ClaudeUsageDataSource.swift +0 -28
  330. package/Sources/RunicCore/Providers/Claude/ClaudeUsageFetcher.swift +0 -480
  331. package/Sources/RunicCore/Providers/Claude/ClaudeWeb/ClaudeWebAPIFetcher.swift +0 -780
  332. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthCredentials.swift +0 -147
  333. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthUsageFetcher.swift +0 -280
  334. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexTokenRefresher.swift +0 -100
  335. package/Sources/RunicCore/Providers/Codex/CodexProviderDescriptor.swift +0 -243
  336. package/Sources/RunicCore/Providers/Codex/CodexStatusProbe.swift +0 -125
  337. package/Sources/RunicCore/Providers/Codex/CodexUsageDataSource.swift +0 -24
  338. package/Sources/RunicCore/Providers/Codex/CodexWebDashboardStrategy.swift +0 -181
  339. package/Sources/RunicCore/Providers/Cohere/CohereProviderDescriptor.swift +0 -83
  340. package/Sources/RunicCore/Providers/Cohere/CohereUsageFetcher.swift +0 -85
  341. package/Sources/RunicCore/Providers/Copilot/CopilotDeviceFlow.swift +0 -123
  342. package/Sources/RunicCore/Providers/Copilot/CopilotGitHubCLITokenReader.swift +0 -114
  343. package/Sources/RunicCore/Providers/Copilot/CopilotProviderDescriptor.swift +0 -100
  344. package/Sources/RunicCore/Providers/Copilot/CopilotUsageFetcher.swift +0 -291
  345. package/Sources/RunicCore/Providers/Copilot/CopilotVSCodeTokenReader.swift +0 -386
  346. package/Sources/RunicCore/Providers/Cursor/CursorProviderDescriptor.swift +0 -65
  347. package/Sources/RunicCore/Providers/Cursor/CursorStatusProbe.swift +0 -595
  348. package/Sources/RunicCore/Providers/DeepSeek/DeepSeekProviderDescriptor.swift +0 -85
  349. package/Sources/RunicCore/Providers/DeepSeek/DeepSeekUsageFetcher.swift +0 -108
  350. package/Sources/RunicCore/Providers/Factory/FactoryLocalStorageImporter.swift +0 -398
  351. package/Sources/RunicCore/Providers/Factory/FactoryProviderDescriptor.swift +0 -65
  352. package/Sources/RunicCore/Providers/Factory/FactoryStatusProbe.swift +0 -1276
  353. package/Sources/RunicCore/Providers/Fireworks/FireworksProviderDescriptor.swift +0 -84
  354. package/Sources/RunicCore/Providers/Fireworks/FireworksUsageFetcher.swift +0 -75
  355. package/Sources/RunicCore/Providers/Gemini/GeminiProviderDescriptor.swift +0 -65
  356. package/Sources/RunicCore/Providers/Gemini/GeminiStatusProbe.swift +0 -836
  357. package/Sources/RunicCore/Providers/Groq/GroqProviderDescriptor.swift +0 -83
  358. package/Sources/RunicCore/Providers/Groq/GroqUsageFetcher.swift +0 -71
  359. package/Sources/RunicCore/Providers/Kimi/KimiProviderDescriptor.swift +0 -83
  360. package/Sources/RunicCore/Providers/Kimi/KimiUsageFetcher.swift +0 -77
  361. package/Sources/RunicCore/Providers/MiniMax/MiniMaxProviderDescriptor.swift +0 -92
  362. package/Sources/RunicCore/Providers/MiniMax/MiniMaxSettingsReader.swift +0 -54
  363. package/Sources/RunicCore/Providers/MiniMax/MiniMaxUsageFetcher.swift +0 -168
  364. package/Sources/RunicCore/Providers/MiniMax/MiniMaxWebUsageFetcher.swift +0 -911
  365. package/Sources/RunicCore/Providers/Mistral/MistralProviderDescriptor.swift +0 -84
  366. package/Sources/RunicCore/Providers/Mistral/MistralUsageFetcher.swift +0 -75
  367. package/Sources/RunicCore/Providers/OpenRouter/OpenRouterProviderDescriptor.swift +0 -87
  368. package/Sources/RunicCore/Providers/OpenRouter/OpenRouterUsageFetcher.swift +0 -203
  369. package/Sources/RunicCore/Providers/Perplexity/PerplexityProviderDescriptor.swift +0 -84
  370. package/Sources/RunicCore/Providers/Perplexity/PerplexityUsageFetcher.swift +0 -75
  371. package/Sources/RunicCore/Providers/ProviderBranding.swift +0 -25
  372. package/Sources/RunicCore/Providers/ProviderCLIConfig.swift +0 -17
  373. package/Sources/RunicCore/Providers/ProviderDescriptor.swift +0 -129
  374. package/Sources/RunicCore/Providers/ProviderFetchPlan.swift +0 -263
  375. package/Sources/RunicCore/Providers/ProviderSettingsSnapshot.swift +0 -98
  376. package/Sources/RunicCore/Providers/ProviderTokenResolver.swift +0 -501
  377. package/Sources/RunicCore/Providers/ProviderVersionDetector.swift +0 -68
  378. package/Sources/RunicCore/Providers/Providers.swift +0 -184
  379. package/Sources/RunicCore/Providers/Qwen/QwenProviderDescriptor.swift +0 -84
  380. package/Sources/RunicCore/Providers/Qwen/QwenSettingsReader.swift +0 -30
  381. package/Sources/RunicCore/Providers/Qwen/QwenUsageStats.swift +0 -315
  382. package/Sources/RunicCore/Providers/SambaNova/SambaNovaProviderDescriptor.swift +0 -84
  383. package/Sources/RunicCore/Providers/SambaNova/SambaNovaUsageFetcher.swift +0 -75
  384. package/Sources/RunicCore/Providers/Together/TogetherProviderDescriptor.swift +0 -83
  385. package/Sources/RunicCore/Providers/Together/TogetherUsageFetcher.swift +0 -75
  386. package/Sources/RunicCore/Providers/VertexAI/VertexAIProviderDescriptor.swift +0 -123
  387. package/Sources/RunicCore/Providers/VertexAI/VertexAISettingsReader.swift +0 -48
  388. package/Sources/RunicCore/Providers/VertexAI/VertexAIUsageFetcher.swift +0 -144
  389. package/Sources/RunicCore/Providers/XAI/XAIProviderDescriptor.swift +0 -83
  390. package/Sources/RunicCore/Providers/XAI/XAIUsageFetcher.swift +0 -75
  391. package/Sources/RunicCore/Providers/Zai/ZaiProviderDescriptor.swift +0 -72
  392. package/Sources/RunicCore/Providers/Zai/ZaiSettingsReader.swift +0 -41
  393. package/Sources/RunicCore/Providers/Zai/ZaiUsageStats.swift +0 -718
  394. package/Sources/RunicCore/Sync/BackgroundSyncManager.swift +0 -385
  395. package/Sources/RunicCore/Sync/SyncConflictResolver.swift +0 -310
  396. package/Sources/RunicCore/Sync/SyncProtocol.swift +0 -288
  397. package/Sources/RunicCore/Sync/SyncRecord.swift +0 -405
  398. package/Sources/RunicCore/Sync/SyncUsageExample.swift +0 -294
  399. package/Sources/RunicCore/Sync/TeamSyncRecords.swift +0 -775
  400. package/Sources/RunicCore/Sync/iCloudSyncEngine.swift +0 -333
  401. package/Sources/RunicCore/Team/TeamModels.swift +0 -583
  402. package/Sources/RunicCore/Team/TeamShowbackExporter.swift +0 -495
  403. package/Sources/RunicCore/Team/TeamStore.swift +0 -792
  404. package/Sources/RunicCore/TextParsing.swift +0 -55
  405. package/Sources/RunicCore/UsageFetcher.swift +0 -694
  406. package/Sources/RunicCore/UsageFormatter.swift +0 -410
  407. package/Sources/RunicCore/UsageLedger/ClaudeUsageLogSource.swift +0 -427
  408. package/Sources/RunicCore/UsageLedger/CodexUsageLogSource.swift +0 -494
  409. package/Sources/RunicCore/UsageLedger/LedgerCache.swift +0 -158
  410. package/Sources/RunicCore/UsageLedger/OTelGenAILedgerAdapter.swift +0 -550
  411. package/Sources/RunicCore/UsageLedger/UsageLedger.swift +0 -29
  412. package/Sources/RunicCore/UsageLedger/UsageLedgerAggregator.swift +0 -660
  413. package/Sources/RunicCore/UsageLedger/UsageLedgerInsightsAdvisor.swift +0 -209
  414. package/Sources/RunicCore/UsageLedger/UsageLedgerModels.swift +0 -417
  415. package/Sources/RunicCore/UsageLedger/UsageLedgerProjectIdentity.swift +0 -245
  416. package/Sources/RunicCore/UsagePace.swift +0 -81
  417. package/Sources/RunicCore/Vendored/CostUsage/CostUsageCache.swift +0 -73
  418. package/Sources/RunicCore/Vendored/CostUsage/CostUsageJsonl.swift +0 -74
  419. package/Sources/RunicCore/Vendored/CostUsage/CostUsagePricing.swift +0 -208
  420. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Claude.swift +0 -455
  421. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Timestamp.swift +0 -132
  422. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner.swift +0 -589
  423. package/Sources/RunicCore/WidgetSnapshot.swift +0 -183
  424. package/Sources/RunicMacroSupport/ProviderRegistrationMacros.swift +0 -14
  425. package/Sources/RunicMacros/ProviderRegistrationMacros.swift +0 -216
  426. package/Sources/RunicWidget/RunicWidgetBundle.swift +0 -79
  427. package/Sources/RunicWidget/RunicWidgetProvider.swift +0 -283
  428. package/Sources/RunicWidget/RunicWidgetViews.swift +0 -680
  429. package/Tests/RunicTests/AntigravityStatusProbeTests.swift +0 -50
  430. package/Tests/RunicTests/AppDelegateTests.swift +0 -43
  431. package/Tests/RunicTests/BrowserCookieOrderLabelTests.swift +0 -22
  432. package/Tests/RunicTests/CLIArgumentParsingTests.swift +0 -70
  433. package/Tests/RunicTests/CLICostTests.swift +0 -65
  434. package/Tests/RunicTests/CLIProviderSelectionTests.swift +0 -22
  435. package/Tests/RunicTests/CLISnapshotTests.swift +0 -72
  436. package/Tests/RunicTests/CLIWebFallbackTests.swift +0 -58
  437. package/Tests/RunicTests/ClaudeOAuthTests.swift +0 -164
  438. package/Tests/RunicTests/ClaudeResilienceTests.swift +0 -30
  439. package/Tests/RunicTests/ClaudeUsageTests.swift +0 -370
  440. package/Tests/RunicTests/CodexOAuthTests.swift +0 -122
  441. package/Tests/RunicTests/CodexUsageLogSourceTests.swift +0 -82
  442. package/Tests/RunicTests/CopilotTokenResolverTests.swift +0 -75
  443. package/Tests/RunicTests/CopilotVSCodeTokenReaderTests.swift +0 -75
  444. package/Tests/RunicTests/CostUsageDecodingTests.swift +0 -394
  445. package/Tests/RunicTests/CostUsagePricingTests.swift +0 -50
  446. package/Tests/RunicTests/CostUsageScannerTests.swift +0 -700
  447. package/Tests/RunicTests/CursorStatusProbeTests.swift +0 -323
  448. package/Tests/RunicTests/FactoryStatusProbeTests.swift +0 -69
  449. package/Tests/RunicTests/GeminiAPITestHelpers.swift +0 -94
  450. package/Tests/RunicTests/GeminiLoginAlertTests.swift +0 -28
  451. package/Tests/RunicTests/GeminiStatusProbeAPITests.swift +0 -283
  452. package/Tests/RunicTests/GeminiStatusProbePlanTests.swift +0 -279
  453. package/Tests/RunicTests/GeminiStatusProbeTests.swift +0 -233
  454. package/Tests/RunicTests/GeminiTestEnvironment.swift +0 -87
  455. package/Tests/RunicTests/GoogleWorkspaceStatusTests.swift +0 -73
  456. package/Tests/RunicTests/InstallOriginTests.swift +0 -18
  457. package/Tests/RunicTests/KeyboardShortcutsBundleTests.swift +0 -9
  458. package/Tests/RunicTests/LiveAccountTests.swift +0 -24
  459. package/Tests/RunicTests/LoadingPatternTests.swift +0 -35
  460. package/Tests/RunicTests/MenuCardModelTests.swift +0 -545
  461. package/Tests/RunicTests/MiniMaxCookieHeaderStoreTestSupport.swift +0 -8
  462. package/Tests/RunicTests/MiniMaxGroupIDStoreTestSupport.swift +0 -8
  463. package/Tests/RunicTests/MiniMaxParsingTests.swift +0 -68
  464. package/Tests/RunicTests/MiniMaxTokenStoreTestSupport.swift +0 -8
  465. package/Tests/RunicTests/OTelGenAILedgerAdapterTests.swift +0 -112
  466. package/Tests/RunicTests/OpenAIDashboardBrowserCookieImporterTests.swift +0 -17
  467. package/Tests/RunicTests/OpenAIDashboardFetcherCreditsWaitTests.swift +0 -75
  468. package/Tests/RunicTests/OpenAIDashboardOffscreenHostTests.swift +0 -27
  469. package/Tests/RunicTests/OpenAIDashboardParserTests.swift +0 -134
  470. package/Tests/RunicTests/OpenAIWebAccountSwitchTests.swift +0 -53
  471. package/Tests/RunicTests/OpenRouterTokenStoreTestSupport.swift +0 -92
  472. package/Tests/RunicTests/PathBuilderTests.swift +0 -237
  473. package/Tests/RunicTests/ProviderFetchPipelineTests.swift +0 -160
  474. package/Tests/RunicTests/ProviderIconResourcesTests.swift +0 -38
  475. package/Tests/RunicTests/ProviderMetadataStatusLinkTests.swift +0 -16
  476. package/Tests/RunicTests/ProviderRegistryTests.swift +0 -29
  477. package/Tests/RunicTests/ProviderSettingsDescriptorTests.swift +0 -202
  478. package/Tests/RunicTests/ProviderToggleStoreTests.swift +0 -51
  479. package/Tests/RunicTests/RunicTests.swift +0 -120
  480. package/Tests/RunicTests/SessionQuotaNotificationLogicTests.swift +0 -36
  481. package/Tests/RunicTests/SettingsStoreTests.swift +0 -161
  482. package/Tests/RunicTests/StatusItemAnimationTests.swift +0 -49
  483. package/Tests/RunicTests/StatusMenuTests.swift +0 -434
  484. package/Tests/RunicTests/StatusProbeTests.swift +0 -377
  485. package/Tests/RunicTests/SubprocessRunnerTests.swift +0 -20
  486. package/Tests/RunicTests/SubscriptionDetectionTests.swift +0 -65
  487. package/Tests/RunicTests/TTYCommandRunnerTests.swift +0 -148
  488. package/Tests/RunicTests/TTYIntegrationTests.swift +0 -41
  489. package/Tests/RunicTests/TeamShowbackExporterTests.swift +0 -159
  490. package/Tests/RunicTests/TextParsingTests.swift +0 -12
  491. package/Tests/RunicTests/UsageFormatterTests.swift +0 -112
  492. package/Tests/RunicTests/UsageLedgerAnomalyDetectionTests.swift +0 -172
  493. package/Tests/RunicTests/UsageLedgerForecastTests.swift +0 -213
  494. package/Tests/RunicTests/UsageLedgerInsightsAdvisorTests.swift +0 -83
  495. package/Tests/RunicTests/UsageLedgerProjectNameTests.swift +0 -170
  496. package/Tests/RunicTests/UsagePaceTests.swift +0 -77
  497. package/Tests/RunicTests/UsagePaceTextTests.swift +0 -109
  498. package/Tests/RunicTests/UsagePolicyEngineTests.swift +0 -91
  499. package/Tests/RunicTests/WidgetSnapshotTests.swift +0 -45
  500. package/Tests/RunicTests/ZaiProviderTests.swift +0 -61
  501. package/Tests/RunicTests/ZaiTokenStoreTestSupport.swift +0 -6
  502. package/TestsLinux/PlatformGatingTests.swift +0 -46
  503. package/appcast.xml +0 -144
  504. package/assets/logo-concept-stack.svg +0 -24
  505. package/assets/logo-minimal-bars.svg +0 -15
  506. package/assets/logo.svg +0 -20
  507. package/assets/logo2.svg +0 -43
  508. package/bin/docs-list +0 -5
  509. package/build-and-run.sh +0 -369
  510. package/docs/.nojekyll +0 -1
  511. package/docs/CNAME +0 -1
  512. package/docs/antigravity.md +0 -75
  513. package/docs/architecture.md +0 -32
  514. package/docs/claude.md +0 -93
  515. package/docs/cli-commands/integration_guide.md +0 -371
  516. package/docs/cli-commands/quick_reference.md +0 -362
  517. package/docs/cli-commands/readme.md +0 -361
  518. package/docs/cli.md +0 -156
  519. package/docs/cloudkit_sync_guide.md +0 -495
  520. package/docs/codebase_review.md +0 -288
  521. package/docs/codex-oauth.md +0 -635
  522. package/docs/codex.md +0 -104
  523. package/docs/codexbar.png +0 -0
  524. package/docs/copilot.md +0 -44
  525. package/docs/cursor.md +0 -46
  526. package/docs/design/designcomparisonchart.md +0 -510
  527. package/docs/design/implementationguide.md +0 -792
  528. package/docs/design/menubaricondesignconcepts.md +0 -796
  529. package/docs/design/mockups/hybridiconconcept.svg +0 -62
  530. package/docs/design/mockups/infinityiconconcept.svg +0 -41
  531. package/docs/design/mockups/infinityiconstates.svg +0 -129
  532. package/docs/design/mockups/wavelogorefined.svg +0 -48
  533. package/docs/design/quick_summary.md +0 -426
  534. package/docs/design/readme.md +0 -478
  535. package/docs/design/sizespecifications.md +0 -575
  536. package/docs/design-system.md +0 -836
  537. package/docs/factory.md +0 -103
  538. package/docs/gemini.md +0 -73
  539. package/docs/icon.md +0 -37
  540. package/docs/icon.png +0 -0
  541. package/docs/index.html +0 -175
  542. package/docs/keychain_fix.md +0 -274
  543. package/docs/minimax.md +0 -71
  544. package/docs/packaging.md +0 -25
  545. package/docs/progress-bar-improvements.md +0 -240
  546. package/docs/progress-bar-quick-reference.md +0 -283
  547. package/docs/progress-bar-technical-details.md +0 -432
  548. package/docs/progress-bar-visual-test.swift +0 -375
  549. package/docs/provider.md +0 -202
  550. package/docs/providers.md +0 -86
  551. package/docs/refactor/macros.md +0 -35
  552. package/docs/refresh-loop.md +0 -22
  553. package/docs/releasing-homebrew.md +0 -35
  554. package/docs/releasing.md +0 -121
  555. package/docs/research/concrete_todo_2026-02-22.md +0 -47
  556. package/docs/research/core-feature-research.md +0 -248
  557. package/docs/research/feature_uiux_roadmap_2026-02-22.md +0 -202
  558. package/docs/research/parity_matrix.md +0 -49
  559. package/docs/research/provider_expansion_candidates_2026-02-22.md +0 -80
  560. package/docs/research/provider_model_token_project_matrix_2026-02-23.md +0 -46
  561. package/docs/research/release_gate_checklist.md +0 -57
  562. package/docs/site.css +0 -505
  563. package/docs/sparkle.md +0 -28
  564. package/docs/status.md +0 -28
  565. package/docs/sync/implementation.md +0 -393
  566. package/docs/sync/readme.md +0 -317
  567. package/docs/sync_files_summary.md +0 -391
  568. package/docs/sync_quick_reference.md +0 -225
  569. package/docs/todo.md +0 -11
  570. package/docs/ui.md +0 -29
  571. package/docs/web-integration.md +0 -9
  572. package/docs/widgets.md +0 -85
  573. package/docs/workflows/error-handling-improvements.md +0 -434
  574. package/docs/workflows/folder_structure.md +0 -299
  575. package/docs/workflows/loading_states.md +0 -446
  576. package/docs/workflows/loading_states_examples.md +0 -565
  577. package/docs/workflows/loading_states_flow.md +0 -430
  578. package/docs/workflows/performance_optimizations.md +0 -457
  579. package/docs/workflows/phase1-cli-testing-report.md +0 -313
  580. package/docs/workflows/quick_reference.md +0 -228
  581. package/docs/workflows/readme.md +0 -59
  582. package/docs/workflows/recent_improvements.md +0 -275
  583. package/docs/workflows/sync_enablement_summary.md +0 -400
  584. package/docs/zai.md +0 -43
  585. package/runic.png +0 -0
  586. 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.