@mindfoldhq/trellis 0.6.0-beta.9 → 0.6.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/README.md +49 -49
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +36 -0
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/channel/adapters/claude.d.ts +29 -0
  6. package/dist/commands/channel/adapters/claude.d.ts.map +1 -0
  7. package/dist/commands/channel/adapters/claude.js +203 -0
  8. package/dist/commands/channel/adapters/claude.js.map +1 -0
  9. package/dist/commands/channel/adapters/codex.d.ts +85 -0
  10. package/dist/commands/channel/adapters/codex.d.ts.map +1 -0
  11. package/dist/commands/channel/adapters/codex.js +505 -0
  12. package/dist/commands/channel/adapters/codex.js.map +1 -0
  13. package/dist/commands/channel/adapters/index.d.ts +84 -0
  14. package/dist/commands/channel/adapters/index.d.ts.map +1 -0
  15. package/dist/commands/channel/adapters/index.js +115 -0
  16. package/dist/commands/channel/adapters/index.js.map +1 -0
  17. package/dist/commands/channel/adapters/types.d.ts +33 -0
  18. package/dist/commands/channel/adapters/types.d.ts.map +1 -0
  19. package/dist/commands/channel/adapters/types.js +2 -0
  20. package/dist/commands/channel/adapters/types.js.map +1 -0
  21. package/dist/commands/channel/agent-loader.d.ts +32 -0
  22. package/dist/commands/channel/agent-loader.d.ts.map +1 -0
  23. package/dist/commands/channel/agent-loader.js +154 -0
  24. package/dist/commands/channel/agent-loader.js.map +1 -0
  25. package/dist/commands/channel/context-loader.d.ts +26 -0
  26. package/dist/commands/channel/context-loader.d.ts.map +1 -0
  27. package/dist/commands/channel/context-loader.js +290 -0
  28. package/dist/commands/channel/context-loader.js.map +1 -0
  29. package/dist/commands/channel/context.d.ts +16 -0
  30. package/dist/commands/channel/context.d.ts.map +1 -0
  31. package/dist/commands/channel/context.js +83 -0
  32. package/dist/commands/channel/context.js.map +1 -0
  33. package/dist/commands/channel/create.d.ts +27 -0
  34. package/dist/commands/channel/create.d.ts.map +1 -0
  35. package/dist/commands/channel/create.js +39 -0
  36. package/dist/commands/channel/create.js.map +1 -0
  37. package/dist/commands/channel/dev-parse-trace.d.ts +14 -0
  38. package/dist/commands/channel/dev-parse-trace.d.ts.map +1 -0
  39. package/dist/commands/channel/dev-parse-trace.js +70 -0
  40. package/dist/commands/channel/dev-parse-trace.js.map +1 -0
  41. package/dist/commands/channel/guard.d.ts +150 -0
  42. package/dist/commands/channel/guard.d.ts.map +1 -0
  43. package/dist/commands/channel/guard.js +474 -0
  44. package/dist/commands/channel/guard.js.map +1 -0
  45. package/dist/commands/channel/index.d.ts +3 -0
  46. package/dist/commands/channel/index.d.ts.map +1 -0
  47. package/dist/commands/channel/index.js +531 -0
  48. package/dist/commands/channel/index.js.map +1 -0
  49. package/dist/commands/channel/interrupt.d.ts +10 -0
  50. package/dist/commands/channel/interrupt.d.ts.map +1 -0
  51. package/dist/commands/channel/interrupt.js +22 -0
  52. package/dist/commands/channel/interrupt.js.map +1 -0
  53. package/dist/commands/channel/kill.d.ts +7 -0
  54. package/dist/commands/channel/kill.d.ts.map +1 -0
  55. package/dist/commands/channel/kill.js +121 -0
  56. package/dist/commands/channel/kill.js.map +1 -0
  57. package/dist/commands/channel/list.d.ts +17 -0
  58. package/dist/commands/channel/list.d.ts.map +1 -0
  59. package/dist/commands/channel/list.js +233 -0
  60. package/dist/commands/channel/list.js.map +1 -0
  61. package/dist/commands/channel/messages.d.ts +15 -0
  62. package/dist/commands/channel/messages.d.ts.map +1 -0
  63. package/dist/commands/channel/messages.js +245 -0
  64. package/dist/commands/channel/messages.js.map +1 -0
  65. package/dist/commands/channel/rm.d.ts +27 -0
  66. package/dist/commands/channel/rm.d.ts.map +1 -0
  67. package/dist/commands/channel/rm.js +216 -0
  68. package/dist/commands/channel/rm.js.map +1 -0
  69. package/dist/commands/channel/run.d.ts +30 -0
  70. package/dist/commands/channel/run.d.ts.map +1 -0
  71. package/dist/commands/channel/run.js +130 -0
  72. package/dist/commands/channel/run.js.map +1 -0
  73. package/dist/commands/channel/send.d.ts +11 -0
  74. package/dist/commands/channel/send.d.ts.map +1 -0
  75. package/dist/commands/channel/send.js +24 -0
  76. package/dist/commands/channel/send.js.map +1 -0
  77. package/dist/commands/channel/spawn.d.ts +40 -0
  78. package/dist/commands/channel/spawn.d.ts.map +1 -0
  79. package/dist/commands/channel/spawn.js +244 -0
  80. package/dist/commands/channel/spawn.js.map +1 -0
  81. package/dist/commands/channel/store/events.d.ts +39 -0
  82. package/dist/commands/channel/store/events.d.ts.map +1 -0
  83. package/dist/commands/channel/store/events.js +87 -0
  84. package/dist/commands/channel/store/events.js.map +1 -0
  85. package/dist/commands/channel/store/filter.d.ts +3 -0
  86. package/dist/commands/channel/store/filter.d.ts.map +1 -0
  87. package/dist/commands/channel/store/filter.js +2 -0
  88. package/dist/commands/channel/store/filter.js.map +1 -0
  89. package/dist/commands/channel/store/lock.d.ts +23 -0
  90. package/dist/commands/channel/store/lock.d.ts.map +1 -0
  91. package/dist/commands/channel/store/lock.js +99 -0
  92. package/dist/commands/channel/store/lock.js.map +1 -0
  93. package/dist/commands/channel/store/paths.d.ts +63 -0
  94. package/dist/commands/channel/store/paths.d.ts.map +1 -0
  95. package/dist/commands/channel/store/paths.js +246 -0
  96. package/dist/commands/channel/store/paths.js.map +1 -0
  97. package/dist/commands/channel/store/schema.d.ts +27 -0
  98. package/dist/commands/channel/store/schema.d.ts.map +1 -0
  99. package/dist/commands/channel/store/schema.js +34 -0
  100. package/dist/commands/channel/store/schema.js.map +1 -0
  101. package/dist/commands/channel/store/thread-state.d.ts +5 -0
  102. package/dist/commands/channel/store/thread-state.d.ts.map +1 -0
  103. package/dist/commands/channel/store/thread-state.js +16 -0
  104. package/dist/commands/channel/store/thread-state.js.map +1 -0
  105. package/dist/commands/channel/store/watch.d.ts +19 -0
  106. package/dist/commands/channel/store/watch.d.ts.map +1 -0
  107. package/dist/commands/channel/store/watch.js +146 -0
  108. package/dist/commands/channel/store/watch.js.map +1 -0
  109. package/dist/commands/channel/supervisor/idle.d.ts +46 -0
  110. package/dist/commands/channel/supervisor/idle.d.ts.map +1 -0
  111. package/dist/commands/channel/supervisor/idle.js +72 -0
  112. package/dist/commands/channel/supervisor/idle.js.map +1 -0
  113. package/dist/commands/channel/supervisor/inbox.d.ts +30 -0
  114. package/dist/commands/channel/supervisor/inbox.d.ts.map +1 -0
  115. package/dist/commands/channel/supervisor/inbox.js +160 -0
  116. package/dist/commands/channel/supervisor/inbox.js.map +1 -0
  117. package/dist/commands/channel/supervisor/shutdown.d.ts +68 -0
  118. package/dist/commands/channel/supervisor/shutdown.d.ts.map +1 -0
  119. package/dist/commands/channel/supervisor/shutdown.js +146 -0
  120. package/dist/commands/channel/supervisor/shutdown.js.map +1 -0
  121. package/dist/commands/channel/supervisor/stdout.d.ts +51 -0
  122. package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -0
  123. package/dist/commands/channel/supervisor/stdout.js +121 -0
  124. package/dist/commands/channel/supervisor/stdout.js.map +1 -0
  125. package/dist/commands/channel/supervisor/turns.d.ts +31 -0
  126. package/dist/commands/channel/supervisor/turns.d.ts.map +1 -0
  127. package/dist/commands/channel/supervisor/turns.js +45 -0
  128. package/dist/commands/channel/supervisor/turns.js.map +1 -0
  129. package/dist/commands/channel/supervisor/warning.d.ts +48 -0
  130. package/dist/commands/channel/supervisor/warning.d.ts.map +1 -0
  131. package/dist/commands/channel/supervisor/warning.js +77 -0
  132. package/dist/commands/channel/supervisor/warning.js.map +1 -0
  133. package/dist/commands/channel/supervisor.d.ts +59 -0
  134. package/dist/commands/channel/supervisor.d.ts.map +1 -0
  135. package/dist/commands/channel/supervisor.js +344 -0
  136. package/dist/commands/channel/supervisor.js.map +1 -0
  137. package/dist/commands/channel/text-body.d.ts +13 -0
  138. package/dist/commands/channel/text-body.d.ts.map +1 -0
  139. package/dist/commands/channel/text-body.js +47 -0
  140. package/dist/commands/channel/text-body.js.map +1 -0
  141. package/dist/commands/channel/threads.d.ts +39 -0
  142. package/dist/commands/channel/threads.d.ts.map +1 -0
  143. package/dist/commands/channel/threads.js +106 -0
  144. package/dist/commands/channel/threads.js.map +1 -0
  145. package/dist/commands/channel/title.d.ts +12 -0
  146. package/dist/commands/channel/title.d.ts.map +1 -0
  147. package/dist/commands/channel/title.js +24 -0
  148. package/dist/commands/channel/title.js.map +1 -0
  149. package/dist/commands/channel/wait.d.ts +17 -0
  150. package/dist/commands/channel/wait.d.ts.map +1 -0
  151. package/dist/commands/channel/wait.js +75 -0
  152. package/dist/commands/channel/wait.js.map +1 -0
  153. package/dist/commands/init.d.ts +3 -0
  154. package/dist/commands/init.d.ts.map +1 -1
  155. package/dist/commands/init.js +162 -43
  156. package/dist/commands/init.js.map +1 -1
  157. package/dist/commands/mem.d.ts +13 -217
  158. package/dist/commands/mem.d.ts.map +1 -1
  159. package/dist/commands/mem.js +142 -1587
  160. package/dist/commands/mem.js.map +1 -1
  161. package/dist/commands/uninstall.d.ts.map +1 -1
  162. package/dist/commands/uninstall.js +28 -2
  163. package/dist/commands/uninstall.js.map +1 -1
  164. package/dist/commands/update.d.ts.map +1 -1
  165. package/dist/commands/update.js +102 -5
  166. package/dist/commands/update.js.map +1 -1
  167. package/dist/commands/workflow.d.ts +35 -0
  168. package/dist/commands/workflow.d.ts.map +1 -0
  169. package/dist/commands/workflow.js +232 -0
  170. package/dist/commands/workflow.js.map +1 -0
  171. package/dist/configurators/claude.d.ts.map +1 -1
  172. package/dist/configurators/claude.js +1 -0
  173. package/dist/configurators/claude.js.map +1 -1
  174. package/dist/configurators/index.d.ts.map +1 -1
  175. package/dist/configurators/index.js +5 -0
  176. package/dist/configurators/index.js.map +1 -1
  177. package/dist/configurators/reasonix.d.ts +23 -0
  178. package/dist/configurators/reasonix.d.ts.map +1 -0
  179. package/dist/configurators/reasonix.js +60 -0
  180. package/dist/configurators/reasonix.js.map +1 -0
  181. package/dist/configurators/shared.d.ts.map +1 -1
  182. package/dist/configurators/shared.js +8 -0
  183. package/dist/configurators/shared.js.map +1 -1
  184. package/dist/configurators/workflow.d.ts +8 -0
  185. package/dist/configurators/workflow.d.ts.map +1 -1
  186. package/dist/configurators/workflow.js +14 -3
  187. package/dist/configurators/workflow.js.map +1 -1
  188. package/dist/constants/paths.d.ts +4 -0
  189. package/dist/constants/paths.d.ts.map +1 -1
  190. package/dist/constants/paths.js +4 -0
  191. package/dist/constants/paths.js.map +1 -1
  192. package/dist/migrations/manifests/0.5.14.json +9 -0
  193. package/dist/migrations/manifests/0.5.15.json +9 -0
  194. package/dist/migrations/manifests/0.5.16.json +9 -0
  195. package/dist/migrations/manifests/0.5.17.json +9 -0
  196. package/dist/migrations/manifests/0.5.18.json +9 -0
  197. package/dist/migrations/manifests/0.5.19.json +9 -0
  198. package/dist/migrations/manifests/0.6.0-beta.10.json +9 -0
  199. package/dist/migrations/manifests/0.6.0-beta.11.json +9 -0
  200. package/dist/migrations/manifests/0.6.0-beta.12.json +9 -0
  201. package/dist/migrations/manifests/0.6.0-beta.13.json +9 -0
  202. package/dist/migrations/manifests/0.6.0-beta.14.json +9 -0
  203. package/dist/migrations/manifests/0.6.0-beta.15.json +9 -0
  204. package/dist/migrations/manifests/0.6.0-beta.16.json +9 -0
  205. package/dist/migrations/manifests/0.6.0-beta.17.json +9 -0
  206. package/dist/migrations/manifests/0.6.0-beta.18.json +16 -0
  207. package/dist/migrations/manifests/0.6.0-beta.19.json +9 -0
  208. package/dist/migrations/manifests/0.6.0-beta.20.json +9 -0
  209. package/dist/migrations/manifests/0.6.0-beta.21.json +9 -0
  210. package/dist/migrations/manifests/0.6.0-beta.22.json +9 -0
  211. package/dist/migrations/manifests/0.6.0-beta.23.json +88 -0
  212. package/dist/migrations/manifests/0.6.0-rc.0.json +9 -0
  213. package/dist/templates/claude/agents/trellis-check.md +12 -6
  214. package/dist/templates/claude/agents/trellis-implement.md +1 -1
  215. package/dist/templates/claude/agents/trellis-research.md +1 -1
  216. package/dist/templates/codebuddy/agents/trellis-check.md +12 -6
  217. package/dist/templates/codebuddy/agents/trellis-implement.md +1 -1
  218. package/dist/templates/codebuddy/agents/trellis-research.md +1 -1
  219. package/dist/templates/codex/agents/trellis-check.toml +0 -25
  220. package/dist/templates/codex/agents/trellis-implement.toml +0 -25
  221. package/dist/templates/codex/config.toml +9 -16
  222. package/dist/templates/codex/hooks/session-start.py +22 -0
  223. package/dist/templates/codex/hooks.json +1 -1
  224. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +27 -0
  225. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +81 -0
  226. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +66 -0
  227. package/dist/templates/common/bundled-skills/trellis-session-insight/references/triggering-patterns.md +93 -0
  228. package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/SKILL.md +41 -0
  229. package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/mcp-setup.md +90 -0
  230. package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/repository-analysis.md +59 -0
  231. package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/spec-task-planning.md +61 -0
  232. package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/spec-writing.md +70 -0
  233. package/dist/templates/copilot/hooks/session-start.py +24 -0
  234. package/dist/templates/cursor/agents/trellis-check.md +12 -6
  235. package/dist/templates/cursor/agents/trellis-implement.md +1 -1
  236. package/dist/templates/cursor/agents/trellis-research.md +1 -1
  237. package/dist/templates/cursor/hooks.json +0 -6
  238. package/dist/templates/droid/droids/trellis-check.md +12 -6
  239. package/dist/templates/droid/droids/trellis-implement.md +1 -1
  240. package/dist/templates/droid/droids/trellis-research.md +1 -1
  241. package/dist/templates/gemini/agents/trellis-check.md +11 -5
  242. package/dist/templates/kiro/agents/trellis-check.json +1 -1
  243. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +127 -9
  244. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +130 -0
  245. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +38 -0
  246. package/dist/templates/markdown/spec/guides/index.md.txt +18 -0
  247. package/dist/templates/opencode/agents/trellis-check.md +11 -5
  248. package/dist/templates/pi/agents/trellis-check.md +5 -4
  249. package/dist/templates/pi/agents/trellis-implement.md +5 -4
  250. package/dist/templates/pi/extensions/trellis/index.ts.txt +1339 -913
  251. package/dist/templates/pi/settings.json +0 -9
  252. package/dist/templates/qoder/agents/trellis-check.md +12 -6
  253. package/dist/templates/qoder/agents/trellis-implement.md +1 -1
  254. package/dist/templates/qoder/agents/trellis-research.md +1 -1
  255. package/dist/templates/reasonix/agents/trellis-check.md +36 -0
  256. package/dist/templates/reasonix/agents/trellis-implement.md +41 -0
  257. package/dist/templates/reasonix/index.d.ts +13 -0
  258. package/dist/templates/reasonix/index.d.ts.map +1 -0
  259. package/dist/templates/reasonix/index.js +16 -0
  260. package/dist/templates/reasonix/index.js.map +1 -0
  261. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  262. package/dist/templates/shared-hooks/index.js +0 -1
  263. package/dist/templates/shared-hooks/index.js.map +1 -1
  264. package/dist/templates/shared-hooks/inject-workflow-state.py +22 -0
  265. package/dist/templates/shared-hooks/session-start.py +25 -8
  266. package/dist/templates/trellis/agents/check.md +70 -0
  267. package/dist/templates/trellis/agents/implement.md +71 -0
  268. package/dist/templates/trellis/config.yaml +20 -0
  269. package/dist/templates/trellis/index.d.ts +13 -0
  270. package/dist/templates/trellis/index.d.ts.map +1 -1
  271. package/dist/templates/trellis/index.js +22 -0
  272. package/dist/templates/trellis/index.js.map +1 -1
  273. package/dist/templates/trellis/scripts/common/safe_commit.py +49 -19
  274. package/dist/templates/trellis/scripts/common/task_store.py +94 -16
  275. package/dist/templates/trellis/workflow.md +21 -0
  276. package/dist/types/ai-tools.d.ts +4 -4
  277. package/dist/types/ai-tools.d.ts.map +1 -1
  278. package/dist/types/ai-tools.js +16 -0
  279. package/dist/types/ai-tools.js.map +1 -1
  280. package/dist/utils/agent-refs.d.ts +31 -0
  281. package/dist/utils/agent-refs.d.ts.map +1 -0
  282. package/dist/utils/agent-refs.js +63 -0
  283. package/dist/utils/agent-refs.js.map +1 -0
  284. package/dist/utils/cwd-guard.d.ts +38 -0
  285. package/dist/utils/cwd-guard.d.ts.map +1 -0
  286. package/dist/utils/cwd-guard.js +62 -0
  287. package/dist/utils/cwd-guard.js.map +1 -0
  288. package/dist/utils/file-writer.d.ts +13 -0
  289. package/dist/utils/file-writer.d.ts.map +1 -1
  290. package/dist/utils/file-writer.js +59 -1
  291. package/dist/utils/file-writer.js.map +1 -1
  292. package/dist/utils/manifest-prune.d.ts +61 -0
  293. package/dist/utils/manifest-prune.d.ts.map +1 -0
  294. package/dist/utils/manifest-prune.js +136 -0
  295. package/dist/utils/manifest-prune.js.map +1 -0
  296. package/dist/utils/registry-config.d.ts +7 -0
  297. package/dist/utils/registry-config.d.ts.map +1 -0
  298. package/dist/utils/registry-config.js +171 -0
  299. package/dist/utils/registry-config.js.map +1 -0
  300. package/dist/utils/task-json.d.ts +9 -42
  301. package/dist/utils/task-json.d.ts.map +1 -1
  302. package/dist/utils/task-json.js +8 -45
  303. package/dist/utils/task-json.js.map +1 -1
  304. package/dist/utils/template-fetcher.d.ts +11 -0
  305. package/dist/utils/template-fetcher.d.ts.map +1 -1
  306. package/dist/utils/template-fetcher.js +51 -2
  307. package/dist/utils/template-fetcher.js.map +1 -1
  308. package/dist/utils/template-hash.d.ts +32 -6
  309. package/dist/utils/template-hash.d.ts.map +1 -1
  310. package/dist/utils/template-hash.js +53 -31
  311. package/dist/utils/template-hash.js.map +1 -1
  312. package/dist/utils/workflow-resolver.d.ts +86 -0
  313. package/dist/utils/workflow-resolver.d.ts.map +1 -0
  314. package/dist/utils/workflow-resolver.js +265 -0
  315. package/dist/utils/workflow-resolver.js.map +1 -0
  316. package/package.json +9 -8
package/README.md CHANGED
@@ -7,8 +7,8 @@
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
- <strong>Make AI coding reliable at team scale.</strong><br/>
11
- <sub>A team AI coding harness for progressive specs, custom workflows, task context, and memory across Claude Code, Cursor, Codex, OpenCode, Pi Agent, and more.</sub>
10
+ <strong>An out-of-the-box engineering framework for AI coding.</strong><br/>
11
+ <sub>AI writes code fast, but every session it starts from scratch no memory of your project, your conventions, or your team's requirements. Trellis persists specs, tasks, and memory into your repo, so any coding agent works to your engineering standards.</sub>
12
12
  </p>
13
13
 
14
14
  <p align="center">
@@ -26,7 +26,6 @@
26
26
  <a href="https://github.com/mindfold-ai/Trellis/stargazers"><img src="https://img.shields.io/github/stars/mindfold-ai/Trellis?style=flat-square&color=eab308" alt="stars" /></a>
27
27
  <a href="https://docs.trytrellis.app/"><img src="https://img.shields.io/badge/docs-trytrellis.app-0f766e?style=flat-square" alt="docs" /></a>
28
28
  <a href="https://discord.com/invite/tWcCZ3aRHc"><img src="https://img.shields.io/badge/Discord-Join-5865F2?style=flat-square&logo=discord&logoColor=white" alt="Discord" /></a>
29
- <a href="https://linux.do"><img src="https://img.shields.io/badge/LINUX-DO-FFB003.svg?logo=data:image/svg%2bxml;base64,DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGQ9Ik00Ni44Mi0uMDU1aDYuMjVxMjMuOTY5IDIuMDYyIDM4IDIxLjQyNmM1LjI1OCA3LjY3NiA4LjIxNSAxNi4xNTYgOC44NzUgMjUuNDV2Ni4yNXEtMi4wNjQgMjMuOTY4LTIxLjQzIDM4LTExLjUxMiA3Ljg4NS0yNS40NDUgOC44NzRoLTYuMjVxLTIzLjk3LTIuMDY0LTM4LjAwNC0yMS40M1EuOTcxIDY3LjA1Ni0uMDU0IDUzLjE4di02LjQ3M0MxLjM2MiAzMC43ODEgOC41MDMgMTguMTQ4IDIxLjM3IDguODE3IDI5LjA0NyAzLjU2MiAzNy41MjcuNjA0IDQ2LjgyMS0uMDU2IiBzdHlsZT0ic3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZWNlY2VjO2ZpbGwtb3BhY2l0eToxIi8+PHBhdGggZD0iTTQ3LjI2NiAyLjk1N3EyMi41My0uNjUgMzcuNzc3IDE1LjczOGE0OS43IDQ5LjcgMCAwIDEgNi44NjcgMTAuMTU3cS00MS45NjQuMjIyLTgzLjkzIDAgOS43NS0xOC42MTYgMzAuMDI0LTI0LjM4N2E2MSA2MSAwIDAgMSA5LjI2Mi0xLjUwOCIgc3R5bGU9InN0cm9rZTpub25lO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6IzE5MTkxOTtmaWxsLW9wYWNpdHk6MSIvPjxwYXRoIGQ9Ik03Ljk4IDcwLjkyNmMyNy45NzctLjAzNSA1NS45NTQgMCA4My45My4xMTNRODMuNDI2IDg3LjQ3MyA2Ni4xMyA5NC4wODZxLTE4LjgxIDYuNTQ0LTM2LjgzMi0xLjg5OC0xNC4yMDMtNy4wOS0yMS4zMTctMjEuMjYyIiBzdHlsZT0ic3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZjlhZjAwO2ZpbGwtb3BhY2l0eToxIi8+PC9zdmc+&style=flat-square" alt="LINUX DO" /></a>
30
29
  <a href="https://github.com/mindfold-ai/Trellis/issues"><img src="https://img.shields.io/github/issues/mindfold-ai/Trellis?style=flat-square&color=e67e22" alt="open issues" /></a>
31
30
  <a href="https://github.com/mindfold-ai/Trellis/pulls"><img src="https://img.shields.io/github/issues-pr/mindfold-ai/Trellis?style=flat-square&color=9b59b6" alt="open PRs" /></a>
32
31
  <a href="https://deepwiki.com/mindfold-ai/Trellis"><img src="https://img.shields.io/badge/Ask-DeepWiki-blue?style=flat-square" alt="Ask DeepWiki" /></a>
@@ -37,68 +36,55 @@
37
36
  <img src="assets/trellis-demo.gif" alt="Trellis workflow demo" width="100%">
38
37
  </p>
39
38
 
40
- ## What is Trellis?
39
+ ## Why Trellis?
41
40
 
42
- Trellis is a built-in AI coding harness for teams. It turns the huge system prompt you would normally put in `CLAUDE.md`, `AGENTS.md`, or `.cursorrules` into a progressive wiki of specs, tasks, workflows, and journals that agents load only when needed.
41
+ | Capability | What it changes |
42
+ | --- | --- |
43
+ | **Auto-injected specs** | Write conventions once in `.trellis/spec/`, then let Trellis inject the relevant context into each session instead of repeating yourself. |
44
+ | **Task-centered workflow** | Keep PRDs, implementation context, review context, and task status in `.trellis/tasks/` so AI work stays structured. |
45
+ | **Project memory** | Journals in `.trellis/workspace/` preserve what happened last time, so each new session starts with real context. |
46
+ | **Team-shared standards** | Specs live in the repo, so one person's hard-won workflow or rule can benefit the whole team. |
47
+ | **Multi-platform setup** | Bring the same Trellis structure to 14 AI coding platforms instead of rebuilding your workflow per tool. |
43
48
 
44
- It gives Claude Code, Cursor, Codex, OpenCode, Pi Agent, and other agents the same project source of truth: team standards, task decisions, runbooks, and session memory, without stuffing the whole codebase into every prompt. Trellis is used by individual builders, open-source maintainers, teams inside tech giants, top university labs, and public-company engineering departments working on production monorepos with hundreds of thousands of lines of code.
45
-
46
- ## How it works
47
-
48
- Trellis installs a `.trellis/` directory into your repository and generates the right entry points for each AI coding platform you use.
49
-
50
- | Layer | Purpose |
51
- | ---------------------- | -------------------------------------------------------------------------------------- |
52
- | `.trellis/spec/` | Team standards and coding guidelines that agents can load automatically. |
53
- | `.trellis/tasks/` | PRDs, task context, status, review notes, and acceptance criteria. |
54
- | `.trellis/workspace/` | Developer-level journals, decisions, and handoff notes for session continuity. |
55
- | `.trellis/workflow.md` | The shared lifecycle for planning, building, checking, finishing, and learning. |
56
- | Platform adapters | Generated commands, hooks, skills, prompts, workflows, and agent files for your tools. |
57
-
58
- The core loop is short:
59
-
60
- 1. Capture the task as a PRD.
61
- 2. Inject the relevant project specs.
62
- 3. Let the agent implement inside a clear boundary.
63
- 4. Run checks before handoff.
64
- 5. Promote reusable lessons back into specs.
65
- 6. Record the session so the next agent starts with the decisions and context it needs.
66
-
67
- For the deeper product model, see the [docs](https://docs.trytrellis.app/) and [real-world scenarios](https://docs.trytrellis.app/start/real-world-scenarios).
68
-
69
- ## Install
70
-
71
- Prerequisites:
49
+ ## Prerequisites:
72
50
 
73
51
  - **Node.js** >= 18
74
- - **Python** >= 3.9 for hooks and automation scripts
52
+ - **Python** >= 3.9
75
53
 
76
- Install Trellis:
54
+ ## Quick Start
77
55
 
78
56
  ```bash
79
- npm install -g @mindfoldhq/trellis@beta
80
- ```
81
-
82
- Initialize a repository:
57
+ # 1. Install Trellis
58
+ npm install -g @mindfoldhq/trellis@latest
83
59
 
84
- ```bash
85
- # Start Trellis and create a developer workspace
60
+ # 2. Initialize in your repo
86
61
  trellis init -u your-name
62
+
63
+ # 3. Or initialize with the platforms you actually use
64
+ trellis init --cursor --opencode --codex -u your-name
87
65
  ```
88
66
 
89
67
  See the [Quick Start](https://docs.trytrellis.app/start/install-and-first-task) and [Supported Platforms](https://docs.trytrellis.app/advanced/multi-platform) guides for setup details.
90
68
 
91
- ## First task
69
+ ## How to Use
92
70
 
93
- Trellis 0.5 is skill-first. On hook-capable or extension-capable platforms, session context loads automatically. On platforms that need a manual entry point, start with:
71
+ The workflow is simple:
94
72
 
95
- ```text
96
- /start or /trellis:start # Load project context
97
- ```
73
+ 1. **Describe what you want** in natural language.
74
+ 2. **Brainstorm** with the AI one question at a time until the PRD is clear, then implementation begins.
75
+ 3. **Let it run** — the AI calls Trellis Implement and auto-checks the result against specs, lint, type-check, and tests.
76
+ 4. **Type `/trellis:finish-work`** when the work is done or the session context fills up. Trellis archives the task and updates journals.
98
77
 
99
- Then describe the task in natural language. Trellis routes the work through skills for brainstorming, spec loading, implementation checks, and knowledge capture. Use `continue` to advance the current task and `finish-work` after human testing and commit.
78
+ ## How It Works
100
79
 
101
- ## Learn more
80
+ Trellis runs a 4-phase loop with auto-invoked skills and sub-agents:
81
+
82
+ 1. **Plan** — `trellis-brainstorm` walks through requirements one question at a time and writes `prd.md`. Research-heavy items go to a `trellis-research` sub-agent. The result is curated specs + research files referenced from `implement.jsonl` / `check.jsonl`.
83
+ 2. **Implement** — a `trellis-implement` sub-agent writes code from the PRD with the curated context auto-injected, no git commit.
84
+ 3. **Verify** — a `trellis-check` sub-agent reviews the diff against specs and runs lint, type-check, and tests, self-fixing where it can.
85
+ 4. **Finish** — a final check runs, then `trellis-update-spec` promotes new learnings back into `.trellis/spec/` so the next session starts smarter.
86
+
87
+ ## Resources
102
88
 
103
89
  | Need | Link |
104
90
  | ------------------------------- | ------------------------------------------------------------------------------ |
@@ -106,7 +92,7 @@ Then describe the task in natural language. Trellis routes the work through skil
106
92
  | Understand platform differences | [Supported Platforms](https://docs.trytrellis.app/advanced/multi-platform) |
107
93
  | See the workflow in practice | [Real-World Scenarios](https://docs.trytrellis.app/start/real-world-scenarios) |
108
94
  | Start from spec templates | [Spec Templates](https://docs.trytrellis.app/templates/specs-index) |
109
- | Track releases | [Changelog](https://docs.trytrellis.app/changelog/v0.5.0-beta.16) |
95
+ | Track releases | [Changelog](https://docs.trytrellis.app/changelog) |
110
96
 
111
97
  ## FAQ
112
98
 
@@ -131,6 +117,20 @@ Both. Solo developers use it for memory and repeatable workflow. Teams get the l
131
117
 
132
118
  </details>
133
119
 
120
+ <details>
121
+ <summary><strong>Do I have to write every spec file manually?</strong></summary>
122
+
123
+ No. Many teams start by letting AI draft specs from existing code and then tighten the important parts by hand. Trellis works best when you keep the high-signal rules explicit and versioned.
124
+
125
+ </details>
126
+
127
+ <details>
128
+ <summary><strong>Can teams use this without constant conflicts?</strong></summary>
129
+
130
+ Yes. Personal workspace journals stay separate per developer, while shared specs and tasks stay in the repo where they can be reviewed and improved like any other project artifact.
131
+
132
+ </details>
133
+
134
134
  ## Star History
135
135
 
136
136
  [![Star History Chart](https://api.star-history.com/svg?repos=mindfold-ai/Trellis&type=Date)](https://star-history.com/#mindfold-ai/Trellis&Date)
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/dist/cli/index.js CHANGED
@@ -7,6 +7,8 @@ import { update } from "../commands/update.js";
7
7
  import { upgrade } from "../commands/upgrade.js";
8
8
  import { uninstall } from "../commands/uninstall.js";
9
9
  import { runMem } from "../commands/mem.js";
10
+ import { runWorkflowCommand, WorkflowCommandError, } from "../commands/workflow.js";
11
+ import { registerChannelCommand } from "../commands/channel/index.js";
10
12
  import { DIR_NAMES } from "../constants/paths.js";
11
13
  import { PACKAGE_NAME, VERSION } from "../constants/version.js";
12
14
  import { compareVersions } from "../utils/compare-versions.js";
@@ -60,6 +62,7 @@ program
60
62
  .option("--copilot", "Include GitHub Copilot hooks")
61
63
  .option("--droid", "Include Factory Droid commands")
62
64
  .option("--pi", "Include Pi Agent extension assets")
65
+ .option("--reasonix", "Include Reasonix skills")
63
66
  .option("-y, --yes", "Skip prompts and use defaults")
64
67
  .option("-u, --user <name>", "Initialize developer identity with specified name")
65
68
  .option("-f, --force", "Overwrite existing files without asking")
@@ -70,6 +73,8 @@ program
70
73
  .option("--overwrite", "Overwrite existing spec directory when using template")
71
74
  .option("--append", "Only add missing files when using template")
72
75
  .option("-r, --registry <source>", "Use a custom template registry (e.g., gh:myorg/myrepo/specs)")
76
+ .option("--workflow <id>", "Workflow template id for .trellis/workflow.md (default: native; e.g., tdd, channel-driven-subagent-dispatch)")
77
+ .option("--workflow-source <source>", "Custom marketplace source for the --workflow lookup (e.g., gh:myorg/myrepo/marketplace)")
73
78
  .action(async (options) => {
74
79
  try {
75
80
  await init(options);
@@ -168,5 +173,36 @@ program
168
173
  process.exit(1);
169
174
  }
170
175
  });
176
+ program
177
+ .command("workflow")
178
+ .description("List or switch the project's .trellis/workflow.md template (native, tdd, channel-driven-subagent-dispatch, or marketplace)")
179
+ .option("-t, --template <id>", "Workflow template id (e.g., native, tdd, channel-driven-subagent-dispatch)")
180
+ .option("-m, --marketplace <source>", "Custom marketplace source (e.g., gh:myorg/myrepo/marketplace)")
181
+ .option("--list", "List available workflow templates and exit")
182
+ .option("-f, --force", "Overwrite a modified workflow.md without asking")
183
+ .option("-n, --create-new", "Write .trellis/workflow.md.new instead of replacing the active workflow")
184
+ .action(async (options) => {
185
+ try {
186
+ await runWorkflowCommand({
187
+ template: options.template,
188
+ marketplace: options.marketplace,
189
+ list: options.list,
190
+ force: options.force,
191
+ createNew: options.createNew,
192
+ });
193
+ }
194
+ catch (error) {
195
+ if (error instanceof WorkflowCommandError) {
196
+ console.error(chalk.red("Error:"), error.message);
197
+ process.exit(1);
198
+ }
199
+ console.error(chalk.red("Error:"), error instanceof Error ? error.message : error);
200
+ if (process.env.DEBUG || process.env.TRELLIS_DEBUG) {
201
+ console.error(error instanceof Error ? error.stack : error);
202
+ }
203
+ process.exit(1);
204
+ }
205
+ });
206
+ registerChannelCommand(program);
171
207
  program.parse();
172
208
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,uFAAuF;AACvF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAEjC;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO;IAExC,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC;IAC3B,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE/D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,+CAA+C;QAC/C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,mCAAmC,cAAc,MAAM,UAAU,EAAE,CACpE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAC1B,iDAAiD;QACjD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,mBAAmB,UAAU,4BAA4B,cAAc,GAAG,CAC3E,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IACtD,eAAe,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CACV,6EAA6E,CAC9E;KACA,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;AAElE,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,UAAU,EAAE,8BAA8B,CAAC;KAClD,MAAM,CAAC,YAAY,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;KACzC,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC;KAC7C,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;KAC5C,MAAM,CAAC,UAAU,EAAE,6BAA6B,CAAC;KACjD,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC3C,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,SAAS,EAAE,gCAAgC,CAAC;KACnD,MAAM,CAAC,MAAM,EAAE,mCAAmC,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CACL,mBAAmB,EACnB,mDAAmD,CACpD;KACA,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;KACnE,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC;KAC3C,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC;KAClD,MAAM,CACL,uBAAuB,EACvB,uDAAuD,CACxD;KACA,MAAM,CACL,aAAa,EACb,uDAAuD,CACxD;KACA,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAChE,MAAM,CACL,yBAAyB,EACzB,8DAA8D,CAC/D;KACA,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;KAC5D,MAAM,CAAC,aAAa,EAAE,4CAA4C,CAAC;KACnE,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,0CAA0C,CAAC;KACtE,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;KACpE,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC;YACX,MAAM,EAAE,OAAO,CAAC,MAAiB;YACjC,KAAK,EAAE,OAAO,CAAC,KAAgB;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAkB;YACnC,SAAS,EAAE,OAAO,CAAC,SAAoB;YACvC,cAAc,EAAE,OAAO,CAAC,cAAyB;YACjD,OAAO,EAAE,OAAO,CAAC,OAAkB;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CACL,aAAa,EACb,2FAA2F,CAC5F;KACA,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC;YACZ,GAAG,EAAE,OAAO,CAAC,GAAyB;YACtC,MAAM,EAAE,OAAO,CAAC,MAAiB;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CACV,iFAAiF,CAClF;KACA,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC;YACd,GAAG,EAAE,OAAO,CAAC,GAAc;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAiB;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CACV,8HAA8H,CAC/H;KACA,kBAAkB,CAAC,IAAI,CAAC;KACxB,UAAU,CAAC,KAAK,CAAC;KACjB,QAAQ,CACP,WAAW,EACX,sEAAsE,CACvE;KACA,MAAM,CAAC,CAAC,OAAiB,EAAE,EAAE,EAAE;IAC9B,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { ParseResult } from "./types.js";
2
+ /**
3
+ * Parse one line of Claude stream-json stdout.
4
+ * Returns the channel events to emit + any side effects.
5
+ *
6
+ * Pure function: same input always produces same output. No I/O.
7
+ */
8
+ export declare function parseClaudeLine(line: string): ParseResult;
9
+ /**
10
+ * Encode a channel user message into Claude stream-json stdin line(s).
11
+ */
12
+ export declare function encodeClaudeUserMessage(text: string): string;
13
+ /**
14
+ * Send Claude's provider-level interrupt control request before the
15
+ * replacement prompt. Current SDK behavior is best-effort, but keeping it
16
+ * separate from channel message metadata makes interrupt an explicit command path.
17
+ */
18
+ export declare function encodeClaudeInterruptMessage(text: string): string;
19
+ /**
20
+ * Build the Claude CLI args for `claude -p` in stream-json mode.
21
+ */
22
+ export declare function buildClaudeArgs(opts: {
23
+ resumeSessionId?: string;
24
+ model?: string;
25
+ verbose?: boolean;
26
+ /** Appended to Claude's default system prompt (per agent definition body). */
27
+ systemPrompt?: string;
28
+ }): string[];
29
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,YAAY,CAAC;AA4D5D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAuCzD;AAyFD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,EAAE,CAkBX"}
@@ -0,0 +1,203 @@
1
+ function summarizeInput(input, max = 120) {
2
+ if (input === null || input === undefined)
3
+ return "";
4
+ let s;
5
+ try {
6
+ s = typeof input === "string" ? input : JSON.stringify(input);
7
+ }
8
+ catch {
9
+ s = String(input);
10
+ }
11
+ return s.length > max ? s.slice(0, max) + "…" : s;
12
+ }
13
+ function isMcpToolName(name) {
14
+ return /^mcp__/.test(name);
15
+ }
16
+ /**
17
+ * Parse one line of Claude stream-json stdout.
18
+ * Returns the channel events to emit + any side effects.
19
+ *
20
+ * Pure function: same input always produces same output. No I/O.
21
+ */
22
+ export function parseClaudeLine(line) {
23
+ const trimmed = line.trim();
24
+ if (!trimmed)
25
+ return { events: [] };
26
+ let msg;
27
+ try {
28
+ msg = JSON.parse(trimmed);
29
+ }
30
+ catch {
31
+ return {
32
+ events: [
33
+ {
34
+ kind: "error",
35
+ payload: {
36
+ message: "Failed to parse Claude stdout line",
37
+ raw_excerpt: trimmed.slice(0, 200),
38
+ },
39
+ },
40
+ ],
41
+ };
42
+ }
43
+ switch (msg.type) {
44
+ case "system":
45
+ return handleSystem(msg);
46
+ case "assistant":
47
+ return handleAssistant(msg);
48
+ case "user":
49
+ return { events: [] };
50
+ case "rate_limit_event":
51
+ return { events: [] };
52
+ case "result":
53
+ return handleResult(msg);
54
+ case "control_response":
55
+ // Acknowledgement of our outbound control_request (e.g. interrupt).
56
+ // Silently consume — supervisor doesn't need to wait on it.
57
+ return { events: [] };
58
+ default:
59
+ return { events: [] };
60
+ }
61
+ }
62
+ function handleSystem(msg) {
63
+ if (msg.subtype === "init" && msg.session_id) {
64
+ return {
65
+ events: [],
66
+ side: { persistSessionId: msg.session_id },
67
+ };
68
+ }
69
+ return { events: [] };
70
+ }
71
+ function handleAssistant(msg) {
72
+ const blocks = msg.message?.content;
73
+ if (!Array.isArray(blocks))
74
+ return { events: [] };
75
+ const events = [];
76
+ for (const b of blocks) {
77
+ switch (b.type) {
78
+ case "text": {
79
+ if (b.text && b.text.length > 0) {
80
+ events.push({ kind: "message", payload: { text: b.text } });
81
+ }
82
+ break;
83
+ }
84
+ case "tool_use": {
85
+ const name = b.name ?? "";
86
+ const payload = {
87
+ detail: {
88
+ tool: name,
89
+ input_summary: summarizeInput(b.input),
90
+ },
91
+ };
92
+ if (isMcpToolName(name)) {
93
+ const parts = name.split("__");
94
+ payload.detail.kind = "mcp";
95
+ if (parts.length >= 3) {
96
+ payload.detail.server = parts[1];
97
+ payload.detail.tool_name = parts
98
+ .slice(2)
99
+ .join("__");
100
+ }
101
+ }
102
+ events.push({ kind: "progress", payload });
103
+ break;
104
+ }
105
+ case "thinking":
106
+ // skip in default mode
107
+ break;
108
+ default:
109
+ // unknown block type — skip silently
110
+ break;
111
+ }
112
+ }
113
+ return { events };
114
+ }
115
+ function handleResult(msg) {
116
+ if (msg.is_error) {
117
+ return {
118
+ events: [
119
+ {
120
+ kind: "error",
121
+ payload: {
122
+ message: msg.result ?? "Claude reported is_error",
123
+ duration_ms: msg.duration_ms,
124
+ },
125
+ },
126
+ ],
127
+ };
128
+ }
129
+ // Intentionally do NOT copy `msg.result` into `done.text`. Claude already
130
+ // emitted the final text as an `assistant.message.content[].text` block,
131
+ // which we turned into a `kind:message` event above. Repeating it on
132
+ // `done` makes GUI consumers render the answer twice.
133
+ return {
134
+ events: [
135
+ {
136
+ kind: "done",
137
+ payload: {
138
+ duration_ms: msg.duration_ms,
139
+ total_cost_usd: msg.total_cost_usd,
140
+ num_turns: msg.num_turns,
141
+ },
142
+ },
143
+ ],
144
+ };
145
+ }
146
+ /**
147
+ * Encode a channel user message into Claude stream-json stdin line(s).
148
+ */
149
+ export function encodeClaudeUserMessage(text) {
150
+ const lines = [];
151
+ lines.push(JSON.stringify({
152
+ type: "user",
153
+ message: {
154
+ role: "user",
155
+ content: [{ type: "text", text }],
156
+ },
157
+ }));
158
+ return lines.join("\n") + "\n";
159
+ }
160
+ /**
161
+ * Send Claude's provider-level interrupt control request before the
162
+ * replacement prompt. Current SDK behavior is best-effort, but keeping it
163
+ * separate from channel message metadata makes interrupt an explicit command path.
164
+ */
165
+ export function encodeClaudeInterruptMessage(text) {
166
+ const lines = [
167
+ JSON.stringify({
168
+ type: "control_request",
169
+ request_id: `trellis-int-${Date.now()}-${Math.random()
170
+ .toString(36)
171
+ .slice(2, 8)}`,
172
+ request: { subtype: "interrupt" },
173
+ }),
174
+ encodeClaudeUserMessage(text).trimEnd(),
175
+ ];
176
+ return lines.join("\n") + "\n";
177
+ }
178
+ /**
179
+ * Build the Claude CLI args for `claude -p` in stream-json mode.
180
+ */
181
+ export function buildClaudeArgs(opts) {
182
+ const args = [
183
+ "-p",
184
+ "--input-format",
185
+ "stream-json",
186
+ "--output-format",
187
+ "stream-json",
188
+ "--permission-mode",
189
+ "bypassPermissions",
190
+ "--dangerously-skip-permissions",
191
+ ];
192
+ if (opts.verbose !== false)
193
+ args.push("--verbose");
194
+ if (opts.resumeSessionId)
195
+ args.push("--resume", opts.resumeSessionId);
196
+ if (opts.model)
197
+ args.push("--model", opts.model);
198
+ if (opts.systemPrompt?.trim()) {
199
+ args.push("--append-system-prompt", opts.systemPrompt);
200
+ }
201
+ return args;
202
+ }
203
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type { ParseResult } from "./types.js";
2
+ /**
3
+ * Codex `app-server` adapter (JSON-RPC 2.0 over stdio).
4
+ *
5
+ * Wire shape (real data — see research/probes/codex/*.jsonl):
6
+ *
7
+ * Three inbound message kinds:
8
+ * 1. Response to our outgoing request: { id, result } | { id, error }, no method
9
+ * 2. Server-to-client request: { method, id, params } — must reply
10
+ * 3. Notification: { method, params } — fire-and-forget
11
+ *
12
+ * Outbound: initialize → thread/start → turn/start
13
+ *
14
+ * Translated events (per probe-findings.md):
15
+ * thread/start result.thread.id → persistThreadId + persistSessionId (same UUIDv7)
16
+ * item/started commandExecution → progress(tool=shell, cmd, status=inProgress)
17
+ * item/started mcpToolCall → progress(kind=mcp, server, tool, args_summary)
18
+ * item/started dynamicToolCall → progress(kind=dynamic, namespace, tool, args)
19
+ * item/started webSearch → progress(kind=web_search, query)
20
+ * item/started fileChange → progress(kind=file_change)
21
+ * item/completed agentMessage → say(text, phase)
22
+ * item/agentMessage/delta → progress(kind, stream_id, text_delta)
23
+ * item/completed commandExecution → optional progress(status, exitCode)
24
+ * item/started collabAgentToolCall → error(reason=collab_blocked, recommendation=set features.multi_agent=false)
25
+ * turn/completed → done
26
+ * turn/aborted → error(reason=aborted)
27
+ * warning → progress(kind=warning, message)
28
+ * mcpServer/elicitation/request → reply { action: accept, content: {} } (auto-allow)
29
+ *
30
+ * Notifications we skip silently:
31
+ * remoteControl/status/changed
32
+ * mcpServer/startupStatus/updated
33
+ * mcpServer/oauthLoginCompleted
34
+ * account/rateLimits/updated
35
+ * thread/tokenUsage/updated
36
+ * thread/status/changed
37
+ * thread/started (we record thread id from thread/start result instead)
38
+ * turn/started
39
+ * serverRequest/resolved
40
+ * ItemGuardianApprovalReview* (until channel supports human-in-loop)
41
+ *
42
+ * This module exposes:
43
+ * - parseCodexLine(line, ctx) — pure parser; ctx tracks pending outgoing ids
44
+ * - encodeCodexRequest / encodeCodexUserMessage — outbound framing helpers
45
+ * - buildCodexArgs — CLI args
46
+ * - createCodexCtx — state holder for pending ids
47
+ */
48
+ export interface CodexCtx {
49
+ /** id → label tracking outgoing requests, so adapter can recognise their responses. */
50
+ pending: Map<number, "initialize" | "thread/start" | "turn/start" | "other">;
51
+ /** Codex item id → stream metadata used to classify interleaved deltas. */
52
+ items: Map<string, CodexItemMeta>;
53
+ /** Whether the current turn has emitted a final user-visible answer. */
54
+ finalMessageSeen: boolean;
55
+ /** Codex may send turn/completed before the final agentMessage item. */
56
+ pendingDone: boolean;
57
+ /** Last-known thread id (used to scope future requests). */
58
+ threadId?: string;
59
+ /** Monotonic outbound id allocator. */
60
+ nextId: number;
61
+ }
62
+ export declare function createCodexCtx(): CodexCtx;
63
+ interface CodexItemMeta {
64
+ type?: string;
65
+ phase?: string;
66
+ }
67
+ export declare function parseCodexLine(line: string, ctx: CodexCtx): ParseResult;
68
+ export declare function encodeCodexRequest(ctx: CodexCtx, method: string, params: unknown, label?: "initialize" | "thread/start" | "turn/start" | "other"): {
69
+ id: number;
70
+ line: string;
71
+ };
72
+ export declare function encodeCodexUserMessage(ctx: CodexCtx, text: string): {
73
+ id: number;
74
+ line: string;
75
+ };
76
+ export declare function encodeCodexInterruptMessage(ctx: CodexCtx, text: string): {
77
+ id: number;
78
+ line: string;
79
+ };
80
+ export declare function buildCodexArgs(opts: {
81
+ model?: string;
82
+ }): string[];
83
+ export declare function buildCodexThreadStartParams(cwd: string, systemPrompt?: string): Record<string, unknown>;
84
+ export {};
85
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,MAAM,WAAW,QAAQ;IACvB,uFAAuF;IACvF,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC;IAC7E,2EAA2E;IAC3E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,wEAAwE;IACxE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,WAAW,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAQzC;AAED,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,WAAW,CAqCvE;AAwZD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,KAAK,GAAE,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,OAAiB,GACtE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAK9B;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiB9B;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM9B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAIjE;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB"}