@inharness-ai/claude4spec 1.0.20 → 1.0.22

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 (274) hide show
  1. package/.claude/skills/c4s-brief-implementer/SKILL.md +117 -57
  2. package/CHANGELOG.md +26 -0
  3. package/dist/bin/c4s/commands/agent.d.ts +18 -0
  4. package/dist/bin/c4s/commands/agent.js +102 -0
  5. package/dist/bin/c4s/commands/agent.js.map +1 -0
  6. package/dist/bin/c4s/commands/ask.d.ts +9 -8
  7. package/dist/bin/c4s/commands/ask.js +23 -31
  8. package/dist/bin/c4s/commands/ask.js.map +1 -1
  9. package/dist/bin/c4s/commands/catalog.d.ts +1 -1
  10. package/dist/bin/c4s/commands/catalog.js +2 -2
  11. package/dist/bin/c4s/commands/catalog.js.map +1 -1
  12. package/dist/bin/c4s/commands/describe.d.ts +1 -1
  13. package/dist/bin/c4s/commands/describe.js +2 -2
  14. package/dist/bin/c4s/commands/describe.js.map +1 -1
  15. package/dist/bin/c4s/commands/detail.d.ts +1 -1
  16. package/dist/bin/c4s/commands/detail.js +2 -2
  17. package/dist/bin/c4s/commands/detail.js.map +1 -1
  18. package/dist/bin/c4s/commands/element-list.d.ts +1 -1
  19. package/dist/bin/c4s/commands/element-list.js +2 -2
  20. package/dist/bin/c4s/commands/element-list.js.map +1 -1
  21. package/dist/bin/c4s/commands/find-references.js +1 -1
  22. package/dist/bin/c4s/commands/find-references.js.map +1 -1
  23. package/dist/bin/c4s/commands/inline-mention.d.ts +1 -1
  24. package/dist/bin/c4s/commands/inline-mention.js +2 -2
  25. package/dist/bin/c4s/commands/inline-mention.js.map +1 -1
  26. package/dist/bin/c4s/commands/list-slugs.d.ts +1 -1
  27. package/dist/bin/c4s/commands/list-slugs.js +2 -2
  28. package/dist/bin/c4s/commands/list-slugs.js.map +1 -1
  29. package/dist/bin/c4s/commands/list-tags.d.ts +1 -1
  30. package/dist/bin/c4s/commands/list-tags.js +2 -2
  31. package/dist/bin/c4s/commands/list-tags.js.map +1 -1
  32. package/dist/bin/c4s/commands/plugins.d.ts +9 -0
  33. package/dist/bin/c4s/commands/plugins.js +81 -0
  34. package/dist/bin/c4s/commands/plugins.js.map +1 -0
  35. package/dist/bin/c4s/commands/resolve.d.ts +1 -1
  36. package/dist/bin/c4s/commands/resolve.js +2 -2
  37. package/dist/bin/c4s/commands/resolve.js.map +1 -1
  38. package/dist/bin/c4s/commands/single-element.d.ts +1 -1
  39. package/dist/bin/c4s/commands/single-element.js +2 -2
  40. package/dist/bin/c4s/commands/single-element.js.map +1 -1
  41. package/dist/bin/c4s/commands/tagged-list-mixed.d.ts +1 -1
  42. package/dist/bin/c4s/commands/tagged-list-mixed.js +2 -2
  43. package/dist/bin/c4s/commands/tagged-list-mixed.js.map +1 -1
  44. package/dist/bin/c4s/commands/tagged-list.d.ts +1 -1
  45. package/dist/bin/c4s/commands/tagged-list.js +2 -2
  46. package/dist/bin/c4s/commands/tagged-list.js.map +1 -1
  47. package/dist/bin/c4s/context.d.ts +3 -3
  48. package/dist/bin/c4s/context.js +7 -4
  49. package/dist/bin/c4s/context.js.map +1 -1
  50. package/dist/bin/c4s/errors.d.ts +1 -1
  51. package/dist/bin/c4s/errors.js.map +1 -1
  52. package/dist/bin/c4s-mcp.js +6 -2
  53. package/dist/bin/c4s-mcp.js.map +1 -1
  54. package/dist/bin/c4s.js +19 -4
  55. package/dist/bin/c4s.js.map +1 -1
  56. package/dist/bin/gitignore.js +7 -11
  57. package/dist/bin/gitignore.js.map +1 -1
  58. package/dist/client/assets/{arc-qrIe4IVl.js → arc-C9oTB3b1.js} +1 -1
  59. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CF6sgG8n.js → architectureDiagram-3BPJPVTR-Bno5ViqK.js} +1 -1
  60. package/dist/client/assets/{blockDiagram-GPEHLZMM-Cf8Tx0VN.js → blockDiagram-GPEHLZMM-CJYBoeWQ.js} +1 -1
  61. package/dist/client/assets/{c4Diagram-AAUBKEIU-BDkuMEyf.js → c4Diagram-AAUBKEIU-DaaqWE6s.js} +1 -1
  62. package/dist/client/assets/channel-Cei_E79M.js +1 -0
  63. package/dist/client/assets/{chunk-2J33WTMH-ChycTonk.js → chunk-2J33WTMH-P_I0OPMy.js} +1 -1
  64. package/dist/client/assets/{chunk-4BX2VUAB-BpUgWjxx.js → chunk-4BX2VUAB-CCySMlh5.js} +1 -1
  65. package/dist/client/assets/{chunk-55IACEB6-CeHg_yjT.js → chunk-55IACEB6-CEUyqKGF.js} +1 -1
  66. package/dist/client/assets/{chunk-727SXJPM-BpxYq7ab.js → chunk-727SXJPM-CoTSYOVz.js} +1 -1
  67. package/dist/client/assets/{chunk-AQP2D5EJ-bghkOtr6.js → chunk-AQP2D5EJ-DB0nMxPr.js} +1 -1
  68. package/dist/client/assets/{chunk-FMBD7UC4-4sXokGgd.js → chunk-FMBD7UC4-PG3m6-_a.js} +1 -1
  69. package/dist/client/assets/{chunk-ND2GUHAM-DYQOCE5T.js → chunk-ND2GUHAM-CBNk6IaV.js} +1 -1
  70. package/dist/client/assets/{chunk-QZHKN3VN-NkVuDlFD.js → chunk-QZHKN3VN-CLFa0WvN.js} +1 -1
  71. package/dist/client/assets/classDiagram-4FO5ZUOK-DUe_fAto.js +1 -0
  72. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DUe_fAto.js +1 -0
  73. package/dist/client/assets/{cose-bilkent-S5V4N54A-1l4P4WRI.js → cose-bilkent-S5V4N54A-BDwDDxHN.js} +1 -1
  74. package/dist/client/assets/{dagre-BM42HDAG-CSQie-gR.js → dagre-BM42HDAG-DR-1e8N5.js} +1 -1
  75. package/dist/client/assets/{diagram-2AECGRRQ-DME9ULoN.js → diagram-2AECGRRQ-C-tHgBWt.js} +1 -1
  76. package/dist/client/assets/{diagram-5GNKFQAL-Dn1Rw5k5.js → diagram-5GNKFQAL-uLmoKaJL.js} +1 -1
  77. package/dist/client/assets/{diagram-KO2AKTUF-Duh_PNWR.js → diagram-KO2AKTUF-8Fd-xuOy.js} +1 -1
  78. package/dist/client/assets/{diagram-LMA3HP47-B7Q5pV60.js → diagram-LMA3HP47-C1gniWsn.js} +1 -1
  79. package/dist/client/assets/{diagram-OG6HWLK6-C0KL_RDd.js → diagram-OG6HWLK6-BMWjZbeC.js} +1 -1
  80. package/dist/client/assets/{erDiagram-TEJ5UH35-D5elfwSC.js → erDiagram-TEJ5UH35-CIUO8hrR.js} +1 -1
  81. package/dist/client/assets/{flowDiagram-I6XJVG4X-BHmjX-WI.js → flowDiagram-I6XJVG4X-Ccw5YEf3.js} +1 -1
  82. package/dist/client/assets/{ganttDiagram-6RSMTGT7-KvoGFbS2.js → ganttDiagram-6RSMTGT7-BAvlf8cY.js} +1 -1
  83. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DsZL8BfK.js → gitGraphDiagram-PVQCEYII-ChCkdYar.js} +1 -1
  84. package/dist/client/assets/{index-zzILqHQN.js → index-BotCWOKC.js} +1 -1
  85. package/dist/client/assets/index-CtdzGyqj.js +805 -0
  86. package/dist/client/assets/{index-ClaVbrEF.js → index-DtpKHGD1.js} +1 -1
  87. package/dist/client/assets/{infoDiagram-5YYISTIA-DoQ6iSpJ.js → infoDiagram-5YYISTIA-CZMGwNyB.js} +1 -1
  88. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-akftyN0J.js → ishikawaDiagram-YF4QCWOH-CubjZGk6.js} +1 -1
  89. package/dist/client/assets/{journeyDiagram-JHISSGLW-PPex4PiV.js → journeyDiagram-JHISSGLW-DzwOyVzB.js} +1 -1
  90. package/dist/client/assets/{kanban-definition-UN3LZRKU-D114i3s1.js → kanban-definition-UN3LZRKU-CXznoTY9.js} +1 -1
  91. package/dist/client/assets/{linear-BuwQPJom.js → linear-EDwTFRrU.js} +1 -1
  92. package/dist/client/assets/{mermaid.core-CMX3GAvM.js → mermaid.core-Lae2097R.js} +4 -4
  93. package/dist/client/assets/{mindmap-definition-RKZ34NQL-ClBxWJju.js → mindmap-definition-RKZ34NQL-DFjIW41g.js} +1 -1
  94. package/dist/client/assets/{pieDiagram-4H26LBE5-hj5zVPj5.js → pieDiagram-4H26LBE5-CZDLR1jd.js} +1 -1
  95. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CRbR0G7M.js → quadrantDiagram-W4KKPZXB-CTGDzbqp.js} +1 -1
  96. package/dist/client/assets/{requirementDiagram-4Y6WPE33-Dto4B70I.js → requirementDiagram-4Y6WPE33-CeH0NbMv.js} +1 -1
  97. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DyYP8rwY.js → sankeyDiagram-5OEKKPKP-B6ZTjurV.js} +1 -1
  98. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-C-mrSLrJ.js → sequenceDiagram-3UESZ5HK-DcTRztVx.js} +1 -1
  99. package/dist/client/assets/{stateDiagram-AJRCARHV-IoDlhAe6.js → stateDiagram-AJRCARHV-nUgRVZSA.js} +1 -1
  100. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D9pJuQbI.js +1 -0
  101. package/dist/client/assets/{timeline-definition-PNZ67QCA-DEXg3TEw.js → timeline-definition-PNZ67QCA-CXm5n4rV.js} +1 -1
  102. package/dist/client/assets/{vennDiagram-CIIHVFJN-CNu7LaT1.js → vennDiagram-CIIHVFJN-EmNJBYNd.js} +1 -1
  103. package/dist/client/assets/{wardley-L42UT6IY-0hGvREmD.js → wardley-L42UT6IY-MLrlp8H-.js} +1 -1
  104. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-CVLz-xFz.js → wardleyDiagram-YWT4CUSO-5QoES25n.js} +1 -1
  105. package/dist/client/assets/{xychartDiagram-2RQKCTM6-CFymKAcX.js → xychartDiagram-2RQKCTM6-CbDEQbY0.js} +1 -1
  106. package/dist/client/index.html +1 -1
  107. package/dist/core/agent/run-agent.d.ts +61 -0
  108. package/dist/core/agent/run-agent.js +212 -0
  109. package/dist/core/agent/run-agent.js.map +1 -0
  110. package/dist/core/ask/run-ask.d.ts +1 -1
  111. package/dist/core/ask/run-ask.js +14 -5
  112. package/dist/core/ask/run-ask.js.map +1 -1
  113. package/dist/core/workspace/resolve.d.ts +2 -0
  114. package/dist/core/workspace/resolve.js +2 -1
  115. package/dist/core/workspace/resolve.js.map +1 -1
  116. package/dist/plugin-types/ambient.d.ts +30 -0
  117. package/dist/plugin-types/plugin-runtime.d.ts +172 -0
  118. package/dist/plugin-types/ui.d.ts +154 -0
  119. package/dist/server/config.d.ts +12 -0
  120. package/dist/server/config.js +26 -0
  121. package/dist/server/config.js.map +1 -1
  122. package/dist/server/core/plugin-host/__fixtures__/plugins.d.ts +14 -0
  123. package/dist/server/core/plugin-host/__fixtures__/plugins.js +56 -0
  124. package/dist/server/core/plugin-host/__fixtures__/plugins.js.map +1 -0
  125. package/dist/server/core/plugin-host/base-packages.d.ts +14 -0
  126. package/dist/server/core/plugin-host/base-packages.js +26 -0
  127. package/dist/server/core/plugin-host/base-packages.js.map +1 -0
  128. package/dist/server/core/plugin-host/cache-bust.d.ts +10 -0
  129. package/dist/server/core/plugin-host/cache-bust.js +21 -0
  130. package/dist/server/core/plugin-host/cache-bust.js.map +1 -0
  131. package/dist/server/core/plugin-host/cli-engine.d.ts +7 -2
  132. package/dist/server/core/plugin-host/cli-engine.js +11 -3
  133. package/dist/server/core/plugin-host/cli-engine.js.map +1 -1
  134. package/dist/server/core/plugin-host/cli-plugins.d.ts +23 -0
  135. package/dist/server/core/plugin-host/cli-plugins.js +49 -0
  136. package/dist/server/core/plugin-host/cli-plugins.js.map +1 -0
  137. package/dist/server/core/plugin-host/cross-cutting.d.ts +41 -4
  138. package/dist/server/core/plugin-host/cross-cutting.js +52 -4
  139. package/dist/server/core/plugin-host/cross-cutting.js.map +1 -1
  140. package/dist/server/core/plugin-host/entities-router.d.ts +2 -1
  141. package/dist/server/core/plugin-host/entities-router.js +16 -1
  142. package/dist/server/core/plugin-host/entities-router.js.map +1 -1
  143. package/dist/server/core/plugin-host/frontend-assets.d.ts +100 -0
  144. package/dist/server/core/plugin-host/frontend-assets.js +262 -0
  145. package/dist/server/core/plugin-host/frontend-assets.js.map +1 -0
  146. package/dist/server/core/plugin-host/frontend-manifest.d.ts +33 -0
  147. package/dist/server/core/plugin-host/frontend-manifest.js +52 -0
  148. package/dist/server/core/plugin-host/frontend-manifest.js.map +1 -0
  149. package/dist/server/core/plugin-host/loader.d.ts +107 -0
  150. package/dist/server/core/plugin-host/loader.js +196 -0
  151. package/dist/server/core/plugin-host/loader.js.map +1 -0
  152. package/dist/server/core/plugin-host/manifest-adapter.d.ts +30 -0
  153. package/dist/server/core/plugin-host/manifest-adapter.js +119 -0
  154. package/dist/server/core/plugin-host/manifest-adapter.js.map +1 -0
  155. package/dist/server/core/plugin-host/overlay-loader.d.ts +60 -0
  156. package/dist/server/core/plugin-host/overlay-loader.js +243 -0
  157. package/dist/server/core/plugin-host/overlay-loader.js.map +1 -0
  158. package/dist/server/core/plugin-host/plugin-watcher.d.ts +41 -0
  159. package/dist/server/core/plugin-host/plugin-watcher.js +95 -0
  160. package/dist/server/core/plugin-host/plugin-watcher.js.map +1 -0
  161. package/dist/server/core/plugin-host/project-host.d.ts +8 -2
  162. package/dist/server/core/plugin-host/project-host.js +56 -6
  163. package/dist/server/core/plugin-host/project-host.js.map +1 -1
  164. package/dist/server/core/plugin-host/registry.d.ts +26 -2
  165. package/dist/server/core/plugin-host/registry.js +107 -2
  166. package/dist/server/core/plugin-host/registry.js.map +1 -1
  167. package/dist/server/core/plugin-host/runtime-shims.d.ts +26 -0
  168. package/dist/server/core/plugin-host/runtime-shims.js +96 -0
  169. package/dist/server/core/plugin-host/runtime-shims.js.map +1 -0
  170. package/dist/server/core/plugin-host/types.d.ts +105 -3
  171. package/dist/server/db/migrations/041_chat_thread_transagent.sql +22 -0
  172. package/dist/server/db/migrations/042_chat_thread_drop_context_type_check.sql +61 -0
  173. package/dist/server/external-skills/brief-implementer-template.d.ts +1 -1
  174. package/dist/server/external-skills/brief-implementer-template.js +5 -2
  175. package/dist/server/external-skills/brief-implementer-template.js.map +1 -1
  176. package/dist/server/external-skills/spec-reader-template.d.ts +1 -1
  177. package/dist/server/external-skills/spec-reader-template.js +14 -0
  178. package/dist/server/external-skills/spec-reader-template.js.map +1 -1
  179. package/dist/server/index.js +98 -1
  180. package/dist/server/index.js.map +1 -1
  181. package/dist/server/mcp/c4s-tools.d.ts +6 -1
  182. package/dist/server/mcp/c4s-tools.js +18 -13
  183. package/dist/server/mcp/c4s-tools.js.map +1 -1
  184. package/dist/server/mcp/release-tools/index.d.ts +11 -0
  185. package/dist/server/mcp/release-tools/index.js +68 -5
  186. package/dist/server/mcp/release-tools/index.js.map +1 -1
  187. package/dist/server/mcp/release-tools/projection.d.ts +11 -2
  188. package/dist/server/mcp/release-tools/projection.js +36 -7
  189. package/dist/server/mcp/release-tools/projection.js.map +1 -1
  190. package/dist/server/mcp/release-tools/types.d.ts +39 -2
  191. package/dist/server/mcp/transagent-tools.d.ts +26 -0
  192. package/dist/server/mcp/transagent-tools.js +75 -0
  193. package/dist/server/mcp/transagent-tools.js.map +1 -0
  194. package/dist/server/plugin-runtime/index.d.ts +17 -0
  195. package/dist/server/plugin-runtime/index.js +16 -0
  196. package/dist/server/plugin-runtime/index.js.map +1 -0
  197. package/dist/server/plugin-runtime/ui.d.ts +15 -0
  198. package/dist/server/plugin-runtime/ui.js +15 -0
  199. package/dist/server/plugin-runtime/ui.js.map +1 -0
  200. package/dist/server/routes/agent-turn.d.ts +17 -1
  201. package/dist/server/routes/agent-turn.js +121 -36
  202. package/dist/server/routes/agent-turn.js.map +1 -1
  203. package/dist/server/routes/briefs.js +12 -4
  204. package/dist/server/routes/briefs.js.map +1 -1
  205. package/dist/server/routes/chat.js +18 -0
  206. package/dist/server/routes/chat.js.map +1 -1
  207. package/dist/server/routes/config.d.ts +8 -0
  208. package/dist/server/routes/config.js +41 -3
  209. package/dist/server/routes/config.js.map +1 -1
  210. package/dist/server/routes/plans.js +13 -0
  211. package/dist/server/routes/plans.js.map +1 -1
  212. package/dist/server/routes/plugins.d.ts +43 -0
  213. package/dist/server/routes/plugins.js +93 -0
  214. package/dist/server/routes/plugins.js.map +1 -0
  215. package/dist/server/routes/threads.js +30 -5
  216. package/dist/server/routes/threads.js.map +1 -1
  217. package/dist/server/serialization/registerAll.d.ts +4 -0
  218. package/dist/server/serialization/registerAll.js +4 -2
  219. package/dist/server/serialization/registerAll.js.map +1 -1
  220. package/dist/server/services/brief.d.ts +30 -8
  221. package/dist/server/services/brief.js +58 -28
  222. package/dist/server/services/brief.js.map +1 -1
  223. package/dist/server/services/chat-context.d.ts +34 -0
  224. package/dist/server/services/chat-context.js +68 -21
  225. package/dist/server/services/chat-context.js.map +1 -1
  226. package/dist/server/services/chat.d.ts +18 -1
  227. package/dist/server/services/chat.js +74 -23
  228. package/dist/server/services/chat.js.map +1 -1
  229. package/dist/server/services/entity-indexer.js +21 -14
  230. package/dist/server/services/entity-indexer.js.map +1 -1
  231. package/dist/server/services/entity-writer.d.ts +2 -3
  232. package/dist/server/services/entity-writer.js.map +1 -1
  233. package/dist/server/services/plan.d.ts +7 -1
  234. package/dist/server/services/plan.js +17 -4
  235. package/dist/server/services/plan.js.map +1 -1
  236. package/dist/server/services/skill-registry.d.ts +31 -2
  237. package/dist/server/services/skill-registry.js +73 -1
  238. package/dist/server/services/skill-registry.js.map +1 -1
  239. package/dist/server/services/transagent-dispatcher.d.ts +60 -0
  240. package/dist/server/services/transagent-dispatcher.js +147 -0
  241. package/dist/server/services/transagent-dispatcher.js.map +1 -0
  242. package/dist/server/skills/brief-author/SKILL.md +26 -17
  243. package/dist/server/workspace/context-cache.d.ts +9 -0
  244. package/dist/server/workspace/context-cache.js +14 -0
  245. package/dist/server/workspace/context-cache.js.map +1 -1
  246. package/dist/server/workspace/project-context.d.ts +3 -0
  247. package/dist/server/workspace/project-context.js +108 -5
  248. package/dist/server/workspace/project-context.js.map +1 -1
  249. package/dist/server/workspace/registry.d.ts +28 -1
  250. package/dist/server/workspace/registry.js +57 -1
  251. package/dist/server/workspace/registry.js.map +1 -1
  252. package/dist/server/workspace/types.d.ts +15 -0
  253. package/dist/shared/entities.d.ts +50 -4
  254. package/dist/shared/entities.js +1 -0
  255. package/dist/shared/entities.js.map +1 -1
  256. package/dist/shared/plugin-host/frontend-manifest.d.ts +56 -0
  257. package/dist/shared/plugin-host/frontend-manifest.js +89 -0
  258. package/dist/shared/plugin-host/frontend-manifest.js.map +1 -0
  259. package/dist/shared/plugin-host/host-api.d.ts +60 -0
  260. package/dist/shared/plugin-host/host-api.js +67 -0
  261. package/dist/shared/plugin-host/host-api.js.map +1 -0
  262. package/dist/shared/plugin-host/manifest.d.ts +194 -0
  263. package/dist/shared/plugin-host/manifest.js +52 -0
  264. package/dist/shared/plugin-host/manifest.js.map +1 -0
  265. package/dist/shared/plugin-host/ui-kit-surface.d.ts +22 -0
  266. package/dist/shared/plugin-host/ui-kit-surface.js +25 -0
  267. package/dist/shared/plugin-host/ui-kit-surface.js.map +1 -0
  268. package/dist/shared/types.d.ts +5 -0
  269. package/package.json +18 -3
  270. package/dist/client/assets/channel-CTF_J4I4.js +0 -1
  271. package/dist/client/assets/classDiagram-4FO5ZUOK-Dt9RLC8r.js +0 -1
  272. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Dt9RLC8r.js +0 -1
  273. package/dist/client/assets/index-DnLELaLA.js +0 -798
  274. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BblFLijq.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/projection.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,36 @@ export interface MCPReleaseDiff {
18
18
  id: number;
19
19
  name: string;
20
20
  };
21
- entities?: MCPEntityDelta[];
22
- pages?: MCPPageDelta[];
21
+ /**
22
+ * Totals AFTER include/entityTypes filters, BEFORE limit/offset. Keys stay in
23
+ * lock-step with `include` (mirrors `MCPSpecSnapshot.total`). Always present so
24
+ * a paginating consumer — or the brief-author probe-map (`summaryOnly: true`) —
25
+ * knows the full cardinality of each filtered dimension.
26
+ */
27
+ total?: {
28
+ entities?: number;
29
+ pages?: number;
30
+ };
31
+ /**
32
+ * Heavy variant (`summaryOnly !== true`): full `MCPEntityDelta` with
33
+ * `before`/`after`, windowed by `limit`/`offset`.
34
+ * Light variant (`summaryOnly === true`): `MCPEntityDeltaLight` identifiers
35
+ * only (full list, window ignored).
36
+ */
37
+ entities?: MCPEntityDelta[] | MCPEntityDeltaLight[];
38
+ pages?: MCPPageDelta[] | MCPPageDeltaLight[];
39
+ }
40
+ /** Light delta-map entry (`summaryOnly: true`) — identifier + op, no `before`/`after`. */
41
+ export interface MCPEntityDeltaLight {
42
+ type: 'endpoint' | 'dto' | 'database-table' | 'ui-view' | 'ac';
43
+ slug: string;
44
+ name: string;
45
+ op: 'create' | 'update' | 'delete';
46
+ }
47
+ /** Light delta-map entry (`summaryOnly: true`) — path + op, no `sections`/`content`. */
48
+ export interface MCPPageDeltaLight {
49
+ path: string;
50
+ op: 'create' | 'update' | 'delete';
23
51
  }
24
52
  export interface MCPEntityDelta {
25
53
  type: 'endpoint' | 'dto' | 'database-table' | 'ui-view' | 'ac';
@@ -74,6 +102,15 @@ export interface MCPSpecSnapshot {
74
102
  created_by: string;
75
103
  created_at: string;
76
104
  };
105
+ /**
106
+ * Totals BEFORE limit/offset, AFTER include/entityTypes filters. Keys stay in
107
+ * lock-step with `include`: `entities`/`pages` key omitted when its dimension
108
+ * is excluded. Lets a paginating consumer know how many items exist in total.
109
+ */
110
+ total: {
111
+ entities?: number;
112
+ pages?: number;
113
+ };
77
114
  entities?: {
78
115
  type: string;
79
116
  slug: string;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 0.1.69 Transagents — `transagent-tools` MCP server.
3
+ *
4
+ * Single tool `runTransagent`: delegate a unit of work to a hidden CHILD thread
5
+ * ("banka") of the SAME spec, running in a chosen `contextType`. The child runs
6
+ * a full turn (side-effecting artifacts, live stream into the parent panel) and
7
+ * returns ONLY a `summary` to the parent LLM's context — keeping the parent's
8
+ * context budget free of the child's full transcript.
9
+ *
10
+ * Per-request instance (like `plan-tools` / `brief-tools`): `parentThreadId` and
11
+ * the `dispatcher` are captured from the parent turn. Mounted ONLY for
12
+ * `context_type ∈ {chat, patch}` and never inside a child banka (recursion depth
13
+ * 1) — both guards live in agent-turn.ts.
14
+ *
15
+ * Read-only cross-spec counterpart: `c4s-tools` (consults a DIFFERENT spec).
16
+ */
17
+ import { type McpServerInstance } from '@inharness-ai/agent-adapters';
18
+ import type { TransagentDispatcher } from '../services/transagent-dispatcher.js';
19
+ /** Tool name as the SDK reports it (`mcp__<server>__<tool>`) — used by the
20
+ * agent-turn loop to correlate the tool_use event with the dispatcher. */
21
+ export declare const TRANSAGENT_TOOL_FULL_NAME = "mcp__transagent-tools__runTransagent";
22
+ export interface TransagentToolsContext {
23
+ parentThreadId: string;
24
+ dispatcher: TransagentDispatcher;
25
+ }
26
+ export declare function buildTransagentToolsServer(ctx: TransagentToolsContext): McpServerInstance;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * 0.1.69 Transagents — `transagent-tools` MCP server.
3
+ *
4
+ * Single tool `runTransagent`: delegate a unit of work to a hidden CHILD thread
5
+ * ("banka") of the SAME spec, running in a chosen `contextType`. The child runs
6
+ * a full turn (side-effecting artifacts, live stream into the parent panel) and
7
+ * returns ONLY a `summary` to the parent LLM's context — keeping the parent's
8
+ * context budget free of the child's full transcript.
9
+ *
10
+ * Per-request instance (like `plan-tools` / `brief-tools`): `parentThreadId` and
11
+ * the `dispatcher` are captured from the parent turn. Mounted ONLY for
12
+ * `context_type ∈ {chat, patch}` and never inside a child banka (recursion depth
13
+ * 1) — both guards live in agent-turn.ts.
14
+ *
15
+ * Read-only cross-spec counterpart: `c4s-tools` (consults a DIFFERENT spec).
16
+ */
17
+ import { createMcpServer, mcpTool } from '@inharness-ai/agent-adapters';
18
+ import { z } from 'zod';
19
+ import { DomainError } from '../services/tags.js';
20
+ /** Tool name as the SDK reports it (`mcp__<server>__<tool>`) — used by the
21
+ * agent-turn loop to correlate the tool_use event with the dispatcher. */
22
+ export const TRANSAGENT_TOOL_FULL_NAME = 'mcp__transagent-tools__runTransagent';
23
+ export function buildTransagentToolsServer(ctx) {
24
+ const runTransagent = mcpTool('runTransagent', [
25
+ 'Delegate a unit of work to a hidden CHILD thread ("banka") of THIS specification.',
26
+ 'The child runs a full turn in the chosen `contextType` (brief | chat | patch), may produce',
27
+ 'side-effecting artifacts, streams live into your panel, and returns ONLY a concise `summary`',
28
+ 'to your context — its full transcript stays hidden, keeping your context budget small.',
29
+ 'Use it to hand off self-contained work: "turn this analysis into a brief", "split this plan",',
30
+ '"draft the patch for X". Returns { threadId, summary }.',
31
+ " - contextType='brief': creates an ANALYSIS brief file (source: analysis, to_release: null)",
32
+ ' grounded in the `message` you pass (your analysis), then runs a brief-editorial child.',
33
+ ' Optional payload: { fromReleaseName?, suffix?, content? }.',
34
+ " - contextType='patch': resolves a patch — payload MUST include { patchPath }.",
35
+ " - contextType='chat': a plain child chat turn.",
36
+ 'Continue an existing child by passing its `threadId` (omit `contextType` semantics then).',
37
+ 'At most one child runs per turn (this tool_use blocks until the child finishes).',
38
+ ].join('\n'), {
39
+ contextType: z.enum(['brief', 'chat', 'patch']),
40
+ message: z.string(),
41
+ payload: z.record(z.string(), z.unknown()).optional(),
42
+ threadId: z.string().optional(),
43
+ }, async (input) => {
44
+ try {
45
+ const result = await ctx.dispatcher.run({
46
+ parentThreadId: ctx.parentThreadId,
47
+ contextType: input.contextType,
48
+ message: String(input.message ?? ''),
49
+ payload: input.payload && typeof input.payload === 'object'
50
+ ? input.payload
51
+ : undefined,
52
+ threadId: typeof input.threadId === 'string' ? input.threadId : undefined,
53
+ });
54
+ return {
55
+ content: [{ type: 'text', text: JSON.stringify(result) }],
56
+ };
57
+ }
58
+ catch (err) {
59
+ // Non-abort child failure collapses upward as the parent's tool_result
60
+ // isError { code, message }. The last good summary remains readable via
61
+ // runTransagent({ threadId }).
62
+ const code = err instanceof DomainError ? err.code : 'AGENT_ERROR';
63
+ const message = err instanceof Error ? err.message : String(err);
64
+ return {
65
+ content: [{ type: 'text', text: JSON.stringify({ error: { code, message } }) }],
66
+ isError: true,
67
+ };
68
+ }
69
+ });
70
+ return createMcpServer({
71
+ name: 'transagent-tools',
72
+ tools: [runTransagent],
73
+ });
74
+ }
75
+ //# sourceMappingURL=transagent-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transagent-tools.js","sourceRoot":"","sources":["../../../src/server/mcp/transagent-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,OAAO,EAA0B,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;2EAC2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,sCAAsC,CAAC;AAOhF,MAAM,UAAU,0BAA0B,CAAC,GAA2B;IACpE,MAAM,aAAa,GAAG,OAAO,CAC3B,eAAe,EACf;QACE,mFAAmF;QACnF,4FAA4F;QAC5F,8FAA8F;QAC9F,wFAAwF;QACxF,+FAA+F;QAC/F,yDAAyD;QACzD,8FAA8F;QAC9F,4FAA4F;QAC5F,gEAAgE;QAChE,iFAAiF;QACjF,kDAAkD;QAClD,2FAA2F;QAC3F,kFAAkF;KACnF,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;QACE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBACtC,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,WAAW,EAAE,KAAK,CAAC,WAAyC;gBAC5D,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;gBACpC,OAAO,EACL,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAChD,CAAC,CAAE,KAAK,CAAC,OAAmC;oBAC5C,CAAC,CAAC,SAAS;gBACf,QAAQ,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aAC1E,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,wEAAwE;YACxE,+BAA+B;YAC/B,MAAM,IAAI,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;YACnE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBACxF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `@c4s/plugin-runtime` — backend half.
3
+ *
4
+ * The single, versioned surface a runtime plugin's server code (its
5
+ * `backend.mount(ctx)`) compiles against, instead of reaching into deep host
6
+ * paths. On the backend the host singletons are shared in-process; this module
7
+ * re-exports the stable contract pieces.
8
+ *
9
+ * Phase 1 has no plugin packages, so nothing imports this yet — it exists so the
10
+ * contract surface is in place and stable for phase 2 (when project-local
11
+ * plugins under `.claude4spec/plugins/` link against it). The frontend half of
12
+ * `@c4s/plugin-runtime` lives in `src/client/runtime/plugin-runtime.ts` and is
13
+ * delivered to plugins through the import-map shim.
14
+ */
15
+ export { HOST_API_VERSION } from '../../shared/plugin-host/manifest.js';
16
+ export type { PluginManifest, EntityContribution, PluginEngines, } from '../../shared/plugin-host/manifest.js';
17
+ export type { PluginRegistry, ProjectPluginHost, BackendModule, MountContext, PluginMountFn, } from '../core/plugin-host/types.js';
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `@c4s/plugin-runtime` — backend half.
3
+ *
4
+ * The single, versioned surface a runtime plugin's server code (its
5
+ * `backend.mount(ctx)`) compiles against, instead of reaching into deep host
6
+ * paths. On the backend the host singletons are shared in-process; this module
7
+ * re-exports the stable contract pieces.
8
+ *
9
+ * Phase 1 has no plugin packages, so nothing imports this yet — it exists so the
10
+ * contract surface is in place and stable for phase 2 (when project-local
11
+ * plugins under `.claude4spec/plugins/` link against it). The frontend half of
12
+ * `@c4s/plugin-runtime` lives in `src/client/runtime/plugin-runtime.ts` and is
13
+ * delivered to plugins through the import-map shim.
14
+ */
15
+ export { HOST_API_VERSION } from '../../shared/plugin-host/manifest.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/plugin-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@c4s/plugin-runtime/ui` — backend half.
3
+ *
4
+ * The Host UI Kit is a FRONTEND surface (React components delivered via the M33
5
+ * import-map shim — see `client/runtime/plugin-runtime-ui.ts`). On the backend
6
+ * there are no components to share; this module exists only so server-side
7
+ * plugin code can reference the versioned contract — the React-free set of
8
+ * `stable` component names and the `Stability` type — without reaching into the
9
+ * client catalog (which imports React).
10
+ *
11
+ * Phase 1 ships no plugin packages, so nothing imports this yet; it keeps the
12
+ * contract surface stable for phase 2.
13
+ */
14
+ export { UI_KIT_STABLE_COMPONENTS } from '../../shared/plugin-host/ui-kit-surface.js';
15
+ export type { Stability, StableUiKitComponent } from '../../shared/plugin-host/ui-kit-surface.js';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@c4s/plugin-runtime/ui` — backend half.
3
+ *
4
+ * The Host UI Kit is a FRONTEND surface (React components delivered via the M33
5
+ * import-map shim — see `client/runtime/plugin-runtime-ui.ts`). On the backend
6
+ * there are no components to share; this module exists only so server-side
7
+ * plugin code can reference the versioned contract — the React-free set of
8
+ * `stable` component names and the `Stability` type — without reaching into the
9
+ * client catalog (which imports React).
10
+ *
11
+ * Phase 1 ships no plugin packages, so nothing imports this yet; it keeps the
12
+ * contract surface stable for phase 2.
13
+ */
14
+ export { UI_KIT_STABLE_COMPONENTS } from '../../shared/plugin-host/ui-kit-surface.js';
15
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/server/plugin-runtime/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC"}
@@ -9,9 +9,10 @@ import { type PeerProject } from '../services/chat-context.js';
9
9
  import type { PlanService } from '../services/plan.js';
10
10
  import type { BriefService } from '../services/brief.js';
11
11
  import type { PatchService } from '../services/patch.js';
12
+ import type { ReleaseService } from '../services/release.js';
12
13
  import type { PageVersionService } from '../services/page-version.js';
13
14
  import type { SkillResolver, SkillRegistry } from '../services/skill-registry.js';
14
- import type { Annotation, ChatThread } from '../../shared/entities.js';
15
+ import type { Annotation, ChatMessage, ChatThread } from '../../shared/entities.js';
15
16
  import type { WsEmitter } from '../ws/project-emitter.js';
16
17
  import type { Db } from '../db/index.js';
17
18
  import type { ProjectPluginHost } from '../core/plugin-host/types.js';
@@ -38,6 +39,8 @@ export interface AgentTurnDeps {
38
39
  planService: PlanService;
39
40
  briefService: BriefService;
40
41
  patchService: PatchService;
42
+ /** 0.1.69 Transagents: dispatcher resolves "latest release" for analysis briefs. */
43
+ releaseService: ReleaseService;
41
44
  pageVersions: PageVersionService;
42
45
  skillResolver: SkillResolver;
43
46
  skillRegistry: SkillRegistry;
@@ -81,6 +84,12 @@ export interface ActiveAdapter {
81
84
  adapter: RuntimeAdapter;
82
85
  emitter: EventEmitter;
83
86
  replay: TurnReplay;
87
+ /**
88
+ * 0.1.69 Transagents: parent thread id of a child banka turn (NULL/undefined
89
+ * for top-level turns). The abort cascade in routes/chat.ts uses this to find
90
+ * and abort children when their parent is consciously aborted.
91
+ */
92
+ parentThreadId?: string | null;
84
93
  /**
85
94
  * M05 queue: fan-out for events originating OUTSIDE the turn's stream loop
86
95
  * (queue mutations from `POST/DELETE /api/chat/queue/...`). Reaches the
@@ -117,6 +126,13 @@ export interface AgentTurnInput {
117
126
  export interface AgentTurnResult {
118
127
  threadId: string;
119
128
  answer: string;
129
+ /**
130
+ * 0.1.79: every chat_message persisted during THIS turn (user + assistant +
131
+ * reasoning + tool rows), in id order. Sliced from `chat_message`, returned in
132
+ * one batch after the turn. Feeds `runAgent({ output: 'full' })` / `c4s agent`;
133
+ * `output: 'final'` callers ignore it.
134
+ */
135
+ messages: ChatMessage[];
120
136
  }
121
137
  /**
122
138
  * Uruchamia jedna ture agenta dla istniejacego watku: wstawia wiadomosc user,
@@ -4,8 +4,10 @@ import { architectureCapabilities, createAdapter, observeStream, AdapterAbortErr
4
4
  import { buildPlanToolsServer } from '../mcp/plan-tools.js';
5
5
  import { buildBriefToolsServer } from '../mcp/brief-tools.js';
6
6
  import { buildC4sToolsServer } from '../mcp/c4s-tools.js';
7
- import { buildSystemPrompt, subagentsFor } from '../services/chat-context.js';
7
+ import { buildSystemPrompt, subagentsFor, CONTEXT_TYPE_REGISTRY, } from '../services/chat-context.js';
8
8
  import { readConfig } from '../config.js';
9
+ import { TransagentDispatcher } from '../services/transagent-dispatcher.js';
10
+ import { buildTransagentToolsServer, TRANSAGENT_TOOL_FULL_NAME } from '../mcp/transagent-tools.js';
9
11
  /** M21 m05ctxreg: tools whitelist per context_type. Brief threads get only
10
12
  * brief-tools (per-thread, mounted below) + release-tools (read-only).
11
13
  * All other plugin servers (endpoint-tools, dto-tools, ui-view-tools,
@@ -49,7 +51,17 @@ export async function runAgentTurn(deps, input) {
49
51
  const { thread, prompt, requestId } = input;
50
52
  const annotations = input.annotations ?? [];
51
53
  const currentPage = input.currentPage ?? null;
52
- const planMode = thread.planMode;
54
+ // 0.1.79: snapshot the highest message id BEFORE this turn inserts anything, so
55
+ // we can slice exactly this turn's messages at the end (for `output: 'full'`).
56
+ const turnStartMessageId = deps.chatService.latestMessageId(thread.id);
57
+ // M05 m05ctxreg: the context-type registry is the single source of truth for this
58
+ // thread's five dispatch dimensions (skill / MCP set / chrome / subagent / posture).
59
+ const ctx = CONTEXT_TYPE_REGISTRY[thread.contextType];
60
+ // Builtin posture (dim 5): `force-plan` pins read-only plan-mode EVERY turn regardless
61
+ // of the thread's stored plan_mode flag (→ READONLY_BUILTINS + disallowedTools =
62
+ // MUTATING_BUILTINS). One site, so it covers both POST /api/threads/:id/ask and
63
+ // POST /api/chat. (Today only `ask` forces; the rest follow the thread flag.)
64
+ const planMode = ctx.builtinPosture === 'force-plan' ? true : thread.planMode;
53
65
  const adapter = createAdapter('claude-code');
54
66
  const emitter = new EventEmitter();
55
67
  // `turn_start` jest syntetyzowany serwerowo wyłącznie dla wznawiających klientów
@@ -74,6 +86,10 @@ export async function runAgentTurn(deps, input) {
74
86
  'subagent_completed',
75
87
  'todo_list_updated',
76
88
  'user_input_request',
89
+ // 0.1.69 Transagents: bracket markers so reload/joiners reconstruct the
90
+ // nested child panel.
91
+ 'transagent_started',
92
+ 'transagent_completed',
77
93
  'result',
78
94
  'error',
79
95
  ]);
@@ -105,8 +121,36 @@ export async function runAgentTurn(deps, input) {
105
121
  };
106
122
  // Rejestracja PO zdefiniowaniu `emit` — kolejka (out-of-band `POST/DELETE
107
123
  // /api/chat/queue/...`) używa go do broadcastu `queue_updated`/`queue_cleared`.
108
- deps.activeAdapters.set(thread.id, { requestId, adapter, emitter, replay, emit });
124
+ deps.activeAdapters.set(thread.id, {
125
+ requestId,
126
+ adapter,
127
+ emitter,
128
+ replay,
129
+ emit,
130
+ // 0.1.69 Transagents: lets the abort cascade find this turn's children (when
131
+ // this turn IS a child, parentThreadId is set from the row).
132
+ parentThreadId: thread.parentThreadId,
133
+ });
109
134
  emit({ type: 'connected', requestId, threadId: thread.id });
135
+ // 0.1.69 Transagents: race-free correlation between the SDK's
136
+ // `tool_use(runTransagent)` id and the dispatcher. The loop pushes the id when
137
+ // it observes the tool_use event; the dispatcher (invoked from the MCP handler)
138
+ // takes it. Queue + waiter handles either interleaving.
139
+ const transagentToolUseQueue = [];
140
+ const transagentWaiters = [];
141
+ const pushTransagentToolUse = (id) => {
142
+ const waiter = transagentWaiters.shift();
143
+ if (waiter)
144
+ waiter(id);
145
+ else
146
+ transagentToolUseQueue.push(id);
147
+ };
148
+ const takeTransagentToolUse = () => {
149
+ const queued = transagentToolUseQueue.shift();
150
+ if (queued !== undefined)
151
+ return Promise.resolve(queued);
152
+ return new Promise((resolve) => transagentWaiters.push(resolve));
153
+ };
110
154
  let assistantBuf = '';
111
155
  let thinkingBuf = '';
112
156
  // 0.1.58: `answer` = treść OSTATNIEJ wiadomości assistant tury (finalne
@@ -160,14 +204,15 @@ export async function runAgentTurn(deps, input) {
160
204
  const title = prompt.slice(0, 60) + (prompt.length > 60 ? '...' : '');
161
205
  deps.chatService.updateTitle(thread.id, title || '(annotations only)');
162
206
  }
163
- const isBrief = thread.contextType === 'brief';
164
- // M23: patch threads keep the FULL spec-editing toolset (isBrief stays
165
- // false) their job is to edit the spec. Only the system prompt differs.
166
- const isPatch = thread.contextType === 'patch';
207
+ // M05 m05ctxreg: the brief frame (uiChrome='brief-detail') is the only one with a
208
+ // narrow toolset + reduced prompt it skips entity counters, plan tools, pages, and
209
+ // the current-page block. Every brief-frame cheap-skip below reads this one flag.
210
+ const isBriefFrame = ctx.uiChrome === 'brief-detail';
167
211
  // M21: dla brief context czytamy aktualny snapshot brief'u (frontmatter+body+hash)
168
212
  // i wkladamy do system promptu. Skip kosztownych obliczen pageCount/entityCounts.
213
+ // Gated on the registry's brief-tools dimension (brief is the only briefTools row).
169
214
  let briefSnapshot = null;
170
- if (isBrief && thread.briefPath) {
215
+ if (ctx.mcp.briefTools && thread.briefPath) {
171
216
  try {
172
217
  briefSnapshot = await deps.briefService.getBrief(thread.briefPath);
173
218
  }
@@ -175,9 +220,11 @@ export async function runAgentTurn(deps, input) {
175
220
  console.warn(`[chat] brief read failed for ${thread.briefPath}:`, err.message);
176
221
  }
177
222
  }
178
- // M23: dla patch context czytamy snapshot patcha i wkladamy do system promptu.
223
+ // M23: patch threads keep the FULL spec-editing toolset their job is to edit the
224
+ // spec; only the system prompt differs (the patch snapshot is injected). `patch_path`
225
+ // is set iff context_type='patch' (chat.ts invariant), so its presence IS the gate.
179
226
  let patchSnapshot = null;
180
- if (isPatch && thread.patchPath) {
227
+ if (thread.patchPath) {
181
228
  try {
182
229
  patchSnapshot = await deps.patchService.getPatch(thread.patchPath);
183
230
  }
@@ -186,7 +233,7 @@ export async function runAgentTurn(deps, input) {
186
233
  }
187
234
  }
188
235
  let currentPageBody = null;
189
- if (!isBrief && currentPage) {
236
+ if (!isBriefFrame && currentPage) {
190
237
  try {
191
238
  const page = await deps.pagesService.read(currentPage);
192
239
  currentPageBody = page.body;
@@ -198,8 +245,8 @@ export async function runAgentTurn(deps, input) {
198
245
  // Stale-plan reminder MUSI byc sprawdzony PRZED markPlanSeenByThread —
199
246
  // ten ostatni bumpuje last_seen_plan_version i zapodaje sygnal "synced".
200
247
  const isFirstTurn = !thread.hasSystemPrompt;
201
- const stalePlanReminder = isBrief ? null : deps.planService.getStalePlanReminder(thread.id);
202
- const currentPlan = isBrief ? null : deps.planService.getByThread(thread.id);
248
+ const stalePlanReminder = isBriefFrame ? null : deps.planService.getStalePlanReminder(thread.id);
249
+ const currentPlan = isBriefFrame ? null : deps.planService.getByThread(thread.id);
203
250
  // Skill resolution: writing-style (config.writingStyle, M15) ladowany
204
251
  // niezaleznie od kontekstu. Dla brief context dokladamy bundled `brief-author`.
205
252
  const writingStyleSkills = deps.skillResolver.resolve();
@@ -209,8 +256,10 @@ export async function runAgentTurn(deps, input) {
209
256
  title: String(writingStyleSkills[0].metadata?.title ?? writingStyleSkills[0].name),
210
257
  }
211
258
  : null;
259
+ // M05 m05ctxreg dim 1: the registry's bundled skill (beyond config.writingStyle).
260
+ // Only the brief row carries `brief-author`; chat/patch/ask carry null.
212
261
  const inlineSkills = [...writingStyleSkills];
213
- if (isBrief && deps.skillRegistry.has('brief-author')) {
262
+ if (ctx.bundledSkill === 'brief-author' && deps.skillRegistry.has('brief-author')) {
214
263
  const skill = deps.skillRegistry.resolve('brief-author');
215
264
  inlineSkills.push({
216
265
  name: skill.metadata.slug,
@@ -224,7 +273,7 @@ export async function runAgentTurn(deps, input) {
224
273
  },
225
274
  });
226
275
  }
227
- const pageCount = isBrief ? 0 : countPages(await deps.pagesService.listTree());
276
+ const pageCount = isBriefFrame ? 0 : countPages(await deps.pagesService.listTree());
228
277
  // 0.1.51: language directives travel the same path as writingStyle — read from
229
278
  // config per-turn here, NOT via architectureConfig. Effective only from the first
230
279
  // turn of a new thread (the prompt is persisted once by setInitialSystemPrompt).
@@ -237,17 +286,22 @@ export async function runAgentTurn(deps, input) {
237
286
  currentPagePath: currentPage,
238
287
  currentPageBody,
239
288
  pageCount,
240
- entityCounts: isBrief ? {} : deps.pluginHost.computeEntityCounts(deps.db.handle),
241
- tagCount: isBrief ? 0 : deps.tagsService.list().length,
242
- sectionCount: isBrief ? 0 : deps.sectionsService.count(),
289
+ entityCounts: isBriefFrame ? {} : deps.pluginHost.computeEntityCounts(deps.db.handle),
290
+ tagCount: isBriefFrame ? 0 : deps.tagsService.list().length,
291
+ sectionCount: isBriefFrame ? 0 : deps.sectionsService.count(),
243
292
  annotations,
244
293
  planMode,
245
294
  currentPlan,
246
- planToolsAvailable: !isBrief,
247
- c4sToolsAvailable: !isBrief,
248
- // 0.1.58: peer-discovery block. Skip the disk reads for brief frames
249
- // (c4sToolsAvailable=false there, so the block would be gated out anyway).
250
- workspaceProjects: isBrief ? [] : (deps.listWorkspacePeers?.() ?? []),
295
+ // M05 m05ctxreg dim 2: prompt-side tooling flags mirror the registry's MCP set
296
+ // (the <tooling>/usage blocks must match what is actually mounted below).
297
+ planToolsAvailable: ctx.mcp.planTools,
298
+ // c4s-tools excluded for brief (narrow toolset) and `ask` (recursion guard) — the
299
+ // registry encodes this; dropping it also drops the <c4s_tools_usage> +
300
+ // peer-discovery prompt blocks.
301
+ c4sToolsAvailable: ctx.mcp.c4sTools,
302
+ // 0.1.58: peer-discovery block. Gated on the same c4s-tools dimension; skip the
303
+ // disk reads when c4s-tools is absent (the block would be gated out anyway).
304
+ workspaceProjects: ctx.mcp.c4sTools ? (deps.listWorkspacePeers?.() ?? []) : [],
251
305
  workspaceName: deps.workspaceName,
252
306
  writingStyle,
253
307
  specLanguage: cfg.language ?? undefined,
@@ -272,27 +326,47 @@ export async function runAgentTurn(deps, input) {
272
326
  if (isFirstTurn && currentPlan) {
273
327
  deps.planService.markPlanSeenByThread(thread.id);
274
328
  }
275
- // M21 m05ctxreg: per-thread MCP servers depend on context_type.
276
- const planTools = isBrief
277
- ? null
278
- : buildPlanToolsServer({
329
+ // M05 m05ctxreg dim 2: per-thread MCP servers are dispatched from the registry's
330
+ // `mcp` descriptor — each server mounts iff its registry flag is set.
331
+ const planTools = ctx.mcp.planTools
332
+ ? buildPlanToolsServer({
279
333
  threadId: thread.id,
280
334
  planService: deps.planService,
281
- });
282
- const briefTools = isBrief && thread.briefPath
335
+ })
336
+ : null;
337
+ const briefTools = ctx.mcp.briefTools && thread.briefPath
283
338
  ? buildBriefToolsServer({
284
339
  threadId: thread.id,
285
340
  briefPath: thread.briefPath,
286
341
  briefService: deps.briefService,
287
342
  })
288
343
  : null;
289
- // M24 c4s-tools: cross-cutting MCP exposing `c4s ask` flow. Stateless,
290
- // fresh factory per request. Whitelist: chat + patch contexts; brief is
291
- // intentionally narrow (brief-tools + read-only release-tools only).
292
- const c4sTools = isBrief ? null : buildC4sToolsServer();
344
+ // M24 c4s-tools: cross-cutting MCP exposing the peer-consult flow. Stateless,
345
+ // fresh factory per request. Registry-gated: chat + patch only (brief is
346
+ // intentionally narrow; `ask` is excluded a consulted peer cannot consult another).
347
+ const c4sTools = ctx.mcp.c4sTools ? buildC4sToolsServer() : null;
348
+ // 0.1.69 transagent-tools: delegate work to a hidden child banka. Two guards:
349
+ // - registry dimension `transagentTools` (chat + patch only — never brief/`ask`).
350
+ // - recursion depth 1: never inside a child banka (parentThreadId != null), so a
351
+ // banka cannot spawn a banka. This guard is orthogonal to the registry (it depends
352
+ // on the thread's lineage, not its context_type), so it stays at the call site.
353
+ const isChildBanka = thread.parentThreadId != null;
354
+ const transagentTools = ctx.mcp.transagentTools && !isChildBanka
355
+ ? buildTransagentToolsServer({
356
+ parentThreadId: thread.id,
357
+ dispatcher: new TransagentDispatcher(deps, {
358
+ model: input.model,
359
+ architectureConfig: input.architectureConfig,
360
+ takeToolUseId: takeTransagentToolUse,
361
+ runTurn: (childInput) => runAgentTurn(deps, childInput),
362
+ }),
363
+ })
364
+ : null;
365
+ // Registry `pluginServers`: 'all' mounts every entity-plugin server; 'release-only'
366
+ // narrows to the BRIEF_ALLOWED_PLUGIN_MCP whitelist (read-only release-tools).
293
367
  const pluginMcpEntries = deps.pluginHost
294
368
  .buildMcpServers()
295
- .filter(({ name }) => (isBrief ? BRIEF_ALLOWED_PLUGIN_MCP.has(name) : true))
369
+ .filter(({ name }) => ctx.mcp.pluginServers === 'release-only' ? BRIEF_ALLOWED_PLUGIN_MCP.has(name) : true)
296
370
  .map(({ name, server }) => [name, server.config]);
297
371
  const mcpServers = Object.fromEntries(pluginMcpEntries);
298
372
  if (planTools)
@@ -301,6 +375,8 @@ export async function runAgentTurn(deps, input) {
301
375
  mcpServers['brief-tools'] = briefTools.config;
302
376
  if (c4sTools)
303
377
  mcpServers['c4s-tools'] = c4sTools.config;
378
+ if (transagentTools)
379
+ mcpServers['transagent-tools'] = transagentTools.config;
304
380
  // M05 queue: streaming-input keeps the SDK input channel open across turns so
305
381
  // queued messages can be pushed into the LIVE turn (`adapter.pushMessage`).
306
382
  // Opt-in per architecture capability; one-shot path unchanged for the rest.
@@ -384,6 +460,11 @@ export async function runAgentTurn(deps, input) {
384
460
  flushSubBuf(taskId);
385
461
  else
386
462
  flushMainBuf();
463
+ // 0.1.69 Transagents: feed the dispatcher the real tool_use id so the
464
+ // child stores it as spawned_by_tool_use_id (F5 reconstruction key).
465
+ if (event.toolName === TRANSAGENT_TOOL_FULL_NAME && event.toolUseId) {
466
+ pushTransagentToolUse(event.toolUseId);
467
+ }
387
468
  deps.chatService.addMessage(thread.id, 'tool_use', JSON.stringify({ input: event.input }), event.toolName, event.toolUseId, taskId, planMode, 'streaming');
388
469
  break;
389
470
  }
@@ -464,7 +545,7 @@ export async function runAgentTurn(deps, input) {
464
545
  replay.events = [];
465
546
  emit(mergedTurnStart);
466
547
  // Stale-plan reminder is applied at DISPATCH (here), not at enqueue.
467
- const mergedReminder = isBrief ? null : deps.planService.getStalePlanReminder(thread.id);
548
+ const mergedReminder = isBriefFrame ? null : deps.planService.getStalePlanReminder(thread.id);
468
549
  await consume(mergedReminder ? `${mergedReminder}\n\n${merged}` : merged);
469
550
  batch = deps.chatService.popAllQueued(thread.id);
470
551
  }
@@ -513,7 +594,11 @@ export async function runAgentTurn(deps, input) {
513
594
  cancelPendingForRequest(deps.pendingInputs, requestId);
514
595
  deps.onTurnFinished?.();
515
596
  }
516
- return { threadId: thread.id, answer: lastAssistantText.trim() };
597
+ // 0.1.79: slice the messages this turn persisted (id > pre-turn snapshot).
598
+ const messages = deps.chatService
599
+ .getMessages(thread.id)
600
+ .filter((m) => m.id > turnStartMessageId);
601
+ return { threadId: thread.id, answer: lastAssistantText.trim(), messages };
517
602
  }
518
603
  export function countPages(tree) {
519
604
  let n = 0;