@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
package/appcast.xml DELETED
@@ -1,144 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8" standalone="yes"?>
2
- <rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
3
- <channel>
4
- <title>Runic</title>
5
- <item>
6
- <title>1.1.0</title>
7
- <pubDate>Sun, 23 Mar 2026 00:00:00 +0100</pubDate>
8
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
9
- <sparkle:version>49</sparkle:version>
10
- <sparkle:shortVersionString>1.1.0</sparkle:shortVersionString>
11
- <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
12
- <description><![CDATA[<h2>Runic 1.1.0</h2>
13
- <ul>
14
- <li>Overview dashboard with activity ring, context windows, reset countdowns</li>
15
- <li>Context windows from config file (no recompile needed)</li>
16
- <li>Parallel provider refresh (concurrent instead of sequential)</li>
17
- <li>Keychain ACL fix (no more password prompts on relaunch)</li>
18
- </ul>
19
- ]]></description>
20
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v1.1.0/Runic-1.1.0.zip" length="30807384" type="application/octet-stream" sparkle:edSignature="hXMeE/CLrSDV+kbFythUA6w84WQ7u0YpvXK6uI58QHfBAn2FpH98xWERNfyL55gxBULdMASXzpv1UxmjtRFjCg=="/>
21
- </item>
22
- <item>
23
- <title>1.0.0</title>
24
- <pubDate>Sat, 22 Mar 2026 18:00:00 +0100</pubDate>
25
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
26
- <sparkle:version>48</sparkle:version>
27
- <sparkle:shortVersionString>1.0.0</sparkle:shortVersionString>
28
- <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
29
- <description><![CDATA[<h2>Runic 1.0.0</h2>
30
- <ul>
31
- <li>26 AI providers including Vertex AI and Qwen/DashScope</li>
32
- <li>Inline line charts (1h/6h/1d/7d/30d), hourly/weekly bar charts</li>
33
- <li>Provider tab bar with brand icons and Overview tab</li>
34
- <li>Hero stat, glassmorphism cards with sparklines</li>
35
- <li>Subscription utilization and usage window comparison charts</li>
36
- <li>Export usage as CSV or JSON</li>
37
- <li>Budget breach notifications</li>
38
- <li>Dark/Light/System theme</li>
39
- <li>Liquid UI animations</li>
40
- </ul>
41
- ]]></description>
42
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v1.0.0/Runic-1.0.0.zip" length="30772430" type="application/octet-stream" sparkle:edSignature="a065lJa+Gwv2mH8DcniAxFW4tHB2JD4ZnT39+tXWs0k4p+Zq61WKi699aowEf8HakfgnSU7OQ3YdL5X0XYn7CQ=="/>
43
- </item>
44
- <item>
45
- <title>0.16.0</title>
46
- <pubDate>Mon, 29 Dec 2025 19:03:57 +0100</pubDate>
47
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
48
- <sparkle:version>46</sparkle:version>
49
- <sparkle:shortVersionString>0.16.0</sparkle:shortVersionString>
50
- <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
51
- <description><![CDATA[<h2>Runic 0.16.0</h2>
52
- <ul>
53
- <li>Menu bar: optional “percent mode” (provider brand icons + percentage labels) via Advanced toggle.</li>
54
- <li>CLI: add <code>runic cost</code> to print local cost usage (text/JSON) for Codex + Claude.</li>
55
- <li>Cost: align local cost scanner with ccusage; stabilize parsing/decoding and handle large JSONL lines.</li>
56
- <li>Claude: skip pricing for unknown models (tokens still tracked) to avoid hard-coded legacy prices.</li>
57
- <li>Performance: reduce menu bar CPU usage by caching morph icons, skipping redundant status-item updates, and caching provider enablement/order during animations.</li>
58
- <li>Menu: improve provider switcher hover contrast in light mode.</li>
59
- <li>Icons: refresh Droid + Claude brand assets to better match menu sizing.</li>
60
- <li>CI: avoid interactive login-shell probes to reduce noisy “CLI missing” errors.</li>
61
- </ul>
62
- <p><a href="https://github.com/sriinnu/Runic/blob/main/CHANGELOG.md">View full changelog</a></p>
63
- ]]></description>
64
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v0.16.0/Runic-0.16.0.zip" length="7607740" type="application/octet-stream" sparkle:edSignature="D/d9z4+8/gqpeoXBKkmEkzpPrzs9pp1DQeCETkndA2kyi1wKTAjPyw6Hj6V1Pe3T5ge66E0N5De88ilUp6WmBw=="/>
65
- </item>
66
- <item>
67
- <title>0.15.3</title>
68
- <pubDate>Sun, 28 Dec 2025 20:18:41 +0100</pubDate>
69
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
70
- <sparkle:version>45</sparkle:version>
71
- <sparkle:shortVersionString>0.15.3</sparkle:shortVersionString>
72
- <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
73
- <description><![CDATA[<h2>Runic 0.15.3</h2>
74
- <ul>
75
- <li>Codex: default to OAuth usage API (ChatGPT backend) with CLI-only override in Debug.</li>
76
- <li>Codex: map OAuth credits balance directly, avoiding web fallback for credits.</li>
77
- <li>Preferences: add optional “Access OpenAI via web” toggle and show blended source labels when web extras are active.</li>
78
- <li>Copilot: replace blocking auth wait dialog with a non-modal sheet to avoid stuck login.</li>
79
- </ul>
80
- <ul>
81
- <li>CI: stabilize Claude CLI version detection test.</li>
82
- </ul>
83
- <p><a href="https://github.com/sriinnu/Runic/blob/main/CHANGELOG.md">View full changelog</a></p>
84
- ]]></description>
85
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v0.15.3/Runic-0.15.3.zip" length="7549248" type="application/octet-stream" sparkle:edSignature="3xoy09WoQnTuskCqIPRHriFPmmTJCVZ4BIgufRNLqfNhszmE1MSf2pWQVYzgt0SBVDrY+12/0dCie9TG0RqTBg=="/>
86
- </item>
87
- <item>
88
- <title>0.15.2</title>
89
- <pubDate>Sun, 28 Dec 2025 18:51:01 +0100</pubDate>
90
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
91
- <sparkle:version>44</sparkle:version>
92
- <sparkle:shortVersionString>0.15.2</sparkle:shortVersionString>
93
- <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
94
- <description><![CDATA[<h2>Runic 0.15.2</h2>
95
- <ul>
96
- <li>Copilot: fix device-flow waiting modal to close reliably after auth (and avoid stuck waits).</li>
97
- <li>Packaging: include the KeyboardShortcuts resource bundle to prevent Settings → Keyboard shortcut crashes in packaged builds.</li>
98
- </ul>
99
- <p><a href="https://github.com/sriinnu/Runic/blob/main/CHANGELOG.md">View full changelog</a></p>
100
- ]]></description>
101
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v0.15.2/Runic-0.15.2.zip" length="7413967" type="application/octet-stream" sparkle:edSignature="vv7kPaGk0vzAj1AJ5EEbRE0kXtE4iIscrkhxsjU8X+BDT5HQkwJTully+OivJFCksjuUyaZIV74tfi1kWlSWDQ=="/>
102
- </item>
103
- <item>
104
- <title>0.14.0</title>
105
- <pubDate>Thu, 25 Dec 2025 03:56:15 +0100</pubDate>
106
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
107
- <sparkle:version>41</sparkle:version>
108
- <sparkle:shortVersionString>0.14.0</sparkle:shortVersionString>
109
- <sparkle:minimumSystemVersion>15.0</sparkle:minimumSystemVersion>
110
- <description><![CDATA[<h2>Runic 0.14.0</h2>
111
- <ul>
112
- <li>Antigravity: new local provider for the Antigravity language server (Claude + Gemini quotas) with an experimental toggle; improved plan display + debug output; clearer not-running/port errors; hide account switch.</li>
113
- <li>Status: poll Google Workspace incidents for Gemini + Antigravity; Status Page opens the Workspace status page.</li>
114
- <li>Settings: add Providers tab; move cost usage + status toggles to General; keep display controls in Advanced.</li>
115
- <li>Menu/UI: widen the menu for four providers; cards/charts adapt to menu width; tighten provider switcher/toggle spacing; keep menus refreshed while open.</li>
116
- <li>Gemini: hide the dashboard action when unsupported.</li>
117
- <li>Claude: fix Extra usage spend/limit units (cents); improve CLI probe stability; surface web session info in Debug.</li>
118
- <li>OpenAI web: fix dashboard ghost overlay on desktop (WebKit keepalive window).</li>
119
- <li>Debug: add a debug-lldb build mode for troubleshooting.</li>
120
- </ul>
121
- <p><a href="https://github.com/sriinnu/Runic/blob/main/CHANGELOG.md">View full changelog</a></p>
122
- ]]></description>
123
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v0.14.0/Runic-0.14.0.zip" length="5382347" type="application/octet-stream" sparkle:edSignature="qhj8jnqH/eOXEP2plbZyTb8w1x0Afcpix0kC+pzMh5jX9Lkf3Yg2Bvd6/vsKdhOObEwJjQZRb/RKiSBx55J3DA=="/>
124
- </item>
125
- <item>
126
- <title>0.13.0</title>
127
- <pubDate>Wed, 24 Dec 2025 01:53:35 +0100</pubDate>
128
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
129
- <sparkle:version>40</sparkle:version>
130
- <sparkle:shortVersionString>0.13.0</sparkle:shortVersionString>
131
- <sparkle:minimumSystemVersion>15.0</sparkle:minimumSystemVersion>
132
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v0.13.0/Runic-0.13.0.zip" length="5099083" type="application/octet-stream" sparkle:edSignature="EmhEmcTFQEpuQG6vZ288l9j278VjnpQdQcmZnU1JDvzERVTtnIg+8RDlsHV9niwejaOBPX6mvXST3vNJHpwADA=="/>
133
- </item>
134
- <item>
135
- <title>0.12.0</title>
136
- <pubDate>Tue, 23 Dec 2025 04:39:05 +0100</pubDate>
137
- <link>https://raw.githubusercontent.com/sriinnu/Runic/main/appcast.xml</link>
138
- <sparkle:version>39</sparkle:version>
139
- <sparkle:shortVersionString>0.12.0</sparkle:shortVersionString>
140
- <sparkle:minimumSystemVersion>15.0</sparkle:minimumSystemVersion>
141
- <enclosure url="https://github.com/sriinnu/Runic/releases/download/v0.12.0/Runic-0.12.0.zip" length="4888386" type="application/octet-stream" sparkle:edSignature="tQMHO/RNAbvwRHXYnLAkNV2ksiV722qR8fEYzcbipgetacfPnwnLJ0Pe/lAiZ03PBmj3BkisHb74GosUlSV+DQ=="/>
142
- </item>
143
- </channel>
144
- </rss>
@@ -1,24 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="76 100 360 360" fill="none">
2
- <!-- Chip 1 (Bottom) -->
3
- <ellipse cx="256" cy="380" rx="100" ry="40" fill="#1D4ED8" />
4
- <path d="M156 380 V 400 C 156 422, 200 440, 256 440 C 312 440, 356 422, 356 400 V 380" fill="#1E3A8A" />
5
-
6
- <!-- Chip 2 -->
7
- <ellipse cx="256" cy="340" rx="100" ry="40" fill="#2563EB" />
8
- <path d="M156 340 V 360 C 156 382, 200 400, 256 400 C 312 400, 356 382, 356 360 V 340" fill="#1D4ED8" />
9
-
10
- <!-- Chip 3 -->
11
- <ellipse cx="256" cy="300" rx="100" ry="40" fill="#3B82F6" />
12
- <path d="M156 300 V 320 C 156 342, 200 360, 256 360 C 312 360, 356 342, 356 320 V 300" fill="#2563EB" />
13
-
14
- <!-- Chip 4 (Top - Glowing) -->
15
- <ellipse cx="256" cy="260" rx="100" ry="40" fill="#60A5FA" />
16
- <path d="M156 260 V 280 C 156 302, 200 320, 256 320 C 312 320, 356 302, 356 280 V 260" fill="#3B82F6" />
17
-
18
- <!-- Top Surface Glow -->
19
- <ellipse cx="256" cy="260" rx="80" ry="30" fill="#93C5FD" opacity="0.5" />
20
-
21
- <!-- Floating "Spent" Token (Ghost) -->
22
- <ellipse cx="256" cy="160" rx="100" ry="40" stroke="#60A5FA" stroke-width="2" stroke-dasharray="8 8" fill="none" opacity="0.3" />
23
-
24
- </svg>
@@ -1,15 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none">
2
- <!-- clean two-bar meter - exactly what the menu bar shows -->
3
-
4
- <!-- session bar (thick, 70% filled) -->
5
- <rect x="64" y="88" width="128" height="32" rx="16" fill="#14B8A6" opacity="0.25"/>
6
- <rect x="64" y="88" width="90" height="32" rx="16" fill="#14B8A6"/>
7
-
8
- <!-- weekly bar (thin, 55% filled) -->
9
- <rect x="64" y="136" width="128" height="16" rx="8" fill="#2DD4BF" opacity="0.25"/>
10
- <rect x="64" y="136" width="70" height="16" rx="8" fill="#2DD4BF"/>
11
-
12
- <!-- simple reset indicators -->
13
- <circle cx="194" cy="104" r="4" fill="#0D9488"/>
14
- <circle cx="194" cy="144" r="3" fill="#0D9488"/>
15
- </svg>
package/assets/logo.svg DELETED
@@ -1,20 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none">
2
- <!-- session window (thick) -->
3
- <path d="M64 96
4
- C64 64 104 64 128 96
5
- C152 128 192 128 192 96
6
- C192 64 152 64 128 96
7
- C104 128 64 128 64 96"
8
- stroke="#14B8A6" stroke-width="18"
9
- stroke-linecap="round" stroke-linejoin="round"/>
10
-
11
- <!-- telemetry knot (center accent) -->
12
- <rect x="112" y="80" width="32" height="32" rx="16" fill="#2DD4BF"/>
13
-
14
- <!-- usage bars (darker teal) -->
15
- <g fill="#0F766E">
16
- <rect x="114" y="90" width="8" height="22" rx="4"/>
17
- <rect x="124" y="86" width="8" height="26" rx="4"/>
18
- <rect x="134" y="92" width="8" height="20" rx="4"/>
19
- </g>
20
- </svg>
package/assets/logo2.svg DELETED
@@ -1,43 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none">
2
- <!-- dual-ring meter - emphasizes two separate tracking windows -->
3
-
4
- <!-- outer ring (weekly window - 60% arc) -->
5
- <circle cx="128" cy="128" r="96"
6
- stroke="#2DD4BF"
7
- stroke-width="16"
8
- opacity="0.2"
9
- stroke-dasharray="602 602"/>
10
- <circle cx="128" cy="128" r="96"
11
- stroke="#2DD4BF"
12
- stroke-width="16"
13
- stroke-dasharray="361 241"
14
- stroke-linecap="round"
15
- transform="rotate(-90 128 128)"/>
16
-
17
- <!-- inner ring (session window - 75% arc) -->
18
- <circle cx="128" cy="128" r="64"
19
- stroke="#14B8A6"
20
- stroke-width="20"
21
- opacity="0.2"
22
- stroke-dasharray="402 402"/>
23
- <circle cx="128" cy="128" r="64"
24
- stroke="#14B8A6"
25
- stroke-width="20"
26
- stroke-dasharray="301 101"
27
- stroke-linecap="round"
28
- transform="rotate(-90 128 128)"/>
29
-
30
- <!-- center usage indicator -->
31
- <circle cx="128" cy="128" r="28" fill="#0F766E"/>
32
-
33
- <!-- micro bars -->
34
- <g fill="#14B8A6">
35
- <rect x="118" y="120" width="6" height="16" rx="3"/>
36
- <rect x="128" y="116" width="6" height="24" rx="3"/>
37
- <rect x="138" y="122" width="6" height="12" rx="3"/>
38
- </g>
39
-
40
- <!-- reset markers -->
41
- <circle cx="128" cy="24" r="6" fill="#2DD4BF"/>
42
- <circle cx="128" cy="20" r="6" fill="#14B8A6"/>
43
- </svg>
package/bin/docs-list DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
4
- PROJECT_ROOT=$(cd "$SCRIPT_DIR/.." && pwd)
5
- node "$PROJECT_ROOT/Scripts/docs-list.mjs" "$@"
package/build-and-run.sh DELETED
@@ -1,369 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- ################################################################################
4
- # build-and-run.sh
5
- #
6
- # Purpose: Quick build and run script for Runic
7
- #
8
- # Description:
9
- # - Builds Runic with swift build -c release
10
- # - Copies executable to app bundle
11
- # - Copies frameworks (Sparkle) to app bundle
12
- # - Sets up proper directory structure
13
- # - Optionally opens the app after building
14
- #
15
- # Usage:
16
- # ./build-and-run.sh [OPTIONS]
17
- #
18
- # Options:
19
- # --no-build Skip building, just copy frameworks
20
- # --no-run Build but don't open the app
21
- # --debug Build in debug mode instead of release
22
- # --clean Clean before building
23
- # --verbose Show verbose output
24
- # --help Show this help message
25
- #
26
- # Requirements:
27
- # - macOS 14.0+
28
- # - Swift 6.0+
29
- #
30
- # Author: Runic Team
31
- # Version: 1.0.0
32
- ################################################################################
33
-
34
- set -e # Exit on error
35
- set -u # Exit on undefined variable
36
-
37
- # Script configuration
38
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
39
- PROJECT_ROOT="$SCRIPT_DIR"
40
-
41
- DO_BUILD=true
42
- DO_RUN=true
43
- CONFIGURATION="release"
44
- DO_CLEAN=false
45
- VERBOSE=false
46
-
47
- # Color output
48
- if [[ -t 1 ]]; then
49
- GREEN='\033[0;32m'
50
- YELLOW='\033[1;33m'
51
- RED='\033[0;31m'
52
- BLUE='\033[0;34m'
53
- CYAN='\033[0;36m'
54
- BOLD='\033[1m'
55
- RESET='\033[0m'
56
- else
57
- GREEN=''
58
- YELLOW=''
59
- RED=''
60
- BLUE=''
61
- CYAN=''
62
- BOLD=''
63
- RESET=''
64
- fi
65
-
66
- ################################################################################
67
- # Helper Functions
68
- ################################################################################
69
-
70
- log_info() {
71
- echo -e "${BLUE}[INFO]${RESET} $*"
72
- }
73
-
74
- log_success() {
75
- echo -e "${GREEN}[SUCCESS]${RESET} $*"
76
- }
77
-
78
- log_warning() {
79
- echo -e "${YELLOW}[WARNING]${RESET} $*"
80
- }
81
-
82
- log_error() {
83
- echo -e "${RED}[ERROR]${RESET} $*" >&2
84
- }
85
-
86
- log_step() {
87
- echo -e "\n${CYAN}${BOLD}==>${RESET} ${BOLD}$*${RESET}\n"
88
- }
89
-
90
- show_help() {
91
- sed -n '/^# Purpose:/,/^################################################################################$/p' "$0" | sed 's/^# \?//'
92
- }
93
-
94
- ################################################################################
95
- # Build Functions
96
- ################################################################################
97
-
98
- clean_build() {
99
- if [[ "$DO_CLEAN" == false ]]; then
100
- return 0
101
- fi
102
-
103
- log_step "Cleaning Build Directory"
104
-
105
- cd "$PROJECT_ROOT"
106
-
107
- if [[ -d ".build" ]]; then
108
- log_info "Removing .build directory..."
109
- rm -rf .build
110
- log_success "Build directory cleaned"
111
- else
112
- log_info "No build directory to clean"
113
- fi
114
- }
115
-
116
- build_executable() {
117
- if [[ "$DO_BUILD" == false ]]; then
118
- log_info "Skipping build (--no-build)"
119
- return 0
120
- fi
121
-
122
- log_step "Building Runic Executable"
123
-
124
- cd "$PROJECT_ROOT"
125
-
126
- local build_cmd="swift build -c $CONFIGURATION"
127
-
128
- if [[ "$VERBOSE" == true ]]; then
129
- build_cmd="$build_cmd --verbose"
130
- fi
131
-
132
- log_info "Running: $build_cmd"
133
-
134
- if $build_cmd; then
135
- log_success "Build completed successfully"
136
- else
137
- log_error "Build failed"
138
- return 1
139
- fi
140
- }
141
-
142
- create_app_bundle() {
143
- log_step "Creating Application Bundle"
144
-
145
- cd "$PROJECT_ROOT"
146
-
147
- local app_dir="builds/macos/Runic.app"
148
-
149
- # Create app bundle structure
150
- log_info "Creating app bundle structure at $app_dir"
151
- mkdir -p "$app_dir/Contents/MacOS"
152
- mkdir -p "$app_dir/Contents/Resources"
153
- mkdir -p "$app_dir/Contents/Frameworks"
154
-
155
- # Determine build directory based on configuration
156
- local build_dir
157
- if [[ "$CONFIGURATION" == "release" ]]; then
158
- build_dir=".build/release"
159
- else
160
- build_dir=".build/debug"
161
- fi
162
-
163
- # Copy executable
164
- local executable="$build_dir/Runic"
165
- if [[ ! -f "$executable" ]]; then
166
- log_error "Executable not found at $executable"
167
- log_error "Please run swift build first"
168
- return 1
169
- fi
170
-
171
- log_info "Copying executable..."
172
- cp "$executable" "$app_dir/Contents/MacOS/Runic"
173
- chmod +x "$app_dir/Contents/MacOS/Runic"
174
- log_success "Executable copied"
175
-
176
- # Copy Sparkle framework
177
- local sparkle_source=".build/arm64-apple-macosx/$CONFIGURATION/Sparkle.framework"
178
-
179
- if [[ -d "$sparkle_source" ]]; then
180
- log_info "Copying Sparkle.framework..."
181
- cp -R "$sparkle_source" "$app_dir/Contents/Frameworks/"
182
- log_success "Sparkle.framework copied"
183
-
184
- # Add rpath to executable
185
- log_info "Adding framework rpath..."
186
- install_name_tool -add_rpath @loader_path/../Frameworks "$app_dir/Contents/MacOS/Runic" 2>&1 | grep -v "warning: changes being made" || true
187
- log_success "Framework rpath added"
188
- else
189
- log_warning "Sparkle.framework not found at $sparkle_source"
190
- fi
191
-
192
- # Copy resources
193
- if [[ -d "Sources/Runic/Resources" ]]; then
194
- log_info "Copying resources..."
195
- cp -R Sources/Runic/Resources/* "$app_dir/Contents/Resources/" 2>/dev/null || true
196
- log_success "Resources copied"
197
- fi
198
-
199
- # Copy icon if exists
200
- if [[ -f "Icon.icns" ]]; then
201
- cp "Icon.icns" "$app_dir/Contents/Resources/"
202
- log_info "Icon copied"
203
- fi
204
-
205
- # Create Info.plist
206
- local version="1.0.0"
207
- if [[ -f "version.env" ]]; then
208
- source "version.env"
209
- version="${VERSION:-$version}"
210
- fi
211
-
212
- log_info "Creating Info.plist (version: $version)..."
213
- cat > "$app_dir/Contents/Info.plist" << EOF
214
- <?xml version="1.0" encoding="UTF-8"?>
215
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
216
- <plist version="1.0">
217
- <dict>
218
- <key>CFBundleDevelopmentRegion</key>
219
- <string>en</string>
220
- <key>CFBundleExecutable</key>
221
- <string>Runic</string>
222
- <key>CFBundleIconFile</key>
223
- <string>Icon</string>
224
- <key>CFBundleIdentifier</key>
225
- <string>com.sriinnu.athena.Runic</string>
226
- <key>CFBundleInfoDictionaryVersion</key>
227
- <string>6.0</string>
228
- <key>CFBundleName</key>
229
- <string>Runic</string>
230
- <key>CFBundlePackageType</key>
231
- <string>APPL</string>
232
- <key>CFBundleShortVersionString</key>
233
- <string>$version</string>
234
- <key>CFBundleVersion</key>
235
- <string>$version</string>
236
- <key>LSMinimumSystemVersion</key>
237
- <string>14.0</string>
238
- <key>NSPrincipalClass</key>
239
- <string>NSApplication</string>
240
- <key>NSHighResolutionCapable</key>
241
- <true/>
242
- <key>LSUIElement</key>
243
- <true/>
244
- <key>NSUserNotificationAlertStyle</key>
245
- <string>alert</string>
246
- <key>NSSupportsAutomaticTermination</key>
247
- <true/>
248
- <key>NSSupportsSuddenTermination</key>
249
- <true/>
250
- </dict>
251
- </plist>
252
- EOF
253
-
254
- # Sign the entire app bundle after all contents are in place.
255
- # Signing must happen last — install_name_tool and Info.plist creation
256
- # invalidate any earlier signature.
257
- log_info "Signing app bundle..."
258
-
259
- local cert_name=""
260
- local cert_type=""
261
-
262
- if [[ "$CONFIGURATION" == "release" ]]; then
263
- cert_type="Developer ID Application"
264
- cert_name=$(security find-identity -v -p codesigning | grep "Developer ID Application" | head -n 1 | awk -F'"' '{print $2}')
265
- else
266
- cert_type="Apple Development"
267
- cert_name=$(security find-identity -v -p codesigning | grep "Apple Development" | head -n 1 | awk -F'"' '{print $2}')
268
- fi
269
-
270
- if [[ -n "$cert_name" ]]; then
271
- codesign --deep --force --sign "$cert_name" --options runtime "$app_dir" 2>&1 | grep -v "replacing existing signature" || true
272
- log_success "Signed with $cert_type: $cert_name"
273
- else
274
- log_warning "No $cert_type certificate found - using ad-hoc signing"
275
- codesign --deep --force --sign "-" "$app_dir" 2>&1 | grep -v "replacing existing signature" || true
276
- fi
277
-
278
- # Verify signature
279
- if codesign --verify --deep --strict "$app_dir" 2>/dev/null; then
280
- log_success "Signature verification passed"
281
- else
282
- log_warning "Signature verification failed — app may not launch"
283
- fi
284
-
285
- log_success "App bundle created at $app_dir"
286
- }
287
-
288
- run_app() {
289
- if [[ "$DO_RUN" == false ]]; then
290
- log_info "Skipping app launch (--no-run)"
291
- return 0
292
- fi
293
-
294
- log_step "Launching Application"
295
-
296
- local app_path="builds/macos/Runic.app"
297
-
298
- if [[ ! -d "$app_path" ]]; then
299
- log_error "App bundle not found at $app_path"
300
- return 1
301
- fi
302
-
303
- log_info "Opening $app_path..."
304
- open "$app_path"
305
- log_success "Application launched"
306
- }
307
-
308
- ################################################################################
309
- # Main Script
310
- ################################################################################
311
-
312
- main() {
313
- # Parse arguments
314
- while [[ $# -gt 0 ]]; do
315
- case $1 in
316
- --no-build)
317
- DO_BUILD=false
318
- shift
319
- ;;
320
- --no-run)
321
- DO_RUN=false
322
- shift
323
- ;;
324
- --debug)
325
- CONFIGURATION="debug"
326
- shift
327
- ;;
328
- --clean)
329
- DO_CLEAN=true
330
- shift
331
- ;;
332
- --verbose)
333
- VERBOSE=true
334
- shift
335
- ;;
336
- --help|-h)
337
- show_help
338
- exit 0
339
- ;;
340
- *)
341
- log_error "Unknown option: $1"
342
- log_info "Use --help for usage information"
343
- exit 1
344
- ;;
345
- esac
346
- done
347
-
348
- local start_time=$(date +%s)
349
-
350
- log_step "Building and Running Runic"
351
-
352
- clean_build
353
- build_executable || exit 1
354
- create_app_bundle || exit 1
355
- run_app
356
-
357
- local end_time=$(date +%s)
358
- local duration=$((end_time - start_time))
359
-
360
- echo ""
361
- log_success "Completed in ${duration}s"
362
-
363
- if [[ "$DO_RUN" == false ]]; then
364
- echo ""
365
- log_info "To run the app: open builds/macos/Runic.app"
366
- fi
367
- }
368
-
369
- main "$@"
package/docs/.nojekyll DELETED
@@ -1 +0,0 @@
1
-
package/docs/CNAME DELETED
@@ -1 +0,0 @@
1
- runic.app