trellis-he 0.6.0-beta.17

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 (657) hide show
  1. package/LICENSE +235 -0
  2. package/README.md +149 -0
  3. package/bin/trellis.js +3 -0
  4. package/dist/cli/index.d.ts +3 -0
  5. package/dist/cli/index.d.ts.map +1 -0
  6. package/dist/cli/index.js +207 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/commands/channel/adapters/claude.d.ts +38 -0
  9. package/dist/commands/channel/adapters/claude.d.ts.map +1 -0
  10. package/dist/commands/channel/adapters/claude.js +209 -0
  11. package/dist/commands/channel/adapters/claude.js.map +1 -0
  12. package/dist/commands/channel/adapters/codex.d.ts +81 -0
  13. package/dist/commands/channel/adapters/codex.d.ts.map +1 -0
  14. package/dist/commands/channel/adapters/codex.js +512 -0
  15. package/dist/commands/channel/adapters/codex.js.map +1 -0
  16. package/dist/commands/channel/adapters/index.d.ts +79 -0
  17. package/dist/commands/channel/adapters/index.d.ts.map +1 -0
  18. package/dist/commands/channel/adapters/index.js +109 -0
  19. package/dist/commands/channel/adapters/index.js.map +1 -0
  20. package/dist/commands/channel/adapters/types.d.ts +33 -0
  21. package/dist/commands/channel/adapters/types.d.ts.map +1 -0
  22. package/dist/commands/channel/adapters/types.js +2 -0
  23. package/dist/commands/channel/adapters/types.js.map +1 -0
  24. package/dist/commands/channel/agent-loader.d.ts +32 -0
  25. package/dist/commands/channel/agent-loader.d.ts.map +1 -0
  26. package/dist/commands/channel/agent-loader.js +154 -0
  27. package/dist/commands/channel/agent-loader.js.map +1 -0
  28. package/dist/commands/channel/context-loader.d.ts +26 -0
  29. package/dist/commands/channel/context-loader.d.ts.map +1 -0
  30. package/dist/commands/channel/context-loader.js +290 -0
  31. package/dist/commands/channel/context-loader.js.map +1 -0
  32. package/dist/commands/channel/context.d.ts +16 -0
  33. package/dist/commands/channel/context.d.ts.map +1 -0
  34. package/dist/commands/channel/context.js +83 -0
  35. package/dist/commands/channel/context.js.map +1 -0
  36. package/dist/commands/channel/create.d.ts +27 -0
  37. package/dist/commands/channel/create.d.ts.map +1 -0
  38. package/dist/commands/channel/create.js +39 -0
  39. package/dist/commands/channel/create.js.map +1 -0
  40. package/dist/commands/channel/dev-parse-trace.d.ts +14 -0
  41. package/dist/commands/channel/dev-parse-trace.d.ts.map +1 -0
  42. package/dist/commands/channel/dev-parse-trace.js +70 -0
  43. package/dist/commands/channel/dev-parse-trace.js.map +1 -0
  44. package/dist/commands/channel/index.d.ts +3 -0
  45. package/dist/commands/channel/index.d.ts.map +1 -0
  46. package/dist/commands/channel/index.js +503 -0
  47. package/dist/commands/channel/index.js.map +1 -0
  48. package/dist/commands/channel/kill.d.ts +7 -0
  49. package/dist/commands/channel/kill.d.ts.map +1 -0
  50. package/dist/commands/channel/kill.js +121 -0
  51. package/dist/commands/channel/kill.js.map +1 -0
  52. package/dist/commands/channel/list.d.ts +17 -0
  53. package/dist/commands/channel/list.d.ts.map +1 -0
  54. package/dist/commands/channel/list.js +233 -0
  55. package/dist/commands/channel/list.js.map +1 -0
  56. package/dist/commands/channel/messages.d.ts +16 -0
  57. package/dist/commands/channel/messages.d.ts.map +1 -0
  58. package/dist/commands/channel/messages.js +249 -0
  59. package/dist/commands/channel/messages.js.map +1 -0
  60. package/dist/commands/channel/rm.d.ts +27 -0
  61. package/dist/commands/channel/rm.d.ts.map +1 -0
  62. package/dist/commands/channel/rm.js +216 -0
  63. package/dist/commands/channel/rm.js.map +1 -0
  64. package/dist/commands/channel/run.d.ts +31 -0
  65. package/dist/commands/channel/run.d.ts.map +1 -0
  66. package/dist/commands/channel/run.js +137 -0
  67. package/dist/commands/channel/run.js.map +1 -0
  68. package/dist/commands/channel/send.d.ts +13 -0
  69. package/dist/commands/channel/send.d.ts.map +1 -0
  70. package/dist/commands/channel/send.js +26 -0
  71. package/dist/commands/channel/send.js.map +1 -0
  72. package/dist/commands/channel/spawn.d.ts +30 -0
  73. package/dist/commands/channel/spawn.d.ts.map +1 -0
  74. package/dist/commands/channel/spawn.js +194 -0
  75. package/dist/commands/channel/spawn.js.map +1 -0
  76. package/dist/commands/channel/store/events.d.ts +39 -0
  77. package/dist/commands/channel/store/events.d.ts.map +1 -0
  78. package/dist/commands/channel/store/events.js +87 -0
  79. package/dist/commands/channel/store/events.js.map +1 -0
  80. package/dist/commands/channel/store/filter.d.ts +3 -0
  81. package/dist/commands/channel/store/filter.d.ts.map +1 -0
  82. package/dist/commands/channel/store/filter.js +2 -0
  83. package/dist/commands/channel/store/filter.js.map +1 -0
  84. package/dist/commands/channel/store/lock.d.ts +23 -0
  85. package/dist/commands/channel/store/lock.d.ts.map +1 -0
  86. package/dist/commands/channel/store/lock.js +99 -0
  87. package/dist/commands/channel/store/lock.js.map +1 -0
  88. package/dist/commands/channel/store/paths.d.ts +63 -0
  89. package/dist/commands/channel/store/paths.d.ts.map +1 -0
  90. package/dist/commands/channel/store/paths.js +246 -0
  91. package/dist/commands/channel/store/paths.js.map +1 -0
  92. package/dist/commands/channel/store/schema.d.ts +27 -0
  93. package/dist/commands/channel/store/schema.d.ts.map +1 -0
  94. package/dist/commands/channel/store/schema.js +34 -0
  95. package/dist/commands/channel/store/schema.js.map +1 -0
  96. package/dist/commands/channel/store/thread-state.d.ts +5 -0
  97. package/dist/commands/channel/store/thread-state.d.ts.map +1 -0
  98. package/dist/commands/channel/store/thread-state.js +16 -0
  99. package/dist/commands/channel/store/thread-state.js.map +1 -0
  100. package/dist/commands/channel/store/watch.d.ts +19 -0
  101. package/dist/commands/channel/store/watch.d.ts.map +1 -0
  102. package/dist/commands/channel/store/watch.js +146 -0
  103. package/dist/commands/channel/store/watch.js.map +1 -0
  104. package/dist/commands/channel/supervisor/inbox.d.ts +30 -0
  105. package/dist/commands/channel/supervisor/inbox.d.ts.map +1 -0
  106. package/dist/commands/channel/supervisor/inbox.js +160 -0
  107. package/dist/commands/channel/supervisor/inbox.js.map +1 -0
  108. package/dist/commands/channel/supervisor/shutdown.d.ts +66 -0
  109. package/dist/commands/channel/supervisor/shutdown.d.ts.map +1 -0
  110. package/dist/commands/channel/supervisor/shutdown.js +143 -0
  111. package/dist/commands/channel/supervisor/shutdown.js.map +1 -0
  112. package/dist/commands/channel/supervisor/stdout.d.ts +51 -0
  113. package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -0
  114. package/dist/commands/channel/supervisor/stdout.js +121 -0
  115. package/dist/commands/channel/supervisor/stdout.js.map +1 -0
  116. package/dist/commands/channel/supervisor/turns.d.ts +20 -0
  117. package/dist/commands/channel/supervisor/turns.d.ts.map +1 -0
  118. package/dist/commands/channel/supervisor/turns.js +28 -0
  119. package/dist/commands/channel/supervisor/turns.js.map +1 -0
  120. package/dist/commands/channel/supervisor/warning.d.ts +48 -0
  121. package/dist/commands/channel/supervisor/warning.d.ts.map +1 -0
  122. package/dist/commands/channel/supervisor/warning.js +77 -0
  123. package/dist/commands/channel/supervisor/warning.js.map +1 -0
  124. package/dist/commands/channel/supervisor.d.ts +53 -0
  125. package/dist/commands/channel/supervisor.d.ts.map +1 -0
  126. package/dist/commands/channel/supervisor.js +304 -0
  127. package/dist/commands/channel/supervisor.js.map +1 -0
  128. package/dist/commands/channel/text-body.d.ts +13 -0
  129. package/dist/commands/channel/text-body.d.ts.map +1 -0
  130. package/dist/commands/channel/text-body.js +47 -0
  131. package/dist/commands/channel/text-body.js.map +1 -0
  132. package/dist/commands/channel/threads.d.ts +39 -0
  133. package/dist/commands/channel/threads.d.ts.map +1 -0
  134. package/dist/commands/channel/threads.js +106 -0
  135. package/dist/commands/channel/threads.js.map +1 -0
  136. package/dist/commands/channel/title.d.ts +12 -0
  137. package/dist/commands/channel/title.d.ts.map +1 -0
  138. package/dist/commands/channel/title.js +24 -0
  139. package/dist/commands/channel/title.js.map +1 -0
  140. package/dist/commands/channel/wait.d.ts +18 -0
  141. package/dist/commands/channel/wait.d.ts.map +1 -0
  142. package/dist/commands/channel/wait.js +76 -0
  143. package/dist/commands/channel/wait.js.map +1 -0
  144. package/dist/commands/init.d.ts +59 -0
  145. package/dist/commands/init.d.ts.map +1 -0
  146. package/dist/commands/init.js +1459 -0
  147. package/dist/commands/init.js.map +1 -0
  148. package/dist/commands/mem.d.ts +30 -0
  149. package/dist/commands/mem.d.ts.map +1 -0
  150. package/dist/commands/mem.js +424 -0
  151. package/dist/commands/mem.js.map +1 -0
  152. package/dist/commands/uninstall.d.ts +27 -0
  153. package/dist/commands/uninstall.d.ts.map +1 -0
  154. package/dist/commands/uninstall.js +339 -0
  155. package/dist/commands/uninstall.js.map +1 -0
  156. package/dist/commands/update.d.ts +72 -0
  157. package/dist/commands/update.d.ts.map +1 -0
  158. package/dist/commands/update.js +1926 -0
  159. package/dist/commands/update.js.map +1 -0
  160. package/dist/commands/upgrade.d.ts +28 -0
  161. package/dist/commands/upgrade.d.ts.map +1 -0
  162. package/dist/commands/upgrade.js +84 -0
  163. package/dist/commands/upgrade.js.map +1 -0
  164. package/dist/commands/workflow.d.ts +35 -0
  165. package/dist/commands/workflow.d.ts.map +1 -0
  166. package/dist/commands/workflow.js +219 -0
  167. package/dist/commands/workflow.js.map +1 -0
  168. package/dist/configurators/antigravity.d.ts +7 -0
  169. package/dist/configurators/antigravity.d.ts.map +1 -0
  170. package/dist/configurators/antigravity.js +19 -0
  171. package/dist/configurators/antigravity.js.map +1 -0
  172. package/dist/configurators/claude.d.ts +9 -0
  173. package/dist/configurators/claude.d.ts.map +1 -0
  174. package/dist/configurators/claude.js +72 -0
  175. package/dist/configurators/claude.js.map +1 -0
  176. package/dist/configurators/codebuddy.d.ts +10 -0
  177. package/dist/configurators/codebuddy.d.ts.map +1 -0
  178. package/dist/configurators/codebuddy.js +30 -0
  179. package/dist/configurators/codebuddy.js.map +1 -0
  180. package/dist/configurators/codex.d.ts +8 -0
  181. package/dist/configurators/codex.d.ts.map +1 -0
  182. package/dist/configurators/codex.js +87 -0
  183. package/dist/configurators/codex.js.map +1 -0
  184. package/dist/configurators/copilot.d.ts +10 -0
  185. package/dist/configurators/copilot.d.ts.map +1 -0
  186. package/dist/configurators/copilot.js +51 -0
  187. package/dist/configurators/copilot.js.map +1 -0
  188. package/dist/configurators/cursor.d.ts +10 -0
  189. package/dist/configurators/cursor.d.ts.map +1 -0
  190. package/dist/configurators/cursor.js +29 -0
  191. package/dist/configurators/cursor.js.map +1 -0
  192. package/dist/configurators/droid.d.ts +10 -0
  193. package/dist/configurators/droid.d.ts.map +1 -0
  194. package/dist/configurators/droid.js +30 -0
  195. package/dist/configurators/droid.js.map +1 -0
  196. package/dist/configurators/gemini.d.ts +16 -0
  197. package/dist/configurators/gemini.d.ts.map +1 -0
  198. package/dist/configurators/gemini.js +38 -0
  199. package/dist/configurators/gemini.js.map +1 -0
  200. package/dist/configurators/index.d.ts +65 -0
  201. package/dist/configurators/index.d.ts.map +1 -0
  202. package/dist/configurators/index.js +367 -0
  203. package/dist/configurators/index.js.map +1 -0
  204. package/dist/configurators/kilo.d.ts +7 -0
  205. package/dist/configurators/kilo.d.ts.map +1 -0
  206. package/dist/configurators/kilo.js +19 -0
  207. package/dist/configurators/kilo.js.map +1 -0
  208. package/dist/configurators/kiro.d.ts +8 -0
  209. package/dist/configurators/kiro.d.ts.map +1 -0
  210. package/dist/configurators/kiro.js +24 -0
  211. package/dist/configurators/kiro.js.map +1 -0
  212. package/dist/configurators/opencode.d.ts +14 -0
  213. package/dist/configurators/opencode.d.ts.map +1 -0
  214. package/dist/configurators/opencode.js +96 -0
  215. package/dist/configurators/opencode.js.map +1 -0
  216. package/dist/configurators/pi.d.ts +3 -0
  217. package/dist/configurators/pi.d.ts.map +1 -0
  218. package/dist/configurators/pi.js +45 -0
  219. package/dist/configurators/pi.js.map +1 -0
  220. package/dist/configurators/qoder.d.ts +11 -0
  221. package/dist/configurators/qoder.d.ts.map +1 -0
  222. package/dist/configurators/qoder.js +31 -0
  223. package/dist/configurators/qoder.js.map +1 -0
  224. package/dist/configurators/shared.d.ts +178 -0
  225. package/dist/configurators/shared.d.ts.map +1 -0
  226. package/dist/configurators/shared.js +541 -0
  227. package/dist/configurators/shared.js.map +1 -0
  228. package/dist/configurators/windsurf.d.ts +7 -0
  229. package/dist/configurators/windsurf.d.ts.map +1 -0
  230. package/dist/configurators/windsurf.js +19 -0
  231. package/dist/configurators/windsurf.js.map +1 -0
  232. package/dist/configurators/workflow.d.ts +37 -0
  233. package/dist/configurators/workflow.d.ts.map +1 -0
  234. package/dist/configurators/workflow.js +164 -0
  235. package/dist/configurators/workflow.js.map +1 -0
  236. package/dist/constants/paths.d.ts +70 -0
  237. package/dist/constants/paths.d.ts.map +1 -0
  238. package/dist/constants/paths.js +79 -0
  239. package/dist/constants/paths.js.map +1 -0
  240. package/dist/constants/version.d.ts +9 -0
  241. package/dist/constants/version.d.ts.map +1 -0
  242. package/dist/constants/version.js +15 -0
  243. package/dist/constants/version.js.map +1 -0
  244. package/dist/index.d.ts +9 -0
  245. package/dist/index.d.ts.map +1 -0
  246. package/dist/index.js +9 -0
  247. package/dist/index.js.map +1 -0
  248. package/dist/migrations/index.d.ts +62 -0
  249. package/dist/migrations/index.d.ts.map +1 -0
  250. package/dist/migrations/index.js +187 -0
  251. package/dist/migrations/index.js.map +1 -0
  252. package/dist/migrations/manifests/0.1.9.json +30 -0
  253. package/dist/migrations/manifests/0.2.0.json +49 -0
  254. package/dist/migrations/manifests/0.2.12.json +9 -0
  255. package/dist/migrations/manifests/0.2.13.json +9 -0
  256. package/dist/migrations/manifests/0.2.14.json +175 -0
  257. package/dist/migrations/manifests/0.2.15.json +33 -0
  258. package/dist/migrations/manifests/0.3.0-beta.0.json +297 -0
  259. package/dist/migrations/manifests/0.3.0-beta.1.json +9 -0
  260. package/dist/migrations/manifests/0.3.0-beta.10.json +9 -0
  261. package/dist/migrations/manifests/0.3.0-beta.11.json +9 -0
  262. package/dist/migrations/manifests/0.3.0-beta.12.json +9 -0
  263. package/dist/migrations/manifests/0.3.0-beta.13.json +9 -0
  264. package/dist/migrations/manifests/0.3.0-beta.14.json +9 -0
  265. package/dist/migrations/manifests/0.3.0-beta.15.json +9 -0
  266. package/dist/migrations/manifests/0.3.0-beta.16.json +9 -0
  267. package/dist/migrations/manifests/0.3.0-beta.2.json +9 -0
  268. package/dist/migrations/manifests/0.3.0-beta.3.json +9 -0
  269. package/dist/migrations/manifests/0.3.0-beta.4.json +9 -0
  270. package/dist/migrations/manifests/0.3.0-beta.5.json +9 -0
  271. package/dist/migrations/manifests/0.3.0-beta.6.json +9 -0
  272. package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
  273. package/dist/migrations/manifests/0.3.0-beta.8.json +9 -0
  274. package/dist/migrations/manifests/0.3.0-beta.9.json +9 -0
  275. package/dist/migrations/manifests/0.3.0-rc.0.json +9 -0
  276. package/dist/migrations/manifests/0.3.0-rc.1.json +9 -0
  277. package/dist/migrations/manifests/0.3.0-rc.2.json +9 -0
  278. package/dist/migrations/manifests/0.3.0-rc.3.json +9 -0
  279. package/dist/migrations/manifests/0.3.0-rc.4.json +9 -0
  280. package/dist/migrations/manifests/0.3.0-rc.5.json +9 -0
  281. package/dist/migrations/manifests/0.3.0-rc.6.json +9 -0
  282. package/dist/migrations/manifests/0.3.0.json +11 -0
  283. package/dist/migrations/manifests/0.3.1.json +9 -0
  284. package/dist/migrations/manifests/0.3.10.json +9 -0
  285. package/dist/migrations/manifests/0.3.2.json +9 -0
  286. package/dist/migrations/manifests/0.3.3.json +9 -0
  287. package/dist/migrations/manifests/0.3.4.json +21 -0
  288. package/dist/migrations/manifests/0.3.5.json +9 -0
  289. package/dist/migrations/manifests/0.3.6.json +9 -0
  290. package/dist/migrations/manifests/0.3.7.json +9 -0
  291. package/dist/migrations/manifests/0.3.8.json +9 -0
  292. package/dist/migrations/manifests/0.3.9.json +9 -0
  293. package/dist/migrations/manifests/0.4.0-beta.1.json +228 -0
  294. package/dist/migrations/manifests/0.4.0-beta.10.json +9 -0
  295. package/dist/migrations/manifests/0.4.0-beta.2.json +9 -0
  296. package/dist/migrations/manifests/0.4.0-beta.3.json +9 -0
  297. package/dist/migrations/manifests/0.4.0-beta.4.json +9 -0
  298. package/dist/migrations/manifests/0.4.0-beta.5.json +9 -0
  299. package/dist/migrations/manifests/0.4.0-beta.6.json +9 -0
  300. package/dist/migrations/manifests/0.4.0-beta.7.json +9 -0
  301. package/dist/migrations/manifests/0.4.0-beta.8.json +34 -0
  302. package/dist/migrations/manifests/0.4.0-beta.9.json +9 -0
  303. package/dist/migrations/manifests/0.4.0-rc.0.json +9 -0
  304. package/dist/migrations/manifests/0.4.0-rc.1.json +9 -0
  305. package/dist/migrations/manifests/0.4.0.json +9 -0
  306. package/dist/migrations/manifests/0.5.0-beta.0.json +1646 -0
  307. package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
  308. package/dist/migrations/manifests/0.5.0-beta.10.json +9 -0
  309. package/dist/migrations/manifests/0.5.0-beta.11.json +9 -0
  310. package/dist/migrations/manifests/0.5.0-beta.12.json +9 -0
  311. package/dist/migrations/manifests/0.5.0-beta.13.json +9 -0
  312. package/dist/migrations/manifests/0.5.0-beta.14.json +9 -0
  313. package/dist/migrations/manifests/0.5.0-beta.15.json +116 -0
  314. package/dist/migrations/manifests/0.5.0-beta.16.json +9 -0
  315. package/dist/migrations/manifests/0.5.0-beta.17.json +9 -0
  316. package/dist/migrations/manifests/0.5.0-beta.18.json +9 -0
  317. package/dist/migrations/manifests/0.5.0-beta.19.json +9 -0
  318. package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
  319. package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
  320. package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
  321. package/dist/migrations/manifests/0.5.0-beta.5.json +222 -0
  322. package/dist/migrations/manifests/0.5.0-beta.6.json +9 -0
  323. package/dist/migrations/manifests/0.5.0-beta.7.json +9 -0
  324. package/dist/migrations/manifests/0.5.0-beta.8.json +9 -0
  325. package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
  326. package/dist/migrations/manifests/0.5.0-rc.0.json +9 -0
  327. package/dist/migrations/manifests/0.5.0-rc.1.json +9 -0
  328. package/dist/migrations/manifests/0.5.0-rc.2.json +9 -0
  329. package/dist/migrations/manifests/0.5.0-rc.3.json +9 -0
  330. package/dist/migrations/manifests/0.5.0-rc.4.json +9 -0
  331. package/dist/migrations/manifests/0.5.0-rc.5.json +9 -0
  332. package/dist/migrations/manifests/0.5.0-rc.6.json +9 -0
  333. package/dist/migrations/manifests/0.5.0-rc.7.json +9 -0
  334. package/dist/migrations/manifests/0.5.0.json +9 -0
  335. package/dist/migrations/manifests/0.5.1.json +9 -0
  336. package/dist/migrations/manifests/0.5.10.json +9 -0
  337. package/dist/migrations/manifests/0.5.11.json +16 -0
  338. package/dist/migrations/manifests/0.5.12.json +9 -0
  339. package/dist/migrations/manifests/0.5.13.json +9 -0
  340. package/dist/migrations/manifests/0.5.14.json +9 -0
  341. package/dist/migrations/manifests/0.5.15.json +9 -0
  342. package/dist/migrations/manifests/0.5.2.json +9 -0
  343. package/dist/migrations/manifests/0.5.3.json +9 -0
  344. package/dist/migrations/manifests/0.5.4.json +9 -0
  345. package/dist/migrations/manifests/0.5.5.json +9 -0
  346. package/dist/migrations/manifests/0.5.6.json +9 -0
  347. package/dist/migrations/manifests/0.5.7.json +16 -0
  348. package/dist/migrations/manifests/0.5.8.json +9 -0
  349. package/dist/migrations/manifests/0.5.9.json +9 -0
  350. package/dist/migrations/manifests/0.6.0-beta.0.json +16 -0
  351. package/dist/migrations/manifests/0.6.0-beta.1.json +9 -0
  352. package/dist/migrations/manifests/0.6.0-beta.10.json +9 -0
  353. package/dist/migrations/manifests/0.6.0-beta.11.json +9 -0
  354. package/dist/migrations/manifests/0.6.0-beta.12.json +9 -0
  355. package/dist/migrations/manifests/0.6.0-beta.13.json +9 -0
  356. package/dist/migrations/manifests/0.6.0-beta.14.json +9 -0
  357. package/dist/migrations/manifests/0.6.0-beta.15.json +9 -0
  358. package/dist/migrations/manifests/0.6.0-beta.16.json +9 -0
  359. package/dist/migrations/manifests/0.6.0-beta.17.json +9 -0
  360. package/dist/migrations/manifests/0.6.0-beta.2.json +9 -0
  361. package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
  362. package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
  363. package/dist/migrations/manifests/0.6.0-beta.5.json +9 -0
  364. package/dist/migrations/manifests/0.6.0-beta.6.json +16 -0
  365. package/dist/migrations/manifests/0.6.0-beta.7.json +9 -0
  366. package/dist/migrations/manifests/0.6.0-beta.8.json +9 -0
  367. package/dist/migrations/manifests/0.6.0-beta.9.json +9 -0
  368. package/dist/templates/claude/agents/trellis-check.md +123 -0
  369. package/dist/templates/claude/agents/trellis-code-architecture-review.md +71 -0
  370. package/dist/templates/claude/agents/trellis-code-review.md +71 -0
  371. package/dist/templates/claude/agents/trellis-implement.md +118 -0
  372. package/dist/templates/claude/agents/trellis-merge-review.md +72 -0
  373. package/dist/templates/claude/agents/trellis-research.md +137 -0
  374. package/dist/templates/claude/agents/trellis-spec-review.md +71 -0
  375. package/dist/templates/claude/index.d.ts +22 -0
  376. package/dist/templates/claude/index.d.ts.map +1 -0
  377. package/dist/templates/claude/index.js +46 -0
  378. package/dist/templates/claude/index.js.map +1 -0
  379. package/dist/templates/claude/settings.json +73 -0
  380. package/dist/templates/codebuddy/agents/trellis-check.md +115 -0
  381. package/dist/templates/codebuddy/agents/trellis-implement.md +110 -0
  382. package/dist/templates/codebuddy/agents/trellis-research.md +137 -0
  383. package/dist/templates/codebuddy/index.d.ts +15 -0
  384. package/dist/templates/codebuddy/index.d.ts.map +1 -0
  385. package/dist/templates/codebuddy/index.js +15 -0
  386. package/dist/templates/codebuddy/index.js.map +1 -0
  387. package/dist/templates/codebuddy/settings.json +59 -0
  388. package/dist/templates/codex/agents/trellis-check.toml +84 -0
  389. package/dist/templates/codex/agents/trellis-implement.toml +65 -0
  390. package/dist/templates/codex/agents/trellis-research.toml +73 -0
  391. package/dist/templates/codex/config.toml +35 -0
  392. package/dist/templates/codex/hooks/session-start.py +545 -0
  393. package/dist/templates/codex/hooks.json +15 -0
  394. package/dist/templates/codex/index.d.ts +39 -0
  395. package/dist/templates/codex/index.d.ts.map +1 -0
  396. package/dist/templates/codex/index.js +85 -0
  397. package/dist/templates/codex/index.js.map +1 -0
  398. package/dist/templates/codex/skills/before-dev/SKILL.md +40 -0
  399. package/dist/templates/codex/skills/brainstorm/SKILL.md +112 -0
  400. package/dist/templates/codex/skills/break-loop/SKILL.md +130 -0
  401. package/dist/templates/codex/skills/check/SKILL.md +98 -0
  402. package/dist/templates/codex/skills/check-cross-layer/SKILL.md +158 -0
  403. package/dist/templates/codex/skills/create-command/SKILL.md +101 -0
  404. package/dist/templates/codex/skills/finish-work/SKILL.md +90 -0
  405. package/dist/templates/codex/skills/improve-ut/SKILL.md +69 -0
  406. package/dist/templates/codex/skills/integrate-skill/SKILL.md +221 -0
  407. package/dist/templates/codex/skills/onboard/SKILL.md +363 -0
  408. package/dist/templates/codex/skills/record-session/SKILL.md +67 -0
  409. package/dist/templates/codex/skills/start/SKILL.md +64 -0
  410. package/dist/templates/codex/skills/update-spec/SKILL.md +335 -0
  411. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +73 -0
  412. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/add-project-local-conventions.md +83 -0
  413. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +54 -0
  414. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-context-loading.md +84 -0
  415. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-hooks.md +57 -0
  416. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +78 -0
  417. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +83 -0
  418. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +90 -0
  419. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +65 -0
  420. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +55 -0
  421. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/context-injection.md +68 -0
  422. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +80 -0
  423. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/overview.md +51 -0
  424. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +102 -0
  425. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +130 -0
  426. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +75 -0
  427. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workspace-memory.md +71 -0
  428. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +80 -0
  429. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/hooks-and-settings.md +69 -0
  430. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/overview.md +59 -0
  431. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +74 -0
  432. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +83 -0
  433. package/dist/templates/common/commands/continue.md +56 -0
  434. package/dist/templates/common/commands/finish-work.md +66 -0
  435. package/dist/templates/common/commands/start.md +59 -0
  436. package/dist/templates/common/index.d.ts +48 -0
  437. package/dist/templates/common/index.d.ts.map +1 -0
  438. package/dist/templates/common/index.js +104 -0
  439. package/dist/templates/common/index.js.map +1 -0
  440. package/dist/templates/common/skills/before-dev.md +41 -0
  441. package/dist/templates/common/skills/brainstorm.md +112 -0
  442. package/dist/templates/common/skills/break-loop.md +125 -0
  443. package/dist/templates/common/skills/check.md +93 -0
  444. package/dist/templates/common/skills/grill-me.md +49 -0
  445. package/dist/templates/common/skills/improve-codebase-architecture.md +38 -0
  446. package/dist/templates/common/skills/tdd.md +34 -0
  447. package/dist/templates/common/skills/update-spec.md +351 -0
  448. package/dist/templates/copilot/hooks/session-start.py +547 -0
  449. package/dist/templates/copilot/hooks.json +19 -0
  450. package/dist/templates/copilot/index.d.ts +23 -0
  451. package/dist/templates/copilot/index.d.ts.map +1 -0
  452. package/dist/templates/copilot/index.js +54 -0
  453. package/dist/templates/copilot/index.js.map +1 -0
  454. package/dist/templates/copilot/prompts/before-dev.prompt.md +39 -0
  455. package/dist/templates/copilot/prompts/brainstorm.prompt.md +111 -0
  456. package/dist/templates/copilot/prompts/break-loop.prompt.md +129 -0
  457. package/dist/templates/copilot/prompts/check-cross-layer.prompt.md +157 -0
  458. package/dist/templates/copilot/prompts/check.prompt.md +97 -0
  459. package/dist/templates/copilot/prompts/create-command.prompt.md +116 -0
  460. package/dist/templates/copilot/prompts/finish-work.prompt.md +99 -0
  461. package/dist/templates/copilot/prompts/integrate-skill.prompt.md +223 -0
  462. package/dist/templates/copilot/prompts/onboard.prompt.md +362 -0
  463. package/dist/templates/copilot/prompts/parallel.prompt.md +204 -0
  464. package/dist/templates/copilot/prompts/record-session.prompt.md +66 -0
  465. package/dist/templates/copilot/prompts/start.prompt.md +63 -0
  466. package/dist/templates/copilot/prompts/update-spec.prompt.md +358 -0
  467. package/dist/templates/cursor/agents/trellis-check.md +114 -0
  468. package/dist/templates/cursor/agents/trellis-implement.md +109 -0
  469. package/dist/templates/cursor/agents/trellis-research.md +136 -0
  470. package/dist/templates/cursor/hooks.json +24 -0
  471. package/dist/templates/cursor/index.d.ts +13 -0
  472. package/dist/templates/cursor/index.d.ts.map +1 -0
  473. package/dist/templates/cursor/index.js +13 -0
  474. package/dist/templates/cursor/index.js.map +1 -0
  475. package/dist/templates/droid/droids/trellis-check.md +107 -0
  476. package/dist/templates/droid/droids/trellis-implement.md +102 -0
  477. package/dist/templates/droid/droids/trellis-research.md +137 -0
  478. package/dist/templates/droid/index.d.ts +15 -0
  479. package/dist/templates/droid/index.d.ts.map +1 -0
  480. package/dist/templates/droid/index.js +15 -0
  481. package/dist/templates/droid/index.js.map +1 -0
  482. package/dist/templates/droid/settings.json +59 -0
  483. package/dist/templates/extract.d.ts +40 -0
  484. package/dist/templates/extract.d.ts.map +1 -0
  485. package/dist/templates/extract.js +106 -0
  486. package/dist/templates/extract.js.map +1 -0
  487. package/dist/templates/gemini/agents/trellis-check.md +107 -0
  488. package/dist/templates/gemini/agents/trellis-implement.md +102 -0
  489. package/dist/templates/gemini/agents/trellis-research.md +136 -0
  490. package/dist/templates/gemini/index.d.ts +13 -0
  491. package/dist/templates/gemini/index.d.ts.map +1 -0
  492. package/dist/templates/gemini/index.js +13 -0
  493. package/dist/templates/gemini/index.js.map +1 -0
  494. package/dist/templates/gemini/settings.json +28 -0
  495. package/dist/templates/kiro/agents/trellis-check.json +26 -0
  496. package/dist/templates/kiro/agents/trellis-implement.json +26 -0
  497. package/dist/templates/kiro/agents/trellis-research.json +30 -0
  498. package/dist/templates/kiro/index.d.ts +18 -0
  499. package/dist/templates/kiro/index.d.ts.map +1 -0
  500. package/dist/templates/kiro/index.js +18 -0
  501. package/dist/templates/kiro/index.js.map +1 -0
  502. package/dist/templates/markdown/agents.md +21 -0
  503. package/dist/templates/markdown/gitignore.txt +15 -0
  504. package/dist/templates/markdown/index.d.ts +27 -0
  505. package/dist/templates/markdown/index.d.ts.map +1 -0
  506. package/dist/templates/markdown/index.js +52 -0
  507. package/dist/templates/markdown/index.js.map +1 -0
  508. package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
  509. package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
  510. package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
  511. package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
  512. package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
  513. package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
  514. package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
  515. package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
  516. package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
  517. package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
  518. package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
  519. package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
  520. package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
  521. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +223 -0
  522. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +259 -0
  523. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +595 -0
  524. package/dist/templates/markdown/spec/guides/index.md.txt +97 -0
  525. package/dist/templates/markdown/workspace-index.md +125 -0
  526. package/dist/templates/markdown/worktree.yaml.txt +58 -0
  527. package/dist/templates/opencode/agents/trellis-check.md +122 -0
  528. package/dist/templates/opencode/agents/trellis-implement.md +118 -0
  529. package/dist/templates/opencode/agents/trellis-research.md +145 -0
  530. package/dist/templates/opencode/lib/session-utils.js +521 -0
  531. package/dist/templates/opencode/lib/trellis-context.js +381 -0
  532. package/dist/templates/opencode/package.json +5 -0
  533. package/dist/templates/opencode/plugins/inject-subagent-context.js +513 -0
  534. package/dist/templates/opencode/plugins/inject-workflow-state.js +159 -0
  535. package/dist/templates/opencode/plugins/session-start.js +101 -0
  536. package/dist/templates/pi/agents/trellis-check.md +37 -0
  537. package/dist/templates/pi/agents/trellis-implement.md +42 -0
  538. package/dist/templates/pi/agents/trellis-research.md +25 -0
  539. package/dist/templates/pi/extensions/trellis/index.ts.txt +1174 -0
  540. package/dist/templates/pi/index.d.ts +5 -0
  541. package/dist/templates/pi/index.d.ts.map +1 -0
  542. package/dist/templates/pi/index.js +12 -0
  543. package/dist/templates/pi/index.js.map +1 -0
  544. package/dist/templates/pi/settings.json +21 -0
  545. package/dist/templates/qoder/agents/trellis-check.md +108 -0
  546. package/dist/templates/qoder/agents/trellis-implement.md +103 -0
  547. package/dist/templates/qoder/agents/trellis-research.md +137 -0
  548. package/dist/templates/qoder/index.d.ts +15 -0
  549. package/dist/templates/qoder/index.d.ts.map +1 -0
  550. package/dist/templates/qoder/index.js +15 -0
  551. package/dist/templates/qoder/index.js.map +1 -0
  552. package/dist/templates/qoder/settings.json +47 -0
  553. package/dist/templates/shared-hooks/index.d.ts +50 -0
  554. package/dist/templates/shared-hooks/index.d.ts.map +1 -0
  555. package/dist/templates/shared-hooks/index.js +88 -0
  556. package/dist/templates/shared-hooks/index.js.map +1 -0
  557. package/dist/templates/shared-hooks/inject-shell-session-context.py +183 -0
  558. package/dist/templates/shared-hooks/inject-subagent-context.py +771 -0
  559. package/dist/templates/shared-hooks/inject-workflow-state.py +363 -0
  560. package/dist/templates/shared-hooks/session-start.py +832 -0
  561. package/dist/templates/template-utils.d.ts +26 -0
  562. package/dist/templates/template-utils.d.ts.map +1 -0
  563. package/dist/templates/template-utils.js +60 -0
  564. package/dist/templates/template-utils.js.map +1 -0
  565. package/dist/templates/trellis/config.yaml +90 -0
  566. package/dist/templates/trellis/gitignore.txt +32 -0
  567. package/dist/templates/trellis/index.d.ts +52 -0
  568. package/dist/templates/trellis/index.d.ts.map +1 -0
  569. package/dist/templates/trellis/index.js +97 -0
  570. package/dist/templates/trellis/index.js.map +1 -0
  571. package/dist/templates/trellis/scripts/__init__.py +5 -0
  572. package/dist/templates/trellis/scripts/add_session.py +547 -0
  573. package/dist/templates/trellis/scripts/common/__init__.py +92 -0
  574. package/dist/templates/trellis/scripts/common/active_task.py +626 -0
  575. package/dist/templates/trellis/scripts/common/cli_adapter.py +811 -0
  576. package/dist/templates/trellis/scripts/common/config.py +445 -0
  577. package/dist/templates/trellis/scripts/common/developer.py +190 -0
  578. package/dist/templates/trellis/scripts/common/git.py +31 -0
  579. package/dist/templates/trellis/scripts/common/git_context.py +106 -0
  580. package/dist/templates/trellis/scripts/common/io.py +37 -0
  581. package/dist/templates/trellis/scripts/common/log.py +45 -0
  582. package/dist/templates/trellis/scripts/common/packages_context.py +238 -0
  583. package/dist/templates/trellis/scripts/common/paths.py +447 -0
  584. package/dist/templates/trellis/scripts/common/safe_commit.py +285 -0
  585. package/dist/templates/trellis/scripts/common/session_context.py +821 -0
  586. package/dist/templates/trellis/scripts/common/task_context.py +223 -0
  587. package/dist/templates/trellis/scripts/common/task_queue.py +188 -0
  588. package/dist/templates/trellis/scripts/common/task_store.py +698 -0
  589. package/dist/templates/trellis/scripts/common/task_utils.py +274 -0
  590. package/dist/templates/trellis/scripts/common/tasks.py +112 -0
  591. package/dist/templates/trellis/scripts/common/trellis_config.py +131 -0
  592. package/dist/templates/trellis/scripts/common/types.py +110 -0
  593. package/dist/templates/trellis/scripts/common/workflow_phase.py +212 -0
  594. package/dist/templates/trellis/scripts/get_context.py +16 -0
  595. package/dist/templates/trellis/scripts/get_developer.py +26 -0
  596. package/dist/templates/trellis/scripts/hooks/linear_sync.py +243 -0
  597. package/dist/templates/trellis/scripts/init_developer.py +51 -0
  598. package/dist/templates/trellis/scripts/task.py +500 -0
  599. package/dist/templates/trellis/tasks/.gitkeep +0 -0
  600. package/dist/templates/trellis/workflow.md +750 -0
  601. package/dist/types/ai-tools.d.ts +95 -0
  602. package/dist/types/ai-tools.d.ts.map +1 -0
  603. package/dist/types/ai-tools.js +280 -0
  604. package/dist/types/ai-tools.js.map +1 -0
  605. package/dist/types/migration.d.ts +125 -0
  606. package/dist/types/migration.d.ts.map +1 -0
  607. package/dist/types/migration.js +8 -0
  608. package/dist/types/migration.js.map +1 -0
  609. package/dist/utils/compare-versions.d.ts +12 -0
  610. package/dist/utils/compare-versions.d.ts.map +1 -0
  611. package/dist/utils/compare-versions.js +86 -0
  612. package/dist/utils/compare-versions.js.map +1 -0
  613. package/dist/utils/cwd-guard.d.ts +38 -0
  614. package/dist/utils/cwd-guard.d.ts.map +1 -0
  615. package/dist/utils/cwd-guard.js +62 -0
  616. package/dist/utils/cwd-guard.js.map +1 -0
  617. package/dist/utils/file-writer.d.ts +36 -0
  618. package/dist/utils/file-writer.d.ts.map +1 -0
  619. package/dist/utils/file-writer.js +203 -0
  620. package/dist/utils/file-writer.js.map +1 -0
  621. package/dist/utils/manifest-prune.d.ts +61 -0
  622. package/dist/utils/manifest-prune.d.ts.map +1 -0
  623. package/dist/utils/manifest-prune.js +136 -0
  624. package/dist/utils/manifest-prune.js.map +1 -0
  625. package/dist/utils/posix.d.ts +13 -0
  626. package/dist/utils/posix.d.ts.map +1 -0
  627. package/dist/utils/posix.js +15 -0
  628. package/dist/utils/posix.js.map +1 -0
  629. package/dist/utils/project-detector.d.ts +46 -0
  630. package/dist/utils/project-detector.d.ts.map +1 -0
  631. package/dist/utils/project-detector.js +666 -0
  632. package/dist/utils/project-detector.js.map +1 -0
  633. package/dist/utils/proxy.d.ts +25 -0
  634. package/dist/utils/proxy.d.ts.map +1 -0
  635. package/dist/utils/proxy.js +60 -0
  636. package/dist/utils/proxy.js.map +1 -0
  637. package/dist/utils/task-json.d.ts +13 -0
  638. package/dist/utils/task-json.d.ts.map +1 -0
  639. package/dist/utils/task-json.js +12 -0
  640. package/dist/utils/task-json.js.map +1 -0
  641. package/dist/utils/template-fetcher.d.ts +150 -0
  642. package/dist/utils/template-fetcher.d.ts.map +1 -0
  643. package/dist/utils/template-fetcher.js +907 -0
  644. package/dist/utils/template-fetcher.js.map +1 -0
  645. package/dist/utils/template-hash.d.ts +123 -0
  646. package/dist/utils/template-hash.d.ts.map +1 -0
  647. package/dist/utils/template-hash.js +334 -0
  648. package/dist/utils/template-hash.js.map +1 -0
  649. package/dist/utils/uninstall-scrubbers.d.ts +66 -0
  650. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -0
  651. package/dist/utils/uninstall-scrubbers.js +342 -0
  652. package/dist/utils/uninstall-scrubbers.js.map +1 -0
  653. package/dist/utils/workflow-resolver.d.ts +86 -0
  654. package/dist/utils/workflow-resolver.d.ts.map +1 -0
  655. package/dist/utils/workflow-resolver.js +265 -0
  656. package/dist/utils/workflow-resolver.js.map +1 -0
  657. package/package.json +90 -0
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Supervisor pre-timeout warning scheduler.
3
+ *
4
+ * Emits a one-shot `supervisor_warning` channel event when the worker
5
+ * is approaching its lifetime timeout, so observers (dispatchers /
6
+ * `trellis channel messages`) can see the impending kill without
7
+ * having to poll. The event is observability-only — it never replaces
8
+ * the eventual `killed` / `done` / `error` terminal event, and is
9
+ * not part of the meaningful-event set so plain `wait` does not wake
10
+ * on it unless `--kind supervisor_warning` is explicit.
11
+ *
12
+ * Scheduling lives outside `createShutdown()` because the warning is a
13
+ * pre-terminal observability event, not a terminal one — the shutdown
14
+ * funnel deliberately only owns kill ladder + `killed` append.
15
+ */
16
+ /** Default lead time before the supervisor timeout (ms) to fire the warning. */
17
+ export declare const SUPERVISOR_TIMEOUT_WARNING_REMAINING_MS: number;
18
+ export interface SupervisorShutdownProbe {
19
+ isShuttingDown(): boolean;
20
+ hasTerminalEvent(): boolean;
21
+ }
22
+ export interface ScheduleSupervisorTimeoutWarningArgs {
23
+ channelName: string;
24
+ workerName: string;
25
+ timeoutMs: number;
26
+ /** Warning lead time in ms. `<= 0` disables the pre-timeout warning. */
27
+ warnBeforeMs?: number;
28
+ shutdown: SupervisorShutdownProbe;
29
+ /** Returns true once the child process has exited (exitCode/signalCode set). */
30
+ isChildExited: () => boolean;
31
+ log: {
32
+ write: (data: string) => void;
33
+ };
34
+ project?: string;
35
+ }
36
+ /**
37
+ * Schedule a single `supervisor_warning` append at `timeoutMs - warnBeforeMs`
38
+ * (clamped at 0 when the warning lead time is greater than the timeout).
39
+ * Guarded so the warning is emitted at most once, never after shutdown
40
+ * has been requested, never after a terminal event has been emitted,
41
+ * and never after the worker child has exited.
42
+ *
43
+ * Returns a cancel handle that callers can invoke to drop the pending
44
+ * timer (e.g. on supervisor teardown). Append failures are logged via
45
+ * `log.write` only and do not affect worker lifecycle.
46
+ */
47
+ export declare function scheduleSupervisorTimeoutWarning(args: ScheduleSupervisorTimeoutWarningArgs): () => void;
48
+ //# sourceMappingURL=warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warning.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,gFAAgF;AAChF,eAAO,MAAM,uCAAuC,QAAa,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,cAAc,IAAI,OAAO,CAAC;IAC1B,gBAAgB,IAAI,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gFAAgF;IAChF,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,GAAG,EAAE;QAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,oCAAoC,GACzC,MAAM,IAAI,CAuDZ"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Supervisor pre-timeout warning scheduler.
3
+ *
4
+ * Emits a one-shot `supervisor_warning` channel event when the worker
5
+ * is approaching its lifetime timeout, so observers (dispatchers /
6
+ * `trellis channel messages`) can see the impending kill without
7
+ * having to poll. The event is observability-only — it never replaces
8
+ * the eventual `killed` / `done` / `error` terminal event, and is
9
+ * not part of the meaningful-event set so plain `wait` does not wake
10
+ * on it unless `--kind supervisor_warning` is explicit.
11
+ *
12
+ * Scheduling lives outside `createShutdown()` because the warning is a
13
+ * pre-terminal observability event, not a terminal one — the shutdown
14
+ * funnel deliberately only owns kill ladder + `killed` append.
15
+ */
16
+ import { appendEvent } from "../store/events.js";
17
+ /** Default lead time before the supervisor timeout (ms) to fire the warning. */
18
+ export const SUPERVISOR_TIMEOUT_WARNING_REMAINING_MS = 5 * 60_000;
19
+ /**
20
+ * Schedule a single `supervisor_warning` append at `timeoutMs - warnBeforeMs`
21
+ * (clamped at 0 when the warning lead time is greater than the timeout).
22
+ * Guarded so the warning is emitted at most once, never after shutdown
23
+ * has been requested, never after a terminal event has been emitted,
24
+ * and never after the worker child has exited.
25
+ *
26
+ * Returns a cancel handle that callers can invoke to drop the pending
27
+ * timer (e.g. on supervisor teardown). Append failures are logged via
28
+ * `log.write` only and do not affect worker lifecycle.
29
+ */
30
+ export function scheduleSupervisorTimeoutWarning(args) {
31
+ const { channelName, workerName, timeoutMs, shutdown, isChildExited, log } = args;
32
+ if (timeoutMs <= 0)
33
+ return () => undefined;
34
+ const warnBeforeMs = args.warnBeforeMs ?? SUPERVISOR_TIMEOUT_WARNING_REMAINING_MS;
35
+ if (warnBeforeMs <= 0)
36
+ return () => undefined;
37
+ const remaining = Math.min(timeoutMs, warnBeforeMs);
38
+ const delay = Math.max(0, timeoutMs - remaining);
39
+ let warningEmitted = false;
40
+ let cancelled = false;
41
+ const fire = () => {
42
+ if (cancelled || warningEmitted)
43
+ return;
44
+ if (shutdown.isShuttingDown() ||
45
+ shutdown.hasTerminalEvent() ||
46
+ isChildExited()) {
47
+ return;
48
+ }
49
+ // Claim the slot synchronously so a re-entrant fire (or future
50
+ // caller wiring) cannot race two appends.
51
+ warningEmitted = true;
52
+ void (async () => {
53
+ try {
54
+ await appendEvent(channelName, {
55
+ kind: "supervisor_warning",
56
+ by: `supervisor:${workerName}`,
57
+ worker: workerName,
58
+ reason: "approaching_timeout",
59
+ timeout_ms: timeoutMs,
60
+ remaining_ms: remaining,
61
+ }, args.project);
62
+ }
63
+ catch (err) {
64
+ const msg = err instanceof Error ? err.message : String(err);
65
+ log.write(`[supervisor] warning append failed: ${msg}\n`);
66
+ }
67
+ })();
68
+ };
69
+ const timer = setTimeout(fire, delay);
70
+ // Don't keep the supervisor alive solely for the warning timer.
71
+ timer.unref?.();
72
+ return () => {
73
+ cancelled = true;
74
+ clearTimeout(timer);
75
+ };
76
+ }
77
+ //# sourceMappingURL=warning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warning.js","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,GAAG,MAAM,CAAC;AAoBlE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAC9C,IAA0C;IAE1C,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,GACxE,IAAI,CAAC;IACP,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAC3C,MAAM,YAAY,GAChB,IAAI,CAAC,YAAY,IAAI,uCAAuC,CAAC;IAC/D,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAEjD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,SAAS,IAAI,cAAc;YAAE,OAAO;QACxC,IACE,QAAQ,CAAC,cAAc,EAAE;YACzB,QAAQ,CAAC,gBAAgB,EAAE;YAC3B,aAAa,EAAE,EACf,CAAC;YACD,OAAO;QACT,CAAC;QACD,+DAA+D;QAC/D,0CAA0C;QAC1C,cAAc,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,WAAW,CACf,WAAW,EACX;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,EAAE,EAAE,cAAc,UAAU,EAAE;oBAC9B,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,qBAAqB;oBAC7B,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,SAAS;iBACxB,EACD,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,GAAG,CAAC,KAAK,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,gEAAgE;IAChE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhB,OAAO,GAAG,EAAE;QACV,SAAS,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Supervisor process: owns a single worker (claude or codex) and bridges
3
+ * worker ↔ channel events.jsonl.
4
+ *
5
+ * Run as: `trellis channel __supervisor <channel> <worker> <config-path>`
6
+ *
7
+ * Three concurrent loops:
8
+ * 1. stdout reader — parse worker stdout → adapter → append events
9
+ * 2. inbox watcher — read events.jsonl for `to=<worker>` say events,
10
+ * translate via adapter.encodeUserMessage → worker stdin
11
+ * 3. signal handler — SIGTERM → close worker stdin → 3s → SIGTERM → 3s → SIGKILL
12
+ * → write `killed` event → exit
13
+ */
14
+ import { type InboxPolicy } from "trellis-he-core/channel";
15
+ import { type Provider } from "./adapters/index.js";
16
+ export interface SupervisorConfig {
17
+ provider: Provider;
18
+ cwd: string;
19
+ /** Combined worker system prompt: channel protocol prefix + agent body.
20
+ * Injected via Claude `--append-system-prompt` or Codex `developerInstructions`.
21
+ * No "initial user prompt" — the worker stays idle until the first
22
+ * inbox `send --to <worker>` arrives. */
23
+ systemPrompt: string;
24
+ /** Extra env vars (TRELLIS_HOOKS=0 etc. are added automatically). */
25
+ env?: Record<string, string>;
26
+ /** Optional model override. */
27
+ model?: string;
28
+ /** Resume an existing session/thread if id is provided. */
29
+ resume?: string;
30
+ /** Auto-kill worker after this many ms (anti-zombie). */
31
+ timeoutMs?: number;
32
+ /** Emit supervisor_warning this many ms before timeout. `<=0` disables it. */
33
+ warnBeforeMs?: number;
34
+ /** Caller identity recorded on the `spawned` event (default "main"). */
35
+ spawnedBy?: string;
36
+ /** Agent definition name loaded for this worker, if any (recorded on `spawned`). */
37
+ agent?: string;
38
+ /** Relative paths injected via --file / --jsonl (recorded on `spawned`). */
39
+ contextFiles?: string[];
40
+ /** Relative paths of every `--jsonl` manifest processed, even if empty
41
+ * (recorded on `spawned` for observability — "I passed --jsonl X but
42
+ * X contained no real entries"). */
43
+ contextManifests?: string[];
44
+ /** Worker inbox delivery policy (recorded on `spawned`; default
45
+ * `explicitOnly`). */
46
+ inboxPolicy?: InboxPolicy;
47
+ }
48
+ /**
49
+ * Entry point invoked by `trellis channel __supervisor <channel> <worker> <config>`.
50
+ */
51
+ export declare function runSupervisor(channelName: string, workerName: string, configPath: string): Promise<void>;
52
+ export declare function writeSupervisorConfig(channelName: string, workerName: string, config: SupervisorConfig, project?: string): string;
53
+ //# sourceMappingURL=supervisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAShE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ;;;8CAG0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;yCAEqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;2BACuB;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAMD;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Rf;AA+BD,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAKR"}
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Supervisor process: owns a single worker (claude or codex) and bridges
3
+ * worker ↔ channel events.jsonl.
4
+ *
5
+ * Run as: `trellis channel __supervisor <channel> <worker> <config-path>`
6
+ *
7
+ * Three concurrent loops:
8
+ * 1. stdout reader — parse worker stdout → adapter → append events
9
+ * 2. inbox watcher — read events.jsonl for `to=<worker>` say events,
10
+ * translate via adapter.encodeUserMessage → worker stdin
11
+ * 3. signal handler — SIGTERM → close worker stdin → 3s → SIGTERM → 3s → SIGKILL
12
+ * → write `killed` event → exit
13
+ */
14
+ import { spawn } from "node:child_process";
15
+ import fs from "node:fs";
16
+ import path from "node:path";
17
+ import { DEFAULT_INBOX_POLICY, } from "trellis-he-core/channel";
18
+ import { getAdapter } from "./adapters/index.js";
19
+ import { appendEvent } from "./store/events.js";
20
+ import { workerFile } from "./store/paths.js";
21
+ import { runInboxWatcher } from "./supervisor/inbox.js";
22
+ import { createShutdown } from "./supervisor/shutdown.js";
23
+ import { startStdoutPump } from "./supervisor/stdout.js";
24
+ import { TurnTracker } from "./supervisor/turns.js";
25
+ import { scheduleSupervisorTimeoutWarning } from "./supervisor/warning.js";
26
+ const SHUTDOWN_GRACE_MS = 3000;
27
+ /**
28
+ * Entry point invoked by `trellis channel __supervisor <channel> <worker> <config>`.
29
+ */
30
+ export async function runSupervisor(channelName, workerName, configPath) {
31
+ const config = readConfig(configPath);
32
+ // Self-pid file lets `trellis channel kill` find us.
33
+ const project = process.env.TRELLIS_CHANNEL_PROJECT;
34
+ fs.writeFileSync(workerFile(channelName, workerName, "pid", project), String(process.pid));
35
+ // ── adapter selection ──
36
+ const adapter = getAdapter(config.provider);
37
+ const adapterCtx = adapter.createCtx();
38
+ const view = {
39
+ resume: config.resume,
40
+ model: config.model,
41
+ systemPrompt: config.systemPrompt,
42
+ cwd: config.cwd,
43
+ };
44
+ const args = adapter.buildArgs(view);
45
+ const env = {
46
+ ...process.env,
47
+ ...config.env,
48
+ TRELLIS_HOOKS: "0",
49
+ TRELLIS_CHANNEL: channelName,
50
+ TRELLIS_CHANNEL_AS: workerName,
51
+ };
52
+ const logPath = workerFile(channelName, workerName, "log", project);
53
+ const log = fs.createWriteStream(logPath);
54
+ log.write(`[supervisor] starting ${adapter.provider} ${args.join(" ")}\n`);
55
+ const child = spawn(adapter.provider, args, {
56
+ cwd: config.cwd,
57
+ env,
58
+ stdio: ["pipe", "pipe", "pipe"],
59
+ });
60
+ // ── shutdown controller declared before listener attachment ──
61
+ // Node fires `error` on next tick when spawn fails (ENOENT / EACCES);
62
+ // create the controller and attach listeners synchronously, with no
63
+ // await between spawn() and child.on("error").
64
+ const shutdown = createShutdown({
65
+ channelName,
66
+ workerName,
67
+ log,
68
+ getChild: () => child,
69
+ graceMs: SHUTDOWN_GRACE_MS,
70
+ timeoutMs: config.timeoutMs,
71
+ });
72
+ // Gate the `spawned` event behind whichever child lifecycle event fires
73
+ // first: `spawn` (success) or `error` (launch failure, e.g. ENOENT).
74
+ // Without this gate the post-spawn path writes `spawned` even when the
75
+ // process never actually started — and the racing error append makes
76
+ // `spawned` vs `error` ordering non-deterministic. Both rounds of CR
77
+ // converged on this.
78
+ let spawnFailed = false;
79
+ let settleSpawn = () => undefined;
80
+ const spawnSettled = new Promise((resolve) => {
81
+ settleSpawn = resolve;
82
+ });
83
+ // Attach listeners SYNCHRONOUSLY — no awaits between spawn() and these
84
+ // lines. Node fires `error` on next tick when spawn fails (ENOENT etc.),
85
+ // and if no listener is attached by then the supervisor dies with an
86
+ // unhandled error and leaves a stale .pid behind.
87
+ child.stderr.on("data", (b) => log.write(b));
88
+ child.once("spawn", () => {
89
+ settleSpawn();
90
+ });
91
+ child.on("error", (err) => {
92
+ // L1 fix: guard against double-fire of `error` (Node can re-emit it
93
+ // during pipe teardown). The startup-failed path runs an IIFE that
94
+ // owns process.exit; subsequent fires must be no-ops or we'd queue
95
+ // duplicate error events.
96
+ if (spawnFailed)
97
+ return;
98
+ log.write(`[supervisor] worker error: ${err.message}\n`);
99
+ if (!child.pid) {
100
+ // Pre-spawn failure (ENOENT / EACCES): emit ONE `error` event,
101
+ // skip the misleading `spawned{pid:undefined}`, clean up, and exit
102
+ // so the supervisor doesn't linger as a zombie waiting for an
103
+ // `exit` event that Node won't deliver.
104
+ spawnFailed = true;
105
+ settleSpawn();
106
+ void (async () => {
107
+ try {
108
+ await appendEvent(channelName, {
109
+ kind: "error",
110
+ by: `supervisor:${workerName}`,
111
+ message: `worker spawn failed: ${err.message}`,
112
+ provider: config.provider,
113
+ }, project);
114
+ }
115
+ catch {
116
+ // ignore — we're exiting anyway
117
+ }
118
+ await cleanup(channelName, workerName).catch(() => undefined);
119
+ process.exit(1);
120
+ })();
121
+ return;
122
+ }
123
+ // Post-spawn error (worker already running). Claude M2 fix: await
124
+ // the `error` append BEFORE requesting shutdown so `killed` can't
125
+ // land first in events.jsonl.
126
+ //
127
+ // Sync-claim the shutdown reason FIRST so other code paths (e.g.
128
+ // the `await spawnSettled` re-check, future inbox-handler probes)
129
+ // observe `isShuttingDown=true` immediately, before the IIFE
130
+ // suspends on its first await.
131
+ shutdown.claim("crash");
132
+ void (async () => {
133
+ try {
134
+ await appendEvent(channelName, {
135
+ kind: "error",
136
+ by: `supervisor:${workerName}`,
137
+ message: `worker process error: ${err.message}`,
138
+ provider: config.provider,
139
+ }, project);
140
+ }
141
+ catch {
142
+ // ignore
143
+ }
144
+ await shutdown.request("SIGTERM", "crash");
145
+ })();
146
+ });
147
+ child.on("exit", (code, sig) => {
148
+ // Codex #1 + #2 fix: synthesise a fallback terminal event when the
149
+ // adapter never produced one (otherwise `wait --kind done` hangs),
150
+ // and await any in-flight `killed` append from a concurrent shutdown
151
+ // before exiting so the event doesn't race the process death.
152
+ void (async () => {
153
+ await shutdown.finalizeOnExit(code, sig).catch(() => undefined);
154
+ await cleanup(channelName, workerName).catch(() => undefined);
155
+ process.exit(0);
156
+ })();
157
+ });
158
+ // Signal handlers MUST be registered before any await so a SIGTERM
159
+ // arriving during the spawn-settle / spawned-append window funnels
160
+ // into `shutdown.request` instead of using Node's default behaviour
161
+ // (which would orphan the child and skip the `killed` event).
162
+ process.on("SIGTERM", () => void shutdown.request("SIGTERM", "explicit-kill"));
163
+ process.on("SIGINT", () => void shutdown.request("SIGINT", "explicit-kill"));
164
+ // SIGHUP arrives when the parent terminal closes — without this
165
+ // handler Node's default behaviour exits the supervisor before the
166
+ // killed-append lands.
167
+ process.on("SIGHUP", () => void shutdown.request("SIGHUP", "explicit-kill"));
168
+ // Wait until either `spawn` or pre-spawn `error` fires before writing
169
+ // the `spawned` event. The error handler exits the process directly,
170
+ // so reaching this point with `spawnFailed=true` means we already kicked
171
+ // off cleanup and can bail cleanly.
172
+ await spawnSettled;
173
+ if (spawnFailed)
174
+ return;
175
+ // Codex #3 fix: if a signal/timeout requested shutdown while we were
176
+ // waiting for spawn-settled, don't write a misleading `spawned` event;
177
+ // let the in-flight `killed` append complete and bail.
178
+ if (shutdown.isShuttingDown()) {
179
+ await shutdown.awaitFinalize();
180
+ return;
181
+ }
182
+ fs.writeFileSync(workerFile(channelName, workerName, "worker-pid", project), String(child.pid));
183
+ const turnTracker = new TurnTracker();
184
+ await appendEvent(channelName, {
185
+ kind: "spawned",
186
+ by: config.spawnedBy ?? "main",
187
+ as: workerName,
188
+ provider: config.provider,
189
+ pid: child.pid,
190
+ inboxPolicy: config.inboxPolicy ?? DEFAULT_INBOX_POLICY,
191
+ ...(config.agent ? { agent: config.agent } : {}),
192
+ ...(config.contextFiles && config.contextFiles.length > 0
193
+ ? { files: config.contextFiles }
194
+ : {}),
195
+ ...(config.contextManifests && config.contextManifests.length > 0
196
+ ? { manifests: config.contextManifests }
197
+ : {}),
198
+ }, project);
199
+ // ── 1. stdout reader ──
200
+ startStdoutPump({
201
+ channelName,
202
+ workerName,
203
+ child,
204
+ adapter,
205
+ adapterCtx,
206
+ log,
207
+ shutdown,
208
+ turnTracker,
209
+ });
210
+ // ── timeout guard (anti-zombie) ──
211
+ if (config.timeoutMs && config.timeoutMs > 0) {
212
+ setTimeout(() => {
213
+ log.write(`[supervisor] timeout ${config.timeoutMs}ms reached, killing worker\n`);
214
+ // shutdown.request emits a single `killed{reason:"timeout"}` event;
215
+ // no need to emit a separate one here.
216
+ void shutdown.request("SIGTERM", "timeout");
217
+ }, config.timeoutMs).unref();
218
+ // Fire-and-forget pre-timeout observability warning. One-shot, guarded
219
+ // by shutdown/terminal/exit state so it stays quiet once the worker is
220
+ // already on its way out.
221
+ scheduleSupervisorTimeoutWarning({
222
+ channelName,
223
+ workerName,
224
+ timeoutMs: config.timeoutMs,
225
+ warnBeforeMs: config.warnBeforeMs,
226
+ shutdown,
227
+ isChildExited: () => child.exitCode !== null || child.signalCode !== null,
228
+ log,
229
+ project,
230
+ });
231
+ }
232
+ // ── 3. inbox watcher ──
233
+ // Start BEFORE adapter.handshake() so messages arriving during the
234
+ // handshake window are captured. The adapter's `isReady()` is checked
235
+ // inside runInboxWatcher; codex blocks there until thread/start lands.
236
+ const abort = new AbortController();
237
+ process.on("exit", () => abort.abort());
238
+ void runInboxWatcher({
239
+ channelName,
240
+ workerName,
241
+ adapter,
242
+ ctx: adapterCtx,
243
+ child,
244
+ signal: abort.signal,
245
+ inboxPolicy: config.inboxPolicy ?? DEFAULT_INBOX_POLICY,
246
+ turnTracker,
247
+ });
248
+ // ── adapter handshake (no initial user prompt) ──
249
+ if (adapter.handshake) {
250
+ try {
251
+ await adapter.handshake({ child, ctx: adapterCtx, view });
252
+ }
253
+ catch (err) {
254
+ const msg = err instanceof Error ? err.message : String(err);
255
+ log.write(`[supervisor] adapter handshake failed: ${msg}\n`);
256
+ // Codex #4 fix: emit an `error` event with the handshake message
257
+ // BEFORE requesting shutdown — otherwise the channel only sees a
258
+ // `killed{reason:"crash"}` with no detail on what went wrong.
259
+ void (async () => {
260
+ try {
261
+ await appendEvent(channelName, {
262
+ kind: "error",
263
+ by: `supervisor:${workerName}`,
264
+ message: `handshake failed: ${msg}`,
265
+ provider: config.provider,
266
+ detail: { source: "handshake" },
267
+ }, project);
268
+ }
269
+ catch {
270
+ // ignore
271
+ }
272
+ await shutdown.request("SIGTERM", "crash");
273
+ })();
274
+ }
275
+ }
276
+ }
277
+ async function cleanup(channelName, workerName) {
278
+ // Remove ephemeral runtime files. Keep `log` (forensic), `session-id` /
279
+ // `thread-id` (future resume). The .spawnlock should already be gone
280
+ // because `withLock` released it; we delete it defensively in case the
281
+ // CLI crashed mid-spawn and left a stale one.
282
+ // Keep `log` (forensic), `session-id` / `thread-id` (future resume).
283
+ // `inbox-cursor` is kept so a respawn (same worker name without
284
+ // killing the channel) doesn't replay messages.
285
+ for (const suffix of ["pid", "worker-pid", "config", "spawnlock"]) {
286
+ try {
287
+ fs.unlinkSync(workerFile(channelName, workerName, suffix, process.env.TRELLIS_CHANNEL_PROJECT));
288
+ }
289
+ catch {
290
+ // already gone
291
+ }
292
+ }
293
+ }
294
+ function readConfig(p) {
295
+ return JSON.parse(fs.readFileSync(p, "utf-8"));
296
+ }
297
+ // Helper to write a fresh config file before forking the supervisor.
298
+ export function writeSupervisorConfig(channelName, workerName, config, project) {
299
+ const p = workerFile(channelName, workerName, "config", project);
300
+ fs.mkdirSync(path.dirname(p), { recursive: true });
301
+ fs.writeFileSync(p, JSON.stringify(config, null, 2), "utf-8");
302
+ return p;
303
+ }
304
+ //# sourceMappingURL=supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/commands/channel/supervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface ChannelTextBodyOptions {
2
+ text?: string;
3
+ stdin?: boolean;
4
+ textFile?: string;
5
+ }
6
+ interface ResolveChannelTextBodyOptions {
7
+ required: boolean;
8
+ missingMessage: string;
9
+ emptyMessage: string;
10
+ }
11
+ export declare function resolveChannelTextBody(opts: ChannelTextBodyOptions, resolveOpts: ResolveChannelTextBodyOptions): Promise<string | undefined>;
12
+ export {};
13
+ //# sourceMappingURL=text-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-body.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/text-body.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,6BAA6B;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,6BAA6B,GACzC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAU7B"}
@@ -0,0 +1,47 @@
1
+ import fs from "node:fs";
2
+ export async function resolveChannelTextBody(opts, resolveOpts) {
3
+ const raw = await readChannelTextBody(opts);
4
+ if (raw === undefined) {
5
+ if (resolveOpts.required)
6
+ throw new Error(resolveOpts.missingMessage);
7
+ return undefined;
8
+ }
9
+ const text = raw.trimEnd();
10
+ if (!text)
11
+ throw new Error(resolveOpts.emptyMessage);
12
+ return text;
13
+ }
14
+ async function readChannelTextBody(opts) {
15
+ if (opts.text !== undefined && opts.text !== "")
16
+ return opts.text;
17
+ if (opts.textFile)
18
+ return fs.readFileSync(opts.textFile, "utf-8");
19
+ if (opts.stdin)
20
+ return await readStdin();
21
+ return undefined;
22
+ }
23
+ async function readStdin() {
24
+ return await new Promise((resolve, reject) => {
25
+ let buf = "";
26
+ const onData = (chunk) => {
27
+ buf += chunk.toString("utf-8");
28
+ };
29
+ const cleanup = () => {
30
+ process.stdin.off("data", onData);
31
+ process.stdin.off("end", onEnd);
32
+ process.stdin.off("error", onError);
33
+ };
34
+ const onEnd = () => {
35
+ cleanup();
36
+ resolve(buf);
37
+ };
38
+ const onError = (err) => {
39
+ cleanup();
40
+ reject(err);
41
+ };
42
+ process.stdin.on("data", onData);
43
+ process.stdin.once("end", onEnd);
44
+ process.stdin.once("error", onError);
45
+ });
46
+ }
47
+ //# sourceMappingURL=text-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-body.js","sourceRoot":"","sources":["../../../src/commands/channel/text-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAczB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAA4B,EAC5B,WAA0C;IAE1C,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,WAAW,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAA4B;IAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,SAAS,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,OAAO,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,CAAC,KAAa,EAAQ,EAAE;YACrC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,GAAU,EAAQ,EAAE;YACnC,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,39 @@
1
+ export interface ThreadPostOptions {
2
+ as: string;
3
+ action: string;
4
+ thread?: string;
5
+ title?: string;
6
+ text?: string;
7
+ stdin?: boolean;
8
+ textFile?: string;
9
+ description?: string;
10
+ status?: string;
11
+ labels?: string;
12
+ assignees?: string;
13
+ summary?: string;
14
+ scope?: string;
15
+ /** New canonical flag list. */
16
+ contextFile?: string[];
17
+ contextRaw?: string[];
18
+ /** Legacy aliases accepted while users migrate scripts. */
19
+ linkedContextFile?: string[];
20
+ linkedContextRaw?: string[];
21
+ }
22
+ export interface ForumOptions {
23
+ scope?: string;
24
+ status?: string;
25
+ raw?: boolean;
26
+ }
27
+ export interface ThreadShowOptions {
28
+ scope?: string;
29
+ raw?: boolean;
30
+ }
31
+ export interface ThreadRenameOptions {
32
+ as: string;
33
+ scope?: string;
34
+ }
35
+ export declare function channelThreadPost(channelName: string, opts: ThreadPostOptions): Promise<void>;
36
+ export declare function channelForumList(channelName: string, opts: ForumOptions): Promise<void>;
37
+ export declare function channelThreadShow(channelName: string, threadKey: string, opts: ThreadShowOptions): Promise<void>;
38
+ export declare function channelThreadRename(channelName: string, oldThread: string, newThread: string, opts: ThreadRenameOptions): Promise<void>;
39
+ //# sourceMappingURL=threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/threads.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAWf"}