@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
@@ -14,6 +14,12 @@ import { projectDispatchMiddleware } from './workspace/middleware.js';
14
14
  import { workspaceRouter } from './workspace/routes.js';
15
15
  import { PluginRegistryImpl } from './core/plugin-host/registry.js';
16
16
  import { registerAllPlugins } from './serialization/registerAll.js';
17
+ import { loadWorkspacePlugins, reloadPlugin } from './core/plugin-host/loader.js';
18
+ import { PluginWatcher } from './core/plugin-host/plugin-watcher.js';
19
+ import { createRequire } from 'node:module';
20
+ import { resolvePluginPackages } from './workspace/registry.js';
21
+ import { pluginsRouter } from './routes/plugins.js';
22
+ import { buildImportMap } from './core/plugin-host/runtime-shims.js';
17
23
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
18
24
  const DEFAULT_PORT = 3000;
19
25
  // M01: deterministyczny port. Przy zajetym porcie serwer NIE wskakuje juz na
@@ -54,6 +60,15 @@ function injectProjectGlobal(html, cwd, name) {
54
60
  const payload = JSON.stringify({ id, name }).replace(/</g, '\\u003c');
55
61
  return html.replace('<head>', `<head><script>window.__C4S_PROJECT__=${payload};</script>`);
56
62
  }
63
+ // M33 "Option B": inject the plugin import map into <head> statically (before any
64
+ // module script resolves), so a runtime plugin's bare imports (`react`, …) resolve
65
+ // to the host's singleton shims. Applied to every SPA page (welcome + project).
66
+ const IMPORT_MAP_SCRIPT = `<script type="importmap">${JSON.stringify({
67
+ imports: buildImportMap(),
68
+ }).replace(/</g, '\\u003c')}</script>`;
69
+ function injectImportMap(html) {
70
+ return html.replace('<head>', `<head>${IMPORT_MAP_SCRIPT}`);
71
+ }
57
72
  const PROJECT_ROUTE_RE = /^\/p\/([0-9a-f]{12})(\/|$)/;
58
73
  /**
59
74
  * M31 route scheme `/p/<project-id>/…` (assets stay at root — no Vite
@@ -102,6 +117,7 @@ async function mountDevVite(app, deps) {
102
117
  const htmlPath = path.join(repoRoot, 'src/client/index.html');
103
118
  let html = await fs.promises.readFile(htmlPath, 'utf-8');
104
119
  html = await vite.transformIndexHtml(req.originalUrl, html);
120
+ html = injectImportMap(html);
105
121
  // `/welcome` runs the SPA project-less: no `window.__C4S_PROJECT__`, so the
106
122
  // client computes PROJECT_ID='' → API_BASE='/api' → router basepath '/'.
107
123
  if (resolution.kind === 'welcome') {
@@ -132,7 +148,7 @@ function mountProd(app, deps) {
132
148
  const resolution = resolveSpaRoute(deps.registry, deps.workspace, urlPath);
133
149
  if (resolution.kind === 'redirect')
134
150
  return res.redirect(302, resolution.to);
135
- const raw = fs.readFileSync(path.join(clientDist, 'index.html'), 'utf-8');
151
+ const raw = injectImportMap(fs.readFileSync(path.join(clientDist, 'index.html'), 'utf-8'));
136
152
  // `/welcome` runs the SPA project-less (no `window.__C4S_PROJECT__`).
137
153
  if (resolution.kind === 'welcome') {
138
154
  return res.status(200).set({ 'Content-Type': 'text/html' }).end(raw);
@@ -165,6 +181,22 @@ export async function startServer(opts) {
165
181
  const portRef = { current: opts.port ?? DEFAULT_PORT };
166
182
  const app = express();
167
183
  app.use(express.json({ limit: '2mb' }));
184
+ // DIAGNOSTIC (perf): true server-side handler duration per /api request. In dev
185
+ // the app and Vite share one origin/event loop, so DevTools "Time" conflates
186
+ // server time with browser connection-queue/stall — this log shows the real
187
+ // handler ms. Gated on C4S_TIMING=1 so it's silent unless explicitly enabled.
188
+ if (process.env.C4S_TIMING === '1') {
189
+ app.use((req, res, next) => {
190
+ if (!req.originalUrl.startsWith('/api'))
191
+ return next();
192
+ const startedAt = performance.now();
193
+ res.on('finish', () => {
194
+ const ms = Math.round(performance.now() - startedAt);
195
+ console.log(`[timing] ${req.method} ${req.originalUrl} ${res.statusCode} ${ms}ms`);
196
+ });
197
+ next();
198
+ });
199
+ }
168
200
  // M31: workspace registry — DB lives in the workspace slot, not the project dir.
169
201
  const registry = new WorkspaceRegistry();
170
202
  const workspace = opts.workspace ?? registry.selectOrCreate({ port: opts.port, mode: opts.mode });
@@ -178,6 +210,10 @@ export async function startServer(opts) {
178
210
  // M31: process-immutable plugin catalog, populated exactly once.
179
211
  const pluginRegistry = new PluginRegistryImpl();
180
212
  registerAllPlugins(pluginRegistry);
213
+ // M33: load workspace-declared npm plugin packages onto the same catalog,
214
+ // before any ProjectContext consolidates against it. Per-package failures are
215
+ // isolated (skipped/failed records) — one bad plugin never crashes bootstrap.
216
+ const pluginLoad = await loadWorkspacePlugins(pluginRegistry, resolvePluginPackages(workspace));
181
217
  const httpServer = createHttpServer(app);
182
218
  const gateway = new WsGateway(httpServer);
183
219
  // M27 clone runs only on the FIRST build of the CLI-started project —
@@ -201,6 +237,7 @@ export async function startServer(opts) {
201
237
  return buildProjectContext({
202
238
  registry,
203
239
  pluginRegistry,
240
+ pluginRecords: pluginLoad.records,
204
241
  workspace,
205
242
  cwd: project.cwd,
206
243
  gateway,
@@ -212,12 +249,71 @@ export async function startServer(opts) {
212
249
  onContextConfigChanged: () => cache.invalidate(project.id),
213
250
  });
214
251
  });
252
+ // M33 phase 3: process-global base (workspace/npm) plugin hot-reload watcher.
253
+ // The base catalog is shared across projects, so a reload mutates the shared
254
+ // `pluginRegistry` (unregister old → register new) and invalidates ALL cached
255
+ // contexts; each live project room is told to remount. Resolves each package
256
+ // to its install dir; an unresolvable package is simply not watched.
257
+ const baseDirByPkg = new Map();
258
+ for (const pkg of resolvePluginPackages(workspace)) {
259
+ try {
260
+ baseDirByPkg.set(pkg, path.dirname(createRequire(import.meta.url).resolve(pkg)));
261
+ }
262
+ catch {
263
+ /* unresolvable (not installed) — nothing to watch */
264
+ }
265
+ }
266
+ // Serialize reload runs so overlapping watcher flushes never interleave
267
+ // unregister/register on the shared registry.
268
+ let baseReloadChain = Promise.resolve();
269
+ const basePluginWatcher = new PluginWatcher([...baseDirByPkg.values()], (changedPaths) => {
270
+ const affected = [...baseDirByPkg.entries()]
271
+ .filter(([, dir]) => changedPaths.some((p) => p === dir || p.startsWith(dir + path.sep)))
272
+ .map(([pkg]) => pkg);
273
+ if (affected.length === 0)
274
+ return;
275
+ baseReloadChain = baseReloadChain
276
+ .then(async () => {
277
+ const reloaded = [];
278
+ for (const pkg of affected) {
279
+ const rec = await reloadPlugin(pluginRegistry, pkg);
280
+ reloaded.push({ name: rec.manifestName ?? pkg, version: rec.manifestVersion ?? '' });
281
+ }
282
+ // Snapshot the rooms BEFORE invalidating: invalidateAll() empties the
283
+ // cache, after which liveProjectIds() would return [] and no client
284
+ // would ever be told to remount. Then invalidate once (not per-package).
285
+ const rooms = cache.liveProjectIds();
286
+ cache.invalidateAll();
287
+ for (const id of rooms) {
288
+ for (const r of reloaded) {
289
+ gateway.broadcast(id, { kind: 'plugin:reloaded', name: r.name, version: r.version, tier: 'base' });
290
+ }
291
+ }
292
+ })
293
+ .catch((err) => console.warn('[plugin-loader] base reload failed:', err));
294
+ });
295
+ basePluginWatcher.start();
215
296
  // Per-project activation — POST /api/workspace/projects runs the SAME full
216
297
  // bootstrap as a CLI start (M01/M12/M22 hooks + registration + db migration).
217
298
  const activateProject = async (projectCwd) => {
218
299
  return bootstrapProject(registry, workspace, projectCwd).project;
219
300
  };
220
301
  app.use('/api', workspaceRouter({ registry, workspace, cache, mode, activateProject }));
302
+ // M33: process-level plugin endpoints (frontend manifest, runtime shims,
303
+ // loader diagnostics) — before the project dispatch so they stay prefix-free.
304
+ // Phase 2: project-local frontend serving binds to the process's primary
305
+ // project (the `--cwd`); `isTrusted` is read live so a trust flip applies
306
+ // without a restart. Workspace-only starts register nothing ⇒ serving disabled.
307
+ app.use('/api', pluginsRouter({
308
+ pluginRegistry,
309
+ pluginRecords: pluginLoad.records,
310
+ frontendServing: initialProject
311
+ ? { cwd, isTrusted: () => registry.getProjectTrust(workspace, initialProject.id) === true }
312
+ : undefined,
313
+ // M33 phase 3: workspace/npm plugin frontends are served ungated for every
314
+ // project — the same resolved package list `loadWorkspacePlugins` consumed.
315
+ workspacePackages: resolvePluginPackages(workspace),
316
+ }));
221
317
  app.use('/api/projects/:id', projectDispatchMiddleware(registry, workspace, cache));
222
318
  // Eager warm of the CLI-started project: clone executes before listen and a
223
319
  // broken initial config still fails the boot fast (parity with pre-M31). A
@@ -235,6 +331,7 @@ export async function startServer(opts) {
235
331
  port,
236
332
  writingStyle: initialCtx?.writingStyle ?? null,
237
333
  shutdown: async () => {
334
+ await basePluginWatcher.close();
238
335
  await cache.disposeAll();
239
336
  await gateway.close();
240
337
  await closeAssets();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type McpServerInstance } from '@inharness-ai/agent-adapters';
2
2
  /**
3
- * `c4s-tools` — cross-cutting in-process MCP server expozujacy `c4s ask`
3
+ * `c4s-tools` — cross-cutting in-process MCP server expozujacy peer-consult
4
4
  * jako narzedzie MCP. Jeden tool `ask`, mountowany per request (jak `plan-tools`).
5
5
  *
6
6
  * Motywacja: w `plan_mode=true` agent ma `disallowedTools = MUTATING_BUILTINS`
@@ -11,5 +11,10 @@ import { type McpServerInstance } from '@inharness-ai/agent-adapters';
11
11
  * Stateless — w odroznieniu od `plan-tools` (gdzie `threadId` jest ambient
12
12
  * z closure), `c4s-tools.ask` celuje w **innego** peera, wszystkie parametry
13
13
  * przychodza jako input. Brak `ctx` w fabryce.
14
+ *
15
+ * 0.1.79: tool zablokowany do READ-ONLY. `contextType='ask'` jest zahardkodowany
16
+ * wewnatrz (caller nie moze wybrac mutujacego kontekstu), a `output: 'final'`
17
+ * zwraca terse `{ threadId, answer }`. Parametry `contextType` i `brief` usuniete
18
+ * z wejscia.
14
19
  */
15
20
  export declare function buildC4sToolsServer(): McpServerInstance;
@@ -1,8 +1,8 @@
1
1
  import { createMcpServer, mcpTool } from '@inharness-ai/agent-adapters';
2
2
  import { z } from 'zod';
3
- import { runAsk, AskError } from '../../core/ask/run-ask.js';
3
+ import { runAgent, AgentError } from '../../core/agent/run-agent.js';
4
4
  /**
5
- * `c4s-tools` — cross-cutting in-process MCP server expozujacy `c4s ask`
5
+ * `c4s-tools` — cross-cutting in-process MCP server expozujacy peer-consult
6
6
  * jako narzedzie MCP. Jeden tool `ask`, mountowany per request (jak `plan-tools`).
7
7
  *
8
8
  * Motywacja: w `plan_mode=true` agent ma `disallowedTools = MUTATING_BUILTINS`
@@ -13,43 +13,48 @@ import { runAsk, AskError } from '../../core/ask/run-ask.js';
13
13
  * Stateless — w odroznieniu od `plan-tools` (gdzie `threadId` jest ambient
14
14
  * z closure), `c4s-tools.ask` celuje w **innego** peera, wszystkie parametry
15
15
  * przychodza jako input. Brak `ctx` w fabryce.
16
+ *
17
+ * 0.1.79: tool zablokowany do READ-ONLY. `contextType='ask'` jest zahardkodowany
18
+ * wewnatrz (caller nie moze wybrac mutujacego kontekstu), a `output: 'final'`
19
+ * zwraca terse `{ threadId, answer }`. Parametry `contextType` i `brief` usuniete
20
+ * z wejscia.
16
21
  */
17
22
  export function buildC4sToolsServer() {
18
23
  const ask = mcpTool('ask', [
19
24
  'Consult another claude4spec specification synchronously. Returns { threadId, answer }.',
25
+ 'The peer is READ-ONLY: it does not mutate its spec (Write/Edit/Bash banned; entity/page edits soft-blocked at prompt level).',
20
26
  'Use `project` (local path to peer .claude4spec/) OR `server` (URL override); if both, `server` wins.',
21
- 'Continue an existing peer thread by passing its `threadId` (omit `contextType` then).',
27
+ 'Continue an existing peer thread by passing its `threadId`.',
22
28
  'Works in plan_mode — MCP is not filtered by READONLY_BUILTINS, so this works where Bash-shelled `c4s ask` does not.',
23
- 'Same contract as the `c4s` CLI: same discovery, same errors.',
29
+ 'Same contract as the `c4s ask` CLI shorthand: same discovery, same errors.',
24
30
  ].join('\n'), {
25
31
  message: z.string(),
26
32
  project: z.string().optional(),
27
33
  workspace: z.string().optional(),
28
34
  server: z.string().optional(),
29
- contextType: z.enum(['chat', 'brief', 'patch']).optional(),
30
35
  threadId: z.string().optional(),
31
- brief: z.string().optional(),
36
+ model: z.string().optional(),
32
37
  }, async (input) => {
33
38
  try {
34
- const result = await runAsk({
39
+ const result = await runAgent({
35
40
  message: String(input.message ?? ''),
36
41
  project: typeof input.project === 'string' ? input.project : undefined,
37
42
  workspace: typeof input.workspace === 'string' ? input.workspace : undefined,
38
43
  server: typeof input.server === 'string' ? input.server : undefined,
39
- contextType: typeof input.contextType === 'string'
40
- ? input.contextType
41
- : undefined,
42
44
  threadId: typeof input.threadId === 'string' ? input.threadId : undefined,
43
- briefPath: typeof input.brief === 'string' ? input.brief : undefined,
45
+ model: typeof input.model === 'string' ? input.model : undefined,
46
+ // Locked: a consulted peer always runs read-only, terse output.
47
+ contextType: 'ask',
48
+ output: 'final',
44
49
  });
45
50
  return {
46
51
  content: [{ type: 'text', text: JSON.stringify(result) }],
47
52
  };
48
53
  }
49
54
  catch (err) {
50
- const code = err instanceof AskError ? err.code : 'AGENT_ERROR';
55
+ const code = err instanceof AgentError ? err.code : 'AGENT_ERROR';
51
56
  const message = err instanceof Error ? err.message : String(err);
52
- const hint = err instanceof AskError ? err.hint : undefined;
57
+ const hint = err instanceof AgentError ? err.hint : undefined;
53
58
  return {
54
59
  content: [
55
60
  {
@@ -1 +1 @@
1
- {"version":3,"file":"c4s-tools.js","sourceRoot":"","sources":["../../../src/server/mcp/c4s-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c4s-tools.js","sourceRoot":"","sources":["../../../src/server/mcp/c4s-tools.ts"],"names":[],"mappings":"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"}
@@ -21,3 +21,14 @@ export interface ReleaseToolsDeps {
21
21
  ws: WsEmitter;
22
22
  }
23
23
  export declare function createReleaseToolsServer(deps: ReleaseToolsDeps): McpServerInstance;
24
+ /**
25
+ * Resolve `limit`/`offset` for the MCP-only pagination of `release_list` /
26
+ * `release_show` / `release_diff`. Negative values are a loud 400 `INVALID_PAGINATION` (no
27
+ * silent clamp), consistent with the rest of M17's jaskrawe błędy. Zod keeps
28
+ * these loose (`z.number()`) so negatives reach this check rather than failing
29
+ * as a generic Zod error.
30
+ */
31
+ export declare function resolvePagination(limit: unknown, offset: unknown): {
32
+ limit: number;
33
+ offset: number;
34
+ };
@@ -14,7 +14,7 @@
14
14
  import { createMcpServer, mcpTool } from '@inharness-ai/agent-adapters';
15
15
  import { z } from 'zod';
16
16
  import { DomainError } from '../../services/tags.js';
17
- import { projectReleaseDiff, projectSpecSnapshot } from './projection.js';
17
+ import { DEFAULT_PAGE_LIMIT, projectReleaseDiff, projectSpecSnapshot } from './projection.js';
18
18
  const INCLUDE_VALUES = ['pages', 'entities'];
19
19
  const ENTITY_TYPE_VALUES = ['endpoint', 'dto', 'database-table', 'ui-view', 'ac'];
20
20
  const DEFAULT_INCLUDE = ['pages', 'entities'];
@@ -46,7 +46,25 @@ export function createReleaseToolsServer(deps) {
46
46
  return fail(err);
47
47
  }
48
48
  });
49
- const releaseList = mcpTool('release_list', 'List all releases newest-first. Returns id, name, description, createdBy, createdAt per release.', {}, async () => ok({ releases: deps.releaseService.listReleases() }));
49
+ const releaseList = mcpTool('release_list', 'List releases newest-first (paginated). Returns `{ releases, total }` where `total` is the full count before limit/offset. Per release: id, name, description, createdBy, createdAt.', {
50
+ limit: z
51
+ .number()
52
+ .optional()
53
+ .describe('Window size. Default 5, no upper limit. Negative → 400 INVALID_PAGINATION.'),
54
+ offset: z
55
+ .number()
56
+ .optional()
57
+ .describe('Window offset into the newest-first list. Default 0. Negative → 400 INVALID_PAGINATION.'),
58
+ }, async (args) => {
59
+ try {
60
+ const { limit, offset } = resolvePagination(args.limit, args.offset);
61
+ const all = deps.releaseService.listReleases();
62
+ return ok({ releases: all.slice(offset, offset + limit), total: all.length });
63
+ }
64
+ catch (err) {
65
+ return fail(err);
66
+ }
67
+ });
50
68
  const releaseShow = mcpTool('release_show', "Show a release's identification surface (release metadata + lists of entity slugs/page paths present at the release). Returns `MCPSpecSnapshot` — IDENTIFICATION only, not full entity/page data. To inspect the data, call `release_diff` (with this release as `to` and any earlier release — or `null` — as `from`). Accepts numeric id or release name. Filters: `include` (defaults to ['pages','entities']) trims the dimensions returned; `entityTypes` restricts entity types. Brief versions (`page_version.kind='brief'`) are excluded from `pages` (L2 invariant).", {
51
69
  idOrName: z.union([z.string(), z.number()]).describe('Numeric id or release name'),
52
70
  include: z
@@ -57,19 +75,28 @@ export function createReleaseToolsServer(deps) {
57
75
  .array(z.enum(ENTITY_TYPE_VALUES))
58
76
  .optional()
59
77
  .describe("Filter entity types. Default all 5 types. Empty array → 400 INVALID_ENTITY_TYPES_FILTER. Passing this without 'entities' in `include` → 400 CONFLICTING_FILTERS."),
78
+ limit: z
79
+ .number()
80
+ .optional()
81
+ .describe('Window size applied independently to entities[] and pages[]. Default 5, no upper limit. Negative → 400 INVALID_PAGINATION.'),
82
+ offset: z
83
+ .number()
84
+ .optional()
85
+ .describe('Window offset applied independently to entities[] and pages[]. Default 0. Negative → 400 INVALID_PAGINATION.'),
60
86
  }, async (args) => {
61
87
  try {
62
88
  const include = args.include ?? DEFAULT_INCLUDE;
63
89
  const entityTypes = args.entityTypes;
64
90
  validateFilters(args.include, entityTypes);
91
+ const { limit, offset } = resolvePagination(args.limit, args.offset);
65
92
  const raw = deps.releaseService.getReleaseSnapshot(args.idOrName);
66
- return ok(projectSpecSnapshot(raw, { include, entityTypes }));
93
+ return ok(projectSpecSnapshot(raw, { include, entityTypes }, { limit, offset }));
67
94
  }
68
95
  catch (err) {
69
96
  return fail(err);
70
97
  }
71
98
  });
72
- const releaseDiff = mcpTool('release_diff', "Compute a SELF-CONTAINED structured diff between two releases. Each entity carries full `before`/`after` snapshots (per plugin's serializer); each modified section carries full `before`/`after` raw markdown. There is NO `line_diff` and NO drill-down tool (`get_<type>` / `Read pages/...` are not available in this thread) this single round-trip is everything you need to ground a brief. Pass `from: null` for the initial brief (synthetic empty `from`; all entries become `op:'create'` with `before` omitted). `from === to` returns an empty diff. Filters: `include` (defaults ['pages','entities']) and `entityTypes` (defaults all 5) trim the payload to manage context budget.", {
99
+ const releaseDiff = mcpTool('release_diff', "Compute a SELF-CONTAINED structured diff between two releases. Heavy mode (default): each entity carries full `before`/`after` snapshots (per plugin's serializer); each modified section carries full `before`/`after` raw markdown. `entities[]`/`pages[]` are paginated independently by `limit`/`offset` (default 5), and `total: { entities?, pages? }` reports the full count after `include`/`entityTypes` filters, before the window. Light mode (`summaryOnly: true`): returns a delta MAP — `total` + identifiers `{ type, slug, name, op }` per entity and `{ path, op }` per page (incl. `op:'delete'`), WITHOUT `before`/`after`/`content`; the map is FULL and ignores `limit`/`offset`. Intended use: probe with `summaryOnly: true` to learn what changed, then fan out the heavy slices (`entityTypes` and/or `limit`/`offset`) to subagents. Pass `from: null` for the initial brief (synthetic empty `from`; all entries become `op:'create'` with `before` omitted). `from === to` returns an empty diff. There is NO `line_diff`.", {
73
100
  fromIdOrName: z
74
101
  .union([z.string(), z.number(), z.null()])
75
102
  .describe('Earlier release id or name. `null` = initial brief (compare to empty state — all entries become op:create).'),
@@ -82,17 +109,37 @@ export function createReleaseToolsServer(deps) {
82
109
  .array(z.enum(ENTITY_TYPE_VALUES))
83
110
  .optional()
84
111
  .describe("Filter entity types. Default all 5 types. Empty array → 400 INVALID_ENTITY_TYPES_FILTER. Passing this without 'entities' in `include` → 400 CONFLICTING_FILTERS."),
112
+ summaryOnly: z
113
+ .boolean()
114
+ .optional()
115
+ .describe('Default false. true = light delta-map: only `total` + identifiers `{ type, slug, name, op }` / `{ path, op }` (incl. deletes), no before/after/content. Full lists — ignores limit/offset.'),
116
+ limit: z
117
+ .number()
118
+ .optional()
119
+ .describe('Window size applied independently to entities[] and pages[] (heavy mode only). Default 5, no upper limit. Negative → 400 INVALID_PAGINATION.'),
120
+ offset: z
121
+ .number()
122
+ .optional()
123
+ .describe('Window offset applied independently to entities[] and pages[] (heavy mode only). Default 0. Beyond total → empty list + total. Negative → 400 INVALID_PAGINATION.'),
85
124
  }, async (args) => {
86
125
  try {
87
126
  const include = args.include ?? DEFAULT_INCLUDE;
88
127
  const entityTypes = args.entityTypes;
89
128
  validateFilters(args.include, entityTypes);
129
+ // Validate pagination BEFORE the summaryOnly branch — negative limit/offset
130
+ // is a 400 even though `summaryOnly: true` later ignores the window.
131
+ const { limit, offset } = resolvePagination(args.limit, args.offset);
132
+ const summaryOnly = args.summaryOnly === true;
90
133
  const fromIdOrName = args.fromIdOrName;
91
134
  const toIdOrName = args.toIdOrName;
92
135
  const raw = deps.releaseService.getReleaseDiff(fromIdOrName, toIdOrName);
93
136
  const toSnap = deps.releaseService.getReleaseSnapshot(toIdOrName);
94
137
  const fromSnap = fromIdOrName === null ? null : deps.releaseService.getReleaseSnapshot(fromIdOrName);
95
- return ok(projectReleaseDiff(raw, fromSnap, toSnap, { include, entityTypes }));
138
+ return ok(projectReleaseDiff(raw, fromSnap, toSnap, { include, entityTypes }, {
139
+ summaryOnly,
140
+ limit,
141
+ offset,
142
+ }));
96
143
  }
97
144
  catch (err) {
98
145
  return fail(err);
@@ -126,6 +173,22 @@ export function createReleaseToolsServer(deps) {
126
173
  tools: [releaseCreate, releaseList, releaseShow, releaseDiff, releaseUpdate],
127
174
  });
128
175
  }
176
+ const DEFAULT_OFFSET = 0;
177
+ /**
178
+ * Resolve `limit`/`offset` for the MCP-only pagination of `release_list` /
179
+ * `release_show` / `release_diff`. Negative values are a loud 400 `INVALID_PAGINATION` (no
180
+ * silent clamp), consistent with the rest of M17's jaskrawe błędy. Zod keeps
181
+ * these loose (`z.number()`) so negatives reach this check rather than failing
182
+ * as a generic Zod error.
183
+ */
184
+ export function resolvePagination(limit, offset) {
185
+ const l = typeof limit === 'number' ? limit : DEFAULT_PAGE_LIMIT;
186
+ const o = typeof offset === 'number' ? offset : DEFAULT_OFFSET;
187
+ if (l < 0 || o < 0) {
188
+ throw new DomainError('INVALID_PAGINATION', 'limit and offset must be >= 0');
189
+ }
190
+ return { limit: l, offset: o };
191
+ }
129
192
  function validateFilters(include, entityTypes) {
130
193
  if (include !== undefined && include.length === 0) {
131
194
  throw new DomainError('INVALID_INCLUDE_FILTER', 'include must not be an empty array');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,eAAe,EAAE,OAAO,EAA0B,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAc1E,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,UAAU,CAAU,CAAC;AACtD,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAU,CAAC;AAC3F,MAAM,eAAe,GAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAE/D,MAAM,UAAU,wBAAwB,CAAC,IAAsB;IAC7D,MAAM,EAAE,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,CAAC,GAAY,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;QAChE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAC3B,gBAAgB,EAChB,+QAA+Q,EAC/Q;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QACtF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;KACpG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAC/C,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAClE,OAAO,CACR,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1F,sEAAsE;YACtE,2EAA2E;YAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/D,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CACzB,cAAc,EACd,kGAAkG,EAClG,EAAE,EACF,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CACjE,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CACzB,cAAc,EACd,+iBAA+iB,EAC/iB;QACE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClF,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,QAAQ,CACP,4FAA4F,CAC7F;QACH,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,QAAQ,CACP,kKAAkK,CACnK;KACJ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAI,IAAI,CAAC,OAAuC,IAAI,eAAe,CAAC;YACjF,MAAM,WAAW,GAAG,IAAI,CAAC,WAA6C,CAAC;YACvE,eAAe,CAAC,IAAI,CAAC,OAAsC,EAAE,WAAW,CAAC,CAAC;YAE1E,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAA2B,CAAC,CAAC;YACrF,OAAO,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAA2B,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CACzB,cAAc,EACd,sqBAAsqB,EACtqB;QACE,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aACzC,QAAQ,CACP,6GAA6G,CAC9G;QACH,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAClF,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,QAAQ,CACP,4FAA4F,CAC7F;QACH,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,QAAQ,CACP,kKAAkK,CACnK;KACJ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAI,IAAI,CAAC,OAAuC,IAAI,eAAe,CAAC;YACjF,MAAM,WAAW,GAAG,IAAI,CAAC,WAA6C,CAAC;YACvE,eAAe,CAAC,IAAI,CAAC,OAAsC,EAAE,WAAW,CAAC,CAAC;YAE1E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAsC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,UAA6B,CAAC;YAEtD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAClE,MAAM,QAAQ,GACZ,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAEtF,OAAO,EAAE,CACP,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAA0B,CAC7F,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAC3B,gBAAgB,EAChB,kSAAkS,EAClS;QACE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC3F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACpG,gBAAgB,EAAE,CAAC;aAChB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACP,8HAA8H,CAC/H;KACJ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAA2B;gBAC1C,IAAI,EAAE,IAAI,CAAC,IAA0B;gBACrC,WAAW,EAAE,IAAI,CAAC,WAAiC;gBACnD,gBAAgB,EAAE,IAAI,CAAC,gBAAuC;aAC/D,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1F,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC;KAC7E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,OAAoC,EACpC,WAA2C;IAE3C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,WAAW,CAAC,wBAAwB,EAAE,oCAAoC,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,WAAW,CAAC,6BAA6B,EAAE,wCAAwC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,gBAAgB,GAAG,OAAO,IAAI,eAAe,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,WAAW,CACnB,qBAAqB,EACrB,mDAAmD,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/index.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,17 @@
5
5
  */
6
6
  import type { LineDiffLite, PageXmlRefLite, RawDelta, SpecSnapshot } from '../../../shared/entities.js';
7
7
  import type { EntitySnapshot, MCPReleaseDiff, MCPSpecSnapshot, ProjectionOpts } from './types.js';
8
- export declare function projectReleaseDiff(raw: RawDelta, fromSnap: SpecSnapshot | null, toSnap: SpecSnapshot, opts: ProjectionOpts): MCPReleaseDiff;
9
- export declare function projectSpecSnapshot(raw: SpecSnapshot, opts: ProjectionOpts): MCPSpecSnapshot;
8
+ export declare function projectReleaseDiff(raw: RawDelta, fromSnap: SpecSnapshot | null, toSnap: SpecSnapshot, opts: ProjectionOpts, options?: {
9
+ summaryOnly?: boolean;
10
+ limit?: number;
11
+ offset?: number;
12
+ }): MCPReleaseDiff;
13
+ /** MCP-only default window size for `release_show` / `release_list` (M17). */
14
+ export declare const DEFAULT_PAGE_LIMIT = 5;
15
+ export declare function projectSpecSnapshot(raw: SpecSnapshot, opts: ProjectionOpts, pagination?: {
16
+ limit?: number;
17
+ offset?: number;
18
+ }): MCPSpecSnapshot;
10
19
  export declare function escapeInlineTags(s: string): string;
11
20
  /**
12
21
  * Project structural `LineDiffLite` (M02 `m02pvdif1`) into a single markdown
@@ -11,16 +11,34 @@ const ENTITY_TYPES = new Set([
11
11
  'ui-view',
12
12
  'ac',
13
13
  ]);
14
- export function projectReleaseDiff(raw, fromSnap, toSnap, opts) {
15
- const out = { from: raw.from, to: raw.to };
14
+ export function projectReleaseDiff(raw, fromSnap, toSnap, opts, options) {
15
+ const summaryOnly = options?.summaryOnly ?? false;
16
+ const limit = options?.limit ?? DEFAULT_PAGE_LIMIT;
17
+ const offset = options?.offset ?? 0;
18
+ const out = { from: raw.from, to: raw.to, total: {} };
19
+ // Compute the FULL filtered delta first, record `total` on it, THEN branch:
20
+ // light (`summaryOnly`) strips to identifiers and ignores the window; heavy
21
+ // slices `entities[]`/`pages[]` independently by the same `limit`/`offset`.
16
22
  if (opts.include.includes('entities')) {
17
- out.entities = projectEntities(raw.entities, fromSnap, toSnap, opts.entityTypes);
23
+ const full = projectEntities(raw.entities, fromSnap, toSnap, opts.entityTypes);
24
+ out.total.entities = full.length;
25
+ out.entities = summaryOnly ? full.map(toEntityLight) : full.slice(offset, offset + limit);
18
26
  }
19
27
  if (opts.include.includes('pages')) {
20
- out.pages = projectPages(raw.pages, fromSnap, toSnap);
28
+ const full = projectPages(raw.pages, fromSnap, toSnap);
29
+ out.total.pages = full.length;
30
+ out.pages = summaryOnly ? full.map(toPageLight) : full.slice(offset, offset + limit);
21
31
  }
22
32
  return out;
23
33
  }
34
+ /** Strip a heavy entity delta to its light identifier form (`summaryOnly: true`). */
35
+ function toEntityLight(e) {
36
+ return { type: e.type, slug: e.slug, name: e.name, op: e.op };
37
+ }
38
+ /** Strip a heavy page delta to its light identifier form (`summaryOnly: true`). */
39
+ function toPageLight(p) {
40
+ return { path: p.path, op: p.op };
41
+ }
24
42
  function projectEntities(rawEntities, fromSnap, toSnap, entityTypes) {
25
43
  const fromMap = indexEntitiesByTypeSlug(fromSnap?.entities ?? []);
26
44
  const toMap = indexEntitiesByTypeSlug(toSnap.entities);
@@ -136,7 +154,11 @@ function projectPages(rawPages, fromSnap, toSnap) {
136
154
  }
137
155
  return out;
138
156
  }
139
- export function projectSpecSnapshot(raw, opts) {
157
+ /** MCP-only default window size for `release_show` / `release_list` (M17). */
158
+ export const DEFAULT_PAGE_LIMIT = 5;
159
+ export function projectSpecSnapshot(raw, opts, pagination) {
160
+ const limit = pagination?.limit ?? DEFAULT_PAGE_LIMIT;
161
+ const offset = pagination?.offset ?? 0;
140
162
  const out = {
141
163
  release: {
142
164
  id: raw.release.id,
@@ -145,9 +167,12 @@ export function projectSpecSnapshot(raw, opts) {
145
167
  created_by: raw.release.createdBy,
146
168
  created_at: raw.release.createdAt,
147
169
  },
170
+ total: {},
148
171
  };
172
+ // limit/offset apply independently to each list; `total` is the full count
173
+ // after include/entityTypes filtering but before the window is sliced.
149
174
  if (opts.include.includes('entities')) {
150
- out.entities = raw.entities
175
+ const entities = raw.entities
151
176
  .filter((e) => e.op !== 'delete')
152
177
  .filter((e) => !opts.entityTypes || opts.entityTypes.includes(e.type))
153
178
  .map((e) => ({
@@ -155,9 +180,13 @@ export function projectSpecSnapshot(raw, opts) {
155
180
  slug: e.slug,
156
181
  name: extractEntityName(e.data, e.slug),
157
182
  }));
183
+ out.total.entities = entities.length;
184
+ out.entities = entities.slice(offset, offset + limit);
158
185
  }
159
186
  if (opts.include.includes('pages')) {
160
- out.pages = raw.pages.filter((p) => p.op !== 'delete').map((p) => ({ path: p.path }));
187
+ const pages = raw.pages.filter((p) => p.op !== 'delete').map((p) => ({ path: p.path }));
188
+ out.total.pages = pages.length;
189
+ out.pages = pages.slice(offset, offset + limit);
161
190
  }
162
191
  return out;
163
192
  }