@sriinnu/runic 1.0.0

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 (584) hide show
  1. package/.swiftformat +50 -0
  2. package/.swiftlint.yml +160 -0
  3. package/CHANGELOG.md +307 -0
  4. package/CONTRIBUTING.md +456 -0
  5. package/Icon.icns +0 -0
  6. package/Icon.icon/Assets/runic.png +0 -0
  7. package/Icon.icon/icon.json +36 -0
  8. package/LICENSE +21 -0
  9. package/Package.resolved +51 -0
  10. package/Package.swift +136 -0
  11. package/Packages/Helix/LICENSE +21 -0
  12. package/Packages/Helix/Package.swift +29 -0
  13. package/Packages/Helix/README.md +976 -0
  14. package/Packages/Helix/Sources/Helix/Binding.swift +111 -0
  15. package/Packages/Helix/Sources/Helix/CommandParser.swift +160 -0
  16. package/Packages/Helix/Sources/Helix/CommandSignature.swift +117 -0
  17. package/Packages/Helix/Sources/Helix/ExpressibleFromArgument.swift +72 -0
  18. package/Packages/Helix/Sources/Helix/HelpGenerator.swift +175 -0
  19. package/Packages/Helix/Sources/Helix/NameSpecification.swift +98 -0
  20. package/Packages/Helix/Sources/Helix/ParsableCommand.swift +204 -0
  21. package/Packages/Helix/Sources/Helix/Platform/DarwinPlatformContext.swift +44 -0
  22. package/Packages/Helix/Sources/Helix/Platform/LinuxPlatformContext.swift +34 -0
  23. package/Packages/Helix/Sources/Helix/Platform/PlatformContext+Default.swift +91 -0
  24. package/Packages/Helix/Sources/Helix/Platform/PlatformContext.swift +94 -0
  25. package/Packages/Helix/Sources/Helix/Platform/PlatformPath.swift +167 -0
  26. package/Packages/Helix/Sources/Helix/Platform/Stdio.swift +99 -0
  27. package/Packages/Helix/Sources/Helix/Platform/WebPlatformContext.swift +146 -0
  28. package/Packages/Helix/Sources/Helix/Platform/WindowsPlatformContext.swift +97 -0
  29. package/Packages/Helix/Sources/Helix/Program.swift +204 -0
  30. package/Packages/Helix/Sources/Helix/PropertyWrappers.swift +367 -0
  31. package/Packages/Silo/LICENSE +21 -0
  32. package/Packages/Silo/Package.swift +34 -0
  33. package/Packages/Silo/README.md +466 -0
  34. package/Packages/Silo/Sources/Silo/BinaryCookiesReader.swift +169 -0
  35. package/Packages/Silo/Sources/Silo/BrowserCookieAnalytics.swift +365 -0
  36. package/Packages/Silo/Sources/Silo/BrowserCookieBackends.swift +594 -0
  37. package/Packages/Silo/Sources/Silo/BrowserCookieClient.swift +326 -0
  38. package/Packages/Silo/Sources/Silo/BrowserCookieExport.swift +154 -0
  39. package/Packages/Silo/Sources/Silo/BrowserCookieImport.swift +119 -0
  40. package/Packages/Silo/Sources/Silo/BrowserCookieMockStore.swift +121 -0
  41. package/Packages/Silo/Sources/Silo/BrowserCookieModels.swift +391 -0
  42. package/Packages/Silo/Sources/Silo/ChromiumCookieReader.swift +240 -0
  43. package/Packages/Silo/Sources/Silo/CryptoSupport.swift +86 -0
  44. package/Packages/Silo/Sources/Silo/FirefoxCookieReader.swift +172 -0
  45. package/Packages/Silo/Sources/Silo/LinuxChromiumCookieReader.swift +172 -0
  46. package/Packages/Silo/Sources/Silo/LinuxSecretService.swift +105 -0
  47. package/Packages/Silo/Sources/Silo/MacOSChromiumCookieReader.swift +191 -0
  48. package/Packages/Silo/Sources/Silo/SQLiteSnapshot.swift +41 -0
  49. package/Packages/Silo/Sources/Silo/WindowsChromiumCookieReader.swift +110 -0
  50. package/README.md +109 -0
  51. package/RuniciOS/App/RuniciOSApp.swift +105 -0
  52. package/RuniciOS/Core/iOSUsageStore.swift +192 -0
  53. package/RuniciOS/Views/ProviderDetailView.swift +312 -0
  54. package/RuniciOS/Views/ProviderListView.swift +228 -0
  55. package/RuniciOS/Widgets/LargeWidget.swift +367 -0
  56. package/RuniciOS/Widgets/LiveActivity.swift +342 -0
  57. package/RuniciOS/Widgets/LockScreenWidget.swift +273 -0
  58. package/RuniciOS/Widgets/MediumWidget.swift +370 -0
  59. package/RuniciOS/Widgets/RunicWidget.swift +274 -0
  60. package/RuniciOS/Widgets/SmallWidget.swift +281 -0
  61. package/RuniciOS/Widgets/WidgetModels.swift +285 -0
  62. package/RuniciOS/Widgets/WidgetTimeline.swift +270 -0
  63. package/Scripts/CREATION-SUMMARY.md +367 -0
  64. package/Scripts/DIRECTORY-STRUCTURE.md +358 -0
  65. package/Scripts/GETTING-STARTED-CHECKLIST.md +364 -0
  66. package/Scripts/INDEX.md +365 -0
  67. package/Scripts/QUICK-REFERENCE.md +164 -0
  68. package/Scripts/README-SCRIPTS.md +926 -0
  69. package/Scripts/build-android.sh +526 -0
  70. package/Scripts/build-ios.sh +529 -0
  71. package/Scripts/build-macos.sh +603 -0
  72. package/Scripts/build-windows.sh +504 -0
  73. package/Scripts/build_icon.sh +49 -0
  74. package/Scripts/changelog-to-html.sh +89 -0
  75. package/Scripts/check-release-assets.sh +10 -0
  76. package/Scripts/ci-config.yml +474 -0
  77. package/Scripts/compile_and_run.sh +219 -0
  78. package/Scripts/compile_and_run_adhoc.sh +4 -0
  79. package/Scripts/docs-list.mjs +119 -0
  80. package/Scripts/make_appcast.sh +58 -0
  81. package/Scripts/package_app.sh +409 -0
  82. package/Scripts/release-lib.sh +214 -0
  83. package/Scripts/release.sh +76 -0
  84. package/Scripts/setup-all.sh +387 -0
  85. package/Scripts/setup-ios.sh +404 -0
  86. package/Scripts/setup-react-native.sh +523 -0
  87. package/Scripts/sign-and-notarize.sh +122 -0
  88. package/Scripts/test_live_update.sh +38 -0
  89. package/Scripts/validate_changelog.sh +23 -0
  90. package/Scripts/verify_appcast.sh +92 -0
  91. package/Sources/Runic/About.swift +93 -0
  92. package/Sources/Runic/AppNotifications.swift +115 -0
  93. package/Sources/Runic/Controllers/StatusItemController+Actions.swift +657 -0
  94. package/Sources/Runic/Controllers/StatusItemController+Animation.swift +518 -0
  95. package/Sources/Runic/Controllers/StatusItemController+ChartSubmenus.swift +810 -0
  96. package/Sources/Runic/Controllers/StatusItemController+CustomProviders.swift +87 -0
  97. package/Sources/Runic/Controllers/StatusItemController+Menu.swift +1379 -0
  98. package/Sources/Runic/Controllers/StatusItemController+MenuCards.swift +337 -0
  99. package/Sources/Runic/Controllers/StatusItemController+MenuHelpers.swift +395 -0
  100. package/Sources/Runic/Controllers/StatusItemController.swift +360 -0
  101. package/Sources/Runic/Core/BudgetNotificationManager.swift +80 -0
  102. package/Sources/Runic/Core/Login/ClaudeLoginRunner.swift +103 -0
  103. package/Sources/Runic/Core/Login/CodexLoginRunner.swift +154 -0
  104. package/Sources/Runic/Core/Login/CursorLoginRunner.swift +206 -0
  105. package/Sources/Runic/Core/Login/GeminiLoginRunner.swift +95 -0
  106. package/Sources/Runic/Core/Rendering/IconRenderer.swift +1216 -0
  107. package/Sources/Runic/Core/Rendering/IconView.swift +120 -0
  108. package/Sources/Runic/Core/Rendering/ProviderBrandIcon.swift +71 -0
  109. package/Sources/Runic/Core/RunicAnimation.swift +53 -0
  110. package/Sources/Runic/Core/RunicColors.swift +73 -0
  111. package/Sources/Runic/Core/RunicCornerRadius.swift +15 -0
  112. package/Sources/Runic/Core/RunicSpacing.swift +68 -0
  113. package/Sources/Runic/Core/Stores/AuggieTokenStore.swift +143 -0
  114. package/Sources/Runic/Core/Stores/AzureOpenAITokenStore.swift +143 -0
  115. package/Sources/Runic/Core/Stores/CerebrasTokenStore.swift +143 -0
  116. package/Sources/Runic/Core/Stores/CohereTokenStore.swift +143 -0
  117. package/Sources/Runic/Core/Stores/CopilotTokenStore.swift +143 -0
  118. package/Sources/Runic/Core/Stores/CustomProviderStore.swift +158 -0
  119. package/Sources/Runic/Core/Stores/DeepSeekTokenStore.swift +143 -0
  120. package/Sources/Runic/Core/Stores/FireworksTokenStore.swift +143 -0
  121. package/Sources/Runic/Core/Stores/GroqTokenStore.swift +143 -0
  122. package/Sources/Runic/Core/Stores/KimiTokenStore.swift +143 -0
  123. package/Sources/Runic/Core/Stores/MiniMaxCookieHeaderStore.swift +143 -0
  124. package/Sources/Runic/Core/Stores/MiniMaxGroupIDStore.swift +143 -0
  125. package/Sources/Runic/Core/Stores/MiniMaxTokenStore.swift +143 -0
  126. package/Sources/Runic/Core/Stores/MistralTokenStore.swift +143 -0
  127. package/Sources/Runic/Core/Stores/OpenRouterTokenStore.swift +143 -0
  128. package/Sources/Runic/Core/Stores/PerplexityTokenStore.swift +143 -0
  129. package/Sources/Runic/Core/Stores/ProviderToggleStore.swift +30 -0
  130. package/Sources/Runic/Core/Stores/QwenTokenStore.swift +143 -0
  131. package/Sources/Runic/Core/Stores/SambaNovaTokenStore.swift +143 -0
  132. package/Sources/Runic/Core/Stores/SettingsStore.swift +1702 -0
  133. package/Sources/Runic/Core/Stores/TogetherTokenStore.swift +143 -0
  134. package/Sources/Runic/Core/Stores/UsageStore+Accessors.swift +20 -0
  135. package/Sources/Runic/Core/Stores/UsageStore+Status.swift +189 -0
  136. package/Sources/Runic/Core/Stores/UsageStore+TokenCost.swift +33 -0
  137. package/Sources/Runic/Core/Stores/UsageStore+WidgetSnapshot.swift +67 -0
  138. package/Sources/Runic/Core/Stores/UsageStore.swift +3564 -0
  139. package/Sources/Runic/Core/Stores/XAITokenStore.swift +143 -0
  140. package/Sources/Runic/Core/Stores/ZaiTokenStore.swift +143 -0
  141. package/Sources/Runic/Core/UsageExporter.swift +193 -0
  142. package/Sources/Runic/Date+RelativeDescription.swift +21 -0
  143. package/Sources/Runic/HiddenWindowView.swift +32 -0
  144. package/Sources/Runic/InstallOrigin.swift +9 -0
  145. package/Sources/Runic/KeyboardShortcuts+Names.swift +6 -0
  146. package/Sources/Runic/MouseLocationReader.swift +65 -0
  147. package/Sources/Runic/Notifications+Runic.swift +6 -0
  148. package/Sources/Runic/OpenAICreditsPurchaseWindowController.swift +503 -0
  149. package/Sources/Runic/ProviderRegistry.swift +100 -0
  150. package/Sources/Runic/ProviderSwitcherButtons.swift +267 -0
  151. package/Sources/Runic/Providers/Antigravity/AntigravityLoginFlow.swift +11 -0
  152. package/Sources/Runic/Providers/Antigravity/AntigravityProviderImplementation.swift +14 -0
  153. package/Sources/Runic/Providers/Auggie/AuggieProviderImplementation.swift +24 -0
  154. package/Sources/Runic/Providers/Azure/AzureProviderImplementation.swift +52 -0
  155. package/Sources/Runic/Providers/Bedrock/BedrockProviderImplementation.swift +42 -0
  156. package/Sources/Runic/Providers/Cerebras/CerebrasProviderImplementation.swift +24 -0
  157. package/Sources/Runic/Providers/Claude/ClaudeLoginFlow.swift +26 -0
  158. package/Sources/Runic/Providers/Claude/ClaudeProviderImplementation.swift +14 -0
  159. package/Sources/Runic/Providers/Codex/CodexLoginFlow.swift +18 -0
  160. package/Sources/Runic/Providers/Codex/CodexProviderImplementation.swift +15 -0
  161. package/Sources/Runic/Providers/Cohere/CohereProviderImplementation.swift +24 -0
  162. package/Sources/Runic/Providers/Copilot/CopilotLoginFlow.swift +193 -0
  163. package/Sources/Runic/Providers/Copilot/CopilotProviderImplementation.swift +110 -0
  164. package/Sources/Runic/Providers/Cursor/CursorLoginFlow.swift +28 -0
  165. package/Sources/Runic/Providers/Cursor/CursorProviderImplementation.swift +15 -0
  166. package/Sources/Runic/Providers/DeepSeek/DeepSeekProviderImplementation.swift +24 -0
  167. package/Sources/Runic/Providers/Factory/FactoryLoginFlow.swift +12 -0
  168. package/Sources/Runic/Providers/Factory/FactoryProviderImplementation.swift +15 -0
  169. package/Sources/Runic/Providers/Fireworks/FireworksProviderImplementation.swift +24 -0
  170. package/Sources/Runic/Providers/Gemini/GeminiLoginFlow.swift +20 -0
  171. package/Sources/Runic/Providers/Gemini/GeminiProviderImplementation.swift +15 -0
  172. package/Sources/Runic/Providers/Groq/GroqProviderImplementation.swift +24 -0
  173. package/Sources/Runic/Providers/Kimi/KimiProviderImplementation.swift +24 -0
  174. package/Sources/Runic/Providers/MiniMax/MiniMaxProviderImplementation.swift +32 -0
  175. package/Sources/Runic/Providers/Mistral/MistralProviderImplementation.swift +24 -0
  176. package/Sources/Runic/Providers/OpenRouter/OpenRouterProviderImplementation.swift +24 -0
  177. package/Sources/Runic/Providers/Perplexity/PerplexityProviderImplementation.swift +24 -0
  178. package/Sources/Runic/Providers/SambaNova/SambaNovaProviderImplementation.swift +24 -0
  179. package/Sources/Runic/Providers/Shared/ProviderCatalog.swift +15 -0
  180. package/Sources/Runic/Providers/Shared/ProviderImplementation.swift +48 -0
  181. package/Sources/Runic/Providers/Shared/ProviderImplementationRegistry.swift +66 -0
  182. package/Sources/Runic/Providers/Shared/ProviderLoginFlow.swift +12 -0
  183. package/Sources/Runic/Providers/Shared/ProviderSettingsDescriptors.swift +99 -0
  184. package/Sources/Runic/Providers/Shared/SystemSettingsLinks.swift +18 -0
  185. package/Sources/Runic/Providers/Together/TogetherProviderImplementation.swift +24 -0
  186. package/Sources/Runic/Providers/XAI/XAIProviderImplementation.swift +24 -0
  187. package/Sources/Runic/Providers/Zai/ZaiProviderImplementation.swift +24 -0
  188. package/Sources/Runic/Resources/ProviderIcon-antigravity.svg +2 -0
  189. package/Sources/Runic/Resources/ProviderIcon-auggie.svg +3 -0
  190. package/Sources/Runic/Resources/ProviderIcon-azure.svg +5 -0
  191. package/Sources/Runic/Resources/ProviderIcon-bedrock.svg +7 -0
  192. package/Sources/Runic/Resources/ProviderIcon-cerebras.svg +3 -0
  193. package/Sources/Runic/Resources/ProviderIcon-claude.svg +1 -0
  194. package/Sources/Runic/Resources/ProviderIcon-codex.svg +1 -0
  195. package/Sources/Runic/Resources/ProviderIcon-cohere.svg +3 -0
  196. package/Sources/Runic/Resources/ProviderIcon-copilot.svg +1 -0
  197. package/Sources/Runic/Resources/ProviderIcon-cursor.svg +3 -0
  198. package/Sources/Runic/Resources/ProviderIcon-deepseek.svg +4 -0
  199. package/Sources/Runic/Resources/ProviderIcon-factory.svg +3 -0
  200. package/Sources/Runic/Resources/ProviderIcon-fireworks.svg +3 -0
  201. package/Sources/Runic/Resources/ProviderIcon-gemini.svg +1 -0
  202. package/Sources/Runic/Resources/ProviderIcon-groq.svg +1 -0
  203. package/Sources/Runic/Resources/ProviderIcon-kimi.svg +4 -0
  204. package/Sources/Runic/Resources/ProviderIcon-minimax.svg +1 -0
  205. package/Sources/Runic/Resources/ProviderIcon-mistral.svg +5 -0
  206. package/Sources/Runic/Resources/ProviderIcon-openrouter.svg +7 -0
  207. package/Sources/Runic/Resources/ProviderIcon-perplexity.svg +4 -0
  208. package/Sources/Runic/Resources/ProviderIcon-qwen.svg +9 -0
  209. package/Sources/Runic/Resources/ProviderIcon-sambanova.svg +4 -0
  210. package/Sources/Runic/Resources/ProviderIcon-together.svg +5 -0
  211. package/Sources/Runic/Resources/ProviderIcon-vertexai.svg +17 -0
  212. package/Sources/Runic/Resources/ProviderIcon-xai.svg +3 -0
  213. package/Sources/Runic/Resources/ProviderIcon-zai.svg +5 -0
  214. package/Sources/Runic/Resources/RunicMenubarIcon.svg +7 -0
  215. package/Sources/Runic/RunicApp.swift +357 -0
  216. package/Sources/Runic/SessionQuotaNotifications.swift +58 -0
  217. package/Sources/Runic/UsagePaceText.swift +52 -0
  218. package/Sources/Runic/UsageProgressBar.swift +224 -0
  219. package/Sources/Runic/Utilities/DisplayLink.swift +96 -0
  220. package/Sources/Runic/Utilities/LoadingPattern.swift +60 -0
  221. package/Sources/Runic/Utilities/PerformanceConstants.swift +85 -0
  222. package/Sources/Runic/Views/Menu/AlertsMenuView.swift +256 -0
  223. package/Sources/Runic/Views/Menu/ChartPanelStyle.swift +22 -0
  224. package/Sources/Runic/Views/Menu/CostComparativeChartMenuView.swift +275 -0
  225. package/Sources/Runic/Views/Menu/CostHistoryChartMenuView.swift +377 -0
  226. package/Sources/Runic/Views/Menu/CreditsHistoryChartMenuView.swift +312 -0
  227. package/Sources/Runic/Views/Menu/EfficiencyMetricsMenuView.swift +312 -0
  228. package/Sources/Runic/Views/Menu/HeroStatCardsMenuView.swift +228 -0
  229. package/Sources/Runic/Views/Menu/HourlyActivityChartMenuView.swift +228 -0
  230. package/Sources/Runic/Views/Menu/InlineUsageChartView.swift +162 -0
  231. package/Sources/Runic/Views/Menu/MenuCardEntranceModifier.swift +64 -0
  232. package/Sources/Runic/Views/Menu/MenuCardSidebarView.swift +268 -0
  233. package/Sources/Runic/Views/Menu/MenuCardSkeletonView.swift +104 -0
  234. package/Sources/Runic/Views/Menu/MenuCardView.swift +1900 -0
  235. package/Sources/Runic/Views/Menu/MenuContent.swift +150 -0
  236. package/Sources/Runic/Views/Menu/MenuDescriptor.swift +369 -0
  237. package/Sources/Runic/Views/Menu/MenuHighlightStyle.swift +42 -0
  238. package/Sources/Runic/Views/Menu/ModelBreakdownMenuView.swift +235 -0
  239. package/Sources/Runic/Views/Menu/OverviewMenuView.swift +141 -0
  240. package/Sources/Runic/Views/Menu/ProjectBreakdownMenuView.swift +209 -0
  241. package/Sources/Runic/Views/Menu/ProjectBudgetMenuView.swift +220 -0
  242. package/Sources/Runic/Views/Menu/ProviderTabBarView.swift +88 -0
  243. package/Sources/Runic/Views/Menu/SubscriptionUtilizationChartMenuView.swift +201 -0
  244. package/Sources/Runic/Views/Menu/UsageBreakdownChartMenuView.swift +398 -0
  245. package/Sources/Runic/Views/Menu/UsageHeatmapMenuView.swift +232 -0
  246. package/Sources/Runic/Views/Menu/UsageTimelineChartMenuView.swift +417 -0
  247. package/Sources/Runic/Views/Menu/UsageWindowComparisonChartMenuView.swift +190 -0
  248. package/Sources/Runic/Views/Menu/WeeklyActivityChartMenuView.swift +132 -0
  249. package/Sources/Runic/Views/Performance/PerformanceDashboardView.swift +618 -0
  250. package/Sources/Runic/Views/Preferences/LiquidComponents.swift +305 -0
  251. package/Sources/Runic/Views/Preferences/PreferencesAboutPane.swift +271 -0
  252. package/Sources/Runic/Views/Preferences/PreferencesAdvancedPane.swift +268 -0
  253. package/Sources/Runic/Views/Preferences/PreferencesAlertsPane.swift +422 -0
  254. package/Sources/Runic/Views/Preferences/PreferencesAnalyticsPane.swift +641 -0
  255. package/Sources/Runic/Views/Preferences/PreferencesBudgetsPane.swift +344 -0
  256. package/Sources/Runic/Views/Preferences/PreferencesComponents.swift +230 -0
  257. package/Sources/Runic/Views/Preferences/PreferencesCustomProvidersPane.swift +322 -0
  258. package/Sources/Runic/Views/Preferences/PreferencesDebugPane.swift +469 -0
  259. package/Sources/Runic/Views/Preferences/PreferencesGeneralPane.swift +231 -0
  260. package/Sources/Runic/Views/Preferences/PreferencesHelpPane.swift +50 -0
  261. package/Sources/Runic/Views/Preferences/PreferencesIntegrationsPane.swift +497 -0
  262. package/Sources/Runic/Views/Preferences/PreferencesPerformancePane.swift +288 -0
  263. package/Sources/Runic/Views/Preferences/PreferencesProvidersPane.swift +3435 -0
  264. package/Sources/Runic/Views/Preferences/PreferencesSelection.swift +25 -0
  265. package/Sources/Runic/Views/Preferences/PreferencesSyncPane.swift +59 -0
  266. package/Sources/Runic/Views/Preferences/PreferencesView.swift +206 -0
  267. package/Sources/Runic/Views/Rating/QualityRatingView.swift +238 -0
  268. package/Sources/Runic/Views/Team/TeamDashboardView.swift +371 -0
  269. package/Sources/Runic/Views/Team/TeamInviteSheet.swift +175 -0
  270. package/Sources/Runic/Views/Team/TeamManagementView.swift +761 -0
  271. package/Sources/Runic/Views/Team/TeamMemberRow.swift +181 -0
  272. package/Sources/RunicCLI/CLIEntry.swift +942 -0
  273. package/Sources/RunicCLI/CLIRenderer.swift +87 -0
  274. package/Sources/RunicCLI/Commands/EnhancedUsageCommand.swift +588 -0
  275. package/Sources/RunicCLI/Commands/ModelsCommand.swift +362 -0
  276. package/Sources/RunicCLI/Commands/ProjectsCommand.swift +439 -0
  277. package/Sources/RunicCLI/Commands/ResetCommand.swift +429 -0
  278. package/Sources/RunicCLI/Commands/UsageLedgerSourceFactory.swift +168 -0
  279. package/Sources/RunicClaudeWatchdog/main.swift +122 -0
  280. package/Sources/RunicClaudeWebProbe/main.swift +62 -0
  281. package/Sources/RunicCore/AlertRuleStore.swift +187 -0
  282. package/Sources/RunicCore/BrowserCookieImportOrder.swift +25 -0
  283. package/Sources/RunicCore/CopilotUsageModels.swift +84 -0
  284. package/Sources/RunicCore/CostUsageFetcher.swift +119 -0
  285. package/Sources/RunicCore/CostUsageModels.swift +479 -0
  286. package/Sources/RunicCore/CreditsModels.swift +50 -0
  287. package/Sources/RunicCore/CustomProviders/CustomProviderModels.swift +269 -0
  288. package/Sources/RunicCore/CustomProviders/GenericProviderFetcher.swift +622 -0
  289. package/Sources/RunicCore/CustomProviders/ProviderTemplates.swift +500 -0
  290. package/Sources/RunicCore/Host/PTY/TTYCommandRunner.swift +679 -0
  291. package/Sources/RunicCore/Host/Process/SubprocessRunner.swift +135 -0
  292. package/Sources/RunicCore/Integrations/GitHubIntegration.swift +173 -0
  293. package/Sources/RunicCore/Logging/JSONStderrLogHandler.swift +79 -0
  294. package/Sources/RunicCore/Logging/OSLogLogHandler.swift +86 -0
  295. package/Sources/RunicCore/Logging/RunicLog.swift +123 -0
  296. package/Sources/RunicCore/Models/EnhancedUsageModels.swift +371 -0
  297. package/Sources/RunicCore/OpenAIDashboardModels.swift +210 -0
  298. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardBrowserCookieImporter.swift +676 -0
  299. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardFetcher.swift +492 -0
  300. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardNavigationDelegate.swift +51 -0
  301. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardParser.swift +483 -0
  302. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardScrapeScript.swift +558 -0
  303. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebViewCache.swift +204 -0
  304. package/Sources/RunicCore/OpenAIWeb/OpenAIDashboardWebsiteDataStore.swift +78 -0
  305. package/Sources/RunicCore/PathEnvironment.swift +482 -0
  306. package/Sources/RunicCore/Performance/PerformanceModels.swift +371 -0
  307. package/Sources/RunicCore/Performance/PerformanceStorageImpl.swift +409 -0
  308. package/Sources/RunicCore/Policy/UsagePolicyEngine.swift +178 -0
  309. package/Sources/RunicCore/ProjectBudgetStore.swift +99 -0
  310. package/Sources/RunicCore/ProviderCostSnapshot.swift +29 -0
  311. package/Sources/RunicCore/Providers/Antigravity/AntigravityProviderDescriptor.swift +66 -0
  312. package/Sources/RunicCore/Providers/Antigravity/AntigravityStatusProbe.swift +685 -0
  313. package/Sources/RunicCore/Providers/Auggie/AuggieProviderDescriptor.swift +83 -0
  314. package/Sources/RunicCore/Providers/Auggie/AuggieUsageFetcher.swift +142 -0
  315. package/Sources/RunicCore/Providers/Azure/AzureProviderDescriptor.swift +141 -0
  316. package/Sources/RunicCore/Providers/Azure/AzureUsageFetcher.swift +186 -0
  317. package/Sources/RunicCore/Providers/Bedrock/BedrockProviderDescriptor.swift +126 -0
  318. package/Sources/RunicCore/Providers/Bedrock/BedrockUsageFetcher.swift +168 -0
  319. package/Sources/RunicCore/Providers/Cerebras/CerebrasProviderDescriptor.swift +84 -0
  320. package/Sources/RunicCore/Providers/Cerebras/CerebrasUsageFetcher.swift +75 -0
  321. package/Sources/RunicCore/Providers/Claude/ClaudeCLISession.swift +332 -0
  322. package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthCredentials.swift +180 -0
  323. package/Sources/RunicCore/Providers/Claude/ClaudeOAuth/ClaudeOAuthUsageFetcher.swift +137 -0
  324. package/Sources/RunicCore/Providers/Claude/ClaudeProviderDescriptor.swift +207 -0
  325. package/Sources/RunicCore/Providers/Claude/ClaudeStatusProbe.swift +654 -0
  326. package/Sources/RunicCore/Providers/Claude/ClaudeUsageDataSource.swift +28 -0
  327. package/Sources/RunicCore/Providers/Claude/ClaudeUsageFetcher.swift +480 -0
  328. package/Sources/RunicCore/Providers/Claude/ClaudeWeb/ClaudeWebAPIFetcher.swift +780 -0
  329. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthCredentials.swift +146 -0
  330. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexOAuthUsageFetcher.swift +269 -0
  331. package/Sources/RunicCore/Providers/Codex/CodexOAuth/CodexTokenRefresher.swift +100 -0
  332. package/Sources/RunicCore/Providers/Codex/CodexProviderDescriptor.swift +243 -0
  333. package/Sources/RunicCore/Providers/Codex/CodexStatusProbe.swift +125 -0
  334. package/Sources/RunicCore/Providers/Codex/CodexUsageDataSource.swift +24 -0
  335. package/Sources/RunicCore/Providers/Codex/CodexWebDashboardStrategy.swift +181 -0
  336. package/Sources/RunicCore/Providers/Cohere/CohereProviderDescriptor.swift +83 -0
  337. package/Sources/RunicCore/Providers/Cohere/CohereUsageFetcher.swift +85 -0
  338. package/Sources/RunicCore/Providers/Copilot/CopilotDeviceFlow.swift +123 -0
  339. package/Sources/RunicCore/Providers/Copilot/CopilotGitHubCLITokenReader.swift +114 -0
  340. package/Sources/RunicCore/Providers/Copilot/CopilotProviderDescriptor.swift +100 -0
  341. package/Sources/RunicCore/Providers/Copilot/CopilotUsageFetcher.swift +291 -0
  342. package/Sources/RunicCore/Providers/Copilot/CopilotVSCodeTokenReader.swift +386 -0
  343. package/Sources/RunicCore/Providers/Cursor/CursorProviderDescriptor.swift +65 -0
  344. package/Sources/RunicCore/Providers/Cursor/CursorStatusProbe.swift +594 -0
  345. package/Sources/RunicCore/Providers/DeepSeek/DeepSeekProviderDescriptor.swift +85 -0
  346. package/Sources/RunicCore/Providers/DeepSeek/DeepSeekUsageFetcher.swift +108 -0
  347. package/Sources/RunicCore/Providers/Factory/FactoryLocalStorageImporter.swift +398 -0
  348. package/Sources/RunicCore/Providers/Factory/FactoryProviderDescriptor.swift +65 -0
  349. package/Sources/RunicCore/Providers/Factory/FactoryStatusProbe.swift +1275 -0
  350. package/Sources/RunicCore/Providers/Fireworks/FireworksProviderDescriptor.swift +84 -0
  351. package/Sources/RunicCore/Providers/Fireworks/FireworksUsageFetcher.swift +75 -0
  352. package/Sources/RunicCore/Providers/Gemini/GeminiProviderDescriptor.swift +65 -0
  353. package/Sources/RunicCore/Providers/Gemini/GeminiStatusProbe.swift +835 -0
  354. package/Sources/RunicCore/Providers/Groq/GroqProviderDescriptor.swift +83 -0
  355. package/Sources/RunicCore/Providers/Groq/GroqUsageFetcher.swift +71 -0
  356. package/Sources/RunicCore/Providers/Kimi/KimiProviderDescriptor.swift +83 -0
  357. package/Sources/RunicCore/Providers/Kimi/KimiUsageFetcher.swift +77 -0
  358. package/Sources/RunicCore/Providers/MiniMax/MiniMaxProviderDescriptor.swift +92 -0
  359. package/Sources/RunicCore/Providers/MiniMax/MiniMaxSettingsReader.swift +54 -0
  360. package/Sources/RunicCore/Providers/MiniMax/MiniMaxUsageFetcher.swift +171 -0
  361. package/Sources/RunicCore/Providers/MiniMax/MiniMaxWebUsageFetcher.swift +911 -0
  362. package/Sources/RunicCore/Providers/Mistral/MistralProviderDescriptor.swift +84 -0
  363. package/Sources/RunicCore/Providers/Mistral/MistralUsageFetcher.swift +75 -0
  364. package/Sources/RunicCore/Providers/OpenRouter/OpenRouterProviderDescriptor.swift +87 -0
  365. package/Sources/RunicCore/Providers/OpenRouter/OpenRouterUsageFetcher.swift +207 -0
  366. package/Sources/RunicCore/Providers/Perplexity/PerplexityProviderDescriptor.swift +84 -0
  367. package/Sources/RunicCore/Providers/Perplexity/PerplexityUsageFetcher.swift +75 -0
  368. package/Sources/RunicCore/Providers/ProviderBranding.swift +25 -0
  369. package/Sources/RunicCore/Providers/ProviderCLIConfig.swift +17 -0
  370. package/Sources/RunicCore/Providers/ProviderDescriptor.swift +129 -0
  371. package/Sources/RunicCore/Providers/ProviderFetchPlan.swift +263 -0
  372. package/Sources/RunicCore/Providers/ProviderSettingsSnapshot.swift +98 -0
  373. package/Sources/RunicCore/Providers/ProviderTokenResolver.swift +501 -0
  374. package/Sources/RunicCore/Providers/ProviderVersionDetector.swift +68 -0
  375. package/Sources/RunicCore/Providers/Providers.swift +184 -0
  376. package/Sources/RunicCore/Providers/Qwen/QwenProviderDescriptor.swift +84 -0
  377. package/Sources/RunicCore/Providers/Qwen/QwenSettingsReader.swift +30 -0
  378. package/Sources/RunicCore/Providers/Qwen/QwenUsageStats.swift +317 -0
  379. package/Sources/RunicCore/Providers/SambaNova/SambaNovaProviderDescriptor.swift +84 -0
  380. package/Sources/RunicCore/Providers/SambaNova/SambaNovaUsageFetcher.swift +75 -0
  381. package/Sources/RunicCore/Providers/Together/TogetherProviderDescriptor.swift +83 -0
  382. package/Sources/RunicCore/Providers/Together/TogetherUsageFetcher.swift +75 -0
  383. package/Sources/RunicCore/Providers/VertexAI/VertexAIProviderDescriptor.swift +123 -0
  384. package/Sources/RunicCore/Providers/VertexAI/VertexAISettingsReader.swift +48 -0
  385. package/Sources/RunicCore/Providers/VertexAI/VertexAIUsageFetcher.swift +144 -0
  386. package/Sources/RunicCore/Providers/XAI/XAIProviderDescriptor.swift +83 -0
  387. package/Sources/RunicCore/Providers/XAI/XAIUsageFetcher.swift +75 -0
  388. package/Sources/RunicCore/Providers/Zai/ZaiProviderDescriptor.swift +72 -0
  389. package/Sources/RunicCore/Providers/Zai/ZaiSettingsReader.swift +41 -0
  390. package/Sources/RunicCore/Providers/Zai/ZaiUsageStats.swift +724 -0
  391. package/Sources/RunicCore/Sync/BackgroundSyncManager.swift +385 -0
  392. package/Sources/RunicCore/Sync/SyncConflictResolver.swift +310 -0
  393. package/Sources/RunicCore/Sync/SyncProtocol.swift +288 -0
  394. package/Sources/RunicCore/Sync/SyncRecord.swift +405 -0
  395. package/Sources/RunicCore/Sync/SyncUsageExample.swift +294 -0
  396. package/Sources/RunicCore/Sync/TeamSyncRecords.swift +775 -0
  397. package/Sources/RunicCore/Sync/iCloudSyncEngine.swift +333 -0
  398. package/Sources/RunicCore/Team/TeamModels.swift +583 -0
  399. package/Sources/RunicCore/Team/TeamShowbackExporter.swift +495 -0
  400. package/Sources/RunicCore/Team/TeamStore.swift +792 -0
  401. package/Sources/RunicCore/TextParsing.swift +55 -0
  402. package/Sources/RunicCore/UsageFetcher.swift +694 -0
  403. package/Sources/RunicCore/UsageFormatter.swift +410 -0
  404. package/Sources/RunicCore/UsageLedger/ClaudeUsageLogSource.swift +329 -0
  405. package/Sources/RunicCore/UsageLedger/CodexUsageLogSource.swift +448 -0
  406. package/Sources/RunicCore/UsageLedger/OTelGenAILedgerAdapter.swift +550 -0
  407. package/Sources/RunicCore/UsageLedger/UsageLedger.swift +29 -0
  408. package/Sources/RunicCore/UsageLedger/UsageLedgerAggregator.swift +660 -0
  409. package/Sources/RunicCore/UsageLedger/UsageLedgerInsightsAdvisor.swift +209 -0
  410. package/Sources/RunicCore/UsageLedger/UsageLedgerModels.swift +417 -0
  411. package/Sources/RunicCore/UsageLedger/UsageLedgerProjectIdentity.swift +245 -0
  412. package/Sources/RunicCore/UsagePace.swift +81 -0
  413. package/Sources/RunicCore/Vendored/CostUsage/CostUsageCache.swift +73 -0
  414. package/Sources/RunicCore/Vendored/CostUsage/CostUsageJsonl.swift +74 -0
  415. package/Sources/RunicCore/Vendored/CostUsage/CostUsagePricing.swift +208 -0
  416. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Claude.swift +455 -0
  417. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner+Timestamp.swift +132 -0
  418. package/Sources/RunicCore/Vendored/CostUsage/CostUsageScanner.swift +589 -0
  419. package/Sources/RunicCore/WidgetSnapshot.swift +183 -0
  420. package/Sources/RunicMacroSupport/ProviderRegistrationMacros.swift +14 -0
  421. package/Sources/RunicMacros/ProviderRegistrationMacros.swift +216 -0
  422. package/Sources/RunicWidget/RunicWidgetBundle.swift +79 -0
  423. package/Sources/RunicWidget/RunicWidgetProvider.swift +283 -0
  424. package/Sources/RunicWidget/RunicWidgetViews.swift +680 -0
  425. package/Tests/RunicTests/AntigravityStatusProbeTests.swift +50 -0
  426. package/Tests/RunicTests/AppDelegateTests.swift +43 -0
  427. package/Tests/RunicTests/BrowserCookieOrderLabelTests.swift +22 -0
  428. package/Tests/RunicTests/CLIArgumentParsingTests.swift +70 -0
  429. package/Tests/RunicTests/CLICostTests.swift +65 -0
  430. package/Tests/RunicTests/CLIProviderSelectionTests.swift +22 -0
  431. package/Tests/RunicTests/CLISnapshotTests.swift +72 -0
  432. package/Tests/RunicTests/CLIWebFallbackTests.swift +58 -0
  433. package/Tests/RunicTests/ClaudeOAuthTests.swift +164 -0
  434. package/Tests/RunicTests/ClaudeResilienceTests.swift +30 -0
  435. package/Tests/RunicTests/ClaudeUsageTests.swift +370 -0
  436. package/Tests/RunicTests/CodexOAuthTests.swift +122 -0
  437. package/Tests/RunicTests/CodexUsageLogSourceTests.swift +82 -0
  438. package/Tests/RunicTests/CopilotTokenResolverTests.swift +75 -0
  439. package/Tests/RunicTests/CopilotVSCodeTokenReaderTests.swift +75 -0
  440. package/Tests/RunicTests/CostUsageDecodingTests.swift +394 -0
  441. package/Tests/RunicTests/CostUsagePricingTests.swift +50 -0
  442. package/Tests/RunicTests/CostUsageScannerTests.swift +700 -0
  443. package/Tests/RunicTests/CursorStatusProbeTests.swift +323 -0
  444. package/Tests/RunicTests/FactoryStatusProbeTests.swift +69 -0
  445. package/Tests/RunicTests/GeminiAPITestHelpers.swift +94 -0
  446. package/Tests/RunicTests/GeminiLoginAlertTests.swift +28 -0
  447. package/Tests/RunicTests/GeminiStatusProbeAPITests.swift +283 -0
  448. package/Tests/RunicTests/GeminiStatusProbePlanTests.swift +279 -0
  449. package/Tests/RunicTests/GeminiStatusProbeTests.swift +233 -0
  450. package/Tests/RunicTests/GeminiTestEnvironment.swift +87 -0
  451. package/Tests/RunicTests/GoogleWorkspaceStatusTests.swift +73 -0
  452. package/Tests/RunicTests/InstallOriginTests.swift +18 -0
  453. package/Tests/RunicTests/KeyboardShortcutsBundleTests.swift +9 -0
  454. package/Tests/RunicTests/LiveAccountTests.swift +24 -0
  455. package/Tests/RunicTests/LoadingPatternTests.swift +35 -0
  456. package/Tests/RunicTests/MenuCardModelTests.swift +545 -0
  457. package/Tests/RunicTests/MiniMaxCookieHeaderStoreTestSupport.swift +8 -0
  458. package/Tests/RunicTests/MiniMaxGroupIDStoreTestSupport.swift +8 -0
  459. package/Tests/RunicTests/MiniMaxParsingTests.swift +68 -0
  460. package/Tests/RunicTests/MiniMaxTokenStoreTestSupport.swift +8 -0
  461. package/Tests/RunicTests/OTelGenAILedgerAdapterTests.swift +112 -0
  462. package/Tests/RunicTests/OpenAIDashboardBrowserCookieImporterTests.swift +17 -0
  463. package/Tests/RunicTests/OpenAIDashboardFetcherCreditsWaitTests.swift +75 -0
  464. package/Tests/RunicTests/OpenAIDashboardOffscreenHostTests.swift +27 -0
  465. package/Tests/RunicTests/OpenAIDashboardParserTests.swift +134 -0
  466. package/Tests/RunicTests/OpenAIWebAccountSwitchTests.swift +53 -0
  467. package/Tests/RunicTests/OpenRouterTokenStoreTestSupport.swift +92 -0
  468. package/Tests/RunicTests/PathBuilderTests.swift +237 -0
  469. package/Tests/RunicTests/ProviderFetchPipelineTests.swift +160 -0
  470. package/Tests/RunicTests/ProviderIconResourcesTests.swift +38 -0
  471. package/Tests/RunicTests/ProviderMetadataStatusLinkTests.swift +16 -0
  472. package/Tests/RunicTests/ProviderRegistryTests.swift +29 -0
  473. package/Tests/RunicTests/ProviderSettingsDescriptorTests.swift +202 -0
  474. package/Tests/RunicTests/ProviderToggleStoreTests.swift +51 -0
  475. package/Tests/RunicTests/RunicTests.swift +120 -0
  476. package/Tests/RunicTests/SessionQuotaNotificationLogicTests.swift +36 -0
  477. package/Tests/RunicTests/SettingsStoreTests.swift +161 -0
  478. package/Tests/RunicTests/StatusItemAnimationTests.swift +49 -0
  479. package/Tests/RunicTests/StatusMenuTests.swift +434 -0
  480. package/Tests/RunicTests/StatusProbeTests.swift +377 -0
  481. package/Tests/RunicTests/SubprocessRunnerTests.swift +20 -0
  482. package/Tests/RunicTests/SubscriptionDetectionTests.swift +65 -0
  483. package/Tests/RunicTests/TTYCommandRunnerTests.swift +148 -0
  484. package/Tests/RunicTests/TTYIntegrationTests.swift +41 -0
  485. package/Tests/RunicTests/TeamShowbackExporterTests.swift +159 -0
  486. package/Tests/RunicTests/TextParsingTests.swift +12 -0
  487. package/Tests/RunicTests/UsageFormatterTests.swift +112 -0
  488. package/Tests/RunicTests/UsageLedgerAnomalyDetectionTests.swift +172 -0
  489. package/Tests/RunicTests/UsageLedgerForecastTests.swift +213 -0
  490. package/Tests/RunicTests/UsageLedgerInsightsAdvisorTests.swift +83 -0
  491. package/Tests/RunicTests/UsageLedgerProjectNameTests.swift +170 -0
  492. package/Tests/RunicTests/UsagePaceTests.swift +77 -0
  493. package/Tests/RunicTests/UsagePaceTextTests.swift +109 -0
  494. package/Tests/RunicTests/UsagePolicyEngineTests.swift +91 -0
  495. package/Tests/RunicTests/WidgetSnapshotTests.swift +45 -0
  496. package/Tests/RunicTests/ZaiProviderTests.swift +61 -0
  497. package/Tests/RunicTests/ZaiTokenStoreTestSupport.swift +6 -0
  498. package/TestsLinux/PlatformGatingTests.swift +46 -0
  499. package/appcast.xml +105 -0
  500. package/assets/logo-concept-stack.svg +24 -0
  501. package/assets/logo-minimal-bars.svg +15 -0
  502. package/assets/logo.svg +20 -0
  503. package/assets/logo2.svg +43 -0
  504. package/bin/docs-list +5 -0
  505. package/bin/install-runic-cli.sh +32 -0
  506. package/build-and-run.sh +369 -0
  507. package/docs/.nojekyll +1 -0
  508. package/docs/CNAME +1 -0
  509. package/docs/antigravity.md +75 -0
  510. package/docs/architecture.md +32 -0
  511. package/docs/claude.md +93 -0
  512. package/docs/cli-commands/integration_guide.md +371 -0
  513. package/docs/cli-commands/quick_reference.md +362 -0
  514. package/docs/cli-commands/readme.md +361 -0
  515. package/docs/cli.md +156 -0
  516. package/docs/cloudkit_sync_guide.md +495 -0
  517. package/docs/codebase_review.md +288 -0
  518. package/docs/codex-oauth.md +635 -0
  519. package/docs/codex.md +104 -0
  520. package/docs/codexbar.png +0 -0
  521. package/docs/copilot.md +44 -0
  522. package/docs/cursor.md +46 -0
  523. package/docs/design/designcomparisonchart.md +510 -0
  524. package/docs/design/implementationguide.md +792 -0
  525. package/docs/design/menubaricondesignconcepts.md +796 -0
  526. package/docs/design/mockups/hybridiconconcept.svg +62 -0
  527. package/docs/design/mockups/infinityiconconcept.svg +41 -0
  528. package/docs/design/mockups/infinityiconstates.svg +129 -0
  529. package/docs/design/mockups/wavelogorefined.svg +48 -0
  530. package/docs/design/quick_summary.md +426 -0
  531. package/docs/design/readme.md +478 -0
  532. package/docs/design/sizespecifications.md +575 -0
  533. package/docs/design-system.md +836 -0
  534. package/docs/factory.md +103 -0
  535. package/docs/gemini.md +73 -0
  536. package/docs/icon.md +37 -0
  537. package/docs/icon.png +0 -0
  538. package/docs/index.html +175 -0
  539. package/docs/keychain_fix.md +274 -0
  540. package/docs/minimax.md +71 -0
  541. package/docs/packaging.md +25 -0
  542. package/docs/progress-bar-improvements.md +240 -0
  543. package/docs/progress-bar-quick-reference.md +283 -0
  544. package/docs/progress-bar-technical-details.md +432 -0
  545. package/docs/progress-bar-visual-test.swift +375 -0
  546. package/docs/provider.md +202 -0
  547. package/docs/providers.md +86 -0
  548. package/docs/refactor/macros.md +35 -0
  549. package/docs/refresh-loop.md +22 -0
  550. package/docs/releasing-homebrew.md +35 -0
  551. package/docs/releasing.md +121 -0
  552. package/docs/research/concrete_todo_2026-02-22.md +47 -0
  553. package/docs/research/core-feature-research.md +248 -0
  554. package/docs/research/feature_uiux_roadmap_2026-02-22.md +202 -0
  555. package/docs/research/parity_matrix.md +49 -0
  556. package/docs/research/provider_expansion_candidates_2026-02-22.md +80 -0
  557. package/docs/research/provider_model_token_project_matrix_2026-02-23.md +46 -0
  558. package/docs/research/release_gate_checklist.md +57 -0
  559. package/docs/site.css +505 -0
  560. package/docs/sparkle.md +28 -0
  561. package/docs/status.md +28 -0
  562. package/docs/sync/implementation.md +393 -0
  563. package/docs/sync/readme.md +317 -0
  564. package/docs/sync_files_summary.md +391 -0
  565. package/docs/sync_quick_reference.md +225 -0
  566. package/docs/todo.md +11 -0
  567. package/docs/ui.md +29 -0
  568. package/docs/web-integration.md +9 -0
  569. package/docs/widgets.md +85 -0
  570. package/docs/workflows/error-handling-improvements.md +434 -0
  571. package/docs/workflows/folder_structure.md +299 -0
  572. package/docs/workflows/loading_states.md +446 -0
  573. package/docs/workflows/loading_states_examples.md +565 -0
  574. package/docs/workflows/loading_states_flow.md +430 -0
  575. package/docs/workflows/performance_optimizations.md +457 -0
  576. package/docs/workflows/phase1-cli-testing-report.md +313 -0
  577. package/docs/workflows/quick_reference.md +228 -0
  578. package/docs/workflows/readme.md +59 -0
  579. package/docs/workflows/recent_improvements.md +275 -0
  580. package/docs/workflows/sync_enablement_summary.md +400 -0
  581. package/docs/zai.md +43 -0
  582. package/package.json +36 -0
  583. package/runic.png +0 -0
  584. package/version.env +2 -0
@@ -0,0 +1,358 @@
1
+ # Runic Scripts Directory Structure
2
+
3
+ ## Complete Overview
4
+
5
+ ```
6
+ scripts/
7
+ ├── Setup Scripts (One-time initialization)
8
+ │ ├── setup-all.sh ⭐ # One-command setup for everything
9
+ │ ├── setup-ios.sh # iOS Xcode project setup
10
+ │ └── setup-react-native.sh # React Native (Android/Windows) setup
11
+ │
12
+ ├── Build Scripts (Daily development)
13
+ │ ├── build-macos.sh # Build macOS application
14
+ │ ├── build-ios.sh # Build iOS application
15
+ │ ├── build-android.sh # Build Android application
16
+ │ └── build-windows.sh # Build Windows application
17
+ │
18
+ ├── CI/CD Configuration
19
+ │ └── ci-config.yml # GitHub Actions workflow template
20
+ │
21
+ ├── Documentation
22
+ │ ├── README-SCRIPTS.md ⭐ # Comprehensive documentation (19K)
23
+ │ ├── QUICK-REFERENCE.md # Quick reference card
24
+ │ ├── CREATION-SUMMARY.md # What was created
25
+ │ └── DIRECTORY-STRUCTURE.md # This file
26
+ │
27
+ └── Legacy Scripts (Pre-existing)
28
+ ├── build_icon.sh
29
+ ├── changelog-to-html.sh
30
+ ├── check-release-assets.sh
31
+ ├── compile_and_run_adhoc.sh
32
+ ├── compile_and_run.sh
33
+ ├── docs-list.mjs
34
+ ├── make_appcast.sh
35
+ ├── package_app.sh
36
+ ├── release.sh
37
+ ├── sign-and-notarize.sh
38
+ ├── test_live_update.sh
39
+ ├── validate_changelog.sh
40
+ └── verify_appcast.sh
41
+ ```
42
+
43
+ ## New Files Created (11 files)
44
+
45
+ ### Executable Scripts (7)
46
+ 1. ✅ `setup-all.sh` - 9.4K - Master setup orchestrator
47
+ 2. ✅ `setup-ios.sh` - 11K - iOS project initialization
48
+ 3. ✅ `setup-react-native.sh` - 14K - React Native setup
49
+ 4. ✅ `build-macos.sh` - 14K - macOS build automation
50
+ 5. ✅ `build-ios.sh` - 13K - iOS build automation
51
+ 6. ✅ `build-android.sh` - 13K - Android build automation
52
+ 7. ✅ `build-windows.sh` - 14K - Windows build automation
53
+
54
+ ### Configuration Files (1)
55
+ 8. ✅ `ci-config.yml` - 15K - GitHub Actions workflow
56
+
57
+ ### Documentation (3)
58
+ 9. ✅ `README-SCRIPTS.md` - 19K - Main documentation
59
+ 10. ✅ `QUICK-REFERENCE.md` - 2K - Quick reference
60
+ 11. ✅ `CREATION-SUMMARY.md` - 3K - Creation summary
61
+
62
+ ## Build Artifacts Output Structure
63
+
64
+ ```
65
+ builds/
66
+ ├── macos/
67
+ │ ├── Runic.app/ # macOS application bundle
68
+ │ │ ├── Contents/
69
+ │ │ │ ├── MacOS/
70
+ │ │ │ │ └── Runic # Executable
71
+ │ │ │ ├── Resources/
72
+ │ │ │ │ └── Icon.icns
73
+ │ │ │ └── Info.plist
74
+ │ │ └── ...
75
+ │ └── Runic-1.0.0-macos.zip # Distribution archive
76
+ │
77
+ ├── ios/
78
+ │ ├── DerivedData/ # Build products
79
+ │ ├── RuniciOS.xcarchive/ # Archive (if --archive)
80
+ │ └── Export/ # IPA files
81
+ │ └── RuniciOS.ipa
82
+ │
83
+ ├── android/
84
+ │ ├── app-debug.apk # Debug APK
85
+ │ ├── app-release.apk # Release APK
86
+ │ └── app-release.aab # App Bundle (if --aab)
87
+ │
88
+ └── windows/
89
+ ├── RunicApp.exe # Windows executable
90
+ ├── *.dll # Dependencies
91
+ └── Runic-1.0.0-Windows-x64.zip # Distribution package
92
+ ```
93
+
94
+ ## Workflow Integration
95
+
96
+ ```
97
+ .github/
98
+ └── workflows/
99
+ └── ci.yml # Copy from scripts/ci-config.yml
100
+ ```
101
+
102
+ ## Script Execution Flow
103
+
104
+ ### Setup Flow
105
+ ```
106
+ setup-all.sh
107
+ ├── Detect Platform
108
+ ├── setup-macos (macOS only)
109
+ │ └── swift package resolve
110
+ ├── setup-ios.sh
111
+ │ ├── Check Xcode
112
+ │ ├── Install CocoaPods
113
+ │ └── Setup code signing
114
+ └── setup-react-native.sh
115
+ ├── Install npm dependencies
116
+ ├── Setup Android SDK
117
+ └── Initialize Windows (if Windows)
118
+ ```
119
+
120
+ ### Build Flow
121
+ ```
122
+ build-macos.sh
123
+ ├── Check Prerequisites
124
+ ├── Clean Build (if --clean)
125
+ ├── Run SwiftLint
126
+ ├── Run Tests (unless --skip-tests)
127
+ ├── Build Application
128
+ ├── Create App Bundle
129
+ ├── Sign (unless --skip-signing)
130
+ └── Create ZIP Archive
131
+
132
+ build-ios.sh
133
+ ├── Check Prerequisites
134
+ ├── Clean Build (if --clean)
135
+ ├── Run Tests (unless --skip-tests)
136
+ ├── Build for Simulator/Device
137
+ ├── Create Archive (if --archive)
138
+ └── Export IPA (if --archive)
139
+
140
+ build-android.sh
141
+ ├── Check Prerequisites
142
+ ├── Setup Environment
143
+ ├── Clean Build (if --clean)
144
+ ├── Run Lint (unless --skip-lint)
145
+ ├── Run Tests (unless --skip-tests)
146
+ └── Build APK/AAB
147
+
148
+ build-windows.sh
149
+ ├── Check Prerequisites
150
+ ├── Setup Environment
151
+ ├── Clean Build (if --clean)
152
+ ├── Run Tests (unless --skip-tests)
153
+ ├── Build Windows App
154
+ └── Create Distribution Package
155
+ ```
156
+
157
+ ## CI/CD Flow
158
+
159
+ ```
160
+ GitHub Actions (ci-config.yml)
161
+ ├── Code Quality Checks
162
+ │ ├── ESLint
163
+ │ ├── Prettier
164
+ │ └── TypeScript
165
+ │
166
+ ├── Parallel Builds
167
+ │ ├── build-macos
168
+ │ │ ├── SwiftLint
169
+ │ │ ├── Tests
170
+ │ │ └── Build
171
+ │ │
172
+ │ ├── build-ios
173
+ │ │ ├── Tests
174
+ │ │ └── Build
175
+ │ │
176
+ │ ├── build-android
177
+ │ │ ├── Lint
178
+ │ │ ├── Tests
179
+ │ │ └── Build
180
+ │ │
181
+ │ └── build-windows
182
+ │ ├── Tests
183
+ │ └── Build
184
+ │
185
+ ├── Upload Artifacts
186
+ │ ├── macOS .app + .zip
187
+ │ ├── iOS builds
188
+ │ ├── Android APK/AAB
189
+ │ └── Windows executable
190
+ │
191
+ ├── Deploy (if triggered)
192
+ │ ├── TestFlight (iOS)
193
+ │ └── Play Console (Android)
194
+ │
195
+ └── Build Summary
196
+ └── Status report
197
+ ```
198
+
199
+ ## Usage Patterns
200
+
201
+ ### First Time Setup
202
+ ```bash
203
+ # 1. Clone repository
204
+ git clone <repo-url>
205
+ cd Runic
206
+
207
+ # 2. Run setup
208
+ ./scripts/setup-all.sh --verbose
209
+
210
+ # 3. Configure code signing (if needed)
211
+ # See README-SCRIPTS.md for instructions
212
+
213
+ # 4. Build
214
+ ./scripts/build-macos.sh
215
+ ```
216
+
217
+ ### Daily Development
218
+ ```bash
219
+ # Quick build
220
+ ./scripts/build-macos.sh --skip-tests --skip-signing
221
+
222
+ # Test build
223
+ ./scripts/build-macos.sh --dry-run --verbose
224
+
225
+ # Full build
226
+ ./scripts/build-macos.sh
227
+ ```
228
+
229
+ ### Release Preparation
230
+ ```bash
231
+ # 1. Update version
232
+ echo "VERSION=1.2.3" > version.env
233
+
234
+ # 2. Build all platforms
235
+ ./scripts/build-macos.sh
236
+ ./scripts/build-ios.sh --archive
237
+ ./scripts/build-android.sh --aab
238
+ ./scripts/build-windows.sh
239
+
240
+ # 3. Test artifacts
241
+ ls -lh builds/macos/*.zip
242
+ ls -lh builds/ios/Export/*.ipa
243
+ ls -lh builds/android/*.aab
244
+ ls -lh builds/windows/*.zip
245
+ ```
246
+
247
+ ### CI/CD Setup
248
+ ```bash
249
+ # 1. Copy workflow
250
+ mkdir -p .github/workflows
251
+ cp scripts/ci-config.yml .github/workflows/ci.yml
252
+
253
+ # 2. Configure secrets (see README-SCRIPTS.md)
254
+
255
+ # 3. Push
256
+ git add .github/workflows/ci.yml
257
+ git commit -m "Add CI/CD"
258
+ git push
259
+
260
+ # 4. Watch builds in GitHub Actions tab
261
+ ```
262
+
263
+ ## File Permissions
264
+
265
+ All new shell scripts are executable:
266
+ ```bash
267
+ $ ls -la scripts/*.sh
268
+ -rwxr-xr-x setup-all.sh
269
+ -rwxr-xr-x setup-ios.sh
270
+ -rwxr-xr-x setup-react-native.sh
271
+ -rwxr-xr-x build-macos.sh
272
+ -rwxr-xr-x build-ios.sh
273
+ -rwxr-xr-x build-android.sh
274
+ -rwxr-xr-x build-windows.sh
275
+ ```
276
+
277
+ ## Documentation Hierarchy
278
+
279
+ ```
280
+ README-SCRIPTS.md (⭐ Start here)
281
+ ├── Overview
282
+ ├── Quick Start
283
+ ├── Setup Scripts
284
+ │ ├── setup-all.sh guide
285
+ │ ├── setup-ios.sh guide
286
+ │ └── setup-react-native.sh guide
287
+ ├── Build Scripts
288
+ │ ├── build-macos.sh guide
289
+ │ ├── build-ios.sh guide
290
+ │ ├── build-android.sh guide
291
+ │ └── build-windows.sh guide
292
+ ├── CI/CD Configuration
293
+ │ └── ci-config.yml guide
294
+ ├── Platform-Specific Guides
295
+ │ ├── macOS Development
296
+ │ ├── iOS Development
297
+ │ ├── Android Development
298
+ │ └── Windows Development
299
+ ├── GitHub Secrets Configuration
300
+ ├── Troubleshooting
301
+ └── Advanced Usage
302
+
303
+ QUICK-REFERENCE.md (Quick lookup)
304
+ ├── One-line commands
305
+ ├── Common flags
306
+ ├── Build outputs
307
+ └── Troubleshooting
308
+
309
+ CREATION-SUMMARY.md (What was built)
310
+ ├── File list
311
+ ├── Features
312
+ ├── Usage examples
313
+ └── Quality metrics
314
+
315
+ DIRECTORY-STRUCTURE.md (This file)
316
+ └── Visual organization
317
+ ```
318
+
319
+ ## Key Features Map
320
+
321
+ ```
322
+ All Scripts Share:
323
+ ├── ✅ Error Handling (set -e, set -u)
324
+ ├── ✅ Color Output (terminal detection)
325
+ ├── ✅ Dry-Run Mode (--dry-run)
326
+ ├── ✅ Verbose Mode (--verbose)
327
+ ├── ✅ Help System (--help)
328
+ ├── ✅ Prerequisites Checking
329
+ ├── ✅ Clear Error Messages
330
+ └── ✅ Build Summaries
331
+
332
+ Platform Coverage:
333
+ ├── ✅ macOS (Native Swift)
334
+ ├── ✅ iOS (Native iOS)
335
+ ├── ✅ Android (React Native)
336
+ └── ✅ Windows (React Native Windows)
337
+
338
+ CI/CD Features:
339
+ ├── ✅ GitHub Actions Integration
340
+ ├── ✅ Build Matrix (All Platforms)
341
+ ├── ✅ Automated Testing
342
+ ├── ✅ Code Quality Checks
343
+ ├── ✅ Artifact Management
344
+ └── ✅ Deployment Support
345
+ ```
346
+
347
+ ## Quick Navigation
348
+
349
+ - **Getting Started**: `README-SCRIPTS.md` → Quick Start
350
+ - **Daily Use**: `QUICK-REFERENCE.md`
351
+ - **Troubleshooting**: `README-SCRIPTS.md` → Troubleshooting
352
+ - **CI/CD Setup**: `README-SCRIPTS.md` → CI/CD Configuration
353
+ - **Code Signing**: `README-SCRIPTS.md` → Platform-Specific Guides
354
+ - **Advanced Usage**: `README-SCRIPTS.md` → Advanced Usage
355
+
356
+ ---
357
+
358
+ **Total**: 11 new files, ~7,330 lines, production-ready build automation! 🚀
@@ -0,0 +1,364 @@
1
+ # Getting Started with Runic Build Scripts - Checklist
2
+
3
+ Use this checklist to set up and start building Runic across all platforms.
4
+
5
+ ## Prerequisites Checklist
6
+
7
+ ### For All Platforms
8
+ - [ ] Git installed
9
+ - [ ] Clone Runic repository
10
+ - [ ] Navigate to project directory: `cd Runic`
11
+
12
+ ### For macOS/iOS Development
13
+ - [ ] Running on macOS 14.0 or later
14
+ - [ ] Xcode 15.0 or later installed
15
+ - [ ] Command Line Tools installed: `xcode-select --install`
16
+ - [ ] Xcode configured: `sudo xcode-select --switch /Applications/Xcode.app`
17
+
18
+ ### For Android Development
19
+ - [ ] Java Development Kit 17 installed ([Download](https://adoptium.net))
20
+ - [ ] Android Studio installed (or Android SDK)
21
+ - [ ] ANDROID_HOME environment variable set
22
+ ```bash
23
+ export ANDROID_HOME=$HOME/Library/Android/sdk
24
+ export PATH=$PATH:$ANDROID_HOME/platform-tools
25
+ ```
26
+ - [ ] Add to `~/.bashrc` or `~/.zshrc` to persist
27
+
28
+ ### For React Native Development
29
+ - [ ] Node.js 18+ installed ([Download](https://nodejs.org) or use nvm)
30
+ - [ ] npm or yarn installed
31
+ - [ ] Watchman installed (macOS): `brew install watchman`
32
+
33
+ ### For Windows Development
34
+ - [ ] Windows 10 or later
35
+ - [ ] Visual Studio 2022 with C++ development tools
36
+ - [ ] Windows 10 SDK (10.0.19041.0 or higher)
37
+ - [ ] Node.js 18+ installed
38
+
39
+ ---
40
+
41
+ ## First-Time Setup Checklist
42
+
43
+ ### Step 1: Make Scripts Executable
44
+ ```bash
45
+ chmod +x scripts/*.sh
46
+ ```
47
+ - [ ] Scripts are executable
48
+
49
+ ### Step 2: Read Documentation
50
+ - [ ] Skim `scripts/README-SCRIPTS.md`
51
+ - [ ] Bookmark `scripts/QUICK-REFERENCE.md`
52
+ - [ ] Review `scripts/DIRECTORY-STRUCTURE.md`
53
+
54
+ ### Step 3: Test Setup with Dry-Run
55
+ ```bash
56
+ ./scripts/setup-all.sh --dry-run --verbose
57
+ ```
58
+ - [ ] Dry-run completes without errors
59
+ - [ ] Review what will be executed
60
+ - [ ] Verify all prerequisites are satisfied
61
+
62
+ ### Step 4: Run Actual Setup
63
+ ```bash
64
+ ./scripts/setup-all.sh --verbose
65
+ ```
66
+ - [ ] Setup completes successfully
67
+ - [ ] Dependencies installed
68
+ - [ ] Configuration files created
69
+
70
+ ---
71
+
72
+ ## Code Signing Setup Checklist
73
+
74
+ ### iOS Code Signing
75
+ - [ ] Apple Developer account created
76
+ - [ ] Team ID obtained
77
+ - [ ] Open Xcode project: `open RuniciOS/*.xcodeproj`
78
+ - [ ] Select target → Signing & Capabilities
79
+ - [ ] Choose team
80
+ - [ ] Enable "Automatically manage signing"
81
+ - [ ] Edit `RuniciOS/Config.xcconfig` with team ID
82
+ - [ ] Test build: `./scripts/build-ios.sh --simulator`
83
+
84
+ ### Android Code Signing
85
+ ```bash
86
+ # Generate keystore
87
+ keytool -genkey -v -keystore release.keystore \
88
+ -alias runic-key -keyalg RSA -keysize 2048 -validity 10000
89
+ ```
90
+ - [ ] Keystore generated
91
+ - [ ] Create `runic-cross-platform/android/keystore.properties`:
92
+ ```properties
93
+ storePassword=YOUR_PASSWORD
94
+ keyPassword=YOUR_PASSWORD
95
+ keyAlias=runic-key
96
+ storeFile=release.keystore
97
+ ```
98
+ - [ ] Update `android/app/build.gradle` (see README-SCRIPTS.md)
99
+ - [ ] Test signed build: `./scripts/build-android.sh --variant release`
100
+
101
+ ---
102
+
103
+ ## First Build Checklist
104
+
105
+ ### macOS Build
106
+ ```bash
107
+ ./scripts/build-macos.sh --verbose
108
+ ```
109
+ - [ ] Build completes successfully
110
+ - [ ] App bundle created: `builds/macos/Runic.app`
111
+ - [ ] ZIP archive created: `builds/macos/Runic-*.zip`
112
+ - [ ] Test run: `open builds/macos/Runic.app`
113
+
114
+ ### iOS Build (Simulator)
115
+ ```bash
116
+ ./scripts/build-ios.sh --simulator --verbose
117
+ ```
118
+ - [ ] Build completes successfully
119
+ - [ ] Build products in `builds/ios/DerivedData/`
120
+ - [ ] Open in Xcode and run on simulator
121
+
122
+ ### iOS Build (Device)
123
+ ```bash
124
+ ./scripts/build-ios.sh --device --archive --verbose
125
+ ```
126
+ - [ ] Build completes successfully
127
+ - [ ] Archive created: `builds/ios/RuniciOS.xcarchive`
128
+ - [ ] IPA exported (if signed): `builds/ios/Export/*.ipa`
129
+
130
+ ### Android Build
131
+ ```bash
132
+ ./scripts/build-android.sh --variant debug --verbose
133
+ ```
134
+ - [ ] Build completes successfully
135
+ - [ ] APK created: `builds/android/app-debug.apk`
136
+ - [ ] Install on device: `adb install builds/android/app-debug.apk`
137
+
138
+ ### Windows Build
139
+ ```bash
140
+ ./scripts/build-windows.sh --verbose
141
+ ```
142
+ - [ ] Build completes successfully
143
+ - [ ] Executable in `builds/windows/`
144
+ - [ ] Test on Windows
145
+
146
+ ---
147
+
148
+ ## CI/CD Setup Checklist
149
+
150
+ ### Step 1: Copy Workflow
151
+ ```bash
152
+ mkdir -p .github/workflows
153
+ cp scripts/ci-config.yml .github/workflows/ci.yml
154
+ ```
155
+ - [ ] Workflow file copied
156
+
157
+ ### Step 2: Configure GitHub Secrets
158
+
159
+ #### iOS Secrets
160
+ - [ ] Export certificate as P12
161
+ - [ ] Base64 encode: `base64 -i certificate.p12 -o cert.txt`
162
+ - [ ] Add to GitHub secrets: `IOS_CERTIFICATE_P12`
163
+ - [ ] Add password: `IOS_CERTIFICATE_PASSWORD`
164
+ - [ ] Export provisioning profile
165
+ - [ ] Base64 encode: `base64 -i profile.mobileprovision -o profile.txt`
166
+ - [ ] Add to GitHub secrets: `IOS_PROVISIONING_PROFILE`
167
+ - [ ] (Optional) Add App Store Connect API key: `APP_STORE_CONNECT_API_KEY`
168
+
169
+ #### Android Secrets
170
+ - [ ] Base64 encode keystore: `base64 -i release.keystore -o keystore.txt`
171
+ - [ ] Add to GitHub secrets: `ANDROID_KEYSTORE_BASE64`
172
+ - [ ] Add keystore password: `ANDROID_KEYSTORE_PASSWORD`
173
+ - [ ] Add key alias: `ANDROID_KEY_ALIAS`
174
+ - [ ] Add key password: `ANDROID_KEY_PASSWORD`
175
+ - [ ] (Optional) Add Play Console service account: `GOOGLE_PLAY_SERVICE_ACCOUNT_JSON`
176
+
177
+ ### Step 3: Test CI/CD
178
+ - [ ] Commit workflow: `git add .github/workflows/ci.yml`
179
+ - [ ] Push: `git push`
180
+ - [ ] Check GitHub Actions tab
181
+ - [ ] Verify all jobs pass
182
+ - [ ] Download artifacts
183
+
184
+ ---
185
+
186
+ ## Daily Development Workflow Checklist
187
+
188
+ ### Morning Routine
189
+ - [ ] Pull latest changes: `git pull`
190
+ - [ ] Update dependencies (if needed):
191
+ ```bash
192
+ swift package update # macOS
193
+ cd RuniciOS && pod update # iOS
194
+ cd runic-cross-platform && npm update # React Native
195
+ ```
196
+
197
+ ### Development Builds
198
+ - [ ] macOS: `./scripts/build-macos.sh --skip-tests --skip-signing`
199
+ - [ ] iOS: `./scripts/build-ios.sh --simulator --skip-tests`
200
+ - [ ] Android: `./scripts/build-android.sh --variant debug --skip-tests`
201
+ - [ ] Windows: `./scripts/build-windows.sh --configuration Debug --skip-tests`
202
+
203
+ ### Before Committing
204
+ - [ ] Run tests:
205
+ ```bash
206
+ swift test # macOS
207
+ npm test # React Native
208
+ ```
209
+ - [ ] Run linters:
210
+ ```bash
211
+ swiftlint lint # Swift
212
+ cd runic-cross-platform && npm run lint # JavaScript
213
+ ```
214
+ - [ ] Format code:
215
+ ```bash
216
+ swiftformat . # Swift
217
+ cd runic-cross-platform && npm run format # JavaScript
218
+ ```
219
+ - [ ] Commit changes
220
+ - [ ] Push to trigger CI
221
+
222
+ ---
223
+
224
+ ## Release Workflow Checklist
225
+
226
+ ### Pre-Release
227
+ - [ ] Update version number in `version.env`
228
+ - [ ] Update CHANGELOG.md
229
+ - [ ] Create release branch: `git checkout -b release/1.2.3`
230
+ - [ ] Update version strings in:
231
+ - [ ] `version.env`
232
+ - [ ] iOS `Info.plist` or project settings
233
+ - [ ] Android `build.gradle` (versionCode, versionName)
234
+
235
+ ### Build Release Artifacts
236
+ - [ ] macOS: `./scripts/build-macos.sh --clean`
237
+ - [ ] iOS: `./scripts/build-ios.sh --archive --clean`
238
+ - [ ] Android APK: `./scripts/build-android.sh --variant release --clean`
239
+ - [ ] Android AAB: `./scripts/build-android.sh --aab --clean`
240
+ - [ ] Windows: `./scripts/build-windows.sh --clean`
241
+
242
+ ### Test Release Builds
243
+ - [ ] Test macOS app: `open builds/macos/Runic.app`
244
+ - [ ] Test iOS on device
245
+ - [ ] Test Android APK: `adb install builds/android/app-release.apk`
246
+ - [ ] Test Windows executable
247
+
248
+ ### Deploy
249
+ - [ ] macOS: Upload to website/distribution platform
250
+ - [ ] iOS: Upload to TestFlight
251
+ ```bash
252
+ xcrun altool --upload-app -f builds/ios/Export/RuniciOS.ipa \
253
+ -t ios -u username -p password
254
+ ```
255
+ - [ ] Android: Upload AAB to Play Console
256
+ - [ ] Windows: Create installer and distribute
257
+
258
+ ### Post-Release
259
+ - [ ] Tag release: `git tag v1.2.3`
260
+ - [ ] Push tag: `git push origin v1.2.3`
261
+ - [ ] Create GitHub release
262
+ - [ ] Attach build artifacts to release
263
+ - [ ] Merge release branch to main
264
+ - [ ] Update documentation if needed
265
+
266
+ ---
267
+
268
+ ## Troubleshooting Checklist
269
+
270
+ ### If Build Fails
271
+
272
+ 1. **Try Dry-Run First**
273
+ ```bash
274
+ ./scripts/build-macos.sh --dry-run --verbose
275
+ ```
276
+ - [ ] Dry-run shows what will execute
277
+ - [ ] Prerequisites are satisfied
278
+
279
+ 2. **Check Prerequisites**
280
+ ```bash
281
+ ./scripts/setup-all.sh --dry-run --verbose
282
+ ```
283
+ - [ ] All required tools installed
284
+ - [ ] Versions are correct
285
+
286
+ 3. **Clean Build**
287
+ ```bash
288
+ ./scripts/build-macos.sh --clean --verbose
289
+ ```
290
+ - [ ] Old build artifacts removed
291
+ - [ ] Fresh build succeeds
292
+
293
+ 4. **Read Error Messages**
294
+ - [ ] Error message explains the issue
295
+ - [ ] Follow suggested solution
296
+ - [ ] Check README-SCRIPTS.md troubleshooting section
297
+
298
+ 5. **Check Documentation**
299
+ - [ ] Review `scripts/README-SCRIPTS.md`
300
+ - [ ] Check platform-specific guide
301
+ - [ ] Search for similar issues
302
+
303
+ ---
304
+
305
+ ## Additional Resources Checklist
306
+
307
+ ### Documentation
308
+ - [ ] `scripts/README-SCRIPTS.md` - Complete guide
309
+ - [ ] `scripts/QUICK-REFERENCE.md` - Quick commands
310
+ - [ ] `scripts/CREATION-SUMMARY.md` - What was created
311
+ - [ ] `scripts/DIRECTORY-STRUCTURE.md` - File organization
312
+ - [ ] `scripts/GETTING-STARTED-CHECKLIST.md` - This file
313
+
314
+ ### Help Commands
315
+ - [ ] Setup help: `./scripts/setup-all.sh --help`
316
+ - [ ] Build help: `./scripts/build-macos.sh --help`
317
+ - [ ] Dry-run: `./scripts/build-macos.sh --dry-run --verbose`
318
+
319
+ ### Online Resources
320
+ - [ ] Xcode documentation
321
+ - [ ] React Native documentation
322
+ - [ ] Android developer guide
323
+ - [ ] GitHub Actions documentation
324
+
325
+ ---
326
+
327
+ ## Success Criteria
328
+
329
+ You've successfully set up Runic build scripts when:
330
+
331
+ - ✅ All setup scripts run without errors
332
+ - ✅ All build scripts produce artifacts
333
+ - ✅ CI/CD workflow passes on GitHub
334
+ - ✅ Code signing works for release builds
335
+ - ✅ Applications run on target platforms
336
+
337
+ **Congratulations! You're ready to build Runic across all platforms! 🎉**
338
+
339
+ ---
340
+
341
+ ## Need Help?
342
+
343
+ 1. **Check Documentation**
344
+ ```bash
345
+ cat scripts/README-SCRIPTS.md
346
+ cat scripts/QUICK-REFERENCE.md
347
+ ```
348
+
349
+ 2. **Run with Verbose**
350
+ ```bash
351
+ ./scripts/build-macos.sh --verbose --dry-run
352
+ ```
353
+
354
+ 3. **Review Troubleshooting**
355
+ - See `scripts/README-SCRIPTS.md` → Troubleshooting section
356
+
357
+ 4. **Open an Issue**
358
+ - Include script output
359
+ - Include system information
360
+ - Include `--verbose` logs
361
+
362
+ ---
363
+
364
+ **Remember**: Start with `--dry-run` and `--verbose` to understand what scripts do before executing them!