opencode-agora 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +86 -255
  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 +13 -18
  11. package/dist/cli/app.d.ts.map +1 -1
  12. package/dist/cli/app.js +184 -1187
  13. package/dist/cli/app.js.map +1 -1
  14. package/dist/cli/chat-renderer.d.ts +31 -0
  15. package/dist/cli/chat-renderer.d.ts.map +1 -0
  16. package/dist/cli/chat-renderer.js +275 -0
  17. package/dist/cli/chat-renderer.js.map +1 -0
  18. package/dist/cli/commands/browse.d.ts +4 -0
  19. package/dist/cli/commands/browse.d.ts.map +1 -0
  20. package/dist/cli/commands/browse.js +80 -0
  21. package/dist/cli/commands/browse.js.map +1 -0
  22. package/dist/cli/commands/chat.d.ts +4 -0
  23. package/dist/cli/commands/chat.d.ts.map +1 -0
  24. package/dist/cli/commands/chat.js +125 -0
  25. package/dist/cli/commands/chat.js.map +1 -0
  26. package/dist/cli/commands/community.d.ts +12 -0
  27. package/dist/cli/commands/community.d.ts.map +1 -0
  28. package/dist/cli/commands/community.js +453 -0
  29. package/dist/cli/commands/community.js.map +1 -0
  30. package/dist/cli/commands/export.d.ts +3 -0
  31. package/dist/cli/commands/export.d.ts.map +1 -0
  32. package/dist/cli/commands/export.js +108 -0
  33. package/dist/cli/commands/export.js.map +1 -0
  34. package/dist/cli/commands/init.d.ts +4 -0
  35. package/dist/cli/commands/init.d.ts.map +1 -0
  36. package/dist/cli/commands/init.js +299 -0
  37. package/dist/cli/commands/init.js.map +1 -0
  38. package/dist/cli/commands/learn.d.ts +4 -0
  39. package/dist/cli/commands/learn.d.ts.map +1 -0
  40. package/dist/cli/commands/learn.js +62 -0
  41. package/dist/cli/commands/learn.js.map +1 -0
  42. package/dist/cli/commands/marketplace.d.ts +9 -0
  43. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  44. package/dist/cli/commands/marketplace.js +321 -0
  45. package/dist/cli/commands/marketplace.js.map +1 -0
  46. package/dist/cli/commands/notify.d.ts +3 -0
  47. package/dist/cli/commands/notify.d.ts.map +1 -0
  48. package/dist/cli/commands/notify.js +59 -0
  49. package/dist/cli/commands/notify.js.map +1 -0
  50. package/dist/cli/commands/operations.d.ts +16 -0
  51. package/dist/cli/commands/operations.d.ts.map +1 -0
  52. package/dist/cli/commands/operations.js +1006 -0
  53. package/dist/cli/commands/operations.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/today.d.ts +3 -0
  59. package/dist/cli/commands/today.d.ts.map +1 -0
  60. package/dist/cli/commands/today.js +142 -0
  61. package/dist/cli/commands/today.js.map +1 -0
  62. package/dist/cli/commands/types.d.ts +5 -0
  63. package/dist/cli/commands/types.d.ts.map +1 -0
  64. package/dist/cli/commands/types.js +2 -0
  65. package/dist/cli/commands/types.js.map +1 -0
  66. package/dist/cli/commands/watch.d.ts +3 -0
  67. package/dist/cli/commands/watch.d.ts.map +1 -0
  68. package/dist/cli/commands/watch.js +41 -0
  69. package/dist/cli/commands/watch.js.map +1 -0
  70. package/dist/cli/commands/welcome.d.ts +3 -0
  71. package/dist/cli/commands/welcome.d.ts.map +1 -0
  72. package/dist/cli/commands/welcome.js +97 -0
  73. package/dist/cli/commands/welcome.js.map +1 -0
  74. package/dist/cli/commands-meta.d.ts +21 -0
  75. package/dist/cli/commands-meta.d.ts.map +1 -0
  76. package/dist/cli/commands-meta.js +828 -0
  77. package/dist/cli/commands-meta.js.map +1 -0
  78. package/dist/cli/completions-gen.d.ts +2 -0
  79. package/dist/cli/completions-gen.d.ts.map +1 -0
  80. package/dist/cli/completions-gen.js +195 -0
  81. package/dist/cli/completions-gen.js.map +1 -0
  82. package/dist/cli/completions.d.ts +18 -0
  83. package/dist/cli/completions.d.ts.map +1 -0
  84. package/dist/cli/completions.js +227 -0
  85. package/dist/cli/completions.js.map +1 -0
  86. package/dist/cli/flags.d.ts +19 -0
  87. package/dist/cli/flags.d.ts.map +1 -0
  88. package/dist/cli/flags.js +91 -0
  89. package/dist/cli/flags.js.map +1 -0
  90. package/dist/cli/format.d.ts +19 -0
  91. package/dist/cli/format.d.ts.map +1 -0
  92. package/dist/cli/format.js +249 -0
  93. package/dist/cli/format.js.map +1 -0
  94. package/dist/cli/helpers.d.ts +95 -0
  95. package/dist/cli/helpers.d.ts.map +1 -0
  96. package/dist/cli/helpers.js +301 -0
  97. package/dist/cli/helpers.js.map +1 -0
  98. package/dist/cli/mcp-server.d.ts +4 -0
  99. package/dist/cli/mcp-server.d.ts.map +1 -0
  100. package/dist/cli/mcp-server.js +277 -0
  101. package/dist/cli/mcp-server.js.map +1 -0
  102. package/dist/cli/menu.d.ts +7 -0
  103. package/dist/cli/menu.d.ts.map +1 -0
  104. package/dist/cli/menu.js +172 -0
  105. package/dist/cli/menu.js.map +1 -0
  106. package/dist/cli/pages/community.d.ts +9 -0
  107. package/dist/cli/pages/community.d.ts.map +1 -0
  108. package/dist/cli/pages/community.js +1094 -0
  109. package/dist/cli/pages/community.js.map +1 -0
  110. package/dist/cli/pages/helpers.d.ts +37 -0
  111. package/dist/cli/pages/helpers.d.ts.map +1 -0
  112. package/dist/cli/pages/helpers.js +98 -0
  113. package/dist/cli/pages/helpers.js.map +1 -0
  114. package/dist/cli/pages/home.d.ts +4 -0
  115. package/dist/cli/pages/home.d.ts.map +1 -0
  116. package/dist/cli/pages/home.js +231 -0
  117. package/dist/cli/pages/home.js.map +1 -0
  118. package/dist/cli/pages/marketplace.d.ts +5 -0
  119. package/dist/cli/pages/marketplace.d.ts.map +1 -0
  120. package/dist/cli/pages/marketplace.js +583 -0
  121. package/dist/cli/pages/marketplace.js.map +1 -0
  122. package/dist/cli/pages/news.d.ts +31 -0
  123. package/dist/cli/pages/news.d.ts.map +1 -0
  124. package/dist/cli/pages/news.js +688 -0
  125. package/dist/cli/pages/news.js.map +1 -0
  126. package/dist/cli/pages/settings.d.ts +3 -0
  127. package/dist/cli/pages/settings.d.ts.map +1 -0
  128. package/dist/cli/pages/settings.js +296 -0
  129. package/dist/cli/pages/settings.js.map +1 -0
  130. package/dist/cli/pages/types.d.ts +67 -0
  131. package/dist/cli/pages/types.d.ts.map +1 -0
  132. package/dist/cli/pages/types.js +2 -0
  133. package/dist/cli/pages/types.js.map +1 -0
  134. package/dist/cli/prompter.d.ts +135 -0
  135. package/dist/cli/prompter.d.ts.map +1 -0
  136. package/dist/cli/prompter.js +710 -0
  137. package/dist/cli/prompter.js.map +1 -0
  138. package/dist/cli/shell.d.ts +23 -0
  139. package/dist/cli/shell.d.ts.map +1 -0
  140. package/dist/cli/shell.js +1106 -0
  141. package/dist/cli/shell.js.map +1 -0
  142. package/dist/cli/tui.d.ts +7 -0
  143. package/dist/cli/tui.d.ts.map +1 -0
  144. package/dist/cli/tui.js +419 -0
  145. package/dist/cli/tui.js.map +1 -0
  146. package/dist/cli.js +1 -1
  147. package/dist/cli.js.map +1 -1
  148. package/dist/commands.d.ts +14 -0
  149. package/dist/commands.d.ts.map +1 -0
  150. package/dist/commands.js +28 -0
  151. package/dist/commands.js.map +1 -0
  152. package/dist/community/client.d.ts +84 -0
  153. package/dist/community/client.d.ts.map +1 -0
  154. package/dist/community/client.js +340 -0
  155. package/dist/community/client.js.map +1 -0
  156. package/dist/community/search.d.ts +25 -0
  157. package/dist/community/search.d.ts.map +1 -0
  158. package/dist/community/search.js +62 -0
  159. package/dist/community/search.js.map +1 -0
  160. package/dist/community/types.d.ts +71 -0
  161. package/dist/community/types.d.ts.map +1 -0
  162. package/dist/community/types.js +11 -0
  163. package/dist/community/types.js.map +1 -0
  164. package/dist/config.d.ts +1 -7
  165. package/dist/config.d.ts.map +1 -1
  166. package/dist/config.js +0 -32
  167. package/dist/config.js.map +1 -1
  168. package/dist/data.d.ts +1 -1
  169. package/dist/data.d.ts.map +1 -1
  170. package/dist/data.js +778 -40
  171. package/dist/data.js.map +1 -1
  172. package/dist/format.d.ts +5 -39
  173. package/dist/format.d.ts.map +1 -1
  174. package/dist/format.js +5 -120
  175. package/dist/format.js.map +1 -1
  176. package/dist/history.d.ts +13 -0
  177. package/dist/history.d.ts.map +1 -0
  178. package/dist/history.js +37 -0
  179. package/dist/history.js.map +1 -0
  180. package/dist/hubs/cache.d.ts +6 -0
  181. package/dist/hubs/cache.d.ts.map +1 -0
  182. package/dist/hubs/cache.js +46 -0
  183. package/dist/hubs/cache.js.map +1 -0
  184. package/dist/hubs/enrichment.d.ts +43 -0
  185. package/dist/hubs/enrichment.d.ts.map +1 -0
  186. package/dist/hubs/enrichment.js +239 -0
  187. package/dist/hubs/enrichment.js.map +1 -0
  188. package/dist/hubs/github.d.ts +12 -0
  189. package/dist/hubs/github.d.ts.map +1 -0
  190. package/dist/hubs/github.js +54 -0
  191. package/dist/hubs/github.js.map +1 -0
  192. package/dist/hubs/huggingface.d.ts +27 -0
  193. package/dist/hubs/huggingface.d.ts.map +1 -0
  194. package/dist/hubs/huggingface.js +88 -0
  195. package/dist/hubs/huggingface.js.map +1 -0
  196. package/dist/hubs/quality.d.ts +26 -0
  197. package/dist/hubs/quality.d.ts.map +1 -0
  198. package/dist/hubs/quality.js +57 -0
  199. package/dist/hubs/quality.js.map +1 -0
  200. package/dist/hubs/types.d.ts +30 -0
  201. package/dist/hubs/types.d.ts.map +1 -0
  202. package/dist/hubs/types.js +2 -0
  203. package/dist/hubs/types.js.map +1 -0
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +188 -224
  206. package/dist/index.js.map +1 -1
  207. package/dist/init.d.ts.map +1 -1
  208. package/dist/init.js +6 -11
  209. package/dist/init.js.map +1 -1
  210. package/dist/live.d.ts +14 -0
  211. package/dist/live.d.ts.map +1 -1
  212. package/dist/live.js +35 -3
  213. package/dist/live.js.map +1 -1
  214. package/dist/marketplace.d.ts +25 -3
  215. package/dist/marketplace.d.ts.map +1 -1
  216. package/dist/marketplace.js +279 -22
  217. package/dist/marketplace.js.map +1 -1
  218. package/dist/news/cache.d.ts +13 -0
  219. package/dist/news/cache.d.ts.map +1 -0
  220. package/dist/news/cache.js +66 -0
  221. package/dist/news/cache.js.map +1 -0
  222. package/dist/news/score.d.ts +4 -0
  223. package/dist/news/score.d.ts.map +1 -0
  224. package/dist/news/score.js +43 -0
  225. package/dist/news/score.js.map +1 -0
  226. package/dist/news/sources/arxiv.d.ts +9 -0
  227. package/dist/news/sources/arxiv.d.ts.map +1 -0
  228. package/dist/news/sources/arxiv.js +107 -0
  229. package/dist/news/sources/arxiv.js.map +1 -0
  230. package/dist/news/sources/github-trending.d.ts +9 -0
  231. package/dist/news/sources/github-trending.d.ts.map +1 -0
  232. package/dist/news/sources/github-trending.js +97 -0
  233. package/dist/news/sources/github-trending.js.map +1 -0
  234. package/dist/news/sources/hn.d.ts +9 -0
  235. package/dist/news/sources/hn.d.ts.map +1 -0
  236. package/dist/news/sources/hn.js +57 -0
  237. package/dist/news/sources/hn.js.map +1 -0
  238. package/dist/news/sources/reddit.d.ts +9 -0
  239. package/dist/news/sources/reddit.d.ts.map +1 -0
  240. package/dist/news/sources/reddit.js +69 -0
  241. package/dist/news/sources/reddit.js.map +1 -0
  242. package/dist/news/sources/rss.d.ts +13 -0
  243. package/dist/news/sources/rss.d.ts.map +1 -0
  244. package/dist/news/sources/rss.js +14 -0
  245. package/dist/news/sources/rss.js.map +1 -0
  246. package/dist/news/types.d.ts +42 -0
  247. package/dist/news/types.d.ts.map +1 -0
  248. package/dist/news/types.js +56 -0
  249. package/dist/news/types.js.map +1 -0
  250. package/dist/preferences.d.ts +14 -0
  251. package/dist/preferences.d.ts.map +1 -0
  252. package/dist/preferences.js +31 -0
  253. package/dist/preferences.js.map +1 -0
  254. package/dist/settings.d.ts +26 -0
  255. package/dist/settings.d.ts.map +1 -0
  256. package/dist/settings.js +251 -0
  257. package/dist/settings.js.map +1 -0
  258. package/dist/state.d.ts +9 -2
  259. package/dist/state.d.ts.map +1 -1
  260. package/dist/state.js +41 -19
  261. package/dist/state.js.map +1 -1
  262. package/dist/transcript.d.ts +28 -0
  263. package/dist/transcript.d.ts.map +1 -0
  264. package/dist/transcript.js +79 -0
  265. package/dist/transcript.js.map +1 -0
  266. package/dist/types.d.ts +19 -1
  267. package/dist/types.d.ts.map +1 -1
  268. package/dist/ui.d.ts +157 -0
  269. package/dist/ui.d.ts.map +1 -0
  270. package/dist/ui.js +296 -0
  271. package/dist/ui.js.map +1 -0
  272. package/package.json +11 -9
  273. package/dist/api.d.ts +0 -72
  274. package/dist/api.d.ts.map +0 -1
  275. package/dist/api.js +0 -109
  276. package/dist/api.js.map +0 -1
  277. package/dist/logger.d.ts +0 -20
  278. package/dist/logger.d.ts.map +0 -1
  279. package/dist/logger.js +0 -59
  280. package/dist/logger.js.map +0 -1
@@ -0,0 +1,321 @@
1
+ import { getMarketplaceItems, getTrendingTags, similarItems } from '../../marketplace.js';
2
+ import { formatNumber } from '../../format.js';
3
+ import { appendHistory } from '../../history.js';
4
+ import { searchMarketplaceSource, findMarketplaceSource, trendingMarketplaceSource } from '../../live.js';
5
+ import { stringFlag, numberFlag, sourceOptions, sourceLabel, warnFallback, sourcePayload, writeLine, writeJson, usageError, detectDataDir } from '../helpers.js';
6
+ import { header, formatItemList, formatItemTable, formatItemDetail } from '../format.js';
7
+ export const commandSearch = async (parsed, io, style) => {
8
+ const query = parsed.args.join(' ');
9
+ const category = stringFlag(parsed, 'category', 'c') || 'all';
10
+ const sortBy = stringFlag(parsed, 'sort', 's') || 'relevance';
11
+ const sortOrder = (stringFlag(parsed, 'order', 'o') || 'desc');
12
+ const table = Boolean(parsed.flags.table);
13
+ const page = numberFlag(parsed, 'page', 'p') || 1;
14
+ const perPage = numberFlag(parsed, 'perPage', 'pp') || 0;
15
+ const limit = perPage > 0 ? perPage : numberFlag(parsed, 'limit', 'n') || 10;
16
+ const result = await searchMarketplaceSource({
17
+ ...(await sourceOptions(parsed, io)),
18
+ query,
19
+ category,
20
+ limit,
21
+ sortBy: sortBy,
22
+ sortOrder,
23
+ page,
24
+ perPage
25
+ });
26
+ const results = result.data;
27
+ warnFallback(result, io);
28
+ if (parsed.flags.json) {
29
+ writeJson(io.stdout, sourcePayload(result, {
30
+ query,
31
+ category,
32
+ sortBy,
33
+ sortOrder,
34
+ page,
35
+ count: results.length,
36
+ items: results
37
+ }));
38
+ return 0;
39
+ }
40
+ if (results.length === 0) {
41
+ writeLine(io.stdout, `No results found for "${query}".`);
42
+ return 0;
43
+ }
44
+ writeLine(io.stdout, header('agora search', [`"${query || 'all'}"`, `${results.length} results`, sourceLabel(result)], style));
45
+ writeLine(io.stdout, '');
46
+ if (table) {
47
+ writeLine(io.stdout, formatItemTable(results, style));
48
+ }
49
+ else {
50
+ writeLine(io.stdout, formatItemList(results, style));
51
+ }
52
+ if (perPage > 0) {
53
+ writeLine(io.stdout, '');
54
+ writeLine(io.stdout, style.dim(`Page ${page} · ${perPage} per page. Use --page N to navigate.`));
55
+ }
56
+ appendHistory(detectDataDir(parsed, io), {
57
+ type: 'search',
58
+ query,
59
+ timestamp: new Date().toISOString(),
60
+ results: results.length
61
+ });
62
+ return 0;
63
+ };
64
+ export const commandBrowse = async (parsed, io, style) => {
65
+ const id = parsed.args[0];
66
+ if (!id)
67
+ return usageError(io, 'browse requires an item id');
68
+ const result = await findMarketplaceSource({
69
+ ...(await sourceOptions(parsed, io)),
70
+ id,
71
+ type: stringFlag(parsed, 'type', 't')
72
+ });
73
+ const item = result.data;
74
+ warnFallback(result, io);
75
+ if (!item)
76
+ return usageError(io, `Item not found: ${id}`);
77
+ if (parsed.flags.json) {
78
+ writeJson(io.stdout, sourcePayload(result, { item }));
79
+ return 0;
80
+ }
81
+ writeLine(io.stdout, formatItemDetail(item, style));
82
+ const related = similarItems(id, {
83
+ limit: 3,
84
+ type: item.kind === 'workflow' ? 'workflow' : undefined
85
+ });
86
+ if (related.length > 0) {
87
+ writeLine(io.stdout, '');
88
+ writeLine(io.stdout, style.dim('Related:'));
89
+ for (const rel of related) {
90
+ const tagOverlap = (item.tags ?? []).filter((t) => (rel.tags ?? []).includes(t));
91
+ const reason = tagOverlap.length > 0 ? ` (shares tags: ${tagOverlap.join(', ')})` : '';
92
+ writeLine(io.stdout, ` ${style.accent(rel.id.padEnd(28))} ${style.dim(formatNumber(rel.installs ?? 0) + ' installs')}${style.dim(reason)}`);
93
+ }
94
+ }
95
+ return 0;
96
+ };
97
+ export const commandTrending = async (parsed, io, style) => {
98
+ const category = stringFlag(parsed, 'category', 'c') || parsed.args[0] || 'all';
99
+ const limit = numberFlag(parsed, 'limit', 'n') || 5;
100
+ const table = Boolean(parsed.flags.table);
101
+ const result = await trendingMarketplaceSource({
102
+ ...(await sourceOptions(parsed, io)),
103
+ category,
104
+ limit
105
+ });
106
+ const items = result.data;
107
+ warnFallback(result, io);
108
+ if (parsed.flags.json) {
109
+ writeJson(io.stdout, sourcePayload(result, { category, count: items.length, tags: getTrendingTags(), items }));
110
+ return 0;
111
+ }
112
+ writeLine(io.stdout, header('agora trending', [category, sourceLabel(result)], style));
113
+ writeLine(io.stdout, '');
114
+ if (table) {
115
+ writeLine(io.stdout, formatItemTable(items, style));
116
+ }
117
+ else {
118
+ writeLine(io.stdout, formatItemList(items, style));
119
+ }
120
+ writeLine(io.stdout, '');
121
+ writeLine(io.stdout, `${style.dim('tags')} ${getTrendingTags().join(', ')}`);
122
+ return 0;
123
+ };
124
+ export const commandWorkflows = async (parsed, io, style) => {
125
+ const query = parsed.args.join(' ');
126
+ const limit = numberFlag(parsed, 'limit', 'n') || 10;
127
+ const result = await searchMarketplaceSource({
128
+ ...(await sourceOptions(parsed, io)),
129
+ query,
130
+ category: 'workflow',
131
+ limit
132
+ });
133
+ const workflows = result.data;
134
+ warnFallback(result, io);
135
+ if (parsed.flags.json) {
136
+ writeJson(io.stdout, sourcePayload(result, { query, count: workflows.length, workflows }));
137
+ return 0;
138
+ }
139
+ writeLine(io.stdout, header('agora workflows', [`${workflows.length} results`, sourceLabel(result)], style));
140
+ writeLine(io.stdout, '');
141
+ writeLine(io.stdout, formatItemList(workflows, style));
142
+ return 0;
143
+ };
144
+ export const commandSimilar = async (parsed, io, style) => {
145
+ const id = parsed.args[0];
146
+ if (!id)
147
+ return usageError(io, 'similar requires an item id');
148
+ const type = stringFlag(parsed, 'type', 't');
149
+ const limit = numberFlag(parsed, 'limit', 'n') || 5;
150
+ const results = similarItems(id, { limit, type });
151
+ if (parsed.flags.json) {
152
+ writeJson(io.stdout, { id, type: type || 'all', count: results.length, items: results });
153
+ return 0;
154
+ }
155
+ if (results.length === 0) {
156
+ writeLine(io.stdout, `No similar items found for "${id}".`);
157
+ return 0;
158
+ }
159
+ writeLine(io.stdout, header('agora similar', [`to ${id}`, `${results.length} results`], style));
160
+ writeLine(io.stdout, '');
161
+ writeLine(io.stdout, formatItemList(results, style));
162
+ return 0;
163
+ };
164
+ export const commandAuthor = async (parsed, io, style) => {
165
+ const name = parsed.args[0];
166
+ if (!name)
167
+ return usageError(io, 'author requires a name');
168
+ const limit = numberFlag(parsed, 'limit', 'n') || 25;
169
+ const page = numberFlag(parsed, 'page', 'p') || 1;
170
+ const nameLower = name.toLowerCase();
171
+ const all = getMarketplaceItems();
172
+ let matches = all.filter((i) => i.author.toLowerCase() === nameLower);
173
+ if (matches.length === 0) {
174
+ matches = all.filter((i) => i.author.toLowerCase().includes(nameLower));
175
+ }
176
+ matches.sort((a, b) => (b.installs ?? 0) - (a.installs ?? 0));
177
+ const start = (page - 1) * limit;
178
+ const paged = matches.slice(start, start + limit);
179
+ if (parsed.flags.json) {
180
+ writeJson(io.stdout, { author: name, count: matches.length, items: paged });
181
+ return 0;
182
+ }
183
+ if (matches.length === 0) {
184
+ writeLine(io.stdout, `No items by ${name}.`);
185
+ return 0;
186
+ }
187
+ writeLine(io.stdout, header('agora author', [name, `${matches.length} items`], style));
188
+ writeLine(io.stdout, '');
189
+ const kindW = Math.max(4, ...paged.map((i) => i.kind.length));
190
+ const idW = Math.max(2, ...paged.map((i) => i.id.length));
191
+ const installW = 8;
192
+ const starW = 6;
193
+ writeLine(io.stdout, style.dim('kind'.padEnd(kindW) +
194
+ ' ' +
195
+ 'id'.padEnd(idW) +
196
+ ' ' +
197
+ 'installs'.padStart(installW) +
198
+ ' ' +
199
+ 'stars'.padStart(starW) +
200
+ ' tags'));
201
+ for (const item of paged) {
202
+ const tags = (item.tags ?? []).slice(0, 3).join(', ');
203
+ writeLine(io.stdout, item.kind.padEnd(kindW) +
204
+ ' ' +
205
+ style.accent(item.id.padEnd(idW)) +
206
+ ' ' +
207
+ style.dim(formatNumber(item.installs ?? 0).padStart(installW)) +
208
+ ' ' +
209
+ style.dim(formatNumber(item.stars ?? 0).padStart(starW)) +
210
+ ' ' +
211
+ style.dim(tags));
212
+ }
213
+ if (matches.length > start + limit) {
214
+ writeLine(io.stdout, '');
215
+ writeLine(io.stdout, style.dim(`Page ${page}. Use --page ${page + 1} to see more.`));
216
+ }
217
+ return 0;
218
+ };
219
+ export const commandCompare = async (parsed, io, style) => {
220
+ const ids = parsed.args;
221
+ if (ids.length < 2)
222
+ return usageError(io, 'compare requires at least two item ids');
223
+ const typeMap = (type) => type === 'package' || type === 'workflow' ? type : undefined;
224
+ const type = typeMap(stringFlag(parsed, 'type', 't'));
225
+ const items = [];
226
+ for (const id of ids) {
227
+ const item = await findMarketplaceSource({ ...(await sourceOptions(parsed, io)), id, type });
228
+ if (!item.data) {
229
+ writeLine(io.stderr, `Item not found: ${id}`);
230
+ return 1;
231
+ }
232
+ items.push(item.data);
233
+ }
234
+ if (parsed.flags.json) {
235
+ writeJson(io.stdout, { ids, count: items.length, items });
236
+ return 0;
237
+ }
238
+ const sharedTags = items.length > 1
239
+ ? items
240
+ .map((i) => new Set(i.tags ?? []))
241
+ .reduce((a, b) => new Set([...a].filter((t) => b.has(t))))
242
+ : new Set();
243
+ const attrs = [
244
+ { label: 'name', get: (i) => i.name },
245
+ { label: 'author', get: (i) => i.author },
246
+ { label: 'installs', get: (i) => formatNumber(i.installs ?? 0) },
247
+ { label: 'stars', get: (i) => formatNumber(i.stars ?? 0) },
248
+ { label: 'category', get: (i) => i.category },
249
+ { label: 'tags', get: (i) => (i.tags ?? []).join(', ') }
250
+ ];
251
+ if (items.some((i) => i.kind === 'package' && i.npmPackage)) {
252
+ attrs.push({
253
+ label: 'npmPackage',
254
+ get: (i) => (i.kind === 'package' && i.npmPackage) || '-'
255
+ });
256
+ }
257
+ if (items.some((i) => i.createdAt)) {
258
+ attrs.push({
259
+ label: 'created',
260
+ get: (i) => (i.createdAt || '').slice(0, 10)
261
+ });
262
+ }
263
+ const colW = Math.max(12, ...items.map((i) => Math.max(i.id.length, i.name.length, 10)));
264
+ const labelW = Math.max(...attrs.map((a) => a.label.length));
265
+ const totalW = labelW + 3 + items.length * (colW + 3) + 1;
266
+ const top = style.accent('┌') +
267
+ '─'.repeat(labelW + 2) +
268
+ style.accent('┬') +
269
+ '─'.repeat(totalW - labelW - 6) +
270
+ style.accent('┐');
271
+ const bot = style.accent('└') +
272
+ '─'.repeat(labelW + 2) +
273
+ style.accent('┴') +
274
+ '─'.repeat(totalW - labelW - 6) +
275
+ style.accent('┘');
276
+ const hdrCells = items.map((i, idx) => {
277
+ const name = idx === 0 ? style.bold(style.accent(i.id)) : style.accent(i.id);
278
+ return name.padEnd(colW);
279
+ });
280
+ const hdr = style.accent('│') +
281
+ ' '.repeat(labelW + 2) +
282
+ style.accent('│') +
283
+ ' ' +
284
+ hdrCells.join(style.accent(' │ ') + ' ') +
285
+ style.accent(' │');
286
+ const rows = attrs.map((attr) => {
287
+ const cells = items.map((item) => {
288
+ const val = attr.get(item);
289
+ if (attr.label === 'tags') {
290
+ return val
291
+ .split(', ')
292
+ .map((t) => (sharedTags.has(t) ? style.accent(t) : style.dim(t)))
293
+ .join(', ')
294
+ .padEnd(colW);
295
+ }
296
+ return (attr.label === 'name' || attr.label === 'npmPackage' ? val : style.dim(val)).padEnd(colW);
297
+ });
298
+ return (style.accent('│') +
299
+ ' ' +
300
+ style.dim(attr.label.padEnd(labelW)) +
301
+ ' ' +
302
+ style.accent('│') +
303
+ ' ' +
304
+ cells.join(style.accent(' │ ') + ' ') +
305
+ style.accent(' │'));
306
+ });
307
+ const sepLine = style.accent('├') +
308
+ '─'.repeat(labelW + 2) +
309
+ style.accent('┼') +
310
+ '─'.repeat(totalW - labelW - 6) +
311
+ style.accent('┤');
312
+ writeLine(io.stdout, header('agora compare', items.map((i) => i.id), style));
313
+ writeLine(io.stdout, '');
314
+ writeLine(io.stdout, [top, hdr, sepLine, ...rows, bot].join('\n'));
315
+ if (sharedTags.size > 0) {
316
+ writeLine(io.stdout, '');
317
+ writeLine(io.stdout, style.dim('Shared tags highlighted in accent.'));
318
+ }
319
+ return 0;
320
+ };
321
+ //# sourceMappingURL=marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../src/cli/commands/marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandHandler } from './types.js';
2
+ export declare const commandNotify: CommandHandler;
3
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/notify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyBjD,eAAO,MAAM,aAAa,EAAE,cAiC3B,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { stringFlag, writeLine, writeJson, usageError } from '../helpers.js';
3
+ function notifyDarwin(title, message, sound) {
4
+ const snd = sound ? 'with sound name "default"' : '';
5
+ const script = `display notification "${message.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}" ${snd}`;
6
+ execSync(`osascript -e '${script.replace(/'/g, "'\\''")}'`, { timeout: 5000 });
7
+ }
8
+ function notifyLinux(title, message, sound) {
9
+ try {
10
+ execSync(`notify-send "${title.replace(/"/g, '\\"')}" "${message.replace(/"/g, '\\"')}" ${sound ? '-u critical' : ''}`, { timeout: 5000 });
11
+ }
12
+ catch {
13
+ throw new Error('notify-send not installed. Try: sudo apt install libnotify-bin');
14
+ }
15
+ }
16
+ function notifyWindows(title, message, _sound) {
17
+ const psCmd = `[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null; $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02); $textNodes = $template.GetElementsByTagName("text"); $textNodes.Item(0).AppendChild($template.CreateTextNode("${title.replace(/"/g, '`"')}")); $textNodes.Item(1).AppendChild($template.CreateTextNode("${message.replace(/"/g, '`"')}")); $toast = [Windows.UI.Notifications.ToastNotification]::new($template); [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("Agora").Show($toast)`;
18
+ try {
19
+ execSync(`powershell -Command "${psCmd.replace(/"/g, '\\"')}"`, { timeout: 10000 });
20
+ }
21
+ catch {
22
+ throw new Error('Windows notifications not available');
23
+ }
24
+ }
25
+ export const commandNotify = async (parsed, io, style) => {
26
+ const title = stringFlag(parsed, 'title', 't') || 'Agora';
27
+ const message = parsed.args.join(' ');
28
+ const sound = Boolean(parsed.flags.sound);
29
+ const platform = process.platform;
30
+ if (!message) {
31
+ return usageError(io, 'notify requires a message.\nUsage: agora notify <message> [--title "Title"] [--sound]');
32
+ }
33
+ if (parsed.flags.json) {
34
+ writeJson(io.stdout, { platform, title, message, sound });
35
+ return 0;
36
+ }
37
+ try {
38
+ if (platform === 'darwin') {
39
+ notifyDarwin(title, message, sound);
40
+ }
41
+ else if (platform === 'linux') {
42
+ notifyLinux(title, message, sound);
43
+ }
44
+ else if (platform === 'win32') {
45
+ notifyWindows(title, message, sound);
46
+ }
47
+ else {
48
+ writeLine(io.stderr, `Desktop notifications not supported on ${platform}`);
49
+ writeLine(io.stderr, `Message: ${title}: ${message}`);
50
+ return 1;
51
+ }
52
+ writeLine(io.stdout, style.dim(`Notification sent: ${title}`));
53
+ }
54
+ catch (err) {
55
+ return usageError(io, err.message || 'Failed to send notification');
56
+ }
57
+ return 0;
58
+ };
59
+ //# sourceMappingURL=notify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/cli/commands/notify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { CommandHandler } from './types.js';
2
+ export declare const commandInstall: CommandHandler;
3
+ export declare const commandMcp: CommandHandler;
4
+ export declare const commandSave: CommandHandler;
5
+ export declare const commandSaved: CommandHandler;
6
+ export declare const commandRemove: CommandHandler;
7
+ export declare const commandPublish: CommandHandler;
8
+ export declare const commandReview: CommandHandler;
9
+ export declare const commandReviews: CommandHandler;
10
+ export declare const commandProfile: CommandHandler;
11
+ export declare const commandPreferences: CommandHandler;
12
+ export declare const commandHistory: CommandHandler;
13
+ export declare const commandConfig: CommandHandler;
14
+ export declare const commandAuth: CommandHandler;
15
+ export declare const commandBookmarks: CommandHandler;
16
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/operations.ts"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,cAAc,EAAE,cAgM5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,cASxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,cAqCzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAyB1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cA6B3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAmE5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cA4B3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cA2B5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAiB5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cA8ChC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAiC5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAqS3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,cA6OzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAwD9B,CAAC"}