@wootsup/yt-builder-mcp 1.1.6 → 1.2.0

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 (430) hide show
  1. package/README.md +7 -7
  2. package/bin/yt-builder-mcp.js +55 -40
  3. package/dist/auth.d.ts +137 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +244 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/cli/invocation-decision.d.ts +57 -0
  8. package/dist/cli/invocation-decision.d.ts.map +1 -0
  9. package/dist/cli/invocation-decision.js +86 -0
  10. package/dist/cli/invocation-decision.js.map +1 -0
  11. package/dist/client.d.ts +112 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +190 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/clients/claude-code.d.ts +18 -0
  16. package/dist/clients/claude-code.d.ts.map +1 -0
  17. package/dist/clients/claude-code.js +55 -0
  18. package/dist/clients/claude-code.js.map +1 -0
  19. package/dist/clients/claude-desktop.d.ts +19 -0
  20. package/dist/clients/claude-desktop.d.ts.map +1 -0
  21. package/dist/clients/claude-desktop.js +58 -0
  22. package/dist/clients/claude-desktop.js.map +1 -0
  23. package/dist/clients/cline.d.ts +26 -0
  24. package/dist/clients/cline.d.ts.map +1 -0
  25. package/dist/clients/cline.js +82 -0
  26. package/dist/clients/cline.js.map +1 -0
  27. package/dist/clients/codex-cli.d.ts +42 -0
  28. package/dist/clients/codex-cli.d.ts.map +1 -0
  29. package/dist/clients/codex-cli.js +292 -0
  30. package/dist/clients/codex-cli.js.map +1 -0
  31. package/dist/clients/continue.d.ts +13 -0
  32. package/dist/clients/continue.d.ts.map +1 -0
  33. package/dist/clients/continue.js +121 -0
  34. package/dist/clients/continue.js.map +1 -0
  35. package/dist/clients/cursor.d.ts +12 -0
  36. package/dist/clients/cursor.d.ts.map +1 -0
  37. package/dist/clients/cursor.js +40 -0
  38. package/dist/clients/cursor.js.map +1 -0
  39. package/dist/clients/gemini-cli.d.ts +18 -0
  40. package/dist/clients/gemini-cli.d.ts.map +1 -0
  41. package/dist/clients/gemini-cli.js +46 -0
  42. package/dist/clients/gemini-cli.js.map +1 -0
  43. package/dist/clients/home.d.ts +14 -0
  44. package/dist/clients/home.d.ts.map +1 -0
  45. package/dist/clients/home.js +20 -0
  46. package/dist/clients/home.js.map +1 -0
  47. package/dist/clients/index.d.ts +156 -0
  48. package/dist/clients/index.d.ts.map +1 -0
  49. package/dist/clients/index.js +213 -0
  50. package/dist/clients/index.js.map +1 -0
  51. package/dist/clients/roo-code.d.ts +23 -0
  52. package/dist/clients/roo-code.d.ts.map +1 -0
  53. package/dist/clients/roo-code.js +71 -0
  54. package/dist/clients/roo-code.js.map +1 -0
  55. package/dist/clients/zed.d.ts +12 -0
  56. package/dist/clients/zed.d.ts.map +1 -0
  57. package/dist/clients/zed.js +43 -0
  58. package/dist/clients/zed.js.map +1 -0
  59. package/dist/errors/hints.d.ts +51 -0
  60. package/dist/errors/hints.d.ts.map +1 -0
  61. package/dist/errors/hints.js +95 -0
  62. package/dist/errors/hints.js.map +1 -0
  63. package/dist/errors/mask.d.ts +35 -0
  64. package/dist/errors/mask.d.ts.map +1 -0
  65. package/dist/errors/mask.js +49 -0
  66. package/dist/errors/mask.js.map +1 -0
  67. package/dist/errors/sanitize.d.ts +31 -0
  68. package/dist/errors/sanitize.d.ts.map +1 -0
  69. package/dist/errors/sanitize.js +100 -0
  70. package/dist/errors/sanitize.js.map +1 -0
  71. package/dist/errors.d.ts +42 -0
  72. package/dist/errors.d.ts.map +1 -0
  73. package/dist/errors.js +61 -0
  74. package/dist/errors.js.map +1 -0
  75. package/dist/gateway/advanced-tool/discovery.d.ts +19 -0
  76. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -0
  77. package/dist/gateway/advanced-tool/discovery.js +53 -0
  78. package/dist/gateway/advanced-tool/discovery.js.map +1 -0
  79. package/dist/gateway/advanced-tool/domains.d.ts +47 -0
  80. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -0
  81. package/dist/gateway/advanced-tool/domains.js +94 -0
  82. package/dist/gateway/advanced-tool/domains.js.map +1 -0
  83. package/dist/gateway/advanced-tool/execute.d.ts +29 -0
  84. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -0
  85. package/dist/gateway/advanced-tool/execute.js +54 -0
  86. package/dist/gateway/advanced-tool/execute.js.map +1 -0
  87. package/dist/gateway/advanced-tool/index.d.ts +36 -0
  88. package/dist/gateway/advanced-tool/index.d.ts.map +1 -0
  89. package/dist/gateway/advanced-tool/index.js +39 -0
  90. package/dist/gateway/advanced-tool/index.js.map +1 -0
  91. package/dist/gateway/advanced-tool/register.d.ts +18 -0
  92. package/dist/gateway/advanced-tool/register.d.ts.map +1 -0
  93. package/dist/gateway/advanced-tool/register.js +69 -0
  94. package/dist/gateway/advanced-tool/register.js.map +1 -0
  95. package/dist/gateway/advanced-tool.d.ts +13 -0
  96. package/dist/gateway/advanced-tool.d.ts.map +1 -0
  97. package/dist/gateway/advanced-tool.js +13 -0
  98. package/dist/gateway/advanced-tool.js.map +1 -0
  99. package/dist/gateway/capturing-server.d.ts +117 -0
  100. package/dist/gateway/capturing-server.d.ts.map +1 -0
  101. package/dist/gateway/capturing-server.js +103 -0
  102. package/dist/gateway/capturing-server.js.map +1 -0
  103. package/dist/gateway/essentials.d.ts +50 -0
  104. package/dist/gateway/essentials.d.ts.map +1 -0
  105. package/dist/gateway/essentials.js +108 -0
  106. package/dist/gateway/essentials.js.map +1 -0
  107. package/dist/gateway/test-support.d.ts +41 -0
  108. package/dist/gateway/test-support.d.ts.map +1 -0
  109. package/dist/gateway/test-support.js +60 -0
  110. package/dist/gateway/test-support.js.map +1 -0
  111. package/dist/index.d.ts +30 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +119 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/install-skill.d.ts +43 -0
  116. package/dist/install-skill.d.ts.map +1 -0
  117. package/dist/install-skill.js +118 -0
  118. package/dist/install-skill.js.map +1 -0
  119. package/dist/platform/detect.d.ts +64 -0
  120. package/dist/platform/detect.d.ts.map +1 -0
  121. package/dist/platform/detect.js +98 -0
  122. package/dist/platform/detect.js.map +1 -0
  123. package/dist/platform/index.d.ts +121 -0
  124. package/dist/platform/index.d.ts.map +1 -0
  125. package/dist/platform/index.js +176 -0
  126. package/dist/platform/index.js.map +1 -0
  127. package/dist/platform/joomla.d.ts +44 -0
  128. package/dist/platform/joomla.d.ts.map +1 -0
  129. package/dist/platform/joomla.js +46 -0
  130. package/dist/platform/joomla.js.map +1 -0
  131. package/dist/server.d.ts +110 -0
  132. package/dist/server.d.ts.map +1 -0
  133. package/dist/server.js +274 -0
  134. package/dist/server.js.map +1 -0
  135. package/dist/setup-cli-confirm.d.ts +36 -0
  136. package/dist/setup-cli-confirm.d.ts.map +1 -0
  137. package/dist/setup-cli-confirm.js +59 -0
  138. package/dist/setup-cli-confirm.js.map +1 -0
  139. package/dist/setup-cli.d.ts +193 -0
  140. package/dist/setup-cli.d.ts.map +1 -0
  141. package/dist/setup-cli.js +1032 -0
  142. package/dist/setup-cli.js.map +1 -0
  143. package/dist/setup-prompts.d.ts +64 -0
  144. package/dist/setup-prompts.d.ts.map +1 -0
  145. package/dist/setup-prompts.js +221 -0
  146. package/dist/setup-prompts.js.map +1 -0
  147. package/dist/setup-token.d.ts +38 -0
  148. package/dist/setup-token.d.ts.map +1 -0
  149. package/dist/setup-token.js +106 -0
  150. package/dist/setup-token.js.map +1 -0
  151. package/dist/setup-wizard-defaults.d.ts +43 -0
  152. package/dist/setup-wizard-defaults.d.ts.map +1 -0
  153. package/dist/setup-wizard-defaults.js +160 -0
  154. package/dist/setup-wizard-defaults.js.map +1 -0
  155. package/dist/setup-wizard-handshake.d.ts +25 -0
  156. package/dist/setup-wizard-handshake.d.ts.map +1 -0
  157. package/dist/setup-wizard-handshake.js +103 -0
  158. package/dist/setup-wizard-handshake.js.map +1 -0
  159. package/dist/setup-wizard-types.d.ts +164 -0
  160. package/dist/setup-wizard-types.d.ts.map +1 -0
  161. package/dist/setup-wizard-types.js +11 -0
  162. package/dist/setup-wizard-types.js.map +1 -0
  163. package/dist/setup-wizard.d.ts +33 -0
  164. package/dist/setup-wizard.d.ts.map +1 -0
  165. package/dist/setup-wizard.js +199 -0
  166. package/dist/setup-wizard.js.map +1 -0
  167. package/dist/setup.d.ts +17 -0
  168. package/dist/setup.d.ts.map +1 -0
  169. package/dist/setup.js +33 -0
  170. package/dist/setup.js.map +1 -0
  171. package/dist/sites/bootstrap.d.ts +41 -0
  172. package/dist/sites/bootstrap.d.ts.map +1 -0
  173. package/dist/sites/bootstrap.js +58 -0
  174. package/dist/sites/bootstrap.js.map +1 -0
  175. package/dist/sites/cli/add-site.d.ts +106 -0
  176. package/dist/sites/cli/add-site.d.ts.map +1 -0
  177. package/dist/sites/cli/add-site.js +185 -0
  178. package/dist/sites/cli/add-site.js.map +1 -0
  179. package/dist/sites/cli/list-sites.d.ts +40 -0
  180. package/dist/sites/cli/list-sites.d.ts.map +1 -0
  181. package/dist/sites/cli/list-sites.js +116 -0
  182. package/dist/sites/cli/list-sites.js.map +1 -0
  183. package/dist/sites/cli/remove-site.d.ts +60 -0
  184. package/dist/sites/cli/remove-site.d.ts.map +1 -0
  185. package/dist/sites/cli/remove-site.js +120 -0
  186. package/dist/sites/cli/remove-site.js.map +1 -0
  187. package/dist/sites/cli/set-default.d.ts +47 -0
  188. package/dist/sites/cli/set-default.d.ts.map +1 -0
  189. package/dist/sites/cli/set-default.js +69 -0
  190. package/dist/sites/cli/set-default.js.map +1 -0
  191. package/dist/sites/cli/test-site.d.ts +77 -0
  192. package/dist/sites/cli/test-site.d.ts.map +1 -0
  193. package/dist/sites/cli/test-site.js +146 -0
  194. package/dist/sites/cli/test-site.js.map +1 -0
  195. package/dist/sites/client-pool.d.ts +157 -0
  196. package/dist/sites/client-pool.d.ts.map +1 -0
  197. package/dist/sites/client-pool.js +222 -0
  198. package/dist/sites/client-pool.js.map +1 -0
  199. package/dist/sites/env-bridge.d.ts +55 -0
  200. package/dist/sites/env-bridge.d.ts.map +1 -0
  201. package/dist/sites/env-bridge.js +94 -0
  202. package/dist/sites/env-bridge.js.map +1 -0
  203. package/dist/sites/paths.d.ts +21 -0
  204. package/dist/sites/paths.d.ts.map +1 -0
  205. package/dist/sites/paths.js +37 -0
  206. package/dist/sites/paths.js.map +1 -0
  207. package/dist/sites/probe.d.ts +60 -0
  208. package/dist/sites/probe.d.ts.map +1 -0
  209. package/dist/sites/probe.js +112 -0
  210. package/dist/sites/probe.js.map +1 -0
  211. package/dist/sites/registry.d.ts +142 -0
  212. package/dist/sites/registry.d.ts.map +1 -0
  213. package/dist/sites/registry.js +163 -0
  214. package/dist/sites/registry.js.map +1 -0
  215. package/dist/sites/schema.d.ts +90 -0
  216. package/dist/sites/schema.d.ts.map +1 -0
  217. package/dist/sites/schema.js +71 -0
  218. package/dist/sites/schema.js.map +1 -0
  219. package/dist/sites/secret-resolver.d.ts +115 -0
  220. package/dist/sites/secret-resolver.d.ts.map +1 -0
  221. package/dist/sites/secret-resolver.js +225 -0
  222. package/dist/sites/secret-resolver.js.map +1 -0
  223. package/dist/sites/store.d.ts +82 -0
  224. package/dist/sites/store.d.ts.map +1 -0
  225. package/dist/sites/store.js +198 -0
  226. package/dist/sites/store.js.map +1 -0
  227. package/dist/sites/tools/index.d.ts +28 -0
  228. package/dist/sites/tools/index.d.ts.map +1 -0
  229. package/dist/sites/tools/index.js +38 -0
  230. package/dist/sites/tools/index.js.map +1 -0
  231. package/dist/sites/tools/sites-list.d.ts +48 -0
  232. package/dist/sites/tools/sites-list.d.ts.map +1 -0
  233. package/dist/sites/tools/sites-list.js +137 -0
  234. package/dist/sites/tools/sites-list.js.map +1 -0
  235. package/dist/sites/tools/sites-test.d.ts +47 -0
  236. package/dist/sites/tools/sites-test.d.ts.map +1 -0
  237. package/dist/sites/tools/sites-test.js +148 -0
  238. package/dist/sites/tools/sites-test.js.map +1 -0
  239. package/dist/sites/tools/use-site.d.ts +47 -0
  240. package/dist/sites/tools/use-site.d.ts.map +1 -0
  241. package/dist/sites/tools/use-site.js +183 -0
  242. package/dist/sites/tools/use-site.js.map +1 -0
  243. package/dist/skill-loader.d.ts +111 -0
  244. package/dist/skill-loader.d.ts.map +1 -0
  245. package/dist/skill-loader.js +191 -0
  246. package/dist/skill-loader.js.map +1 -0
  247. package/dist/tools/elements/builders.d.ts +24 -0
  248. package/dist/tools/elements/builders.d.ts.map +1 -0
  249. package/dist/tools/elements/builders.js +208 -0
  250. package/dist/tools/elements/builders.js.map +1 -0
  251. package/dist/tools/elements/handlers-write.d.ts +49 -0
  252. package/dist/tools/elements/handlers-write.d.ts.map +1 -0
  253. package/dist/tools/elements/handlers-write.js +341 -0
  254. package/dist/tools/elements/handlers-write.js.map +1 -0
  255. package/dist/tools/elements/handlers.d.ts +70 -0
  256. package/dist/tools/elements/handlers.d.ts.map +1 -0
  257. package/dist/tools/elements/handlers.js +292 -0
  258. package/dist/tools/elements/handlers.js.map +1 -0
  259. package/dist/tools/elements/index.d.ts +28 -0
  260. package/dist/tools/elements/index.d.ts.map +1 -0
  261. package/dist/tools/elements/index.js +27 -0
  262. package/dist/tools/elements/index.js.map +1 -0
  263. package/dist/tools/elements.d.ts +13 -0
  264. package/dist/tools/elements.d.ts.map +1 -0
  265. package/dist/tools/elements.js +13 -0
  266. package/dist/tools/elements.js.map +1 -0
  267. package/dist/tools/elicitation.d.ts +87 -0
  268. package/dist/tools/elicitation.d.ts.map +1 -0
  269. package/dist/tools/elicitation.js +100 -0
  270. package/dist/tools/elicitation.js.map +1 -0
  271. package/dist/tools/format/elements-format.d.ts +40 -0
  272. package/dist/tools/format/elements-format.d.ts.map +1 -0
  273. package/dist/tools/format/elements-format.js +193 -0
  274. package/dist/tools/format/elements-format.js.map +1 -0
  275. package/dist/tools/format/health-format.d.ts +79 -0
  276. package/dist/tools/format/health-format.d.ts.map +1 -0
  277. package/dist/tools/format/health-format.js +181 -0
  278. package/dist/tools/format/health-format.js.map +1 -0
  279. package/dist/tools/format/inspection-format.d.ts +70 -0
  280. package/dist/tools/format/inspection-format.d.ts.map +1 -0
  281. package/dist/tools/format/inspection-format.js +359 -0
  282. package/dist/tools/format/inspection-format.js.map +1 -0
  283. package/dist/tools/format/pages-format.d.ts +57 -0
  284. package/dist/tools/format/pages-format.d.ts.map +1 -0
  285. package/dist/tools/format/pages-format.js +157 -0
  286. package/dist/tools/format/pages-format.js.map +1 -0
  287. package/dist/tools/format/sources-format.d.ts +44 -0
  288. package/dist/tools/format/sources-format.d.ts.map +1 -0
  289. package/dist/tools/format/sources-format.js +242 -0
  290. package/dist/tools/format/sources-format.js.map +1 -0
  291. package/dist/tools/health.d.ts +22 -0
  292. package/dist/tools/health.d.ts.map +1 -0
  293. package/dist/tools/health.js +220 -0
  294. package/dist/tools/health.js.map +1 -0
  295. package/dist/tools/index.d.ts +30 -0
  296. package/dist/tools/index.d.ts.map +1 -0
  297. package/dist/tools/index.js +39 -0
  298. package/dist/tools/index.js.map +1 -0
  299. package/dist/tools/inspection.d.ts +14 -0
  300. package/dist/tools/inspection.d.ts.map +1 -0
  301. package/dist/tools/inspection.js +401 -0
  302. package/dist/tools/inspection.js.map +1 -0
  303. package/dist/tools/layout-flatten.d.ts +75 -0
  304. package/dist/tools/layout-flatten.d.ts.map +1 -0
  305. package/dist/tools/layout-flatten.js +107 -0
  306. package/dist/tools/layout-flatten.js.map +1 -0
  307. package/dist/tools/multi-items/builders.d.ts +23 -0
  308. package/dist/tools/multi-items/builders.d.ts.map +1 -0
  309. package/dist/tools/multi-items/builders.js +84 -0
  310. package/dist/tools/multi-items/builders.js.map +1 -0
  311. package/dist/tools/multi-items/clean-implode-handler.d.ts +36 -0
  312. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -0
  313. package/dist/tools/multi-items/clean-implode-handler.js +57 -0
  314. package/dist/tools/multi-items/clean-implode-handler.js.map +1 -0
  315. package/dist/tools/multi-items/format/inspection-format.d.ts +41 -0
  316. package/dist/tools/multi-items/format/inspection-format.d.ts.map +1 -0
  317. package/dist/tools/multi-items/format/inspection-format.js +64 -0
  318. package/dist/tools/multi-items/format/inspection-format.js.map +1 -0
  319. package/dist/tools/multi-items/index.d.ts +18 -0
  320. package/dist/tools/multi-items/index.d.ts.map +1 -0
  321. package/dist/tools/multi-items/index.js +18 -0
  322. package/dist/tools/multi-items/index.js.map +1 -0
  323. package/dist/tools/multi-items/inspect-handler.d.ts +76 -0
  324. package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -0
  325. package/dist/tools/multi-items/inspect-handler.js +133 -0
  326. package/dist/tools/multi-items/inspect-handler.js.map +1 -0
  327. package/dist/tools/multi-items/inspection-cache.d.ts +85 -0
  328. package/dist/tools/multi-items/inspection-cache.d.ts.map +1 -0
  329. package/dist/tools/multi-items/inspection-cache.js +126 -0
  330. package/dist/tools/multi-items/inspection-cache.js.map +1 -0
  331. package/dist/tools/multi-items/item-container-map.d.ts +41 -0
  332. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -0
  333. package/dist/tools/multi-items/item-container-map.js +73 -0
  334. package/dist/tools/multi-items/item-container-map.js.map +1 -0
  335. package/dist/tools/pages/builders.d.ts +43 -0
  336. package/dist/tools/pages/builders.d.ts.map +1 -0
  337. package/dist/tools/pages/builders.js +229 -0
  338. package/dist/tools/pages/builders.js.map +1 -0
  339. package/dist/tools/pages/handlers-read.d.ts +33 -0
  340. package/dist/tools/pages/handlers-read.d.ts.map +1 -0
  341. package/dist/tools/pages/handlers-read.js +260 -0
  342. package/dist/tools/pages/handlers-read.js.map +1 -0
  343. package/dist/tools/pages/handlers-write.d.ts +63 -0
  344. package/dist/tools/pages/handlers-write.d.ts.map +1 -0
  345. package/dist/tools/pages/handlers-write.js +127 -0
  346. package/dist/tools/pages/handlers-write.js.map +1 -0
  347. package/dist/tools/pages/index.d.ts +17 -0
  348. package/dist/tools/pages/index.d.ts.map +1 -0
  349. package/dist/tools/pages/index.js +17 -0
  350. package/dist/tools/pages/index.js.map +1 -0
  351. package/dist/tools/pages/schemas.d.ts +157 -0
  352. package/dist/tools/pages/schemas.d.ts.map +1 -0
  353. package/dist/tools/pages/schemas.js +232 -0
  354. package/dist/tools/pages/schemas.js.map +1 -0
  355. package/dist/tools/pages.d.ts +13 -0
  356. package/dist/tools/pages.d.ts.map +1 -0
  357. package/dist/tools/pages.js +13 -0
  358. package/dist/tools/pages.js.map +1 -0
  359. package/dist/tools/pool-resolve-helper.d.ts +83 -0
  360. package/dist/tools/pool-resolve-helper.d.ts.map +1 -0
  361. package/dist/tools/pool-resolve-helper.js +148 -0
  362. package/dist/tools/pool-resolve-helper.js.map +1 -0
  363. package/dist/tools/progress-phases.d.ts +46 -0
  364. package/dist/tools/progress-phases.d.ts.map +1 -0
  365. package/dist/tools/progress-phases.js +48 -0
  366. package/dist/tools/progress-phases.js.map +1 -0
  367. package/dist/tools/shared-schemas.d.ts +25 -0
  368. package/dist/tools/shared-schemas.d.ts.map +1 -0
  369. package/dist/tools/shared-schemas.js +72 -0
  370. package/dist/tools/shared-schemas.js.map +1 -0
  371. package/dist/tools/sources/builders.d.ts +13 -0
  372. package/dist/tools/sources/builders.d.ts.map +1 -0
  373. package/dist/tools/sources/builders.js +118 -0
  374. package/dist/tools/sources/builders.js.map +1 -0
  375. package/dist/tools/sources/handlers-bind.d.ts +28 -0
  376. package/dist/tools/sources/handlers-bind.d.ts.map +1 -0
  377. package/dist/tools/sources/handlers-bind.js +181 -0
  378. package/dist/tools/sources/handlers-bind.js.map +1 -0
  379. package/dist/tools/sources/handlers.d.ts +47 -0
  380. package/dist/tools/sources/handlers.d.ts.map +1 -0
  381. package/dist/tools/sources/handlers.js +108 -0
  382. package/dist/tools/sources/handlers.js.map +1 -0
  383. package/dist/tools/sources/index.d.ts +19 -0
  384. package/dist/tools/sources/index.d.ts.map +1 -0
  385. package/dist/tools/sources/index.js +18 -0
  386. package/dist/tools/sources/index.js.map +1 -0
  387. package/dist/tools/sources.d.ts +14 -0
  388. package/dist/tools/sources.d.ts.map +1 -0
  389. package/dist/tools/sources.js +14 -0
  390. package/dist/tools/sources.js.map +1 -0
  391. package/dist/tools/sparse-fields.d.ts +106 -0
  392. package/dist/tools/sparse-fields.d.ts.map +1 -0
  393. package/dist/tools/sparse-fields.js +165 -0
  394. package/dist/tools/sparse-fields.js.map +1 -0
  395. package/dist/tools/tool-builder/annotations.d.ts +55 -0
  396. package/dist/tools/tool-builder/annotations.d.ts.map +1 -0
  397. package/dist/tools/tool-builder/annotations.js +86 -0
  398. package/dist/tools/tool-builder/annotations.js.map +1 -0
  399. package/dist/tools/tool-builder/define.d.ts +31 -0
  400. package/dist/tools/tool-builder/define.d.ts.map +1 -0
  401. package/dist/tools/tool-builder/define.js +31 -0
  402. package/dist/tools/tool-builder/define.js.map +1 -0
  403. package/dist/tools/tool-builder/index.d.ts +28 -0
  404. package/dist/tools/tool-builder/index.d.ts.map +1 -0
  405. package/dist/tools/tool-builder/index.js +27 -0
  406. package/dist/tools/tool-builder/index.js.map +1 -0
  407. package/dist/tools/tool-builder/results.d.ts +104 -0
  408. package/dist/tools/tool-builder/results.d.ts.map +1 -0
  409. package/dist/tools/tool-builder/results.js +224 -0
  410. package/dist/tools/tool-builder/results.js.map +1 -0
  411. package/dist/tools/tool-builder/types.d.ts +97 -0
  412. package/dist/tools/tool-builder/types.d.ts.map +1 -0
  413. package/dist/tools/tool-builder/types.js +9 -0
  414. package/dist/tools/tool-builder/types.js.map +1 -0
  415. package/dist/tools/tool-builder.d.ts +16 -0
  416. package/dist/tools/tool-builder.d.ts.map +1 -0
  417. package/dist/tools/tool-builder.js +16 -0
  418. package/dist/tools/tool-builder.js.map +1 -0
  419. package/dist/uninstall-skill.d.ts +52 -0
  420. package/dist/uninstall-skill.d.ts.map +1 -0
  421. package/dist/uninstall-skill.js +146 -0
  422. package/dist/uninstall-skill.js.map +1 -0
  423. package/dist/uninstall.d.ts +73 -0
  424. package/dist/uninstall.d.ts.map +1 -0
  425. package/dist/uninstall.js +82 -0
  426. package/dist/uninstall.js.map +1 -0
  427. package/icon.png +0 -0
  428. package/manifest.json +10 -10
  429. package/package.json +4 -1
  430. package/skills/yt-builder-mcp/SKILL.md +30 -26
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Elements format-sidecar — pure transforms for `element_list` (table) and
3
+ * `element_get` (detail). Wave G.2.5 (Design §3.2 rows 9 / 10).
4
+ *
5
+ * @license MIT
6
+ */
7
+ // ─── Element-list columns (Design §3.2 row 9) ────────────────────────
8
+ // F-06: PATH column widened to 64 chars + 'rel_path' shows just the
9
+ // template-layout suffix so every row stays uniquely identifiable in
10
+ // the text table. Full path remains available in structuredContent.
11
+ export const ELEMENTS_TABLE_COLUMNS = [
12
+ { key: 'rel_path', label: 'PATH', width: 48, llmOnly: true },
13
+ { key: 'element_type', label: 'TYPE', width: 16 },
14
+ { key: 'label', label: 'LABEL', width: 28 },
15
+ { key: 'has_binding', label: 'BIND', width: 8 },
16
+ ];
17
+ /** Compact columns kick in at 21+ rows — keep path + type only. */
18
+ export const ELEMENTS_COMPACT_COLUMNS = [
19
+ { key: 'rel_path', label: 'PATH', width: 48, llmOnly: true },
20
+ { key: 'element_type', label: 'TYPE', width: 16 },
21
+ ];
22
+ // ─── Row mapper ──────────────────────────────────────────────────────
23
+ function asString(v) {
24
+ return typeof v === 'string' ? v : '';
25
+ }
26
+ /**
27
+ * Defensive `has_binding` derivation used when the REST plugin does not
28
+ * surface an explicit boolean. Mirrors `BindingSerializer::hasBinding()`
29
+ * on the PHP side so all readers agree on the same node.
30
+ *
31
+ * Task #43 (2026-05-29) — Bug A: precedence flipped to match PHP.
32
+ * 1. top-level node.source — YT-Pro canonical, writer-1.1.13+
33
+ * 2. props.source — pre-1.1.13 writer slot (back-compat)
34
+ * 3. node.source_extended — YT4 internal cached/expanded form
35
+ * 4. legacy plain-string source — pre-F-13 user data
36
+ *
37
+ * A node is "bound" if any carrier yields either a non-empty `query.name`
38
+ * OR at least one `props.<el>.name` field-mapping (inherit-from-parent
39
+ * pattern — the field-bindings reference the parent iteration source via
40
+ * the `${builder.source}` token without a local query name).
41
+ */
42
+ function isStructuredBinding(src) {
43
+ if (src === null || typeof src !== 'object')
44
+ return false;
45
+ const obj = src;
46
+ const query = obj.query;
47
+ if (query !== null && typeof query === 'object') {
48
+ const name = query.name;
49
+ if (typeof name === 'string' && name.length > 0)
50
+ return true;
51
+ }
52
+ // No query name — bound only if at least one props.<el>.name field-
53
+ // mapping is present (inherit-from-parent pattern).
54
+ const props = obj.props;
55
+ if (props !== null && typeof props === 'object') {
56
+ for (const k of Object.keys(props)) {
57
+ const v = props[k];
58
+ if (v !== null && typeof v === 'object') {
59
+ const name = v.name;
60
+ if (typeof name === 'string' && name.length > 0)
61
+ return true;
62
+ }
63
+ }
64
+ }
65
+ return false;
66
+ }
67
+ /**
68
+ * True iff the node carries a source-binding. Exported so the
69
+ * layout-flatten helper (page_get_layout flat-mode) derives
70
+ * `has_binding` from the SAME logic element_list uses — one SSoT.
71
+ */
72
+ export function hasSourceBinding(node) {
73
+ if (node === null || typeof node !== 'object')
74
+ return false;
75
+ const obj = node;
76
+ // (1) top-level node.source — YT-Pro canonical (Task #43 — Bug A).
77
+ if ('source' in obj) {
78
+ const src = obj.source;
79
+ if (typeof src === 'string') {
80
+ if (src.length > 0)
81
+ return true;
82
+ }
83
+ else if (isStructuredBinding(src)) {
84
+ return true;
85
+ }
86
+ }
87
+ // (2) props.source — pre-1.1.13 writer slot (back-compat).
88
+ const props = obj.props;
89
+ if (props !== null && typeof props === 'object' && 'source' in props) {
90
+ const src = props.source;
91
+ if (typeof src === 'string') {
92
+ if (src.length > 0)
93
+ return true;
94
+ }
95
+ else if (isStructuredBinding(src)) {
96
+ return true;
97
+ }
98
+ }
99
+ // (3) node.source_extended — YT4 cached/expanded.
100
+ if ('source_extended' in obj && isStructuredBinding(obj.source_extended)) {
101
+ return true;
102
+ }
103
+ return false;
104
+ }
105
+ /**
106
+ * Maps an `/elements` row to the table shape.
107
+ *
108
+ * - `label` falls back to `title` (REST surface varies — newer builds emit
109
+ * `label`, older emit `title` as the human-readable name).
110
+ * - `has_binding` honours an explicit boolean from the REST plugin, else
111
+ * derives from `props.source` presence.
112
+ */
113
+ export function mapElementRow(input) {
114
+ const label = asString(input.label) !== ''
115
+ ? asString(input.label)
116
+ : asString(input.title);
117
+ const explicitBinding = typeof input.has_binding === 'boolean' ? input.has_binding : undefined;
118
+ const path = asString(input.path);
119
+ // F-06: derive relative path by stripping `/templates/<id>/layout` prefix
120
+ // so the LLM table column shows uniquely-identifying suffix.
121
+ const relPath = path.replace(/^\/templates\/[^/]+\/layout/, '') || '/';
122
+ return {
123
+ path,
124
+ rel_path: relPath,
125
+ element_type: asString(input.element_type),
126
+ label,
127
+ has_binding: explicitBinding ?? hasSourceBinding(input),
128
+ };
129
+ }
130
+ function summarizeProps(props) {
131
+ if (props === null || typeof props !== 'object')
132
+ return '—';
133
+ const keys = Object.keys(props);
134
+ if (keys.length === 0)
135
+ return '—';
136
+ if (keys.length <= 6)
137
+ return keys.join(', ');
138
+ return `${keys.slice(0, 6).join(', ')}, …(+${String(keys.length - 6)} more)`;
139
+ }
140
+ function listChildTypes(children) {
141
+ if (children.length === 0)
142
+ return '—';
143
+ const seen = new Map();
144
+ for (const c of children) {
145
+ const t = typeof c.type === 'string' ? c.type : '?';
146
+ seen.set(t, (seen.get(t) ?? 0) + 1);
147
+ }
148
+ return [...seen.entries()].map(([t, n]) => (n > 1 ? `${t}×${String(n)}` : t)).join(', ');
149
+ }
150
+ export function buildElementDetail(payload) {
151
+ const children = Array.isArray(payload.children) ? payload.children : [];
152
+ return {
153
+ title: `Element ${payload.path}`,
154
+ groups: [
155
+ {
156
+ label: 'Identity',
157
+ entries: [
158
+ { key: 'path', label: 'Path', value: payload.path, format: 'code', copyable: true },
159
+ { key: 'element_type', label: 'Type', value: payload.element_type, format: 'badge' },
160
+ ...(typeof payload.label === 'string' && payload.label.length > 0
161
+ ? [{ key: 'label', label: 'Label', value: payload.label }]
162
+ : []),
163
+ ],
164
+ },
165
+ {
166
+ label: 'Props (summary)',
167
+ entries: [
168
+ { key: 'keys', label: 'Keys', value: summarizeProps(payload.props) },
169
+ ],
170
+ },
171
+ {
172
+ label: 'Children',
173
+ entries: [
174
+ { key: 'count', label: 'Count', value: children.length, format: 'text' },
175
+ { key: 'types', label: 'Types', value: listChildTypes(children) },
176
+ ],
177
+ },
178
+ {
179
+ label: 'Next steps',
180
+ entries: [
181
+ {
182
+ key: 'next',
183
+ label: 'Suggestions',
184
+ value: 'Use yootheme_builder_element_update_settings to change props, ' +
185
+ 'yootheme_builder_element_clone to duplicate, or ' +
186
+ 'yootheme_builder_element_delete to remove (requires confirm).',
187
+ },
188
+ ],
189
+ },
190
+ ],
191
+ };
192
+ }
193
+ //# sourceMappingURL=elements-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements-format.js","sourceRoot":"","sources":["../../../src/tools/format/elements-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Health format-sidecar — pure transforms for `yootheme_builder_health` and
3
+ * `yootheme_builder_diagnose`. Wave G.2.11 (Design §3.2 rows 1 / 2).
4
+ *
5
+ * Stateless helpers; the handlers themselves are tested separately in
6
+ * `tests/tools/health.test.ts` (probe orchestration + error paths).
7
+ *
8
+ * @license MIT
9
+ */
10
+ import type { DetailGroup, StatsResultOptions } from '@getimo/mcp-toolkit';
11
+ export interface HealthPayload {
12
+ plugin_version: string;
13
+ yootheme_loaded: boolean;
14
+ yootheme_version?: string | null;
15
+ wp_version?: string | null;
16
+ cms?: string;
17
+ cms_version?: string;
18
+ php_version?: string;
19
+ storage_type?: string;
20
+ storage_target?: string;
21
+ available_endpoints?: string[];
22
+ site_url?: string | null;
23
+ home_url?: string | null;
24
+ }
25
+ /**
26
+ * Build the detail body for `yootheme_builder_health`.
27
+ *
28
+ * Three groups:
29
+ * 1. **Plugin** — plugin_version + yootheme_loaded + yootheme_version
30
+ * 2. **Host** — wp_version + php_version + storage info
31
+ * 3. **Endpoints** — count + a comma-separated sample (no full enumeration)
32
+ *
33
+ * Endpoint count rather than a long list keeps the detail card compact
34
+ * (real installs expose 16+ endpoints across pages/elements/sources/etc.).
35
+ */
36
+ export declare function buildHealthDetail(payload: HealthPayload): {
37
+ groups: DetailGroup[];
38
+ title?: string;
39
+ };
40
+ /**
41
+ * Build the flat stats payload for `yootheme_builder_health` per
42
+ * Design-Doc §3.2 row 1 (Round-1 audit I1 fix). Returns the shape
43
+ * required by `@getimo/mcp-toolkit`'s `statsResult({ stats: [...] })`:
44
+ * a flat metric array (no nested groups) suitable for the stats-display
45
+ * Rich-Card variant.
46
+ *
47
+ * Metrics shipped (per Design-Doc §3.2 row 1 spec):
48
+ * plugin_version, yootheme_version, wp_version, php_version,
49
+ * storage_type, yootheme_loaded, endpoint_count
50
+ *
51
+ * `available_endpoints` is condensed to `endpoint_count` here — the
52
+ * full enumeration lives in the structuredContent payload for hosts
53
+ * that want it.
54
+ */
55
+ export declare function buildHealthStats(payload: HealthPayload): StatsResultOptions;
56
+ export interface DiagnoseChecks {
57
+ plugin_reachable: boolean;
58
+ plugin_version?: string;
59
+ yootheme_loaded?: boolean;
60
+ yootheme_version?: string | null;
61
+ endpoint_count?: number;
62
+ plugin_error?: string;
63
+ bearer_valid?: boolean;
64
+ bearer_error?: string;
65
+ site_url?: string | null;
66
+ home_url?: string | null;
67
+ }
68
+ /**
69
+ * Build the detail body for `yootheme_builder_diagnose`.
70
+ *
71
+ * Always 2 groups: Plugin probe + Bearer probe. The Bearer group is still
72
+ * present when the plugin is unreachable — its entries collapse to N/A so
73
+ * the structure stays stable across success / partial-fail / full-fail.
74
+ */
75
+ export declare function buildDiagnoseDetail(checks: DiagnoseChecks): {
76
+ groups: DetailGroup[];
77
+ title?: string;
78
+ };
79
+ //# sourceMappingURL=health-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/health-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI3E,MAAM,WAAW,aAAa;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IAMzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG;IACvD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CA6DA;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,kBAAkB,CA0C3E;AAID,MAAM,WAAW,cAAc;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG;IACzD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CA6BA"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Health format-sidecar — pure transforms for `yootheme_builder_health` and
3
+ * `yootheme_builder_diagnose`. Wave G.2.11 (Design §3.2 rows 1 / 2).
4
+ *
5
+ * Stateless helpers; the handlers themselves are tested separately in
6
+ * `tests/tools/health.test.ts` (probe orchestration + error paths).
7
+ *
8
+ * @license MIT
9
+ */
10
+ /**
11
+ * Build the detail body for `yootheme_builder_health`.
12
+ *
13
+ * Three groups:
14
+ * 1. **Plugin** — plugin_version + yootheme_loaded + yootheme_version
15
+ * 2. **Host** — wp_version + php_version + storage info
16
+ * 3. **Endpoints** — count + a comma-separated sample (no full enumeration)
17
+ *
18
+ * Endpoint count rather than a long list keeps the detail card compact
19
+ * (real installs expose 16+ endpoints across pages/elements/sources/etc.).
20
+ */
21
+ export function buildHealthDetail(payload) {
22
+ const endpoints = payload.available_endpoints ?? [];
23
+ const endpointPreview = summarizeEndpoints(endpoints);
24
+ // Cross-platform CMS label: WP emits wp_version, Joomla emits cms/cms_version.
25
+ const cmsLabel = payload.cms === 'joomla' ? 'Joomla version' : 'CMS / WP version';
26
+ const cmsVersion = payload.wp_version ?? payload.cms_version ?? null;
27
+ return {
28
+ title: 'YT Builder MCP — Health',
29
+ groups: [
30
+ {
31
+ label: 'Plugin',
32
+ entries: [
33
+ {
34
+ key: 'plugin_version',
35
+ label: 'Plugin version',
36
+ value: payload.plugin_version,
37
+ format: 'badge',
38
+ },
39
+ {
40
+ key: 'yootheme_loaded',
41
+ label: 'YOOtheme loaded',
42
+ value: payload.yootheme_loaded,
43
+ format: 'boolean',
44
+ },
45
+ {
46
+ key: 'yootheme_version',
47
+ label: 'YOOtheme version',
48
+ value: payload.yootheme_version ?? null,
49
+ },
50
+ ],
51
+ },
52
+ {
53
+ label: 'Host',
54
+ entries: [
55
+ { key: 'cms_version', label: cmsLabel, value: cmsVersion },
56
+ { key: 'php_version', label: 'PHP version', value: payload.php_version ?? null },
57
+ {
58
+ key: 'storage_type',
59
+ label: 'Storage type',
60
+ value: payload.storage_type ?? null,
61
+ format: 'badge',
62
+ },
63
+ {
64
+ key: 'storage_target',
65
+ label: 'Storage target',
66
+ value: payload.storage_target ?? null,
67
+ format: 'code',
68
+ copyable: true,
69
+ },
70
+ ],
71
+ },
72
+ {
73
+ label: 'Endpoints',
74
+ entries: [
75
+ { key: 'count', label: 'Count', value: endpoints.length, format: 'text' },
76
+ { key: 'sample', label: 'Sample', value: endpointPreview },
77
+ ],
78
+ },
79
+ ],
80
+ };
81
+ }
82
+ function summarizeEndpoints(endpoints) {
83
+ if (endpoints.length === 0)
84
+ return '—';
85
+ if (endpoints.length <= 6)
86
+ return endpoints.join(', ');
87
+ return `${endpoints.slice(0, 6).join(', ')}, …(+${String(endpoints.length - 6)} more)`;
88
+ }
89
+ /**
90
+ * Build the flat stats payload for `yootheme_builder_health` per
91
+ * Design-Doc §3.2 row 1 (Round-1 audit I1 fix). Returns the shape
92
+ * required by `@getimo/mcp-toolkit`'s `statsResult({ stats: [...] })`:
93
+ * a flat metric array (no nested groups) suitable for the stats-display
94
+ * Rich-Card variant.
95
+ *
96
+ * Metrics shipped (per Design-Doc §3.2 row 1 spec):
97
+ * plugin_version, yootheme_version, wp_version, php_version,
98
+ * storage_type, yootheme_loaded, endpoint_count
99
+ *
100
+ * `available_endpoints` is condensed to `endpoint_count` here — the
101
+ * full enumeration lives in the structuredContent payload for hosts
102
+ * that want it.
103
+ */
104
+ export function buildHealthStats(payload) {
105
+ return {
106
+ title: 'YT Builder MCP — Health',
107
+ stats: [
108
+ {
109
+ key: 'plugin_version',
110
+ label: 'Plugin version',
111
+ value: payload.plugin_version,
112
+ },
113
+ {
114
+ key: 'yootheme_version',
115
+ label: 'YOOtheme version',
116
+ value: payload.yootheme_version ?? '—',
117
+ },
118
+ {
119
+ key: 'wp_version',
120
+ label: payload.cms === 'joomla' ? 'Joomla version' : 'WordPress version',
121
+ value: payload.wp_version ?? payload.cms_version ?? '—',
122
+ },
123
+ {
124
+ key: 'php_version',
125
+ label: 'PHP version',
126
+ value: payload.php_version ?? '—',
127
+ },
128
+ {
129
+ key: 'storage_type',
130
+ label: 'Storage type',
131
+ value: payload.storage_type ?? '—',
132
+ },
133
+ {
134
+ key: 'yootheme_loaded',
135
+ label: 'YOOtheme loaded',
136
+ value: payload.yootheme_loaded,
137
+ },
138
+ {
139
+ key: 'endpoint_count',
140
+ label: 'Endpoint count',
141
+ value: (payload.available_endpoints ?? []).length,
142
+ format: 'number',
143
+ },
144
+ ],
145
+ };
146
+ }
147
+ /**
148
+ * Build the detail body for `yootheme_builder_diagnose`.
149
+ *
150
+ * Always 2 groups: Plugin probe + Bearer probe. The Bearer group is still
151
+ * present when the plugin is unreachable — its entries collapse to N/A so
152
+ * the structure stays stable across success / partial-fail / full-fail.
153
+ */
154
+ export function buildDiagnoseDetail(checks) {
155
+ const pluginEntries = [
156
+ { key: 'plugin_reachable', label: 'Reachable', value: checks.plugin_reachable, format: 'boolean' },
157
+ ];
158
+ if (typeof checks.plugin_version === 'string')
159
+ pluginEntries.push({ key: 'plugin_version', label: 'Plugin version', value: checks.plugin_version, format: 'badge' });
160
+ if (typeof checks.yootheme_loaded === 'boolean')
161
+ pluginEntries.push({ key: 'yootheme_loaded', label: 'YOOtheme loaded', value: checks.yootheme_loaded, format: 'boolean' });
162
+ if (typeof checks.yootheme_version === 'string')
163
+ pluginEntries.push({ key: 'yootheme_version', label: 'YOOtheme version', value: checks.yootheme_version });
164
+ if (typeof checks.endpoint_count === 'number')
165
+ pluginEntries.push({ key: 'endpoint_count', label: 'Endpoint count', value: checks.endpoint_count, format: 'text' });
166
+ if (typeof checks.plugin_error === 'string')
167
+ pluginEntries.push({ key: 'plugin_error', label: 'Plugin error', value: checks.plugin_error, format: 'code' });
168
+ const bearerEntries = typeof checks.bearer_valid === 'boolean'
169
+ ? [{ key: 'bearer_valid', label: 'Bearer valid', value: checks.bearer_valid, format: 'boolean' }]
170
+ : [{ key: 'bearer_valid', label: 'Bearer valid', value: null }];
171
+ if (typeof checks.bearer_error === 'string')
172
+ bearerEntries.push({ key: 'bearer_error', label: 'Bearer error', value: checks.bearer_error, format: 'code' });
173
+ return {
174
+ title: 'YT Builder MCP — Diagnose',
175
+ groups: [
176
+ { label: 'Plugin probe', entries: pluginEntries },
177
+ { label: 'Bearer probe', entries: bearerEntries },
178
+ ],
179
+ };
180
+ }
181
+ //# sourceMappingURL=health-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-format.js","sourceRoot":"","sources":["../../../src/tools/format/health-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Inspection format-sidecar — pure transforms for `element_types_list` (table)
3
+ * and `element_type_get_schema` (detail). Wave G.2.9 (Design §3.2 rows 11 / 12).
4
+ *
5
+ * These functions are stateless. The handlers themselves are tested separately
6
+ * in `tests/tools/inspection.test.ts` (shape pins on the REST URL).
7
+ *
8
+ * @license MIT
9
+ */
10
+ import type { DetailGroup, TableColumn } from '@getimo/mcp-toolkit';
11
+ /** Full columns for `yootheme_builder_element_types_list`. */
12
+ export declare const TYPES_TABLE_COLUMNS: readonly TableColumn[];
13
+ /** Compact columns kick in at 21+ rows — drop the boolean. */
14
+ export declare const TYPES_COMPACT_COLUMNS: readonly TableColumn[];
15
+ export interface TypeRow {
16
+ name: string;
17
+ label: string;
18
+ origin: string;
19
+ has_children_support: boolean;
20
+ }
21
+ /**
22
+ * Maps an `/element-types` row to the table shape.
23
+ *
24
+ * - `has_children_support` honours an explicit boolean (the canonical
25
+ * column key on the MCP-TS side). The PHP REST envelope surfaces both
26
+ * `has_children` (its canonical key) AND `has_children_support` (this
27
+ * alias) for every row — accept either to ride out a deploy skew where
28
+ * the wp-plugin and npm-package versions are temporarily out of step.
29
+ * Maria-Audit Stream C2 F-03 v2 (2026-05-22).
30
+ * - Falls back to presence of a `children` field on the type definition.
31
+ * - Missing fields default to empty.
32
+ */
33
+ export declare function mapTypeRow(input: Record<string, unknown>): TypeRow;
34
+ /**
35
+ * The REST plugin exposes element types in one of three shapes:
36
+ *
37
+ * 1. F-03 v2 (current — Maria-Audit Stream C2 2026-05-22): wrapper object
38
+ * `{items: [{name, label, origin, has_children, has_children_support,
39
+ * …}], total, element_types: [<string>, …]}`. This is the richest
40
+ * shape and the only one carrying label/origin/has_children — prefer
41
+ * it always.
42
+ * 2. Legacy F-03 v1: wrapper object `{element_types: [<string>, …]}`
43
+ * with name-only entries (older WP-plugin versions). Used as the
44
+ * back-compat fallback when `items` is absent.
45
+ * 3. Flat array of `{name, …}` objects — never seen on the live
46
+ * yt-builder-mcp REST but kept for paranoia.
47
+ */
48
+ export declare function flattenTypesPayload(payload: unknown): Record<string, unknown>[];
49
+ export interface BindingContractDetail {
50
+ kind: 'container' | 'item' | 'leaf' | 'none';
51
+ pattern: string;
52
+ child_type?: string;
53
+ binding_target_props?: readonly string[];
54
+ set_via_tool?: string;
55
+ discover_source_tool?: string;
56
+ do_not?: readonly string[];
57
+ minimal_layout?: Record<string, unknown>;
58
+ }
59
+ export declare function buildTypeSchemaDetail(payload: {
60
+ name: string;
61
+ label?: string;
62
+ origin?: string;
63
+ fields?: unknown;
64
+ bindingContract?: BindingContractDetail;
65
+ }): {
66
+ groups: DetailGroup[];
67
+ title?: string;
68
+ appendText?: string;
69
+ };
70
+ //# sourceMappingURL=inspection-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/inspection-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIpE,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAKrD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,EAAE,SAAS,WAAW,EAIvD,CAAC;AAYF,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAkBlE;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAkB/E;AA+LD,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,qBAAqB,CAAC;CAC3C,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAoFjE"}