@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
@@ -0,0 +1,154 @@
1
+ /**
2
+ * `@inharness-ai/claude4spec/plugin-runtime/ui` — PUBLISHED Host UI Kit type
3
+ * surface (M34 / L12), the sibling subpath of `./plugin-runtime`.
4
+ *
5
+ * Mirrors the host UI-kit barrel (`src/client/host-ui-kit/index.ts`): the four
6
+ * `stable` Core components whose prop contracts are part of the versioned
7
+ * `hostApiVersion` surface, plus the `experimental` components (reachable, but
8
+ * OUTSIDE the version guarantee — their props may change without a major).
9
+ *
10
+ * Components are declared as `ComponentType<Props>` rather than re-exported from
11
+ * the live client modules: the real components drag `lucide-react` and the whole
12
+ * internal kit tree into emit, which would leak internal types (AC2). Prop
13
+ * shapes are the real contracts; the only deliberate loosening is icon props
14
+ * (`ComponentType<{ size? }>` instead of `LucideIcon`) so plugins need not
15
+ * depend on `lucide-react`. `published-surface.test.ts` asserts the real `stable`
16
+ * prop interfaces stay assignable to these published shapes (drift guard).
17
+ *
18
+ * `Tag` and `Stability` are dep-free and RE-EXPORTED from their canonical host
19
+ * modules (single source of truth).
20
+ */
21
+ import type { ComponentType, ReactNode, CSSProperties } from 'react';
22
+ export type { Tag } from '../shared/entities.js';
23
+ export type { Stability } from '../shared/plugin-host/ui-kit-surface.js';
24
+ export interface DetailBreadcrumb {
25
+ label: ReactNode;
26
+ onClick?: () => void;
27
+ }
28
+ export interface DetailPanelShellProps {
29
+ breadcrumb: DetailBreadcrumb[];
30
+ actions?: ReactNode;
31
+ children: ReactNode;
32
+ }
33
+ export declare const DetailPanelShell: ComponentType<DetailPanelShellProps>;
34
+ export interface FieldGridProps {
35
+ children: ReactNode;
36
+ maxWidth?: number;
37
+ }
38
+ export declare const FieldGrid: ComponentType<FieldGridProps>;
39
+ export interface FieldRowProps {
40
+ label: ReactNode;
41
+ children: ReactNode;
42
+ align?: 'center' | 'start';
43
+ }
44
+ export declare const FieldRow: ComponentType<FieldRowProps>;
45
+ export interface EntityListHeaderProps {
46
+ /** Lucide-style icon component; loosely typed to avoid a `lucide-react` dep. */
47
+ icon?: ComponentType<{
48
+ size?: number | string;
49
+ }>;
50
+ title: string;
51
+ count?: number;
52
+ search?: string;
53
+ onSearchChange?: (q: string) => void;
54
+ searchPlaceholder?: string;
55
+ filters?: ReactNode;
56
+ actions?: ReactNode;
57
+ }
58
+ export declare const EntityListHeader: ComponentType<EntityListHeaderProps>;
59
+ import type { Tag } from '../shared/entities.js';
60
+ export interface EntityListLayoutProps {
61
+ header?: ReactNode;
62
+ children: ReactNode;
63
+ }
64
+ export declare const EntityListLayout: ComponentType<EntityListLayoutProps>;
65
+ export interface PaginationProps {
66
+ page: number;
67
+ pageCount: number;
68
+ onPageChange: (page: number) => void;
69
+ }
70
+ export declare const Pagination: ComponentType<PaginationProps>;
71
+ export interface EmptyStateProps {
72
+ title: string;
73
+ hint?: ReactNode;
74
+ action?: ReactNode;
75
+ }
76
+ export declare const EmptyState: ComponentType<EmptyStateProps>;
77
+ export interface EntityListRowProps {
78
+ leading: ReactNode;
79
+ onClick: () => void;
80
+ /** Tag slugs to render as chips; resolved through `tagLookup`. */
81
+ tags?: string[];
82
+ tagLookup: Map<string, Tag>;
83
+ trailing?: ReactNode;
84
+ align?: 'center' | 'start';
85
+ style?: CSSProperties;
86
+ children: ReactNode;
87
+ }
88
+ export declare const EntityListRow: ComponentType<EntityListRowProps>;
89
+ export interface TagBarProps {
90
+ tags: Tag[];
91
+ tagFilter: string[];
92
+ onTagToggle: (slug: string) => void;
93
+ tagMode: 'and' | 'or';
94
+ onToggleMode: () => void;
95
+ onClear: () => void;
96
+ }
97
+ export declare const TagFilterBar: ComponentType<TagBarProps>;
98
+ export type ActionButtonVariant = 'primary' | 'secondary' | 'ghost';
99
+ export interface ActionButtonProps {
100
+ label: ReactNode;
101
+ onClick: () => void;
102
+ icon?: ReactNode;
103
+ variant?: ActionButtonVariant;
104
+ disabled?: boolean;
105
+ title?: string;
106
+ }
107
+ export declare const ActionButton: ComponentType<ActionButtonProps>;
108
+ export interface BadgeProps {
109
+ label: ReactNode;
110
+ color?: string;
111
+ active?: boolean;
112
+ small?: boolean;
113
+ onClick?: () => void;
114
+ onRemove?: () => void;
115
+ }
116
+ export declare const Badge: ComponentType<BadgeProps>;
117
+ export interface LoadingStateProps {
118
+ width?: number | string;
119
+ height?: number | string;
120
+ radius?: number | string;
121
+ circle?: boolean;
122
+ lines?: number;
123
+ className?: string;
124
+ style?: CSSProperties;
125
+ }
126
+ export declare const LoadingState: ComponentType<LoadingStateProps>;
127
+ export interface FormFieldProps {
128
+ label: ReactNode;
129
+ error?: string | null;
130
+ children: ReactNode;
131
+ }
132
+ export declare const FormField: ComponentType<FormFieldProps>;
133
+ export interface InlineEditFieldProps {
134
+ value: string;
135
+ onCommit: (next: string) => void;
136
+ placeholder?: string;
137
+ mono?: boolean;
138
+ }
139
+ export declare const InlineEditField: ComponentType<InlineEditFieldProps>;
140
+ export type HostTokenName = '--c-bg' | '--c-panel' | '--c-card' | '--c-ink' | '--c-muted' | '--c-subtle' | '--c-hair' | '--c-hair-strong' | '--c-accent' | '--c-accent-soft' | '--c-accent-ink' | '--c-yellow' | '--c-yellow-ink' | '--c-green' | '--c-green-soft' | '--c-blue' | '--c-blue-soft' | '--c-purple' | '--c-purple-soft' | '--c-red' | '--c-red-soft';
141
+ export declare const HOST_TOKEN_NAMES: readonly HostTokenName[];
142
+ export declare function readHostTokens(): Record<HostTokenName, string>;
143
+ export declare function useHostTokens(): Record<HostTokenName, string>;
144
+ export type WithStability<C> = C & {
145
+ stability: import('../shared/plugin-host/ui-kit-surface.js').Stability;
146
+ };
147
+ export type UiKitGroup = 'core' | 'list' | 'actions' | 'form';
148
+ export interface UiKitComponentEntry {
149
+ name: string;
150
+ group: UiKitGroup;
151
+ stability: import('../shared/plugin-host/ui-kit-surface.js').Stability;
152
+ }
153
+ export declare const UI_KIT_CATALOG: readonly UiKitComponentEntry[];
154
+ export declare const STABLE_UI_KIT_COMPONENTS: readonly string[];
@@ -69,6 +69,18 @@ export interface Config {
69
69
  * `$schemaVersion` bump. Read per-action (hot-reload).
70
70
  */
71
71
  git?: GitSyncConfig;
72
+ /**
73
+ * M33 phase 3: namespace for settings contributed by plugins
74
+ * (`contributes.settings`). Each loaded plugin with settings gets its own
75
+ * sub-object keyed by `manifest.name` (e.g. `"@c4s/plugin-foo"`), isolated
76
+ * from core fields (`entities` / `agent` / `git` / paths). Absent/missing ⇒
77
+ * `{}`. Additive — no `$schemaVersion` bump; projects without
78
+ * settings-bearing plugins keep prior behaviour. PATCH deep-merges per
79
+ * `plugins[<name>]` (precedent: `agent` / `git`), so writing one field
80
+ * preserves the plugin's other fields and other namespaces. Values persist
81
+ * even when the plugin is absent/inactive (user data preserved).
82
+ */
83
+ plugins?: Record<string, Record<string, unknown>>;
72
84
  }
73
85
  export interface GitSyncConfig {
74
86
  /** When on, creating a release best-effort `git commit`s pagesDir + config.json. */
@@ -213,6 +213,23 @@ function validate(raw) {
213
213
  }
214
214
  out.git = git;
215
215
  }
216
+ // M33 phase 3: `plugins` is a namespace of opaque per-plugin sub-objects. We
217
+ // validate only the shape (object-of-objects); the field semantics belong to
218
+ // each plugin's `contributes.settings` descriptor, not core config.
219
+ if ('plugins' in r) {
220
+ const p = r.plugins;
221
+ if (p === null || typeof p !== 'object' || Array.isArray(p)) {
222
+ throw typeError('plugins', 'object', p);
223
+ }
224
+ const plugins = {};
225
+ for (const [name, sub] of Object.entries(p)) {
226
+ if (sub === null || typeof sub !== 'object' || Array.isArray(sub)) {
227
+ throw typeError(`plugins.${name}`, 'object', sub);
228
+ }
229
+ plugins[name] = sub;
230
+ }
231
+ out.plugins = plugins;
232
+ }
216
233
  return out;
217
234
  }
218
235
  function atomicWrite(filePath, data) {
@@ -346,6 +363,15 @@ export function writeConfig(cwd, partial) {
346
363
  if (validated.agent) {
347
364
  merged.agent = { ...current.agent, ...validated.agent };
348
365
  }
366
+ // M33 phase 3: nested deep-merge per `plugins[<name>]` — writing one field of
367
+ // one plugin preserves that plugin's other fields AND other plugins'
368
+ // namespaces (extends the agent/git deep-merge precedent one level deeper).
369
+ if (validated.plugins) {
370
+ merged.plugins = { ...current.plugins };
371
+ for (const [name, fields] of Object.entries(validated.plugins)) {
372
+ merged.plugins[name] = { ...current.plugins?.[name], ...fields };
373
+ }
374
+ }
349
375
  atomicWrite(file, JSON.stringify(merged, null, 2) + '\n');
350
376
  return merged;
351
377
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * M33 — reusable plugin manifest fixtures for tests and the local smoke
3
+ * test. `plugin-foo` is an entity-less plugin exercising `contributes.settings`
4
+ * + `contributes.commands` + the required `onUnregister`; `plugin-legacy`
5
+ * targets a different major Host API (`^2.0.0`) so it is reported `incompatible`
6
+ * under the current `1.0.0` host (drives the `c4s plugins doctor` / `/_meta/plugins`
7
+ * paths). Kept dep-free so they double as the body of a real ESM overlay
8
+ * package when emitted to `.claude4spec/plugins/<pkg>/`.
9
+ */
10
+ import type { PluginManifest } from '../../../../shared/plugin-host/manifest.js';
11
+ /** Entity-less plugin with settings + commands. `onUnregister` overridable so a test can spy on teardown. */
12
+ export declare function fooManifest(onUnregister?: () => void): PluginManifest;
13
+ /** Plugin built against a different major Host API (`^2.0.0`) — incompatible under 1.0.0. */
14
+ export declare function legacyManifest(onUnregister?: () => void): PluginManifest;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * M33 — reusable plugin manifest fixtures for tests and the local smoke
3
+ * test. `plugin-foo` is an entity-less plugin exercising `contributes.settings`
4
+ * + `contributes.commands` + the required `onUnregister`; `plugin-legacy`
5
+ * targets a different major Host API (`^2.0.0`) so it is reported `incompatible`
6
+ * under the current `1.0.0` host (drives the `c4s plugins doctor` / `/_meta/plugins`
7
+ * paths). Kept dep-free so they double as the body of a real ESM overlay
8
+ * package when emitted to `.claude4spec/plugins/<pkg>/`.
9
+ */
10
+ /** Entity-less plugin with settings + commands. `onUnregister` overridable so a test can spy on teardown. */
11
+ export function fooManifest(onUnregister = () => { }) {
12
+ return {
13
+ name: '@c4s/plugin-foo',
14
+ version: '0.1.0',
15
+ hostApiVersion: '^1.0.0',
16
+ onUnregister,
17
+ contributes: {
18
+ settings: [
19
+ {
20
+ key: 'enableBadge',
21
+ label: 'Enable badge',
22
+ control: 'toggle',
23
+ kind: 'hot-reload',
24
+ default: true,
25
+ help: 'Show the foo badge in the sidebar.',
26
+ },
27
+ {
28
+ key: 'apiBase',
29
+ label: 'API base URL',
30
+ control: 'text',
31
+ kind: 'executive',
32
+ default: 'https://example.test',
33
+ },
34
+ ],
35
+ commands: [
36
+ {
37
+ name: 'foo-insert',
38
+ trigger: 'foo',
39
+ label: 'Insert Foo',
40
+ popoverKind: 'foo',
41
+ },
42
+ ],
43
+ },
44
+ };
45
+ }
46
+ /** Plugin built against a different major Host API (`^2.0.0`) — incompatible under 1.0.0. */
47
+ export function legacyManifest(onUnregister = () => { }) {
48
+ return {
49
+ name: '@c4s/plugin-legacy',
50
+ version: '0.9.0',
51
+ hostApiVersion: '^2.0.0',
52
+ onUnregister,
53
+ contributes: {},
54
+ };
55
+ }
56
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../../src/server/core/plugin-host/__fixtures__/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,6GAA6G;AAC7G,MAAM,UAAU,WAAW,CAAC,eAA2B,GAAG,EAAE,GAAE,CAAC;IAC7D,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,QAAQ;QACxB,YAAY;QACZ,WAAW,EAAE;YACX,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,aAAa;oBAClB,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,QAAQ;oBACjB,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,oCAAoC;iBAC3C;gBACD;oBACE,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,MAAM;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,sBAAsB;iBAChC;aACF;YACD,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,YAAY;oBACnB,WAAW,EAAE,KAAK;iBACnB;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,eAA2B,GAAG,EAAE,GAAE,CAAC;IAChE,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,QAAQ;QACxB,YAAY;QACZ,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * M33 — base-layer package records, shared by the process-global
3
+ * `/api/_meta/plugins` route AND the server-free `c4s plugins` CLI so the two
4
+ * never diverge. Kept free of express (the CLI must not pull the router in).
5
+ *
6
+ * Produces a synthetic `@c4s/builtin` record for the in-host built-in types,
7
+ * followed by the workspace/npm loader records. `pluginRegistry` here is the
8
+ * BASE registry — never a per-project host — so built-in detection excludes
9
+ * overlay types.
10
+ */
11
+ import type { PluginRegistry } from './types.js';
12
+ import type { PluginLoadRecord } from './loader.js';
13
+ export declare const SYNTHETIC_BUILTIN_PACKAGE = "@c4s/builtin";
14
+ export declare function buildBasePluginPackages(pluginRegistry: PluginRegistry, pluginRecords: PluginLoadRecord[]): PluginLoadRecord[];
@@ -0,0 +1,26 @@
1
+ /**
2
+ * M33 — base-layer package records, shared by the process-global
3
+ * `/api/_meta/plugins` route AND the server-free `c4s plugins` CLI so the two
4
+ * never diverge. Kept free of express (the CLI must not pull the router in).
5
+ *
6
+ * Produces a synthetic `@c4s/builtin` record for the in-host built-in types,
7
+ * followed by the workspace/npm loader records. `pluginRegistry` here is the
8
+ * BASE registry — never a per-project host — so built-in detection excludes
9
+ * overlay types.
10
+ */
11
+ export const SYNTHETIC_BUILTIN_PACKAGE = '@c4s/builtin';
12
+ export function buildBasePluginPackages(pluginRegistry, pluginRecords) {
13
+ const loadedTypes = new Set(pluginRecords.flatMap((r) => (r.status === 'loaded' ? (r.contributedTypes ?? []) : [])));
14
+ const builtinTypes = pluginRegistry
15
+ .listAvailable()
16
+ .map((m) => m.type)
17
+ .filter((t) => !loadedTypes.has(t));
18
+ const builtinRecord = {
19
+ package: SYNTHETIC_BUILTIN_PACKAGE,
20
+ status: 'loaded',
21
+ layer: 'base',
22
+ contributedTypes: builtinTypes,
23
+ };
24
+ return [builtinRecord, ...pluginRecords.map((r) => ({ ...r, layer: r.layer ?? 'base' }))];
25
+ }
26
+ //# sourceMappingURL=base-packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-packages.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/base-packages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAExD,MAAM,UAAU,uBAAuB,CACrC,cAA8B,EAC9B,aAAiC;IAEjC,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACxF,CAAC;IACF,MAAM,YAAY,GAAG,cAAc;SAChC,aAAa,EAAE;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,aAAa,GAAqB;QACtC,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,MAAM;QACb,gBAAgB,EAAE,YAAY;KAC/B,CAAC;IACF,OAAO,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * M33 — shared dynamic-import cache-bust suffix.
3
+ *
4
+ * Node caches ESM modules per-URL, so re-importing the same `file://` href after
5
+ * an edit returns the STALE module. A `?v=<contentHash>` query yields a fresh URL
6
+ * exactly when the bytes change (and the cached one when they don't) — making a
7
+ * post-invalidation rebuild pick up edited plugin code without a restart. Used by
8
+ * both the workspace loader (base) and the project-local overlay loader.
9
+ */
10
+ export declare function entryCacheBust(entry: string): string;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * M33 — shared dynamic-import cache-bust suffix.
3
+ *
4
+ * Node caches ESM modules per-URL, so re-importing the same `file://` href after
5
+ * an edit returns the STALE module. A `?v=<contentHash>` query yields a fresh URL
6
+ * exactly when the bytes change (and the cached one when they don't) — making a
7
+ * post-invalidation rebuild pick up edited plugin code without a restart. Used by
8
+ * both the workspace loader (base) and the project-local overlay loader.
9
+ */
10
+ import crypto from 'node:crypto';
11
+ import fs from 'node:fs';
12
+ export function entryCacheBust(entry) {
13
+ try {
14
+ const hash = crypto.createHash('sha1').update(fs.readFileSync(entry)).digest('hex').slice(0, 12);
15
+ return `?v=${hash}`;
16
+ }
17
+ catch {
18
+ return '';
19
+ }
20
+ }
21
+ //# sourceMappingURL=cache-bust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-bust.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/cache-bust.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjG,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1,8 +1,13 @@
1
1
  import { SerializationEngine } from './serialization-engine.js';
2
2
  /**
3
- * M31: per-process L9 engine for the read-only CLI (`c4s`, `c4s-mcp`). The
3
+ * M31/M33: per-process L9 engine for the read-only CLI (`c4s`, `c4s-mcp`). The
4
4
  * CLI never applies a project's `entities` whitelist (parity with the
5
5
  * pre-split singleton, whose `consolidate` was never invoked in CLI
6
6
  * processes — all plugins active).
7
+ *
8
+ * Build the engine after running the shared bootstrap loader, so
9
+ * workspace-declared plugin packages contribute their entity types to L9
10
+ * serialization identically to the server (no separate CLI registration path).
11
+ * `packageNames` empty ⇒ built-ins only.
7
12
  */
8
- export declare function buildCliSerializationEngine(): SerializationEngine;
13
+ export declare function buildCliSerializationEngineAsync(packageNames: string[]): Promise<SerializationEngine>;
@@ -2,15 +2,23 @@ import { SerializationEngine } from './serialization-engine.js';
2
2
  import { PluginRegistryImpl } from './registry.js';
3
3
  import { registerAllPlugins } from '../../serialization/registerAll.js';
4
4
  import { sectionSerializer } from '../../serialization/serializers/section.js';
5
+ import { loadWorkspacePlugins } from './loader.js';
5
6
  /**
6
- * M31: per-process L9 engine for the read-only CLI (`c4s`, `c4s-mcp`). The
7
+ * M31/M33: per-process L9 engine for the read-only CLI (`c4s`, `c4s-mcp`). The
7
8
  * CLI never applies a project's `entities` whitelist (parity with the
8
9
  * pre-split singleton, whose `consolidate` was never invoked in CLI
9
10
  * processes — all plugins active).
11
+ *
12
+ * Build the engine after running the shared bootstrap loader, so
13
+ * workspace-declared plugin packages contribute their entity types to L9
14
+ * serialization identically to the server (no separate CLI registration path).
15
+ * `packageNames` empty ⇒ built-ins only.
10
16
  */
11
- export function buildCliSerializationEngine() {
17
+ export async function buildCliSerializationEngineAsync(packageNames) {
12
18
  const pluginRegistry = new PluginRegistryImpl();
13
19
  registerAllPlugins(pluginRegistry);
14
- return new SerializationEngine(pluginRegistry.consolidate(undefined), sectionSerializer);
20
+ await loadWorkspacePlugins(pluginRegistry, packageNames);
21
+ // CLI applies no whitelist and no project-local overlay (read-only parity).
22
+ return new SerializationEngine(pluginRegistry.consolidate({}), sectionSerializer);
15
23
  }
16
24
  //# sourceMappingURL=cli-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-engine.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/cli-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAChD,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,IAAI,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAC3F,CAAC"}
1
+ {"version":3,"file":"cli-engine.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/cli-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,YAAsB;IAEtB,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAChD,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,oBAAoB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACzD,4EAA4E;IAC5E,OAAO,IAAI,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACpF,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * M33 — server-free plugin diagnostics for the `c4s plugins` CLI.
3
+ *
4
+ * Runs the SAME bootstrap loader as the server (base packages) + the project's
5
+ * trusted overlay, so `c4s plugins list|status|doctor` report the identical
6
+ * loader state as `GET /api/_meta/plugins` without a running server. Kept free
7
+ * of express so the CLI bundle stays light.
8
+ */
9
+ import { type PluginLoadRecord } from './loader.js';
10
+ export interface PluginDiagnostics {
11
+ hostApiVersion: string;
12
+ /** Overlay trust state for the resolved project (`undefined` = undecided). */
13
+ trust: boolean | undefined;
14
+ packages: PluginLoadRecord[];
15
+ }
16
+ /**
17
+ * Collect base + overlay loader records for the resolved project. Mirrors the
18
+ * server's per-project `/_meta/plugins` assembly (base ∪ trust-gated overlay).
19
+ */
20
+ export declare function collectPluginDiagnostics(opts: {
21
+ project?: string;
22
+ workspace?: string;
23
+ }): Promise<PluginDiagnostics>;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * M33 — server-free plugin diagnostics for the `c4s plugins` CLI.
3
+ *
4
+ * Runs the SAME bootstrap loader as the server (base packages) + the project's
5
+ * trusted overlay, so `c4s plugins list|status|doctor` report the identical
6
+ * loader state as `GET /api/_meta/plugins` without a running server. Kept free
7
+ * of express so the CLI bundle stays light.
8
+ */
9
+ import path from 'node:path';
10
+ import { HOST_API_VERSION } from '../../../shared/plugin-host/manifest.js';
11
+ import { PluginRegistryImpl } from './registry.js';
12
+ import { registerAllPlugins } from '../../serialization/registerAll.js';
13
+ import { loadWorkspacePlugins } from './loader.js';
14
+ import { buildBasePluginPackages } from './base-packages.js';
15
+ import { enumerateOverlayPackages, loadProjectOverlay } from './overlay-loader.js';
16
+ import { WorkspaceRegistry } from '../../workspace/registry.js';
17
+ import { resolveWorkspaceProject } from '../../../core/workspace/resolve.js';
18
+ /**
19
+ * Collect base + overlay loader records for the resolved project. Mirrors the
20
+ * server's per-project `/_meta/plugins` assembly (base ∪ trust-gated overlay).
21
+ */
22
+ export async function collectPluginDiagnostics(opts) {
23
+ const resolved = resolveWorkspaceProject(opts);
24
+ const registry = new PluginRegistryImpl();
25
+ registerAllPlugins(registry);
26
+ const baseLoad = await loadWorkspacePlugins(registry, resolved.pluginPackages);
27
+ const base = buildBasePluginPackages(registry, baseLoad.records);
28
+ const wsRegistry = new WorkspaceRegistry();
29
+ const workspace = wsRegistry.getWorkspace(resolved.workspaceName);
30
+ const trust = workspace ? wsRegistry.getProjectTrust(workspace, resolved.projectId) : undefined;
31
+ const localPackages = enumerateOverlayPackages(resolved.projectDir);
32
+ let overlayRecords = [];
33
+ if (localPackages.length > 0 && trust === true) {
34
+ overlayRecords = (await loadProjectOverlay(resolved.projectDir)).records;
35
+ }
36
+ else if (localPackages.length > 0) {
37
+ overlayRecords = localPackages.map((pkg) => ({
38
+ package: pkg,
39
+ status: 'skipped',
40
+ code: 'PLUGIN_PROJECT_UNTRUSTED',
41
+ reason: 'project plugins not trusted on this machine (trustProjectPlugins)',
42
+ layer: 'overlay',
43
+ trust: 'untrusted',
44
+ origin: path.join('.claude4spec', 'plugins', pkg),
45
+ }));
46
+ }
47
+ return { hostApiVersion: HOST_API_VERSION, trust, packages: [...base, ...overlayRecords] };
48
+ }
49
+ //# sourceMappingURL=cli-plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-plugins.js","sourceRoot":"","sources":["../../../../src/server/core/plugin-host/cli-plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAyB,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAS7E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAG9C;IACC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC1C,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhG,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpE,IAAI,cAAc,GAAuB,EAAE,CAAC;IAC5C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC/C,cAAc,GAAG,CAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,CAAC;SAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,SAAkB;YAC1B,IAAI,EAAE,0BAAmC;YACzC,MAAM,EAAE,mEAAmE;YAC3E,KAAK,EAAE,SAAkB;YACzB,KAAK,EAAE,WAAoB;YAC3B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,GAAG,CAAC;SAClD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;AAC7F,CAAC"}
@@ -1,8 +1,45 @@
1
1
  /**
2
- * Cross-cutting routes owned by the plugin host (M13). Currently exposes the
3
- * activation diagnostic endpoint. Phase 4 moves /api/entities/:type/:slug/versions
4
- * here too.
2
+ * Cross-cutting routes owned by the plugin host (M13), mounted on the PER-PROJECT
3
+ * router (so paths resolve under `/api/projects/:id`). Provides overlay-aware
4
+ * diagnostics + the machine-local trust gate:
5
+ *
6
+ * GET /_meta/entities → activation partition (active/inactive/unknown)
7
+ * GET /_meta/plugins → base ∪ overlay package diagnostics + shadow report
8
+ * POST /trust-plugins → persist trustProjectPlugins, trigger context rebuild
5
9
  */
6
10
  import { Router } from 'express';
7
11
  import type { PluginHost } from './types.js';
8
- export declare function pluginHostRouter(host: PluginHost): Router;
12
+ import type { PluginLoadRecord } from './loader.js';
13
+ import type { WorkspaceRegistry } from '../../workspace/registry.js';
14
+ import type { WorkspaceRecord } from '../../workspace/types.js';
15
+ /** One shadowed type with both layers' origins (cross-layer collision). */
16
+ export interface ShadowedReportEntry {
17
+ type: string;
18
+ overlayOrigin: string;
19
+ baseOrigin: string;
20
+ }
21
+ /** Per-project `/_meta/plugins` payload (extends the process-global shape). */
22
+ export interface ProjectPluginsMetaResponse {
23
+ hostApiVersion: string;
24
+ /** True when `<cwd>/.claude4spec/plugins/` ships at least one package. */
25
+ localPluginsPresent: boolean;
26
+ /** Machine-local trust decision: undefined = undecided (prompt). */
27
+ trust: boolean | undefined;
28
+ packages: PluginLoadRecord[];
29
+ shadowed: ShadowedReportEntry[];
30
+ }
31
+ export interface PluginHostRouterDeps {
32
+ host: PluginHost;
33
+ registry: WorkspaceRegistry;
34
+ workspace: WorkspaceRecord;
35
+ projectId: string;
36
+ /** Base-layer package records (synthetic builtin + workspace/npm). */
37
+ basePackages: PluginLoadRecord[];
38
+ /** Overlay-layer package records for THIS project (loaded or untrusted-skipped). */
39
+ overlayRecords: PluginLoadRecord[];
40
+ localPluginsPresent: boolean;
41
+ trust: boolean | undefined;
42
+ /** M31 cache-invalidation hook — fired after a trust change to rebuild the context. */
43
+ onContextConfigChanged?: () => void;
44
+ }
45
+ export declare function pluginHostRouter(deps: PluginHostRouterDeps): Router;