seatmesh 1.1.4 → 1.2.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 (320) hide show
  1. package/bin/seatmesh +20 -0
  2. package/bin/sm +3 -0
  3. package/dist/commands/ack-cli.d.ts.map +1 -1
  4. package/dist/commands/ack-cli.js +32 -14
  5. package/dist/commands/ack-cli.js.map +1 -1
  6. package/dist/commands/ack-reply.d.ts +29 -0
  7. package/dist/commands/ack-reply.d.ts.map +1 -0
  8. package/dist/commands/ack-reply.js +110 -0
  9. package/dist/commands/ack-reply.js.map +1 -0
  10. package/dist/commands/ack-reply.test.d.ts +2 -0
  11. package/dist/commands/ack-reply.test.d.ts.map +1 -0
  12. package/dist/commands/ack-reply.test.js +37 -0
  13. package/dist/commands/ack-reply.test.js.map +1 -0
  14. package/dist/commands/agent-shorthand.d.ts +27 -0
  15. package/dist/commands/agent-shorthand.d.ts.map +1 -0
  16. package/dist/commands/agent-shorthand.js +57 -0
  17. package/dist/commands/agent-shorthand.js.map +1 -0
  18. package/dist/commands/agent-shorthand.test.d.ts +2 -0
  19. package/dist/commands/agent-shorthand.test.d.ts.map +1 -0
  20. package/dist/commands/agent-shorthand.test.js +36 -0
  21. package/dist/commands/agent-shorthand.test.js.map +1 -0
  22. package/dist/commands/checkback-cli.d.ts.map +1 -1
  23. package/dist/commands/checkback-cli.js +18 -3
  24. package/dist/commands/checkback-cli.js.map +1 -1
  25. package/dist/commands/completion.d.ts +20 -0
  26. package/dist/commands/completion.d.ts.map +1 -0
  27. package/dist/commands/completion.js +416 -0
  28. package/dist/commands/completion.js.map +1 -0
  29. package/dist/commands/completion.test.d.ts +2 -0
  30. package/dist/commands/completion.test.d.ts.map +1 -0
  31. package/dist/commands/completion.test.js +40 -0
  32. package/dist/commands/completion.test.js.map +1 -0
  33. package/dist/commands/config-cli.d.ts +9 -0
  34. package/dist/commands/config-cli.d.ts.map +1 -0
  35. package/dist/commands/config-cli.js +74 -0
  36. package/dist/commands/config-cli.js.map +1 -0
  37. package/dist/commands/gen-commands-md.d.ts +3 -0
  38. package/dist/commands/gen-commands-md.d.ts.map +1 -0
  39. package/dist/commands/gen-commands-md.js +50 -0
  40. package/dist/commands/gen-commands-md.js.map +1 -0
  41. package/dist/commands/help-human-surface.test.d.ts +2 -0
  42. package/dist/commands/help-human-surface.test.d.ts.map +1 -0
  43. package/dist/commands/help-human-surface.test.js +32 -0
  44. package/dist/commands/help-human-surface.test.js.map +1 -0
  45. package/dist/commands/help-text.d.ts +25 -0
  46. package/dist/commands/help-text.d.ts.map +1 -0
  47. package/dist/commands/help-text.js +466 -0
  48. package/dist/commands/help-text.js.map +1 -0
  49. package/dist/commands/help-text.test.d.ts +2 -0
  50. package/dist/commands/help-text.test.d.ts.map +1 -0
  51. package/dist/commands/help-text.test.js +62 -0
  52. package/dist/commands/help-text.test.js.map +1 -0
  53. package/dist/commands/notify-cli.d.ts.map +1 -1
  54. package/dist/commands/notify-cli.js +16 -7
  55. package/dist/commands/notify-cli.js.map +1 -1
  56. package/dist/commands/notify-cli.test.d.ts +2 -0
  57. package/dist/commands/notify-cli.test.d.ts.map +1 -0
  58. package/dist/commands/notify-cli.test.js +33 -0
  59. package/dist/commands/notify-cli.test.js.map +1 -0
  60. package/dist/commands/room-cli.d.ts.map +1 -1
  61. package/dist/commands/room-cli.js +2 -1
  62. package/dist/commands/room-cli.js.map +1 -1
  63. package/dist/commands/seat-cli.d.ts.map +1 -1
  64. package/dist/commands/seat-cli.js +115 -7
  65. package/dist/commands/seat-cli.js.map +1 -1
  66. package/dist/commands/sessions-cli.d.ts +15 -1
  67. package/dist/commands/sessions-cli.d.ts.map +1 -1
  68. package/dist/commands/sessions-cli.js +90 -5
  69. package/dist/commands/sessions-cli.js.map +1 -1
  70. package/dist/commands/sessions-cli.test.d.ts +2 -0
  71. package/dist/commands/sessions-cli.test.d.ts.map +1 -0
  72. package/dist/commands/sessions-cli.test.js +21 -0
  73. package/dist/commands/sessions-cli.test.js.map +1 -0
  74. package/dist/commands/target-cli.js +1 -1
  75. package/dist/commands/todo-give.test.d.ts +2 -0
  76. package/dist/commands/todo-give.test.d.ts.map +1 -0
  77. package/dist/commands/todo-give.test.js +20 -0
  78. package/dist/commands/todo-give.test.js.map +1 -0
  79. package/dist/commands/tp-cli.d.ts +3 -0
  80. package/dist/commands/tp-cli.d.ts.map +1 -0
  81. package/dist/commands/tp-cli.js +95 -0
  82. package/dist/commands/tp-cli.js.map +1 -0
  83. package/dist/commands/web-cli.d.ts +11 -0
  84. package/dist/commands/web-cli.d.ts.map +1 -0
  85. package/dist/commands/web-cli.js +187 -0
  86. package/dist/commands/web-cli.js.map +1 -0
  87. package/dist/main.js +450 -34
  88. package/dist/main.js.map +1 -1
  89. package/dist/setup/install.d.ts +17 -0
  90. package/dist/setup/install.d.ts.map +1 -0
  91. package/dist/setup/install.js +69 -0
  92. package/dist/setup/install.js.map +1 -0
  93. package/dist/setup/install.test.d.ts +2 -0
  94. package/dist/setup/install.test.d.ts.map +1 -0
  95. package/dist/setup/install.test.js +32 -0
  96. package/dist/setup/install.test.js.map +1 -0
  97. package/dist/setup/merge-mesh-config.d.ts +13 -0
  98. package/dist/setup/merge-mesh-config.d.ts.map +1 -0
  99. package/dist/setup/merge-mesh-config.js +112 -0
  100. package/dist/setup/merge-mesh-config.js.map +1 -0
  101. package/dist/setup/merge-mesh-config.test.d.ts +2 -0
  102. package/dist/setup/merge-mesh-config.test.d.ts.map +1 -0
  103. package/dist/setup/merge-mesh-config.test.js +96 -0
  104. package/dist/setup/merge-mesh-config.test.js.map +1 -0
  105. package/dist/setup/session-health.d.ts +33 -0
  106. package/dist/setup/session-health.d.ts.map +1 -0
  107. package/dist/setup/session-health.js +418 -0
  108. package/dist/setup/session-health.js.map +1 -0
  109. package/dist/setup/session-health.test.d.ts +2 -0
  110. package/dist/setup/session-health.test.d.ts.map +1 -0
  111. package/dist/setup/session-health.test.js +46 -0
  112. package/dist/setup/session-health.test.js.map +1 -0
  113. package/dist/setup/update.d.ts +2 -0
  114. package/dist/setup/update.d.ts.map +1 -1
  115. package/dist/setup/update.js +27 -2
  116. package/dist/setup/update.js.map +1 -1
  117. package/dist/setup/update.test.js +45 -0
  118. package/dist/setup/update.test.js.map +1 -1
  119. package/package.json +7 -6
  120. package/templates/docs/COMMANDS.md +1078 -0
  121. package/templates/docs/ONE-PATH.md +136 -0
  122. package/templates/docs/RELEASE.md +32 -0
  123. package/templates/docs/cli/README.md +96 -0
  124. package/templates/docs/cli/ack.md +12 -0
  125. package/templates/docs/cli/ackmsg.md +12 -0
  126. package/templates/docs/cli/agent.md +13 -0
  127. package/templates/docs/cli/apply.md +11 -0
  128. package/templates/docs/cli/ask.md +12 -0
  129. package/templates/docs/cli/assign.md +11 -0
  130. package/templates/docs/cli/auto.md +10 -0
  131. package/templates/docs/cli/balance.md +10 -0
  132. package/templates/docs/cli/base.md +10 -0
  133. package/templates/docs/cli/cb.md +12 -0
  134. package/templates/docs/cli/chat.md +12 -0
  135. package/templates/docs/cli/cold-start.md +11 -0
  136. package/templates/docs/cli/completion.md +11 -0
  137. package/templates/docs/cli/config.md +15 -0
  138. package/templates/docs/cli/contexts.md +12 -0
  139. package/templates/docs/cli/continue.md +10 -0
  140. package/templates/docs/cli/contract.md +25 -0
  141. package/templates/docs/cli/flush.md +10 -0
  142. package/templates/docs/cli/forum.md +12 -0
  143. package/templates/docs/cli/func.md +10 -0
  144. package/templates/docs/cli/golf.md +10 -0
  145. package/templates/docs/cli/help.md +13 -0
  146. package/templates/docs/cli/hub.md +14 -0
  147. package/templates/docs/cli/human.md +35 -0
  148. package/templates/docs/cli/inbox.md +11 -0
  149. package/templates/docs/cli/index.md +10 -0
  150. package/templates/docs/cli/init.md +10 -0
  151. package/templates/docs/cli/kind.md +11 -0
  152. package/templates/docs/cli/labels.md +10 -0
  153. package/templates/docs/cli/launch.md +12 -0
  154. package/templates/docs/cli/layout.md +11 -0
  155. package/templates/docs/cli/limit.md +11 -0
  156. package/templates/docs/cli/migrate-runtime.md +10 -0
  157. package/templates/docs/cli/mini.md +11 -0
  158. package/templates/docs/cli/night.md +10 -0
  159. package/templates/docs/cli/notify.md +28 -0
  160. package/templates/docs/cli/oc-proxy.md +47 -0
  161. package/templates/docs/cli/ops.md +10 -0
  162. package/templates/docs/cli/pane-meta.md +10 -0
  163. package/templates/docs/cli/peek.md +10 -0
  164. package/templates/docs/cli/peer.md +14 -0
  165. package/templates/docs/cli/ppa.md +12 -0
  166. package/templates/docs/cli/preview.md +16 -0
  167. package/templates/docs/cli/profile.md +10 -0
  168. package/templates/docs/cli/prompt.md +14 -0
  169. package/templates/docs/cli/providers.md +10 -0
  170. package/templates/docs/cli/proxy.md +10 -0
  171. package/templates/docs/cli/read-history.md +12 -0
  172. package/templates/docs/cli/realign.md +10 -0
  173. package/templates/docs/cli/reload.md +10 -0
  174. package/templates/docs/cli/remind.md +10 -0
  175. package/templates/docs/cli/remote.md +19 -0
  176. package/templates/docs/cli/reply.md +11 -0
  177. package/templates/docs/cli/report.md +10 -0
  178. package/templates/docs/cli/roles.md +10 -0
  179. package/templates/docs/cli/room.md +15 -0
  180. package/templates/docs/cli/run.md +12 -0
  181. package/templates/docs/cli/save.md +10 -0
  182. package/templates/docs/cli/seat.md +11 -0
  183. package/templates/docs/cli/secretary.md +12 -0
  184. package/templates/docs/cli/session.md +10 -0
  185. package/templates/docs/cli/sessions.md +12 -0
  186. package/templates/docs/cli/set.md +10 -0
  187. package/templates/docs/cli/slot-advice.md +10 -0
  188. package/templates/docs/cli/stack.md +11 -0
  189. package/templates/docs/cli/start.md +10 -0
  190. package/templates/docs/cli/status.md +10 -0
  191. package/templates/docs/cli/swap.md +10 -0
  192. package/templates/docs/cli/switch.md +14 -0
  193. package/templates/docs/cli/tag.md +10 -0
  194. package/templates/docs/cli/target.md +12 -0
  195. package/templates/docs/cli/test.md +10 -0
  196. package/templates/docs/cli/title.md +10 -0
  197. package/templates/docs/cli/to-master.md +10 -0
  198. package/templates/docs/cli/to-mini.md +10 -0
  199. package/templates/docs/cli/to-slot.md +10 -0
  200. package/templates/docs/cli/todo.md +16 -0
  201. package/templates/docs/cli/update.md +23 -0
  202. package/templates/docs/cli/verify.md +10 -0
  203. package/templates/docs/cli/version.md +10 -0
  204. package/templates/docs/cli/whoami.md +12 -0
  205. package/templates/init/AGENTS.md +88 -26
  206. package/templates/init/contracts/_vendor/balance.yaml +11 -0
  207. package/templates/init/contracts/_vendor/supervise.yaml +14 -0
  208. package/templates/init/mesh.config.yaml +40 -0
  209. package/templates/init/roles/common.yaml +6 -2
  210. package/templates/init/roles/docs/common.md +3 -1
  211. package/templates/init/roles/docs/manager.md +4 -0
  212. package/templates/init/roles/docs/secretary.md +2 -0
  213. package/templates/init/roles/docs/worker.md +3 -0
  214. package/templates/init/roles/manager.yaml +2 -0
  215. package/templates/init/roles/secretary.yaml +3 -0
  216. package/templates/init/roles/worker.yaml +3 -1
  217. package/dist/agent-context-init.d.ts +0 -5
  218. package/dist/agent-context-init.d.ts.map +0 -1
  219. package/dist/agent-context-init.js +0 -41
  220. package/dist/agent-context-init.js.map +0 -1
  221. package/dist/banner.d.ts +0 -9
  222. package/dist/banner.d.ts.map +0 -1
  223. package/dist/banner.js +0 -113
  224. package/dist/banner.js.map +0 -1
  225. package/dist/chat-cli.d.ts +0 -4
  226. package/dist/chat-cli.d.ts.map +0 -1
  227. package/dist/chat-cli.js +0 -162
  228. package/dist/chat-cli.js.map +0 -1
  229. package/dist/checkback-cli.d.ts +0 -4
  230. package/dist/checkback-cli.d.ts.map +0 -1
  231. package/dist/checkback-cli.js +0 -203
  232. package/dist/checkback-cli.js.map +0 -1
  233. package/dist/contract-lock-cli.d.ts +0 -4
  234. package/dist/contract-lock-cli.d.ts.map +0 -1
  235. package/dist/contract-lock-cli.js +0 -180
  236. package/dist/contract-lock-cli.js.map +0 -1
  237. package/dist/coord-cli.d.ts +0 -3
  238. package/dist/coord-cli.d.ts.map +0 -1
  239. package/dist/coord-cli.js +0 -15
  240. package/dist/coord-cli.js.map +0 -1
  241. package/dist/discovery-report.d.ts +0 -15
  242. package/dist/discovery-report.d.ts.map +0 -1
  243. package/dist/discovery-report.js +0 -42
  244. package/dist/discovery-report.js.map +0 -1
  245. package/dist/init.d.ts +0 -23
  246. package/dist/init.d.ts.map +0 -1
  247. package/dist/init.js +0 -74
  248. package/dist/init.js.map +0 -1
  249. package/dist/init.test.d.ts +0 -2
  250. package/dist/init.test.d.ts.map +0 -1
  251. package/dist/init.test.js +0 -37
  252. package/dist/init.test.js.map +0 -1
  253. package/dist/logo-art.d.ts +0 -4
  254. package/dist/logo-art.d.ts.map +0 -1
  255. package/dist/logo-art.js +0 -134
  256. package/dist/logo-art.js.map +0 -1
  257. package/dist/logo-cli.d.ts +0 -3
  258. package/dist/logo-cli.d.ts.map +0 -1
  259. package/dist/logo-cli.js +0 -30
  260. package/dist/logo-cli.js.map +0 -1
  261. package/dist/logo-color.d.ts +0 -16
  262. package/dist/logo-color.d.ts.map +0 -1
  263. package/dist/logo-color.js +0 -65
  264. package/dist/logo-color.js.map +0 -1
  265. package/dist/migrate-runtime.d.ts +0 -15
  266. package/dist/migrate-runtime.d.ts.map +0 -1
  267. package/dist/migrate-runtime.js +0 -67
  268. package/dist/migrate-runtime.js.map +0 -1
  269. package/dist/notify-cli.d.ts +0 -4
  270. package/dist/notify-cli.d.ts.map +0 -1
  271. package/dist/notify-cli.js +0 -45
  272. package/dist/notify-cli.js.map +0 -1
  273. package/dist/preview-cli.d.ts +0 -4
  274. package/dist/preview-cli.d.ts.map +0 -1
  275. package/dist/preview-cli.js +0 -39
  276. package/dist/preview-cli.js.map +0 -1
  277. package/dist/program-help.d.ts +0 -3
  278. package/dist/program-help.d.ts.map +0 -1
  279. package/dist/program-help.js +0 -23
  280. package/dist/program-help.js.map +0 -1
  281. package/dist/room-cli.d.ts +0 -5
  282. package/dist/room-cli.d.ts.map +0 -1
  283. package/dist/room-cli.js +0 -316
  284. package/dist/room-cli.js.map +0 -1
  285. package/dist/room.d.ts +0 -4
  286. package/dist/room.d.ts.map +0 -1
  287. package/dist/room.js +0 -149
  288. package/dist/room.js.map +0 -1
  289. package/dist/seat-cli.d.ts +0 -3
  290. package/dist/seat-cli.d.ts.map +0 -1
  291. package/dist/seat-cli.js +0 -73
  292. package/dist/seat-cli.js.map +0 -1
  293. package/dist/sessions-cli.d.ts +0 -11
  294. package/dist/sessions-cli.d.ts.map +0 -1
  295. package/dist/sessions-cli.js +0 -178
  296. package/dist/sessions-cli.js.map +0 -1
  297. package/dist/status-report.d.ts +0 -22
  298. package/dist/status-report.d.ts.map +0 -1
  299. package/dist/status-report.js +0 -231
  300. package/dist/status-report.js.map +0 -1
  301. package/dist/update.d.ts +0 -15
  302. package/dist/update.d.ts.map +0 -1
  303. package/dist/update.js +0 -89
  304. package/dist/update.js.map +0 -1
  305. package/dist/version-nudge.d.ts +0 -20
  306. package/dist/version-nudge.d.ts.map +0 -1
  307. package/dist/version-nudge.js +0 -107
  308. package/dist/version-nudge.js.map +0 -1
  309. package/dist/version-nudge.test.d.ts +0 -2
  310. package/dist/version-nudge.test.d.ts.map +0 -1
  311. package/dist/version-nudge.test.js +0 -16
  312. package/dist/version-nudge.test.js.map +0 -1
  313. package/dist/watch-daemon.d.ts +0 -2
  314. package/dist/watch-daemon.d.ts.map +0 -1
  315. package/dist/watch-daemon.js +0 -41
  316. package/dist/watch-daemon.js.map +0 -1
  317. package/dist/work-daemon.d.ts +0 -2
  318. package/dist/work-daemon.d.ts.map +0 -1
  319. package/dist/work-daemon.js +0 -42
  320. package/dist/work-daemon.js.map +0 -1
@@ -0,0 +1,20 @@
1
+ /** Top-level verbs + aliases (+ completion itself). */
2
+ export declare function listTopLevelCompletionWords(): string[];
3
+ /**
4
+ * Normalize argv for completion: drop leading node/npx/npm-exec wrappers
5
+ * so `npx seatmesh peer` completes like `seatmesh peer`.
6
+ */
7
+ export declare function normalizeCompletionWords(raw: string[]): string[];
8
+ /**
9
+ * Compute completion candidates.
10
+ * @param words full shell words for this command line (may include wrappers)
11
+ * @param cword index of the word being completed (0-based in `words`)
12
+ */
13
+ export declare function completeArgv(words: string[], cword: number): string[];
14
+ export declare function printCompletionReply(words: string[], cword: number): void;
15
+ export declare function renderBashCompletion(): string;
16
+ export declare function renderZshCompletion(): string;
17
+ export declare function renderFishCompletion(): string;
18
+ export declare function printCompletionInstallHint(): void;
19
+ export declare function runCompletionCommand(args: string[]): void;
20
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AA8IA,uDAAuD;AACvD,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAGtD;AAUD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmDhE;AAaD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAsFrE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIzE;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAyB7C;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAa5C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAgB7C;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAoBjD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAsCzD"}
@@ -0,0 +1,416 @@
1
+ /**
2
+ * Shell tab completion for seatmesh (bash / zsh / fish).
3
+ * Source of truth for top-level verbs: help-text.ts.
4
+ */
5
+ import { listHelpAliases, listHelpVerbs } from "./help-text.js";
6
+ const GLOBAL_FLAGS = ["--profile", "-p", "--help", "-h"];
7
+ const CLI_TYPES = ["agent", "claude", "opencode", "kiro", "empty", "cc", "oc", "cursor"];
8
+ const COMMON_TARGETS = [
9
+ "manager",
10
+ "secretary",
11
+ "here",
12
+ "slot-1",
13
+ "slot-2",
14
+ "slot-3",
15
+ "mini-1",
16
+ "mini-2",
17
+ "all",
18
+ ];
19
+ /** Static second-token (and deeper) completions by verb. */
20
+ const SUBS = {
21
+ help: [], // filled dynamically with top-level words
22
+ completion: ["bash", "zsh", "fish", "reply", "install"],
23
+ config: ["check", "upgrade"],
24
+ web: ["status", "open", "url", "help"],
25
+ session: ["attach", "up", "down", "status", "sync", "check", "repair", "init"],
26
+ sessions: ["list", "attach", "forget", "register", "pick"],
27
+ layout: ["column"],
28
+ ops: ["list", "clear"],
29
+ inbox: ["list", "resolve", "log", "instances", "stop", "restart"],
30
+ mini: ["list", "spawn", "prompt", "done", "kill", "reassign", "dispatch-all"],
31
+ secretary: ["start", "status", "digest", "restart", "supervise", "switch", "watch"],
32
+ roles: ["status", "migrate", "steps"],
33
+ night: ["on", "off", "status"],
34
+ ack: ["list", "reply", "clear", "redirect"],
35
+ cb: ["list", "start", "cancel", "cancel-all", "reset", "ack"],
36
+ checkback: ["list", "start", "cancel", "cancel-all", "reset", "ack"],
37
+ patience: ["list", "start", "cancel", "cancel-all", "reset", "ack"],
38
+ room: ["tail", "say", "broadcast", "read", "call", "accept"],
39
+ chat: ["tail", "query", "append", "record"],
40
+ hub: ["contexts", "todos", "acks", "cbs", "chat", "room", "shared", "sessions"],
41
+ get: ["contexts", "todos", "acks", "cbs", "chat", "room", "shared", "sessions"],
42
+ seat: ["init", "task", "todo", "now", "mark", "remind", "assign"],
43
+ ask: ["manager", "secretary", "slot-1", "slot-2", "mini-1", "here"],
44
+ msg: ["manager", "secretary", "slot-1", "slot-2", "mini-1", "here"],
45
+ tell: ["manager", "secretary", "slot-1", "slot-2", "mini-1", "here"],
46
+ ackmsg: ["manager", "secretary", "slot-1", "slot-2", "mini-1", "here"],
47
+ answered: ["manager", "secretary", "slot-1", "slot-2", "mini-1", "here"],
48
+ reply: [],
49
+ todo: ["give", "send", "to", "list", "add", "check", "ls", "show"],
50
+ todos: ["give", "send", "to", "list", "add", "check", "ls", "show"],
51
+ notify: ["info", "md", "details", "yesno", "desktop"],
52
+ limit: ["idle", "idle-clear"],
53
+ proxy: ["status", "check", "reset"],
54
+ providers: ["list", "scan"],
55
+ target: ["add", "list", "done", "triage"],
56
+ targets: ["add", "list", "done", "triage"],
57
+ peek: [...COMMON_TARGETS, "status", "full"],
58
+ kind: [...COMMON_TARGETS],
59
+ what: [...COMMON_TARGETS],
60
+ typeof: [...COMMON_TARGETS],
61
+ whoami: [...COMMON_TARGETS, "--validate", "--json"],
62
+ where: [...COMMON_TARGETS, "--validate", "--json"],
63
+ assign: [...COMMON_TARGETS],
64
+ prompt: ["--manager", ...COMMON_TARGETS],
65
+ remind: ["all", "1", "2", "3", "slot-1", "slot-2", "slot-3"],
66
+ launch: ["all", "manager", "secretary", ...COMMON_TARGETS],
67
+ pane: ["resume"],
68
+ flush: ["all", "manager", ...COMMON_TARGETS],
69
+ continue: ["all", "1", "2", "3"],
70
+ switch: [...COMMON_TARGETS],
71
+ handoff: [...COMMON_TARGETS],
72
+ set: [...COMMON_TARGETS],
73
+ swap: [...COMMON_TARGETS],
74
+ ppa: ["--raw", "--idle", "perf-index", "index"],
75
+ contexts: ["--json"],
76
+ seats: ["--json"],
77
+ remote: ["--json"],
78
+ meshes: ["--json"],
79
+ report: ["--json", "--verbose"],
80
+ version: ["--json", "--check-registry"],
81
+ update: ["--dry-run", "--migrate", "--no-restart-inbox"],
82
+ reload: ["--layout"],
83
+ save: ["--json", "--no-labels"],
84
+ auto: ["--json", "--no-labels"],
85
+ init: ["--force", "--seats-root", "--name"],
86
+ start: [],
87
+ agent: [], // filled with agent verbs
88
+ profile: ["show"],
89
+ base: ["ensure", "realign"],
90
+ index: ["show", "validate"],
91
+ "cold-start": ["--inject", "--force", ...COMMON_TARGETS],
92
+ coldstart: ["--inject", "--force", ...COMMON_TARGETS],
93
+ };
94
+ const DEEPER = {
95
+ layout: {
96
+ column: ["list", "add", "remove"],
97
+ },
98
+ seat: {
99
+ task: ["list", "add", "check"],
100
+ mark: ["OPEN", "BUSY", "BLOCKED"],
101
+ },
102
+ secretary: {
103
+ supervise: ["on", "run", "off"],
104
+ watch: ["on", "off"],
105
+ switch: CLI_TYPES,
106
+ },
107
+ session: {
108
+ init: [],
109
+ },
110
+ ack: {
111
+ reply: [],
112
+ redirect: ["mini-1", "mini-2"],
113
+ },
114
+ cb: {
115
+ ack: ["yes", "no"],
116
+ },
117
+ checkback: {
118
+ ack: ["yes", "no"],
119
+ },
120
+ peek: {
121
+ // after target
122
+ },
123
+ switch: Object.fromEntries(COMMON_TARGETS.map((t) => [t, CLI_TYPES])),
124
+ handoff: Object.fromEntries(COMMON_TARGETS.map((t) => [t, CLI_TYPES])),
125
+ set: Object.fromEntries(COMMON_TARGETS.map((t) => [t, CLI_TYPES])),
126
+ pane: {
127
+ resume: COMMON_TARGETS.filter((t) => t !== "all"),
128
+ },
129
+ limit: {
130
+ idle: ["--all", "--pane"],
131
+ },
132
+ };
133
+ function uniqSorted(words) {
134
+ return [...new Set(words.filter(Boolean))].sort((a, b) => a.localeCompare(b));
135
+ }
136
+ /** Top-level verbs + aliases (+ completion itself). */
137
+ export function listTopLevelCompletionWords() {
138
+ const aliases = listHelpAliases().map((a) => a.alias);
139
+ return uniqSorted([...listHelpVerbs(), ...aliases, "completion", ...GLOBAL_FLAGS]);
140
+ }
141
+ function agentVerbs() {
142
+ // Pane gateway: same help verbs minus pure operator setup noise is fine —
143
+ // filter nothing; agent card enforces UNAUTHORIZED at runtime.
144
+ return listTopLevelCompletionWords().filter((w) => !w.startsWith("-") && w !== "completion" && w !== "start" && w !== "init");
145
+ }
146
+ /**
147
+ * Normalize argv for completion: drop leading node/npx/npm-exec wrappers
148
+ * so `npx seatmesh peer` completes like `seatmesh peer`.
149
+ */
150
+ export function normalizeCompletionWords(raw) {
151
+ const words = [...raw];
152
+ while (words.length) {
153
+ const w0 = words[0];
154
+ const base = pathBasename(w0);
155
+ if (base === "node" ||
156
+ base === "nodejs" ||
157
+ base === "npm" ||
158
+ base === "npx" ||
159
+ base === "pnpm" ||
160
+ base === "yarn" ||
161
+ base === "bunx" ||
162
+ base === "tsx" ||
163
+ base === "seatmesh" ||
164
+ base.startsWith("seatmesh")) {
165
+ // npx seatmesh … / npm exec seatmesh … / node …/seatmesh …
166
+ if (base === "npx" || base === "bunx") {
167
+ words.shift();
168
+ // npx --yes seatmesh …
169
+ while (words[0]?.startsWith("-"))
170
+ words.shift();
171
+ if (words[0] && pathBasename(words[0]).startsWith("seatmesh"))
172
+ words.shift();
173
+ break;
174
+ }
175
+ if (base === "npm" || base === "pnpm" || base === "yarn") {
176
+ words.shift();
177
+ if (words[0] === "exec" || words[0] === "dlx") {
178
+ words.shift();
179
+ while (words[0]?.startsWith("-"))
180
+ words.shift();
181
+ if (words[0] && pathBasename(words[0]).startsWith("seatmesh"))
182
+ words.shift();
183
+ }
184
+ break;
185
+ }
186
+ words.shift();
187
+ break;
188
+ }
189
+ break;
190
+ }
191
+ // Drop --profile PATH pairs so positional cmds still complete
192
+ const out = [];
193
+ for (let i = 0; i < words.length; i++) {
194
+ const a = words[i];
195
+ if (a === "--profile" || a === "-p") {
196
+ i++; // skip value
197
+ continue;
198
+ }
199
+ if (a.startsWith("--profile="))
200
+ continue;
201
+ out.push(a);
202
+ }
203
+ return out;
204
+ }
205
+ function pathBasename(p) {
206
+ const s = p.replace(/\\/g, "/");
207
+ const i = s.lastIndexOf("/");
208
+ return i >= 0 ? s.slice(i + 1) : s;
209
+ }
210
+ function filterPrefix(candidates, prefix) {
211
+ if (!prefix)
212
+ return candidates;
213
+ return candidates.filter((c) => c.startsWith(prefix));
214
+ }
215
+ /**
216
+ * Compute completion candidates.
217
+ * @param words full shell words for this command line (may include wrappers)
218
+ * @param cword index of the word being completed (0-based in `words`)
219
+ */
220
+ export function completeArgv(words, cword) {
221
+ const raw = words.length ? words : [""];
222
+ const idx = Math.max(0, Math.min(cword, raw.length - 1));
223
+ const prefix = raw[idx] ?? "";
224
+ // Completing a global flag value
225
+ if (idx > 0 && (raw[idx - 1] === "--profile" || raw[idx - 1] === "-p")) {
226
+ return []; // filesystem — shell default
227
+ }
228
+ const norm = normalizeCompletionWords(raw.slice(0, idx + 1));
229
+ // Recompute prefix position inside normalized stream:
230
+ // we complete the last token of the normalized prefix list.
231
+ const cur = norm.length ? norm[norm.length - 1] : prefix;
232
+ const before = norm.slice(0, -1);
233
+ if (before.length === 0) {
234
+ return filterPrefix(listTopLevelCompletionWords(), cur === "seatmesh" ? "" : cur);
235
+ }
236
+ const cmd = before[0];
237
+ if (cmd === "agent") {
238
+ if (before.length === 1) {
239
+ return filterPrefix(uniqSorted(["help", ...agentVerbs()]), cur);
240
+ }
241
+ if (before[1] === "help" && before.length === 2) {
242
+ return filterPrefix(listTopLevelCompletionWords().filter((w) => !w.startsWith("-")), cur);
243
+ }
244
+ // agent <verb> … — reuse verb subs with shifted before
245
+ return completeArgv(["seatmesh", ...before.slice(1), cur], before.length);
246
+ }
247
+ if (cmd === "help") {
248
+ return filterPrefix(uniqSorted([
249
+ "human",
250
+ "put-agent",
251
+ "panes",
252
+ "operator",
253
+ ...listTopLevelCompletionWords().filter((w) => !w.startsWith("-")),
254
+ ]), cur);
255
+ }
256
+ if (cmd === "completion" && before.length === 1) {
257
+ return filterPrefix(SUBS.completion, cur);
258
+ }
259
+ // Deeper: cmd sub …
260
+ if (before.length >= 2) {
261
+ const sub = before[1];
262
+ const deep = DEEPER[cmd]?.[sub];
263
+ if (deep && before.length === 2) {
264
+ return filterPrefix(uniqSorted(deep), cur);
265
+ }
266
+ // switch <target> <cli>
267
+ if ((cmd === "switch" || cmd === "handoff" || cmd === "set") && before.length === 2) {
268
+ return filterPrefix(CLI_TYPES, cur);
269
+ }
270
+ if (cmd === "peek" && before.length === 2) {
271
+ return filterPrefix(["status", "full"], cur);
272
+ }
273
+ if (cmd === "swap" && before.length === 2) {
274
+ return filterPrefix(COMMON_TARGETS, cur);
275
+ }
276
+ }
277
+ const subs = SUBS[cmd];
278
+ if (subs && before.length === 1) {
279
+ const list = cmd === "help"
280
+ ? listTopLevelCompletionWords().filter((w) => !w.startsWith("-"))
281
+ : subs.length
282
+ ? subs
283
+ : [];
284
+ if (list.length)
285
+ return filterPrefix(uniqSorted(list), cur);
286
+ }
287
+ // Flags often valid after verb
288
+ if (cur.startsWith("-")) {
289
+ return filterPrefix(GLOBAL_FLAGS, cur);
290
+ }
291
+ return [];
292
+ }
293
+ export function printCompletionReply(words, cword) {
294
+ for (const w of completeArgv(words, cword)) {
295
+ console.log(w);
296
+ }
297
+ }
298
+ export function renderBashCompletion() {
299
+ return `# seatmesh bash completion — eval "$(seatmesh completion bash)"
300
+ _seatmesh() {
301
+ local cur cword
302
+ cur="\${COMP_WORDS[COMP_CWORD]}"
303
+ cword="\${COMP_CWORD}"
304
+ local out
305
+ out="$(COMP_CWORD="$cword" seatmesh completion reply -- "\${COMP_WORDS[@]}")"
306
+ # shellcheck disable=SC2207
307
+ COMPREPLY=( $(compgen -W "$out" -- "$cur") )
308
+ }
309
+ complete -o default -F _seatmesh seatmesh
310
+ # npx seatmesh … (best-effort: only when 2nd word is seatmesh*)
311
+ _seatmesh_npx() {
312
+ local cur="\${COMP_WORDS[COMP_CWORD]}"
313
+ if [[ "\${COMP_WORDS[1]}" == seatmesh* ]] || [[ "\${COMP_WORDS[1]}" == --* && "\${COMP_WORDS[2]}" == seatmesh* ]]; then
314
+ local out
315
+ out="$(COMP_CWORD="$COMP_CWORD" seatmesh completion reply -- "\${COMP_WORDS[@]}")"
316
+ COMPREPLY=( $(compgen -W "$out" -- "$cur") )
317
+ return
318
+ fi
319
+ return 1
320
+ }
321
+ complete -o default -F _seatmesh_npx npx 2>/dev/null || true
322
+ `;
323
+ }
324
+ export function renderZshCompletion() {
325
+ return `#compdef seatmesh
326
+ # seatmesh zsh completion — eval "$(seatmesh completion zsh)"
327
+ _seatmesh() {
328
+ local -a opts
329
+ local out
330
+ out="$(COMP_CWORD=$((CURRENT - 1)) seatmesh completion reply -- "\${words[@]}")"
331
+ opts=("\${(f)out}")
332
+ _describe 'seatmesh' opts || compadd -a opts
333
+ }
334
+ compdef _seatmesh sm
335
+ compdef _seatmesh seatmesh
336
+ `;
337
+ }
338
+ export function renderFishCompletion() {
339
+ return `# seatmesh fish completion — seatmesh completion fish | source
340
+ function __seatmesh_complete
341
+ set -l cword (count (commandline -opc))
342
+ set -l words (commandline -opc)
343
+ set -l cur (commandline -ct)
344
+ if test -n "$cur"
345
+ set cword (math $cword + 1)
346
+ set -a words $cur
347
+ end
348
+ set -x COMP_CWORD (math $cword - 1)
349
+ seatmesh completion reply -- $words
350
+ end
351
+ complete -c sm -f -a '(__seatmesh_complete)'
352
+ complete -c seatmesh -f -a '(__seatmesh_complete)'
353
+ `;
354
+ }
355
+ export function printCompletionInstallHint() {
356
+ console.log(`seatmesh shell completion
357
+
358
+ Enable (pick your shell):
359
+ # zsh
360
+ echo 'eval "$(seatmesh completion zsh)"' >> ~/.zshrc && exec zsh
361
+
362
+ # bash
363
+ echo 'eval "$(seatmesh completion bash)"' >> ~/.bashrc && exec bash
364
+
365
+ # fish
366
+ seatmesh completion fish > ~/.config/fish/completions/seatmesh.fish
367
+
368
+ Then: sm <TAB> → verbs
369
+ sm agent <TAB>
370
+ sm switch slot-1 <TAB>
371
+
372
+ Install: sm install (symlinks sm + seatmesh to ~/.local/bin)
373
+ Legacy npm bin name \`seatmesh\` still works; prefer \`sm\`.
374
+ `);
375
+ }
376
+ export function runCompletionCommand(args) {
377
+ const [sub, ...rest] = args;
378
+ if (!sub || sub === "install" || sub === "-h" || sub === "--help" || sub === "help") {
379
+ printCompletionInstallHint();
380
+ return;
381
+ }
382
+ if (sub === "bash") {
383
+ process.stdout.write(renderBashCompletion());
384
+ return;
385
+ }
386
+ if (sub === "zsh") {
387
+ process.stdout.write(renderZshCompletion());
388
+ return;
389
+ }
390
+ if (sub === "fish") {
391
+ process.stdout.write(renderFishCompletion());
392
+ return;
393
+ }
394
+ if (sub === "reply") {
395
+ // seatmesh completion reply -- word0 word1 …
396
+ let words = rest;
397
+ if (words[0] === "--")
398
+ words = words.slice(1);
399
+ const envCword = process.env.COMP_CWORD;
400
+ let cword = envCword != null && envCword !== ""
401
+ ? Number.parseInt(envCword, 10)
402
+ : Math.max(0, words.length - 1);
403
+ if (!Number.isFinite(cword) || cword < 0)
404
+ cword = Math.max(0, words.length - 1);
405
+ // When completing a trailing empty token, shells often omit it — allow +1
406
+ if (cword >= words.length) {
407
+ words = [...words, ""];
408
+ cword = words.length - 1;
409
+ }
410
+ printCompletionReply(words, cword);
411
+ return;
412
+ }
413
+ console.error("usage: seatmesh completion bash|zsh|fish|reply|install");
414
+ process.exit(2);
415
+ }
416
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=completion.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.test.d.ts","sourceRoot":"","sources":["../../src/commands/completion.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { completeArgv, listTopLevelCompletionWords, normalizeCompletionWords, } from "./completion.js";
3
+ describe("completion", () => {
4
+ it("lists top-level verbs including aliases and completion", () => {
5
+ const w = listTopLevelCompletionWords();
6
+ expect(w).toContain("peer");
7
+ expect(w).toContain("whoami");
8
+ expect(w).toContain("get"); // alias of hub
9
+ expect(w).toContain("completion");
10
+ expect(w).toContain("--profile");
11
+ });
12
+ it("strips npx seatmesh wrappers", () => {
13
+ expect(normalizeCompletionWords(["npx", "seatmesh", "peer"])).toEqual(["peer"]);
14
+ expect(normalizeCompletionWords(["npx", "--yes", "seatmesh", "agent"])).toEqual(["agent"]);
15
+ expect(normalizeCompletionWords(["seatmesh", "--profile", ".sm", "help"])).toEqual(["help"]);
16
+ });
17
+ it("completes top-level prefix", () => {
18
+ const hits = completeArgv(["seatmesh", "pee"], 1);
19
+ expect(hits).toContain("peer");
20
+ expect(hits.every((h) => h.startsWith("pee"))).toBe(true);
21
+ });
22
+ it("completes agent subverbs", () => {
23
+ const hits = completeArgv(["seatmesh", "agent", "who"], 2);
24
+ expect(hits).toContain("whoami");
25
+ });
26
+ it("completes switch cli types after target", () => {
27
+ const hits = completeArgv(["seatmesh", "switch", "slot-1", "op"], 3);
28
+ expect(hits).toContain("opencode");
29
+ });
30
+ it("completes hub entities", () => {
31
+ const hits = completeArgv(["seatmesh", "hub", "to"], 2);
32
+ expect(hits).toContain("todos");
33
+ });
34
+ it("completes after npx seatmesh", () => {
35
+ const hits = completeArgv(["npx", "seatmesh", "ses"], 2);
36
+ expect(hits).toContain("session");
37
+ expect(hits).toContain("sessions");
38
+ });
39
+ });
40
+ //# sourceMappingURL=completion.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.test.js","sourceRoot":"","sources":["../../src/commands/completion.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ConfigCheckResult } from "@seat-mesh/core";
2
+ export declare function printConfigCheck(result: ConfigCheckResult): void;
3
+ export declare function runConfigCheck(profileArg: string | undefined, opts?: {
4
+ json?: boolean;
5
+ }): number;
6
+ /** How to get the latest published seatmesh CLI (step 1 before profile `update`). */
7
+ export declare function printConfigUpgradeGuide(): void;
8
+ export declare function printConfigHelp(): void;
9
+ //# sourceMappingURL=config-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-cli.d.ts","sourceRoot":"","sources":["../../src/commands/config-cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASzD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAyBhE;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAQhG;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,IAAI,IAAI,CAmB9C;AAED,wBAAgB,eAAe,IAAI,IAAI,CAWtC"}
@@ -0,0 +1,74 @@
1
+ import { checkMeshConfig } from "@seat-mesh/core";
2
+ import { formatInstallStatusLine, readInstalledCliVersion, resolveLatestRegistryVersion, semverLess, } from "../ui/version-nudge.js";
3
+ export function printConfigCheck(result) {
4
+ const errors = result.issues.filter((i) => i.severity === "error");
5
+ const warns = result.issues.filter((i) => i.severity === "warn");
6
+ const head = result.ok ? "OK" : "FAIL";
7
+ console.log(`config check: ${head} (${errors.length} error${errors.length === 1 ? "" : "s"}, ${warns.length} warn${warns.length === 1 ? "" : "s"})`);
8
+ console.log(` profile: ${result.profilePath}`);
9
+ if (result.workspace)
10
+ console.log(` workspace: ${result.workspace}`);
11
+ if (result.daemonPort != null)
12
+ console.log(` daemon port: ${result.daemonPort}`);
13
+ if (result.remoteAliases.length) {
14
+ console.log(` remotes: ${result.remoteAliases.join(", ")}`);
15
+ }
16
+ for (const i of result.issues) {
17
+ const tag = i.severity === "error" ? "error" : "warn";
18
+ const field = i.field ? ` (${i.field})` : "";
19
+ console.log(` [${tag}]${field} ${i.message}`);
20
+ }
21
+ if (result.ok && !result.issues.length) {
22
+ console.log(" schema + paths OK — safe to reload/inbox restart after edits");
23
+ }
24
+ else if (result.ok) {
25
+ console.log(" schema OK — warnings only (review before reload)");
26
+ }
27
+ else {
28
+ console.log(" fix errors before inbox restart or session up");
29
+ }
30
+ }
31
+ export function runConfigCheck(profileArg, opts) {
32
+ const result = checkMeshConfig(profileArg);
33
+ if (opts?.json) {
34
+ console.log(JSON.stringify(result, null, 2));
35
+ }
36
+ else {
37
+ printConfigCheck(result);
38
+ }
39
+ return result.ok ? 0 : 1;
40
+ }
41
+ /** How to get the latest published seatmesh CLI (step 1 before profile `update`). */
42
+ export function printConfigUpgradeGuide() {
43
+ const installed = readInstalledCliVersion();
44
+ const npmLatest = resolveLatestRegistryVersion(true);
45
+ console.log(formatInstallStatusLine(installed, npmLatest));
46
+ console.log("");
47
+ console.log("config upgrade — get the latest seatmesh CLI first");
48
+ console.log("");
49
+ console.log(" 1) Upgrade the package (pick one):");
50
+ console.log(" npm install -g seatmesh@latest");
51
+ console.log(" npx seatmesh@latest --version # one-shot without global");
52
+ console.log(" 2) Refresh this mesh profile from that CLI:");
53
+ console.log(" seatmesh update");
54
+ console.log(" # or: npx seatmesh@latest update");
55
+ console.log("");
56
+ console.log(" update alone does NOT bump npm — it only syncs .sm/_vendor from the CLI you ran.");
57
+ if (npmLatest && semverLess(installed, npmLatest)) {
58
+ console.log("");
59
+ console.log(` You are behind: CLI ${installed} < npm ${npmLatest} — run step 1 now.`);
60
+ }
61
+ }
62
+ export function printConfigHelp() {
63
+ console.log(`config — mesh config / CLI upgrade
64
+
65
+ config check [--json] validate mesh.config.yaml + paths
66
+ config upgrade how to get latest seatmesh (npm i -g seatmesh@latest)
67
+
68
+ Upgrade path (always step 1 → step 2):
69
+ 1) npm install -g seatmesh@latest
70
+ 2) seatmesh update # refresh .sm/_vendor from that CLI
71
+
72
+ update without step 1 only refreshes vendor from whatever CLI is already running.`);
73
+ }
74
+ //# sourceMappingURL=config-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-cli.js","sourceRoot":"","sources":["../../src/commands/config-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=gen-commands-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gen-commands-md.d.ts","sourceRoot":"","sources":["../../src/commands/gen-commands-md.ts"],"names":[],"mappings":""}