@aigne/afs-cli 1.11.0-beta.5 → 1.11.0-beta.7

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 (318) hide show
  1. package/dist/cli.cjs +25 -328
  2. package/dist/cli.d.cts +2 -1
  3. package/dist/cli.d.mts +2 -1
  4. package/dist/cli.mjs +26 -328
  5. package/dist/cli.mjs.map +1 -1
  6. package/dist/config/afs-loader.cjs +123 -0
  7. package/dist/config/afs-loader.d.cts +14 -0
  8. package/dist/config/afs-loader.d.cts.map +1 -0
  9. package/dist/config/afs-loader.d.mts +14 -0
  10. package/dist/config/afs-loader.d.mts.map +1 -0
  11. package/dist/config/afs-loader.mjs +122 -0
  12. package/dist/config/afs-loader.mjs.map +1 -0
  13. package/dist/config/loader.cjs +14 -3
  14. package/dist/config/loader.mjs +14 -3
  15. package/dist/config/loader.mjs.map +1 -1
  16. package/dist/{commands/mount.cjs → config/mount-commands.cjs} +13 -49
  17. package/dist/config/mount-commands.d.cts +20 -0
  18. package/dist/config/mount-commands.d.cts.map +1 -0
  19. package/dist/config/mount-commands.d.mts +20 -0
  20. package/dist/config/mount-commands.d.mts.map +1 -0
  21. package/dist/{commands/mount.mjs → config/mount-commands.mjs} +14 -49
  22. package/dist/config/mount-commands.mjs.map +1 -0
  23. package/dist/config/schema.cjs +9 -1
  24. package/dist/config/schema.mjs +9 -1
  25. package/dist/config/schema.mjs.map +1 -1
  26. package/dist/core/commands/delete.cjs +41 -0
  27. package/dist/core/commands/delete.d.cts +18 -0
  28. package/dist/core/commands/delete.d.cts.map +1 -0
  29. package/dist/core/commands/delete.d.mts +18 -0
  30. package/dist/core/commands/delete.d.mts.map +1 -0
  31. package/dist/core/commands/delete.mjs +42 -0
  32. package/dist/core/commands/delete.mjs.map +1 -0
  33. package/dist/core/commands/exec.cjs +95 -0
  34. package/dist/core/commands/exec.d.cts +26 -0
  35. package/dist/core/commands/exec.d.cts.map +1 -0
  36. package/dist/core/commands/exec.d.mts +26 -0
  37. package/dist/core/commands/exec.d.mts.map +1 -0
  38. package/dist/core/commands/exec.mjs +96 -0
  39. package/dist/core/commands/exec.mjs.map +1 -0
  40. package/dist/core/commands/explain.cjs +254 -0
  41. package/dist/core/commands/explain.d.cts +25 -0
  42. package/dist/core/commands/explain.d.cts.map +1 -0
  43. package/dist/core/commands/explain.d.mts +25 -0
  44. package/dist/core/commands/explain.d.mts.map +1 -0
  45. package/dist/core/commands/explain.mjs +255 -0
  46. package/dist/core/commands/explain.mjs.map +1 -0
  47. package/dist/core/commands/explore.cjs +30 -0
  48. package/dist/core/commands/explore.d.mts +2 -0
  49. package/dist/core/commands/explore.mjs +31 -0
  50. package/dist/core/commands/explore.mjs.map +1 -0
  51. package/dist/core/commands/index.cjs +36 -0
  52. package/dist/core/commands/index.d.cts +21 -0
  53. package/dist/core/commands/index.d.cts.map +1 -0
  54. package/dist/core/commands/index.d.mts +24 -0
  55. package/dist/core/commands/index.d.mts.map +1 -0
  56. package/dist/core/commands/index.mjs +37 -0
  57. package/dist/core/commands/index.mjs.map +1 -0
  58. package/dist/core/commands/ls.cjs +57 -0
  59. package/dist/core/commands/ls.d.cts +21 -0
  60. package/dist/core/commands/ls.d.cts.map +1 -0
  61. package/dist/core/commands/ls.d.mts +21 -0
  62. package/dist/core/commands/ls.d.mts.map +1 -0
  63. package/dist/core/commands/ls.mjs +58 -0
  64. package/dist/core/commands/ls.mjs.map +1 -0
  65. package/dist/core/commands/mount.cjs +139 -0
  66. package/dist/core/commands/mount.d.cts +33 -0
  67. package/dist/core/commands/mount.d.cts.map +1 -0
  68. package/dist/core/commands/mount.d.mts +33 -0
  69. package/dist/core/commands/mount.d.mts.map +1 -0
  70. package/dist/core/commands/mount.mjs +140 -0
  71. package/dist/core/commands/mount.mjs.map +1 -0
  72. package/dist/core/commands/read.cjs +48 -0
  73. package/dist/core/commands/read.d.cts +17 -0
  74. package/dist/core/commands/read.d.cts.map +1 -0
  75. package/dist/core/commands/read.d.mts +17 -0
  76. package/dist/core/commands/read.d.mts.map +1 -0
  77. package/dist/core/commands/read.mjs +49 -0
  78. package/dist/core/commands/read.mjs.map +1 -0
  79. package/dist/core/commands/search.cjs +40 -0
  80. package/dist/core/commands/search.d.mts +2 -0
  81. package/dist/core/commands/search.mjs +41 -0
  82. package/dist/core/commands/search.mjs.map +1 -0
  83. package/dist/core/commands/serve.cjs +242 -0
  84. package/dist/core/commands/serve.d.mts +2 -0
  85. package/dist/core/commands/serve.mjs +242 -0
  86. package/dist/core/commands/serve.mjs.map +1 -0
  87. package/dist/core/commands/stat.cjs +53 -0
  88. package/dist/core/commands/stat.d.cts +17 -0
  89. package/dist/core/commands/stat.d.cts.map +1 -0
  90. package/dist/core/commands/stat.d.mts +17 -0
  91. package/dist/core/commands/stat.d.mts.map +1 -0
  92. package/dist/core/commands/stat.mjs +54 -0
  93. package/dist/core/commands/stat.mjs.map +1 -0
  94. package/dist/core/commands/types.cjs +13 -0
  95. package/dist/core/commands/types.d.cts +54 -0
  96. package/dist/core/commands/types.d.cts.map +1 -0
  97. package/dist/core/commands/types.d.mts +54 -0
  98. package/dist/core/commands/types.d.mts.map +1 -0
  99. package/dist/core/commands/types.mjs +14 -0
  100. package/dist/core/commands/types.mjs.map +1 -0
  101. package/dist/core/commands/write.cjs +70 -0
  102. package/dist/core/commands/write.d.cts +20 -0
  103. package/dist/core/commands/write.d.cts.map +1 -0
  104. package/dist/core/commands/write.d.mts +20 -0
  105. package/dist/core/commands/write.d.mts.map +1 -0
  106. package/dist/core/commands/write.mjs +71 -0
  107. package/dist/core/commands/write.mjs.map +1 -0
  108. package/dist/core/executor/index.cjs +196 -0
  109. package/dist/core/executor/index.d.cts +77 -0
  110. package/dist/core/executor/index.d.cts.map +1 -0
  111. package/dist/core/executor/index.d.mts +77 -0
  112. package/dist/core/executor/index.d.mts.map +1 -0
  113. package/dist/core/executor/index.mjs +195 -0
  114. package/dist/core/executor/index.mjs.map +1 -0
  115. package/dist/core/formatters/delete.cjs +37 -0
  116. package/dist/core/formatters/delete.d.cts +18 -0
  117. package/dist/core/formatters/delete.d.cts.map +1 -0
  118. package/dist/core/formatters/delete.d.mts +18 -0
  119. package/dist/core/formatters/delete.d.mts.map +1 -0
  120. package/dist/core/formatters/delete.mjs +37 -0
  121. package/dist/core/formatters/delete.mjs.map +1 -0
  122. package/dist/core/formatters/exec.cjs +60 -0
  123. package/dist/core/formatters/exec.d.cts +18 -0
  124. package/dist/core/formatters/exec.d.cts.map +1 -0
  125. package/dist/core/formatters/exec.d.mts +18 -0
  126. package/dist/core/formatters/exec.d.mts.map +1 -0
  127. package/dist/core/formatters/exec.mjs +60 -0
  128. package/dist/core/formatters/exec.mjs.map +1 -0
  129. package/dist/core/formatters/explain.cjs +97 -0
  130. package/dist/core/formatters/explain.d.cts +11 -0
  131. package/dist/core/formatters/explain.d.cts.map +1 -0
  132. package/dist/core/formatters/explain.d.mts +11 -0
  133. package/dist/core/formatters/explain.d.mts.map +1 -0
  134. package/dist/core/formatters/explain.mjs +96 -0
  135. package/dist/core/formatters/explain.mjs.map +1 -0
  136. package/dist/core/formatters/index.d.mts +9 -0
  137. package/dist/core/formatters/ls.cjs +179 -0
  138. package/dist/core/formatters/ls.d.cts +20 -0
  139. package/dist/core/formatters/ls.d.cts.map +1 -0
  140. package/dist/core/formatters/ls.d.mts +20 -0
  141. package/dist/core/formatters/ls.d.mts.map +1 -0
  142. package/dist/core/formatters/ls.mjs +179 -0
  143. package/dist/core/formatters/ls.mjs.map +1 -0
  144. package/dist/core/formatters/mount.cjs +55 -0
  145. package/dist/core/formatters/mount.d.cts +15 -0
  146. package/dist/core/formatters/mount.d.cts.map +1 -0
  147. package/dist/core/formatters/mount.d.mts +15 -0
  148. package/dist/core/formatters/mount.d.mts.map +1 -0
  149. package/dist/core/formatters/mount.mjs +55 -0
  150. package/dist/core/formatters/mount.mjs.map +1 -0
  151. package/dist/core/formatters/read.cjs +100 -0
  152. package/dist/core/formatters/read.d.cts +22 -0
  153. package/dist/core/formatters/read.d.cts.map +1 -0
  154. package/dist/core/formatters/read.d.mts +22 -0
  155. package/dist/core/formatters/read.d.mts.map +1 -0
  156. package/dist/core/formatters/read.mjs +100 -0
  157. package/dist/core/formatters/read.mjs.map +1 -0
  158. package/dist/core/formatters/search.cjs +44 -0
  159. package/dist/core/formatters/search.d.mts +1 -0
  160. package/dist/core/formatters/search.mjs +44 -0
  161. package/dist/core/formatters/search.mjs.map +1 -0
  162. package/dist/core/formatters/stat.cjs +155 -0
  163. package/dist/core/formatters/stat.d.cts +15 -0
  164. package/dist/core/formatters/stat.d.cts.map +1 -0
  165. package/dist/core/formatters/stat.d.mts +15 -0
  166. package/dist/core/formatters/stat.d.mts.map +1 -0
  167. package/dist/core/formatters/stat.mjs +155 -0
  168. package/dist/core/formatters/stat.mjs.map +1 -0
  169. package/dist/core/formatters/write.cjs +51 -0
  170. package/dist/core/formatters/write.d.cts +22 -0
  171. package/dist/core/formatters/write.d.cts.map +1 -0
  172. package/dist/core/formatters/write.d.mts +22 -0
  173. package/dist/core/formatters/write.d.mts.map +1 -0
  174. package/dist/core/formatters/write.mjs +51 -0
  175. package/dist/core/formatters/write.mjs.map +1 -0
  176. package/dist/core/helpers/exec-args.cjs +142 -0
  177. package/dist/core/helpers/exec-args.d.cts +46 -0
  178. package/dist/core/helpers/exec-args.d.cts.map +1 -0
  179. package/dist/core/helpers/exec-args.d.mts +46 -0
  180. package/dist/core/helpers/exec-args.d.mts.map +1 -0
  181. package/dist/core/helpers/exec-args.mjs +139 -0
  182. package/dist/core/helpers/exec-args.mjs.map +1 -0
  183. package/dist/core/helpers/stdin.cjs +41 -0
  184. package/dist/core/helpers/stdin.d.cts +15 -0
  185. package/dist/core/helpers/stdin.d.cts.map +1 -0
  186. package/dist/core/helpers/stdin.d.mts +15 -0
  187. package/dist/core/helpers/stdin.d.mts.map +1 -0
  188. package/dist/core/helpers/stdin.mjs +41 -0
  189. package/dist/core/helpers/stdin.mjs.map +1 -0
  190. package/dist/core/index.cjs +49 -0
  191. package/dist/core/index.d.cts +24 -0
  192. package/dist/core/index.d.mts +25 -0
  193. package/dist/core/index.mjs +24 -0
  194. package/dist/core/path-utils.cjs +1 -0
  195. package/dist/core/path-utils.mjs +3 -0
  196. package/dist/core/types.d.cts +24 -0
  197. package/dist/core/types.d.cts.map +1 -0
  198. package/dist/core/types.d.mts +24 -0
  199. package/dist/core/types.d.mts.map +1 -0
  200. package/dist/errors.cjs +0 -11
  201. package/dist/errors.mjs +1 -11
  202. package/dist/errors.mjs.map +1 -1
  203. package/dist/explorer/actions.cjs +113 -48
  204. package/dist/explorer/actions.mjs +113 -48
  205. package/dist/explorer/actions.mjs.map +1 -1
  206. package/dist/explorer/components/dialog.cjs +287 -10
  207. package/dist/explorer/components/dialog.mjs +287 -10
  208. package/dist/explorer/components/dialog.mjs.map +1 -1
  209. package/dist/explorer/components/file-list.mjs.map +1 -1
  210. package/dist/explorer/components/metadata-panel.cjs +121 -24
  211. package/dist/explorer/components/metadata-panel.mjs +121 -24
  212. package/dist/explorer/components/metadata-panel.mjs.map +1 -1
  213. package/dist/explorer/screen.cjs +72 -21
  214. package/dist/explorer/screen.d.cts +23 -0
  215. package/dist/explorer/screen.d.cts.map +1 -0
  216. package/dist/explorer/screen.d.mts +23 -0
  217. package/dist/explorer/screen.d.mts.map +1 -0
  218. package/dist/explorer/screen.mjs +73 -22
  219. package/dist/explorer/screen.mjs.map +1 -1
  220. package/dist/explorer/theme.cjs +4 -2
  221. package/dist/explorer/theme.mjs +4 -2
  222. package/dist/explorer/theme.mjs.map +1 -1
  223. package/dist/index.cjs +7 -1
  224. package/dist/index.d.cts +4 -1
  225. package/dist/index.d.mts +4 -1
  226. package/dist/index.mjs +4 -1
  227. package/dist/mcp/http-transport.cjs +68 -0
  228. package/dist/mcp/http-transport.mjs +68 -0
  229. package/dist/mcp/http-transport.mjs.map +1 -0
  230. package/dist/mcp/prompts.cjs +48 -0
  231. package/dist/mcp/prompts.mjs +48 -0
  232. package/dist/mcp/prompts.mjs.map +1 -0
  233. package/dist/mcp/resources.cjs +25 -0
  234. package/dist/mcp/resources.mjs +25 -0
  235. package/dist/mcp/resources.mjs.map +1 -0
  236. package/dist/mcp/server.cjs +30 -0
  237. package/dist/mcp/server.mjs +30 -0
  238. package/dist/mcp/server.mjs.map +1 -0
  239. package/dist/mcp/tools.cjs +196 -0
  240. package/dist/mcp/tools.mjs +196 -0
  241. package/dist/mcp/tools.mjs.map +1 -0
  242. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.cts +10 -0
  243. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.cts.map +1 -0
  244. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.mts +10 -0
  245. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.mts.map +1 -0
  246. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.cts +46 -0
  247. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.cts.map +1 -0
  248. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.mts +46 -0
  249. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.mts.map +1 -0
  250. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.cjs +902 -0
  251. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.mjs +902 -0
  252. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.mjs.map +1 -0
  253. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.cjs +6 -0
  254. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.mjs +8 -0
  255. package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.mjs.map +1 -0
  256. package/dist/path-utils.cjs +2 -1
  257. package/dist/path-utils.d.cts +50 -0
  258. package/dist/path-utils.d.cts.map +1 -0
  259. package/dist/path-utils.d.mts +50 -0
  260. package/dist/path-utils.d.mts.map +1 -0
  261. package/dist/path-utils.mjs +1 -1
  262. package/dist/repl.cjs +485 -0
  263. package/dist/repl.d.cts +15 -0
  264. package/dist/repl.d.cts.map +1 -0
  265. package/dist/repl.d.mts +16 -0
  266. package/dist/repl.d.mts.map +1 -0
  267. package/dist/repl.mjs +485 -0
  268. package/dist/repl.mjs.map +1 -0
  269. package/dist/serve.cjs +146 -0
  270. package/dist/serve.d.cts +41 -0
  271. package/dist/serve.d.cts.map +1 -0
  272. package/dist/serve.d.mts +41 -0
  273. package/dist/serve.d.mts.map +1 -0
  274. package/dist/serve.mjs +146 -0
  275. package/dist/serve.mjs.map +1 -0
  276. package/dist/ui/header.cjs +1 -49
  277. package/dist/ui/header.mjs +1 -47
  278. package/dist/ui/header.mjs.map +1 -1
  279. package/dist/ui/index.cjs +2 -11
  280. package/dist/ui/index.mjs +2 -8
  281. package/dist/ui/index.mjs.map +1 -1
  282. package/dist/ui/terminal.cjs +1 -10
  283. package/dist/ui/terminal.mjs +1 -8
  284. package/dist/ui/terminal.mjs.map +1 -1
  285. package/package.json +32 -9
  286. package/dist/commands/exec.cjs +0 -46
  287. package/dist/commands/exec.mjs +0 -45
  288. package/dist/commands/exec.mjs.map +0 -1
  289. package/dist/commands/explain.cjs +0 -244
  290. package/dist/commands/explain.mjs +0 -242
  291. package/dist/commands/explain.mjs.map +0 -1
  292. package/dist/commands/index.cjs +0 -8
  293. package/dist/commands/index.mjs +0 -10
  294. package/dist/commands/ls.cjs +0 -143
  295. package/dist/commands/ls.mjs +0 -143
  296. package/dist/commands/ls.mjs.map +0 -1
  297. package/dist/commands/mount.mjs.map +0 -1
  298. package/dist/commands/read.cjs +0 -65
  299. package/dist/commands/read.mjs +0 -64
  300. package/dist/commands/read.mjs.map +0 -1
  301. package/dist/commands/serve.cjs +0 -144
  302. package/dist/commands/serve.mjs +0 -143
  303. package/dist/commands/serve.mjs.map +0 -1
  304. package/dist/commands/stat.cjs +0 -113
  305. package/dist/commands/stat.mjs +0 -112
  306. package/dist/commands/stat.mjs.map +0 -1
  307. package/dist/commands/write.cjs +0 -52
  308. package/dist/commands/write.mjs +0 -51
  309. package/dist/commands/write.mjs.map +0 -1
  310. package/dist/config/provider-factory.cjs +0 -93
  311. package/dist/config/provider-factory.mjs +0 -94
  312. package/dist/config/provider-factory.mjs.map +0 -1
  313. package/dist/config/uri-parser.cjs +0 -92
  314. package/dist/config/uri-parser.mjs +0 -92
  315. package/dist/config/uri-parser.mjs.map +0 -1
  316. package/dist/runtime.cjs +0 -96
  317. package/dist/runtime.mjs +0 -96
  318. package/dist/runtime.mjs.map +0 -1
package/dist/cli.cjs CHANGED
@@ -1,342 +1,39 @@
1
1
  #!/usr/bin/env node
2
2
  const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
3
3
  const require_version = require('./version.cjs');
4
- const require_exec = require('./commands/exec.cjs');
5
- const require_loader = require('./config/loader.cjs');
6
- const require_index = require('./ui/index.cjs');
7
- const require_mount = require('./commands/mount.cjs');
8
- const require_explain = require('./commands/explain.cjs');
9
- const require_ls = require('./commands/ls.cjs');
10
- const require_read = require('./commands/read.cjs');
11
- const require_runtime = require('./runtime.cjs');
12
- const require_serve = require('./commands/serve.cjs');
13
- const require_stat = require('./commands/stat.cjs');
14
- const require_write = require('./commands/write.cjs');
15
- require('./commands/index.cjs');
16
4
  const require_errors = require('./errors.cjs');
17
- const require_screen = require('./explorer/screen.cjs');
18
- let yargs = require("yargs");
19
- yargs = require_rolldown_runtime.__toESM(yargs);
5
+ const require_index = require('./core/executor/index.cjs');
6
+ require('./node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.cjs');
7
+ require('./core/index.cjs');
20
8
  let yargs_helpers = require("yargs/helpers");
21
9
 
22
10
  //#region src/cli.ts
23
- /**
24
- * AFS CLI - Command Line Interface
25
- *
26
- * Commands:
27
- * - afs mount list|ls List mount configurations
28
- * - afs mount add <path> <uri> Add a mount
29
- * - afs mount remove|rm <path> Remove a mount
30
- * - afs mount validate Validate mount configuration
31
- * - afs list|ls [path] List directory
32
- * - afs stat <path> Get file/directory info
33
- * - afs read <path> Read file content
34
- * - afs write <path> Write file content (--content or stdin)
35
- * - afs exec <path> <action> Execute operation
36
- * - afs serve Start HTTP server to expose AFS
37
- * - afs explore [path] Interactive TUI file explorer
38
- *
39
- * Output modes (default: human):
40
- * - --view=human: Human friendly format with colors (default)
41
- * - --view=llm: LLM optimized output (token-efficient)
42
- * - --view=default: Machine truth (script/pipe friendly)
43
- * - --json: Structured JSON
44
- */
45
- function getViewType(argv) {
46
- if (argv.json) return "json";
47
- if (argv.view) return argv.view;
48
- return "human";
49
- }
50
- let headerShown = false;
51
- /**
52
- * Show header if in human view mode and not already shown
53
- */
54
- async function maybeShowHeader(view) {
55
- if (view !== "human" || headerShown || !require_index.shouldShowHeader()) return;
56
- headerShown = true;
57
- try {
58
- require_index.printHeader({
59
- version: require_version.VERSION,
60
- mountCount: (await new require_loader.ConfigLoader().load(process.cwd())).mounts.length
61
- });
62
- } catch {
63
- require_index.printHeader({
64
- version: require_version.VERSION,
65
- mountCount: 0
66
- });
67
- }
68
- }
69
- async function showHeaderIfNeeded() {
70
- const args = process.argv.slice(2);
71
- if ((args.length === 0 || args.includes("--help") || args.includes("-h") || args.length === 1 && [
72
- "help",
73
- "mount",
74
- "explain"
75
- ].includes(args[0])) && require_index.shouldShowHeader()) try {
76
- require_index.printHeader({
77
- version: require_version.VERSION,
78
- mountCount: (await new require_loader.ConfigLoader().load(process.cwd())).mounts.length
79
- });
80
- } catch {
81
- require_index.printHeader({
82
- version: require_version.VERSION,
83
- mountCount: 0
84
- });
85
- }
86
- }
87
11
  async function main() {
88
- await showHeaderIfNeeded();
89
- const cli = (0, yargs.default)((0, yargs_helpers.hideBin)(process.argv)).scriptName("afs").version(require_version.VERSION).alias("version", "V").help("help").alias("help", "h").usage("$0 <command> [options]").option("json", {
90
- type: "boolean",
91
- description: "Output in JSON format",
92
- global: true
93
- }).option("view", {
94
- type: "string",
95
- choices: [
96
- "default",
97
- "llm",
98
- "human"
99
- ],
100
- default: "human",
101
- description: "Output format (llm for AI agents, default for scripts)",
102
- global: true
103
- }).command(["list [path]", "ls [path]"], "List directory contents", (yargs$2) => yargs$2.positional("path", {
104
- type: "string",
105
- default: "/",
106
- description: "Path to list"
107
- }).option("depth", {
108
- type: "number",
109
- default: 1,
110
- description: "Maximum depth to list"
111
- }).option("limit", {
112
- alias: "n",
113
- type: "number",
114
- description: "Maximum number of entries to return"
115
- }).option("max-children", {
116
- type: "number",
117
- description: "Maximum children per directory"
118
- }).option("pattern", {
119
- alias: "p",
120
- type: "string",
121
- description: "Glob pattern to filter entries (e.g., *.ts, **/*.js)"
122
- }), async (argv) => {
123
- const view = getViewType(argv);
124
- await maybeShowHeader(view);
125
- const result = await require_ls.lsCommand(await require_runtime.createRuntime(), argv.path, {
126
- maxDepth: argv.depth,
127
- limit: argv.limit,
128
- maxChildren: argv["max-children"],
129
- pattern: argv.pattern
130
- });
131
- console.log(require_ls.formatLsOutput(result, view));
132
- }).command("stat <path>", "Get file or directory info", (yargs$2) => yargs$2.positional("path", {
133
- type: "string",
134
- demandOption: true,
135
- description: "Path to stat"
136
- }), async (argv) => {
137
- const view = getViewType(argv);
138
- await maybeShowHeader(view);
139
- const result = await require_stat.statCommand(await require_runtime.createRuntime(), argv.path);
140
- console.log(require_stat.formatStatOutput(result, view));
141
- }).command("read <path>", "Read file content", (yargs$2) => yargs$2.positional("path", {
142
- type: "string",
143
- demandOption: true,
144
- description: "Path to read"
145
- }), async (argv) => {
146
- const view = getViewType(argv);
147
- await maybeShowHeader(view);
148
- const result = await require_read.readCommand(await require_runtime.createRuntime(), argv.path);
149
- console.log(require_read.formatReadOutput(result, view));
150
- }).command("write <path>", "Write content to file (from --content or stdin)", (yargs$2) => yargs$2.positional("path", {
151
- type: "string",
152
- demandOption: true,
153
- description: "Path to write"
154
- }).option("content", {
155
- type: "string",
156
- description: "Content to write (if not provided, reads from stdin)"
157
- }).option("append", {
158
- type: "boolean",
159
- default: false,
160
- description: "Append to file instead of overwrite"
161
- }), async (argv) => {
162
- const view = getViewType(argv);
163
- await maybeShowHeader(view);
164
- let content;
165
- if (argv.content !== void 0) content = argv.content;
166
- else {
167
- const chunks = [];
168
- for await (const chunk of process.stdin) chunks.push(chunk);
169
- content = Buffer.concat(chunks).toString("utf-8");
170
- }
171
- const result = await require_write.writeCommand(await require_runtime.createRuntime(), argv.path, content, { append: argv.append });
172
- console.log(require_write.formatWriteOutput(result, view));
173
- if (!result.success) process.exit(require_errors.ExitCode.RUNTIME_ERROR);
174
- }).command("exec <path> [action]", "Execute operation on path", (yargs$2) => yargs$2.positional("path", {
175
- type: "string",
176
- demandOption: true,
177
- description: "Path to execute on"
178
- }).positional("action", {
179
- type: "string",
180
- default: "default",
181
- description: "Action to execute"
182
- }).option("params", {
183
- type: "string",
184
- description: "JSON parameters for the action"
185
- }), async (argv) => {
186
- const view = getViewType(argv);
187
- await maybeShowHeader(view);
188
- const params = argv.params ? JSON.parse(argv.params) : {};
189
- const result = await require_exec.execCommand(await require_runtime.createRuntime(), argv.path, argv.action, params);
190
- console.log(require_exec.formatExecOutput(result, view));
191
- if (!result.success) process.exit(require_errors.ExitCode.RUNTIME_ERROR);
192
- }).command("mount", "Manage mount configurations", (yargs$2) => yargs$2.command(["list", "ls"], "List all mounts", () => {}, async (argv) => {
193
- const view = getViewType(argv);
194
- await maybeShowHeader(view);
195
- const result = await require_mount.mountListCommand(process.cwd());
196
- console.log(require_mount.formatMountListOutput(result.mounts, view));
197
- }).command("add <path> <uri>", "Add a new mount (path=virtual path, uri=data source)", (yargs$3) => yargs$3.positional("path", {
198
- type: "string",
199
- demandOption: true,
200
- description: "Virtual path in AFS namespace (e.g., /src, /data)"
201
- }).positional("uri", {
202
- type: "string",
203
- demandOption: true,
204
- description: "Data source URI: fs:///local/path, git://repo, sqlite:///db.sqlite"
205
- }).option("description", {
206
- type: "string",
207
- description: "Human-readable description for this mount"
208
- }).option("token", {
209
- type: "string",
210
- description: "Bearer token for HTTP provider authorization"
211
- }), async (argv) => {
212
- const view = getViewType(argv);
213
- await maybeShowHeader(view);
214
- const result = await require_mount.mountAddCommand(process.cwd(), argv.path, argv.uri, {
215
- description: argv.description,
216
- token: argv.token
217
- });
218
- if (view === "json") console.log(JSON.stringify(result, null, 2));
219
- else if (result.success) {
220
- const msg = view === "human" ? `${require_index.colors.success("Added mount")} ${require_index.colors.cyan(result.normalizedPath)}` : `Added mount ${result.normalizedPath}`;
221
- console.log(msg);
222
- } else {
223
- const msg = view === "human" ? require_index.colors.error(result.message) : result.message;
224
- console.error(msg);
225
- process.exit(require_errors.ExitCode.RUNTIME_ERROR);
226
- }
227
- }).command(["remove <path>", "rm <path>"], "Remove a mount", (yargs$3) => yargs$3.positional("path", {
228
- type: "string",
229
- demandOption: true,
230
- description: "Virtual path to remove (e.g., /src)"
231
- }), async (argv) => {
232
- const view = getViewType(argv);
233
- await maybeShowHeader(view);
234
- const result = await require_mount.mountRemoveCommand(process.cwd(), argv.path);
235
- if (view === "json") console.log(JSON.stringify(result, null, 2));
236
- else if (result.success) {
237
- const msg = view === "human" ? `${require_index.colors.success("Removed mount")} ${require_index.colors.cyan(argv.path)}` : `Removed mount ${argv.path}`;
238
- console.log(msg);
239
- } else {
240
- const msg = view === "human" ? require_index.colors.error(result.message) : result.message;
241
- console.error(msg);
242
- process.exit(require_errors.ExitCode.RUNTIME_ERROR);
243
- }
244
- }).command("validate", "Validate mount configuration", () => {}, async (argv) => {
245
- const view = getViewType(argv);
246
- await maybeShowHeader(view);
247
- const result = await require_mount.mountValidateCommand(process.cwd());
248
- if (view === "json") console.log(JSON.stringify(result, null, 2));
249
- else if (result.valid) {
250
- const msg = view === "human" ? require_index.colors.success("Configuration is valid") : "Configuration is valid";
251
- console.log(msg);
252
- } else {
253
- const titleMsg = view === "human" ? require_index.colors.error("Configuration has errors:") : "Configuration has errors:";
254
- console.error(titleMsg);
255
- for (const error of result.errors) {
256
- const errMsg = view === "human" ? ` ${require_index.colors.dim("-")} ${require_index.colors.error(error)}` : ` - ${error}`;
257
- console.error(errMsg);
258
- }
259
- process.exit(require_errors.ExitCode.RUNTIME_ERROR);
260
- }
261
- }).demandCommand(1, "Please specify a mount subcommand"), () => {}).command("explain [topic]", "Explain AFS concepts or AFS object", (yargs$2) => yargs$2.positional("topic", {
262
- type: "string",
263
- description: "Topic (mount, path, uri) or AFS path (e.g., /modules/src)"
264
- }), async (argv) => {
265
- const view = getViewType(argv);
266
- await maybeShowHeader(view);
267
- const topic = argv.topic;
268
- if (topic?.startsWith("/")) {
269
- const result = await require_explain.explainPathCommand(await require_runtime.createRuntime(), topic);
270
- console.log(require_explain.formatPathExplainOutput(result, view));
271
- } else {
272
- const result = await require_explain.explainCommand(process.cwd(), topic);
273
- console.log(require_explain.formatExplainOutput(result, view));
274
- }
275
- }).command("serve", "Start HTTP server to expose AFS providers", (yargs$2) => yargs$2.option("host", {
276
- type: "string",
277
- default: "localhost",
278
- description: "Host address to listen on"
279
- }).option("port", {
280
- type: "number",
281
- default: 3e3,
282
- description: "Port to listen on"
283
- }).option("path", {
284
- type: "string",
285
- default: "/afs",
286
- description: "Base path for the server"
287
- }).option("readonly", {
288
- type: "boolean",
289
- default: false,
290
- description: "Run in readonly mode (disable write operations)"
291
- }).option("cors", {
292
- type: "boolean",
293
- default: false,
294
- description: "Enable CORS support"
295
- }).option("max-body", {
296
- type: "number",
297
- description: "Maximum request body size in bytes (default: 10MB)"
298
- }).option("token", {
299
- type: "string",
300
- description: "Bearer token for authorization"
301
- }), async (argv) => {
302
- await maybeShowHeader(getViewType(argv));
303
- const result = await require_serve.serveCommand({
304
- host: argv.host,
305
- port: argv.port,
306
- path: argv.path,
307
- readonly: argv.readonly,
308
- cors: argv.cors,
309
- maxBodySize: argv["max-body"],
310
- token: argv.token
311
- });
312
- console.log(require_serve.formatServeOutput(result));
313
- await new Promise(() => {});
314
- }).command("explore [path]", "Interactive TUI file explorer (PC Tools style)", (yargs$2) => yargs$2.positional("path", {
315
- type: "string",
316
- default: "/",
317
- description: "Starting path to explore"
318
- }), async (argv) => {
319
- const configLoader = new require_loader.ConfigLoader();
320
- const config = await configLoader.load(process.cwd());
321
- await require_screen.createExplorerScreen({
322
- runtime: await require_runtime.createRuntime(process.cwd(), { configLoader }),
323
- startPath: argv.path,
324
- version: require_version.VERSION,
325
- mountCount: config.mounts.length
326
- });
327
- }).demandCommand(1, "Please specify a command").strict();
328
- try {
329
- await cli.parse();
330
- } catch (error) {
331
- if (error instanceof require_errors.CLIError) {
332
- console.error(error.message);
333
- process.exit(error.exitCode);
334
- }
335
- throw error;
12
+ const args = (0, yargs_helpers.hideBin)(process.argv);
13
+ const cwd = process.cwd();
14
+ if (args.includes("-i") || args.includes("--interactive")) {
15
+ const { startRepl } = await Promise.resolve().then(() => require("./repl.cjs"));
16
+ await startRepl({
17
+ cwd,
18
+ version: require_version.VERSION
19
+ });
20
+ process.exit(require_errors.ExitCode.OK);
21
+ }
22
+ const result = await new require_index.AFSCommandExecutor(void 0, {
23
+ cwd,
24
+ tty: process.stdout.isTTY ?? false,
25
+ version: require_version.VERSION
26
+ }).execute(args);
27
+ if (result.success) {
28
+ console.log(result.formatted);
29
+ process.exit(require_errors.ExitCode.OK);
30
+ } else {
31
+ console.error(result.formatted);
32
+ process.exit(result.error?.code ?? require_errors.ExitCode.RUNTIME_ERROR);
336
33
  }
337
34
  }
338
35
  main().catch((error) => {
339
- console.error("Fatal error:", error.message);
36
+ console.error(error instanceof Error ? error.message : String(error));
340
37
  process.exit(require_errors.ExitCode.RUNTIME_ERROR);
341
38
  });
342
39
 
package/dist/cli.d.cts CHANGED
@@ -1 +1,2 @@
1
- export { };
1
+ #!/usr/bin/env node
2
+ import "./node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.cjs";
package/dist/cli.d.mts CHANGED
@@ -1 +1,2 @@
1
- export { };
1
+ #!/usr/bin/env node
2
+ import "./node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.mjs";