@blulotus/trellis 0.7.0 → 0.7.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 (343) hide show
  1. package/README.md +2 -2
  2. package/dist/cli/index.js +2 -29
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/init.d.ts +0 -22
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +5 -12
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/mem.d.ts +2 -2
  9. package/dist/commands/mem.d.ts.map +1 -1
  10. package/dist/commands/mem.js +7 -40
  11. package/dist/commands/mem.js.map +1 -1
  12. package/dist/commands/uninstall.d.ts +1 -1
  13. package/dist/commands/uninstall.d.ts.map +1 -1
  14. package/dist/commands/uninstall.js +4 -34
  15. package/dist/commands/uninstall.js.map +1 -1
  16. package/dist/commands/update.d.ts.map +1 -1
  17. package/dist/commands/update.js +2 -28
  18. package/dist/commands/update.js.map +1 -1
  19. package/dist/configurators/index.d.ts.map +1 -1
  20. package/dist/configurators/index.js +7 -73
  21. package/dist/configurators/index.js.map +1 -1
  22. package/dist/configurators/shared.d.ts +18 -70
  23. package/dist/configurators/shared.d.ts.map +1 -1
  24. package/dist/configurators/shared.js +20 -299
  25. package/dist/configurators/shared.js.map +1 -1
  26. package/dist/configurators/workflow.d.ts +0 -14
  27. package/dist/configurators/workflow.d.ts.map +1 -1
  28. package/dist/configurators/workflow.js +1 -37
  29. package/dist/configurators/workflow.js.map +1 -1
  30. package/dist/migrations/manifests/0.1.9.json +0 -12
  31. package/dist/migrations/manifests/0.2.14.json +0 -84
  32. package/dist/migrations/manifests/0.3.0-beta.0.json +0 -87
  33. package/dist/migrations/manifests/0.3.4.json +1 -13
  34. package/dist/migrations/manifests/0.4.0-beta.1.json +24 -176
  35. package/dist/migrations/manifests/0.5.0-beta.0.json +67 -1203
  36. package/dist/migrations/manifests/0.5.0-beta.15.json +0 -96
  37. package/dist/migrations/manifests/0.5.0-beta.5.json +0 -168
  38. package/dist/migrations/manifests/0.5.0-beta.9.json +0 -20
  39. package/dist/migrations/manifests/0.6.0-beta.23.json +0 -66
  40. package/dist/migrations/manifests/0.6.3.json +1 -16
  41. package/dist/migrations/manifests/0.6.6.json +1 -9
  42. package/dist/migrations/manifests/0.7.0.json +9 -0
  43. package/dist/migrations/manifests/0.7.1.json +9 -0
  44. package/dist/migrations/manifests/0.7.2.json +9 -0
  45. package/dist/migrations/manifests/0.8.0.json +9 -0
  46. package/dist/templates/codex/hooks/session-start.py +37 -13
  47. package/dist/templates/codex/hooks.json +5 -0
  48. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +5 -5
  49. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-agents.md +0 -10
  50. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-hooks.md +1 -1
  51. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +1 -13
  52. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +2 -2
  53. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/bundled-skills.md +9 -28
  54. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/generated-files.md +5 -5
  55. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/overview.md +1 -1
  56. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +1 -17
  57. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/hooks-and-settings.md +4 -12
  58. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/overview.md +6 -6
  59. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +5 -75
  60. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +0 -16
  61. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +1 -1
  62. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +2 -3
  63. package/dist/templates/common/commands/continue.md +24 -4
  64. package/dist/templates/common/commands/finish-work.md +19 -9
  65. package/dist/templates/common/commands/start.md +38 -29
  66. package/dist/templates/extract.d.ts +0 -10
  67. package/dist/templates/extract.d.ts.map +1 -1
  68. package/dist/templates/extract.js +0 -24
  69. package/dist/templates/extract.js.map +1 -1
  70. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +7 -9
  71. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +4 -8
  72. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +5 -5
  73. package/dist/templates/shared-hooks/index.d.ts +11 -43
  74. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  75. package/dist/templates/shared-hooks/index.js +9 -86
  76. package/dist/templates/shared-hooks/index.js.map +1 -1
  77. package/dist/templates/shared-hooks/inject-spec-context.py +1 -1
  78. package/dist/templates/shared-hooks/inject-subagent-context.py +23 -85
  79. package/dist/templates/shared-hooks/inject-workflow-state.py +56 -86
  80. package/dist/templates/shared-hooks/session-start.py +76 -98
  81. package/dist/templates/trellis/config.yaml +8 -8
  82. package/dist/templates/trellis/index.d.ts +1 -4
  83. package/dist/templates/trellis/index.d.ts.map +1 -1
  84. package/dist/templates/trellis/index.js +1 -5
  85. package/dist/templates/trellis/index.js.map +1 -1
  86. package/dist/templates/trellis/scripts/add_session.py +12 -11
  87. package/dist/templates/trellis/scripts/common/__init__.py +2 -0
  88. package/dist/templates/trellis/scripts/common/active_task.py +80 -152
  89. package/dist/templates/trellis/scripts/common/config.py +7 -7
  90. package/dist/templates/trellis/scripts/common/git_context.py +1 -1
  91. package/dist/templates/trellis/scripts/common/session_context.py +2 -2
  92. package/dist/templates/trellis/scripts/common/spec_inject.py +2 -2
  93. package/dist/templates/trellis/scripts/common/task_store.py +8 -28
  94. package/dist/templates/trellis/scripts/common/workflow_phase.py +4 -8
  95. package/dist/templates/trellis/scripts/get_context.py +2 -2
  96. package/dist/templates/trellis/scripts/init_developer.py +1 -1
  97. package/dist/templates/trellis/scripts/task.py +90 -57
  98. package/dist/templates/trellis/workflow.md +44 -66
  99. package/dist/types/ai-tools.d.ts +10 -10
  100. package/dist/types/ai-tools.d.ts.map +1 -1
  101. package/dist/types/ai-tools.js +3 -434
  102. package/dist/types/ai-tools.js.map +1 -1
  103. package/dist/utils/uninstall-scrubbers.d.ts +3 -18
  104. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  105. package/dist/utils/uninstall-scrubbers.js +24 -154
  106. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  107. package/package.json +2 -2
  108. package/dist/configurators/antigravity.d.ts +0 -7
  109. package/dist/configurators/antigravity.d.ts.map +0 -1
  110. package/dist/configurators/antigravity.js +0 -11
  111. package/dist/configurators/antigravity.js.map +0 -1
  112. package/dist/configurators/codebuddy.d.ts +0 -10
  113. package/dist/configurators/codebuddy.d.ts.map +0 -1
  114. package/dist/configurators/codebuddy.js +0 -24
  115. package/dist/configurators/codebuddy.js.map +0 -1
  116. package/dist/configurators/copilot.d.ts +0 -14
  117. package/dist/configurators/copilot.d.ts.map +0 -1
  118. package/dist/configurators/copilot.js +0 -46
  119. package/dist/configurators/copilot.js.map +0 -1
  120. package/dist/configurators/cursor.d.ts +0 -10
  121. package/dist/configurators/cursor.d.ts.map +0 -1
  122. package/dist/configurators/cursor.js +0 -23
  123. package/dist/configurators/cursor.js.map +0 -1
  124. package/dist/configurators/devin.d.ts +0 -8
  125. package/dist/configurators/devin.d.ts.map +0 -1
  126. package/dist/configurators/devin.js +0 -12
  127. package/dist/configurators/devin.js.map +0 -1
  128. package/dist/configurators/droid.d.ts +0 -10
  129. package/dist/configurators/droid.d.ts.map +0 -1
  130. package/dist/configurators/droid.js +0 -24
  131. package/dist/configurators/droid.js.map +0 -1
  132. package/dist/configurators/dsh.d.ts +0 -26
  133. package/dist/configurators/dsh.d.ts.map +0 -1
  134. package/dist/configurators/dsh.js +0 -76
  135. package/dist/configurators/dsh.js.map +0 -1
  136. package/dist/configurators/gemini.d.ts +0 -18
  137. package/dist/configurators/gemini.d.ts.map +0 -1
  138. package/dist/configurators/gemini.js +0 -39
  139. package/dist/configurators/gemini.js.map +0 -1
  140. package/dist/configurators/grok.d.ts +0 -17
  141. package/dist/configurators/grok.d.ts.map +0 -1
  142. package/dist/configurators/grok.js +0 -38
  143. package/dist/configurators/grok.js.map +0 -1
  144. package/dist/configurators/kilo.d.ts +0 -7
  145. package/dist/configurators/kilo.d.ts.map +0 -1
  146. package/dist/configurators/kilo.js +0 -11
  147. package/dist/configurators/kilo.js.map +0 -1
  148. package/dist/configurators/kimi.d.ts +0 -26
  149. package/dist/configurators/kimi.d.ts.map +0 -1
  150. package/dist/configurators/kimi.js +0 -74
  151. package/dist/configurators/kimi.js.map +0 -1
  152. package/dist/configurators/kiro.d.ts +0 -11
  153. package/dist/configurators/kiro.d.ts.map +0 -1
  154. package/dist/configurators/kiro.js +0 -30
  155. package/dist/configurators/kiro.js.map +0 -1
  156. package/dist/configurators/omp.d.ts +0 -6
  157. package/dist/configurators/omp.d.ts.map +0 -1
  158. package/dist/configurators/omp.js +0 -28
  159. package/dist/configurators/omp.js.map +0 -1
  160. package/dist/configurators/opencode.d.ts +0 -5
  161. package/dist/configurators/opencode.d.ts.map +0 -1
  162. package/dist/configurators/opencode.js +0 -84
  163. package/dist/configurators/opencode.js.map +0 -1
  164. package/dist/configurators/pi.d.ts +0 -5
  165. package/dist/configurators/pi.d.ts.map +0 -1
  166. package/dist/configurators/pi.js +0 -39
  167. package/dist/configurators/pi.js.map +0 -1
  168. package/dist/configurators/qoder.d.ts +0 -12
  169. package/dist/configurators/qoder.d.ts.map +0 -1
  170. package/dist/configurators/qoder.js +0 -30
  171. package/dist/configurators/qoder.js.map +0 -1
  172. package/dist/configurators/reasonix.d.ts +0 -17
  173. package/dist/configurators/reasonix.d.ts.map +0 -1
  174. package/dist/configurators/reasonix.js +0 -37
  175. package/dist/configurators/reasonix.js.map +0 -1
  176. package/dist/configurators/snow.d.ts +0 -25
  177. package/dist/configurators/snow.d.ts.map +0 -1
  178. package/dist/configurators/snow.js +0 -69
  179. package/dist/configurators/snow.js.map +0 -1
  180. package/dist/configurators/trae.d.ts +0 -16
  181. package/dist/configurators/trae.d.ts.map +0 -1
  182. package/dist/configurators/trae.js +0 -34
  183. package/dist/configurators/trae.js.map +0 -1
  184. package/dist/configurators/zcode.d.ts +0 -23
  185. package/dist/configurators/zcode.d.ts.map +0 -1
  186. package/dist/configurators/zcode.js +0 -63
  187. package/dist/configurators/zcode.js.map +0 -1
  188. package/dist/templates/codebuddy/agents/trellis-check.md +0 -115
  189. package/dist/templates/codebuddy/agents/trellis-implement.md +0 -115
  190. package/dist/templates/codebuddy/agents/trellis-research.md +0 -137
  191. package/dist/templates/codebuddy/index.d.ts +0 -15
  192. package/dist/templates/codebuddy/index.d.ts.map +0 -1
  193. package/dist/templates/codebuddy/index.js +0 -15
  194. package/dist/templates/codebuddy/index.js.map +0 -1
  195. package/dist/templates/codebuddy/settings.json +0 -69
  196. package/dist/templates/copilot/copilot-instructions.md +0 -11
  197. package/dist/templates/copilot/hooks/session-start.py +0 -564
  198. package/dist/templates/copilot/hooks.json +0 -19
  199. package/dist/templates/copilot/index.d.ts +0 -28
  200. package/dist/templates/copilot/index.d.ts.map +0 -1
  201. package/dist/templates/copilot/index.js +0 -61
  202. package/dist/templates/copilot/index.js.map +0 -1
  203. package/dist/templates/copilot/prompts/before-dev.prompt.md +0 -39
  204. package/dist/templates/copilot/prompts/brainstorm.prompt.md +0 -173
  205. package/dist/templates/copilot/prompts/break-loop.prompt.md +0 -129
  206. package/dist/templates/copilot/prompts/check-cross-layer.prompt.md +0 -170
  207. package/dist/templates/copilot/prompts/check.prompt.md +0 -110
  208. package/dist/templates/copilot/prompts/create-command.prompt.md +0 -116
  209. package/dist/templates/copilot/prompts/finish-work.prompt.md +0 -99
  210. package/dist/templates/copilot/prompts/integrate-skill.prompt.md +0 -223
  211. package/dist/templates/copilot/prompts/onboard.prompt.md +0 -362
  212. package/dist/templates/copilot/prompts/parallel.prompt.md +0 -204
  213. package/dist/templates/copilot/prompts/record-session.prompt.md +0 -66
  214. package/dist/templates/copilot/prompts/start.prompt.md +0 -63
  215. package/dist/templates/copilot/prompts/update-spec.prompt.md +0 -358
  216. package/dist/templates/cursor/agents/trellis-check.md +0 -114
  217. package/dist/templates/cursor/agents/trellis-implement.md +0 -114
  218. package/dist/templates/cursor/agents/trellis-research.md +0 -136
  219. package/dist/templates/cursor/hooks.json +0 -24
  220. package/dist/templates/cursor/index.d.ts +0 -13
  221. package/dist/templates/cursor/index.d.ts.map +0 -1
  222. package/dist/templates/cursor/index.js +0 -13
  223. package/dist/templates/cursor/index.js.map +0 -1
  224. package/dist/templates/droid/droids/trellis-check.md +0 -107
  225. package/dist/templates/droid/droids/trellis-implement.md +0 -107
  226. package/dist/templates/droid/droids/trellis-research.md +0 -137
  227. package/dist/templates/droid/index.d.ts +0 -15
  228. package/dist/templates/droid/index.d.ts.map +0 -1
  229. package/dist/templates/droid/index.js +0 -15
  230. package/dist/templates/droid/index.js.map +0 -1
  231. package/dist/templates/droid/settings.json +0 -69
  232. package/dist/templates/dsh/DSH.md +0 -80
  233. package/dist/templates/dsh/agents/trellis-check.md +0 -99
  234. package/dist/templates/dsh/agents/trellis-implement.md +0 -106
  235. package/dist/templates/dsh/agents/trellis-research.md +0 -134
  236. package/dist/templates/dsh/index.d.ts +0 -22
  237. package/dist/templates/dsh/index.d.ts.map +0 -1
  238. package/dist/templates/dsh/index.js +0 -27
  239. package/dist/templates/dsh/index.js.map +0 -1
  240. package/dist/templates/gemini/agents/trellis-check.md +0 -107
  241. package/dist/templates/gemini/agents/trellis-implement.md +0 -107
  242. package/dist/templates/gemini/agents/trellis-research.md +0 -136
  243. package/dist/templates/gemini/index.d.ts +0 -13
  244. package/dist/templates/gemini/index.d.ts.map +0 -1
  245. package/dist/templates/gemini/index.js +0 -13
  246. package/dist/templates/gemini/index.js.map +0 -1
  247. package/dist/templates/gemini/settings.json +0 -40
  248. package/dist/templates/grok/agents/trellis-check.md +0 -106
  249. package/dist/templates/grok/agents/trellis-implement.md +0 -121
  250. package/dist/templates/grok/agents/trellis-research.md +0 -146
  251. package/dist/templates/grok/index.d.ts +0 -16
  252. package/dist/templates/grok/index.d.ts.map +0 -1
  253. package/dist/templates/grok/index.js +0 -19
  254. package/dist/templates/grok/index.js.map +0 -1
  255. package/dist/templates/kimi/agents/trellis-check.md +0 -104
  256. package/dist/templates/kimi/agents/trellis-implement.md +0 -120
  257. package/dist/templates/kimi/agents/trellis-research.md +0 -144
  258. package/dist/templates/kimi/index.d.ts +0 -20
  259. package/dist/templates/kimi/index.d.ts.map +0 -1
  260. package/dist/templates/kimi/index.js +0 -23
  261. package/dist/templates/kimi/index.js.map +0 -1
  262. package/dist/templates/kiro/agents/trellis-check.json +0 -26
  263. package/dist/templates/kiro/agents/trellis-implement.json +0 -26
  264. package/dist/templates/kiro/agents/trellis-research.json +0 -30
  265. package/dist/templates/kiro/agents/trellis.json +0 -34
  266. package/dist/templates/kiro/hooks/trellis-workflow-state.kiro.hook +0 -14
  267. package/dist/templates/kiro/index.d.ts +0 -32
  268. package/dist/templates/kiro/index.d.ts.map +0 -1
  269. package/dist/templates/kiro/index.js +0 -28
  270. package/dist/templates/kiro/index.js.map +0 -1
  271. package/dist/templates/omp/agents/trellis-check.md +0 -41
  272. package/dist/templates/omp/agents/trellis-implement.md +0 -55
  273. package/dist/templates/omp/agents/trellis-research.md +0 -30
  274. package/dist/templates/omp/extensions/trellis/index.ts.txt +0 -592
  275. package/dist/templates/omp/index.d.ts +0 -4
  276. package/dist/templates/omp/index.d.ts.map +0 -1
  277. package/dist/templates/omp/index.js +0 -9
  278. package/dist/templates/omp/index.js.map +0 -1
  279. package/dist/templates/opencode/agents/trellis-check.md +0 -122
  280. package/dist/templates/opencode/agents/trellis-implement.md +0 -123
  281. package/dist/templates/opencode/agents/trellis-research.md +0 -145
  282. package/dist/templates/opencode/lib/context-visibility.js +0 -86
  283. package/dist/templates/opencode/lib/session-utils.js +0 -526
  284. package/dist/templates/opencode/lib/trellis-context.js +0 -627
  285. package/dist/templates/opencode/package.json +0 -5
  286. package/dist/templates/opencode/plugins/inject-spec-context.js +0 -121
  287. package/dist/templates/opencode/plugins/inject-subagent-context.js +0 -569
  288. package/dist/templates/opencode/plugins/inject-workflow-state.js +0 -340
  289. package/dist/templates/opencode/plugins/session-start.js +0 -74
  290. package/dist/templates/pi/agents/trellis-check.md +0 -37
  291. package/dist/templates/pi/agents/trellis-implement.md +0 -52
  292. package/dist/templates/pi/agents/trellis-research.md +0 -25
  293. package/dist/templates/pi/extensions/trellis/index.ts.txt +0 -2033
  294. package/dist/templates/pi/index.d.ts +0 -5
  295. package/dist/templates/pi/index.d.ts.map +0 -1
  296. package/dist/templates/pi/index.js +0 -12
  297. package/dist/templates/pi/index.js.map +0 -1
  298. package/dist/templates/pi/settings.json +0 -9
  299. package/dist/templates/qoder/agents/trellis-check.md +0 -108
  300. package/dist/templates/qoder/agents/trellis-implement.md +0 -108
  301. package/dist/templates/qoder/agents/trellis-research.md +0 -137
  302. package/dist/templates/qoder/index.d.ts +0 -15
  303. package/dist/templates/qoder/index.d.ts.map +0 -1
  304. package/dist/templates/qoder/index.js +0 -15
  305. package/dist/templates/qoder/index.js.map +0 -1
  306. package/dist/templates/qoder/settings.json +0 -59
  307. package/dist/templates/reasonix/agents/trellis-check.md +0 -36
  308. package/dist/templates/reasonix/agents/trellis-implement.md +0 -51
  309. package/dist/templates/reasonix/index.d.ts +0 -13
  310. package/dist/templates/reasonix/index.d.ts.map +0 -1
  311. package/dist/templates/reasonix/index.js +0 -16
  312. package/dist/templates/reasonix/index.js.map +0 -1
  313. package/dist/templates/shared-hooks/inject-shell-session-context.py +0 -292
  314. package/dist/templates/snow/SNOW.md +0 -86
  315. package/dist/templates/snow/agents/trellis-check.md +0 -136
  316. package/dist/templates/snow/agents/trellis-implement.md +0 -158
  317. package/dist/templates/snow/agents/trellis-research.md +0 -114
  318. package/dist/templates/snow/hooks/beforeSubAgentStart.json +0 -15
  319. package/dist/templates/snow/hooks/onSessionStart.json +0 -15
  320. package/dist/templates/snow/hooks/onUserMessage.json +0 -15
  321. package/dist/templates/snow/hooks/write-trellis-context.py +0 -644
  322. package/dist/templates/snow/index.d.ts +0 -26
  323. package/dist/templates/snow/index.d.ts.map +0 -1
  324. package/dist/templates/snow/index.js +0 -36
  325. package/dist/templates/snow/index.js.map +0 -1
  326. package/dist/templates/trae/agents/trellis-check.md +0 -108
  327. package/dist/templates/trae/agents/trellis-implement.md +0 -108
  328. package/dist/templates/trae/agents/trellis-research.md +0 -137
  329. package/dist/templates/trae/hooks.json +0 -39
  330. package/dist/templates/trae/index.d.ts +0 -15
  331. package/dist/templates/trae/index.d.ts.map +0 -1
  332. package/dist/templates/trae/index.js +0 -15
  333. package/dist/templates/trae/index.js.map +0 -1
  334. package/dist/templates/trellis/gitattributes.txt +0 -9
  335. package/dist/templates/trellis/scripts/common/cli_adapter.py +0 -982
  336. package/dist/templates/zcode/agents/trellis-check.md +0 -110
  337. package/dist/templates/zcode/agents/trellis-implement.md +0 -116
  338. package/dist/templates/zcode/agents/trellis-research.md +0 -133
  339. package/dist/templates/zcode/config.json +0 -52
  340. package/dist/templates/zcode/index.d.ts +0 -25
  341. package/dist/templates/zcode/index.d.ts.map +0 -1
  342. package/dist/templates/zcode/index.js +0 -29
  343. package/dist/templates/zcode/index.js.map +0 -1
@@ -41,9 +41,7 @@ function commandMatchesDeletedPath(command, deletedPaths) {
41
41
  return false;
42
42
  }
43
43
  /**
44
- * Read the `command` (or fallback `bash` / `powershell`) string out of an
45
- * arbitrary hook entry. Copilot's flat schema uses `bash` + `powershell`
46
- * instead of `command` for some events.
44
+ * Read the `command` string out of an arbitrary hook entry.
47
45
  */
48
46
  function getEntryCommand(entry) {
49
47
  if (entry === null || typeof entry !== "object") {
@@ -52,24 +50,20 @@ function getEntryCommand(entry) {
52
50
  const obj = entry;
53
51
  if (typeof obj.command === "string")
54
52
  return obj.command;
55
- if (typeof obj.bash === "string")
56
- return obj.bash;
57
- if (typeof obj.powershell === "string")
58
- return obj.powershell;
59
53
  return null;
60
54
  }
61
55
  /**
62
56
  * Scrub a hooks-shaped settings JSON file.
63
57
  *
64
- * `mode = "nested"` → `hooks.{Event}.[ {matcher?, hooks: [ {command,...} ]} ]`
65
- * `mode = "flat"` → `hooks.{Event}.[ {command,...} ]`
58
+ * Schema: `hooks.{Event}.[ {matcher?, hooks: [ {command,...} ]} ]` — used by
59
+ * both `.claude/settings.json` and `.codex/hooks.json`.
66
60
  *
67
61
  * Strips every entry whose command references a path in `deletedPaths`,
68
62
  * then bottom-up cleans empty containers (matcher block, event array, hooks
69
63
  * object). Any user-defined keys outside `hooks` (e.g. `env`, `model`,
70
64
  * `permissions`, `version`) are preserved verbatim.
71
65
  */
72
- export function scrubHooksJson(content, deletedPaths, mode) {
66
+ export function scrubHooksJson(content, deletedPaths) {
73
67
  let parsed;
74
68
  try {
75
69
  parsed = JSON.parse(content);
@@ -100,38 +94,29 @@ export function scrubHooksJson(content, deletedPaths, mode) {
100
94
  continue;
101
95
  const filteredEvent = [];
102
96
  for (const entry of eventArr) {
103
- if (mode === "flat") {
104
- const cmd = getEntryCommand(entry);
105
- if (cmd !== null && commandMatchesDeletedPath(cmd, deletedPaths)) {
106
- continue; // drop trellis entry
107
- }
97
+ // entry is { matcher?, hooks: [...] }
98
+ if (entry === null || typeof entry !== "object") {
108
99
  filteredEvent.push(entry);
100
+ continue;
109
101
  }
110
- else {
111
- // nested: entry is { matcher?, hooks: [...] }
112
- if (entry === null || typeof entry !== "object") {
113
- filteredEvent.push(entry);
114
- continue;
115
- }
116
- const matcherBlock = entry;
117
- const inner = matcherBlock.hooks;
118
- if (!Array.isArray(inner)) {
119
- filteredEvent.push(entry);
120
- continue;
121
- }
122
- const filteredInner = inner.filter((sub) => {
123
- const cmd = getEntryCommand(sub);
124
- return !(cmd !== null && commandMatchesDeletedPath(cmd, deletedPaths));
125
- });
126
- if (filteredInner.length === 0) {
127
- // Whole matcher block is now empty → drop the block.
128
- continue;
129
- }
130
- // Reconstruct the block with the filtered inner list.
131
- const rebuilt = { ...matcherBlock };
132
- rebuilt.hooks = filteredInner;
133
- filteredEvent.push(rebuilt);
102
+ const matcherBlock = entry;
103
+ const inner = matcherBlock.hooks;
104
+ if (!Array.isArray(inner)) {
105
+ filteredEvent.push(entry);
106
+ continue;
107
+ }
108
+ const filteredInner = inner.filter((sub) => {
109
+ const cmd = getEntryCommand(sub);
110
+ return !(cmd !== null && commandMatchesDeletedPath(cmd, deletedPaths));
111
+ });
112
+ if (filteredInner.length === 0) {
113
+ // Whole matcher block is now empty → drop the block.
114
+ continue;
134
115
  }
116
+ // Reconstruct the block with the filtered inner list.
117
+ const rebuilt = { ...matcherBlock };
118
+ rebuilt.hooks = filteredInner;
119
+ filteredEvent.push(rebuilt);
135
120
  }
136
121
  if (filteredEvent.length === 0) {
137
122
  // Drop the whole event array.
@@ -155,121 +140,6 @@ export function scrubHooksJson(content, deletedPaths, mode) {
155
140
  fullyEmpty,
156
141
  };
157
142
  }
158
- /**
159
- * Scrub `.opencode/package.json`:
160
- * - remove `dependencies["@opencode-ai/plugin"]`
161
- * - if `dependencies` ends up empty → drop the field
162
- * - fully empty when nothing is left in the object
163
- */
164
- export function scrubOpencodePackageJson(content) {
165
- let parsed;
166
- try {
167
- parsed = JSON.parse(content);
168
- }
169
- catch {
170
- return { content, fullyEmpty: false };
171
- }
172
- if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
173
- return { content, fullyEmpty: false };
174
- }
175
- const root = parsed;
176
- const deps = root.dependencies;
177
- if (deps !== null && typeof deps === "object" && !Array.isArray(deps)) {
178
- const depsObj = deps;
179
- if ("@opencode-ai/plugin" in depsObj) {
180
- delete depsObj["@opencode-ai/plugin"];
181
- }
182
- if (Object.keys(depsObj).length === 0) {
183
- delete root.dependencies;
184
- }
185
- else {
186
- root.dependencies = depsObj;
187
- }
188
- }
189
- const fullyEmpty = Object.keys(root).length === 0;
190
- return {
191
- content: JSON.stringify(root, null, 2) + "\n",
192
- fullyEmpty,
193
- };
194
- }
195
- /**
196
- * Trellis-specific values written by the Pi configurator.
197
- *
198
- * The `extensions`/`skills`/`prompts` arrays are paths relative to `.pi/`. We
199
- * remove the exact entries that the Pi configurator emits.
200
- */
201
- const PI_TRELLIS_EXTENSION = "./extensions/trellis/index.ts";
202
- const PI_TRELLIS_SKILLS = "./skills";
203
- const PI_TRELLIS_PROMPTS = "./prompts";
204
- const PI_SUBAGENTS_PACKAGE = "npm:pi-subagents";
205
- function isTrellisPiEntry(value, target) {
206
- return typeof value === "string" && value === target;
207
- }
208
- /**
209
- * Scrub `.pi/settings.json`:
210
- * - drop `enableSkillCommands` (trellis-flagged)
211
- * - remove trellis entries from `extensions`/`skills`/`prompts` arrays
212
- * - remove trellis-managed `packages["npm:pi-subagents"]` isolation override
213
- * - drop arrays that become empty
214
- */
215
- export function scrubPiSettings(content) {
216
- let parsed;
217
- try {
218
- parsed = JSON.parse(content);
219
- }
220
- catch {
221
- return { content, fullyEmpty: false };
222
- }
223
- if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
224
- return { content, fullyEmpty: false };
225
- }
226
- const root = parsed;
227
- if ("enableSkillCommands" in root) {
228
- delete root.enableSkillCommands;
229
- }
230
- const arrayCleanups = [
231
- ["extensions", PI_TRELLIS_EXTENSION],
232
- ["skills", PI_TRELLIS_SKILLS],
233
- ["prompts", PI_TRELLIS_PROMPTS],
234
- ];
235
- for (const [key, target] of arrayCleanups) {
236
- const arr = root[key];
237
- if (!Array.isArray(arr))
238
- continue;
239
- const filtered = arr.filter((v) => !isTrellisPiEntry(v, target));
240
- if (filtered.length === 0) {
241
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
242
- delete root[key];
243
- }
244
- else {
245
- root[key] = filtered;
246
- }
247
- }
248
- const packagesValue = root.packages;
249
- if (Array.isArray(packagesValue)) {
250
- const filtered = packagesValue.filter((entry) => {
251
- if (entry !== null &&
252
- typeof entry === "object" &&
253
- !Array.isArray(entry)) {
254
- const obj = entry;
255
- return obj.source !== PI_SUBAGENTS_PACKAGE;
256
- }
257
- // String entries — keep unless they exactly match the package name
258
- return entry !== PI_SUBAGENTS_PACKAGE;
259
- });
260
- if (filtered.length === 0) {
261
- delete root.packages;
262
- }
263
- else {
264
- root.packages = filtered;
265
- }
266
- }
267
- const fullyEmpty = Object.keys(root).length === 0;
268
- return {
269
- content: JSON.stringify(root, null, 2) + "\n",
270
- fullyEmpty,
271
- };
272
- }
273
143
  /**
274
144
  * Scrub `.codex/config.toml`.
275
145
  *
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall-scrubbers.js","sourceRoot":"","sources":["../../src/utils/uninstall-scrubbers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall-scrubbers.js","sourceRoot":"","sources":["../../src/utils/uninstall-scrubbers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blulotus/trellis",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "AI capabilities grow like ivy — Trellis provides the structure to guide them along a disciplined path",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "inquirer": "^9.3.7",
35
35
  "undici": "^6.21.0",
36
36
  "zod": "^4.4.2",
37
- "@blulotus/trellis-core": "0.7.0"
37
+ "@blulotus/trellis-core": "0.7.2"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@eslint/js": "^9.18.0",
@@ -1,7 +0,0 @@
1
- /**
2
- * The Antigravity file set — written at init and diffed by `trellis update`.
3
- * - workflows/ — start + finish-work as slash commands
4
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
5
- */
6
- export declare function collectAntigravityTemplates(): Map<string, string>;
7
- //# sourceMappingURL=antigravity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/configurators/antigravity.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjE"}
@@ -1,11 +0,0 @@
1
- import { AI_TOOLS } from "../types/ai-tools.js";
2
- import { collectBothTemplates } from "./shared.js";
3
- /**
4
- * The Antigravity file set — written at init and diffed by `trellis update`.
5
- * - workflows/ — start + finish-work as slash commands
6
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
7
- */
8
- export function collectAntigravityTemplates() {
9
- return collectBothTemplates(AI_TOOLS.antigravity.templateContext, (n) => `.agent/workflows/${n}.md`, ".agent/skills");
10
- }
11
- //# sourceMappingURL=antigravity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/configurators/antigravity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,oBAAoB,CACzB,QAAQ,CAAC,WAAW,CAAC,eAAe,EACpC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EACjC,eAAe,CAChB,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * The CodeBuddy file set — written at init and diffed by `trellis update`.
3
- * - commands/trellis/ — start + finish-work as slash commands
4
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
5
- * - agents/{name}.md — sub-agent definitions
6
- * - hooks/*.py — shared hook scripts
7
- * - settings.json — hook configuration
8
- */
9
- export declare function collectCodebuddyTemplates(): Map<string, string>;
10
- //# sourceMappingURL=codebuddy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codebuddy.d.ts","sourceRoot":"","sources":["../../src/configurators/codebuddy.ts"],"names":[],"mappings":"AAWA;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB/D"}
@@ -1,24 +0,0 @@
1
- import { AI_TOOLS } from "../types/ai-tools.js";
2
- import { resolvePlaceholders, collectBothTemplates, collectSharedHooks, } from "./shared.js";
3
- import { getAllAgents, getSettingsTemplate, } from "../templates/codebuddy/index.js";
4
- /**
5
- * The CodeBuddy file set — written at init and diffed by `trellis update`.
6
- * - commands/trellis/ — start + finish-work as slash commands
7
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
8
- * - agents/{name}.md — sub-agent definitions
9
- * - hooks/*.py — shared hook scripts
10
- * - settings.json — hook configuration
11
- */
12
- export function collectCodebuddyTemplates() {
13
- const files = collectBothTemplates(AI_TOOLS.codebuddy.templateContext, (n) => `.codebuddy/commands/trellis/${n}.md`, ".codebuddy/skills");
14
- for (const agent of getAllAgents()) {
15
- files.set(`.codebuddy/agents/${agent.name}.md`, agent.content);
16
- }
17
- for (const [k, v] of collectSharedHooks(".codebuddy/hooks", "codebuddy")) {
18
- files.set(k, v);
19
- }
20
- const settings = getSettingsTemplate();
21
- files.set(`.codebuddy/${settings.targetPath}`, resolvePlaceholders(settings.content));
22
- return files;
23
- }
24
- //# sourceMappingURL=codebuddy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codebuddy.js","sourceRoot":"","sources":["../../src/configurators/codebuddy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,KAAK,GAAG,oBAAoB,CAChC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,KAAK,EAC5C,mBAAmB,CACpB,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,WAAW,CAAC,EAAE,CAAC;QACzE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,KAAK,CAAC,GAAG,CACP,cAAc,QAAQ,CAAC,UAAU,EAAE,EACnC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * The GitHub Copilot file set — written at init and diffed by `trellis update`.
3
- * - prompts/ — start + finish-work as prompt files
4
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
5
- * - agents/{name}.agent.md — sub-agent definitions (note .agent.md suffix)
6
- * - copilot/hooks/ — platform-specific + shared hook scripts
7
- * - hooks config — hooks.json
8
- * - copilot-instructions.md — repository-wide review guidance. `trellis update`
9
- * replaces this entry with a managed-block merge over the user's file
10
- * (`buildCopilotInstructionsTemplate`); on a fresh project the merge returns
11
- * the template verbatim, so init and update agree.
12
- */
13
- export declare function collectCopilotTemplates(): Map<string, string>;
14
- //# sourceMappingURL=copilot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkC7D"}
@@ -1,46 +0,0 @@
1
- import { AI_TOOLS } from "../types/ai-tools.js";
2
- import { COPILOT_INSTRUCTIONS_PATH, getAllHooks, getCopilotInstructions, getHooksConfig, } from "../templates/copilot/index.js";
3
- import { getAllAgents as getCursorAgents } from "../templates/cursor/index.js";
4
- import { resolvePlaceholders, resolveCommands, resolveSkills, resolveBundledSkills, collectSkillTemplates, collectSharedHooks, applyPullBasedPreludeMarkdown, normalizeCopilotMarkdownAgents, } from "./shared.js";
5
- /**
6
- * The GitHub Copilot file set — written at init and diffed by `trellis update`.
7
- * - prompts/ — start + finish-work as prompt files
8
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
9
- * - agents/{name}.agent.md — sub-agent definitions (note .agent.md suffix)
10
- * - copilot/hooks/ — platform-specific + shared hook scripts
11
- * - hooks config — hooks.json
12
- * - copilot-instructions.md — repository-wide review guidance. `trellis update`
13
- * replaces this entry with a managed-block merge over the user's file
14
- * (`buildCopilotInstructionsTemplate`); on a fresh project the merge returns
15
- * the template verbatim, so init and update agree.
16
- */
17
- export function collectCopilotTemplates() {
18
- const ctx = AI_TOOLS.copilot.templateContext;
19
- const files = new Map();
20
- for (const cmd of resolveCommands(ctx)) {
21
- files.set(`.github/prompts/${cmd.name}.prompt.md`, cmd.content);
22
- }
23
- for (const [filePath, content] of collectSkillTemplates(".github/skills", resolveSkills(ctx), resolveBundledSkills(ctx))) {
24
- files.set(filePath, content);
25
- }
26
- // Copilot's own session-start hook
27
- for (const hook of getAllHooks()) {
28
- files.set(`.github/copilot/hooks/${hook.name}`, hook.content);
29
- }
30
- // Shared hooks (inject-workflow-state.py only). Copilot bundles its own
31
- // session-start.py above; sub-agent context is pull-based (class-2).
32
- for (const [k, v] of collectSharedHooks(".github/copilot/hooks", "copilot")) {
33
- files.set(k, v);
34
- }
35
- // Agents: reuse Cursor content + prepend pull-based prelude, then
36
- // normalize Cursor's Claude-style tools frontmatter for Copilot.
37
- for (const agent of applyPullBasedPreludeMarkdown(normalizeCopilotMarkdownAgents(getCursorAgents()))) {
38
- files.set(`.github/agents/${agent.name}.agent.md`, agent.content);
39
- }
40
- files.set(COPILOT_INSTRUCTIONS_PATH, getCopilotInstructions());
41
- const hooksConfig = resolvePlaceholders(getHooksConfig());
42
- files.set(".github/copilot/hooks.json", hooksConfig);
43
- files.set(".github/hooks/trellis.json", hooksConfig);
44
- return files;
45
- }
46
- //# sourceMappingURL=copilot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/configurators/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,sBAAsB,EACtB,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,IAAI,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,qBAAqB,CACrD,gBAAgB,EAChB,aAAa,CAAC,GAAG,CAAC,EAClB,oBAAoB,CAAC,GAAG,CAAC,CAC1B,EAAE,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,mCAAmC;IACnC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,wEAAwE;IACxE,qEAAqE;IACrE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5E,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,kEAAkE;IAClE,iEAAiE;IACjE,KAAK,MAAM,KAAK,IAAI,6BAA6B,CAC/C,8BAA8B,CAAC,eAAe,EAAE,CAAC,CAClD,EAAE,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,GAAG,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;IACrD,KAAK,CAAC,GAAG,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * The Cursor file set — written at init and diffed by `trellis update`.
3
- * - commands/ — start + finish-work as slash commands (trellis- prefix, flat)
4
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
5
- * - agents/{name}.md — sub-agent definitions
6
- * - hooks/*.py — shared hook scripts
7
- * - hooks.json — hook configuration (separate file, not settings.json)
8
- */
9
- export declare function collectCursorTemplates(): Map<string, string>;
10
- //# sourceMappingURL=cursor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAc5D"}
@@ -1,23 +0,0 @@
1
- import { AI_TOOLS } from "../types/ai-tools.js";
2
- import { resolvePlaceholders, collectBothTemplates, collectSharedHooks, } from "./shared.js";
3
- import { getAllAgents, getHooksConfig } from "../templates/cursor/index.js";
4
- /**
5
- * The Cursor file set — written at init and diffed by `trellis update`.
6
- * - commands/ — start + finish-work as slash commands (trellis- prefix, flat)
7
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
8
- * - agents/{name}.md — sub-agent definitions
9
- * - hooks/*.py — shared hook scripts
10
- * - hooks.json — hook configuration (separate file, not settings.json)
11
- */
12
- export function collectCursorTemplates() {
13
- const files = collectBothTemplates(AI_TOOLS.cursor.templateContext, (n) => `.cursor/commands/trellis-${n}.md`, ".cursor/skills");
14
- for (const agent of getAllAgents()) {
15
- files.set(`.cursor/agents/${agent.name}.md`, agent.content);
16
- }
17
- for (const [k, v] of collectSharedHooks(".cursor/hooks", "cursor")) {
18
- files.set(k, v);
19
- }
20
- files.set(".cursor/hooks.json", resolvePlaceholders(getHooksConfig()));
21
- return files;
22
- }
23
- //# sourceMappingURL=cursor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE5E;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,KAAK,GAAG,oBAAoB,CAChC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,KAAK,EACzC,gBAAgB,CACjB,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * The Devin (formerly Windsurf) file set — written at init and diffed by
3
- * `trellis update`.
4
- * - workflows/ — start + finish-work as slash commands
5
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
6
- */
7
- export declare function collectDevinTemplates(): Map<string, string>;
8
- //# sourceMappingURL=devin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"devin.d.ts","sourceRoot":"","sources":["../../src/configurators/devin.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM3D"}
@@ -1,12 +0,0 @@
1
- import { AI_TOOLS } from "../types/ai-tools.js";
2
- import { collectBothTemplates } from "./shared.js";
3
- /**
4
- * The Devin (formerly Windsurf) file set — written at init and diffed by
5
- * `trellis update`.
6
- * - workflows/ — start + finish-work as slash commands
7
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
8
- */
9
- export function collectDevinTemplates() {
10
- return collectBothTemplates(AI_TOOLS.devin.templateContext, (n) => `.devin/workflows/trellis-${n}.md`, ".devin/skills");
11
- }
12
- //# sourceMappingURL=devin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"devin.js","sourceRoot":"","sources":["../../src/configurators/devin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,oBAAoB,CACzB,QAAQ,CAAC,KAAK,CAAC,eAAe,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,KAAK,EACzC,eAAe,CAChB,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * The Factory Droid file set — written at init and diffed by `trellis update`.
3
- * - commands/trellis/ — start + finish-work as slash commands
4
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
5
- * - droids/{name}.md — sub-agent definitions (Droid calls them "droids")
6
- * - hooks/*.py — shared hook scripts
7
- * - settings.json — hook configuration
8
- */
9
- export declare function collectDroidTemplates(): Map<string, string>;
10
- //# sourceMappingURL=droid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB3D"}
@@ -1,24 +0,0 @@
1
- import { AI_TOOLS } from "../types/ai-tools.js";
2
- import { resolvePlaceholders, collectBothTemplates, collectSharedHooks, } from "./shared.js";
3
- import { getAllDroids, getSettingsTemplate } from "../templates/droid/index.js";
4
- /**
5
- * The Factory Droid file set — written at init and diffed by `trellis update`.
6
- * - commands/trellis/ — start + finish-work as slash commands
7
- * - skills/trellis-{name}/SKILL.md — auto-triggered skills from `common/skills/`
8
- * - droids/{name}.md — sub-agent definitions (Droid calls them "droids")
9
- * - hooks/*.py — shared hook scripts
10
- * - settings.json — hook configuration
11
- */
12
- export function collectDroidTemplates() {
13
- const files = collectBothTemplates(AI_TOOLS.droid.templateContext, (n) => `.factory/commands/trellis/${n}.md`, ".factory/skills");
14
- for (const droid of getAllDroids()) {
15
- files.set(`.factory/droids/${droid.name}.md`, droid.content);
16
- }
17
- for (const [k, v] of collectSharedHooks(".factory/hooks", "droid")) {
18
- files.set(k, v);
19
- }
20
- const settings = getSettingsTemplate();
21
- files.set(`.factory/${settings.targetPath}`, resolvePlaceholders(settings.content));
22
- return files;
23
- }
24
- //# sourceMappingURL=droid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"droid.js","sourceRoot":"","sources":["../../src/configurators/droid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,oBAAoB,CAChC,QAAQ,CAAC,KAAK,CAAC,eAAe,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,KAAK,EAC1C,iBAAiB,CAClB,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,KAAK,CAAC,GAAG,CACP,YAAY,QAAQ,CAAC,UAAU,EAAE,EACjC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * DeepSeek Harness (dsh) configurator.
3
- *
4
- * dsh is a class-2 pull-based platform (agentCapable via the `subagent` tool,
5
- * no shipped session-start hook, no project-level hooks/settings Trellis may
6
- * write). Three output paths:
7
- * - `.agents/skills/` — workflow + bundled skills, written via the NEUTRAL
8
- * resolver so the files stay byte-identical to Codex/Gemini/Pi/Kimi writes
9
- * into the same shared root (dsh discovers `.agents/skills/` natively).
10
- * - `.dsh/skills/` — dsh-private entry skills (trellis-start /
11
- * trellis-continue / trellis-finish-work) plus collision-free Trellis role
12
- * skills (trellis-agent-implement / trellis-agent-check /
13
- * trellis-agent-research) with the pull-based prelude on implement/check.
14
- * - `.dsh/DSH.md` — operator guide and a configDir-owned tracked file for
15
- * platform detection and uninstall scoping.
16
- *
17
- * dsh has no project-level hooks/settings file Trellis may write and no
18
- * declarative custom sub-agent definitions (dispatch goes through the
19
- * `subagent` tool), so no hooks, settings, or extension files are written and
20
- * the agent prompts ship as skills.
21
- */
22
- /**
23
- * The DeepSeek Harness file set — written at init and diffed by `trellis update`.
24
- */
25
- export declare function collectDshTemplates(): Map<string, string>;
26
- //# sourceMappingURL=dsh.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dsh.d.ts","sourceRoot":"","sources":["../../src/configurators/dsh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAmDH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BzD"}