@pennixrv/trellis 0.7.1 → 0.7.2-beta.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 (321) hide show
  1. package/README.md +10 -7
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +6 -4
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/ablate.d.ts.map +1 -1
  6. package/dist/commands/ablate.js +2 -0
  7. package/dist/commands/ablate.js.map +1 -1
  8. package/dist/commands/backup.d.ts +4 -0
  9. package/dist/commands/backup.d.ts.map +1 -0
  10. package/dist/commands/backup.js +75 -0
  11. package/dist/commands/backup.js.map +1 -0
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +705 -681
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/mem.d.ts.map +1 -1
  16. package/dist/commands/mem.js +49 -7
  17. package/dist/commands/mem.js.map +1 -1
  18. package/dist/commands/task-progress.d.ts +1 -0
  19. package/dist/commands/task-progress.d.ts.map +1 -1
  20. package/dist/commands/task-progress.js +67 -25
  21. package/dist/commands/task-progress.js.map +1 -1
  22. package/dist/commands/teamwork/adapters/acp.d.ts +20 -0
  23. package/dist/commands/teamwork/adapters/acp.d.ts.map +1 -0
  24. package/dist/commands/teamwork/adapters/acp.js +268 -0
  25. package/dist/commands/teamwork/adapters/acp.js.map +1 -0
  26. package/dist/commands/teamwork/adapters/claude.d.ts +1 -0
  27. package/dist/commands/teamwork/adapters/claude.d.ts.map +1 -1
  28. package/dist/commands/teamwork/adapters/claude.js +5 -0
  29. package/dist/commands/teamwork/adapters/claude.js.map +1 -1
  30. package/dist/commands/teamwork/adapters/codex.d.ts +3 -2
  31. package/dist/commands/teamwork/adapters/codex.d.ts.map +1 -1
  32. package/dist/commands/teamwork/adapters/codex.js +14 -15
  33. package/dist/commands/teamwork/adapters/codex.js.map +1 -1
  34. package/dist/commands/teamwork/adapters/index.d.ts +23 -1
  35. package/dist/commands/teamwork/adapters/index.d.ts.map +1 -1
  36. package/dist/commands/teamwork/adapters/index.js +163 -24
  37. package/dist/commands/teamwork/adapters/index.js.map +1 -1
  38. package/dist/commands/teamwork/agent-loader.d.ts +2 -1
  39. package/dist/commands/teamwork/agent-loader.d.ts.map +1 -1
  40. package/dist/commands/teamwork/agent-loader.js +2 -1
  41. package/dist/commands/teamwork/agent-loader.js.map +1 -1
  42. package/dist/commands/teamwork/artifact.d.ts +42 -14
  43. package/dist/commands/teamwork/artifact.d.ts.map +1 -1
  44. package/dist/commands/teamwork/artifact.js +188 -85
  45. package/dist/commands/teamwork/artifact.js.map +1 -1
  46. package/dist/commands/teamwork/batch-reservation.d.ts +16 -0
  47. package/dist/commands/teamwork/batch-reservation.d.ts.map +1 -0
  48. package/dist/commands/teamwork/batch-reservation.js +43 -0
  49. package/dist/commands/teamwork/batch-reservation.js.map +1 -0
  50. package/dist/commands/teamwork/batch.d.ts +23 -0
  51. package/dist/commands/teamwork/batch.d.ts.map +1 -0
  52. package/dist/commands/teamwork/batch.js +415 -0
  53. package/dist/commands/teamwork/batch.js.map +1 -0
  54. package/dist/commands/teamwork/context-loader.d.ts +1 -1
  55. package/dist/commands/teamwork/context-loader.d.ts.map +1 -1
  56. package/dist/commands/teamwork/context-loader.js +19 -6
  57. package/dist/commands/teamwork/context-loader.js.map +1 -1
  58. package/dist/commands/teamwork/coordination.d.ts +88 -0
  59. package/dist/commands/teamwork/coordination.d.ts.map +1 -0
  60. package/dist/commands/teamwork/coordination.js +153 -0
  61. package/dist/commands/teamwork/coordination.js.map +1 -0
  62. package/dist/commands/teamwork/coordinator.d.ts +33 -6
  63. package/dist/commands/teamwork/coordinator.d.ts.map +1 -1
  64. package/dist/commands/teamwork/coordinator.js +948 -342
  65. package/dist/commands/teamwork/coordinator.js.map +1 -1
  66. package/dist/commands/teamwork/create.d.ts +1 -0
  67. package/dist/commands/teamwork/create.d.ts.map +1 -1
  68. package/dist/commands/teamwork/create.js +2 -1
  69. package/dist/commands/teamwork/create.js.map +1 -1
  70. package/dist/commands/teamwork/dev-parse-trace.d.ts +2 -1
  71. package/dist/commands/teamwork/dev-parse-trace.d.ts.map +1 -1
  72. package/dist/commands/teamwork/dev-parse-trace.js +2 -0
  73. package/dist/commands/teamwork/dev-parse-trace.js.map +1 -1
  74. package/dist/commands/teamwork/foreground-wait.d.ts +6 -0
  75. package/dist/commands/teamwork/foreground-wait.d.ts.map +1 -0
  76. package/dist/commands/teamwork/foreground-wait.js +65 -0
  77. package/dist/commands/teamwork/foreground-wait.js.map +1 -0
  78. package/dist/commands/teamwork/guard.d.ts +2 -2
  79. package/dist/commands/teamwork/guard.d.ts.map +1 -1
  80. package/dist/commands/teamwork/guard.js +25 -7
  81. package/dist/commands/teamwork/guard.js.map +1 -1
  82. package/dist/commands/teamwork/index.d.ts.map +1 -1
  83. package/dist/commands/teamwork/index.js +163 -10
  84. package/dist/commands/teamwork/index.js.map +1 -1
  85. package/dist/commands/teamwork/kill.d.ts +2 -0
  86. package/dist/commands/teamwork/kill.d.ts.map +1 -1
  87. package/dist/commands/teamwork/kill.js +79 -38
  88. package/dist/commands/teamwork/kill.js.map +1 -1
  89. package/dist/commands/teamwork/messages.d.ts.map +1 -1
  90. package/dist/commands/teamwork/messages.js +3 -0
  91. package/dist/commands/teamwork/messages.js.map +1 -1
  92. package/dist/commands/teamwork/plan.d.ts +22 -0
  93. package/dist/commands/teamwork/plan.d.ts.map +1 -0
  94. package/dist/commands/teamwork/plan.js +288 -0
  95. package/dist/commands/teamwork/plan.js.map +1 -0
  96. package/dist/commands/teamwork/process-identity.d.ts +3 -0
  97. package/dist/commands/teamwork/process-identity.d.ts.map +1 -0
  98. package/dist/commands/teamwork/process-identity.js +24 -0
  99. package/dist/commands/teamwork/process-identity.js.map +1 -0
  100. package/dist/commands/teamwork/profiles.d.ts +43 -6
  101. package/dist/commands/teamwork/profiles.d.ts.map +1 -1
  102. package/dist/commands/teamwork/profiles.js +138 -110
  103. package/dist/commands/teamwork/profiles.js.map +1 -1
  104. package/dist/commands/teamwork/prompt.d.ts +4 -0
  105. package/dist/commands/teamwork/prompt.d.ts.map +1 -0
  106. package/dist/commands/teamwork/prompt.js +33 -0
  107. package/dist/commands/teamwork/prompt.js.map +1 -0
  108. package/dist/commands/teamwork/result.d.ts +55 -0
  109. package/dist/commands/teamwork/result.d.ts.map +1 -0
  110. package/dist/commands/teamwork/result.js +94 -0
  111. package/dist/commands/teamwork/result.js.map +1 -0
  112. package/dist/commands/teamwork/rm.d.ts.map +1 -1
  113. package/dist/commands/teamwork/rm.js +64 -64
  114. package/dist/commands/teamwork/rm.js.map +1 -1
  115. package/dist/commands/teamwork/run.d.ts +5 -0
  116. package/dist/commands/teamwork/run.d.ts.map +1 -1
  117. package/dist/commands/teamwork/run.js +120 -24
  118. package/dist/commands/teamwork/run.js.map +1 -1
  119. package/dist/commands/teamwork/runtime.d.ts +9 -0
  120. package/dist/commands/teamwork/runtime.d.ts.map +1 -0
  121. package/dist/commands/teamwork/runtime.js +401 -0
  122. package/dist/commands/teamwork/runtime.js.map +1 -0
  123. package/dist/commands/teamwork/send.d.ts +1 -0
  124. package/dist/commands/teamwork/send.d.ts.map +1 -1
  125. package/dist/commands/teamwork/send.js +2 -1
  126. package/dist/commands/teamwork/send.js.map +1 -1
  127. package/dist/commands/teamwork/spawn.d.ts +10 -3
  128. package/dist/commands/teamwork/spawn.d.ts.map +1 -1
  129. package/dist/commands/teamwork/spawn.js +42 -27
  130. package/dist/commands/teamwork/spawn.js.map +1 -1
  131. package/dist/commands/teamwork/store/lock.js +28 -4
  132. package/dist/commands/teamwork/store/lock.js.map +1 -1
  133. package/dist/commands/teamwork/supervisor/inbox.d.ts +1 -0
  134. package/dist/commands/teamwork/supervisor/inbox.d.ts.map +1 -1
  135. package/dist/commands/teamwork/supervisor/inbox.js +28 -9
  136. package/dist/commands/teamwork/supervisor/inbox.js.map +1 -1
  137. package/dist/commands/teamwork/supervisor/stdout.d.ts.map +1 -1
  138. package/dist/commands/teamwork/supervisor/stdout.js +2 -3
  139. package/dist/commands/teamwork/supervisor/stdout.js.map +1 -1
  140. package/dist/commands/teamwork/supervisor/warning.d.ts.map +1 -1
  141. package/dist/commands/teamwork/supervisor/warning.js +2 -3
  142. package/dist/commands/teamwork/supervisor/warning.js.map +1 -1
  143. package/dist/commands/teamwork/supervisor.d.ts +5 -0
  144. package/dist/commands/teamwork/supervisor.d.ts.map +1 -1
  145. package/dist/commands/teamwork/supervisor.js +21 -12
  146. package/dist/commands/teamwork/supervisor.js.map +1 -1
  147. package/dist/commands/teamwork/teammate-adapters.d.ts +0 -5
  148. package/dist/commands/teamwork/teammate-adapters.d.ts.map +1 -1
  149. package/dist/commands/teamwork/teammate-adapters.js +9 -56
  150. package/dist/commands/teamwork/teammate-adapters.js.map +1 -1
  151. package/dist/commands/teamwork/teammate-config.d.ts +5 -1
  152. package/dist/commands/teamwork/teammate-config.d.ts.map +1 -1
  153. package/dist/commands/teamwork/teammate-config.js +62 -19
  154. package/dist/commands/teamwork/teammate-config.js.map +1 -1
  155. package/dist/commands/teamwork/teammate-launch.d.ts +15 -6
  156. package/dist/commands/teamwork/teammate-launch.d.ts.map +1 -1
  157. package/dist/commands/teamwork/teammate-launch.js +129 -22
  158. package/dist/commands/teamwork/teammate-launch.js.map +1 -1
  159. package/dist/commands/teamwork/wait.d.ts +2 -0
  160. package/dist/commands/teamwork/wait.d.ts.map +1 -1
  161. package/dist/commands/teamwork/wait.js +44 -3
  162. package/dist/commands/teamwork/wait.js.map +1 -1
  163. package/dist/commands/uninstall.d.ts.map +1 -1
  164. package/dist/commands/uninstall.js +92 -84
  165. package/dist/commands/uninstall.js.map +1 -1
  166. package/dist/commands/update.d.ts.map +1 -1
  167. package/dist/commands/update.js +635 -592
  168. package/dist/commands/update.js.map +1 -1
  169. package/dist/commands/workflow.d.ts.map +1 -1
  170. package/dist/commands/workflow.js +94 -89
  171. package/dist/commands/workflow.js.map +1 -1
  172. package/dist/configurators/shared.js +2 -2
  173. package/dist/configurators/shared.js.map +1 -1
  174. package/dist/configurators/workflow.d.ts.map +1 -1
  175. package/dist/configurators/workflow.js +14 -32
  176. package/dist/configurators/workflow.js.map +1 -1
  177. package/dist/constants/paths.d.ts +3 -10
  178. package/dist/constants/paths.d.ts.map +1 -1
  179. package/dist/constants/paths.js +4 -13
  180. package/dist/constants/paths.js.map +1 -1
  181. package/dist/migrations/manifests/0.7.1-beta.0.json +9 -0
  182. package/dist/migrations/manifests/0.7.1-beta.1.json +186 -0
  183. package/dist/migrations/manifests/0.7.1-beta.10.json +9 -0
  184. package/dist/migrations/manifests/0.7.1-beta.11.json +9 -0
  185. package/dist/migrations/manifests/0.7.1-beta.12.json +9 -0
  186. package/dist/migrations/manifests/0.7.1-beta.13.json +9 -0
  187. package/dist/migrations/manifests/0.7.1-beta.14.json +11 -0
  188. package/dist/migrations/manifests/0.7.1-beta.15.json +9 -0
  189. package/dist/migrations/manifests/0.7.1-beta.16.json +9 -0
  190. package/dist/migrations/manifests/0.7.1-beta.17.json +9 -0
  191. package/dist/migrations/manifests/0.7.1-beta.18.json +9 -0
  192. package/dist/migrations/manifests/0.7.1-beta.19.json +9 -0
  193. package/dist/migrations/manifests/0.7.1-beta.2.json +522 -0
  194. package/dist/migrations/manifests/0.7.1-beta.3.json +9 -0
  195. package/dist/migrations/manifests/0.7.1-beta.4.json +9 -0
  196. package/dist/migrations/manifests/0.7.1-beta.5.json +9 -0
  197. package/dist/migrations/manifests/0.7.1-beta.6.json +10 -0
  198. package/dist/migrations/manifests/0.7.1-beta.7.json +8 -0
  199. package/dist/migrations/manifests/0.7.1-beta.8.json +481 -0
  200. package/dist/migrations/manifests/0.7.1-beta.9.json +191 -0
  201. package/dist/migrations/manifests/0.7.2-beta.0.json +11 -0
  202. package/dist/migrations/manifests/0.7.2-beta.1.json +11 -0
  203. package/dist/migrations/manifests/0.7.2-beta.2.json +11 -0
  204. package/dist/templates/claude/hooks/statusline.py +9 -4
  205. package/dist/templates/codex/hooks/session-start.py +14 -11
  206. package/dist/templates/codex/hooks.json +10 -0
  207. package/dist/templates/common/bundled-skills/trellis-decision-space-construction-and-merging/workflow.md +2 -0
  208. package/dist/templates/common/bundled-skills/trellis-goal-exploration-and-requirements/workflow.md +2 -0
  209. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +1 -1
  210. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/add-project-local-conventions.md +1 -1
  211. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-context-loading.md +5 -5
  212. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +3 -2
  213. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/overview.md +1 -1
  214. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/context-injection.md +1 -1
  215. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/multi-agent-teamwork.md +14 -2
  216. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +8 -2
  217. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +2 -1
  218. package/dist/templates/common/bundled-skills/trellis-session-insight/references/triggering-patterns.md +2 -2
  219. package/dist/templates/common/bundled-skills/trellis-solution-design-and-convergence/workflow.md +8 -0
  220. package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/mcp-setup.md +4 -2
  221. package/dist/templates/common/bundled-skills/trellis-spec-bootstrap/references/spec-task-planning.md +2 -2
  222. package/dist/templates/common/bundled-skills/trellis-task-implementation/workflow.md +6 -0
  223. package/dist/templates/common/bundled-skills/trellis-teamwork/SKILL.md +18 -3
  224. package/dist/templates/common/bundled-skills/trellis-teamwork/references/coordination-modes.md +34 -3
  225. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-configuration-matrix.md +37 -26
  226. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teammate-processes.md +128 -14
  227. package/dist/templates/common/bundled-skills/trellis-teamwork/references/teamwork-plan-construction.md +152 -20
  228. package/dist/templates/common/commands/start.md +2 -2
  229. package/dist/templates/common/skills/before-dev.md +1 -4
  230. package/dist/templates/common/skills/break-loop.md +7 -18
  231. package/dist/templates/common/skills/check.md +7 -11
  232. package/dist/templates/common/skills/{brainstorm.md → request-intake.md} +5 -3
  233. package/dist/templates/common/skills/update-spec.md +5 -7
  234. package/dist/templates/copilot/hooks/session-start.py +14 -11
  235. package/dist/templates/copilot/index.d.ts +1 -6
  236. package/dist/templates/copilot/index.d.ts.map +1 -1
  237. package/dist/templates/copilot/index.js +1 -14
  238. package/dist/templates/copilot/index.js.map +1 -1
  239. package/dist/templates/extract.js +4 -0
  240. package/dist/templates/extract.js.map +1 -1
  241. package/dist/templates/markdown/spec/backend/index.md.txt +4 -35
  242. package/dist/templates/markdown/spec/frontend/index.md.txt +4 -36
  243. package/dist/templates/omp/extensions/trellis/index.ts.txt +2 -2
  244. package/dist/templates/opencode/lib/session-utils.js +301 -209
  245. package/dist/templates/pi/extensions/trellis/index.ts.txt +17 -1
  246. package/dist/templates/shared-hooks/guard-teamwork-wait.py +58 -0
  247. package/dist/templates/shared-hooks/index.d.ts +1 -1
  248. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  249. package/dist/templates/shared-hooks/index.js +1 -0
  250. package/dist/templates/shared-hooks/index.js.map +1 -1
  251. package/dist/templates/shared-hooks/inject-workflow-state.py +8 -3
  252. package/dist/templates/shared-hooks/session-start.py +16 -12
  253. package/dist/templates/snow/SNOW.md +1 -1
  254. package/dist/templates/trellis/agents/delegated-worktree-primary-agent.md +9 -0
  255. package/dist/templates/trellis/agents/profiles/architecture.md +9 -0
  256. package/dist/templates/trellis/agents/profiles/diagnosis.md +9 -0
  257. package/dist/templates/trellis/agents/profiles/exploration.md +9 -0
  258. package/dist/templates/trellis/agents/profiles/research.md +9 -0
  259. package/dist/templates/trellis/agents/profiles/review.md +9 -0
  260. package/dist/templates/trellis/agents/profiles/verification.md +9 -0
  261. package/dist/templates/trellis/agents/teammate-profiles.json +56 -4
  262. package/dist/templates/trellis/agents/teammate.md +4 -52
  263. package/dist/templates/trellis/config.yaml +2 -5
  264. package/dist/templates/trellis/index.d.ts +4 -0
  265. package/dist/templates/trellis/index.d.ts.map +1 -1
  266. package/dist/templates/trellis/index.js +22 -4
  267. package/dist/templates/trellis/index.js.map +1 -1
  268. package/dist/templates/trellis/scripts/add_session.py +1 -1
  269. package/dist/templates/trellis/scripts/common/active_task.py +3 -47
  270. package/dist/templates/trellis/scripts/common/config.py +5 -0
  271. package/dist/templates/trellis/scripts/common/paths.py +9 -25
  272. package/dist/templates/trellis/scripts/common/safe_commit.py +8 -8
  273. package/dist/templates/trellis/scripts/common/task_context.py +11 -51
  274. package/dist/templates/trellis/scripts/common/task_continuity.py +191 -60
  275. package/dist/templates/trellis/scripts/common/task_layout.py +80 -0
  276. package/dist/templates/trellis/scripts/common/task_move.py +345 -0
  277. package/dist/templates/trellis/scripts/common/task_store.py +51 -57
  278. package/dist/templates/trellis/scripts/common/task_utils.py +23 -19
  279. package/dist/templates/trellis/scripts/common/task_workflow.py +395 -49
  280. package/dist/templates/trellis/scripts/common/tasks.py +6 -5
  281. package/dist/templates/trellis/scripts/hooks/linear_sync.py +13 -3
  282. package/dist/templates/trellis/scripts/task.py +76 -24
  283. package/dist/templates/trellis/teamwork.json +10 -0
  284. package/dist/templates/trellis/workflow.md +11 -2
  285. package/dist/utils/ablation-store.d.ts +1 -1
  286. package/dist/utils/ablation-store.d.ts.map +1 -1
  287. package/dist/utils/ablation-store.js +58 -24
  288. package/dist/utils/ablation-store.js.map +1 -1
  289. package/dist/utils/asset-backup.d.ts +138 -0
  290. package/dist/utils/asset-backup.d.ts.map +1 -0
  291. package/dist/utils/asset-backup.js +525 -0
  292. package/dist/utils/asset-backup.js.map +1 -0
  293. package/dist/utils/atomic-write.d.ts +1 -1
  294. package/dist/utils/atomic-write.d.ts.map +1 -1
  295. package/dist/utils/atomic-write.js +6 -3
  296. package/dist/utils/atomic-write.js.map +1 -1
  297. package/dist/utils/manifest-prune.d.ts +4 -1
  298. package/dist/utils/manifest-prune.d.ts.map +1 -1
  299. package/dist/utils/manifest-prune.js +17 -6
  300. package/dist/utils/manifest-prune.js.map +1 -1
  301. package/dist/utils/template-fetcher.d.ts +4 -19
  302. package/dist/utils/template-fetcher.d.ts.map +1 -1
  303. package/dist/utils/template-fetcher.js +9 -45
  304. package/dist/utils/template-fetcher.js.map +1 -1
  305. package/dist/utils/template-hash.d.ts +5 -4
  306. package/dist/utils/template-hash.d.ts.map +1 -1
  307. package/dist/utils/template-hash.js +24 -17
  308. package/dist/utils/template-hash.js.map +1 -1
  309. package/package.json +3 -2
  310. package/dist/templates/copilot/prompts/before-dev.prompt.md +0 -39
  311. package/dist/templates/copilot/prompts/brainstorm.prompt.md +0 -13
  312. package/dist/templates/copilot/prompts/break-loop.prompt.md +0 -129
  313. package/dist/templates/copilot/prompts/check-cross-layer.prompt.md +0 -170
  314. package/dist/templates/copilot/prompts/check.prompt.md +0 -110
  315. package/dist/templates/copilot/prompts/create-command.prompt.md +0 -116
  316. package/dist/templates/copilot/prompts/finish-work.prompt.md +0 -22
  317. package/dist/templates/copilot/prompts/integrate-skill.prompt.md +0 -223
  318. package/dist/templates/copilot/prompts/onboard.prompt.md +0 -362
  319. package/dist/templates/copilot/prompts/record-session.prompt.md +0 -58
  320. package/dist/templates/copilot/prompts/start.prompt.md +0 -65
  321. package/dist/templates/copilot/prompts/update-spec.prompt.md +0 -358
@@ -0,0 +1,88 @@
1
+ import { z } from "zod";
2
+ export declare const COORDINATION_MODES: readonly ["general", "advisor", "committee"];
3
+ export type CoordinationMode = (typeof COORDINATION_MODES)[number];
4
+ export declare const TEAMWORK_CONFIG_PATH = ".trellis/teamwork.json";
5
+ declare const configSchema: z.ZodObject<{
6
+ schema_version: z.ZodLiteral<2>;
7
+ default_mode: z.ZodEnum<{
8
+ general: "general";
9
+ advisor: "advisor";
10
+ committee: "committee";
11
+ }>;
12
+ modes: z.ZodObject<{
13
+ general: z.ZodType<{
14
+ default_members: number;
15
+ max_concurrency: number;
16
+ }, unknown, z.core.$ZodTypeInternals<{
17
+ default_members: number;
18
+ max_concurrency: number;
19
+ }, unknown>>;
20
+ advisor: z.ZodType<{
21
+ default_members: number;
22
+ max_concurrency: number;
23
+ }, unknown, z.core.$ZodTypeInternals<{
24
+ default_members: number;
25
+ max_concurrency: number;
26
+ }, unknown>>;
27
+ committee: z.ZodType<{
28
+ default_members: number;
29
+ max_concurrency: number;
30
+ }, unknown, z.core.$ZodTypeInternals<{
31
+ default_members: number;
32
+ max_concurrency: number;
33
+ }, unknown>>;
34
+ }, z.core.$strict>;
35
+ resources: z.ZodObject<{
36
+ max_live_teammates: z.ZodNumber;
37
+ non_batch_reserved: z.ZodNumber;
38
+ }, z.core.$strict>;
39
+ }, z.core.$strict>;
40
+ export declare const DEFAULT_TEAMWORK_CONFIG: {
41
+ schema_version: 2;
42
+ default_mode: "general";
43
+ modes: {
44
+ general: {
45
+ default_members: number;
46
+ max_concurrency: number;
47
+ };
48
+ advisor: {
49
+ default_members: number;
50
+ max_concurrency: number;
51
+ };
52
+ committee: {
53
+ default_members: number;
54
+ max_concurrency: number;
55
+ };
56
+ };
57
+ resources: {
58
+ max_live_teammates: number;
59
+ non_batch_reserved: number;
60
+ };
61
+ };
62
+ export declare function readCoordinationConfig(cwd: string): {
63
+ config: z.infer<typeof configSchema>;
64
+ legacy: boolean;
65
+ configDigest: string;
66
+ source: string;
67
+ };
68
+ export declare function resolveCoordination(cwd: string, mode?: CoordinationMode): {
69
+ mode: CoordinationMode;
70
+ defaultMembers: number;
71
+ maxConcurrency: number;
72
+ configDigest: string;
73
+ snapshot: ReturnType<typeof readCoordinationConfig>["config"];
74
+ };
75
+ /** Resource policy may tighten after freezing; semantic defaults may not drift. */
76
+ export declare function assertFrozenCoordination(cwd: string, digest: string, snapshot?: unknown, runtime?: {
77
+ mode: CoordinationMode;
78
+ maxConcurrency: number;
79
+ guard?: {
80
+ maxLiveTeammates: number;
81
+ nonBatchReserved: number;
82
+ };
83
+ }): void;
84
+ export declare function assertCoordinationMembers(mode: CoordinationMode, members: readonly {
85
+ lens?: string;
86
+ }[]): void;
87
+ export {};
88
+ //# sourceMappingURL=coordination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../../../src/commands/teamwork/coordination.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,kBAAkB,8CAA+C,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AA8B7D,QAAA,MAAM,YAAY;;;;;;;;;6BAPc,MAAM;6BAAmB,MAAM;;6BAA/B,MAAM;6BAAmB,MAAM;;;6BAA/B,MAAM;6BAAmB,MAAM;;6BAA/B,MAAM;6BAAmB,MAAM;;;6BAA/B,MAAM;6BAAmB,MAAM;;6BAA/B,MAAM;6BAAmB,MAAM;;;;;;;kBA+B5D,CAAC;AAEJ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;CASnC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG;IACnD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAqCA;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,gBAAgB,GACtB;IACD,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC/D,CAUA;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;IACR,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,GACA,IAAI,CAuCN;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACpC,IAAI,CAcN"}
@@ -0,0 +1,153 @@
1
+ import crypto from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { z } from "zod";
5
+ import { readTeamworkAsset } from "./profiles.js";
6
+ export const COORDINATION_MODES = ["general", "advisor", "committee"];
7
+ export const TEAMWORK_CONFIG_PATH = ".trellis/teamwork.json";
8
+ const legacySchema = z
9
+ .object({
10
+ schema_version: z.literal(1),
11
+ default_mode: z.enum(COORDINATION_MODES),
12
+ modes: z
13
+ .object({
14
+ general: z
15
+ .object({ default_members: z.number().int().min(1).max(32) })
16
+ .strict(),
17
+ advisor: z.object({ default_members: z.literal(1) }).strict(),
18
+ committee: z
19
+ .object({ default_members: z.number().int().min(2).max(3) })
20
+ .strict(),
21
+ })
22
+ .strict(),
23
+ })
24
+ .strict();
25
+ const modeSchema = (min, max) => z
26
+ .object({
27
+ default_members: z.number().int().min(min).max(max),
28
+ max_concurrency: z.number().int().positive().max(32),
29
+ })
30
+ .strict();
31
+ const configSchema = z
32
+ .object({
33
+ schema_version: z.literal(2),
34
+ default_mode: z.enum(COORDINATION_MODES),
35
+ modes: z
36
+ .object({
37
+ general: modeSchema(1, 32),
38
+ advisor: modeSchema(1, 3),
39
+ committee: modeSchema(2, 3),
40
+ })
41
+ .strict(),
42
+ resources: z
43
+ .object({
44
+ max_live_teammates: z.number().int().nonnegative(),
45
+ non_batch_reserved: z.number().int().nonnegative(),
46
+ })
47
+ .strict(),
48
+ })
49
+ .strict()
50
+ .refine((c) => c.resources.max_live_teammates === 0 ||
51
+ c.resources.non_batch_reserved < c.resources.max_live_teammates, "reserved capacity must be below the live budget");
52
+ export const DEFAULT_TEAMWORK_CONFIG = {
53
+ schema_version: 2,
54
+ default_mode: "general",
55
+ modes: {
56
+ general: { default_members: 1, max_concurrency: 8 },
57
+ advisor: { default_members: 3, max_concurrency: 3 },
58
+ committee: { default_members: 3, max_concurrency: 3 },
59
+ },
60
+ resources: { max_live_teammates: 8, non_batch_reserved: 0 },
61
+ };
62
+ export function readCoordinationConfig(cwd) {
63
+ const file = path.join(cwd, TEAMWORK_CONFIG_PATH);
64
+ const exists = fs.existsSync(file);
65
+ const raw = exists
66
+ ? readTeamworkAsset(cwd, TEAMWORK_CONFIG_PATH)
67
+ : JSON.stringify(DEFAULT_TEAMWORK_CONFIG);
68
+ const input = JSON.parse(raw);
69
+ const legacy = input.schema_version === 1;
70
+ const config = legacy
71
+ ? (() => {
72
+ const old = legacySchema.parse(input);
73
+ return {
74
+ ...DEFAULT_TEAMWORK_CONFIG,
75
+ default_mode: old.default_mode,
76
+ modes: {
77
+ general: {
78
+ ...DEFAULT_TEAMWORK_CONFIG.modes.general,
79
+ default_members: old.modes.general.default_members,
80
+ },
81
+ advisor: {
82
+ ...DEFAULT_TEAMWORK_CONFIG.modes.advisor,
83
+ default_members: old.modes.advisor.default_members,
84
+ },
85
+ committee: {
86
+ ...DEFAULT_TEAMWORK_CONFIG.modes.committee,
87
+ default_members: old.modes.committee.default_members,
88
+ },
89
+ },
90
+ };
91
+ })()
92
+ : configSchema.parse(input);
93
+ return {
94
+ config,
95
+ legacy: legacy || !exists,
96
+ configDigest: crypto.createHash("sha256").update(raw).digest("hex"),
97
+ source: exists ? TEAMWORK_CONFIG_PATH : "built-in",
98
+ };
99
+ }
100
+ export function resolveCoordination(cwd, mode) {
101
+ const { config, configDigest } = readCoordinationConfig(cwd);
102
+ const selected = mode ?? config.default_mode;
103
+ return {
104
+ mode: selected,
105
+ defaultMembers: config.modes[selected].default_members,
106
+ maxConcurrency: config.modes[selected].max_concurrency,
107
+ configDigest,
108
+ snapshot: config,
109
+ };
110
+ }
111
+ /** Resource policy may tighten after freezing; semantic defaults may not drift. */
112
+ export function assertFrozenCoordination(cwd, digest, snapshot, runtime) {
113
+ const current = readCoordinationConfig(cwd);
114
+ const live = (value) => (value === 0 ? Infinity : value);
115
+ if (snapshot &&
116
+ runtime &&
117
+ (runtime.maxConcurrency >
118
+ configSchema.parse(snapshot).modes[runtime.mode].max_concurrency ||
119
+ (runtime.guard &&
120
+ (live(runtime.guard.maxLiveTeammates) >
121
+ live(configSchema.parse(snapshot).resources.max_live_teammates) ||
122
+ runtime.guard.nonBatchReserved <
123
+ configSchema.parse(snapshot).resources.non_batch_reserved))))
124
+ throw new Error("Runtime override expands frozen capacity policy; construct a new plan");
125
+ if (current.configDigest === digest)
126
+ return;
127
+ if (!snapshot)
128
+ throw new Error("Frozen coordination configuration changed; construct a new plan");
129
+ const frozen = configSchema.parse(snapshot);
130
+ const next = current.config;
131
+ if (next.default_mode !== frozen.default_mode ||
132
+ COORDINATION_MODES.some((mode) => next.modes[mode].default_members !==
133
+ frozen.modes[mode].default_members ||
134
+ next.modes[mode].max_concurrency > frozen.modes[mode].max_concurrency) ||
135
+ live(next.resources.max_live_teammates) >
136
+ live(frozen.resources.max_live_teammates) ||
137
+ next.resources.non_batch_reserved < frozen.resources.non_batch_reserved)
138
+ throw new Error("Frozen coordination configuration changed or resource policy expanded; construct a new plan");
139
+ }
140
+ export function assertCoordinationMembers(mode, members) {
141
+ if (members.length === 0)
142
+ throw new Error("Teamwork requires at least one assignment");
143
+ if (mode === "advisor" && members.length > 3)
144
+ throw new Error("advisor requires one to three assignments");
145
+ if (mode === "committee") {
146
+ if (members.length < 2 || members.length > 3)
147
+ throw new Error("committee requires two or three assignments");
148
+ const lenses = members.map((member) => member.lens?.trim());
149
+ if (lenses.some((lens) => !lens) || new Set(lenses).size !== members.length)
150
+ throw new Error("committee requires distinct lenses (本次关注点), each nonempty");
151
+ }
152
+ }
153
+ //# sourceMappingURL=coordination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination.js","sourceRoot":"","sources":["../../../src/commands/teamwork/coordination.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type TeamworkPlan } from "./artifact.js";
2
2
  import { type TeammateHostCapabilities } from "./teammate-adapters.js";
3
3
  import { type TeammateRuntimeConfig } from "./teammate-config.js";
4
- import { resolveTeammateProfile } from "./profiles.js";
4
+ import type { resolveTeammateProfile } from "./profiles.js";
5
5
  import { type TeammateLaunchSpec } from "./teammate-launch.js";
6
6
  export type AttemptWaitResult = {
7
7
  kind: "report";
@@ -49,13 +49,13 @@ export interface TeammateGuard {
49
49
  }): Promise<void>;
50
50
  }
51
51
  export interface CoordinatorRuntime {
52
+ prepare?(context: TeammateDispatchContext): void;
52
53
  dispatch(context: TeammateDispatchContext): Promise<undefined | {
53
54
  providerSessionId?: string;
54
55
  }>;
55
56
  wait(context: TeammateDispatchContext): Promise<AttemptWaitResult>;
56
57
  continue(context: TeammateDispatchContext): Promise<AttemptWaitResult>;
57
58
  cancel?(context: TeammateDispatchContext): Promise<AttemptWaitResult>;
58
- validateReport?(context: TeammateDispatchContext, report: unknown): Promise<boolean> | boolean;
59
59
  }
60
60
  export interface TeamworkCoordinatorInput {
61
61
  plan: unknown;
@@ -67,13 +67,15 @@ export interface TeamworkCoordinatorInput {
67
67
  guard: TeammateGuard;
68
68
  config?: TeammateRuntimeConfig;
69
69
  }
70
+ export declare class TeamworkPolicyChangedError extends Error {
71
+ }
70
72
  export interface TeamworkReceipt {
71
73
  schemaVersion: 1;
72
74
  batchId: string;
73
- status: "ALL_ACCEPTED" | "SETTLED_WITH_FAILURE" | "RECONCILIATION_REQUIRED";
75
+ status: "AWAITING_REVIEW" | "ALL_ACCEPTED" | "SETTLED_WITH_FAILURE" | "RECONCILIATION_REQUIRED";
74
76
  assignments: {
75
77
  assignmentId: string;
76
- status: "ACCEPTED" | "FINAL_FAILED" | "UNKNOWN";
78
+ status: "AWAITING_REVIEW" | "ACCEPTED" | "FINAL_FAILED" | "UNKNOWN";
77
79
  }[];
78
80
  capacity: number;
79
81
  retryCounts: Record<string, number>;
@@ -82,8 +84,33 @@ export interface TeamworkReceipt {
82
84
  status: "COMPLETE" | "INCOMPLETE";
83
85
  }[];
84
86
  }
85
- export declare function assertTeamworkPlanCurrent(plan: TeamworkPlan, taskRoot: string): void;
87
+ export declare function assertTeamworkPlanCurrent(plan: Pick<TeamworkPlan, "taskId" | "phaseId" | "taskRouteRevision" | "inputRevision">, taskRoot: string): void;
88
+ export declare function readPlanFile(planPath: string): unknown;
86
89
  export declare function loadTeamworkPlan(planPath: string, taskRoot: string): TeamworkPlan;
87
90
  export declare function runTeamworkCoordinator(input: TeamworkCoordinatorInput): Promise<TeamworkReceipt>;
88
- export declare function assertTeamworkReceiptDurable(sessionId: string, batchId: string, planHash: string, cwd?: string): Promise<void>;
91
+ export declare function assertTeamworkReceiptDurable(plan: TeamworkPlan, receipt: TeamworkReceipt, cwd?: string): Promise<void>;
92
+ /** Retire uncertain work only from associated terminal or process-birth evidence. */
93
+ export declare function reconcileTeamworkBatch(input: {
94
+ plan: TeamworkPlan;
95
+ cwd: string;
96
+ execute?: boolean;
97
+ reason?: string;
98
+ confirmUnknownProcessExit?: boolean;
99
+ }): Promise<TeamworkReceipt | {
100
+ status: "ready" | "blocked";
101
+ blockers: string[];
102
+ }>;
103
+ /** Read settled facts without admitting work or consulting current resource policy. */
104
+ export declare function readSettledTeamworkReceipt(plan: TeamworkPlan, cwd: string): Promise<TeamworkReceipt | undefined>;
105
+ /** Main-agent review starts only after the CLI has drained the entire batch. */
106
+ export declare function reviewTeamworkReport(input: {
107
+ plan: TeamworkPlan;
108
+ taskRoot: string;
109
+ cwd: string;
110
+ assignmentId: string;
111
+ reportSha256: string;
112
+ decision: "accepted" | "final_failed";
113
+ reason: string;
114
+ by?: string;
115
+ }): Promise<TeamworkReceipt>;
89
116
  //# sourceMappingURL=coordinator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/commands/teamwork/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/commands/teamwork/coordinator.ts"],"names":[],"mappings":"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"}