opencode-agora 0.4.0 → 0.4.2

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 (248) hide show
  1. package/README.md +89 -415
  2. package/dist/atomic-write.d.ts +10 -0
  3. package/dist/atomic-write.d.ts.map +1 -0
  4. package/dist/atomic-write.js +23 -0
  5. package/dist/atomic-write.js.map +1 -0
  6. package/dist/auth/refresh.d.ts +17 -0
  7. package/dist/auth/refresh.d.ts.map +1 -0
  8. package/dist/auth/refresh.js +50 -0
  9. package/dist/auth/refresh.js.map +1 -0
  10. package/dist/cli/app.d.ts +11 -19
  11. package/dist/cli/app.d.ts.map +1 -1
  12. package/dist/cli/app.js +159 -2028
  13. package/dist/cli/app.js.map +1 -1
  14. package/dist/cli/commands/browse.d.ts +4 -0
  15. package/dist/cli/commands/browse.d.ts.map +1 -0
  16. package/dist/cli/commands/browse.js +80 -0
  17. package/dist/cli/commands/browse.js.map +1 -0
  18. package/dist/cli/commands/chat.d.ts +4 -0
  19. package/dist/cli/commands/chat.d.ts.map +1 -0
  20. package/dist/cli/commands/chat.js +125 -0
  21. package/dist/cli/commands/chat.js.map +1 -0
  22. package/dist/cli/commands/community.d.ts +12 -0
  23. package/dist/cli/commands/community.d.ts.map +1 -0
  24. package/dist/cli/commands/community.js +453 -0
  25. package/dist/cli/commands/community.js.map +1 -0
  26. package/dist/cli/commands/export.d.ts +3 -0
  27. package/dist/cli/commands/export.d.ts.map +1 -0
  28. package/dist/cli/commands/export.js +108 -0
  29. package/dist/cli/commands/export.js.map +1 -0
  30. package/dist/cli/commands/init.d.ts +4 -0
  31. package/dist/cli/commands/init.d.ts.map +1 -0
  32. package/dist/cli/commands/init.js +299 -0
  33. package/dist/cli/commands/init.js.map +1 -0
  34. package/dist/cli/commands/learn.d.ts +4 -0
  35. package/dist/cli/commands/learn.d.ts.map +1 -0
  36. package/dist/cli/commands/learn.js +62 -0
  37. package/dist/cli/commands/learn.js.map +1 -0
  38. package/dist/cli/commands/marketplace.d.ts +9 -0
  39. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  40. package/dist/cli/commands/marketplace.js +321 -0
  41. package/dist/cli/commands/marketplace.js.map +1 -0
  42. package/dist/cli/commands/notify.d.ts +3 -0
  43. package/dist/cli/commands/notify.d.ts.map +1 -0
  44. package/dist/cli/commands/notify.js +59 -0
  45. package/dist/cli/commands/notify.js.map +1 -0
  46. package/dist/cli/commands/operations.d.ts +16 -0
  47. package/dist/cli/commands/operations.d.ts.map +1 -0
  48. package/dist/cli/commands/operations.js +1041 -0
  49. package/dist/cli/commands/operations.js.map +1 -0
  50. package/dist/cli/commands/outdated.d.ts +3 -0
  51. package/dist/cli/commands/outdated.d.ts.map +1 -0
  52. package/dist/cli/commands/outdated.js +48 -0
  53. package/dist/cli/commands/outdated.js.map +1 -0
  54. package/dist/cli/commands/ping.d.ts +3 -0
  55. package/dist/cli/commands/ping.d.ts.map +1 -0
  56. package/dist/cli/commands/ping.js +56 -0
  57. package/dist/cli/commands/ping.js.map +1 -0
  58. package/dist/cli/commands/scan.d.ts +3 -0
  59. package/dist/cli/commands/scan.d.ts.map +1 -0
  60. package/dist/cli/commands/scan.js +35 -0
  61. package/dist/cli/commands/scan.js.map +1 -0
  62. package/dist/cli/commands/today.d.ts +3 -0
  63. package/dist/cli/commands/today.d.ts.map +1 -0
  64. package/dist/cli/commands/today.js +142 -0
  65. package/dist/cli/commands/today.js.map +1 -0
  66. package/dist/cli/commands/types.d.ts +5 -0
  67. package/dist/cli/commands/types.d.ts.map +1 -0
  68. package/dist/cli/commands/types.js +2 -0
  69. package/dist/cli/commands/types.js.map +1 -0
  70. package/dist/cli/commands/watch.d.ts +3 -0
  71. package/dist/cli/commands/watch.d.ts.map +1 -0
  72. package/dist/cli/commands/watch.js +41 -0
  73. package/dist/cli/commands/watch.js.map +1 -0
  74. package/dist/cli/commands/welcome.d.ts +3 -0
  75. package/dist/cli/commands/welcome.d.ts.map +1 -0
  76. package/dist/cli/commands/welcome.js +97 -0
  77. package/dist/cli/commands/welcome.js.map +1 -0
  78. package/dist/cli/commands-meta.d.ts.map +1 -1
  79. package/dist/cli/commands-meta.js +286 -29
  80. package/dist/cli/commands-meta.js.map +1 -1
  81. package/dist/cli/completions-gen.d.ts +2 -0
  82. package/dist/cli/completions-gen.d.ts.map +1 -0
  83. package/dist/cli/completions-gen.js +195 -0
  84. package/dist/cli/completions-gen.js.map +1 -0
  85. package/dist/cli/completions.d.ts.map +1 -1
  86. package/dist/cli/completions.js +42 -5
  87. package/dist/cli/completions.js.map +1 -1
  88. package/dist/cli/flags.d.ts +19 -0
  89. package/dist/cli/flags.d.ts.map +1 -0
  90. package/dist/cli/flags.js +91 -0
  91. package/dist/cli/flags.js.map +1 -0
  92. package/dist/cli/format.d.ts +19 -0
  93. package/dist/cli/format.d.ts.map +1 -0
  94. package/dist/cli/format.js +249 -0
  95. package/dist/cli/format.js.map +1 -0
  96. package/dist/cli/helpers.d.ts +95 -0
  97. package/dist/cli/helpers.d.ts.map +1 -0
  98. package/dist/cli/helpers.js +301 -0
  99. package/dist/cli/helpers.js.map +1 -0
  100. package/dist/cli/mcp-server.d.ts +7 -1
  101. package/dist/cli/mcp-server.d.ts.map +1 -1
  102. package/dist/cli/mcp-server.js +70 -2
  103. package/dist/cli/mcp-server.js.map +1 -1
  104. package/dist/cli/menu.d.ts.map +1 -1
  105. package/dist/cli/menu.js +11 -3
  106. package/dist/cli/menu.js.map +1 -1
  107. package/dist/cli/pages/community.d.ts +6 -0
  108. package/dist/cli/pages/community.d.ts.map +1 -1
  109. package/dist/cli/pages/community.js +882 -64
  110. package/dist/cli/pages/community.js.map +1 -1
  111. package/dist/cli/pages/helpers.d.ts +14 -9
  112. package/dist/cli/pages/helpers.d.ts.map +1 -1
  113. package/dist/cli/pages/helpers.js +37 -6
  114. package/dist/cli/pages/helpers.js.map +1 -1
  115. package/dist/cli/pages/home.d.ts +1 -0
  116. package/dist/cli/pages/home.d.ts.map +1 -1
  117. package/dist/cli/pages/home.js +203 -120
  118. package/dist/cli/pages/home.js.map +1 -1
  119. package/dist/cli/pages/marketplace.d.ts +2 -0
  120. package/dist/cli/pages/marketplace.d.ts.map +1 -1
  121. package/dist/cli/pages/marketplace.js +524 -62
  122. package/dist/cli/pages/marketplace.js.map +1 -1
  123. package/dist/cli/pages/news.d.ts +28 -0
  124. package/dist/cli/pages/news.d.ts.map +1 -1
  125. package/dist/cli/pages/news.js +209 -82
  126. package/dist/cli/pages/news.js.map +1 -1
  127. package/dist/cli/pages/settings.d.ts.map +1 -1
  128. package/dist/cli/pages/settings.js +163 -33
  129. package/dist/cli/pages/settings.js.map +1 -1
  130. package/dist/cli/pages/types.d.ts +1 -1
  131. package/dist/cli/pages/types.d.ts.map +1 -1
  132. package/dist/cli/prompter.d.ts.map +1 -1
  133. package/dist/cli/prompter.js +43 -8
  134. package/dist/cli/prompter.js.map +1 -1
  135. package/dist/cli/shell.d.ts +2 -2
  136. package/dist/cli/shell.d.ts.map +1 -1
  137. package/dist/cli/shell.js +321 -18
  138. package/dist/cli/shell.js.map +1 -1
  139. package/dist/cli/tui.d.ts +1 -1
  140. package/dist/cli/tui.d.ts.map +1 -1
  141. package/dist/cli/tui.js +69 -23
  142. package/dist/cli/tui.js.map +1 -1
  143. package/dist/community/client.d.ts +45 -8
  144. package/dist/community/client.d.ts.map +1 -1
  145. package/dist/community/client.js +118 -23
  146. package/dist/community/client.js.map +1 -1
  147. package/dist/community/search.d.ts +25 -0
  148. package/dist/community/search.d.ts.map +1 -0
  149. package/dist/community/search.js +62 -0
  150. package/dist/community/search.js.map +1 -0
  151. package/dist/community/types.d.ts +21 -0
  152. package/dist/community/types.d.ts.map +1 -1
  153. package/dist/community/types.js +1 -1
  154. package/dist/config.d.ts +0 -4
  155. package/dist/config.d.ts.map +1 -1
  156. package/dist/config.js +0 -15
  157. package/dist/config.js.map +1 -1
  158. package/dist/data.d.ts.map +1 -1
  159. package/dist/data.js +142 -68
  160. package/dist/data.js.map +1 -1
  161. package/dist/format.d.ts +0 -2
  162. package/dist/format.d.ts.map +1 -1
  163. package/dist/format.js +0 -2
  164. package/dist/format.js.map +1 -1
  165. package/dist/hubs/cache.d.ts +6 -0
  166. package/dist/hubs/cache.d.ts.map +1 -0
  167. package/dist/hubs/cache.js +46 -0
  168. package/dist/hubs/cache.js.map +1 -0
  169. package/dist/hubs/enrichment.d.ts +43 -0
  170. package/dist/hubs/enrichment.d.ts.map +1 -0
  171. package/dist/hubs/enrichment.js +239 -0
  172. package/dist/hubs/enrichment.js.map +1 -0
  173. package/dist/hubs/github.d.ts +12 -0
  174. package/dist/hubs/github.d.ts.map +1 -0
  175. package/dist/hubs/github.js +54 -0
  176. package/dist/hubs/github.js.map +1 -0
  177. package/dist/hubs/huggingface.d.ts +27 -0
  178. package/dist/hubs/huggingface.d.ts.map +1 -0
  179. package/dist/hubs/huggingface.js +88 -0
  180. package/dist/hubs/huggingface.js.map +1 -0
  181. package/dist/hubs/quality.d.ts +26 -0
  182. package/dist/hubs/quality.d.ts.map +1 -0
  183. package/dist/hubs/quality.js +57 -0
  184. package/dist/hubs/quality.js.map +1 -0
  185. package/dist/hubs/types.d.ts +30 -0
  186. package/dist/hubs/types.d.ts.map +1 -0
  187. package/dist/hubs/types.js +2 -0
  188. package/dist/hubs/types.js.map +1 -0
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +84 -0
  191. package/dist/index.js.map +1 -1
  192. package/dist/init.js +2 -2
  193. package/dist/init.js.map +1 -1
  194. package/dist/live.d.ts +10 -0
  195. package/dist/live.d.ts.map +1 -1
  196. package/dist/live.js +31 -1
  197. package/dist/live.js.map +1 -1
  198. package/dist/marketplace.d.ts +16 -3
  199. package/dist/marketplace.d.ts.map +1 -1
  200. package/dist/marketplace.js +174 -7
  201. package/dist/marketplace.js.map +1 -1
  202. package/dist/news/cache.d.ts.map +1 -1
  203. package/dist/news/cache.js +4 -3
  204. package/dist/news/cache.js.map +1 -1
  205. package/dist/news/score.js +1 -1
  206. package/dist/news/sources/arxiv.d.ts.map +1 -1
  207. package/dist/news/sources/arxiv.js +10 -6
  208. package/dist/news/sources/arxiv.js.map +1 -1
  209. package/dist/news/sources/github-trending.d.ts.map +1 -1
  210. package/dist/news/sources/github-trending.js +9 -5
  211. package/dist/news/sources/github-trending.js.map +1 -1
  212. package/dist/news/sources/hn.d.ts.map +1 -1
  213. package/dist/news/sources/hn.js +8 -4
  214. package/dist/news/sources/hn.js.map +1 -1
  215. package/dist/news/sources/reddit.d.ts.map +1 -1
  216. package/dist/news/sources/reddit.js +5 -4
  217. package/dist/news/sources/reddit.js.map +1 -1
  218. package/dist/news/sources/rss.d.ts +10 -11
  219. package/dist/news/sources/rss.d.ts.map +1 -1
  220. package/dist/news/sources/rss.js +11 -99
  221. package/dist/news/sources/rss.js.map +1 -1
  222. package/dist/news/types.d.ts +3 -0
  223. package/dist/news/types.d.ts.map +1 -1
  224. package/dist/news/types.js +15 -6
  225. package/dist/news/types.js.map +1 -1
  226. package/dist/outdated.d.ts +24 -0
  227. package/dist/outdated.d.ts.map +1 -0
  228. package/dist/outdated.js +53 -0
  229. package/dist/outdated.js.map +1 -0
  230. package/dist/preferences.d.ts.map +1 -1
  231. package/dist/preferences.js +4 -4
  232. package/dist/preferences.js.map +1 -1
  233. package/dist/scan.d.ts +26 -0
  234. package/dist/scan.d.ts.map +1 -0
  235. package/dist/scan.js +179 -0
  236. package/dist/scan.js.map +1 -0
  237. package/dist/settings.d.ts.map +1 -1
  238. package/dist/settings.js +14 -20
  239. package/dist/settings.js.map +1 -1
  240. package/dist/state.d.ts +9 -2
  241. package/dist/state.d.ts.map +1 -1
  242. package/dist/state.js +41 -19
  243. package/dist/state.js.map +1 -1
  244. package/dist/types.d.ts +13 -0
  245. package/dist/types.d.ts.map +1 -1
  246. package/dist/ui.d.ts +1 -1
  247. package/dist/ui.js +1 -1
  248. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../src/cli/pages/marketplace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../src/cli/pages/marketplace.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,31 @@
1
1
  import type { Page } from './types.js';
2
+ import type { ScoredNewsItem, NewsSource } from '../../news/types.js';
3
+ import { spawn } from 'node:child_process';
4
+ type View = 'list' | 'detail' | 'preview';
5
+ interface NewsState {
6
+ cursor: number;
7
+ tab: number;
8
+ source: NewsSource | 'all';
9
+ filter: string;
10
+ filtering: boolean;
11
+ savedOnly: boolean;
12
+ unreadOnly: boolean;
13
+ items: ScoredNewsItem[];
14
+ read: Set<string>;
15
+ saved: Set<string>;
16
+ loading: boolean;
17
+ view: View;
18
+ previewItem: ScoredNewsItem | null;
19
+ previewContent: string | null;
20
+ previewLines: string[];
21
+ previewScroll: number;
22
+ previewLoading: boolean;
23
+ previewPhase: string;
24
+ previewAbort: AbortController | null;
25
+ previewChild: ReturnType<typeof spawn> | null;
26
+ dataDir: string | null;
27
+ }
28
+ export declare function visible(st?: NewsState): ScoredNewsItem[];
2
29
  export declare const newsPage: Page;
30
+ export {};
3
31
  //# sourceMappingURL=news.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"news.d.ts","sourceRoot":"","sources":["../../../src/cli/pages/news.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,YAAY,CAAC;AAoRhE,eAAO,MAAM,QAAQ,EAAE,IAwRtB,CAAC"}
1
+ {"version":3,"file":"news.d.ts","sourceRoot":"","sources":["../../../src/cli/pages/news.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAY,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAShF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAoD3C,KAAK,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1C,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAsQD,wBAAgB,OAAO,CAAC,EAAE,GAAE,SAAiB,GAAG,cAAc,EAAE,CAU/D;AAED,eAAO,MAAM,QAAQ,EAAE,IA6YtB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DEFAULT_NEWS_CONFIG, hostFromUrl } from '../../news/types.js';
1
+ import { DEFAULT_NEWS_CONFIG, agoraUserAgent, hostFromUrl } from '../../news/types.js';
2
2
  import { rankItems } from '../../news/score.js';
3
3
  import { readCache, writeCache, isStale, readNewsMeta, writeNewsMeta } from '../../news/cache.js';
4
4
  import { formatNumber } from '../../format.js';
@@ -10,24 +10,48 @@ import { spawn } from 'node:child_process';
10
10
  import { join } from 'node:path';
11
11
  import { homedir } from 'node:os';
12
12
  import { vlen, rail, noRail, frame, scrollbar, sep } from './helpers.js';
13
- import { FREE_MODELS } from '../app.js';
13
+ import { FREE_MODELS } from '../commands/chat.js';
14
14
  const SOURCE_LABELS = {
15
15
  hn: 'HN',
16
16
  reddit: 'R ',
17
17
  'github-trending': 'GH',
18
18
  arxiv: 'XR',
19
- rss: 'RS',
19
+ rss: 'RS'
20
20
  };
21
+ const SOURCE_CYCLE = [
22
+ 'all',
23
+ 'hn',
24
+ 'reddit',
25
+ 'github-trending',
26
+ 'arxiv',
27
+ 'rss'
28
+ ];
21
29
  const ITEM_LINES = 3;
22
30
  const TABS = [
23
31
  { id: 'all', label: 'All', match: (_tags) => true },
24
- { id: 'mcp', label: 'Mcp', match: (tags) => tags.some(t => t.includes('mcp')) },
25
- { id: 'tools', label: 'Tools', match: (tags) => tags.some(t => t.includes('tool')) },
26
- { id: 'skills', label: 'Skills', match: (tags) => tags.some(t => t.includes('skill')) },
27
- { id: 'llms', label: 'Llms', match: (tags) => tags.some(t => t.includes('llm')) },
28
- { id: 'repos', label: 'Repos', match: (tags) => tags.some(t => t.includes('repo') || t.includes('github')) },
29
- { id: 'market', label: 'Market', match: (tags) => tags.some(t => t.includes('market')) },
30
- { id: 'search', label: 'Search', match: (tags) => tags.some(t => t.includes('search')) },
32
+ { id: 'mcp', label: 'Mcp', match: (tags) => tags.some((t) => t.includes('mcp')) },
33
+ { id: 'tools', label: 'Tools', match: (tags) => tags.some((t) => t.includes('tool')) },
34
+ {
35
+ id: 'skills',
36
+ label: 'Skills',
37
+ match: (tags) => tags.some((t) => t.includes('skill'))
38
+ },
39
+ { id: 'llms', label: 'Llms', match: (tags) => tags.some((t) => t.includes('llm')) },
40
+ {
41
+ id: 'repos',
42
+ label: 'Repos',
43
+ match: (tags) => tags.some((t) => t.includes('repo') || t.includes('github'))
44
+ },
45
+ {
46
+ id: 'market',
47
+ label: 'Market',
48
+ match: (tags) => tags.some((t) => t.includes('market'))
49
+ },
50
+ {
51
+ id: 'search',
52
+ label: 'Search',
53
+ match: (tags) => tags.some((t) => t.includes('search'))
54
+ }
31
55
  ];
32
56
  const state = {
33
57
  cursor: 0,
@@ -35,6 +59,8 @@ const state = {
35
59
  source: 'all',
36
60
  filter: '',
37
61
  filtering: false,
62
+ savedOnly: false,
63
+ unreadOnly: false,
38
64
  items: [],
39
65
  read: new Set(),
40
66
  saved: new Set(),
@@ -46,7 +72,9 @@ const state = {
46
72
  previewScroll: 0,
47
73
  previewLoading: false,
48
74
  previewPhase: '',
49
- dataDir: null,
75
+ previewAbort: null,
76
+ previewChild: null,
77
+ dataDir: null
50
78
  };
51
79
  function detectDataDir(ctx) {
52
80
  const env = ctx.io.env ?? {};
@@ -59,7 +87,7 @@ function detectDataDir(ctx) {
59
87
  function fetchWithTimeout(fn, timeoutMs = 8000) {
60
88
  return Promise.race([
61
89
  fn(),
62
- new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeoutMs)),
90
+ new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeoutMs))
63
91
  ]);
64
92
  }
65
93
  async function refreshNews(ctx) {
@@ -71,20 +99,29 @@ async function refreshNews(ctx) {
71
99
  ['hn', hnSource],
72
100
  ['reddit', redditSource],
73
101
  ['github-trending', githubTrendingSource],
74
- ['arxiv', arxivSource],
102
+ ['arxiv', arxivSource]
75
103
  ];
76
- let merged = [...cached];
77
- for (const [source, adapter] of adapters) {
104
+ // Fetch all stale sources in parallel rather than sequentially — cold-start
105
+ // refresh is bounded by the slowest source instead of the sum.
106
+ const cachedSnapshot = [...cached];
107
+ const results = await Promise.all(adapters.map(async ([source, adapter]) => {
78
108
  const cfg = config.sources[source];
79
- if (cfg?.enabled && isStale(merged, source, cfg.ttlMinutes, now)) {
80
- try {
81
- const fresh = await fetchWithTimeout(() => adapter.fetch({}));
82
- merged = merged.filter(i => i.source !== source);
83
- merged.push(...fresh);
84
- }
85
- catch {
86
- // keep stale
87
- }
109
+ if (!cfg?.enabled || !isStale(cachedSnapshot, source, cfg.ttlMinutes, now)) {
110
+ return { source, fresh: null };
111
+ }
112
+ try {
113
+ const fresh = await fetchWithTimeout(() => adapter.fetch({}));
114
+ return { source, fresh };
115
+ }
116
+ catch {
117
+ return { source, fresh: null };
118
+ }
119
+ }));
120
+ let merged = cachedSnapshot;
121
+ for (const { source, fresh } of results) {
122
+ if (fresh) {
123
+ merged = merged.filter((i) => i.source !== source);
124
+ merged.push(...fresh);
88
125
  }
89
126
  }
90
127
  const ranked = rankItems(merged, config, now);
@@ -105,7 +142,10 @@ function htmlToText(html) {
105
142
  text = text.replace(/&#39;/g, "'");
106
143
  text = text.replace(/&nbsp;/g, ' ');
107
144
  text = text.replace(/\n{3,}/g, '\n\n');
108
- text = text.split('\n').map(l => l.trim()).join('\n');
145
+ text = text
146
+ .split('\n')
147
+ .map((l) => l.trim())
148
+ .join('\n');
109
149
  return text.trim();
110
150
  }
111
151
  function fmtAge(date) {
@@ -160,84 +200,115 @@ function trySummarize(text) {
160
200
  return new Promise((resolve) => {
161
201
  const child = spawn('opencode', ['run', '--format', 'json', '--model', modelArg, prompt], {
162
202
  stdio: ['ignore', 'pipe', 'pipe'],
163
- shell: false,
203
+ shell: false
164
204
  });
205
+ state.previewChild = child;
165
206
  let response = '';
166
- const timer = setTimeout(() => { child.kill(); resolve(null); }, 30000);
167
- child.stdout.on('data', (chunk) => {
207
+ const timer = setTimeout(() => {
208
+ child.kill();
209
+ resolve(null);
210
+ }, 30000);
211
+ child.stdout?.on('data', (chunk) => {
168
212
  for (const line of chunk.toString().split('\n').filter(Boolean)) {
169
213
  try {
170
214
  const ev = JSON.parse(line);
171
215
  if (ev.type === 'text' && ev.part?.text)
172
216
  response += ev.part.text;
173
217
  }
174
- catch { /* skip */ }
218
+ catch {
219
+ /* skip */
220
+ }
175
221
  }
176
222
  });
177
- child.on('close', () => { clearTimeout(timer); resolve(response || null); });
178
- child.on('error', () => { clearTimeout(timer); resolve(null); });
223
+ child.on('close', () => {
224
+ clearTimeout(timer);
225
+ if (state.previewChild === child)
226
+ state.previewChild = null;
227
+ resolve(response || null);
228
+ });
229
+ child.on('error', () => {
230
+ clearTimeout(timer);
231
+ if (state.previewChild === child)
232
+ state.previewChild = null;
233
+ resolve(null);
234
+ });
179
235
  });
180
236
  }
181
- async function fetchArticlePreview(url) {
237
+ async function fetchArticlePreview(url, signal) {
182
238
  try {
183
239
  const resp = await fetch(url, {
184
- signal: AbortSignal.timeout(8000),
185
- headers: { 'User-Agent': 'Agora/0.4.0 (+https://agora.opencode.ai)' }
240
+ signal,
241
+ headers: { 'User-Agent': agoraUserAgent }
186
242
  });
187
243
  if (!resp.ok)
188
244
  return `(error: HTTP ${resp.status})`;
189
245
  const html = await resp.text();
190
246
  const text = htmlToText(html);
191
- const lines = text.split('\n').filter(l => l.length > 0);
192
- return lines.length > 5
193
- ? text
194
- : '(could not extract article content from this page)';
247
+ const lines = text.split('\n').filter((l) => l.length > 0);
248
+ return lines.length > 5 ? text : '(could not extract article content from this page)';
195
249
  }
196
250
  catch (e) {
197
251
  return '(failed to fetch: ' + (e instanceof Error ? e.message : String(e)) + ')';
198
252
  }
199
253
  }
200
254
  async function startPreview(item, ctx) {
255
+ if (state.previewAbort)
256
+ state.previewAbort.abort();
257
+ if (state.previewChild && !state.previewChild.killed)
258
+ state.previewChild.kill();
259
+ const ac = new AbortController();
260
+ const timeoutId = setTimeout(() => ac.abort(), 8000);
261
+ state.previewAbort = ac;
201
262
  state.view = 'preview';
202
263
  state.previewScroll = 0;
203
264
  state.previewItem = item;
204
265
  state.previewContent = item.url;
205
266
  state.previewLines = [];
206
267
  state.previewLoading = true;
207
- state.previewPhase = 'Fetching article\u2026';
268
+ state.previewPhase = 'Fetching article';
208
269
  ctx.repaint();
209
270
  await sleep(100);
210
- const rawText = await fetchArticlePreview(item.url);
211
- if (rawText.startsWith('(failed') || rawText.startsWith('(error') || rawText.startsWith('(could not')) {
271
+ const rawText = await fetchArticlePreview(item.url, ac.signal);
272
+ clearTimeout(timeoutId);
273
+ if (state.previewAbort !== ac)
274
+ return; // superseded — bail without writing state
275
+ if (rawText.startsWith('(failed') ||
276
+ rawText.startsWith('(error') ||
277
+ rawText.startsWith('(could not')) {
212
278
  state.previewLines = wordWrap(rawText, ctx.width - 4);
213
279
  state.previewLoading = false;
214
280
  ctx.repaint();
215
281
  return;
216
282
  }
217
- state.previewPhase = 'Summarizing\u2026';
283
+ state.previewPhase = 'Summarizing';
218
284
  ctx.repaint();
219
285
  await sleep(100);
220
286
  const summary = await trySummarize(rawText);
287
+ if (state.previewAbort !== ac)
288
+ return; // superseded mid-summarize
221
289
  state.previewLines = wordWrap(summary ?? rawText, ctx.width - 4);
222
290
  state.previewLoading = false;
291
+ state.previewAbort = null;
223
292
  ctx.repaint();
224
293
  }
225
294
  function sleep(ms) {
226
- return new Promise(r => setTimeout(r, ms));
295
+ return new Promise((r) => setTimeout(r, ms));
227
296
  }
228
297
  function persistMeta() {
229
298
  if (!state.dataDir)
230
299
  return;
231
300
  writeNewsMeta(state.dataDir, {
232
301
  read: [...state.read],
233
- saved: [...state.saved],
302
+ saved: [...state.saved]
234
303
  });
235
304
  }
236
- function visible() {
237
- const tab = TABS[state.tab];
238
- return state.items.filter(s => (state.source === 'all' || s.source === state.source)
239
- && tab.match(s.tags)
240
- && (!state.filter || s.title.toLowerCase().includes(state.filter.toLowerCase())));
305
+ export function visible(st = state) {
306
+ const tab = TABS[st.tab];
307
+ return st.items.filter((s) => (st.source === 'all' || s.source === st.source) &&
308
+ tab.match(s.tags) &&
309
+ (!st.filter || s.title.toLowerCase().includes(st.filter.toLowerCase())) &&
310
+ (!st.savedOnly || st.saved.has(s.id)) &&
311
+ (!st.unreadOnly || !st.read.has(s.id)));
241
312
  }
242
313
  export const newsPage = {
243
314
  id: 'news',
@@ -247,13 +318,17 @@ export const newsPage = {
247
318
  handlesTab: true,
248
319
  hotkeys: [
249
320
  { key: 'j/k/Pg', label: 'nav' },
321
+ { key: 'g/G', label: 'jump' },
250
322
  { key: 'Enter', label: 'detail' },
251
323
  { key: 's', label: 'save' },
324
+ { key: 'b', label: 'saved' },
325
+ { key: 'u', label: 'unread' },
326
+ { key: 'S', label: 'source' },
252
327
  { key: 'p', label: 'preview' },
253
328
  { key: '/', label: 'filter' },
254
329
  { key: 'Tab', label: 'category' },
255
330
  { key: 'r', label: 'refresh' },
256
- { key: 'o', label: 'open' },
331
+ { key: 'o', label: 'open' }
257
332
  ],
258
333
  mount(ctx) {
259
334
  const dataDir = detectDataDir(ctx);
@@ -271,7 +346,16 @@ export const newsPage = {
271
346
  },
272
347
  unmount() {
273
348
  persistMeta();
349
+ if (state.previewAbort) {
350
+ state.previewAbort.abort();
351
+ state.previewAbort = null;
352
+ }
353
+ if (state.previewChild && !state.previewChild.killed) {
354
+ state.previewChild.kill();
355
+ state.previewChild = null;
356
+ }
274
357
  state.view = 'list';
358
+ state.previewLoading = false;
275
359
  },
276
360
  render(ctx) {
277
361
  const { style, width, height } = ctx;
@@ -279,8 +363,8 @@ export const newsPage = {
279
363
  const lines = [];
280
364
  const item = state.previewItem;
281
365
  if (state.previewLoading) {
282
- const dots = state.previewPhase === 'Summarizing\u2026' ? '\u25D4' : '\u25D9';
283
- lines.push(' ' + dots + ' ' + style.dim(state.previewPhase || 'Loading\u2026'));
366
+ const dots = state.previewPhase === 'Summarizing' ? '' : '';
367
+ lines.push(' ' + dots + ' ' + style.dim(state.previewPhase || 'Loading'));
284
368
  return frame(lines, width, height);
285
369
  }
286
370
  if (!item) {
@@ -289,17 +373,22 @@ export const newsPage = {
289
373
  }
290
374
  const headerLines = [
291
375
  ' ' + style.bold(item.title),
292
- ' ' + style.dim(SOURCE_LABELS[item.source] ?? item.source.toUpperCase())
293
- + style.dim(' \u00b7 ' + fmtAge(new Date(item.publishedAt)))
294
- + style.dim(' \u00b7 \u2191 ' + formatNumber(item.engagement))
295
- + style.dim(' \u00b7 s' + item.score.toFixed(2)),
296
- ' ' + sep('', width - 2, style),
376
+ ' ' +
377
+ style.dim(SOURCE_LABELS[item.source] ?? item.source.toUpperCase()) +
378
+ style.dim(' · ' + fmtAge(new Date(item.publishedAt))) +
379
+ style.dim(' · ' + formatNumber(item.engagement)) +
380
+ style.dim(' · s' + item.score.toFixed(2)),
381
+ ' ' + sep('', width - 2, style)
297
382
  ];
298
383
  lines.push(...headerLines);
299
384
  const footerLines = [
300
- ' ' + style.accent('o') + style.dim(' open in browser ')
301
- + style.accent('Esc') + style.dim(' back ')
302
- + style.accent('j/k') + style.dim(' nav'),
385
+ ' ' +
386
+ style.accent('o') +
387
+ style.dim(' open in browser ') +
388
+ style.accent('Esc') +
389
+ style.dim(' back ') +
390
+ style.accent('j/k') +
391
+ style.dim(' nav')
303
392
  ];
304
393
  const hdr = headerLines.length;
305
394
  const ftr = footerLines.length;
@@ -333,13 +422,14 @@ export const newsPage = {
333
422
  const ageH = (Date.now() - new Date(s.publishedAt).getTime()) / 3600000;
334
423
  const age = Math.round(ageH) + 'h ago';
335
424
  lines.push(' ' + style.bold(s.title));
336
- lines.push(' ' + style.dim(SOURCE_LABELS[s.source] ?? s.source.toUpperCase())
337
- + style.dim(' \u00b7 ' + age)
338
- + style.dim(' \u00b7 \u2191 ' + formatNumber(s.engagement))
339
- + style.dim(' \u00b7 s' + s.score.toFixed(2)));
425
+ lines.push(' ' +
426
+ style.dim(SOURCE_LABELS[s.source] ?? s.source.toUpperCase()) +
427
+ style.dim(' · ' + age) +
428
+ style.dim(' · ' + formatNumber(s.engagement)) +
429
+ style.dim(' · s' + s.score.toFixed(2)));
340
430
  lines.push(' ' + style.accent(s.url));
341
431
  if (s.tags && s.tags.length > 0) {
342
- lines.push(' ' + style.dim('Tags: ') + s.tags.map(t => style.accent(t)).join(', '));
432
+ lines.push(' ' + style.dim('Tags: ') + s.tags.map((t) => style.accent(t)).join(', '));
343
433
  }
344
434
  if (s.summary) {
345
435
  lines.push(' ' + sep('summary', width - 2, style));
@@ -356,24 +446,30 @@ export const newsPage = {
356
446
  ctx.app.unread.news = state.loading ? 0 : list.length;
357
447
  state.cursor = Math.min(state.cursor, Math.max(0, list.length - 1));
358
448
  const lines = [];
449
+ const srcLabel = state.source === 'all' ? 'all' : (SOURCE_LABELS[state.source] ?? state.source);
359
450
  const head = ' ' + style.bold(style.accent('NEWS'));
360
451
  const pos = list.length > 0 ? style.dim(' [' + (state.cursor + 1) + '/' + list.length + ']') : '';
361
- const right = pos + style.dim(' ' + list.length + ' stories');
452
+ const filterBadge = (state.savedOnly ? style.accent(' saved-only') : '') +
453
+ (state.unreadOnly ? style.accent(' unread-only') : '');
454
+ const right = pos +
455
+ style.dim(' ' + list.length + ' stories · src: ') +
456
+ style.accent(srcLabel) +
457
+ filterBadge;
362
458
  const gap = Math.max(2, width - vlen(head) - vlen(right) - 2);
363
459
  lines.push(head + ' '.repeat(gap) + right);
364
- const tabLine = ' ' + TABS.map((t, i) => i === state.tab ? style.accent(t.label) : style.dim(t.label)).join(style.dim(' ') + '\u00b7' + style.dim(' '));
460
+ const tabLine = ' ' +
461
+ TABS.map((t, i) => (i === state.tab ? style.accent(t.label) : style.dim(t.label))).join(style.dim(' ') + '·' + style.dim(' '));
365
462
  lines.push(tabLine);
366
- lines.push(' ' + style.dim('\u2500'.repeat(Math.max(0, width - 2))));
463
+ lines.push(' ' + style.dim(''.repeat(Math.max(0, width - 2))));
367
464
  if (state.filtering) {
368
- lines.push(' ' + style.accent('/') + ' ' + state.filter + style.dim('\u258f'));
465
+ lines.push(' ' + style.accent('/') + ' ' + state.filter + style.dim(''));
369
466
  }
370
467
  if (state.loading) {
371
- lines.push(' ' + style.dim('Loading news\u2026'));
468
+ lines.push(' ' + style.dim('Loading news'));
372
469
  return frame(lines, width, height);
373
470
  }
374
471
  if (list.length === 0) {
375
- lines.push(' ' + style.dim('Empty feed. Press ')
376
- + style.accent('r') + style.dim(' to refresh.'));
472
+ lines.push(' ' + style.dim('Empty feed. Press ') + style.accent('r') + style.dim(' to refresh.'));
377
473
  return frame(lines, width, height);
378
474
  }
379
475
  const used = lines.length;
@@ -392,17 +488,27 @@ export const newsPage = {
392
488
  const src = style.accent((SOURCE_LABELS[s.source] ?? s.source.toUpperCase()).padEnd(6));
393
489
  const ageH = (Date.now() - new Date(s.publishedAt).getTime()) / 3600000;
394
490
  const age = style.dim((Math.round(ageH) + 'h').padEnd(4));
395
- const up = style.accent(('\u2191 ' + formatNumber(s.engagement)).padStart(7));
491
+ const up = style.accent((' ' + formatNumber(s.engagement)).padStart(7));
396
492
  const score = style.dim('s' + s.score.toFixed(2));
397
493
  const isRead = state.read.has(s.id);
398
494
  const isSaved = state.saved.has(s.id);
399
- const titleColor = isRead ? style.dim(s.title)
400
- : (sel ? style.bold(s.title) : s.title);
401
- lines.push(' ' + lead + style.dim(rank + '. ') + src + ' ' + age + ' '
402
- + up + ' ' + score + ' ' + titleColor + ' ' + sbar[si - start]);
403
- lines.push(' ' + style.dim(hostFromUrl(s.url))
404
- + (isSaved ? style.accent(' saved') : ''));
405
- lines.push(' ' + style.dim('\u2500'.repeat(Math.max(0, width - 2))));
495
+ const titleColor = isRead ? style.dim(s.title) : sel ? style.bold(s.title) : s.title;
496
+ lines.push(' ' +
497
+ lead +
498
+ style.dim(rank + '. ') +
499
+ src +
500
+ ' ' +
501
+ age +
502
+ ' ' +
503
+ up +
504
+ ' ' +
505
+ score +
506
+ ' ' +
507
+ titleColor +
508
+ ' ' +
509
+ sbar[si - start]);
510
+ lines.push(' ' + style.dim(hostFromUrl(s.url)) + (isSaved ? style.accent(' saved') : ''));
511
+ lines.push(' ' + style.dim('─'.repeat(Math.max(0, width - 2))));
406
512
  }
407
513
  return frame(lines, width, height);
408
514
  },
@@ -501,6 +607,12 @@ export const newsPage = {
501
607
  case 'up':
502
608
  state.cursor = Math.max(0, state.cursor - 1);
503
609
  return { kind: 'none' };
610
+ case 'g':
611
+ state.cursor = 0;
612
+ return { kind: 'none' };
613
+ case 'G':
614
+ state.cursor = Math.max(0, list.length - 1);
615
+ return { kind: 'none' };
504
616
  case 'pageup':
505
617
  state.cursor = Math.max(0, state.cursor - 20);
506
618
  return { kind: 'none' };
@@ -529,6 +641,20 @@ export const newsPage = {
529
641
  }
530
642
  return { kind: 'none' };
531
643
  }
644
+ case 'S': {
645
+ const idx = SOURCE_CYCLE.indexOf(state.source);
646
+ state.source = SOURCE_CYCLE[(idx + 1) % SOURCE_CYCLE.length] ?? 'all';
647
+ state.cursor = 0;
648
+ return { kind: 'none' };
649
+ }
650
+ case 'b':
651
+ state.savedOnly = !state.savedOnly;
652
+ state.cursor = 0;
653
+ return { kind: 'none' };
654
+ case 'u':
655
+ state.unreadOnly = !state.unreadOnly;
656
+ state.cursor = 0;
657
+ return { kind: 'none' };
532
658
  case 'm': {
533
659
  const it = list[state.cursor];
534
660
  if (it) {
@@ -554,8 +680,9 @@ export const newsPage = {
554
680
  state.loading = true;
555
681
  refreshNews(ctx);
556
682
  return { kind: 'status', message: 'refreshing...' };
557
- default: return { kind: 'none' };
683
+ default:
684
+ return { kind: 'none' };
558
685
  }
559
- },
686
+ }
560
687
  };
561
688
  //# sourceMappingURL=news.js.map