@kruntime/komputer 0.1.0

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 (353) hide show
  1. package/README.md +368 -0
  2. package/dist/agent/approvals.d.ts +28 -0
  3. package/dist/agent/approvals.js +109 -0
  4. package/dist/agent/approvals.js.map +1 -0
  5. package/dist/agent/messages.d.ts +67 -0
  6. package/dist/agent/messages.js +213 -0
  7. package/dist/agent/messages.js.map +1 -0
  8. package/dist/agent/recovery.d.ts +13 -0
  9. package/dist/agent/recovery.js +112 -0
  10. package/dist/agent/recovery.js.map +1 -0
  11. package/dist/agent/session-utils.d.ts +17 -0
  12. package/dist/agent/session-utils.js +77 -0
  13. package/dist/agent/session-utils.js.map +1 -0
  14. package/dist/agent-session.d.ts +303 -0
  15. package/dist/agent-session.js +3031 -0
  16. package/dist/agent-session.js.map +1 -0
  17. package/dist/authority.d.ts +34 -0
  18. package/dist/authority.js +105 -0
  19. package/dist/authority.js.map +1 -0
  20. package/dist/content.d.ts +17 -0
  21. package/dist/content.js +69 -0
  22. package/dist/content.js.map +1 -0
  23. package/dist/cron.d.ts +20 -0
  24. package/dist/cron.js +25 -0
  25. package/dist/cron.js.map +1 -0
  26. package/dist/drive.d.ts +198 -0
  27. package/dist/drive.js +656 -0
  28. package/dist/drive.js.map +1 -0
  29. package/dist/events.d.ts +20 -0
  30. package/dist/events.js +149 -0
  31. package/dist/events.js.map +1 -0
  32. package/dist/fs-mode.d.ts +9 -0
  33. package/dist/fs-mode.js +98 -0
  34. package/dist/fs-mode.js.map +1 -0
  35. package/dist/index.d.ts +26 -0
  36. package/dist/index.js +15 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/komputer.d.ts +123 -0
  39. package/dist/komputer.js +733 -0
  40. package/dist/komputer.js.map +1 -0
  41. package/dist/kstate.d.ts +107 -0
  42. package/dist/kstate.js +529 -0
  43. package/dist/kstate.js.map +1 -0
  44. package/dist/model.d.ts +81 -0
  45. package/dist/model.js +824 -0
  46. package/dist/model.js.map +1 -0
  47. package/dist/node.d.ts +2 -0
  48. package/dist/node.js +3 -0
  49. package/dist/node.js.map +1 -0
  50. package/dist/path.d.ts +4 -0
  51. package/dist/path.js +38 -0
  52. package/dist/path.js.map +1 -0
  53. package/dist/pool.d.ts +56 -0
  54. package/dist/pool.js +172 -0
  55. package/dist/pool.js.map +1 -0
  56. package/dist/receipts.d.ts +44 -0
  57. package/dist/receipts.js +35 -0
  58. package/dist/receipts.js.map +1 -0
  59. package/dist/remote-node.d.ts +2 -0
  60. package/dist/remote-node.js +122 -0
  61. package/dist/remote-node.js.map +1 -0
  62. package/dist/remote.d.ts +84 -0
  63. package/dist/remote.js +11 -0
  64. package/dist/remote.js.map +1 -0
  65. package/dist/sandbox.d.ts +4 -0
  66. package/dist/sandbox.js +70 -0
  67. package/dist/sandbox.js.map +1 -0
  68. package/dist/shell/builtins/catalog.d.ts +6 -0
  69. package/dist/shell/builtins/catalog.js +12 -0
  70. package/dist/shell/builtins/catalog.js.map +1 -0
  71. package/dist/shell/builtins/commands/filesystem/basename.d.ts +2 -0
  72. package/dist/shell/builtins/commands/filesystem/basename.js +23 -0
  73. package/dist/shell/builtins/commands/filesystem/basename.js.map +1 -0
  74. package/dist/shell/builtins/commands/filesystem/cat.d.ts +2 -0
  75. package/dist/shell/builtins/commands/filesystem/cat.js +85 -0
  76. package/dist/shell/builtins/commands/filesystem/cat.js.map +1 -0
  77. package/dist/shell/builtins/commands/filesystem/cd.d.ts +2 -0
  78. package/dist/shell/builtins/commands/filesystem/cd.js +14 -0
  79. package/dist/shell/builtins/commands/filesystem/cd.js.map +1 -0
  80. package/dist/shell/builtins/commands/filesystem/chmod.d.ts +2 -0
  81. package/dist/shell/builtins/commands/filesystem/chmod.js +46 -0
  82. package/dist/shell/builtins/commands/filesystem/chmod.js.map +1 -0
  83. package/dist/shell/builtins/commands/filesystem/copy-directory.d.ts +4 -0
  84. package/dist/shell/builtins/commands/filesystem/copy-directory.js +48 -0
  85. package/dist/shell/builtins/commands/filesystem/copy-directory.js.map +1 -0
  86. package/dist/shell/builtins/commands/filesystem/cp.d.ts +2 -0
  87. package/dist/shell/builtins/commands/filesystem/cp.js +92 -0
  88. package/dist/shell/builtins/commands/filesystem/cp.js.map +1 -0
  89. package/dist/shell/builtins/commands/filesystem/dirname.d.ts +2 -0
  90. package/dist/shell/builtins/commands/filesystem/dirname.js +23 -0
  91. package/dist/shell/builtins/commands/filesystem/dirname.js.map +1 -0
  92. package/dist/shell/builtins/commands/filesystem/du.d.ts +2 -0
  93. package/dist/shell/builtins/commands/filesystem/du.js +93 -0
  94. package/dist/shell/builtins/commands/filesystem/du.js.map +1 -0
  95. package/dist/shell/builtins/commands/filesystem/find.d.ts +2 -0
  96. package/dist/shell/builtins/commands/filesystem/find.js +111 -0
  97. package/dist/shell/builtins/commands/filesystem/find.js.map +1 -0
  98. package/dist/shell/builtins/commands/filesystem/install.d.ts +2 -0
  99. package/dist/shell/builtins/commands/filesystem/install.js +89 -0
  100. package/dist/shell/builtins/commands/filesystem/install.js.map +1 -0
  101. package/dist/shell/builtins/commands/filesystem/ln.d.ts +2 -0
  102. package/dist/shell/builtins/commands/filesystem/ln.js +57 -0
  103. package/dist/shell/builtins/commands/filesystem/ln.js.map +1 -0
  104. package/dist/shell/builtins/commands/filesystem/ls.d.ts +2 -0
  105. package/dist/shell/builtins/commands/filesystem/ls.js +153 -0
  106. package/dist/shell/builtins/commands/filesystem/ls.js.map +1 -0
  107. package/dist/shell/builtins/commands/filesystem/mkdir.d.ts +2 -0
  108. package/dist/shell/builtins/commands/filesystem/mkdir.js +41 -0
  109. package/dist/shell/builtins/commands/filesystem/mkdir.js.map +1 -0
  110. package/dist/shell/builtins/commands/filesystem/mktemp.d.ts +2 -0
  111. package/dist/shell/builtins/commands/filesystem/mktemp.js +94 -0
  112. package/dist/shell/builtins/commands/filesystem/mktemp.js.map +1 -0
  113. package/dist/shell/builtins/commands/filesystem/mv.d.ts +2 -0
  114. package/dist/shell/builtins/commands/filesystem/mv.js +41 -0
  115. package/dist/shell/builtins/commands/filesystem/mv.js.map +1 -0
  116. package/dist/shell/builtins/commands/filesystem/pwd.d.ts +2 -0
  117. package/dist/shell/builtins/commands/filesystem/pwd.js +2 -0
  118. package/dist/shell/builtins/commands/filesystem/pwd.js.map +1 -0
  119. package/dist/shell/builtins/commands/filesystem/realpath.d.ts +3 -0
  120. package/dist/shell/builtins/commands/filesystem/realpath.js +61 -0
  121. package/dist/shell/builtins/commands/filesystem/realpath.js.map +1 -0
  122. package/dist/shell/builtins/commands/filesystem/rm.d.ts +2 -0
  123. package/dist/shell/builtins/commands/filesystem/rm.js +38 -0
  124. package/dist/shell/builtins/commands/filesystem/rm.js.map +1 -0
  125. package/dist/shell/builtins/commands/filesystem/stat.d.ts +2 -0
  126. package/dist/shell/builtins/commands/filesystem/stat.js +141 -0
  127. package/dist/shell/builtins/commands/filesystem/stat.js.map +1 -0
  128. package/dist/shell/builtins/commands/filesystem/touch.d.ts +2 -0
  129. package/dist/shell/builtins/commands/filesystem/touch.js +143 -0
  130. package/dist/shell/builtins/commands/filesystem/touch.js.map +1 -0
  131. package/dist/shell/builtins/commands/filesystem.d.ts +2 -0
  132. package/dist/shell/builtins/commands/filesystem.js +44 -0
  133. package/dist/shell/builtins/commands/filesystem.js.map +1 -0
  134. package/dist/shell/builtins/commands/network/curl.d.ts +2 -0
  135. package/dist/shell/builtins/commands/network/curl.js +25 -0
  136. package/dist/shell/builtins/commands/network/curl.js.map +1 -0
  137. package/dist/shell/builtins/commands/network/http.d.ts +27 -0
  138. package/dist/shell/builtins/commands/network/http.js +226 -0
  139. package/dist/shell/builtins/commands/network/http.js.map +1 -0
  140. package/dist/shell/builtins/commands/network/wget.d.ts +2 -0
  141. package/dist/shell/builtins/commands/network/wget.js +32 -0
  142. package/dist/shell/builtins/commands/network/wget.js.map +1 -0
  143. package/dist/shell/builtins/commands/network.d.ts +2 -0
  144. package/dist/shell/builtins/commands/network.js +9 -0
  145. package/dist/shell/builtins/commands/network.js.map +1 -0
  146. package/dist/shell/builtins/commands/process/bg.d.ts +2 -0
  147. package/dist/shell/builtins/commands/process/bg.js +10 -0
  148. package/dist/shell/builtins/commands/process/bg.js.map +1 -0
  149. package/dist/shell/builtins/commands/process/fg.d.ts +2 -0
  150. package/dist/shell/builtins/commands/process/fg.js +14 -0
  151. package/dist/shell/builtins/commands/process/fg.js.map +1 -0
  152. package/dist/shell/builtins/commands/process/jobs.d.ts +2 -0
  153. package/dist/shell/builtins/commands/process/jobs.js +8 -0
  154. package/dist/shell/builtins/commands/process/jobs.js.map +1 -0
  155. package/dist/shell/builtins/commands/process/jobspec.d.ts +4 -0
  156. package/dist/shell/builtins/commands/process/jobspec.js +20 -0
  157. package/dist/shell/builtins/commands/process/jobspec.js.map +1 -0
  158. package/dist/shell/builtins/commands/process/kill.d.ts +2 -0
  159. package/dist/shell/builtins/commands/process/kill.js +35 -0
  160. package/dist/shell/builtins/commands/process/kill.js.map +1 -0
  161. package/dist/shell/builtins/commands/process/ps.d.ts +2 -0
  162. package/dist/shell/builtins/commands/process/ps.js +6 -0
  163. package/dist/shell/builtins/commands/process/ps.js.map +1 -0
  164. package/dist/shell/builtins/commands/process/sleep.d.ts +2 -0
  165. package/dist/shell/builtins/commands/process/sleep.js +6 -0
  166. package/dist/shell/builtins/commands/process/sleep.js.map +1 -0
  167. package/dist/shell/builtins/commands/process/wait.d.ts +2 -0
  168. package/dist/shell/builtins/commands/process/wait.js +21 -0
  169. package/dist/shell/builtins/commands/process/wait.js.map +1 -0
  170. package/dist/shell/builtins/commands/process.d.ts +2 -0
  171. package/dist/shell/builtins/commands/process.js +19 -0
  172. package/dist/shell/builtins/commands/process.js.map +1 -0
  173. package/dist/shell/builtins/commands/system/command.d.ts +2 -0
  174. package/dist/shell/builtins/commands/system/command.js +42 -0
  175. package/dist/shell/builtins/commands/system/command.js.map +1 -0
  176. package/dist/shell/builtins/commands/system/date.d.ts +2 -0
  177. package/dist/shell/builtins/commands/system/date.js +121 -0
  178. package/dist/shell/builtins/commands/system/date.js.map +1 -0
  179. package/dist/shell/builtins/commands/system/env.d.ts +2 -0
  180. package/dist/shell/builtins/commands/system/env.js +84 -0
  181. package/dist/shell/builtins/commands/system/env.js.map +1 -0
  182. package/dist/shell/builtins/commands/system/export.d.ts +2 -0
  183. package/dist/shell/builtins/commands/system/export.js +18 -0
  184. package/dist/shell/builtins/commands/system/export.js.map +1 -0
  185. package/dist/shell/builtins/commands/system/false.d.ts +2 -0
  186. package/dist/shell/builtins/commands/system/false.js +4 -0
  187. package/dist/shell/builtins/commands/system/false.js.map +1 -0
  188. package/dist/shell/builtins/commands/system/help.d.ts +2 -0
  189. package/dist/shell/builtins/commands/system/help.js +38 -0
  190. package/dist/shell/builtins/commands/system/help.js.map +1 -0
  191. package/dist/shell/builtins/commands/system/hostname.d.ts +2 -0
  192. package/dist/shell/builtins/commands/system/hostname.js +6 -0
  193. package/dist/shell/builtins/commands/system/hostname.js.map +1 -0
  194. package/dist/shell/builtins/commands/system/id.d.ts +2 -0
  195. package/dist/shell/builtins/commands/system/id.js +55 -0
  196. package/dist/shell/builtins/commands/system/id.js.map +1 -0
  197. package/dist/shell/builtins/commands/system/printenv.d.ts +2 -0
  198. package/dist/shell/builtins/commands/system/printenv.js +22 -0
  199. package/dist/shell/builtins/commands/system/printenv.js.map +1 -0
  200. package/dist/shell/builtins/commands/system/read.d.ts +2 -0
  201. package/dist/shell/builtins/commands/system/read.js +75 -0
  202. package/dist/shell/builtins/commands/system/read.js.map +1 -0
  203. package/dist/shell/builtins/commands/system/resolve-command.d.ts +3 -0
  204. package/dist/shell/builtins/commands/system/resolve-command.js +34 -0
  205. package/dist/shell/builtins/commands/system/resolve-command.js.map +1 -0
  206. package/dist/shell/builtins/commands/system/set.d.ts +2 -0
  207. package/dist/shell/builtins/commands/system/set.js +49 -0
  208. package/dist/shell/builtins/commands/system/set.js.map +1 -0
  209. package/dist/shell/builtins/commands/system/sh.d.ts +2 -0
  210. package/dist/shell/builtins/commands/system/sh.js +55 -0
  211. package/dist/shell/builtins/commands/system/sh.js.map +1 -0
  212. package/dist/shell/builtins/commands/system/source.d.ts +2 -0
  213. package/dist/shell/builtins/commands/system/source.js +42 -0
  214. package/dist/shell/builtins/commands/system/source.js.map +1 -0
  215. package/dist/shell/builtins/commands/system/test-expression.d.ts +2 -0
  216. package/dist/shell/builtins/commands/system/test-expression.js +93 -0
  217. package/dist/shell/builtins/commands/system/test-expression.js.map +1 -0
  218. package/dist/shell/builtins/commands/system/test.d.ts +4 -0
  219. package/dist/shell/builtins/commands/system/test.js +19 -0
  220. package/dist/shell/builtins/commands/system/test.js.map +1 -0
  221. package/dist/shell/builtins/commands/system/true.d.ts +2 -0
  222. package/dist/shell/builtins/commands/system/true.js +2 -0
  223. package/dist/shell/builtins/commands/system/true.js.map +1 -0
  224. package/dist/shell/builtins/commands/system/type.d.ts +2 -0
  225. package/dist/shell/builtins/commands/system/type.js +77 -0
  226. package/dist/shell/builtins/commands/system/type.js.map +1 -0
  227. package/dist/shell/builtins/commands/system/uname.d.ts +2 -0
  228. package/dist/shell/builtins/commands/system/uname.js +39 -0
  229. package/dist/shell/builtins/commands/system/uname.js.map +1 -0
  230. package/dist/shell/builtins/commands/system/unset.d.ts +2 -0
  231. package/dist/shell/builtins/commands/system/unset.js +9 -0
  232. package/dist/shell/builtins/commands/system/unset.js.map +1 -0
  233. package/dist/shell/builtins/commands/system/which.d.ts +2 -0
  234. package/dist/shell/builtins/commands/system/which.js +38 -0
  235. package/dist/shell/builtins/commands/system/which.js.map +1 -0
  236. package/dist/shell/builtins/commands/system/whoami.d.ts +2 -0
  237. package/dist/shell/builtins/commands/system/whoami.js +6 -0
  238. package/dist/shell/builtins/commands/system/whoami.js.map +1 -0
  239. package/dist/shell/builtins/commands/system.d.ts +2 -0
  240. package/dist/shell/builtins/commands/system.js +49 -0
  241. package/dist/shell/builtins/commands/system.js.map +1 -0
  242. package/dist/shell/builtins/commands/text/awk.d.ts +2 -0
  243. package/dist/shell/builtins/commands/text/awk.js +8 -0
  244. package/dist/shell/builtins/commands/text/awk.js.map +1 -0
  245. package/dist/shell/builtins/commands/text/base64.d.ts +2 -0
  246. package/dist/shell/builtins/commands/text/base64.js +69 -0
  247. package/dist/shell/builtins/commands/text/base64.js.map +1 -0
  248. package/dist/shell/builtins/commands/text/cut.d.ts +2 -0
  249. package/dist/shell/builtins/commands/text/cut.js +35 -0
  250. package/dist/shell/builtins/commands/text/cut.js.map +1 -0
  251. package/dist/shell/builtins/commands/text/diff.d.ts +2 -0
  252. package/dist/shell/builtins/commands/text/diff.js +83 -0
  253. package/dist/shell/builtins/commands/text/diff.js.map +1 -0
  254. package/dist/shell/builtins/commands/text/echo.d.ts +2 -0
  255. package/dist/shell/builtins/commands/text/echo.js +6 -0
  256. package/dist/shell/builtins/commands/text/echo.js.map +1 -0
  257. package/dist/shell/builtins/commands/text/grep.d.ts +2 -0
  258. package/dist/shell/builtins/commands/text/grep.js +123 -0
  259. package/dist/shell/builtins/commands/text/grep.js.map +1 -0
  260. package/dist/shell/builtins/commands/text/head.d.ts +2 -0
  261. package/dist/shell/builtins/commands/text/head.js +8 -0
  262. package/dist/shell/builtins/commands/text/head.js.map +1 -0
  263. package/dist/shell/builtins/commands/text/jq.d.ts +2 -0
  264. package/dist/shell/builtins/commands/text/jq.js +239 -0
  265. package/dist/shell/builtins/commands/text/jq.js.map +1 -0
  266. package/dist/shell/builtins/commands/text/printf.d.ts +2 -0
  267. package/dist/shell/builtins/commands/text/printf.js +3 -0
  268. package/dist/shell/builtins/commands/text/printf.js.map +1 -0
  269. package/dist/shell/builtins/commands/text/sed.d.ts +2 -0
  270. package/dist/shell/builtins/commands/text/sed.js +21 -0
  271. package/dist/shell/builtins/commands/text/sed.js.map +1 -0
  272. package/dist/shell/builtins/commands/text/sha256sum.d.ts +2 -0
  273. package/dist/shell/builtins/commands/text/sha256sum.js +63 -0
  274. package/dist/shell/builtins/commands/text/sha256sum.js.map +1 -0
  275. package/dist/shell/builtins/commands/text/sort.d.ts +2 -0
  276. package/dist/shell/builtins/commands/text/sort.js +134 -0
  277. package/dist/shell/builtins/commands/text/sort.js.map +1 -0
  278. package/dist/shell/builtins/commands/text/tail.d.ts +2 -0
  279. package/dist/shell/builtins/commands/text/tail.js +10 -0
  280. package/dist/shell/builtins/commands/text/tail.js.map +1 -0
  281. package/dist/shell/builtins/commands/text/tee.d.ts +2 -0
  282. package/dist/shell/builtins/commands/text/tee.js +29 -0
  283. package/dist/shell/builtins/commands/text/tee.js.map +1 -0
  284. package/dist/shell/builtins/commands/text/tr.d.ts +2 -0
  285. package/dist/shell/builtins/commands/text/tr.js +3 -0
  286. package/dist/shell/builtins/commands/text/tr.js.map +1 -0
  287. package/dist/shell/builtins/commands/text/uniq.d.ts +2 -0
  288. package/dist/shell/builtins/commands/text/uniq.js +8 -0
  289. package/dist/shell/builtins/commands/text/uniq.js.map +1 -0
  290. package/dist/shell/builtins/commands/text/wc.d.ts +2 -0
  291. package/dist/shell/builtins/commands/text/wc.js +30 -0
  292. package/dist/shell/builtins/commands/text/wc.js.map +1 -0
  293. package/dist/shell/builtins/commands/text/xargs.d.ts +2 -0
  294. package/dist/shell/builtins/commands/text/xargs.js +138 -0
  295. package/dist/shell/builtins/commands/text/xargs.js.map +1 -0
  296. package/dist/shell/builtins/commands/text.d.ts +2 -0
  297. package/dist/shell/builtins/commands/text.js +41 -0
  298. package/dist/shell/builtins/commands/text.js.map +1 -0
  299. package/dist/shell/builtins/help-text.d.ts +69 -0
  300. package/dist/shell/builtins/help-text.js +381 -0
  301. package/dist/shell/builtins/help-text.js.map +1 -0
  302. package/dist/shell/builtins/path.d.ts +28 -0
  303. package/dist/shell/builtins/path.js +184 -0
  304. package/dist/shell/builtins/path.js.map +1 -0
  305. package/dist/shell/builtins/registry.d.ts +3 -0
  306. package/dist/shell/builtins/registry.js +75 -0
  307. package/dist/shell/builtins/registry.js.map +1 -0
  308. package/dist/shell/builtins/run.d.ts +4 -0
  309. package/dist/shell/builtins/run.js +29 -0
  310. package/dist/shell/builtins/run.js.map +1 -0
  311. package/dist/shell/builtins/runtime.d.ts +83 -0
  312. package/dist/shell/builtins/runtime.js +46 -0
  313. package/dist/shell/builtins/runtime.js.map +1 -0
  314. package/dist/shell/builtins/text.d.ts +90 -0
  315. package/dist/shell/builtins/text.js +970 -0
  316. package/dist/shell/builtins/text.js.map +1 -0
  317. package/dist/shell/control.d.ts +31 -0
  318. package/dist/shell/control.js +232 -0
  319. package/dist/shell/control.js.map +1 -0
  320. package/dist/shell/expansion.d.ts +30 -0
  321. package/dist/shell/expansion.js +514 -0
  322. package/dist/shell/expansion.js.map +1 -0
  323. package/dist/shell/functions.d.ts +10 -0
  324. package/dist/shell/functions.js +108 -0
  325. package/dist/shell/functions.js.map +1 -0
  326. package/dist/shell/runtime.d.ts +44 -0
  327. package/dist/shell/runtime.js +276 -0
  328. package/dist/shell/runtime.js.map +1 -0
  329. package/dist/shell/time.d.ts +1 -0
  330. package/dist/shell/time.js +68 -0
  331. package/dist/shell/time.js.map +1 -0
  332. package/dist/state-backend.d.ts +61 -0
  333. package/dist/state-backend.js +275 -0
  334. package/dist/state-backend.js.map +1 -0
  335. package/dist/state-node.d.ts +2 -0
  336. package/dist/state-node.js +266 -0
  337. package/dist/state-node.js.map +1 -0
  338. package/dist/types.d.ts +462 -0
  339. package/dist/types.js +2 -0
  340. package/dist/types.js.map +1 -0
  341. package/dist/utils.d.ts +5 -0
  342. package/dist/utils.js +117 -0
  343. package/dist/utils.js.map +1 -0
  344. package/dist/vbash.d.ts +40 -0
  345. package/dist/vbash.js +389 -0
  346. package/dist/vbash.js.map +1 -0
  347. package/dist/vfs.d.ts +64 -0
  348. package/dist/vfs.js +248 -0
  349. package/dist/vfs.js.map +1 -0
  350. package/dist/vprocess.d.ts +139 -0
  351. package/dist/vprocess.js +756 -0
  352. package/dist/vprocess.js.map +1 -0
  353. package/package.json +28 -0
@@ -0,0 +1,34 @@
1
+ import { K_BUILTINS } from "../../registry.js";
2
+ import { isExecutable } from "../../../../fs-mode.js";
3
+ export async function resolveCommand(ctx, name) {
4
+ if (K_BUILTINS.has(name))
5
+ return `/bin/${name}`;
6
+ if (ctx.functions.has(name))
7
+ return name;
8
+ if (ctx.commands.has(name))
9
+ return `/bin/${name}`;
10
+ return resolvePathExecutable(ctx, name);
11
+ }
12
+ export async function resolvePathExecutable(ctx, name) {
13
+ const candidates = name.includes('/')
14
+ ? [name]
15
+ : (ctx.env().PATH || '').split(':').filter(Boolean).map((dir) => `${dir.replace(/\/$/, '')}/${name}`);
16
+ for (const candidate of candidates) {
17
+ const kPath = ctx.shellPath(candidate);
18
+ try {
19
+ const stat = await ctx.fs.stat(kPath);
20
+ if (stat.type === 'file' && isExecutable(stat))
21
+ return ctx.fs.path(kPath);
22
+ if (stat.type === 'symlink') {
23
+ const target = await ctx.fs.stat(await ctx.fs.realpath(kPath));
24
+ if (target.type === 'file' && isExecutable(target))
25
+ return ctx.fs.path(kPath);
26
+ }
27
+ }
28
+ catch {
29
+ // Missing PATH entries are ignored just like Unix command lookup.
30
+ }
31
+ }
32
+ return undefined;
33
+ }
34
+ //# sourceMappingURL=resolve-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-command.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/resolve-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAGrD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAmB,EAAE,IAAY;IACpE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,IAAI,EAAE,CAAA;IAC/C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,IAAI,EAAE,CAAA;IACjD,OAAO,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAmB,EAAE,IAAY;IAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnC,CAAC,CAAC,CAAC,IAAI,CAAC;QACR,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IACvG,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC;gBAAE,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;oBAAE,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const setBuiltin: BuiltinHandler;
@@ -0,0 +1,49 @@
1
+ export const setBuiltin = async (ctx, args) => {
2
+ if (!args.length) {
3
+ const options = ctx.shellOptions();
4
+ return [
5
+ `errexit ${options.errexit ? 'on' : 'off'}`,
6
+ `nounset ${options.nounset ? 'on' : 'off'}`,
7
+ `pipefail ${options.pipefail ? 'on' : 'off'}`,
8
+ ].join('\n') + '\n';
9
+ }
10
+ await ctx.setShellOptions(parseSetArgs(args));
11
+ return '';
12
+ };
13
+ function parseSetArgs(args) {
14
+ const patch = {};
15
+ for (let index = 0; index < args.length; index += 1) {
16
+ const arg = args[index];
17
+ if (arg === '-o' || arg === '+o') {
18
+ const option = args[++index];
19
+ if (option === 'pipefail')
20
+ patch.pipefail = arg === '-o';
21
+ else if (option)
22
+ throw new Error(`unsupported set option: ${arg} ${option}`);
23
+ continue;
24
+ }
25
+ if (/^[-+][A-Za-z]+$/.test(arg)) {
26
+ const enabled = arg[0] === '-';
27
+ for (const flag of arg.slice(1)) {
28
+ if (flag === 'e')
29
+ patch.errexit = enabled;
30
+ else if (flag === 'u')
31
+ patch.nounset = enabled;
32
+ else if (flag === 'o') {
33
+ const option = args[++index];
34
+ if (option === 'pipefail')
35
+ patch.pipefail = enabled;
36
+ else if (option)
37
+ throw new Error(`unsupported set option: ${arg} ${option}`);
38
+ }
39
+ else {
40
+ throw new Error(`unsupported set flag: ${flag}`);
41
+ }
42
+ }
43
+ continue;
44
+ }
45
+ throw new Error(`unsupported set argument: ${arg}`);
46
+ }
47
+ return patch;
48
+ }
49
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/set.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAA;QAClC,OAAO;YACL,WAAW,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;YAC3C,WAAW,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;YAC3C,YAAY,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrB,CAAC;IACD,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,MAAM,KAAK,GAAiE,EAAE,CAAA;IAC9E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;YAC5B,IAAI,MAAM,KAAK,UAAU;gBAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,KAAK,IAAI,CAAA;iBACnD,IAAI,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,IAAI,MAAM,EAAE,CAAC,CAAA;YAC5E,SAAQ;QACV,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;YAC9B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,IAAI,IAAI,KAAK,GAAG;oBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;qBACpC,IAAI,IAAI,KAAK,GAAG;oBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;qBACzC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;oBAC5B,IAAI,MAAM,KAAK,UAAU;wBAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAA;yBAC9C,IAAI,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,IAAI,MAAM,EAAE,CAAC,CAAA;gBAC9E,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;gBAClD,CAAC;YACH,CAAC;YACD,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const shBuiltin: BuiltinHandler;
@@ -0,0 +1,55 @@
1
+ import { unsupportedOption } from "../../runtime.js";
2
+ export const shBuiltin = async (ctx, args, _stdin, signal) => {
3
+ const invocation = await parseShellInvocation(ctx, args);
4
+ const result = await ctx.exec(invocation.script, {
5
+ env: positionalShellEnv(invocation.name, invocation.args),
6
+ signal,
7
+ });
8
+ const code = typeof result.code === 'number' ? result.code : result.status === 'committed' ? 0 : 1;
9
+ return {
10
+ stdout: typeof result.stdout === 'string' ? result.stdout : '',
11
+ stderr: typeof result.stderr === 'string' ? result.stderr : '',
12
+ code,
13
+ };
14
+ };
15
+ async function parseShellInvocation(ctx, args) {
16
+ if (!args.length)
17
+ throw new Error('sh requires a script path or -c command');
18
+ if (args[0] === '-c') {
19
+ const script = args[1];
20
+ if (script === undefined)
21
+ throw new Error('sh -c requires a command string');
22
+ return {
23
+ script,
24
+ name: args[2] || 'sh',
25
+ args: args.slice(3),
26
+ };
27
+ }
28
+ if (args[0].startsWith('-'))
29
+ throw unsupportedOption('sh', args[0]);
30
+ const path = ctx.shellPath(args[0]);
31
+ return {
32
+ script: stripShebang(await ctx.fs.readText(path)),
33
+ name: ctx.fs.path(path),
34
+ args: args.slice(1),
35
+ };
36
+ }
37
+ function positionalShellEnv(name, args) {
38
+ const env = {
39
+ '0': name,
40
+ '#': String(args.length),
41
+ '*': args.join(' '),
42
+ '@': args.join(' '),
43
+ };
44
+ args.forEach((arg, index) => {
45
+ env[String(index + 1)] = arg;
46
+ });
47
+ return env;
48
+ }
49
+ function stripShebang(text) {
50
+ if (!text.startsWith('#!'))
51
+ return text;
52
+ const newline = text.indexOf('\n');
53
+ return newline < 0 ? '' : text.slice(newline + 1);
54
+ }
55
+ //# sourceMappingURL=sh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/sh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGpD,MAAM,CAAC,MAAM,SAAS,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAA0B,EAAE;IACnG,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QAC/C,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;QACzD,MAAM;KACP,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO;QACL,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC9D,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC9D,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAmB,EAAE,IAAc;IACrE,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC5E,OAAO;YACL,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;YACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACpB,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnE,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACpB,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAc;IACtD,MAAM,GAAG,GAA2B;QAClC,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACxB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,CAAA;IACD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;AACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const sourceBuiltin: BuiltinHandler;
@@ -0,0 +1,42 @@
1
+ export const sourceBuiltin = async (ctx, args, _stdin, signal) => {
2
+ const path = args[0];
3
+ if (!path)
4
+ throw new Error('source requires a file');
5
+ const sourcePath = ctx.shellPath(path);
6
+ const normalizedPath = ctx.fs.path(sourcePath);
7
+ const script = stripShebang(await ctx.fs.readText(sourcePath));
8
+ const result = await ctx.source(script, {
9
+ env: positionalShellEnv(normalizedPath, args.slice(1)),
10
+ signal,
11
+ });
12
+ const code = typeof result.code === 'number' ? result.code : result.status === 'committed' ? 0 : 1;
13
+ if (result.status === 'return') {
14
+ return {
15
+ stdout: typeof result.stdout === 'string' ? result.stdout : '',
16
+ stderr: typeof result.stderr === 'string' ? result.stderr : '',
17
+ code,
18
+ };
19
+ }
20
+ if (code !== 0)
21
+ throw new Error(String(result.stderr || result.reason || `source failed with code ${code}`));
22
+ return typeof result.stdout === 'string' ? result.stdout : '';
23
+ };
24
+ function positionalShellEnv(path, args) {
25
+ const env = {
26
+ '0': path,
27
+ '#': String(args.length),
28
+ '*': args.join(' '),
29
+ '@': args.join(' '),
30
+ };
31
+ args.forEach((arg, index) => {
32
+ env[String(index + 1)] = arg;
33
+ });
34
+ return env;
35
+ }
36
+ function stripShebang(text) {
37
+ if (!text.startsWith('#!'))
38
+ return text;
39
+ const newline = text.indexOf('\n');
40
+ return newline < 0 ? '' : text.slice(newline + 1);
41
+ }
42
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/source.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACpB,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,cAAc,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QACtC,GAAG,EAAE,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM;KACP,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClG,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACL,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC9D,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC9D,IAAI;SACL,CAAA;IACH,CAAC;IACD,IAAI,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,2BAA2B,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5G,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;AAC/D,CAAC,CAAA;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,IAAc;IACtD,MAAM,GAAG,GAA2B;QAClC,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACxB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,CAAA;IACD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;AACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinRuntime } from '../../runtime.js';
2
+ export declare function evaluateTest(ctx: BuiltinRuntime, args: string[]): Promise<boolean>;
@@ -0,0 +1,93 @@
1
+ import { isExecutable as isExecutableMode } from "../../../../fs-mode.js";
2
+ export async function evaluateTest(ctx, args) {
3
+ if (!args.length)
4
+ return false;
5
+ if (args[0] === '!')
6
+ return !await evaluateTest(ctx, args.slice(1));
7
+ const orIndex = args.indexOf('-o');
8
+ if (orIndex > 0)
9
+ return (await evaluateTest(ctx, args.slice(0, orIndex))) || (await evaluateTest(ctx, args.slice(orIndex + 1)));
10
+ const andIndex = args.indexOf('-a');
11
+ if (andIndex > 0)
12
+ return (await evaluateTest(ctx, args.slice(0, andIndex))) && (await evaluateTest(ctx, args.slice(andIndex + 1)));
13
+ if (args.length === 1)
14
+ return args[0].length > 0;
15
+ if (args.length === 2) {
16
+ const [op, value] = args;
17
+ if (op === '-n')
18
+ return value.length > 0;
19
+ if (op === '-z')
20
+ return value.length === 0;
21
+ if (op === '-e')
22
+ return ctx.fs.exists(ctx.shellPath(value));
23
+ if (op === '-f')
24
+ return isStatType(ctx, value, 'file');
25
+ if (op === '-d')
26
+ return isStatType(ctx, value, 'dir');
27
+ if (op === '-L' || op === '-h')
28
+ return isStatType(ctx, value, 'symlink');
29
+ if (op === '-s')
30
+ return await fileSize(ctx, value) > 0;
31
+ if (op === '-r' || op === '-w')
32
+ return ctx.fs.exists(ctx.shellPath(value));
33
+ if (op === '-x')
34
+ return isExecutable(ctx, value);
35
+ }
36
+ if (args.length === 3) {
37
+ const [left, op, right] = args;
38
+ if (op === '=' || op === '==')
39
+ return left === right;
40
+ if (op === '!=')
41
+ return left !== right;
42
+ if (op === '-eq')
43
+ return numericTest(left, right, (a, b) => a === b);
44
+ if (op === '-ne')
45
+ return numericTest(left, right, (a, b) => a !== b);
46
+ if (op === '-lt')
47
+ return numericTest(left, right, (a, b) => a < b);
48
+ if (op === '-le')
49
+ return numericTest(left, right, (a, b) => a <= b);
50
+ if (op === '-gt')
51
+ return numericTest(left, right, (a, b) => a > b);
52
+ if (op === '-ge')
53
+ return numericTest(left, right, (a, b) => a >= b);
54
+ }
55
+ throw new Error(`unsupported test expression: ${args.join(' ')}`);
56
+ }
57
+ async function fileSize(ctx, path) {
58
+ try {
59
+ return (await ctx.fs.stat(ctx.shellPath(path))).size ?? 0;
60
+ }
61
+ catch {
62
+ return 0;
63
+ }
64
+ }
65
+ async function isExecutable(ctx, path) {
66
+ try {
67
+ const stat = await ctx.fs.stat(ctx.shellPath(path));
68
+ if (stat.type === 'symlink') {
69
+ const target = await ctx.fs.stat(await ctx.fs.realpath(ctx.shellPath(path)));
70
+ return isExecutableMode(target);
71
+ }
72
+ return isExecutableMode(stat);
73
+ }
74
+ catch {
75
+ return false;
76
+ }
77
+ }
78
+ function numericTest(left, right, compare) {
79
+ const leftNumber = Number.parseInt(left, 10);
80
+ const rightNumber = Number.parseInt(right, 10);
81
+ if (!Number.isFinite(leftNumber) || !Number.isFinite(rightNumber))
82
+ return false;
83
+ return compare(leftNumber, rightNumber);
84
+ }
85
+ async function isStatType(ctx, path, type) {
86
+ try {
87
+ return (await ctx.fs.stat(ctx.shellPath(path))).type === type;
88
+ }
89
+ catch {
90
+ return false;
91
+ }
92
+ }
93
+ //# sourceMappingURL=test-expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-expression.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/test-expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const testBuiltin: BuiltinHandler;
3
+ export declare const testBracketBuiltin: BuiltinHandler;
4
+ export declare const testDoubleBracketBuiltin: BuiltinHandler;
@@ -0,0 +1,19 @@
1
+ import { evaluateTest } from "./test-expression.js";
2
+ export const testBuiltin = async (ctx, args) => {
3
+ if (!await evaluateTest(ctx, args))
4
+ throw new Error('test');
5
+ return '';
6
+ };
7
+ export const testBracketBuiltin = async (ctx, args) => {
8
+ const normalized = args.at(-1) === ']' ? args.slice(0, -1) : args;
9
+ if (!await evaluateTest(ctx, normalized))
10
+ throw new Error('test');
11
+ return '';
12
+ };
13
+ export const testDoubleBracketBuiltin = async (ctx, args) => {
14
+ const normalized = args.at(-1) === ']]' ? args.slice(0, -1) : args;
15
+ if (!await evaluateTest(ctx, normalized))
16
+ throw new Error('test');
17
+ return '';
18
+ };
19
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,MAAM,CAAC,MAAM,WAAW,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC7D,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3D,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACjE,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IACjE,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClE,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IACjE,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const trueBuiltin: BuiltinHandler;
@@ -0,0 +1,2 @@
1
+ export const trueBuiltin = () => '';
2
+ //# sourceMappingURL=true.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"true.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/true.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAmB,GAAG,EAAE,CAAC,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const typeBuiltin: BuiltinHandler;
@@ -0,0 +1,77 @@
1
+ import { K_BUILTINS } from "../../registry.js";
2
+ import { resolvePathExecutable } from "./resolve-command.js";
3
+ export const typeBuiltin = async (ctx, args) => {
4
+ const { options, names } = parseTypeArgs(args);
5
+ if (!names.length)
6
+ throw new Error('type requires at least one command name');
7
+ const rows = [];
8
+ const missing = [];
9
+ for (const name of names) {
10
+ const entries = await describeCommand(ctx, name);
11
+ if (!entries.length) {
12
+ missing.push(name);
13
+ continue;
14
+ }
15
+ const selected = options.all ? entries : entries.slice(0, 1);
16
+ if (options.kindOnly)
17
+ rows.push(selected[0].kind);
18
+ else if (options.pathOnly)
19
+ rows.push(...selected.filter((entry) => entry.path).map((entry) => String(entry.path)));
20
+ else
21
+ rows.push(...selected.map((entry) => formatTypeEntry(name, entry)));
22
+ }
23
+ return {
24
+ stdout: rows.length ? `${rows.join('\n')}\n` : '',
25
+ stderr: missing.length ? `${missing.map((name) => `type: ${name}: not found`).join('\n')}\n` : '',
26
+ code: missing.length ? 1 : 0,
27
+ };
28
+ };
29
+ function parseTypeArgs(args) {
30
+ const options = { all: false, pathOnly: false, kindOnly: false };
31
+ const names = [];
32
+ for (let index = 0; index < args.length; index += 1) {
33
+ const arg = args[index];
34
+ if (arg === '--') {
35
+ names.push(...args.slice(index + 1));
36
+ break;
37
+ }
38
+ if (!arg.startsWith('-') || arg === '-') {
39
+ names.push(arg);
40
+ continue;
41
+ }
42
+ for (const flag of arg.slice(1)) {
43
+ if (flag === 'a')
44
+ options.all = true;
45
+ else if (flag === 'p')
46
+ options.pathOnly = true;
47
+ else if (flag === 't')
48
+ options.kindOnly = true;
49
+ else
50
+ throw new Error(`type: unsupported option: -${flag}`);
51
+ }
52
+ }
53
+ return { options, names };
54
+ }
55
+ async function describeCommand(ctx, name) {
56
+ const entries = [];
57
+ if (K_BUILTINS.has(name))
58
+ entries.push({ kind: 'builtin' });
59
+ if (ctx.functions.has(name))
60
+ entries.push({ kind: 'function' });
61
+ if (ctx.commands.has(name))
62
+ entries.push({ kind: 'command' });
63
+ const path = await resolvePathExecutable(ctx, name);
64
+ if (path)
65
+ entries.push({ kind: 'file', path });
66
+ return entries;
67
+ }
68
+ function formatTypeEntry(name, entry) {
69
+ if (entry.kind === 'builtin')
70
+ return `${name} is a K shell builtin`;
71
+ if (entry.kind === 'function')
72
+ return `${name} is a shell function`;
73
+ if (entry.kind === 'command')
74
+ return `${name} is a K image command`;
75
+ return `${name} is ${entry.path}`;
76
+ }
77
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const unameBuiltin: BuiltinHandler;
@@ -0,0 +1,39 @@
1
+ const FIELDS = {
2
+ s: 'K',
3
+ n: 'komputer',
4
+ r: '0.1.0',
5
+ v: 'unix-like agent environment',
6
+ m: 'k-virtual',
7
+ p: 'k-virtual',
8
+ i: 'k-virtual',
9
+ o: 'Komputer',
10
+ };
11
+ export const unameBuiltin = (_ctx, args) => {
12
+ const fields = parseUnameArgs(args);
13
+ return `${fields.map((field) => FIELDS[field]).join(' ')}\n`;
14
+ };
15
+ function parseUnameArgs(args) {
16
+ if (!args.length)
17
+ return ['s'];
18
+ const fields = [];
19
+ for (const arg of args) {
20
+ if (arg === '--')
21
+ continue;
22
+ if (!arg.startsWith('-') || arg === '-')
23
+ throw new Error(`uname: extra operand: ${arg}`);
24
+ if (arg === '--all')
25
+ return ['s', 'n', 'r', 'v', 'm', 'p', 'i', 'o'];
26
+ if (arg.startsWith('--'))
27
+ throw new Error(`uname: unsupported option: ${arg}`);
28
+ for (const flag of arg.slice(1)) {
29
+ if (flag === 'a')
30
+ return ['s', 'n', 'r', 'v', 'm', 'p', 'i', 'o'];
31
+ if (flag === 's' || flag === 'n' || flag === 'r' || flag === 'v' || flag === 'm' || flag === 'p' || flag === 'i' || flag === 'o')
32
+ fields.push(flag);
33
+ else
34
+ throw new Error(`uname: unsupported option: -${flag}`);
35
+ }
36
+ }
37
+ return fields.length ? fields : ['s'];
38
+ }
39
+ //# sourceMappingURL=uname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uname.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/uname.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG;IACb,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,6BAA6B;IAChC,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,UAAU;CACL,CAAA;AAEV,MAAM,CAAC,MAAM,YAAY,GAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;AAC9D,CAAC,CAAA;AAID,SAAS,cAAc,CAAC,IAAc;IACpC,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,IAAI;YAAE,SAAQ;QAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAA;QACxF,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACpE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAA;QAC9E,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YACjE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;gBAC9I,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const unsetBuiltin: BuiltinHandler;
@@ -0,0 +1,9 @@
1
+ export const unsetBuiltin = async (ctx, args) => {
2
+ for (const name of args) {
3
+ if (name.startsWith('-'))
4
+ throw new Error(`unset: unsupported option: ${name}`);
5
+ await ctx.unsetEnv(name);
6
+ }
7
+ return '';
8
+ };
9
+ //# sourceMappingURL=unset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unset.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/unset.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC9D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAA;QAC/E,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const whichBuiltin: BuiltinHandler;
@@ -0,0 +1,38 @@
1
+ import { resolveCommand } from "./resolve-command.js";
2
+ export const whichBuiltin = async (ctx, args) => {
3
+ const names = parseWhichArgs(args);
4
+ if (!names.length)
5
+ throw new Error('which requires at least one command');
6
+ const rows = [];
7
+ let missing = false;
8
+ for (const name of names) {
9
+ const resolved = await resolveCommand(ctx, name);
10
+ if (resolved)
11
+ rows.push(resolved);
12
+ else
13
+ missing = true;
14
+ }
15
+ return {
16
+ stdout: rows.length ? `${rows.join('\n')}\n` : '',
17
+ code: missing ? 1 : 0,
18
+ };
19
+ };
20
+ function parseWhichArgs(args) {
21
+ const names = [];
22
+ let operands = false;
23
+ for (const arg of args) {
24
+ if (operands) {
25
+ names.push(arg);
26
+ continue;
27
+ }
28
+ if (arg === '--') {
29
+ operands = true;
30
+ continue;
31
+ }
32
+ if (arg.startsWith('-'))
33
+ throw new Error(`which: unsupported option: ${arg}`);
34
+ names.push(arg);
35
+ }
36
+ return names;
37
+ }
38
+ //# sourceMappingURL=which.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"which.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/which.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,MAAM,CAAC,MAAM,YAAY,GAAmB,KAAK,EAAE,GAAG,EAAE,IAAI,EAA0B,EAAE;IACtF,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACzE,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;;YAC5B,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IACD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACjD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACtB,CAAA;AACH,CAAC,CAAA;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACf,SAAQ;QACV,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,QAAQ,GAAG,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAA;QAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinHandler } from '../../runtime.js';
2
+ export declare const whoamiBuiltin: BuiltinHandler;
@@ -0,0 +1,6 @@
1
+ export const whoamiBuiltin = (ctx, args) => {
2
+ if (args.length)
3
+ throw new Error(`whoami: extra operand: ${args[0]}`);
4
+ return `${ctx.agentName}\n`;
5
+ };
6
+ //# sourceMappingURL=whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../../../../../../packages/komputer/src/shell/builtins/commands/system/whoami.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACzD,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACrE,OAAO,GAAG,GAAG,CAAC,SAAS,IAAI,CAAA;AAC7B,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { BuiltinEntry } from '../runtime.js';
2
+ export declare const systemBuiltins: Record<string, BuiltinEntry>;