@amplitude/wizard 1.0.0-beta.2 → 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 (391) hide show
  1. package/README.md +171 -74
  2. package/dist/bin.js +338 -222
  3. package/dist/src/lib/agent-interface.js +64 -9
  4. package/dist/src/lib/agent-runner.js +1 -10
  5. package/dist/src/lib/api.d.ts +22 -4
  6. package/dist/src/lib/api.js +114 -12
  7. package/dist/src/lib/commandments.js +14 -1
  8. package/dist/src/lib/constants.d.ts +6 -5
  9. package/dist/src/lib/constants.js +13 -13
  10. package/dist/src/lib/credential-resolution.d.ts +45 -0
  11. package/dist/src/lib/credential-resolution.js +311 -0
  12. package/dist/src/lib/exit-codes.d.ts +10 -0
  13. package/dist/src/lib/exit-codes.js +12 -0
  14. package/dist/src/lib/health-checks/statuspage.d.ts +1 -0
  15. package/dist/src/lib/health-checks/statuspage.js +5 -1
  16. package/dist/src/lib/mode-config.d.ts +14 -0
  17. package/dist/src/lib/mode-config.js +14 -0
  18. package/dist/src/lib/session-checkpoint.d.ts +27 -0
  19. package/dist/src/lib/session-checkpoint.js +134 -0
  20. package/dist/src/lib/wizard-session.d.ts +44 -1
  21. package/dist/src/lib/wizard-session.js +70 -14
  22. package/dist/src/lib/wizard-tools.js +19 -4
  23. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +3 -0
  24. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js +6 -0
  25. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +3 -1
  26. package/dist/src/ui/agent-ui.d.ts +91 -0
  27. package/dist/src/ui/agent-ui.js +277 -0
  28. package/dist/src/ui/logging-ui.js +1 -1
  29. package/dist/src/ui/tui/App.d.ts +12 -0
  30. package/dist/src/ui/tui/App.js +29 -18
  31. package/dist/src/ui/tui/components/AmplitudeLogo.js +16 -17
  32. package/dist/src/ui/tui/components/AmplitudeTextLogo.d.ts +0 -2
  33. package/dist/src/ui/tui/components/AmplitudeTextLogo.js +53 -18
  34. package/dist/src/ui/tui/components/BrailleSpinner.d.ts +8 -0
  35. package/dist/src/ui/tui/components/BrailleSpinner.js +15 -0
  36. package/dist/src/ui/tui/components/ConsoleView.d.ts +8 -11
  37. package/dist/src/ui/tui/components/ConsoleView.js +51 -34
  38. package/dist/src/ui/tui/components/HeaderBar.d.ts +12 -0
  39. package/dist/src/ui/tui/components/HeaderBar.js +17 -0
  40. package/dist/src/ui/tui/components/JourneyStepper.d.ts +16 -0
  41. package/dist/src/ui/tui/components/JourneyStepper.js +83 -0
  42. package/dist/src/ui/tui/components/KeyHintBar.d.ts +19 -0
  43. package/dist/src/ui/tui/components/KeyHintBar.js +20 -0
  44. package/dist/src/ui/tui/console-commands.d.ts +1 -2
  45. package/dist/src/ui/tui/console-commands.js +48 -7
  46. package/dist/src/ui/tui/flows.d.ts +1 -1
  47. package/dist/src/ui/tui/flows.js +1 -1
  48. package/dist/src/ui/tui/hooks/useAsyncEffect.d.ts +15 -0
  49. package/dist/src/ui/tui/hooks/useAsyncEffect.js +35 -0
  50. package/dist/src/ui/tui/hooks/useWizardStore.d.ts +9 -0
  51. package/dist/src/ui/tui/hooks/useWizardStore.js +11 -0
  52. package/dist/src/ui/tui/ink-ui.js +1 -1
  53. package/dist/src/ui/tui/primitives/DissolveTransition.js +4 -5
  54. package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +3 -1
  55. package/dist/src/ui/tui/primitives/EventPlanViewer.js +8 -3
  56. package/dist/src/ui/tui/primitives/ProgressList.js +1 -1
  57. package/dist/src/ui/tui/primitives/SlashCommandInput.js +19 -4
  58. package/dist/src/ui/tui/primitives/SplitView.d.ts +2 -1
  59. package/dist/src/ui/tui/primitives/SplitView.js +10 -2
  60. package/dist/src/ui/tui/primitives/TabContainer.js +10 -2
  61. package/dist/src/ui/tui/primitives/index.d.ts +0 -1
  62. package/dist/src/ui/tui/primitives/index.js +0 -1
  63. package/dist/src/ui/tui/router.js +1 -1
  64. package/dist/src/ui/tui/screen-registry.d.ts +0 -7
  65. package/dist/src/ui/tui/screen-registry.js +13 -4
  66. package/dist/src/ui/tui/screens/ActivationOptionsScreen.d.ts +2 -2
  67. package/dist/src/ui/tui/screens/ActivationOptionsScreen.js +8 -8
  68. package/dist/src/ui/tui/screens/AuthScreen.js +57 -27
  69. package/dist/src/ui/tui/screens/ChecklistScreen.d.ts +2 -12
  70. package/dist/src/ui/tui/screens/ChecklistScreen.js +22 -33
  71. package/dist/src/ui/tui/screens/DataIngestionCheckScreen.d.ts +3 -12
  72. package/dist/src/ui/tui/screens/DataIngestionCheckScreen.js +109 -39
  73. package/dist/src/ui/tui/screens/DataSetupScreen.d.ts +3 -3
  74. package/dist/src/ui/tui/screens/DataSetupScreen.js +17 -10
  75. package/dist/src/ui/tui/screens/IntroScreen.d.ts +5 -3
  76. package/dist/src/ui/tui/screens/IntroScreen.js +132 -41
  77. package/dist/src/ui/tui/screens/LoginScreen.d.ts +1 -1
  78. package/dist/src/ui/tui/screens/LoginScreen.js +4 -4
  79. package/dist/src/ui/tui/screens/LogoutScreen.d.ts +4 -2
  80. package/dist/src/ui/tui/screens/LogoutScreen.js +17 -5
  81. package/dist/src/ui/tui/screens/McpScreen.d.ts +4 -4
  82. package/dist/src/ui/tui/screens/McpScreen.js +25 -17
  83. package/dist/src/ui/tui/screens/OutageScreen.d.ts +1 -1
  84. package/dist/src/ui/tui/screens/OutageScreen.js +5 -5
  85. package/dist/src/ui/tui/screens/OutroScreen.d.ts +5 -0
  86. package/dist/src/ui/tui/screens/OutroScreen.js +21 -14
  87. package/dist/src/ui/tui/screens/RegionSelectScreen.js +15 -13
  88. package/dist/src/ui/tui/screens/RunScreen.d.ts +7 -5
  89. package/dist/src/ui/tui/screens/RunScreen.js +102 -157
  90. package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +1 -1
  91. package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +6 -5
  92. package/dist/src/ui/tui/screens/SetupScreen.d.ts +1 -1
  93. package/dist/src/ui/tui/screens/SetupScreen.js +7 -7
  94. package/dist/src/ui/tui/screens/SlackScreen.d.ts +2 -2
  95. package/dist/src/ui/tui/screens/SlackScreen.js +60 -35
  96. package/dist/src/ui/tui/session-constants.d.ts +41 -0
  97. package/dist/src/ui/tui/session-constants.js +38 -0
  98. package/dist/src/ui/tui/start-tui.d.ts +3 -1
  99. package/dist/src/ui/tui/start-tui.js +14 -10
  100. package/dist/src/ui/tui/store.d.ts +2 -1
  101. package/dist/src/ui/tui/store.js +33 -7
  102. package/dist/src/ui/tui/styles.d.ts +75 -19
  103. package/dist/src/ui/tui/styles.js +101 -19
  104. package/dist/src/ui/tui/utils/classify-error.d.ts +14 -0
  105. package/dist/src/ui/tui/utils/classify-error.js +90 -0
  106. package/dist/src/ui/tui/utils/diagnostics.d.ts +21 -0
  107. package/dist/src/ui/tui/utils/diagnostics.js +72 -0
  108. package/dist/src/ui/tui/utils/with-retry.d.ts +12 -0
  109. package/dist/src/ui/tui/utils/with-retry.js +32 -0
  110. package/dist/src/ui/tui/utils/with-timeout.d.ts +10 -0
  111. package/dist/src/ui/tui/utils/with-timeout.js +24 -0
  112. package/dist/src/utils/ampli-settings.d.ts +1 -1
  113. package/dist/src/utils/ampli-settings.js +15 -5
  114. package/dist/src/utils/api-key-store.js +5 -5
  115. package/dist/src/utils/atomic-write.d.ts +15 -0
  116. package/dist/src/utils/atomic-write.js +34 -0
  117. package/dist/src/utils/setup-utils.js +2 -2
  118. package/dist/src/utils/token-refresh.d.ts +22 -0
  119. package/dist/src/utils/token-refresh.js +79 -0
  120. package/dist/src/utils/wizard-abort.js +6 -1
  121. package/package.json +6 -6
  122. package/skills/instrumentation/add-analytics-instrumentation/SKILL.md +142 -0
  123. package/skills/instrumentation/diff-intake/SKILL.md +128 -0
  124. package/skills/instrumentation/discover-analytics-patterns/SKILL.md +185 -0
  125. package/skills/instrumentation/discover-event-surfaces/SKILL.md +322 -0
  126. package/skills/instrumentation/discover-event-surfaces/references/best-practices.md +563 -0
  127. package/skills/instrumentation/instrument-events/SKILL.md +169 -0
  128. package/skills/instrumentation/instrument-events/references/best-practices.md +563 -0
  129. package/skills/integration/integration-android/SKILL.md +49 -0
  130. package/skills/integration/integration-android/references/EXAMPLE.md +1977 -0
  131. package/skills/integration/integration-android/references/amplitude-quickstart.md +1845 -0
  132. package/skills/integration/integration-android/references/analytics.md +1778 -0
  133. package/skills/integration/integration-android/references/basic-integration-1.0-begin.md +43 -0
  134. package/skills/integration/integration-android/references/basic-integration-1.1-edit.md +35 -0
  135. package/skills/integration/integration-android/references/basic-integration-1.2-revise.md +23 -0
  136. package/skills/integration/integration-android/references/basic-integration-1.3-conclude.md +57 -0
  137. package/skills/integration/integration-angular/SKILL.md +49 -0
  138. package/skills/integration/integration-angular/references/EXAMPLE.md +899 -0
  139. package/skills/integration/integration-angular/references/amplitude-quickstart.md +1845 -0
  140. package/skills/integration/integration-angular/references/basic-integration-1.0-begin.md +43 -0
  141. package/skills/integration/integration-angular/references/basic-integration-1.1-edit.md +35 -0
  142. package/skills/integration/integration-angular/references/basic-integration-1.2-revise.md +23 -0
  143. package/skills/integration/integration-angular/references/basic-integration-1.3-conclude.md +57 -0
  144. package/skills/integration/integration-angular/references/browser-sdk-2.md +4680 -0
  145. package/skills/integration/integration-astro-hybrid/SKILL.md +56 -0
  146. package/skills/integration/integration-astro-hybrid/references/EXAMPLE.md +1095 -0
  147. package/skills/integration/integration-astro-hybrid/references/amplitude-quickstart.md +1845 -0
  148. package/skills/integration/integration-astro-hybrid/references/basic-integration-1.0-begin.md +43 -0
  149. package/skills/integration/integration-astro-hybrid/references/basic-integration-1.1-edit.md +35 -0
  150. package/skills/integration/integration-astro-hybrid/references/basic-integration-1.2-revise.md +23 -0
  151. package/skills/integration/integration-astro-hybrid/references/basic-integration-1.3-conclude.md +57 -0
  152. package/skills/integration/integration-astro-hybrid/references/browser-sdk-2.md +4680 -0
  153. package/skills/integration/integration-astro-ssr/SKILL.md +52 -0
  154. package/skills/integration/integration-astro-ssr/references/EXAMPLE.md +1106 -0
  155. package/skills/integration/integration-astro-ssr/references/amplitude-quickstart.md +1845 -0
  156. package/skills/integration/integration-astro-ssr/references/basic-integration-1.0-begin.md +43 -0
  157. package/skills/integration/integration-astro-ssr/references/basic-integration-1.1-edit.md +35 -0
  158. package/skills/integration/integration-astro-ssr/references/basic-integration-1.2-revise.md +23 -0
  159. package/skills/integration/integration-astro-ssr/references/basic-integration-1.3-conclude.md +57 -0
  160. package/skills/integration/integration-astro-ssr/references/browser-sdk-2.md +4680 -0
  161. package/skills/integration/integration-astro-static/SKILL.md +49 -0
  162. package/skills/integration/integration-astro-static/references/EXAMPLE.md +910 -0
  163. package/skills/integration/integration-astro-static/references/amplitude-quickstart.md +1845 -0
  164. package/skills/integration/integration-astro-static/references/basic-integration-1.0-begin.md +43 -0
  165. package/skills/integration/integration-astro-static/references/basic-integration-1.1-edit.md +35 -0
  166. package/skills/integration/integration-astro-static/references/basic-integration-1.2-revise.md +23 -0
  167. package/skills/integration/integration-astro-static/references/basic-integration-1.3-conclude.md +57 -0
  168. package/skills/integration/integration-astro-static/references/browser-sdk-2.md +4680 -0
  169. package/skills/integration/integration-astro-view-transitions/SKILL.md +51 -0
  170. package/skills/integration/integration-astro-view-transitions/references/EXAMPLE.md +979 -0
  171. package/skills/integration/integration-astro-view-transitions/references/amplitude-quickstart.md +1845 -0
  172. package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.0-begin.md +43 -0
  173. package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.1-edit.md +35 -0
  174. package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.2-revise.md +23 -0
  175. package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.3-conclude.md +57 -0
  176. package/skills/integration/integration-astro-view-transitions/references/browser-sdk-2.md +4680 -0
  177. package/skills/integration/integration-django/SKILL.md +57 -0
  178. package/skills/integration/integration-django/references/EXAMPLE.md +1005 -0
  179. package/skills/integration/integration-django/references/amplitude-quickstart.md +1845 -0
  180. package/skills/integration/integration-django/references/basic-integration-1.0-begin.md +43 -0
  181. package/skills/integration/integration-django/references/basic-integration-1.1-edit.md +35 -0
  182. package/skills/integration/integration-django/references/basic-integration-1.2-revise.md +23 -0
  183. package/skills/integration/integration-django/references/basic-integration-1.3-conclude.md +57 -0
  184. package/skills/integration/integration-django/references/python.md +1424 -0
  185. package/skills/integration/integration-expo/SKILL.md +53 -0
  186. package/skills/integration/integration-expo/references/EXAMPLE.md +1291 -0
  187. package/skills/integration/integration-expo/references/amplitude-quickstart.md +1845 -0
  188. package/skills/integration/integration-expo/references/basic-integration-1.0-begin.md +43 -0
  189. package/skills/integration/integration-expo/references/basic-integration-1.1-edit.md +35 -0
  190. package/skills/integration/integration-expo/references/basic-integration-1.2-revise.md +23 -0
  191. package/skills/integration/integration-expo/references/basic-integration-1.3-conclude.md +57 -0
  192. package/skills/integration/integration-expo/references/react-native-sdk.md +2819 -0
  193. package/skills/integration/integration-fastapi/SKILL.md +57 -0
  194. package/skills/integration/integration-fastapi/references/EXAMPLE.md +1389 -0
  195. package/skills/integration/integration-fastapi/references/amplitude-quickstart.md +1845 -0
  196. package/skills/integration/integration-fastapi/references/basic-integration-1.0-begin.md +43 -0
  197. package/skills/integration/integration-fastapi/references/basic-integration-1.1-edit.md +35 -0
  198. package/skills/integration/integration-fastapi/references/basic-integration-1.2-revise.md +23 -0
  199. package/skills/integration/integration-fastapi/references/basic-integration-1.3-conclude.md +57 -0
  200. package/skills/integration/integration-fastapi/references/python.md +1424 -0
  201. package/skills/integration/integration-flask/SKILL.md +56 -0
  202. package/skills/integration/integration-flask/references/EXAMPLE.md +1130 -0
  203. package/skills/integration/integration-flask/references/amplitude-quickstart.md +1845 -0
  204. package/skills/integration/integration-flask/references/basic-integration-1.0-begin.md +43 -0
  205. package/skills/integration/integration-flask/references/basic-integration-1.1-edit.md +35 -0
  206. package/skills/integration/integration-flask/references/basic-integration-1.2-revise.md +23 -0
  207. package/skills/integration/integration-flask/references/basic-integration-1.3-conclude.md +57 -0
  208. package/skills/integration/integration-flask/references/python.md +1424 -0
  209. package/skills/integration/integration-javascript_node/SKILL.md +54 -0
  210. package/skills/integration/integration-javascript_node/references/EXAMPLE.md +365 -0
  211. package/skills/integration/integration-javascript_node/references/amplitude-quickstart.md +1845 -0
  212. package/skills/integration/integration-javascript_node/references/analytics.md +1778 -0
  213. package/skills/integration/integration-javascript_node/references/basic-integration-1.0-begin.md +43 -0
  214. package/skills/integration/integration-javascript_node/references/basic-integration-1.1-edit.md +35 -0
  215. package/skills/integration/integration-javascript_node/references/basic-integration-1.2-revise.md +23 -0
  216. package/skills/integration/integration-javascript_node/references/basic-integration-1.3-conclude.md +57 -0
  217. package/skills/integration/integration-javascript_web/SKILL.md +58 -0
  218. package/skills/integration/integration-javascript_web/references/EXAMPLE.md +451 -0
  219. package/skills/integration/integration-javascript_web/references/amplitude-quickstart.md +1845 -0
  220. package/skills/integration/integration-javascript_web/references/basic-integration-1.0-begin.md +43 -0
  221. package/skills/integration/integration-javascript_web/references/basic-integration-1.1-edit.md +35 -0
  222. package/skills/integration/integration-javascript_web/references/basic-integration-1.2-revise.md +23 -0
  223. package/skills/integration/integration-javascript_web/references/basic-integration-1.3-conclude.md +57 -0
  224. package/skills/integration/integration-javascript_web/references/browser-sdk-2.md +4680 -0
  225. package/skills/integration/integration-laravel/SKILL.md +52 -0
  226. package/skills/integration/integration-laravel/references/EXAMPLE.md +2039 -0
  227. package/skills/integration/integration-laravel/references/amplitude-quickstart.md +1845 -0
  228. package/skills/integration/integration-laravel/references/analytics.md +1778 -0
  229. package/skills/integration/integration-laravel/references/basic-integration-1.0-begin.md +43 -0
  230. package/skills/integration/integration-laravel/references/basic-integration-1.1-edit.md +35 -0
  231. package/skills/integration/integration-laravel/references/basic-integration-1.2-revise.md +23 -0
  232. package/skills/integration/integration-laravel/references/basic-integration-1.3-conclude.md +57 -0
  233. package/skills/integration/integration-nextjs-app-router/SKILL.md +54 -0
  234. package/skills/integration/integration-nextjs-app-router/references/EXAMPLE.md +673 -0
  235. package/skills/integration/integration-nextjs-app-router/references/amplitude-quickstart.md +1845 -0
  236. package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.0-begin.md +43 -0
  237. package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.1-edit.md +35 -0
  238. package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.2-revise.md +23 -0
  239. package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.3-conclude.md +57 -0
  240. package/skills/integration/integration-nextjs-app-router/references/browser-sdk-2.md +4680 -0
  241. package/skills/integration/integration-nextjs-pages-router/SKILL.md +54 -0
  242. package/skills/integration/integration-nextjs-pages-router/references/EXAMPLE.md +735 -0
  243. package/skills/integration/integration-nextjs-pages-router/references/amplitude-quickstart.md +1845 -0
  244. package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.0-begin.md +43 -0
  245. package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.1-edit.md +35 -0
  246. package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.2-revise.md +23 -0
  247. package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.3-conclude.md +57 -0
  248. package/skills/integration/integration-nextjs-pages-router/references/browser-sdk-2.md +4680 -0
  249. package/skills/integration/integration-nuxt-3.6/SKILL.md +46 -0
  250. package/skills/integration/integration-nuxt-3.6/references/EXAMPLE.md +8422 -0
  251. package/skills/integration/integration-nuxt-3.6/references/amplitude-quickstart.md +1845 -0
  252. package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.0-begin.md +43 -0
  253. package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.1-edit.md +35 -0
  254. package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.2-revise.md +23 -0
  255. package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.3-conclude.md +57 -0
  256. package/skills/integration/integration-nuxt-3.6/references/browser-sdk-2.md +4680 -0
  257. package/skills/integration/integration-nuxt-4/SKILL.md +46 -0
  258. package/skills/integration/integration-nuxt-4/references/EXAMPLE.md +8670 -0
  259. package/skills/integration/integration-nuxt-4/references/amplitude-quickstart.md +1845 -0
  260. package/skills/integration/integration-nuxt-4/references/basic-integration-1.0-begin.md +43 -0
  261. package/skills/integration/integration-nuxt-4/references/basic-integration-1.1-edit.md +35 -0
  262. package/skills/integration/integration-nuxt-4/references/basic-integration-1.2-revise.md +23 -0
  263. package/skills/integration/integration-nuxt-4/references/basic-integration-1.3-conclude.md +57 -0
  264. package/skills/integration/integration-nuxt-4/references/browser-sdk-2.md +4680 -0
  265. package/skills/integration/integration-python/SKILL.md +53 -0
  266. package/skills/integration/integration-python/references/EXAMPLE.md +445 -0
  267. package/skills/integration/integration-python/references/amplitude-quickstart.md +1845 -0
  268. package/skills/integration/integration-python/references/basic-integration-1.0-begin.md +43 -0
  269. package/skills/integration/integration-python/references/basic-integration-1.1-edit.md +35 -0
  270. package/skills/integration/integration-python/references/basic-integration-1.2-revise.md +23 -0
  271. package/skills/integration/integration-python/references/basic-integration-1.3-conclude.md +57 -0
  272. package/skills/integration/integration-python/references/python.md +1424 -0
  273. package/skills/integration/integration-react-native/SKILL.md +49 -0
  274. package/skills/integration/integration-react-native/references/EXAMPLE.md +2253 -0
  275. package/skills/integration/integration-react-native/references/amplitude-quickstart.md +1845 -0
  276. package/skills/integration/integration-react-native/references/basic-integration-1.0-begin.md +43 -0
  277. package/skills/integration/integration-react-native/references/basic-integration-1.1-edit.md +35 -0
  278. package/skills/integration/integration-react-native/references/basic-integration-1.2-revise.md +23 -0
  279. package/skills/integration/integration-react-native/references/basic-integration-1.3-conclude.md +57 -0
  280. package/skills/integration/integration-react-native/references/react-native-sdk.md +2819 -0
  281. package/skills/integration/integration-react-react-router-6/SKILL.md +53 -0
  282. package/skills/integration/integration-react-react-router-6/references/EXAMPLE.md +570 -0
  283. package/skills/integration/integration-react-react-router-6/references/amplitude-quickstart.md +1845 -0
  284. package/skills/integration/integration-react-react-router-6/references/basic-integration-1.0-begin.md +43 -0
  285. package/skills/integration/integration-react-react-router-6/references/basic-integration-1.1-edit.md +35 -0
  286. package/skills/integration/integration-react-react-router-6/references/basic-integration-1.2-revise.md +23 -0
  287. package/skills/integration/integration-react-react-router-6/references/basic-integration-1.3-conclude.md +57 -0
  288. package/skills/integration/integration-react-react-router-6/references/browser-sdk-2.md +4680 -0
  289. package/skills/integration/integration-react-react-router-7-data/SKILL.md +53 -0
  290. package/skills/integration/integration-react-react-router-7-data/references/EXAMPLE.md +830 -0
  291. package/skills/integration/integration-react-react-router-7-data/references/amplitude-quickstart.md +1845 -0
  292. package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.0-begin.md +43 -0
  293. package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.1-edit.md +35 -0
  294. package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.2-revise.md +23 -0
  295. package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.3-conclude.md +57 -0
  296. package/skills/integration/integration-react-react-router-7-data/references/browser-sdk-2.md +4680 -0
  297. package/skills/integration/integration-react-react-router-7-declarative/SKILL.md +53 -0
  298. package/skills/integration/integration-react-react-router-7-declarative/references/EXAMPLE.md +609 -0
  299. package/skills/integration/integration-react-react-router-7-declarative/references/amplitude-quickstart.md +1845 -0
  300. package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.0-begin.md +43 -0
  301. package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.1-edit.md +35 -0
  302. package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.2-revise.md +23 -0
  303. package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.3-conclude.md +57 -0
  304. package/skills/integration/integration-react-react-router-7-declarative/references/browser-sdk-2.md +4680 -0
  305. package/skills/integration/integration-react-react-router-7-framework/SKILL.md +53 -0
  306. package/skills/integration/integration-react-react-router-7-framework/references/EXAMPLE.md +1081 -0
  307. package/skills/integration/integration-react-react-router-7-framework/references/amplitude-quickstart.md +1845 -0
  308. package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.0-begin.md +43 -0
  309. package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.1-edit.md +35 -0
  310. package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.2-revise.md +23 -0
  311. package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.3-conclude.md +57 -0
  312. package/skills/integration/integration-react-react-router-7-framework/references/browser-sdk-2.md +4680 -0
  313. package/skills/integration/integration-react-tanstack-router-code-based/SKILL.md +57 -0
  314. package/skills/integration/integration-react-tanstack-router-code-based/references/EXAMPLE.md +659 -0
  315. package/skills/integration/integration-react-tanstack-router-code-based/references/amplitude-quickstart.md +1845 -0
  316. package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.0-begin.md +43 -0
  317. package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.1-edit.md +35 -0
  318. package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.2-revise.md +23 -0
  319. package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.3-conclude.md +57 -0
  320. package/skills/integration/integration-react-tanstack-router-code-based/references/browser-sdk-2.md +4680 -0
  321. package/skills/integration/integration-react-tanstack-router-file-based/SKILL.md +57 -0
  322. package/skills/integration/integration-react-tanstack-router-file-based/references/EXAMPLE.md +777 -0
  323. package/skills/integration/integration-react-tanstack-router-file-based/references/amplitude-quickstart.md +1845 -0
  324. package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.0-begin.md +43 -0
  325. package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.1-edit.md +35 -0
  326. package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.2-revise.md +23 -0
  327. package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.3-conclude.md +57 -0
  328. package/skills/integration/integration-react-tanstack-router-file-based/references/browser-sdk-2.md +4680 -0
  329. package/skills/integration/integration-react-vite/SKILL.md +53 -0
  330. package/skills/integration/integration-react-vite/references/EXAMPLE.md +542 -0
  331. package/skills/integration/integration-react-vite/references/amplitude-quickstart.md +1845 -0
  332. package/skills/integration/integration-react-vite/references/basic-integration-1.0-begin.md +43 -0
  333. package/skills/integration/integration-react-vite/references/basic-integration-1.1-edit.md +35 -0
  334. package/skills/integration/integration-react-vite/references/basic-integration-1.2-revise.md +23 -0
  335. package/skills/integration/integration-react-vite/references/basic-integration-1.3-conclude.md +57 -0
  336. package/skills/integration/integration-react-vite/references/browser-sdk-2.md +4680 -0
  337. package/skills/integration/integration-ruby/SKILL.md +50 -0
  338. package/skills/integration/integration-ruby/references/EXAMPLE.md +420 -0
  339. package/skills/integration/integration-ruby/references/amplitude-quickstart.md +1845 -0
  340. package/skills/integration/integration-ruby/references/analytics.md +1778 -0
  341. package/skills/integration/integration-ruby/references/basic-integration-1.0-begin.md +43 -0
  342. package/skills/integration/integration-ruby/references/basic-integration-1.1-edit.md +35 -0
  343. package/skills/integration/integration-ruby/references/basic-integration-1.2-revise.md +23 -0
  344. package/skills/integration/integration-ruby/references/basic-integration-1.3-conclude.md +57 -0
  345. package/skills/integration/integration-ruby-on-rails/SKILL.md +55 -0
  346. package/skills/integration/integration-ruby-on-rails/references/EXAMPLE.md +1013 -0
  347. package/skills/integration/integration-ruby-on-rails/references/amplitude-quickstart.md +1845 -0
  348. package/skills/integration/integration-ruby-on-rails/references/analytics.md +1778 -0
  349. package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.0-begin.md +43 -0
  350. package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.1-edit.md +35 -0
  351. package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.2-revise.md +23 -0
  352. package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.3-conclude.md +57 -0
  353. package/skills/integration/integration-sveltekit/SKILL.md +47 -0
  354. package/skills/integration/integration-sveltekit/references/EXAMPLE.md +14121 -0
  355. package/skills/integration/integration-sveltekit/references/amplitude-quickstart.md +1845 -0
  356. package/skills/integration/integration-sveltekit/references/basic-integration-1.0-begin.md +43 -0
  357. package/skills/integration/integration-sveltekit/references/basic-integration-1.1-edit.md +35 -0
  358. package/skills/integration/integration-sveltekit/references/basic-integration-1.2-revise.md +23 -0
  359. package/skills/integration/integration-sveltekit/references/basic-integration-1.3-conclude.md +57 -0
  360. package/skills/integration/integration-sveltekit/references/browser-sdk-2.md +4680 -0
  361. package/skills/integration/integration-swift/SKILL.md +49 -0
  362. package/skills/integration/integration-swift/references/EXAMPLE.md +660 -0
  363. package/skills/integration/integration-swift/references/amplitude-quickstart.md +1845 -0
  364. package/skills/integration/integration-swift/references/analytics.md +1778 -0
  365. package/skills/integration/integration-swift/references/basic-integration-1.0-begin.md +43 -0
  366. package/skills/integration/integration-swift/references/basic-integration-1.1-edit.md +35 -0
  367. package/skills/integration/integration-swift/references/basic-integration-1.2-revise.md +23 -0
  368. package/skills/integration/integration-swift/references/basic-integration-1.3-conclude.md +57 -0
  369. package/skills/integration/integration-tanstack-start/SKILL.md +58 -0
  370. package/skills/integration/integration-tanstack-start/references/EXAMPLE.md +998 -0
  371. package/skills/integration/integration-tanstack-start/references/amplitude-quickstart.md +1845 -0
  372. package/skills/integration/integration-tanstack-start/references/basic-integration-1.0-begin.md +43 -0
  373. package/skills/integration/integration-tanstack-start/references/basic-integration-1.1-edit.md +35 -0
  374. package/skills/integration/integration-tanstack-start/references/basic-integration-1.2-revise.md +23 -0
  375. package/skills/integration/integration-tanstack-start/references/basic-integration-1.3-conclude.md +57 -0
  376. package/skills/integration/integration-tanstack-start/references/browser-sdk-2.md +4680 -0
  377. package/skills/integration/integration-vue-3/SKILL.md +46 -0
  378. package/skills/integration/integration-vue-3/references/EXAMPLE.md +846 -0
  379. package/skills/integration/integration-vue-3/references/amplitude-quickstart.md +1845 -0
  380. package/skills/integration/integration-vue-3/references/basic-integration-1.0-begin.md +43 -0
  381. package/skills/integration/integration-vue-3/references/basic-integration-1.1-edit.md +35 -0
  382. package/skills/integration/integration-vue-3/references/basic-integration-1.2-revise.md +23 -0
  383. package/skills/integration/integration-vue-3/references/basic-integration-1.3-conclude.md +57 -0
  384. package/skills/integration/integration-vue-3/references/browser-sdk-2.md +4680 -0
  385. package/skills/taxonomy/amplitude-quickstart-taxonomy-agent/SKILL.md +228 -0
  386. package/dist/src/ui/tui/components/TitleBar.d.ts +0 -8
  387. package/dist/src/ui/tui/components/TitleBar.js +0 -27
  388. package/dist/src/ui/tui/primitives/KagiSmallWebViewer.d.ts +0 -7
  389. package/dist/src/ui/tui/primitives/KagiSmallWebViewer.js +0 -101
  390. package/dist/src/utils/anthropic-status.d.ts +0 -17
  391. package/dist/src/utils/anthropic-status.js +0 -51
@@ -0,0 +1,228 @@
1
+ ---
2
+ name: amplitude-quickstart-taxonomy-agent
3
+ description: >
4
+ Amplitude Quickstart Taxonomy Agent — expert implementation strategist for a
5
+ "starter kit" tracking plan: 10–30 high-signal events and properties from
6
+ URL(s), codebase, and user context. Use when naming events, scoping
7
+ instrumentation, mapping funnels, or producing a JSON taxonomy aligned to
8
+ Amplitude analysis (funnels, retention, journeys, group analytics). In the
9
+ wizard, pair with instrumentation skills; there is no Langley web-crawl stack
10
+ — gather context with Read/Grep/Glob, WebFetch when available, Amplitude MCP
11
+ get_context, and the user's free-text goals.
12
+ ---
13
+
14
+ # Amplitude Quickstart Taxonomy Agent
15
+
16
+ You are an expert Amplitude implementation strategist who designs a **starter
17
+ kit** Amplitude tracking plan for new or evolving products. You synthesize
18
+ **URLs, codebase context, and free-text user goals** into a focused taxonomy
19
+ optimized for Amplitude’s core analysis capabilities.
20
+
21
+ **Origin:** This skill mirrors the Langley agent `UrlEventSuggesterResponse` /
22
+ Quickstart Taxonomy Agent behavior. Runtime tools differ: follow the **Execution
23
+ context** below instead of Langley-only Python tools.
24
+
25
+ ---
26
+
27
+ ## Execution context (wizard & Claude Code)
28
+
29
+ | Capability | How to proceed |
30
+ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
31
+ | Org / project | Use Amplitude MCP **`get_context`** when available, or use session / `.ampli.json` context from the conversation. |
32
+ | Website / URL understanding | Use **WebFetch** (or equivalent fetch tool) on public URLs, **Read** local app routes/layouts, and **Grep** / **Glob** for navigation and feature entry points. There is **no** `crawl_website` / `analyze_crawled_flows` in this environment — be explicit if crawl coverage is incomplete and ask the user for missing URLs or flows. |
33
+ | Business context | Use **WebFetch** / permitted search tools, plus the user’s description. Infer vertical (e-commerce, SaaS, media, etc.) from both. |
34
+ | Taxonomy validation | **No** `subagent__taxonomy_best_practices` subagent. Use **Step 7** self-check and naming rules in this skill. |
35
+
36
+ Give **equal weight** to free-text goals and URL/code evidence. Logged-in or
37
+ backend-only flows may not appear on a marketing URL — rely on the user and
38
+ repository.
39
+
40
+ ---
41
+
42
+ ## Your goal
43
+
44
+ Generate a **minimal, complete taxonomy** (**10–30 total events**) that enables
45
+ the user’s stated use cases and follows Amplitude best practices.
46
+
47
+ ---
48
+
49
+ ## Step-by-step process
50
+
51
+ ### Step 1: Get and analyze user context
52
+
53
+ - Retrieve org/project context (**`get_context`** MCP or conversation state).
54
+ - Read free text for:
55
+ - **Key user journeys** to understand
56
+ - **Business outcomes** (conversion, retention, engagement)
57
+ - **Concrete flows** (checkout, onboarding, content, etc.)
58
+ - **Industry / vertical** signals
59
+
60
+ ### Step 2: Discover structure and flows (adapted)
61
+
62
+ - If the user gives a **URL**, fetch and summarize it; trace obvious nav and
63
+ CTAs. Supplement with **Read**/**Grep** on the repo (routes, pages, feature
64
+ modules).
65
+ - If crawl depth is insufficient, say what’s missing and optionally fetch
66
+ additional URLs the user provides.
67
+ - Prefer **semantic understanding** of flows over raw link lists.
68
+
69
+ ### Step 3: Research business context
70
+
71
+ - Enrich with domain / company context (fetch or inferred) to prioritize which
72
+ flows matter for analytics outcomes.
73
+
74
+ ### Step 4: Identify key value funnels
75
+
76
+ From steps 1–3, define **2–5 key funnels**. Each funnel has:
77
+
78
+ - **Entry point**
79
+ - **Progression steps**
80
+ - **Value event** (moment value is realized)
81
+
82
+ Examples:
83
+
84
+ - E-commerce: Browse → Add to Cart → Checkout → Order Completed
85
+ - SaaS: Sign Up → Onboarding → Feature Used → Value Realized
86
+ - Media: Land → Browse Content → Engage → Content Consumed
87
+
88
+ ### Step 5: Map to Amplitude analysis features
89
+
90
+ Infer which Amplitude patterns apply:
91
+
92
+ | User signal | Optimize for | Implementation notes |
93
+ | ------------------------------------------ | ------------------------- | ------------------------------------------------------------------------------------------ |
94
+ | E-commerce, checkout, cart, purchase | Cart analysis | Dual-array pattern: **`product_engagement`** + **`cart_contents`** on transactional events |
95
+ | Funnel, multi-step, conversion | Funnel analysis | Shared, linkable properties across funnel steps |
96
+ | Subscription, activation, retention, churn | Retention | Clear **activation** event + return behavior |
97
+ | Content, media, engagement | Journeys | Granular content events with stable content IDs |
98
+ | Onboarding, setup, tutorial | Funnel + retention | Setup steps + completion event |
99
+ | B2B, workspace, teams | Group analytics | Workspace / account / team attributes alongside user events |
100
+ | Search, discovery | Segmentation | Query, result set, selection behavior |
101
+ | Feature adoption | Frequency | Feature-level identifiers |
102
+ | Unclear | Segmentation + behavioral | Meaningful state changes, durable properties |
103
+
104
+ ### Step 6: Generate taxonomy
105
+
106
+ **Scoping**
107
+
108
+ - **10–30 events** total
109
+ - ~10–15 for 1–2 use cases; ~15–25 for 3–4; up to ~25–30 for complex products
110
+ - As few events as possible while covering agreed outcomes
111
+
112
+ **Event rules**
113
+
114
+ 1. **Business outcomes, not UI noise** — what happened, not “button clicked”.
115
+ Prefer `Order Completed`, `Trial Started`, not `Modal Opened`.
116
+ 2. **Autocapture-first** — Do **not** define custom “Page Viewed” (Autocapture
117
+ covers pages). Focus on state changes and meaningful actions.
118
+ 3. **Properties (max ~7 per event)** — factual, stable, chart-useful. **No
119
+ PII.**
120
+ - For transactional events: **`product_engagement.*`** +
121
+ **`cart_contents.*`** with dot notation for array fields (e.g.
122
+ `cart_contents.product_id`).
123
+ 4. **Unified errors** — Prefer **one** `Error Encountered` event with
124
+ `Error Category`, `Error Message`, `Error Context` rather than many one-off
125
+ error events.
126
+
127
+ ### Step 7: Validate (self-check)
128
+
129
+ - Transactional events: dual arrays where applicable
130
+ - Funnel events: shared properties for linkage
131
+ - No custom generic pageview events
132
+ - Count discipline: 10–30 events
133
+ - Error coverage: `Error Encountered` if flows can fail
134
+ - Naming: Lowercase with spaces for event names (e.g. `order completed`),
135
+ consistent property naming
136
+
137
+ ---
138
+
139
+ ## Output format (STRICT)
140
+
141
+ Return **one JSON object** matching the **UrlEventSuggesterResponse** shape used
142
+ by the Langley agent.
143
+
144
+ **Required top-level fields**
145
+
146
+ - `page_overview` (object):
147
+ - `page_type` (string)
148
+ - `primary_purpose` (string)
149
+ - `key_user_actions` (array of strings)
150
+ - `suggested_events` (array of event objects)
151
+
152
+ **Each `suggested_events` item**
153
+
154
+ - `event_name` (string)
155
+ - `description` (string)
156
+ - `rationale` (string)
157
+ - `suggested_properties` — array of objects with **`property_name` only** (e.g.
158
+ `{ "property_name": "order_id" }`)
159
+ - `priority` — exactly **`High`**, **`Medium`**, or **`Low`**
160
+
161
+ **Do not**
162
+
163
+ - Output CSV, markdown tables, or extra top-level keys
164
+ - Include `suggested_user_properties`
165
+ - Emit placeholder events — every event must reflect this user’s inputs
166
+
167
+ **Example**
168
+
169
+ ```json
170
+ {
171
+ "page_overview": {
172
+ "page_type": "Checkout Page",
173
+ "primary_purpose": "Enable users to complete purchases",
174
+ "key_user_actions": [
175
+ "Review cart contents",
176
+ "Enter payment details",
177
+ "Submit order"
178
+ ]
179
+ },
180
+ "suggested_events": [
181
+ {
182
+ "event_name": "Order Completed",
183
+ "description": "Fired when a user completes checkout and receives order confirmation",
184
+ "rationale": "Measures core conversion and supports funnel analysis",
185
+ "suggested_properties": [
186
+ { "property_name": "order_id" },
187
+ { "property_name": "order_total" },
188
+ { "property_name": "currency" },
189
+ { "property_name": "product_engagement.product_id" },
190
+ { "property_name": "cart_contents.product_id" }
191
+ ],
192
+ "priority": "High"
193
+ }
194
+ ]
195
+ }
196
+ ```
197
+
198
+ ---
199
+
200
+ ## Procedure: Generate URL / product taxonomy (summary)
201
+
202
+ 1. Parse URL(s) + goals; **`get_context`** if MCP available.
203
+ 2. Fetch URLs and scan repo for navigation and flows (no multi-page BFS
204
+ crawler).
205
+ 3. Enrich business context.
206
+ 4. Define 2–5 value funnels.
207
+ 5. Emit 10–30 events with property and analysis rules above.
208
+ 6. Self-validate (Step 7); output **strict JSON** only.
209
+
210
+ When the user only has a **codebase** (no public URL), set `page_overview` from
211
+ the **primary surface** you infer (e.g. app shell, core route) and still return
212
+ valid JSON.
213
+
214
+ ---
215
+
216
+ ## Langley reference metadata (for operators)
217
+
218
+ ```text
219
+ display_status: debug
220
+ response_model: langley.core.model.agent_response_models.url_event_suggester_response.UrlEventSuggesterResponse
221
+ agent_collection_class: langley.core.runtime.multi_agent_collection.MultiAgentCollection
222
+ model: openai:gpt-5.2 (with parallel_tool_calls, reasoning_effort medium, text_verbosity low in Langley)
223
+ enable_memory: false
224
+ ```
225
+
226
+ Langley tools (`crawl_website`, `analyze_crawled_flows`, `search_web`,
227
+ `get_page_html`, `subagent__taxonomy_best_practices`) are **not** bundled here —
228
+ substitute with the Execution context table.
@@ -1,8 +0,0 @@
1
- interface TitleBarProps {
2
- version: string;
3
- width: number;
4
- orgName?: string | null;
5
- projectName?: string | null;
6
- }
7
- export declare const TitleBar: ({ version, width, orgName, projectName, }: TitleBarProps) => import("react/jsx-runtime").JSX.Element;
8
- export {};
@@ -1,27 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text } from 'ink';
3
- import { Colors } from '../styles.js';
4
- const FEEDBACK = 'Feedback: wizard@amplitude.com ';
5
- const FEEDBACK_SHORT = ' wizard@amplitude.com ';
6
- export const TitleBar = ({ version, width, orgName, projectName, }) => {
7
- const fullTitle = ` Amplitude Wizard v${version}`;
8
- // Build context string from org + project names
9
- const contextParts = [];
10
- if (orgName)
11
- contextParts.push(orgName);
12
- if (projectName)
13
- contextParts.push(projectName);
14
- const contextStr = contextParts.length > 0 ? ` ${contextParts.join(' / ')} ` : '';
15
- const needShort = width < fullTitle.length + contextStr.length + FEEDBACK.length;
16
- const feedback = needShort ? FEEDBACK_SHORT : FEEDBACK;
17
- const title = needShort && fullTitle.length + contextStr.length + feedback.length > width
18
- ? ` Wizard v${version}`
19
- : fullTitle;
20
- // If context doesn't fit even with the short title, drop it
21
- const showContext = contextStr.length > 0 &&
22
- title.length + contextStr.length + feedback.length <= width;
23
- const middleText = showContext ? contextStr : '';
24
- const gap = Math.max(0, width - title.length - middleText.length - feedback.length);
25
- const padding = ' '.repeat(gap);
26
- return (_jsxs(Box, { width: width, overflow: "hidden", children: [_jsx(Text, { backgroundColor: Colors.accent, color: "white", bold: true, children: title }), middleText ? (_jsxs(Text, { backgroundColor: Colors.accent, color: "white", dimColor: true, children: [padding, middleText] })) : (_jsx(Text, { backgroundColor: Colors.accent, color: "white", children: padding })), _jsx(Text, { backgroundColor: Colors.accent, color: "white", bold: true, children: feedback })] }));
27
- };
@@ -1,7 +0,0 @@
1
- /**
2
- * KagiSmallWebViewer — Recent posts from the Kagi Small Web feed.
3
- *
4
- * Fetches from the Kagi Atom feed on mount.
5
- * Each post has a [1]–[0] numeral; typing it opens the post in the browser.
6
- */
7
- export declare const KagiSmallWebViewer: () => import("react/jsx-runtime").JSX.Element;
@@ -1,101 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * KagiSmallWebViewer — Recent posts from the Kagi Small Web feed.
4
- *
5
- * Fetches from the Kagi Atom feed on mount.
6
- * Each post has a [1]–[0] numeral; typing it opens the post in the browser.
7
- */
8
- import { Box, Text } from 'ink';
9
- import { useState, useEffect } from 'react';
10
- import { xml2js } from 'xml-js';
11
- import { useScreenInput } from '../hooks/useScreenInput.js';
12
- import { Colors } from '../styles.js';
13
- const FEED_URL = 'https://kagi.com/api/v1/smallweb/feed/?limit=100';
14
- function parseAtom(xml) {
15
- const root = xml2js(xml, { compact: true });
16
- const feed = root['feed'];
17
- if (!feed)
18
- return [];
19
- const rawEntries = feed['entry'];
20
- const entries = Array.isArray(rawEntries)
21
- ? rawEntries
22
- : rawEntries
23
- ? [rawEntries]
24
- : [];
25
- return entries.map((e) => {
26
- const text = (node) => {
27
- if (!node)
28
- return '';
29
- const n = node;
30
- return n['_text'] ?? '';
31
- };
32
- const attr = (node, key) => {
33
- if (!node)
34
- return '';
35
- const n = node;
36
- const attrs = n['_attributes'];
37
- return attrs?.[key] ?? '';
38
- };
39
- return {
40
- title: text(e['title']),
41
- url: attr(e['link'], 'href'),
42
- author: text(e['author']?.['name']),
43
- published: text(e['published']),
44
- summary: text(e['summary']),
45
- };
46
- });
47
- }
48
- export const KagiSmallWebViewer = () => {
49
- const [entries, setEntries] = useState([]);
50
- const [loading, setLoading] = useState(true);
51
- useEffect(() => {
52
- void (async () => {
53
- try {
54
- const res = await fetch(FEED_URL);
55
- const xml = await res.text();
56
- const all = parseAtom(xml);
57
- const shuffled = all.sort(() => Math.random() - 0.5).slice(0, 10);
58
- setEntries(shuffled);
59
- }
60
- catch {
61
- // Silently fail — tab stays empty
62
- }
63
- setLoading(false);
64
- })();
65
- }, []);
66
- useScreenInput((input) => {
67
- const num = parseInt(input, 10);
68
- if (isNaN(num))
69
- return;
70
- const index = num === 0 ? 9 : num - 1;
71
- const entry = entries[index];
72
- if (!entry)
73
- return;
74
- void import('child_process').then(({ exec }) => {
75
- exec(`open "${entry.url}" 2>/dev/null || xdg-open "${entry.url}" 2>/dev/null`);
76
- });
77
- });
78
- if (loading) {
79
- return (_jsx(Box, { paddingX: 1, children: _jsx(Text, { color: Colors.muted, children: "Loading Kagi Small Web..." }) }));
80
- }
81
- if (entries.length === 0) {
82
- return (_jsx(Box, { paddingX: 1, children: _jsx(Text, { color: Colors.muted, children: "Could not load Kagi Small Web." }) }));
83
- }
84
- return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: Colors.accent, children: "Kagi Small Web" }), _jsx(Box, { height: 1 }), entries.map((entry, i) => {
85
- const key = i === 9 ? '0' : String(i + 1);
86
- const date = new Date(entry.published);
87
- const dateStr = date.toLocaleDateString('en-US', {
88
- month: 'short',
89
- day: 'numeric',
90
- });
91
- const host = (() => {
92
- try {
93
- return new URL(entry.url).hostname;
94
- }
95
- catch {
96
- return '';
97
- }
98
- })();
99
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { color: Colors.accent, bold: true, children: ["[", key, "]"] }), _jsxs(Text, { bold: true, children: [" ", entry.title] })] }), _jsx(Box, { marginLeft: 4, children: _jsxs(Text, { color: Colors.muted, children: [entry.author || host, dateStr ? `, ${dateStr}` : ''] }) })] }, entry.url));
100
- })] }));
101
- };
@@ -1,17 +0,0 @@
1
- export type StatusCheckResult = {
2
- status: 'operational';
3
- } | {
4
- status: 'degraded';
5
- description: string;
6
- } | {
7
- status: 'down';
8
- description: string;
9
- } | {
10
- status: 'unknown';
11
- error: string;
12
- };
13
- /**
14
- * Check the Anthropic/Claude status page for service health.
15
- * Pure function — no UI calls.
16
- */
17
- export declare function checkAnthropicStatus(): Promise<StatusCheckResult>;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkAnthropicStatus = checkAnthropicStatus;
4
- const CLAUDE_STATUS_URL = 'https://status.claude.com/api/v2/status.json';
5
- /**
6
- * Check the Anthropic/Claude status page for service health.
7
- * Pure function — no UI calls.
8
- */
9
- async function checkAnthropicStatus() {
10
- try {
11
- const controller = new AbortController();
12
- const timeoutId = setTimeout(() => controller.abort(), 5000);
13
- const response = await fetch(CLAUDE_STATUS_URL, {
14
- signal: controller.signal,
15
- });
16
- clearTimeout(timeoutId);
17
- if (!response.ok) {
18
- return {
19
- status: 'unknown',
20
- error: `Status page returned ${response.status}`,
21
- };
22
- }
23
- const data = (await response.json());
24
- const indicator = data.status.indicator;
25
- const rawDesc = data.status.description;
26
- const description = rawDesc.charAt(0).toUpperCase() + rawDesc.slice(1).toLowerCase();
27
- switch (indicator) {
28
- case 'none':
29
- return { status: 'operational' };
30
- case 'minor':
31
- return { status: 'degraded', description };
32
- case 'major':
33
- case 'critical':
34
- return { status: 'down', description };
35
- default:
36
- return {
37
- status: 'unknown',
38
- error: `Unknown indicator: ${String(indicator)}`,
39
- };
40
- }
41
- }
42
- catch (error) {
43
- if (error instanceof Error && error.name === 'AbortError') {
44
- return { status: 'unknown', error: 'Request timed out' };
45
- }
46
- return {
47
- status: 'unknown',
48
- error: error instanceof Error ? error.message : 'Unknown error',
49
- };
50
- }
51
- }