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,91 @@
1
+ const booleanFlags = new Set([
2
+ 'api',
3
+ 'clear',
4
+ 'continue',
5
+ 'down',
6
+ 'dryRun',
7
+ 'fix',
8
+ 'help',
9
+ 'json',
10
+ 'live',
11
+ 'mcp',
12
+ 'offline',
13
+ 'once',
14
+ 'refresh',
15
+ 'sound',
16
+ 'table',
17
+ 'up',
18
+ 'version',
19
+ 'verbose',
20
+ 'write',
21
+ 'yes'
22
+ ]);
23
+ export function normalizeFlag(flag) {
24
+ return flag.trim().replace(/-([a-z])/g, (_, char) => char.toUpperCase());
25
+ }
26
+ function shortFlag(arg) {
27
+ const flag = arg.slice(1);
28
+ if (flag === 'h')
29
+ return 'help';
30
+ if (flag === 'j')
31
+ return 'json';
32
+ if (flag === 'm')
33
+ return 'model';
34
+ if (flag === 'c')
35
+ return 'c';
36
+ if (flag === 'n')
37
+ return 'n';
38
+ if (flag === 't')
39
+ return 't';
40
+ if (flag === 'y')
41
+ return 'yes';
42
+ return flag;
43
+ }
44
+ export function parseArgs(argv) {
45
+ const flags = {};
46
+ const positionals = [];
47
+ for (let index = 0; index < argv.length; index += 1) {
48
+ const arg = argv[index];
49
+ if (arg === '--') {
50
+ positionals.push(...argv.slice(index + 1));
51
+ break;
52
+ }
53
+ if (arg.startsWith('--')) {
54
+ const [rawKey, inlineValue] = arg.slice(2).split(/=(.*)/s, 2);
55
+ const key = normalizeFlag(rawKey);
56
+ if (inlineValue !== undefined) {
57
+ flags[key] = inlineValue;
58
+ }
59
+ else if (!booleanFlags.has(key) &&
60
+ argv[index + 1] &&
61
+ (!argv[index + 1].startsWith('-') || /^-\d/.test(argv[index + 1]))) {
62
+ flags[key] = argv[index + 1];
63
+ index += 1;
64
+ }
65
+ else {
66
+ flags[key] = true;
67
+ }
68
+ continue;
69
+ }
70
+ if (arg.startsWith('-') && arg.length > 1) {
71
+ const key = shortFlag(arg);
72
+ if (!booleanFlags.has(key) &&
73
+ argv[index + 1] &&
74
+ (!argv[index + 1].startsWith('-') || /^-\d/.test(argv[index + 1]))) {
75
+ flags[key] = argv[index + 1];
76
+ index += 1;
77
+ }
78
+ else {
79
+ flags[key] = true;
80
+ }
81
+ continue;
82
+ }
83
+ positionals.push(arg);
84
+ }
85
+ return {
86
+ command: positionals[0],
87
+ args: positionals.slice(1),
88
+ flags
89
+ };
90
+ }
91
+ //# sourceMappingURL=flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/cli/flags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Styler } from '../ui.js';
2
+ import { type MarketplaceItem } from '../marketplace.js';
3
+ import type { ResolvedSavedItem } from '../state.js';
4
+ import type { Tutorial } from '../types.js';
5
+ import type { ApiReview, ApiProfile } from '../live.js';
6
+ export declare function truncate(value: string, max: number): string;
7
+ export declare function formatDate(value: string): string;
8
+ export declare function formatItemList(items: MarketplaceItem[], style: Styler): string;
9
+ export declare function formatItemTable(items: MarketplaceItem[], style: Styler): string;
10
+ export declare function formatItemDetail(item: MarketplaceItem, style: Styler): string;
11
+ export declare function formatSavedList(items: ResolvedSavedItem[], style: Styler): string;
12
+ export declare function formatReviewList(reviews: ApiReview[], style: Styler): string;
13
+ export declare function formatProfileDetail(profile: ApiProfile, style: Styler): string;
14
+ export declare function formatTutorialList(tutorials: Tutorial[], style: Styler): string;
15
+ export declare function formatTutorialStep(tutorial: Tutorial, stepNumber: number, style: Styler): string;
16
+ export declare function welcome(color: boolean, trueColor: boolean, style: Styler, version: string): string;
17
+ export declare function header(title: string, meta: string[], style: Styler): string;
18
+ export declare function usage(style: Styler, version: string): string;
19
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/cli/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAyC,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAW,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWxD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB9E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAsC/E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAuC7E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBjF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU5E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAe9E;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAW/E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA2BhG;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,MAAM,CAiCR;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAqB5D"}
@@ -0,0 +1,249 @@
1
+ import { formatNumber } from '../format.js';
2
+ import { getInstallKind, renderPermissionLines } from '../marketplace.js';
3
+ import { COMMANDS } from './commands-meta.js';
4
+ import { renderBanner, renderBox } from '../ui.js';
5
+ function pricingBadge(pricing, style) {
6
+ if (!pricing)
7
+ return '';
8
+ if (pricing.kind === 'free')
9
+ return ' ' + style.dim('FREE');
10
+ if (pricing.kind === 'paid')
11
+ return ' ' + style.accent('PAID');
12
+ return '';
13
+ }
14
+ export function truncate(value, max) {
15
+ if (value.length <= max)
16
+ return value;
17
+ return value.slice(0, max - 1) + '…';
18
+ }
19
+ export function formatDate(value) {
20
+ if (!value)
21
+ return '';
22
+ const d = new Date(value);
23
+ if (isNaN(d.getTime()))
24
+ return value;
25
+ return d.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric' });
26
+ }
27
+ export function formatItemList(items, style) {
28
+ const idWidth = Math.max(...items.map((item) => item.id.length));
29
+ return items
30
+ .map((item) => {
31
+ const metrics = item.kind === 'package'
32
+ ? `${formatNumber(item.installs)} installs · ${formatNumber(item.stars)} ★`
33
+ : `${formatNumber(item.stars)} ★`;
34
+ const badge = item.kind === 'package' ? pricingBadge(item.pricing, style) : '';
35
+ return [
36
+ `${style.accent(item.id.padEnd(idWidth))} ${style.dim(metrics)}`,
37
+ style.dim(item.name) + badge,
38
+ truncate(item.description, 88),
39
+ style.dim(`${item.category} · by ${item.author}`)
40
+ ].join('\n');
41
+ })
42
+ .join('\n\n');
43
+ }
44
+ export function formatItemTable(items, style) {
45
+ const idW = Math.max(4, ...items.map((i) => i.id.length));
46
+ const nameW = Math.max(4, ...items.map((i) => i.name.length));
47
+ const starW = 6;
48
+ const installW = 9;
49
+ const totalW = idW + 3 + nameW + 3 + starW + 3 + installW + 4;
50
+ const top = '┌' + '─'.repeat(totalW - 2) + '┐';
51
+ const bot = '└' + '─'.repeat(totalW - 2) + '┘';
52
+ const sep = '│';
53
+ const hdr = sep +
54
+ ' ' +
55
+ 'id'.padEnd(idW) +
56
+ ' │ ' +
57
+ 'name'.padEnd(nameW) +
58
+ ' │ ' +
59
+ 'stars'.padStart(starW) +
60
+ ' │ ' +
61
+ 'installs'.padStart(installW) +
62
+ ' │';
63
+ const rows = items.map((item) => sep +
64
+ ' ' +
65
+ style.accent(item.id.padEnd(idW)) +
66
+ ' │ ' +
67
+ style.dim(item.name.padEnd(nameW)) +
68
+ ' │ ' +
69
+ style.dim(formatNumber(item.stars).padStart(starW)) +
70
+ ' │ ' +
71
+ style.dim(formatNumber(item.installs).padStart(installW)) +
72
+ ' │');
73
+ return [top, hdr, ...rows, bot].join('\n');
74
+ }
75
+ export function formatItemDetail(item, style) {
76
+ const badge = item.kind === 'package' ? pricingBadge(item.pricing, style) : '';
77
+ const lines = [
78
+ style.bold(item.name) + badge,
79
+ `${style.dim('id')} ${style.accent(item.id)}`,
80
+ `${style.dim('type')} ${item.kind}`,
81
+ `${style.dim('category')} ${item.category}`,
82
+ `${style.dim('author')} ${item.author}`,
83
+ `${style.dim('stars')} ${formatNumber(item.stars)}`,
84
+ `${style.dim('install')} ${getInstallKind(item)}`,
85
+ '',
86
+ item.description,
87
+ '',
88
+ `${style.dim('tags')} ${item.tags.join(', ')}`
89
+ ];
90
+ if (item.kind === 'package') {
91
+ lines.splice(5, 0, `${style.dim('version')} ${item.version}`);
92
+ lines.push(`${style.dim('installs')} ${formatNumber(item.installs)}`);
93
+ if (item.repository)
94
+ lines.push(`${style.dim('repo')} ${item.repository}`);
95
+ if (item.npmPackage)
96
+ lines.push(`${style.dim('npm')} ${item.npmPackage}`);
97
+ if (item.permissions) {
98
+ const permRows = renderPermissionLines(item.permissions);
99
+ if (permRows.length > 1) {
100
+ lines.push('');
101
+ // First row is "Permissions" label; subsequent rows are the indented values.
102
+ lines.push(style.dim(permRows[0]));
103
+ for (const row of permRows.slice(1))
104
+ lines.push(row);
105
+ }
106
+ }
107
+ }
108
+ if (item.kind === 'workflow') {
109
+ lines.push(`${style.dim('forks')} ${item.forks}`);
110
+ if (item.model)
111
+ lines.push(`${style.dim('model')} ${item.model}`);
112
+ lines.push('', style.dim('prompt'), item.prompt);
113
+ }
114
+ return lines.join('\n');
115
+ }
116
+ export function formatSavedList(items, style) {
117
+ return items
118
+ .map((entry, index) => {
119
+ if (!entry.item) {
120
+ return [
121
+ `${index + 1}. ${style.accent(entry.saved.id)} ${style.dim('[missing]')}`,
122
+ ` ${style.dim('saved ' + formatDate(entry.saved.savedAt))}`
123
+ ].join('\n');
124
+ }
125
+ return [
126
+ `${index + 1}. ${style.accent(entry.item.id)} ${style.dim('[' + entry.item.category + ']')}`,
127
+ ` ${style.dim(entry.item.name)}`,
128
+ ` ${truncate(entry.item.description, 88)}`,
129
+ ` ${style.dim('saved ' + formatDate(entry.saved.savedAt))}`
130
+ ].join('\n');
131
+ })
132
+ .join('\n\n');
133
+ }
134
+ export function formatReviewList(reviews, style) {
135
+ return reviews
136
+ .map((review, index) => {
137
+ return [
138
+ `${index + 1}. ${style.accent(review.itemId)} ${style.dim('[' + review.itemType + ']')}`,
139
+ ` ${style.dim('rating ' + review.rating + '/5 by ' + review.author)}`,
140
+ ` ${truncate(review.content, 88)}`
141
+ ].join('\n');
142
+ })
143
+ .join('\n\n');
144
+ }
145
+ export function formatProfileDetail(profile, style) {
146
+ const lines = [
147
+ style.bold(profile.displayName),
148
+ `${style.dim('username')} ${style.accent(profile.username)}`,
149
+ `${style.dim('packages')} ${formatNumber(profile.packages)}`,
150
+ `${style.dim('workflows')} ${formatNumber(profile.workflows)}`,
151
+ `${style.dim('discussions')} ${formatNumber(profile.discussions)}`,
152
+ `${style.dim('reputation')} ${profile.reputation ?? 0}`
153
+ ];
154
+ if (profile.bio)
155
+ lines.splice(2, 0, `${style.dim('bio')} ${profile.bio}`);
156
+ if (profile.avatarUrl)
157
+ lines.push(`${style.dim('avatar')} ${profile.avatarUrl}`);
158
+ if (profile.joinedAt)
159
+ lines.push(`${style.dim('joined')} ${formatDate(profile.joinedAt)}`);
160
+ return lines.join('\n');
161
+ }
162
+ export function formatTutorialList(tutorials, style) {
163
+ return tutorials
164
+ .map((tutorial, index) => {
165
+ return [
166
+ `${index + 1}. ${style.accent(tutorial.id)} ${style.dim('[' + tutorial.level + ']')}`,
167
+ ` ${style.dim(tutorial.title)}`,
168
+ ` ${truncate(tutorial.description, 88)}`,
169
+ ` ${style.dim(tutorial.duration + ' | ' + tutorial.steps.length + ' steps')}`
170
+ ].join('\n');
171
+ })
172
+ .join('\n\n');
173
+ }
174
+ export function formatTutorialStep(tutorial, stepNumber, style) {
175
+ const step = tutorial.steps[stepNumber - 1];
176
+ if (!step) {
177
+ return [
178
+ style.bold(tutorial.title),
179
+ style.dim(`Completed ${tutorial.steps.length}/${tutorial.steps.length} steps.`),
180
+ 'Run agora tutorials for more tutorials.'
181
+ ].join('\n');
182
+ }
183
+ const lines = [
184
+ style.bold(tutorial.title),
185
+ `${style.dim('id')} ${style.accent(tutorial.id)}`,
186
+ `${style.dim('level')} ${tutorial.level}`,
187
+ `${style.dim('duration')} ${tutorial.duration}`,
188
+ `${style.dim('step')} ${stepNumber}/${tutorial.steps.length}`,
189
+ '',
190
+ step.title || '',
191
+ step.content || ''
192
+ ];
193
+ if (step.code) {
194
+ lines.push('', style.dim('code:'), step.code);
195
+ }
196
+ return lines.join('\n');
197
+ }
198
+ export function welcome(color, trueColor, style, version) {
199
+ if (!color) {
200
+ return [
201
+ '',
202
+ `agora · Developers' CLI marketplace and community hub · v${version}`,
203
+ '',
204
+ ' Search agora search <query>',
205
+ ' Browse agora trending · agora browse <id>',
206
+ ' Learn agora tutorials · agora tutorial <id>',
207
+ ' Install agora install <id> [--write]',
208
+ ' Setup agora init [--mcp] · agora use <workflow>',
209
+ ' Auth agora login [--api-url <url>]',
210
+ ''
211
+ ].join('\n');
212
+ }
213
+ const banner = renderBanner({ color, trueColor });
214
+ const box = renderBox('Welcome to Agora', [
215
+ "Developers' CLI marketplace and community hub - type a command, bash or chat:",
216
+ `v${version} · run \`agora help\` to get started`
217
+ ], { color, trueColor });
218
+ const hint = [
219
+ `${style.dim('Search')} agora search <query>`,
220
+ `${style.dim('Browse')} agora trending · agora browse <id>`,
221
+ `${style.dim('Learn')} agora tutorials · agora tutorial <id>`,
222
+ `${style.dim('Install')} agora install <id> [--write]`,
223
+ `${style.dim('Setup')} agora init [--mcp] · agora use <workflow>`,
224
+ `${style.dim('Auth')} agora login [--api-url <url>]`
225
+ ].join('\n');
226
+ return `\n${banner}\n\n${box}\n\n${hint}\n`;
227
+ }
228
+ export function header(title, meta, style) {
229
+ return [style.accent(title), ...meta.map((part) => style.dim(part))].join(style.dim(' · '));
230
+ }
231
+ export function usage(style, version) {
232
+ const nameWidth = Math.max(...COMMANDS.map((c) => c.name.length));
233
+ const groups = ['Marketplace', 'Setup', 'Library', 'Learn', 'Community'];
234
+ const lines = [
235
+ `${style.accent('agora')}${style.dim(` · Developers' CLI marketplace and community hub · v${version}`)}`,
236
+ ''
237
+ ];
238
+ for (const group of groups) {
239
+ const groupCmds = COMMANDS.filter((c) => c.group === group);
240
+ lines.push(style.dim(group));
241
+ for (const cmd of groupCmds) {
242
+ lines.push(` ${style.accent(cmd.name.padEnd(nameWidth))} ${style.dim(cmd.summary)}`);
243
+ }
244
+ lines.push('');
245
+ }
246
+ lines.push(style.dim('Run `agora help <command>` for details on any command.'));
247
+ return lines.join('\n');
248
+ }
249
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/cli/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { getAuthState, type ResolvedSavedItem } from '../state.js';
2
+ import type { Tutorial } from '../types.js';
3
+ import type { SourceOptions, SourceResult } from '../live.js';
4
+ import type { CliIo, ParsedArgs, OutputStream } from './flags.js';
5
+ export declare function writeLine(stream: OutputStream, value?: string): void;
6
+ export declare function writeJson(stream: OutputStream, value: unknown): void;
7
+ export declare function usageError(io: CliIo, message: string): number;
8
+ /**
9
+ * Returns true only when both stdout and stdin are real interactive TTYs AND the
10
+ * environment supports colour (i.e. not NO_COLOR or TERM=dumb). The gate keeps
11
+ * the interactive menu away from pipes, CI, and the test harness, all of which
12
+ * use non-TTY mock streams.
13
+ */
14
+ export declare function isInteractive(io: CliIo, env: Record<string, string | undefined>): boolean;
15
+ export declare function stringFlag(parsed: ParsedArgs, longName: string, shortName?: string): string | undefined;
16
+ export declare function requiredStringFlag(parsed: ParsedArgs, longName: string, shortName?: string): string | undefined;
17
+ export declare function numberFlag(parsed: ParsedArgs, longName: string, shortName?: string): number | undefined;
18
+ export declare function envString(io: CliIo, name: string): string | undefined;
19
+ export declare function authTokenInput(parsed: ParsedArgs, io: CliIo): string | undefined;
20
+ export declare function detectDataDir(parsed: ParsedArgs, io: CliIo): string;
21
+ export declare function sourceOptions(parsed: ParsedArgs, io: CliIo): Promise<SourceOptions>;
22
+ export declare function writeSourceOptions(parsed: ParsedArgs, io: CliIo): Promise<{
23
+ ok: true;
24
+ options: SourceOptions;
25
+ } | {
26
+ ok: false;
27
+ error: string;
28
+ }>;
29
+ export declare function readSourceOptions(parsed: ParsedArgs, io: CliIo): Promise<{
30
+ ok: true;
31
+ options: SourceOptions;
32
+ } | {
33
+ ok: false;
34
+ error: string;
35
+ }>;
36
+ export declare function sourceLabel(result: {
37
+ source: string;
38
+ }): string;
39
+ export declare function warnFallback<T>(result: SourceResult<T>, io: CliIo): void;
40
+ export declare function sourcePayload<T extends object, TValue>(result: SourceResult<TValue>, payload: T): T & {
41
+ source: string;
42
+ apiUrl?: string;
43
+ fallbackReason?: string;
44
+ };
45
+ export declare function maskToken(token: string): string;
46
+ export declare function formatRelativeExp(exp: number, nowSec: number): string;
47
+ export declare function authStatusPayload(dataDir: string, auth: ReturnType<typeof getAuthState>): {
48
+ dataDir: string;
49
+ statePath: string;
50
+ authenticated: boolean;
51
+ accessTokenPreview?: string;
52
+ accessExp?: number;
53
+ refreshTokenPreview?: string;
54
+ refreshExp?: number;
55
+ apiUrl?: string;
56
+ savedAt?: string;
57
+ };
58
+ export declare function matchesSavedQuery(entry: ResolvedSavedItem, query: string): boolean;
59
+ export declare function tutorialLevelFlag(parsed: ParsedArgs): {
60
+ ok: true;
61
+ value: string;
62
+ } | {
63
+ ok: false;
64
+ error: string;
65
+ };
66
+ export declare function tutorialStepNumber(parsed: ParsedArgs): {
67
+ ok: true;
68
+ value: number;
69
+ } | {
70
+ ok: false;
71
+ error: string;
72
+ };
73
+ export declare function tutorialStepPayload(tutorial: Tutorial, stepNumber: number): {
74
+ stepNumber: number;
75
+ totalSteps: number;
76
+ completed: boolean;
77
+ title?: string;
78
+ content?: string;
79
+ code?: string;
80
+ };
81
+ export declare function tagsFlag(parsed: ParsedArgs): string[];
82
+ export declare function promptInput(parsed: ParsedArgs, io: CliIo): string | undefined;
83
+ export declare function contentInput(parsed: ParsedArgs, io: CliIo): string | undefined;
84
+ export declare function itemTypeFlag(parsed: ParsedArgs, itemId: string): 'package' | 'workflow';
85
+ export declare function discussionCategoryFlag(parsed: ParsedArgs): {
86
+ ok: true;
87
+ value: string;
88
+ } | {
89
+ ok: false;
90
+ error: string;
91
+ };
92
+ export declare function extractSessionId(line: string): string | null;
93
+ export declare function persistChatSession(dataDir: string, sessionId: string): void;
94
+ export declare function loadLastChatSession(dataDir: string): string | undefined;
95
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"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"}