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
@@ -0,0 +1,453 @@
1
+ import { BOARD_IDS } from '../../community/types.js';
2
+ import { communityBoardsSource, communityThreadsSource, communityThreadSource, createThreadSource, createReplySource, voteSource, flagSource, adminHideSource, adminLogSource, adminRecomputeSource } from '../../community/client.js';
3
+ import { createDiscussionSource, discussionsSource, flagMarketplaceSource } from '../../live.js';
4
+ import { normalizeNewsSource, DEFAULT_NEWS_CONFIG, hostFromUrl } from '../../news/types.js';
5
+ import { rankItems } from '../../news/score.js';
6
+ import { readCache, writeCache, isStale } from '../../news/cache.js';
7
+ import { hnSource } from '../../news/sources/hn.js';
8
+ import { redditSource } from '../../news/sources/reddit.js';
9
+ import { githubTrendingSource } from '../../news/sources/github-trending.js';
10
+ import { arxivSource } from '../../news/sources/arxiv.js';
11
+ import { formatNumber } from '../../format.js';
12
+ import { stringFlag, requiredStringFlag, numberFlag, sourceOptions, writeSourceOptions, sourceLabel, warnFallback, sourcePayload, writeLine, writeJson, usageError, detectDataDir, contentInput, discussionCategoryFlag } from '../helpers.js';
13
+ import { header, truncate } from '../format.js';
14
+ export const commandNews = async (parsed, io, style) => {
15
+ const query = parsed.args.join(' ');
16
+ const sourceOpt = stringFlag(parsed, 'source', 's');
17
+ const source = sourceOpt ? normalizeNewsSource(sourceOpt) : undefined;
18
+ const limit = numberFlag(parsed, 'limit', 'n') || 20;
19
+ const refresh = Boolean(parsed.flags.refresh);
20
+ const dataDir = detectDataDir(parsed, io);
21
+ let cached = readCache(dataDir);
22
+ const now = new Date();
23
+ const config = DEFAULT_NEWS_CONFIG;
24
+ const adapters = [
25
+ ['hn', hnSource],
26
+ ['reddit', redditSource],
27
+ ['github-trending', githubTrendingSource],
28
+ ['arxiv', arxivSource]
29
+ ];
30
+ const fetchWithTimeout = (fn, ms = 10000) => {
31
+ const controller = new AbortController();
32
+ let timer;
33
+ return new Promise((resolve, reject) => {
34
+ timer = setTimeout(() => {
35
+ controller.abort();
36
+ reject(new Error('timeout'));
37
+ }, ms);
38
+ fn(controller.signal).then((val) => {
39
+ clearTimeout(timer);
40
+ resolve(val);
41
+ }, (err) => {
42
+ clearTimeout(timer);
43
+ reject(err);
44
+ });
45
+ });
46
+ };
47
+ const refreshSource = async (src, adapter) => {
48
+ try {
49
+ const fresh = await fetchWithTimeout((signal) => adapter.fetch({ signal }));
50
+ cached = cached.filter((i) => i.source !== src);
51
+ cached.push(...fresh);
52
+ }
53
+ catch {
54
+ // keep stale
55
+ }
56
+ };
57
+ if (refresh) {
58
+ for (const [src, adapter] of adapters) {
59
+ await refreshSource(src, adapter);
60
+ }
61
+ }
62
+ else {
63
+ for (const [src, adapter] of adapters) {
64
+ const cfg = config.sources[src];
65
+ if (cfg?.enabled && isStale(cached, src, cfg.ttlMinutes, now)) {
66
+ await refreshSource(src, adapter);
67
+ }
68
+ }
69
+ }
70
+ const ranked = rankItems(cached, config, now);
71
+ writeCache(dataDir, cached);
72
+ let items = ranked;
73
+ if (query) {
74
+ const q = query.toLowerCase();
75
+ items = items.filter((i) => i.title.toLowerCase().includes(q) || i.tags.some((t) => t.includes(q)));
76
+ }
77
+ if (source) {
78
+ items = items.filter((i) => i.source === source);
79
+ }
80
+ items = items.slice(0, limit);
81
+ if (parsed.flags.json) {
82
+ writeJson(io.stdout, { count: items.length, items, source: source || 'all' });
83
+ return 0;
84
+ }
85
+ if (items.length === 0) {
86
+ writeLine(io.stdout, 'No news items found.');
87
+ return 0;
88
+ }
89
+ writeLine(io.stdout, header('agora news', [`${items.length} stories`, source ? `source: ${source}` : 'all sources'], style));
90
+ writeLine(io.stdout, '');
91
+ for (const item of items) {
92
+ const ageH = Math.round((now.getTime() - new Date(item.publishedAt).getTime()) / 3600000);
93
+ const age = ageH < 1 ? '<1h' : ageH < 24 ? `${ageH}h` : `${Math.round(ageH / 24)}d`;
94
+ const host = hostFromUrl(item.url);
95
+ writeLine(io.stdout, `${style.accent(item.source.padEnd(6))} ${style.dim(age.padEnd(4))} ${style.accent(formatNumber(item.engagement).padStart(7))} ${style.dim('s' + item.score.toFixed(2))} ${item.title}`);
96
+ if (host)
97
+ writeLine(io.stdout, ` ${style.dim(host)}`);
98
+ if (query)
99
+ writeLine(io.stdout, '');
100
+ }
101
+ return 0;
102
+ };
103
+ export const commandCommunity = async (parsed, io, style) => {
104
+ const boardArg = parsed.args[0];
105
+ if (boardArg !== undefined && !BOARD_IDS.includes(boardArg)) {
106
+ return usageError(io, `Unknown board "${boardArg}". Valid: ${BOARD_IDS.join(', ')}`);
107
+ }
108
+ const board = boardArg;
109
+ const sortRaw = stringFlag(parsed, 'sort') || 'active';
110
+ if (!['top', 'new', 'active'].includes(sortRaw)) {
111
+ return usageError(io, `Unknown sort "${sortRaw}". Valid: top, new, active`);
112
+ }
113
+ const sort = sortRaw;
114
+ const opts = await sourceOptions(parsed, io);
115
+ if (board) {
116
+ const result = await communityThreadsSource(opts, board, sort);
117
+ const threads = result.data.threads;
118
+ if (parsed.flags.json) {
119
+ writeJson(io.stdout, { board, sort, count: threads.length, threads });
120
+ return 0;
121
+ }
122
+ if (threads.length === 0) {
123
+ writeLine(io.stdout, `No threads in /${board}.`);
124
+ return 0;
125
+ }
126
+ writeLine(io.stdout, header(`agora community /${board}`, [`${threads.length} threads`, `sort: ${sort}`], style));
127
+ writeLine(io.stdout, '');
128
+ for (const t of threads) {
129
+ const ageH = Math.round((Date.now() - new Date(t.createdAt).getTime()) / 3600000);
130
+ writeLine(io.stdout, ` ${style.accent(t.title)}`);
131
+ writeLine(io.stdout, ` ${style.dim(t.author + ' \u00b7 ' + ageH + 'h \u00b7 ' + t.score + '\u2191 \u00b7 ' + t.replyCount + ' replies')}`);
132
+ }
133
+ return 0;
134
+ }
135
+ const boardsResult = await communityBoardsSource(opts);
136
+ const boards = boardsResult.data.boards;
137
+ if (parsed.flags.json) {
138
+ writeJson(io.stdout, { boards });
139
+ return 0;
140
+ }
141
+ writeLine(io.stdout, header('agora community', [`${boards.length} boards`], style));
142
+ writeLine(io.stdout, '');
143
+ for (const b of boards) {
144
+ writeLine(io.stdout, ` ${style.accent('/' + b.id.padEnd(12))} ${style.dim(b.threadCount + ' threads, ' + b.newToday + ' new today')}`);
145
+ }
146
+ writeLine(io.stdout, '');
147
+ writeLine(io.stdout, style.dim('Run `agora community <board>` to see threads.'));
148
+ return 0;
149
+ };
150
+ export const commandThread = async (parsed, io, style) => {
151
+ const id = parsed.args[0];
152
+ if (!id)
153
+ return usageError(io, 'thread requires a thread id');
154
+ const opts = await sourceOptions(parsed, io);
155
+ const result = await communityThreadSource(opts, id);
156
+ const { thread, replies } = result.data;
157
+ if (!thread)
158
+ return usageError(io, `Thread not found: ${id}`);
159
+ if (parsed.flags.json) {
160
+ writeJson(io.stdout, { thread, replies });
161
+ return 0;
162
+ }
163
+ const ageH = Math.round((Date.now() - new Date(thread.createdAt).getTime()) / 3600000);
164
+ writeLine(io.stdout, style.bold(thread.title));
165
+ writeLine(io.stdout, `${style.dim(thread.author + ' \u00b7 ' + ageH + 'h \u00b7 ' + thread.score + '\u2191 \u00b7 ' + thread.replyCount + ' replies')}`);
166
+ writeLine(io.stdout, '');
167
+ writeLine(io.stdout, thread.content);
168
+ if (replies.length > 0) {
169
+ writeLine(io.stdout, '');
170
+ writeLine(io.stdout, style.dim('--- replies ---'));
171
+ for (const r of replies) {
172
+ const rAgeH = Math.round((Date.now() - new Date(r.createdAt).getTime()) / 3600000);
173
+ writeLine(io.stdout, ` ${style.dim(r.author + ' \u00b7 ' + rAgeH + 'h')} ${style.accent(r.score + '\u2191')}`);
174
+ writeLine(io.stdout, ` ${r.content}`);
175
+ }
176
+ }
177
+ return 0;
178
+ };
179
+ export const commandPost = async (parsed, io, style) => {
180
+ const source = await writeSourceOptions(parsed, io);
181
+ if (!source.ok)
182
+ return usageError(io, source.error);
183
+ const board = (stringFlag(parsed, 'board') || stringFlag(parsed, 'b'));
184
+ const title = requiredStringFlag(parsed, 'title');
185
+ const content = contentInput(parsed, io);
186
+ if (!board || !title || !content) {
187
+ return usageError(io, 'post requires --board, --title and --content or --content-file');
188
+ }
189
+ const result = await createThreadSource(source.options, { board, title, content });
190
+ if (parsed.flags.json) {
191
+ writeJson(io.stdout, sourcePayload(result, { thread: result.data.thread }));
192
+ return 0;
193
+ }
194
+ writeLine(io.stdout, `Posted to /${board}: ${style.accent(result.data.thread?.title || title)}`);
195
+ writeLine(io.stdout, `${sourceLabel(result)}`);
196
+ return 0;
197
+ };
198
+ export const commandReply = async (parsed, io, style) => {
199
+ const parentId = parsed.args[0];
200
+ if (!parentId)
201
+ return usageError(io, 'reply requires a thread or reply id');
202
+ const source = await writeSourceOptions(parsed, io);
203
+ if (!source.ok)
204
+ return usageError(io, source.error);
205
+ const content = contentInput(parsed, io);
206
+ if (!content)
207
+ return usageError(io, 'reply requires --content or --content-file');
208
+ const result = await createReplySource(source.options, parentId, {
209
+ content,
210
+ parentId: stringFlag(parsed, 'parentId')
211
+ });
212
+ if (parsed.flags.json) {
213
+ writeJson(io.stdout, sourcePayload(result, { reply: result.data.reply }));
214
+ return 0;
215
+ }
216
+ writeLine(io.stdout, `Replied to ${style.accent(parentId)}`);
217
+ writeLine(io.stdout, `${sourceLabel(result)}`);
218
+ return 0;
219
+ };
220
+ export const commandVote = async (parsed, io, style) => {
221
+ const id = parsed.args[0];
222
+ if (!id)
223
+ return usageError(io, 'vote requires a thread or reply id');
224
+ const source = await writeSourceOptions(parsed, io);
225
+ if (!source.ok)
226
+ return usageError(io, source.error);
227
+ const up = parsed.flags.up === true;
228
+ const down = parsed.flags.down === true;
229
+ if (!up && !down)
230
+ return usageError(io, 'vote requires --up or --down');
231
+ const value = up ? 1 : -1;
232
+ const targetType = (stringFlag(parsed, 'type') || 'discussion');
233
+ await voteSource(source.options, id, { value, targetType });
234
+ if (parsed.flags.json) {
235
+ writeJson(io.stdout, { id, value, targetType, success: true });
236
+ return 0;
237
+ }
238
+ writeLine(io.stdout, up ? `Upvoted ${style.accent(id)}` : `Downvoted ${style.accent(id)}`);
239
+ return 0;
240
+ };
241
+ export const commandFlag = async (parsed, io, style) => {
242
+ const id = parsed.args[0];
243
+ if (!id)
244
+ return usageError(io, 'flag requires an item id');
245
+ const flagMarketplace = (kind) => !kind || kind === 'package' || kind === 'workflow';
246
+ const reasonOpt = stringFlag(parsed, 'reason');
247
+ const validReasons = ['spam', 'harassment', 'undisclosed-llm', 'malicious', 'other'];
248
+ const reason = (reasonOpt && validReasons.includes(reasonOpt) ? reasonOpt : 'other');
249
+ const type = stringFlag(parsed, 'type') || 'discussion';
250
+ if (flagMarketplace(type)) {
251
+ const source = await writeSourceOptions(parsed, io);
252
+ if (!source.ok)
253
+ return usageError(io, source.error);
254
+ const targetType = (type === 'workflow' ? 'workflow' : 'package');
255
+ const result = await flagMarketplaceSource(source.options, id, {
256
+ reason,
257
+ targetType,
258
+ notes: stringFlag(parsed, 'notes')
259
+ });
260
+ if (parsed.flags.json) {
261
+ writeJson(io.stdout, {
262
+ id,
263
+ reason,
264
+ targetType,
265
+ success: result.data.success,
266
+ deduplicated: result.data.deduplicated
267
+ });
268
+ return result.data.success ? 0 : 1;
269
+ }
270
+ if (result.data.deduplicated) {
271
+ writeLine(io.stdout, `Already flagged ${style.accent(id)}`);
272
+ }
273
+ else if (result.data.success) {
274
+ writeLine(io.stdout, `Flagged ${style.accent(id)} for ${reason} (${targetType})`);
275
+ }
276
+ else {
277
+ writeLine(io.stdout, `Could not flag — API not configured. Run \`agora auth login --api-url <url>\` first.`);
278
+ return 1;
279
+ }
280
+ return 0;
281
+ }
282
+ const source = await writeSourceOptions(parsed, io);
283
+ if (!source.ok)
284
+ return usageError(io, source.error);
285
+ const targetType = (type === 'discussion' || type === 'reply' ? type : 'discussion');
286
+ await flagSource(source.options, id, { reason, targetType, notes: stringFlag(parsed, 'notes') });
287
+ if (parsed.flags.json) {
288
+ writeJson(io.stdout, { id, reason, targetType, success: true });
289
+ return 0;
290
+ }
291
+ writeLine(io.stdout, `Flagged ${style.accent(id)} for ${reason}`);
292
+ return 0;
293
+ };
294
+ export const commandDiscussions = async (parsed, io, style) => {
295
+ const category = stringFlag(parsed, 'category', 'c') || 'all';
296
+ const query = parsed.args.join(' ');
297
+ const result = await discussionsSource({ ...(await sourceOptions(parsed, io)), category, query });
298
+ const discussions = result.data;
299
+ warnFallback(result, io);
300
+ if (parsed.flags.json) {
301
+ writeJson(io.stdout, sourcePayload(result, { category, query, count: discussions.length, discussions }));
302
+ return 0;
303
+ }
304
+ if (discussions.length === 0) {
305
+ writeLine(io.stdout, 'No discussions found.');
306
+ return 0;
307
+ }
308
+ writeLine(io.stdout, header('agora discussions', [`${discussions.length} results`, sourceLabel(result)], style));
309
+ writeLine(io.stdout, '');
310
+ writeLine(io.stdout, discussions
311
+ .map((discussion, index) => {
312
+ return [
313
+ `${index + 1}. ${style.accent(discussion.title)} ${style.dim('[' + discussion.category + ']')}`,
314
+ ` ${truncate(discussion.content, 88)}`,
315
+ ` ${style.dim('replies ' + discussion.replies + ' · stars ' + discussion.stars + ' · by ' + discussion.author)}`
316
+ ].join('\n');
317
+ })
318
+ .join('\n\n'));
319
+ return 0;
320
+ };
321
+ export const commandDiscuss = async (parsed, io, style) => {
322
+ const source = await writeSourceOptions(parsed, io);
323
+ if (!source.ok)
324
+ return usageError(io, source.error);
325
+ const title = requiredStringFlag(parsed, 'title');
326
+ const content = contentInput(parsed, io);
327
+ if (!title || !content) {
328
+ return usageError(io, 'discuss requires --title and --content or --content-file');
329
+ }
330
+ const category = discussionCategoryFlag(parsed);
331
+ if (!category.ok)
332
+ return usageError(io, category.error);
333
+ const result = await createDiscussionSource(source.options, {
334
+ title,
335
+ content,
336
+ category: category.value
337
+ });
338
+ if (parsed.flags.json) {
339
+ writeJson(io.stdout, sourcePayload(result, { discussion: result.data }));
340
+ return 0;
341
+ }
342
+ writeLine(io.stdout, `Created discussion ${style.accent(result.data.id)}`);
343
+ writeLine(io.stdout, `${result.data.title} (${sourceLabel(result)})`);
344
+ return 0;
345
+ };
346
+ export const commandAdmin = async (parsed, io, style) => {
347
+ const sub = parsed.args[0];
348
+ if (sub === 'hide') {
349
+ const id = parsed.args[1];
350
+ if (!id)
351
+ return usageError(io, 'admin hide requires an id');
352
+ const reason = stringFlag(parsed, 'reason');
353
+ if (!reason)
354
+ return usageError(io, 'admin hide requires --reason');
355
+ const targetType = (stringFlag(parsed, 'type') || 'discussion');
356
+ if (targetType !== 'discussion' && targetType !== 'reply') {
357
+ return usageError(io, '--type must be discussion or reply');
358
+ }
359
+ const source = await writeSourceOptions(parsed, io);
360
+ if (!source.ok)
361
+ return usageError(io, source.error);
362
+ try {
363
+ const result = await adminHideSource(source.options, id, { targetType, reason });
364
+ if (parsed.flags.json) {
365
+ writeJson(io.stdout, result.data);
366
+ return 0;
367
+ }
368
+ writeLine(io.stdout, `Hid ${style.accent(id)} (${targetType}); audit id ${style.dim(result.data.id)}`);
369
+ return 0;
370
+ }
371
+ catch (e) {
372
+ const msg = e instanceof Error ? e.message : String(e);
373
+ if (msg === 'Admin access required') {
374
+ writeLine(io.stderr, 'Admin access required');
375
+ return 1;
376
+ }
377
+ throw e;
378
+ }
379
+ }
380
+ if (sub === 'log') {
381
+ const limit = numberFlag(parsed, 'limit') || 50;
382
+ const source = await writeSourceOptions(parsed, io);
383
+ if (!source.ok)
384
+ return usageError(io, source.error);
385
+ try {
386
+ const result = await adminLogSource(source.options, { limit });
387
+ const entries = result.data.entries;
388
+ if (parsed.flags.json) {
389
+ writeJson(io.stdout, { entries });
390
+ return 0;
391
+ }
392
+ if (entries.length === 0) {
393
+ writeLine(io.stdout, 'No kill-switch log entries.');
394
+ return 0;
395
+ }
396
+ const COL = { at: 20, op: 16, type: 12, target: 24 };
397
+ writeLine(io.stdout, [
398
+ 'acted_at'.padEnd(COL.at),
399
+ 'operator'.padEnd(COL.op),
400
+ 'type'.padEnd(COL.type),
401
+ 'target'.padEnd(COL.target),
402
+ 'reason'
403
+ ].join(' '));
404
+ writeLine(io.stdout, '-'.repeat(COL.at + COL.op + COL.type + COL.target + 40));
405
+ for (const e of entries) {
406
+ writeLine(io.stdout, [
407
+ e.actedAt.slice(0, COL.at).padEnd(COL.at),
408
+ e.operatorUsername.slice(0, COL.op).padEnd(COL.op),
409
+ e.targetType.slice(0, COL.type).padEnd(COL.type),
410
+ e.targetId.slice(0, COL.target).padEnd(COL.target),
411
+ e.reason
412
+ ].join(' '));
413
+ }
414
+ return 0;
415
+ }
416
+ catch (e) {
417
+ const msg = e instanceof Error ? e.message : String(e);
418
+ if (msg === 'Admin access required') {
419
+ writeLine(io.stderr, 'Admin access required');
420
+ return 1;
421
+ }
422
+ throw e;
423
+ }
424
+ }
425
+ if (sub === 'recompute') {
426
+ const source = await writeSourceOptions(parsed, io);
427
+ if (!source.ok)
428
+ return usageError(io, source.error);
429
+ try {
430
+ const result = await adminRecomputeSource(source.options);
431
+ if (parsed.flags.json) {
432
+ writeJson(io.stdout, result.data);
433
+ return 0;
434
+ }
435
+ writeLine(io.stdout, `Recomputed ${result.data.recomputed} users in ${result.data.durationMs}ms`);
436
+ return 0;
437
+ }
438
+ catch (e) {
439
+ const msg = e instanceof Error ? e.message : String(e);
440
+ if (msg === 'Admin access required') {
441
+ writeLine(io.stderr, 'Admin access required');
442
+ return 1;
443
+ }
444
+ throw e;
445
+ }
446
+ }
447
+ writeLine(io.stdout, 'Usage:');
448
+ writeLine(io.stdout, ' agora admin hide <id> --reason <r> [--type discussion|reply]');
449
+ writeLine(io.stdout, ' agora admin log [--limit 50]');
450
+ writeLine(io.stdout, ' agora admin recompute');
451
+ return 1;
452
+ };
453
+ //# sourceMappingURL=community.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community.js","sourceRoot":"","sources":["../../../src/cli/commands/community.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandHandler } from './types.js';
2
+ export declare const commandExport: CommandHandler;
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8DjD,eAAO,MAAM,aAAa,EAAE,cA0D3B,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { getMarketplaceItems } from '../../marketplace.js';
2
+ import { searchMarketplaceSource } from '../../live.js';
3
+ import { stringFlag, numberFlag, sourceOptions, warnFallback, writeLine, writeJson, usageError } from '../helpers.js';
4
+ import { header } from '../format.js';
5
+ function toCsv(items) {
6
+ const headerRow = 'id,name,kind,category,author,stars,installs,tags,description';
7
+ const rows = items.map((i) => {
8
+ const fields = [
9
+ escapeCsv(i.id),
10
+ escapeCsv(i.name),
11
+ i.kind,
12
+ i.category,
13
+ escapeCsv(i.author),
14
+ String(i.stars ?? 0),
15
+ String(i.installs ?? 0),
16
+ escapeCsv((i.tags ?? []).join(';')),
17
+ escapeCsv(i.description)
18
+ ];
19
+ return fields.join(',');
20
+ });
21
+ return [headerRow, ...rows].join('\n');
22
+ }
23
+ function escapeCsv(value) {
24
+ if (value.includes(',') || value.includes('"') || value.includes('\n')) {
25
+ return `"${value.replace(/"/g, '""')}"`;
26
+ }
27
+ return value;
28
+ }
29
+ function toMarkdown(items) {
30
+ const lines = ['| id | name | kind | category | author | stars | installs | tags |'];
31
+ lines.push('|' + ['---', '---', '---', '---', '---', '---', '---', '---'].join('|') + '|');
32
+ for (const i of items) {
33
+ lines.push(`| ${i.id} | ${escapeMd(i.name)} | ${i.kind} | ${i.category} | ${escapeMd(i.author)} | ${i.stars ?? 0} | ${i.installs ?? 0} | ${(i.tags ?? []).join(', ')} |`);
34
+ }
35
+ return lines.join('\n');
36
+ }
37
+ function escapeMd(value) {
38
+ return value.replace(/\|/g, '\\|');
39
+ }
40
+ function toTable(items, _style) {
41
+ const idW = Math.max(4, ...items.map((i) => i.id.length));
42
+ const nameW = Math.max(4, ...items.map((i) => i.name.length));
43
+ const catW = Math.max(8, ...items.map((i) => i.category.length));
44
+ const authorW = Math.max(6, ...items.map((i) => i.author.length));
45
+ const hr = `+-${'-'.repeat(idW)}-+-${'-'.repeat(nameW)}-+-${'-'.repeat(4)}-+-${'-'.repeat(catW)}-+-${'-'.repeat(authorW)}-+-${'-'.repeat(6)}-+-${'-'.repeat(8)}-+`;
46
+ const hdr = `| ${'id'.padEnd(idW)} | ${'name'.padEnd(nameW)} | kind | ${'category'.padEnd(catW)} | ${'author'.padEnd(authorW)} | stars | installs |`;
47
+ const rows = items.map((i) => {
48
+ const name = i.name.length > nameW ? i.name.slice(0, nameW - 1) + '\u2026' : i.name.padEnd(nameW);
49
+ return `| ${i.id.padEnd(idW)} | ${name} | ${i.kind.padEnd(4)} | ${i.category.padEnd(catW)} | ${i.author.padEnd(authorW)} | ${String(i.stars ?? 0).padStart(5)} | ${String(i.installs ?? 0).padStart(7)} |`;
50
+ });
51
+ return [hr, hdr, hr, ...rows, hr].join('\n');
52
+ }
53
+ export const commandExport = async (parsed, io, style) => {
54
+ const format = (stringFlag(parsed, 'format', 'f') || 'json');
55
+ const query = parsed.args.join(' ');
56
+ const category = stringFlag(parsed, 'category', 'c') || 'all';
57
+ const limit = numberFlag(parsed, 'limit', 'n') || 0;
58
+ const validFormats = ['json', 'csv', 'markdown', 'table'];
59
+ if (!validFormats.includes(format)) {
60
+ return usageError(io, `Unknown format "${format}". Use --format json|csv|markdown|table`);
61
+ }
62
+ let items;
63
+ if (parsed.flags.api || parsed.flags.live) {
64
+ const result = await searchMarketplaceSource({
65
+ ...(await sourceOptions(parsed, io)),
66
+ query,
67
+ category,
68
+ limit: limit || 1000
69
+ });
70
+ items = result.data;
71
+ warnFallback(result, io);
72
+ }
73
+ else {
74
+ items = getMarketplaceItems()
75
+ .filter((i) => {
76
+ if (category !== 'all' && i.category !== category)
77
+ return false;
78
+ if (query && !i.id.toLowerCase().includes(query.toLowerCase()) && !i.name.toLowerCase().includes(query.toLowerCase()) && !i.description.toLowerCase().includes(query.toLowerCase()))
79
+ return false;
80
+ return true;
81
+ });
82
+ if (limit > 0)
83
+ items = items.slice(0, limit);
84
+ }
85
+ if (items.length === 0) {
86
+ writeLine(io.stdout, 'No items match the export criteria.');
87
+ return 0;
88
+ }
89
+ if (format === 'json') {
90
+ writeJson(io.stdout, { count: items.length, items });
91
+ return 0;
92
+ }
93
+ if (format === 'csv') {
94
+ writeLine(io.stdout, toCsv(items));
95
+ return 0;
96
+ }
97
+ if (format === 'markdown') {
98
+ writeLine(io.stdout, header('agora export', [`${items.length} items`, format], style));
99
+ writeLine(io.stdout, '');
100
+ writeLine(io.stdout, toMarkdown(items));
101
+ return 0;
102
+ }
103
+ writeLine(io.stdout, header('agora export', [`${items.length} items`, format], style));
104
+ writeLine(io.stdout, '');
105
+ writeLine(io.stdout, toTable(items, style));
106
+ return 0;
107
+ };
108
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CommandHandler } from './types.js';
2
+ export declare const commandInit: CommandHandler;
3
+ export declare const commandUse: CommandHandler;
4
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6FjD,eAAO,MAAM,WAAW,EAAE,cA6JzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,cAoExB,CAAC"}