@made-by-moonlight/athene-cli 0.9.2

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 (315) hide show
  1. package/LICENSE +22 -0
  2. package/dist/assets/plugin-registry.json +67 -0
  3. package/dist/assets/scripts/athene-doctor.ps1 +352 -0
  4. package/dist/assets/scripts/athene-doctor.sh +552 -0
  5. package/dist/assets/scripts/athene-update.ps1 +224 -0
  6. package/dist/assets/scripts/athene-update.sh +252 -0
  7. package/dist/commands/completion.d.ts +3 -0
  8. package/dist/commands/completion.d.ts.map +1 -0
  9. package/dist/commands/completion.js +26 -0
  10. package/dist/commands/completion.js.map +1 -0
  11. package/dist/commands/config.d.ts +11 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +89 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/dashboard.d.ts +3 -0
  16. package/dist/commands/dashboard.d.ts.map +1 -0
  17. package/dist/commands/dashboard.js +103 -0
  18. package/dist/commands/dashboard.js.map +1 -0
  19. package/dist/commands/doctor.d.ts +3 -0
  20. package/dist/commands/doctor.d.ts.map +1 -0
  21. package/dist/commands/doctor.js +329 -0
  22. package/dist/commands/doctor.js.map +1 -0
  23. package/dist/commands/events.d.ts +3 -0
  24. package/dist/commands/events.d.ts.map +1 -0
  25. package/dist/commands/events.js +172 -0
  26. package/dist/commands/events.js.map +1 -0
  27. package/dist/commands/migrate-storage.d.ts +3 -0
  28. package/dist/commands/migrate-storage.d.ts.map +1 -0
  29. package/dist/commands/migrate-storage.js +78 -0
  30. package/dist/commands/migrate-storage.js.map +1 -0
  31. package/dist/commands/notify.d.ts +3 -0
  32. package/dist/commands/notify.d.ts.map +1 -0
  33. package/dist/commands/notify.js +143 -0
  34. package/dist/commands/notify.js.map +1 -0
  35. package/dist/commands/open.d.ts +3 -0
  36. package/dist/commands/open.d.ts.map +1 -0
  37. package/dist/commands/open.js +167 -0
  38. package/dist/commands/open.js.map +1 -0
  39. package/dist/commands/plugin.d.ts +3 -0
  40. package/dist/commands/plugin.d.ts.map +1 -0
  41. package/dist/commands/plugin.js +462 -0
  42. package/dist/commands/plugin.js.map +1 -0
  43. package/dist/commands/project.d.ts +3 -0
  44. package/dist/commands/project.d.ts.map +1 -0
  45. package/dist/commands/project.js +143 -0
  46. package/dist/commands/project.js.map +1 -0
  47. package/dist/commands/report.d.ts +19 -0
  48. package/dist/commands/report.d.ts.map +1 -0
  49. package/dist/commands/report.js +114 -0
  50. package/dist/commands/report.js.map +1 -0
  51. package/dist/commands/review-check.d.ts +3 -0
  52. package/dist/commands/review-check.d.ts.map +1 -0
  53. package/dist/commands/review-check.js +122 -0
  54. package/dist/commands/review-check.js.map +1 -0
  55. package/dist/commands/review.d.ts +3 -0
  56. package/dist/commands/review.d.ts.map +1 -0
  57. package/dist/commands/review.js +215 -0
  58. package/dist/commands/review.js.map +1 -0
  59. package/dist/commands/send.d.ts +3 -0
  60. package/dist/commands/send.d.ts.map +1 -0
  61. package/dist/commands/send.js +187 -0
  62. package/dist/commands/send.js.map +1 -0
  63. package/dist/commands/session.d.ts +3 -0
  64. package/dist/commands/session.d.ts.map +1 -0
  65. package/dist/commands/session.js +439 -0
  66. package/dist/commands/session.js.map +1 -0
  67. package/dist/commands/setup.d.ts +5 -0
  68. package/dist/commands/setup.d.ts.map +1 -0
  69. package/dist/commands/setup.js +297 -0
  70. package/dist/commands/setup.js.map +1 -0
  71. package/dist/commands/spawn.d.ts +4 -0
  72. package/dist/commands/spawn.d.ts.map +1 -0
  73. package/dist/commands/spawn.js +436 -0
  74. package/dist/commands/spawn.js.map +1 -0
  75. package/dist/commands/start.d.ts +21 -0
  76. package/dist/commands/start.d.ts.map +1 -0
  77. package/dist/commands/start.js +1836 -0
  78. package/dist/commands/start.js.map +1 -0
  79. package/dist/commands/status.d.ts +3 -0
  80. package/dist/commands/status.d.ts.map +1 -0
  81. package/dist/commands/status.js +556 -0
  82. package/dist/commands/status.js.map +1 -0
  83. package/dist/commands/update.d.ts +15 -0
  84. package/dist/commands/update.d.ts.map +1 -0
  85. package/dist/commands/update.js +652 -0
  86. package/dist/commands/update.js.map +1 -0
  87. package/dist/commands/verify.d.ts +3 -0
  88. package/dist/commands/verify.d.ts.map +1 -0
  89. package/dist/commands/verify.js +131 -0
  90. package/dist/commands/verify.js.map +1 -0
  91. package/dist/index.d.ts +3 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +24 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/lib/bun-tmp-janitor.d.ts +18 -0
  96. package/dist/lib/bun-tmp-janitor.d.ts.map +1 -0
  97. package/dist/lib/bun-tmp-janitor.js +127 -0
  98. package/dist/lib/bun-tmp-janitor.js.map +1 -0
  99. package/dist/lib/caller-context.d.ts +13 -0
  100. package/dist/lib/caller-context.d.ts.map +1 -0
  101. package/dist/lib/caller-context.js +20 -0
  102. package/dist/lib/caller-context.js.map +1 -0
  103. package/dist/lib/cli-errors.d.ts +8 -0
  104. package/dist/lib/cli-errors.d.ts.map +1 -0
  105. package/dist/lib/cli-errors.js +20 -0
  106. package/dist/lib/cli-errors.js.map +1 -0
  107. package/dist/lib/completion.d.ts +13 -0
  108. package/dist/lib/completion.d.ts.map +1 -0
  109. package/dist/lib/completion.js +428 -0
  110. package/dist/lib/completion.js.map +1 -0
  111. package/dist/lib/composio-setup.d.ts +65 -0
  112. package/dist/lib/composio-setup.d.ts.map +1 -0
  113. package/dist/lib/composio-setup.js +3255 -0
  114. package/dist/lib/composio-setup.js.map +1 -0
  115. package/dist/lib/config-instruction.d.ts +2 -0
  116. package/dist/lib/config-instruction.d.ts.map +1 -0
  117. package/dist/lib/config-instruction.js +193 -0
  118. package/dist/lib/config-instruction.js.map +1 -0
  119. package/dist/lib/constants.d.ts +3 -0
  120. package/dist/lib/constants.d.ts.map +1 -0
  121. package/dist/lib/constants.js +3 -0
  122. package/dist/lib/constants.js.map +1 -0
  123. package/dist/lib/create-session-manager.d.ts +26 -0
  124. package/dist/lib/create-session-manager.d.ts.map +1 -0
  125. package/dist/lib/create-session-manager.js +55 -0
  126. package/dist/lib/create-session-manager.js.map +1 -0
  127. package/dist/lib/credential-resolver.d.ts +37 -0
  128. package/dist/lib/credential-resolver.d.ts.map +1 -0
  129. package/dist/lib/credential-resolver.js +105 -0
  130. package/dist/lib/credential-resolver.js.map +1 -0
  131. package/dist/lib/daemon.d.ts +69 -0
  132. package/dist/lib/daemon.d.ts.map +1 -0
  133. package/dist/lib/daemon.js +77 -0
  134. package/dist/lib/daemon.js.map +1 -0
  135. package/dist/lib/dashboard-rebuild.d.ts +53 -0
  136. package/dist/lib/dashboard-rebuild.d.ts.map +1 -0
  137. package/dist/lib/dashboard-rebuild.js +188 -0
  138. package/dist/lib/dashboard-rebuild.js.map +1 -0
  139. package/dist/lib/dashboard-setup.d.ts +14 -0
  140. package/dist/lib/dashboard-setup.d.ts.map +1 -0
  141. package/dist/lib/dashboard-setup.js +192 -0
  142. package/dist/lib/dashboard-setup.js.map +1 -0
  143. package/dist/lib/dashboard-url.d.ts +19 -0
  144. package/dist/lib/dashboard-url.d.ts.map +1 -0
  145. package/dist/lib/dashboard-url.js +25 -0
  146. package/dist/lib/dashboard-url.js.map +1 -0
  147. package/dist/lib/desktop-setup.d.ts +21 -0
  148. package/dist/lib/desktop-setup.d.ts.map +1 -0
  149. package/dist/lib/desktop-setup.js +556 -0
  150. package/dist/lib/desktop-setup.js.map +1 -0
  151. package/dist/lib/detect-agent.d.ts +24 -0
  152. package/dist/lib/detect-agent.d.ts.map +1 -0
  153. package/dist/lib/detect-agent.js +69 -0
  154. package/dist/lib/detect-agent.js.map +1 -0
  155. package/dist/lib/detect-env.d.ts +14 -0
  156. package/dist/lib/detect-env.d.ts.map +1 -0
  157. package/dist/lib/detect-env.js +46 -0
  158. package/dist/lib/detect-env.js.map +1 -0
  159. package/dist/lib/discord-setup.d.ts +20 -0
  160. package/dist/lib/discord-setup.d.ts.map +1 -0
  161. package/dist/lib/discord-setup.js +584 -0
  162. package/dist/lib/discord-setup.js.map +1 -0
  163. package/dist/lib/format.d.ts +11 -0
  164. package/dist/lib/format.d.ts.map +1 -0
  165. package/dist/lib/format.js +116 -0
  166. package/dist/lib/format.js.map +1 -0
  167. package/dist/lib/git-utils.d.ts +14 -0
  168. package/dist/lib/git-utils.d.ts.map +1 -0
  169. package/dist/lib/git-utils.js +45 -0
  170. package/dist/lib/git-utils.js.map +1 -0
  171. package/dist/lib/install-helpers.d.ts +24 -0
  172. package/dist/lib/install-helpers.d.ts.map +1 -0
  173. package/dist/lib/install-helpers.js +76 -0
  174. package/dist/lib/install-helpers.js.map +1 -0
  175. package/dist/lib/lifecycle-service.d.ts +11 -0
  176. package/dist/lib/lifecycle-service.d.ts.map +1 -0
  177. package/dist/lib/lifecycle-service.js +65 -0
  178. package/dist/lib/lifecycle-service.js.map +1 -0
  179. package/dist/lib/notifier-routing.d.ts +35 -0
  180. package/dist/lib/notifier-routing.d.ts.map +1 -0
  181. package/dist/lib/notifier-routing.js +133 -0
  182. package/dist/lib/notifier-routing.js.map +1 -0
  183. package/dist/lib/notify-test.d.ts +72 -0
  184. package/dist/lib/notify-test.d.ts.map +1 -0
  185. package/dist/lib/notify-test.js +674 -0
  186. package/dist/lib/notify-test.js.map +1 -0
  187. package/dist/lib/openclaw-probe.d.ts +38 -0
  188. package/dist/lib/openclaw-probe.d.ts.map +1 -0
  189. package/dist/lib/openclaw-probe.js +146 -0
  190. package/dist/lib/openclaw-probe.js.map +1 -0
  191. package/dist/lib/openclaw-setup.d.ts +19 -0
  192. package/dist/lib/openclaw-setup.d.ts.map +1 -0
  193. package/dist/lib/openclaw-setup.js +684 -0
  194. package/dist/lib/openclaw-setup.js.map +1 -0
  195. package/dist/lib/path-equality.d.ts +29 -0
  196. package/dist/lib/path-equality.d.ts.map +1 -0
  197. package/dist/lib/path-equality.js +52 -0
  198. package/dist/lib/path-equality.js.map +1 -0
  199. package/dist/lib/plugin-marketplace.d.ts +24 -0
  200. package/dist/lib/plugin-marketplace.d.ts.map +1 -0
  201. package/dist/lib/plugin-marketplace.js +175 -0
  202. package/dist/lib/plugin-marketplace.js.map +1 -0
  203. package/dist/lib/plugin-scaffold.d.ts +14 -0
  204. package/dist/lib/plugin-scaffold.d.ts.map +1 -0
  205. package/dist/lib/plugin-scaffold.js +174 -0
  206. package/dist/lib/plugin-scaffold.js.map +1 -0
  207. package/dist/lib/plugin-store.d.ts +9 -0
  208. package/dist/lib/plugin-store.d.ts.map +1 -0
  209. package/dist/lib/plugin-store.js +121 -0
  210. package/dist/lib/plugin-store.js.map +1 -0
  211. package/dist/lib/plugins.d.ts +17 -0
  212. package/dist/lib/plugins.d.ts.map +1 -0
  213. package/dist/lib/plugins.js +65 -0
  214. package/dist/lib/plugins.js.map +1 -0
  215. package/dist/lib/portfolio-display.d.ts +10 -0
  216. package/dist/lib/portfolio-display.d.ts.map +1 -0
  217. package/dist/lib/portfolio-display.js +17 -0
  218. package/dist/lib/portfolio-display.js.map +1 -0
  219. package/dist/lib/preflight.d.ts +27 -0
  220. package/dist/lib/preflight.d.ts.map +1 -0
  221. package/dist/lib/preflight.js +77 -0
  222. package/dist/lib/preflight.js.map +1 -0
  223. package/dist/lib/prevent-sleep.d.ts +34 -0
  224. package/dist/lib/prevent-sleep.d.ts.map +1 -0
  225. package/dist/lib/prevent-sleep.js +65 -0
  226. package/dist/lib/prevent-sleep.js.map +1 -0
  227. package/dist/lib/project-detection.d.ts +11 -0
  228. package/dist/lib/project-detection.d.ts.map +1 -0
  229. package/dist/lib/project-detection.js +206 -0
  230. package/dist/lib/project-detection.js.map +1 -0
  231. package/dist/lib/project-resolution.d.ts +10 -0
  232. package/dist/lib/project-resolution.d.ts.map +1 -0
  233. package/dist/lib/project-resolution.js +17 -0
  234. package/dist/lib/project-resolution.js.map +1 -0
  235. package/dist/lib/project-supervisor.d.ts +28 -0
  236. package/dist/lib/project-supervisor.d.ts.map +1 -0
  237. package/dist/lib/project-supervisor.js +167 -0
  238. package/dist/lib/project-supervisor.js.map +1 -0
  239. package/dist/lib/prompts.d.ts +7 -0
  240. package/dist/lib/prompts.d.ts.map +1 -0
  241. package/dist/lib/prompts.js +37 -0
  242. package/dist/lib/prompts.js.map +1 -0
  243. package/dist/lib/repo-utils.d.ts +16 -0
  244. package/dist/lib/repo-utils.d.ts.map +1 -0
  245. package/dist/lib/repo-utils.js +26 -0
  246. package/dist/lib/repo-utils.js.map +1 -0
  247. package/dist/lib/resolve-project.d.ts +113 -0
  248. package/dist/lib/resolve-project.d.ts.map +1 -0
  249. package/dist/lib/resolve-project.js +433 -0
  250. package/dist/lib/resolve-project.js.map +1 -0
  251. package/dist/lib/routes.d.ts +2 -0
  252. package/dist/lib/routes.d.ts.map +1 -0
  253. package/dist/lib/routes.js +5 -0
  254. package/dist/lib/routes.js.map +1 -0
  255. package/dist/lib/running-state.d.ts +76 -0
  256. package/dist/lib/running-state.d.ts.map +1 -0
  257. package/dist/lib/running-state.js +338 -0
  258. package/dist/lib/running-state.js.map +1 -0
  259. package/dist/lib/script-runner.d.ts +10 -0
  260. package/dist/lib/script-runner.d.ts.map +1 -0
  261. package/dist/lib/script-runner.js +189 -0
  262. package/dist/lib/script-runner.js.map +1 -0
  263. package/dist/lib/session-utils.d.ts +14 -0
  264. package/dist/lib/session-utils.d.ts.map +1 -0
  265. package/dist/lib/session-utils.js +58 -0
  266. package/dist/lib/session-utils.js.map +1 -0
  267. package/dist/lib/shell.d.ts +17 -0
  268. package/dist/lib/shell.d.ts.map +1 -0
  269. package/dist/lib/shell.js +90 -0
  270. package/dist/lib/shell.js.map +1 -0
  271. package/dist/lib/shutdown.d.ts +30 -0
  272. package/dist/lib/shutdown.d.ts.map +1 -0
  273. package/dist/lib/shutdown.js +177 -0
  274. package/dist/lib/shutdown.js.map +1 -0
  275. package/dist/lib/slack-setup.d.ts +17 -0
  276. package/dist/lib/slack-setup.d.ts.map +1 -0
  277. package/dist/lib/slack-setup.js +485 -0
  278. package/dist/lib/slack-setup.js.map +1 -0
  279. package/dist/lib/startup-preflight.d.ts +36 -0
  280. package/dist/lib/startup-preflight.d.ts.map +1 -0
  281. package/dist/lib/startup-preflight.js +273 -0
  282. package/dist/lib/startup-preflight.js.map +1 -0
  283. package/dist/lib/update-channel-onboarding.d.ts +52 -0
  284. package/dist/lib/update-channel-onboarding.d.ts.map +1 -0
  285. package/dist/lib/update-channel-onboarding.js +107 -0
  286. package/dist/lib/update-channel-onboarding.js.map +1 -0
  287. package/dist/lib/update-check.d.ts +161 -0
  288. package/dist/lib/update-check.d.ts.map +1 -0
  289. package/dist/lib/update-check.js +504 -0
  290. package/dist/lib/update-check.js.map +1 -0
  291. package/dist/lib/web-dir.d.ts +47 -0
  292. package/dist/lib/web-dir.d.ts.map +1 -0
  293. package/dist/lib/web-dir.js +179 -0
  294. package/dist/lib/web-dir.js.map +1 -0
  295. package/dist/lib/webhook-setup.d.ts +16 -0
  296. package/dist/lib/webhook-setup.d.ts.map +1 -0
  297. package/dist/lib/webhook-setup.js +383 -0
  298. package/dist/lib/webhook-setup.js.map +1 -0
  299. package/dist/options/version.d.ts +2 -0
  300. package/dist/options/version.d.ts.map +1 -0
  301. package/dist/options/version.js +7 -0
  302. package/dist/options/version.js.map +1 -0
  303. package/dist/program.d.ts +3 -0
  304. package/dist/program.d.ts.map +1 -0
  305. package/dist/program.js +63 -0
  306. package/dist/program.js.map +1 -0
  307. package/package.json +80 -0
  308. package/templates/rules/base.md +4 -0
  309. package/templates/rules/go.md +8 -0
  310. package/templates/rules/javascript.md +4 -0
  311. package/templates/rules/nextjs.md +7 -0
  312. package/templates/rules/pnpm-workspaces.md +4 -0
  313. package/templates/rules/python.md +8 -0
  314. package/templates/rules/react.md +8 -0
  315. package/templates/rules/typescript.md +6 -0
@@ -0,0 +1,17 @@
1
+ import { type ChildProcess } from "node:child_process";
2
+ export interface ExecResult {
3
+ stdout: string;
4
+ stderr: string;
5
+ }
6
+ export declare function exec(cmd: string, args: string[], options?: {
7
+ cwd?: string;
8
+ env?: Record<string, string>;
9
+ }): Promise<ExecResult>;
10
+ export declare function execSilent(cmd: string, args: string[]): Promise<string | null>;
11
+ export declare function tmux(...args: string[]): Promise<string | null>;
12
+ export declare function git(args: string[], cwd?: string): Promise<string | null>;
13
+ export declare function gh(args: string[]): Promise<string | null>;
14
+ export declare function getTmuxSessions(): Promise<string[]>;
15
+ export declare function forwardSignalsToChild(pid: number, child: ChildProcess): void;
16
+ export declare function getTmuxActivity(session: string): Promise<number | null>;
17
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAM/E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACvD,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOpF;AAED,wBAAsB,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEpE;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO9E;AAED,wBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE/D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAIzD;AAeD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAyB5E;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAK7E"}
@@ -0,0 +1,90 @@
1
+ import { execFile as execFileCb } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { killProcessTree } from "@made-by-moonlight/athene-core";
4
+ const execFileAsync = promisify(execFileCb);
5
+ export async function exec(cmd, args, options) {
6
+ const { stdout, stderr } = await execFileAsync(cmd, args, {
7
+ cwd: options?.cwd,
8
+ env: options?.env ? { ...process.env, ...options.env } : undefined,
9
+ maxBuffer: 10 * 1024 * 1024,
10
+ windowsHide: true,
11
+ });
12
+ return { stdout: stdout.trimEnd(), stderr: stderr.trimEnd() };
13
+ }
14
+ export async function execSilent(cmd, args) {
15
+ try {
16
+ const { stdout } = await exec(cmd, args);
17
+ return stdout;
18
+ }
19
+ catch {
20
+ return null;
21
+ }
22
+ }
23
+ export async function tmux(...args) {
24
+ return execSilent("tmux", args);
25
+ }
26
+ export async function git(args, cwd) {
27
+ try {
28
+ const { stdout } = await exec("git", args, { cwd });
29
+ return stdout;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ export async function gh(args) {
36
+ return execSilent("gh", args);
37
+ }
38
+ export async function getTmuxSessions() {
39
+ const output = await tmux("list-sessions", "-F", "#{session_name}");
40
+ if (!output)
41
+ return [];
42
+ return output.split("\n").filter(Boolean);
43
+ }
44
+ /**
45
+ * Forward SIGINT/SIGTERM from the parent to a detached child's process group.
46
+ * Required on Unix when a child is spawned with detached:true — Ctrl+C only
47
+ * reaches the parent's process group, not the child's.
48
+ *
49
+ * Sends SIGTERM immediately, then escalates to SIGKILL after 5 s if the child
50
+ * has not exited — prevents the parent from hanging indefinitely with no signal
51
+ * handlers registered. Cleans up automatically when the child exits normally.
52
+ *
53
+ * Idempotent: calling with the same child object more than once is a no-op.
54
+ */
55
+ const _signalForwardedChildren = new WeakSet();
56
+ export function forwardSignalsToChild(pid, child) {
57
+ if (_signalForwardedChildren.has(child))
58
+ return;
59
+ _signalForwardedChildren.add(child);
60
+ let fallback;
61
+ const forward = () => {
62
+ process.off("SIGINT", forward);
63
+ process.off("SIGTERM", forward);
64
+ void killProcessTree(pid, "SIGTERM");
65
+ // If the child ignores SIGTERM, force-kill after 5 s so the parent exits.
66
+ // Exit 0: this path is reached on user-initiated Ctrl+C where the child is
67
+ // merely slow to drain (e.g. Next.js connections). Treating that as an
68
+ // error breaks shell scripts and CI pipelines that check the exit code.
69
+ fallback = setTimeout(() => {
70
+ void killProcessTree(pid, "SIGKILL").finally(() => process.exit(0));
71
+ }, 5000);
72
+ fallback.unref();
73
+ };
74
+ process.once("SIGINT", forward);
75
+ process.once("SIGTERM", forward);
76
+ child.once("exit", () => {
77
+ process.off("SIGINT", forward);
78
+ process.off("SIGTERM", forward);
79
+ if (fallback !== undefined)
80
+ clearTimeout(fallback);
81
+ });
82
+ }
83
+ export async function getTmuxActivity(session) {
84
+ const output = await tmux("display-message", "-t", session, "-p", "#{session_activity}");
85
+ if (!output)
86
+ return null;
87
+ const ts = parseInt(output, 10);
88
+ return isNaN(ts) ? null : ts * 1000;
89
+ }
90
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/lib/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAO5C,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,GAAW,EACX,IAAc,EACd,OAAwD;IAExD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE;QACxD,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QAClE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,IAAc;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAG,IAAc;IAC1C,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAY;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAc;IACrC,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,wBAAwB,GAAG,IAAI,OAAO,EAAgB,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,KAAmB;IACpE,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO;IAChD,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,QAAmD,CAAC;IAExD,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrC,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,KAAK,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACzF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AACtC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * SIGINT/SIGTERM shutdown handler for the long-running `athene start` process.
3
+ *
4
+ * Installs `process.once` listeners that perform a full graceful shutdown:
5
+ * stop lifecycle workers, kill all active sessions, record last-stop state
6
+ * for restore on next `athene start`, unregister from running.json, await the
7
+ * bun-tmp janitor's final sweep, then exit.
8
+ *
9
+ * Lives in its own module so the orchestration is testable in isolation
10
+ * and so the equivalent kill-and-record logic in `athene stop` can converge
11
+ * here in a later refactor (today the two paths duplicate the core loop;
12
+ * see ao-118 plan PR B).
13
+ */
14
+ export interface ShutdownContext {
15
+ /** Path to the orchestrator config; re-read at shutdown time so any
16
+ * config edits since startup are honored. */
17
+ configPath: string;
18
+ /** Project this `athene start` invocation owns; used to scope last-stop's
19
+ * primary `sessionIds` field (other projects go to `otherProjects`). */
20
+ projectId: string;
21
+ }
22
+ export declare function isShutdownInProgress(): boolean;
23
+ /**
24
+ * Install SIGINT/SIGTERM handlers. Process-wide idempotent — calling
25
+ * this more than once is a no-op. Only the first signal triggers
26
+ * cleanup; subsequent signals are ignored until the 10-second
27
+ * force-exit timer fires.
28
+ */
29
+ export declare function installShutdownHandlers(ctx: ShutdownContext): void;
30
+ //# sourceMappingURL=shutdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/lib/shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH,MAAM,WAAW,eAAe;IAC9B;kDAC8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB;6EACyE;IACzE,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAgJlE"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * SIGINT/SIGTERM shutdown handler for the long-running `athene start` process.
3
+ *
4
+ * Installs `process.once` listeners that perform a full graceful shutdown:
5
+ * stop lifecycle workers, kill all active sessions, record last-stop state
6
+ * for restore on next `athene start`, unregister from running.json, await the
7
+ * bun-tmp janitor's final sweep, then exit.
8
+ *
9
+ * Lives in its own module so the orchestration is testable in isolation
10
+ * and so the equivalent kill-and-record logic in `athene stop` can converge
11
+ * here in a later refactor (today the two paths duplicate the core loop;
12
+ * see ao-118 plan PR B).
13
+ */
14
+ import { isTerminalSession, loadConfig, markDaemonShutdownHandlerInstalled, recordActivityEvent, sweepDaemonChildren, } from "@made-by-moonlight/athene-core";
15
+ import { stopBunTmpJanitor } from "./bun-tmp-janitor.js";
16
+ import { getSessionManager } from "./create-session-manager.js";
17
+ import { stopAllLifecycleWorkers } from "./lifecycle-service.js";
18
+ import { stopProjectSupervisor } from "./project-supervisor.js";
19
+ import { unregister, writeLastStop } from "./running-state.js";
20
+ const SHUTDOWN_TIMEOUT_MS = 10_000;
21
+ // Module-level guards so a second call to installShutdownHandlers within
22
+ // the same process is a no-op (vs. registering duplicate listeners that
23
+ // would each race to writeLastStop / unregister / process.exit on signal).
24
+ let handlersInstalled = false;
25
+ let shuttingDown = false;
26
+ export function isShutdownInProgress() {
27
+ return shuttingDown;
28
+ }
29
+ /**
30
+ * Install SIGINT/SIGTERM handlers. Process-wide idempotent — calling
31
+ * this more than once is a no-op. Only the first signal triggers
32
+ * cleanup; subsequent signals are ignored until the 10-second
33
+ * force-exit timer fires.
34
+ */
35
+ export function installShutdownHandlers(ctx) {
36
+ if (handlersInstalled)
37
+ return;
38
+ handlersInstalled = true;
39
+ markDaemonShutdownHandlerInstalled();
40
+ const shutdown = (signal) => {
41
+ if (shuttingDown)
42
+ return;
43
+ shuttingDown = true;
44
+ const exitCode = signal === "SIGINT" ? 130 : 0;
45
+ recordActivityEvent({
46
+ projectId: ctx.projectId,
47
+ source: "cli",
48
+ kind: "cli.shutdown_signal",
49
+ level: "info",
50
+ summary: `received ${signal}, beginning graceful shutdown`,
51
+ data: { signal, exitCode },
52
+ });
53
+ try {
54
+ stopProjectSupervisor();
55
+ stopAllLifecycleWorkers();
56
+ }
57
+ catch {
58
+ // Best-effort — never block shutdown on observability.
59
+ }
60
+ const forceExit = setTimeout(() => {
61
+ recordActivityEvent({
62
+ projectId: ctx.projectId,
63
+ source: "cli",
64
+ kind: "cli.shutdown_force_exit",
65
+ level: "warn",
66
+ summary: `force-exit after ${SHUTDOWN_TIMEOUT_MS}ms timeout`,
67
+ data: { signal, timeoutMs: SHUTDOWN_TIMEOUT_MS, exitCode },
68
+ });
69
+ process.exit(exitCode);
70
+ }, SHUTDOWN_TIMEOUT_MS);
71
+ forceExit.unref();
72
+ void (async () => {
73
+ try {
74
+ const shutdownConfig = loadConfig(ctx.configPath);
75
+ const sm = await getSessionManager(shutdownConfig);
76
+ const allSessions = await sm.list();
77
+ const activeSessions = allSessions.filter((s) => !isTerminalSession(s));
78
+ const killedSessionIds = [];
79
+ for (const session of activeSessions) {
80
+ try {
81
+ const result = await sm.kill(session.id);
82
+ if (result.cleaned || result.alreadyTerminated) {
83
+ killedSessionIds.push(session.id);
84
+ }
85
+ }
86
+ catch (err) {
87
+ recordActivityEvent({
88
+ projectId: session.projectId ?? ctx.projectId,
89
+ sessionId: session.id,
90
+ source: "cli",
91
+ kind: "cli.shutdown_session_kill_failed",
92
+ level: "warn",
93
+ summary: `failed to kill session during shutdown`,
94
+ data: { errorMessage: err instanceof Error ? err.message : String(err) },
95
+ });
96
+ }
97
+ }
98
+ if (killedSessionIds.length > 0) {
99
+ const targetIds = killedSessionIds.filter((id) => activeSessions.some((s) => s.id === id && s.projectId === ctx.projectId));
100
+ const otherProjects = [];
101
+ const otherByProject = new Map();
102
+ for (const s of activeSessions) {
103
+ if (s.projectId === ctx.projectId)
104
+ continue;
105
+ if (!killedSessionIds.includes(s.id))
106
+ continue;
107
+ const list = otherByProject.get(s.projectId ?? "unknown") ?? [];
108
+ list.push(s.id);
109
+ otherByProject.set(s.projectId ?? "unknown", list);
110
+ }
111
+ for (const [pid, ids] of otherByProject) {
112
+ otherProjects.push({ projectId: pid, sessionIds: ids });
113
+ }
114
+ try {
115
+ await writeLastStop({
116
+ stoppedAt: new Date().toISOString(),
117
+ projectId: ctx.projectId,
118
+ sessionIds: targetIds,
119
+ otherProjects: otherProjects.length > 0 ? otherProjects : undefined,
120
+ });
121
+ }
122
+ catch (err) {
123
+ recordActivityEvent({
124
+ projectId: ctx.projectId,
125
+ source: "cli",
126
+ kind: "cli.last_stop_write_failed",
127
+ level: "error",
128
+ summary: `failed to write last-stop state during shutdown`,
129
+ data: {
130
+ targetSessionCount: targetIds.length,
131
+ otherProjectCount: otherProjects.length,
132
+ totalKilled: killedSessionIds.length,
133
+ errorMessage: err instanceof Error ? err.message : String(err),
134
+ },
135
+ });
136
+ }
137
+ }
138
+ await sweepDaemonChildren({ ownerPid: process.pid });
139
+ await unregister();
140
+ recordActivityEvent({
141
+ projectId: ctx.projectId,
142
+ source: "cli",
143
+ kind: "cli.shutdown_completed",
144
+ level: "info",
145
+ summary: `clean shutdown completed`,
146
+ data: { signal, killedSessionCount: killedSessionIds.length, exitCode },
147
+ });
148
+ }
149
+ catch (err) {
150
+ recordActivityEvent({
151
+ projectId: ctx.projectId,
152
+ source: "cli",
153
+ kind: "cli.shutdown_failed",
154
+ level: "error",
155
+ summary: `shutdown body threw before cleanup completed`,
156
+ data: { signal, errorMessage: err instanceof Error ? err.message : String(err) },
157
+ });
158
+ }
159
+ try {
160
+ // Await any in-flight sweep so shutdown does not exit while
161
+ // unlink() calls are still mid-flight against the filesystem.
162
+ await stopBunTmpJanitor();
163
+ }
164
+ catch {
165
+ // Best-effort cleanup.
166
+ }
167
+ process.exit(exitCode);
168
+ })();
169
+ };
170
+ process.once("SIGINT", (sig) => {
171
+ shutdown(sig);
172
+ });
173
+ process.once("SIGTERM", (sig) => {
174
+ shutdown(sig);
175
+ });
176
+ }
177
+ //# sourceMappingURL=shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/lib/shutdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface SlackSetupOptions {
2
+ webhookUrl?: string;
3
+ channel?: string;
4
+ username?: string;
5
+ refresh?: boolean;
6
+ status?: boolean;
7
+ test?: boolean;
8
+ force?: boolean;
9
+ nonInteractive?: boolean;
10
+ routingPreset?: string;
11
+ }
12
+ export declare class SlackSetupError extends Error {
13
+ readonly exitCode: number;
14
+ constructor(message: string, exitCode?: number);
15
+ }
16
+ export declare function runSlackSetupAction(opts: SlackSetupOptions): Promise<void>;
17
+ //# sourceMappingURL=slack-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-setup.d.ts","sourceRoot":"","sources":["../../src/lib/slack-setup.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAeD,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ;gBADxB,OAAO,EAAE,MAAM,EACC,QAAQ,SAAI;CAK/B;AAuhBD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChF"}