wicked-crew 0.7.39 → 0.7.45

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 (380) hide show
  1. package/dist/api/audit.d.ts +3 -0
  2. package/dist/api/audit.d.ts.map +1 -1
  3. package/dist/api/audit.js +2 -0
  4. package/dist/api/audit.js.map +1 -1
  5. package/dist/api/capture.d.ts +149 -0
  6. package/dist/api/capture.d.ts.map +1 -0
  7. package/dist/api/capture.js +330 -0
  8. package/dist/api/capture.js.map +1 -0
  9. package/dist/api/chat-citations.d.ts +174 -0
  10. package/dist/api/chat-citations.d.ts.map +1 -0
  11. package/dist/api/chat-citations.js +528 -0
  12. package/dist/api/chat-citations.js.map +1 -0
  13. package/dist/api/chat-scope.d.ts +37 -1
  14. package/dist/api/chat-scope.d.ts.map +1 -1
  15. package/dist/api/chat-scope.js +131 -7
  16. package/dist/api/chat-scope.js.map +1 -1
  17. package/dist/api/chat-transcripts.d.ts +20 -1
  18. package/dist/api/chat-transcripts.d.ts.map +1 -1
  19. package/dist/api/chat-transcripts.js +29 -0
  20. package/dist/api/chat-transcripts.js.map +1 -1
  21. package/dist/api/delivery-cache.d.ts +2 -2
  22. package/dist/api/delivery-freeze.d.ts +66 -0
  23. package/dist/api/delivery-freeze.d.ts.map +1 -0
  24. package/dist/api/delivery-freeze.js +104 -0
  25. package/dist/api/delivery-freeze.js.map +1 -0
  26. package/dist/api/delivery-index.d.ts +53 -9
  27. package/dist/api/delivery-index.d.ts.map +1 -1
  28. package/dist/api/delivery-index.js +115 -22
  29. package/dist/api/delivery-index.js.map +1 -1
  30. package/dist/api/demo.d.ts +90 -0
  31. package/dist/api/demo.d.ts.map +1 -0
  32. package/dist/api/demo.js +492 -0
  33. package/dist/api/demo.js.map +1 -0
  34. package/dist/api/diagnostics.d.ts +64 -1
  35. package/dist/api/diagnostics.d.ts.map +1 -1
  36. package/dist/api/diagnostics.js +129 -1
  37. package/dist/api/diagnostics.js.map +1 -1
  38. package/dist/api/eval-sample.d.ts +6 -6
  39. package/dist/api/governance-steering.d.ts +2 -2
  40. package/dist/api/mcp.d.ts +282 -0
  41. package/dist/api/mcp.d.ts.map +1 -0
  42. package/dist/api/mcp.js +521 -0
  43. package/dist/api/mcp.js.map +1 -0
  44. package/dist/api/plan-schema.d.ts +56 -0
  45. package/dist/api/plan-schema.d.ts.map +1 -0
  46. package/dist/api/plan-schema.js +26 -0
  47. package/dist/api/plan-schema.js.map +1 -0
  48. package/dist/api/roster-standing.d.ts +15 -2
  49. package/dist/api/roster-standing.d.ts.map +1 -1
  50. package/dist/api/roster-standing.js +55 -3
  51. package/dist/api/roster-standing.js.map +1 -1
  52. package/dist/api/routes.d.ts +647 -59
  53. package/dist/api/routes.d.ts.map +1 -1
  54. package/dist/api/routes.js +906 -146
  55. package/dist/api/routes.js.map +1 -1
  56. package/dist/api/run-files.d.ts.map +1 -1
  57. package/dist/api/run-files.js +31 -2
  58. package/dist/api/run-files.js.map +1 -1
  59. package/dist/api/run-liveness.d.ts +41 -0
  60. package/dist/api/run-liveness.d.ts.map +1 -0
  61. package/dist/api/run-liveness.js +166 -0
  62. package/dist/api/run-liveness.js.map +1 -0
  63. package/dist/api/run-timing-index.d.ts +10 -0
  64. package/dist/api/run-timing-index.d.ts.map +1 -1
  65. package/dist/api/run-timing-index.js +24 -0
  66. package/dist/api/run-timing-index.js.map +1 -1
  67. package/dist/api/seat-health.d.ts.map +1 -1
  68. package/dist/api/seat-health.js +20 -4
  69. package/dist/api/seat-health.js.map +1 -1
  70. package/dist/api/seat-probe.d.ts +141 -0
  71. package/dist/api/seat-probe.d.ts.map +1 -0
  72. package/dist/api/seat-probe.js +257 -0
  73. package/dist/api/seat-probe.js.map +1 -0
  74. package/dist/api/seat-record.d.ts +40 -0
  75. package/dist/api/seat-record.d.ts.map +1 -0
  76. package/dist/api/seat-record.js +218 -0
  77. package/dist/api/seat-record.js.map +1 -0
  78. package/dist/api/seat-signin.d.ts.map +1 -1
  79. package/dist/api/seat-signin.js +3 -1
  80. package/dist/api/seat-signin.js.map +1 -1
  81. package/dist/api/seat-standing.d.ts +24 -4
  82. package/dist/api/seat-standing.d.ts.map +1 -1
  83. package/dist/api/seat-standing.js +50 -3
  84. package/dist/api/seat-standing.js.map +1 -1
  85. package/dist/api/server.d.ts +34 -48
  86. package/dist/api/server.d.ts.map +1 -1
  87. package/dist/api/server.js +316 -116
  88. package/dist/api/server.js.map +1 -1
  89. package/dist/api/skills.d.ts +3 -1
  90. package/dist/api/skills.d.ts.map +1 -1
  91. package/dist/api/skills.js +7 -2
  92. package/dist/api/skills.js.map +1 -1
  93. package/dist/api/stall-watchdog.d.ts +34 -3
  94. package/dist/api/stall-watchdog.d.ts.map +1 -1
  95. package/dist/api/stall-watchdog.js +107 -8
  96. package/dist/api/stall-watchdog.js.map +1 -1
  97. package/dist/api/steering-landing.d.ts +6 -6
  98. package/dist/api/steering-landing.d.ts.map +1 -1
  99. package/dist/api/steering-landing.js +7 -9
  100. package/dist/api/steering-landing.js.map +1 -1
  101. package/dist/api/testing.d.ts +6 -4
  102. package/dist/api/testing.d.ts.map +1 -1
  103. package/dist/api/testing.js +82 -47
  104. package/dist/api/testing.js.map +1 -1
  105. package/dist/campaign/boot-resume.d.ts +34 -0
  106. package/dist/campaign/boot-resume.d.ts.map +1 -0
  107. package/dist/campaign/boot-resume.js +45 -0
  108. package/dist/campaign/boot-resume.js.map +1 -0
  109. package/dist/campaigns/rollup.d.ts +4 -1
  110. package/dist/campaigns/rollup.d.ts.map +1 -1
  111. package/dist/campaigns/rollup.js +6 -1
  112. package/dist/campaigns/rollup.js.map +1 -1
  113. package/dist/campaigns/routes.d.ts +2 -2
  114. package/dist/cli/bearer.d.ts +27 -1
  115. package/dist/cli/bearer.d.ts.map +1 -1
  116. package/dist/cli/bearer.js +62 -2
  117. package/dist/cli/bearer.js.map +1 -1
  118. package/dist/cli/governance.d.ts +11 -0
  119. package/dist/cli/governance.d.ts.map +1 -1
  120. package/dist/cli/governance.js +8 -2
  121. package/dist/cli/governance.js.map +1 -1
  122. package/dist/cli/index.d.ts.map +1 -1
  123. package/dist/cli/index.js +140 -75
  124. package/dist/cli/index.js.map +1 -1
  125. package/dist/cli/mcp.d.ts +11 -0
  126. package/dist/cli/mcp.d.ts.map +1 -1
  127. package/dist/cli/mcp.js +40 -9
  128. package/dist/cli/mcp.js.map +1 -1
  129. package/dist/cli/service.d.ts +78 -0
  130. package/dist/cli/service.d.ts.map +1 -0
  131. package/dist/cli/service.js +334 -0
  132. package/dist/cli/service.js.map +1 -0
  133. package/dist/core/adapter.d.ts +247 -14
  134. package/dist/core/adapter.d.ts.map +1 -1
  135. package/dist/core/adapter.js +638 -161
  136. package/dist/core/adapter.js.map +1 -1
  137. package/dist/core/bridge-reaper.d.ts +4 -1
  138. package/dist/core/bridge-reaper.d.ts.map +1 -1
  139. package/dist/core/bridge-reaper.js +15 -1
  140. package/dist/core/bridge-reaper.js.map +1 -1
  141. package/dist/core/bus-notice.d.ts +27 -0
  142. package/dist/core/bus-notice.d.ts.map +1 -0
  143. package/dist/core/bus-notice.js +24 -0
  144. package/dist/core/bus-notice.js.map +1 -0
  145. package/dist/core/bus.d.ts +99 -0
  146. package/dist/core/bus.d.ts.map +1 -0
  147. package/dist/core/bus.js +176 -0
  148. package/dist/core/bus.js.map +1 -0
  149. package/dist/core/deliver-exclusions.d.ts +71 -0
  150. package/dist/core/deliver-exclusions.d.ts.map +1 -0
  151. package/dist/core/deliver-exclusions.js +110 -0
  152. package/dist/core/deliver-exclusions.js.map +1 -0
  153. package/dist/core/deliver-text.d.ts +61 -14
  154. package/dist/core/deliver-text.d.ts.map +1 -1
  155. package/dist/core/deliver-text.js +178 -30
  156. package/dist/core/deliver-text.js.map +1 -1
  157. package/dist/core/deliver-triage.d.ts +11 -2
  158. package/dist/core/deliver-triage.d.ts.map +1 -1
  159. package/dist/core/deliver-triage.js +19 -1
  160. package/dist/core/deliver-triage.js.map +1 -1
  161. package/dist/core/deliver.d.ts +161 -3
  162. package/dist/core/deliver.d.ts.map +1 -1
  163. package/dist/core/deliver.js +463 -25
  164. package/dist/core/deliver.js.map +1 -1
  165. package/dist/core/deliverable-floor.d.ts.map +1 -1
  166. package/dist/core/deliverable-floor.js +5 -7
  167. package/dist/core/deliverable-floor.js.map +1 -1
  168. package/dist/core/engine-bus.d.ts +40 -0
  169. package/dist/core/engine-bus.d.ts.map +1 -0
  170. package/dist/core/engine-bus.js +27 -0
  171. package/dist/core/engine-bus.js.map +1 -0
  172. package/dist/core/estate-mcp-client.d.ts +87 -5
  173. package/dist/core/estate-mcp-client.d.ts.map +1 -1
  174. package/dist/core/estate-mcp-client.js +90 -11
  175. package/dist/core/estate-mcp-client.js.map +1 -1
  176. package/dist/core/linked-issues.d.ts +46 -0
  177. package/dist/core/linked-issues.d.ts.map +1 -0
  178. package/dist/core/linked-issues.js +123 -0
  179. package/dist/core/linked-issues.js.map +1 -0
  180. package/dist/core/run-identity.d.ts +100 -0
  181. package/dist/core/run-identity.d.ts.map +1 -0
  182. package/dist/core/run-identity.js +178 -0
  183. package/dist/core/run-identity.js.map +1 -0
  184. package/dist/core/shutdown.d.ts +16 -0
  185. package/dist/core/shutdown.d.ts.map +1 -0
  186. package/dist/core/shutdown.js +39 -0
  187. package/dist/core/shutdown.js.map +1 -0
  188. package/dist/core/types.d.ts +15 -1
  189. package/dist/core/types.d.ts.map +1 -1
  190. package/dist/core/types.js +4 -0
  191. package/dist/core/types.js.map +1 -1
  192. package/dist/interactive/bridge-pool.d.ts +67 -3
  193. package/dist/interactive/bridge-pool.d.ts.map +1 -1
  194. package/dist/interactive/bridge-pool.js +129 -13
  195. package/dist/interactive/bridge-pool.js.map +1 -1
  196. package/dist/interactive/bridge-root.d.ts +9 -0
  197. package/dist/interactive/bridge-root.d.ts.map +1 -1
  198. package/dist/interactive/bridge-root.js +11 -4
  199. package/dist/interactive/bridge-root.js.map +1 -1
  200. package/dist/interactive/chat-events.d.ts +14 -9
  201. package/dist/interactive/chat-events.d.ts.map +1 -1
  202. package/dist/interactive/chat-events.js +55 -57
  203. package/dist/interactive/chat-events.js.map +1 -1
  204. package/dist/interactive/council-outcome.d.ts +1 -0
  205. package/dist/interactive/council-outcome.d.ts.map +1 -1
  206. package/dist/interactive/council-outcome.js +33 -0
  207. package/dist/interactive/council-outcome.js.map +1 -1
  208. package/dist/interactive/draft-events.d.ts +36 -17
  209. package/dist/interactive/draft-events.d.ts.map +1 -1
  210. package/dist/interactive/draft-events.js +121 -92
  211. package/dist/interactive/draft-events.js.map +1 -1
  212. package/dist/interactive/draft-skill.d.ts +59 -0
  213. package/dist/interactive/draft-skill.d.ts.map +1 -1
  214. package/dist/interactive/draft-skill.js +233 -0
  215. package/dist/interactive/draft-skill.js.map +1 -1
  216. package/dist/interactive/edit-events.d.ts +1 -14
  217. package/dist/interactive/edit-events.d.ts.map +1 -1
  218. package/dist/interactive/edit-events.js +37 -70
  219. package/dist/interactive/edit-events.js.map +1 -1
  220. package/dist/interactive/proxy-routes.d.ts +2 -2
  221. package/dist/interactive/proxy-routes.d.ts.map +1 -1
  222. package/dist/interactive/proxy-routes.js +4 -13
  223. package/dist/interactive/proxy-routes.js.map +1 -1
  224. package/dist/interactive/ws-relay.d.ts +9 -10
  225. package/dist/interactive/ws-relay.d.ts.map +1 -1
  226. package/dist/interactive/ws-relay.js +23 -50
  227. package/dist/interactive/ws-relay.js.map +1 -1
  228. package/dist/mcp/broker.d.ts +88 -0
  229. package/dist/mcp/broker.d.ts.map +1 -0
  230. package/dist/mcp/broker.js +307 -0
  231. package/dist/mcp/broker.js.map +1 -0
  232. package/dist/mcp/call-records.d.ts +61 -0
  233. package/dist/mcp/call-records.d.ts.map +1 -0
  234. package/dist/mcp/call-records.js +135 -0
  235. package/dist/mcp/call-records.js.map +1 -0
  236. package/dist/mcp/classify.d.ts +45 -0
  237. package/dist/mcp/classify.d.ts.map +1 -0
  238. package/dist/mcp/classify.js +83 -0
  239. package/dist/mcp/classify.js.map +1 -0
  240. package/dist/mcp/discovery.d.ts +24 -0
  241. package/dist/mcp/discovery.d.ts.map +1 -0
  242. package/dist/mcp/discovery.js +78 -0
  243. package/dist/mcp/discovery.js.map +1 -0
  244. package/dist/mcp/invoke.d.ts +36 -0
  245. package/dist/mcp/invoke.d.ts.map +1 -0
  246. package/dist/mcp/invoke.js +80 -0
  247. package/dist/mcp/invoke.js.map +1 -0
  248. package/dist/mcp/policies.d.ts +110 -0
  249. package/dist/mcp/policies.d.ts.map +1 -0
  250. package/dist/mcp/policies.js +400 -0
  251. package/dist/mcp/policies.js.map +1 -0
  252. package/dist/mcp/probe.d.ts +66 -0
  253. package/dist/mcp/probe.d.ts.map +1 -0
  254. package/dist/mcp/probe.js +116 -0
  255. package/dist/mcp/probe.js.map +1 -0
  256. package/dist/mcp/redact.d.ts +34 -0
  257. package/dist/mcp/redact.d.ts.map +1 -0
  258. package/dist/mcp/redact.js +84 -0
  259. package/dist/mcp/redact.js.map +1 -0
  260. package/dist/mcp/registry-store.d.ts +69 -0
  261. package/dist/mcp/registry-store.d.ts.map +1 -0
  262. package/dist/mcp/registry-store.js +82 -0
  263. package/dist/mcp/registry-store.js.map +1 -0
  264. package/dist/mcp/registry.d.ts +147 -0
  265. package/dist/mcp/registry.d.ts.map +1 -0
  266. package/dist/mcp/registry.js +509 -0
  267. package/dist/mcp/registry.js.map +1 -0
  268. package/dist/mcp/rest.d.ts +111 -0
  269. package/dist/mcp/rest.d.ts.map +1 -0
  270. package/dist/mcp/rest.js +606 -0
  271. package/dist/mcp/rest.js.map +1 -0
  272. package/dist/mcp/secrets.d.ts +66 -0
  273. package/dist/mcp/secrets.d.ts.map +1 -0
  274. package/dist/mcp/secrets.js +180 -0
  275. package/dist/mcp/secrets.js.map +1 -0
  276. package/dist/mcp/tool-list.d.ts +25 -0
  277. package/dist/mcp/tool-list.d.ts.map +1 -0
  278. package/dist/mcp/tool-list.js +62 -0
  279. package/dist/mcp/tool-list.js.map +1 -0
  280. package/dist/mcp/upstream-error.d.ts +12 -0
  281. package/dist/mcp/upstream-error.d.ts.map +1 -0
  282. package/dist/mcp/upstream-error.js +14 -0
  283. package/dist/mcp/upstream-error.js.map +1 -0
  284. package/dist/mcp/usage.d.ts +31 -0
  285. package/dist/mcp/usage.d.ts.map +1 -0
  286. package/dist/mcp/usage.js +159 -0
  287. package/dist/mcp/usage.js.map +1 -0
  288. package/dist/presets/routes.d.ts +53 -0
  289. package/dist/presets/routes.d.ts.map +1 -0
  290. package/dist/presets/routes.js +115 -0
  291. package/dist/presets/routes.js.map +1 -0
  292. package/dist/projects/activity.d.ts +6 -18
  293. package/dist/projects/activity.d.ts.map +1 -1
  294. package/dist/projects/activity.js +17 -60
  295. package/dist/projects/activity.js.map +1 -1
  296. package/dist/projects/events.d.ts +6 -5
  297. package/dist/projects/events.d.ts.map +1 -1
  298. package/dist/projects/events.js +33 -58
  299. package/dist/projects/events.js.map +1 -1
  300. package/dist/projects/graph.d.ts +11 -0
  301. package/dist/projects/graph.d.ts.map +1 -1
  302. package/dist/projects/graph.js +12 -0
  303. package/dist/projects/graph.js.map +1 -1
  304. package/dist/projects/routes.d.ts.map +1 -1
  305. package/dist/projects/routes.js +19 -0
  306. package/dist/projects/routes.js.map +1 -1
  307. package/dist/projects/state-home-preflight.d.ts.map +1 -1
  308. package/dist/projects/state-home-preflight.js +7 -0
  309. package/dist/projects/state-home-preflight.js.map +1 -1
  310. package/dist/projects/state-home-registry.d.ts.map +1 -1
  311. package/dist/projects/state-home-registry.js +9 -1
  312. package/dist/projects/state-home-registry.js.map +1 -1
  313. package/dist/qe/acceptance.d.ts +28 -28
  314. package/dist/qe/acceptance.d.ts.map +1 -1
  315. package/dist/qe/acceptance.js +60 -61
  316. package/dist/qe/acceptance.js.map +1 -1
  317. package/dist/qe/test-sets.d.ts +3 -5
  318. package/dist/qe/test-sets.d.ts.map +1 -1
  319. package/dist/qe/test-sets.js +5 -7
  320. package/dist/qe/test-sets.js.map +1 -1
  321. package/dist/skills/installed.d.ts +51 -0
  322. package/dist/skills/installed.d.ts.map +1 -0
  323. package/dist/skills/installed.js +46 -0
  324. package/dist/skills/installed.js.map +1 -0
  325. package/dist/skills/phase-skill-gaps.d.ts +108 -0
  326. package/dist/skills/phase-skill-gaps.d.ts.map +1 -0
  327. package/dist/skills/phase-skill-gaps.js +199 -0
  328. package/dist/skills/phase-skill-gaps.js.map +1 -0
  329. package/dist/skills/runtime.d.ts +1 -1
  330. package/dist/skills/runtime.d.ts.map +1 -1
  331. package/dist/skills/runtime.js +2 -1
  332. package/dist/skills/runtime.js.map +1 -1
  333. package/dist/standing-orders/evaluator.d.ts +113 -0
  334. package/dist/standing-orders/evaluator.d.ts.map +1 -0
  335. package/dist/standing-orders/evaluator.js +225 -0
  336. package/dist/standing-orders/evaluator.js.map +1 -0
  337. package/dist/standing-orders/history.d.ts +58 -0
  338. package/dist/standing-orders/history.d.ts.map +1 -0
  339. package/dist/standing-orders/history.js +117 -0
  340. package/dist/standing-orders/history.js.map +1 -0
  341. package/dist/standing-orders/parse.d.ts +19 -0
  342. package/dist/standing-orders/parse.d.ts.map +1 -0
  343. package/dist/standing-orders/parse.js +75 -0
  344. package/dist/standing-orders/parse.js.map +1 -0
  345. package/dist/standing-orders/routes.d.ts +180 -0
  346. package/dist/standing-orders/routes.d.ts.map +1 -0
  347. package/dist/standing-orders/routes.js +95 -0
  348. package/dist/standing-orders/routes.js.map +1 -0
  349. package/dist/standing-orders/store.d.ts +154 -0
  350. package/dist/standing-orders/store.d.ts.map +1 -0
  351. package/dist/standing-orders/store.js +189 -0
  352. package/dist/standing-orders/store.js.map +1 -0
  353. package/dist/studio/assets/index-CvV5qITf.css +32 -0
  354. package/dist/studio/assets/index-jCOy6Ns7.js +568 -0
  355. package/dist/studio/index.html +3 -3
  356. package/dist/studio/testid-inventory.json +3307 -897
  357. package/dist/team/key.d.ts +5 -0
  358. package/dist/team/key.d.ts.map +1 -0
  359. package/dist/team/key.js +21 -0
  360. package/dist/team/key.js.map +1 -0
  361. package/dist/team/routes.d.ts +196 -0
  362. package/dist/team/routes.d.ts.map +1 -0
  363. package/dist/team/routes.js +274 -0
  364. package/dist/team/routes.js.map +1 -0
  365. package/dist/team/ws-relay.d.ts +39 -0
  366. package/dist/team/ws-relay.d.ts.map +1 -0
  367. package/dist/team/ws-relay.js +63 -0
  368. package/dist/team/ws-relay.js.map +1 -0
  369. package/endpoint-manifest.json +502 -6
  370. package/package.json +6 -6
  371. package/dist/interactive/demo-events.d.ts +0 -367
  372. package/dist/interactive/demo-events.d.ts.map +0 -1
  373. package/dist/interactive/demo-events.js +0 -1293
  374. package/dist/interactive/demo-events.js.map +0 -1
  375. package/dist/qe/gate-events.d.ts +0 -113
  376. package/dist/qe/gate-events.d.ts.map +0 -1
  377. package/dist/qe/gate-events.js +0 -172
  378. package/dist/qe/gate-events.js.map +0 -1
  379. package/dist/studio/assets/index-BRDAN35i.js +0 -548
  380. package/dist/studio/assets/index-Drfcsy8b.css +0 -32
@@ -0,0 +1,282 @@
1
+ /**
2
+ * The `/api/v1/mcp/*` registry routes (DES-MCP-TOOLS-001 §8; slice S2).
3
+ *
4
+ * GET /mcp/servers upstreams, their tools (class, subject, status), health,
5
+ * auth state, and the servers discovered in CLI homes (names only)
6
+ * POST /mcp/servers/preview probe (10 s, hardened env): tools, classes and a previewHash
7
+ * (`kind: "rest"`, slice S5a: the tools of an OpenAPI 3 document,
8
+ * each pinned to the base `url`; see `mcp/rest.ts`)
9
+ * POST /mcp/servers save: `{previewHash}` only; missing, unknown or expired → 409
10
+ * PATCH /mcp/servers/:name `{enabled}`
11
+ * DELETE /mcp/servers/:name remove the server and the keychain secret it owns
12
+ * POST /mcp/servers/:name/test probe again: health plus the tool diff
13
+ * PATCH /mcp/tools/:subject `{enabled?, classOverride?}`; `:subject` is `mcp:<server>/<tool>`, URL-encoded
14
+ * PUT /mcp/servers/:name/secret `{value}` → the OS keychain; answers `{ref, set: true}`, never the value.
15
+ * RE-KEY only (crew#719): the server must already reference
16
+ * `keychain:wicked-mcp/<name>`. A new server's secret rides
17
+ * `secret` on the PREVIEW body and is written by the save.
18
+ * POST /mcp/call the broker (§6, slice S3): `{token, subject, args?}` from the garden
19
+ * shim; judged, budgeted, invoked, scrubbed, output-judged, recorded
20
+ * POST /mcp/tools `{token}` from the garden shim's `list` (slice S4): the tools the
21
+ * token's unit may try, judged with no arguments, recorded nowhere
22
+ *
23
+ * Slice S6 (the policy preview and the approvals, `mcp/policies.ts`):
24
+ *
25
+ * POST /mcp/policies/preview `{subject?, server?, phaseRole?, seat?, mode?, phaseId?}` → each
26
+ * tool's decision per role × seat × mode; nothing is recorded
27
+ * GET /mcp/approvals the approved subjects, the tools that would ask, the two ledgers
28
+ * POST /mcp/approvals `{subject}`: a server joins `MCP-FIRST-USE` excludes; a tool joins
29
+ * that and `MCP-POSTURE-WRITE` (audited rule upserts)
30
+ * DELETE /mcp/approvals/:subject removes it from both (`:subject` URL-encoded)
31
+ *
32
+ * Slice S7 (the usage fold, `mcp/usage.ts`):
33
+ *
34
+ * GET /mcp/usage `?days=1-30&subject&seat&decision` → counts, the decision split
35
+ * (allow / ask / deny / guard_error), error rate, p50/p95/p99,
36
+ * per-tool, per-server, tool × seat × run, chains, per day
37
+ *
38
+ * `POST /mcp/servers/preview` also answers the matrix (`policies`); a save that changes a saved
39
+ * tool's schema, and a removal, withdraw the approvals that named it, BEFORE the registry changes.
40
+ *
41
+ * The secret value is in no response, log, audit entry or file (D-2); tests/mcp-registry.test.ts
42
+ * scans all of them, a malformed secret body included.
43
+ */
44
+ import type { FastifyInstance, FastifyRequest } from 'fastify';
45
+ import { z } from 'zod';
46
+ import type { Actor } from '../core/types.js';
47
+ import type { McpBroker } from '../mcp/broker.js';
48
+ import type { McpPolicies } from '../mcp/policies.js';
49
+ import { type McpRegistry } from '../mcp/registry.js';
50
+ import type { McpCallRecordSource } from '../mcp/call-records.js';
51
+ import type { AuditLog } from './audit.js';
52
+ export declare const McpServerConfigSchema: z.ZodEffects<z.ZodObject<{
53
+ name: z.ZodString;
54
+ kind: z.ZodEnum<["mcp-stdio", "mcp-http", "rest"]>;
55
+ command: z.ZodOptional<z.ZodString>;
56
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
57
+ url: z.ZodOptional<z.ZodString>;
58
+ auth: z.ZodOptional<z.ZodNullable<z.ZodObject<{
59
+ ref: z.ZodEffects<z.ZodString, string, string>;
60
+ env: z.ZodOptional<z.ZodString>;
61
+ header: z.ZodOptional<z.ZodString>;
62
+ prefix: z.ZodOptional<z.ZodString>;
63
+ }, "strict", z.ZodTypeAny, {
64
+ ref: string;
65
+ env?: string | undefined;
66
+ header?: string | undefined;
67
+ prefix?: string | undefined;
68
+ }, {
69
+ ref: string;
70
+ env?: string | undefined;
71
+ header?: string | undefined;
72
+ prefix?: string | undefined;
73
+ }>>>;
74
+ openapiUrl: z.ZodOptional<z.ZodString>;
75
+ openapi: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
76
+ operations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
77
+ /**
78
+ * (crew#719) The secret VALUE this server's keychain entry will hold. The preview is probed
79
+ * with it and it is held with the preview; `POST /mcp/servers` writes it to the OS store as
80
+ * part of the save, so the secret and the registry row commit together. Requires
81
+ * `auth.ref` = `keychain:wicked-mcp/<name>`. It is in no response, log, audit entry or file.
82
+ */
83
+ secret: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
84
+ }, "strict", z.ZodTypeAny, {
85
+ name: string;
86
+ kind: "mcp-stdio" | "mcp-http" | "rest";
87
+ url?: string | undefined;
88
+ auth?: {
89
+ ref: string;
90
+ env?: string | undefined;
91
+ header?: string | undefined;
92
+ prefix?: string | undefined;
93
+ } | null | undefined;
94
+ secret?: string | undefined;
95
+ command?: string | undefined;
96
+ args?: string[] | undefined;
97
+ operations?: string[] | undefined;
98
+ openapi?: Record<string, unknown> | undefined;
99
+ openapiUrl?: string | undefined;
100
+ }, {
101
+ name: string;
102
+ kind: "mcp-stdio" | "mcp-http" | "rest";
103
+ url?: string | undefined;
104
+ auth?: {
105
+ ref: string;
106
+ env?: string | undefined;
107
+ header?: string | undefined;
108
+ prefix?: string | undefined;
109
+ } | null | undefined;
110
+ secret?: string | undefined;
111
+ command?: string | undefined;
112
+ args?: string[] | undefined;
113
+ operations?: string[] | undefined;
114
+ openapi?: Record<string, unknown> | undefined;
115
+ openapiUrl?: string | undefined;
116
+ }>, {
117
+ name: string;
118
+ kind: "mcp-stdio" | "mcp-http" | "rest";
119
+ url?: string | undefined;
120
+ auth?: {
121
+ ref: string;
122
+ env?: string | undefined;
123
+ header?: string | undefined;
124
+ prefix?: string | undefined;
125
+ } | null | undefined;
126
+ secret?: string | undefined;
127
+ command?: string | undefined;
128
+ args?: string[] | undefined;
129
+ operations?: string[] | undefined;
130
+ openapi?: Record<string, unknown> | undefined;
131
+ openapiUrl?: string | undefined;
132
+ }, {
133
+ name: string;
134
+ kind: "mcp-stdio" | "mcp-http" | "rest";
135
+ url?: string | undefined;
136
+ auth?: {
137
+ ref: string;
138
+ env?: string | undefined;
139
+ header?: string | undefined;
140
+ prefix?: string | undefined;
141
+ } | null | undefined;
142
+ secret?: string | undefined;
143
+ command?: string | undefined;
144
+ args?: string[] | undefined;
145
+ operations?: string[] | undefined;
146
+ openapi?: Record<string, unknown> | undefined;
147
+ openapiUrl?: string | undefined;
148
+ }>;
149
+ export declare const SaveMcpServerSchema: z.ZodObject<{
150
+ previewHash: z.ZodOptional<z.ZodString>;
151
+ }, "strict", z.ZodTypeAny, {
152
+ previewHash?: string | undefined;
153
+ }, {
154
+ previewHash?: string | undefined;
155
+ }>;
156
+ export declare const PatchMcpServerSchema: z.ZodObject<{
157
+ enabled: z.ZodBoolean;
158
+ }, "strict", z.ZodTypeAny, {
159
+ enabled: boolean;
160
+ }, {
161
+ enabled: boolean;
162
+ }>;
163
+ export declare const PatchMcpToolSchema: z.ZodEffects<z.ZodObject<{
164
+ enabled: z.ZodOptional<z.ZodBoolean>;
165
+ classOverride: z.ZodOptional<z.ZodNullable<z.ZodEnum<["read", "write", "destructive"]>>>;
166
+ }, "strict", z.ZodTypeAny, {
167
+ enabled?: boolean | undefined;
168
+ classOverride?: "read" | "write" | "destructive" | null | undefined;
169
+ }, {
170
+ enabled?: boolean | undefined;
171
+ classOverride?: "read" | "write" | "destructive" | null | undefined;
172
+ }>, {
173
+ enabled?: boolean | undefined;
174
+ classOverride?: "read" | "write" | "destructive" | null | undefined;
175
+ }, {
176
+ enabled?: boolean | undefined;
177
+ classOverride?: "read" | "write" | "destructive" | null | undefined;
178
+ }>;
179
+ export declare const PutMcpSecretSchema: z.ZodObject<{
180
+ value: z.ZodEffects<z.ZodString, string, string>;
181
+ }, "strict", z.ZodTypeAny, {
182
+ value: string;
183
+ }, {
184
+ value: string;
185
+ }>;
186
+ export declare const McpCallSchema: z.ZodObject<{
187
+ token: z.ZodString;
188
+ subject: z.ZodString;
189
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
190
+ }, "strict", z.ZodTypeAny, {
191
+ subject: string;
192
+ token: string;
193
+ args?: Record<string, unknown> | undefined;
194
+ }, {
195
+ subject: string;
196
+ token: string;
197
+ args?: Record<string, unknown> | undefined;
198
+ }>;
199
+ export declare const McpToolsSchema: z.ZodObject<{
200
+ token: z.ZodString;
201
+ }, "strict", z.ZodTypeAny, {
202
+ token: string;
203
+ }, {
204
+ token: string;
205
+ }>;
206
+ export declare const McpPolicyPreviewSchema: z.ZodEffects<z.ZodObject<{
207
+ subject: z.ZodOptional<z.ZodString>;
208
+ server: z.ZodOptional<z.ZodString>;
209
+ phaseRole: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
210
+ seat: z.ZodOptional<z.ZodString>;
211
+ mode: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
212
+ phaseId: z.ZodOptional<z.ZodString>;
213
+ }, "strict", z.ZodTypeAny, {
214
+ mode?: string | undefined;
215
+ server?: string | undefined;
216
+ subject?: string | undefined;
217
+ seat?: string | undefined;
218
+ phaseId?: string | undefined;
219
+ phaseRole?: string | undefined;
220
+ }, {
221
+ mode?: string | undefined;
222
+ server?: string | undefined;
223
+ subject?: string | undefined;
224
+ seat?: string | undefined;
225
+ phaseId?: string | undefined;
226
+ phaseRole?: string | undefined;
227
+ }>, {
228
+ mode?: string | undefined;
229
+ server?: string | undefined;
230
+ subject?: string | undefined;
231
+ seat?: string | undefined;
232
+ phaseId?: string | undefined;
233
+ phaseRole?: string | undefined;
234
+ }, {
235
+ mode?: string | undefined;
236
+ server?: string | undefined;
237
+ subject?: string | undefined;
238
+ seat?: string | undefined;
239
+ phaseId?: string | undefined;
240
+ phaseRole?: string | undefined;
241
+ }>;
242
+ export declare const McpApprovalSchema: z.ZodObject<{
243
+ subject: z.ZodString;
244
+ }, "strict", z.ZodTypeAny, {
245
+ subject: string;
246
+ }, {
247
+ subject: string;
248
+ }>;
249
+ export declare const McpUsageQuerySchema: z.ZodObject<{
250
+ days: z.ZodOptional<z.ZodNumber>;
251
+ subject: z.ZodOptional<z.ZodString>;
252
+ seat: z.ZodOptional<z.ZodString>;
253
+ decision: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
254
+ }, "strict", z.ZodTypeAny, {
255
+ subject?: string | undefined;
256
+ seat?: string | undefined;
257
+ decision?: string | undefined;
258
+ days?: number | undefined;
259
+ }, {
260
+ subject?: string | undefined;
261
+ seat?: string | undefined;
262
+ decision?: string | undefined;
263
+ days?: number | undefined;
264
+ }>;
265
+ export interface McpRouteDeps {
266
+ /** Absent = a directly-driven route set with no registry seam → 503. */
267
+ registry?: McpRegistry;
268
+ /** The broker's call path (S3). Absent → `POST /mcp/call` answers 503. */
269
+ broker?: McpBroker;
270
+ /** `Core.listMcpTools` for `POST /mcp/tools` (S4), read per request. Absent → that route answers 503. */
271
+ toolLister?: () => ((requestJson: string) => Promise<string>) | null;
272
+ /** The preview and approvals (S6). Absent → those routes answer 503; the S2 routes are unchanged. */
273
+ policies?: McpPolicies;
274
+ /** The call records the usage fold reads (S7). Absent → `GET /mcp/usage` answers 503. */
275
+ usage?: McpCallRecordSource;
276
+ /** The usage window's end; tests pin it. Default `Date.now`. */
277
+ now?: () => number;
278
+ audit: Pick<AuditLog, 'record'>;
279
+ actorOf: (req: FastifyRequest) => Actor;
280
+ }
281
+ export declare function registerMcpRoutes(app: FastifyInstance, deps: McpRouteDeps): void;
282
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/api/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,KAAK,EAA8E,MAAM,kBAAkB,CAAC;AAE1H,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAsB3C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;IAc9B;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CH,CAAC;AACL,eAAO,MAAM,mBAAmB;;;;;;EAA4E,CAAC;AAC7G,eAAO,MAAM,oBAAoB;;;;;;EAA8C,CAAC;AAChF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAG8F,CAAC;AAC9H,eAAO,MAAM,kBAAkB;;;;;;EAA4C,CAAC;AAE5E,eAAO,MAAM,aAAa;;;;;;;;;;;;EAMf,CAAC;AACZ,eAAO,MAAM,cAAc;;;;;;EAA2D,CAAC;AACvF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUiF,CAAC;AACrH,eAAO,MAAM,iBAAiB;;;;;;EAA6D,CAAC;AAC5F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAOrB,CAAC;AAEZ,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IACrE,qGAAqG;IACrG,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,yFAAyF;IACzF,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,KAAK,CAAC;CACzC;AA0CD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAyUhF"}