@wootsup/yt-builder-mcp 1.0.0 → 1.0.1

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 (319) hide show
  1. package/manifest.json +1 -1
  2. package/package.json +1 -1
  3. package/skills/{yootheme-builder → yt-builder-mcp}/SKILL.md +1 -1
  4. package/dist/auth.d.ts +0 -39
  5. package/dist/auth.d.ts.map +0 -1
  6. package/dist/auth.js +0 -93
  7. package/dist/auth.js.map +0 -1
  8. package/dist/client.d.ts +0 -84
  9. package/dist/client.d.ts.map +0 -1
  10. package/dist/client.js +0 -151
  11. package/dist/client.js.map +0 -1
  12. package/dist/clients/claude-code.d.ts +0 -18
  13. package/dist/clients/claude-code.d.ts.map +0 -1
  14. package/dist/clients/claude-code.js +0 -53
  15. package/dist/clients/claude-code.js.map +0 -1
  16. package/dist/clients/claude-desktop.d.ts +0 -19
  17. package/dist/clients/claude-desktop.d.ts.map +0 -1
  18. package/dist/clients/claude-desktop.js +0 -56
  19. package/dist/clients/claude-desktop.js.map +0 -1
  20. package/dist/clients/cline.d.ts +0 -26
  21. package/dist/clients/cline.d.ts.map +0 -1
  22. package/dist/clients/cline.js +0 -80
  23. package/dist/clients/cline.js.map +0 -1
  24. package/dist/clients/codex-cli.d.ts +0 -42
  25. package/dist/clients/codex-cli.d.ts.map +0 -1
  26. package/dist/clients/codex-cli.js +0 -194
  27. package/dist/clients/codex-cli.js.map +0 -1
  28. package/dist/clients/continue.d.ts +0 -13
  29. package/dist/clients/continue.d.ts.map +0 -1
  30. package/dist/clients/continue.js +0 -52
  31. package/dist/clients/continue.js.map +0 -1
  32. package/dist/clients/cursor.d.ts +0 -12
  33. package/dist/clients/cursor.d.ts.map +0 -1
  34. package/dist/clients/cursor.js +0 -38
  35. package/dist/clients/cursor.js.map +0 -1
  36. package/dist/clients/gemini-cli.d.ts +0 -18
  37. package/dist/clients/gemini-cli.d.ts.map +0 -1
  38. package/dist/clients/gemini-cli.js +0 -44
  39. package/dist/clients/gemini-cli.js.map +0 -1
  40. package/dist/clients/home.d.ts +0 -14
  41. package/dist/clients/home.d.ts.map +0 -1
  42. package/dist/clients/home.js +0 -20
  43. package/dist/clients/home.js.map +0 -1
  44. package/dist/clients/index.d.ts +0 -52
  45. package/dist/clients/index.d.ts.map +0 -1
  46. package/dist/clients/index.js +0 -72
  47. package/dist/clients/index.js.map +0 -1
  48. package/dist/clients/roo-code.d.ts +0 -23
  49. package/dist/clients/roo-code.d.ts.map +0 -1
  50. package/dist/clients/roo-code.js +0 -69
  51. package/dist/clients/roo-code.js.map +0 -1
  52. package/dist/clients/zed.d.ts +0 -12
  53. package/dist/clients/zed.d.ts.map +0 -1
  54. package/dist/clients/zed.js +0 -41
  55. package/dist/clients/zed.js.map +0 -1
  56. package/dist/errors/hints.d.ts +0 -51
  57. package/dist/errors/hints.d.ts.map +0 -1
  58. package/dist/errors/hints.js +0 -95
  59. package/dist/errors/hints.js.map +0 -1
  60. package/dist/errors/mask.d.ts +0 -35
  61. package/dist/errors/mask.d.ts.map +0 -1
  62. package/dist/errors/mask.js +0 -49
  63. package/dist/errors/mask.js.map +0 -1
  64. package/dist/errors/sanitize.d.ts +0 -31
  65. package/dist/errors/sanitize.d.ts.map +0 -1
  66. package/dist/errors/sanitize.js +0 -90
  67. package/dist/errors/sanitize.js.map +0 -1
  68. package/dist/errors.d.ts +0 -42
  69. package/dist/errors.d.ts.map +0 -1
  70. package/dist/errors.js +0 -61
  71. package/dist/errors.js.map +0 -1
  72. package/dist/gateway/advanced-tool/discovery.d.ts +0 -19
  73. package/dist/gateway/advanced-tool/discovery.d.ts.map +0 -1
  74. package/dist/gateway/advanced-tool/discovery.js +0 -53
  75. package/dist/gateway/advanced-tool/discovery.js.map +0 -1
  76. package/dist/gateway/advanced-tool/domains.d.ts +0 -47
  77. package/dist/gateway/advanced-tool/domains.d.ts.map +0 -1
  78. package/dist/gateway/advanced-tool/domains.js +0 -94
  79. package/dist/gateway/advanced-tool/domains.js.map +0 -1
  80. package/dist/gateway/advanced-tool/execute.d.ts +0 -29
  81. package/dist/gateway/advanced-tool/execute.d.ts.map +0 -1
  82. package/dist/gateway/advanced-tool/execute.js +0 -54
  83. package/dist/gateway/advanced-tool/execute.js.map +0 -1
  84. package/dist/gateway/advanced-tool/index.d.ts +0 -36
  85. package/dist/gateway/advanced-tool/index.d.ts.map +0 -1
  86. package/dist/gateway/advanced-tool/index.js +0 -39
  87. package/dist/gateway/advanced-tool/index.js.map +0 -1
  88. package/dist/gateway/advanced-tool/register.d.ts +0 -18
  89. package/dist/gateway/advanced-tool/register.d.ts.map +0 -1
  90. package/dist/gateway/advanced-tool/register.js +0 -69
  91. package/dist/gateway/advanced-tool/register.js.map +0 -1
  92. package/dist/gateway/advanced-tool.d.ts +0 -13
  93. package/dist/gateway/advanced-tool.d.ts.map +0 -1
  94. package/dist/gateway/advanced-tool.js +0 -13
  95. package/dist/gateway/advanced-tool.js.map +0 -1
  96. package/dist/gateway/capturing-server.d.ts +0 -117
  97. package/dist/gateway/capturing-server.d.ts.map +0 -1
  98. package/dist/gateway/capturing-server.js +0 -103
  99. package/dist/gateway/capturing-server.js.map +0 -1
  100. package/dist/gateway/essentials.d.ts +0 -49
  101. package/dist/gateway/essentials.d.ts.map +0 -1
  102. package/dist/gateway/essentials.js +0 -79
  103. package/dist/gateway/essentials.js.map +0 -1
  104. package/dist/gateway/test-support.d.ts +0 -41
  105. package/dist/gateway/test-support.d.ts.map +0 -1
  106. package/dist/gateway/test-support.js +0 -60
  107. package/dist/gateway/test-support.js.map +0 -1
  108. package/dist/index.d.ts +0 -25
  109. package/dist/index.d.ts.map +0 -1
  110. package/dist/index.js +0 -77
  111. package/dist/index.js.map +0 -1
  112. package/dist/install-skill.d.ts +0 -35
  113. package/dist/install-skill.d.ts.map +0 -1
  114. package/dist/install-skill.js +0 -107
  115. package/dist/install-skill.js.map +0 -1
  116. package/dist/platform/index.d.ts +0 -49
  117. package/dist/platform/index.d.ts.map +0 -1
  118. package/dist/platform/index.js +0 -38
  119. package/dist/platform/index.js.map +0 -1
  120. package/dist/server.d.ts +0 -50
  121. package/dist/server.d.ts.map +0 -1
  122. package/dist/server.js +0 -153
  123. package/dist/server.js.map +0 -1
  124. package/dist/setup-cli.d.ts +0 -100
  125. package/dist/setup-cli.d.ts.map +0 -1
  126. package/dist/setup-cli.js +0 -355
  127. package/dist/setup-cli.js.map +0 -1
  128. package/dist/setup-prompts.d.ts +0 -41
  129. package/dist/setup-prompts.d.ts.map +0 -1
  130. package/dist/setup-prompts.js +0 -142
  131. package/dist/setup-prompts.js.map +0 -1
  132. package/dist/setup-token.d.ts +0 -38
  133. package/dist/setup-token.d.ts.map +0 -1
  134. package/dist/setup-token.js +0 -106
  135. package/dist/setup-token.js.map +0 -1
  136. package/dist/setup-wizard-defaults.d.ts +0 -43
  137. package/dist/setup-wizard-defaults.d.ts.map +0 -1
  138. package/dist/setup-wizard-defaults.js +0 -160
  139. package/dist/setup-wizard-defaults.js.map +0 -1
  140. package/dist/setup-wizard-handshake.d.ts +0 -25
  141. package/dist/setup-wizard-handshake.d.ts.map +0 -1
  142. package/dist/setup-wizard-handshake.js +0 -103
  143. package/dist/setup-wizard-handshake.js.map +0 -1
  144. package/dist/setup-wizard-types.d.ts +0 -148
  145. package/dist/setup-wizard-types.d.ts.map +0 -1
  146. package/dist/setup-wizard-types.js +0 -11
  147. package/dist/setup-wizard-types.js.map +0 -1
  148. package/dist/setup-wizard.d.ts +0 -33
  149. package/dist/setup-wizard.d.ts.map +0 -1
  150. package/dist/setup-wizard.js +0 -166
  151. package/dist/setup-wizard.js.map +0 -1
  152. package/dist/setup.d.ts +0 -17
  153. package/dist/setup.d.ts.map +0 -1
  154. package/dist/setup.js +0 -33
  155. package/dist/setup.js.map +0 -1
  156. package/dist/skill-loader.d.ts +0 -51
  157. package/dist/skill-loader.d.ts.map +0 -1
  158. package/dist/skill-loader.js +0 -78
  159. package/dist/skill-loader.js.map +0 -1
  160. package/dist/tools/elements/builders.d.ts +0 -24
  161. package/dist/tools/elements/builders.d.ts.map +0 -1
  162. package/dist/tools/elements/builders.js +0 -177
  163. package/dist/tools/elements/builders.js.map +0 -1
  164. package/dist/tools/elements/handlers-write.d.ts +0 -49
  165. package/dist/tools/elements/handlers-write.d.ts.map +0 -1
  166. package/dist/tools/elements/handlers-write.js +0 -148
  167. package/dist/tools/elements/handlers-write.js.map +0 -1
  168. package/dist/tools/elements/handlers.d.ts +0 -61
  169. package/dist/tools/elements/handlers.d.ts.map +0 -1
  170. package/dist/tools/elements/handlers.js +0 -170
  171. package/dist/tools/elements/handlers.js.map +0 -1
  172. package/dist/tools/elements/index.d.ts +0 -28
  173. package/dist/tools/elements/index.d.ts.map +0 -1
  174. package/dist/tools/elements/index.js +0 -27
  175. package/dist/tools/elements/index.js.map +0 -1
  176. package/dist/tools/elements.d.ts +0 -13
  177. package/dist/tools/elements.d.ts.map +0 -1
  178. package/dist/tools/elements.js +0 -13
  179. package/dist/tools/elements.js.map +0 -1
  180. package/dist/tools/elicitation.d.ts +0 -87
  181. package/dist/tools/elicitation.d.ts.map +0 -1
  182. package/dist/tools/elicitation.js +0 -100
  183. package/dist/tools/elicitation.js.map +0 -1
  184. package/dist/tools/format/elements-format.d.ts +0 -40
  185. package/dist/tools/format/elements-format.d.ts.map +0 -1
  186. package/dist/tools/format/elements-format.js +0 -194
  187. package/dist/tools/format/elements-format.js.map +0 -1
  188. package/dist/tools/format/health-format.d.ts +0 -73
  189. package/dist/tools/format/health-format.d.ts.map +0 -1
  190. package/dist/tools/format/health-format.js +0 -178
  191. package/dist/tools/format/health-format.js.map +0 -1
  192. package/dist/tools/format/inspection-format.d.ts +0 -58
  193. package/dist/tools/format/inspection-format.d.ts.map +0 -1
  194. package/dist/tools/format/inspection-format.js +0 -164
  195. package/dist/tools/format/inspection-format.js.map +0 -1
  196. package/dist/tools/format/pages-format.d.ts +0 -42
  197. package/dist/tools/format/pages-format.d.ts.map +0 -1
  198. package/dist/tools/format/pages-format.js +0 -113
  199. package/dist/tools/format/pages-format.js.map +0 -1
  200. package/dist/tools/format/sources-format.d.ts +0 -25
  201. package/dist/tools/format/sources-format.d.ts.map +0 -1
  202. package/dist/tools/format/sources-format.js +0 -208
  203. package/dist/tools/format/sources-format.js.map +0 -1
  204. package/dist/tools/health.d.ts +0 -22
  205. package/dist/tools/health.d.ts.map +0 -1
  206. package/dist/tools/health.js +0 -147
  207. package/dist/tools/health.js.map +0 -1
  208. package/dist/tools/index.d.ts +0 -23
  209. package/dist/tools/index.d.ts.map +0 -1
  210. package/dist/tools/index.js +0 -25
  211. package/dist/tools/index.js.map +0 -1
  212. package/dist/tools/inspection.d.ts +0 -14
  213. package/dist/tools/inspection.d.ts.map +0 -1
  214. package/dist/tools/inspection.js +0 -125
  215. package/dist/tools/inspection.js.map +0 -1
  216. package/dist/tools/layout-flatten.d.ts +0 -75
  217. package/dist/tools/layout-flatten.d.ts.map +0 -1
  218. package/dist/tools/layout-flatten.js +0 -107
  219. package/dist/tools/layout-flatten.js.map +0 -1
  220. package/dist/tools/multi-items/builders.d.ts +0 -23
  221. package/dist/tools/multi-items/builders.d.ts.map +0 -1
  222. package/dist/tools/multi-items/builders.js +0 -56
  223. package/dist/tools/multi-items/builders.js.map +0 -1
  224. package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -28
  225. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
  226. package/dist/tools/multi-items/clean-implode-handler.js +0 -40
  227. package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
  228. package/dist/tools/multi-items/index.d.ts +0 -18
  229. package/dist/tools/multi-items/index.d.ts.map +0 -1
  230. package/dist/tools/multi-items/index.js +0 -18
  231. package/dist/tools/multi-items/index.js.map +0 -1
  232. package/dist/tools/multi-items/inspect-handler.d.ts +0 -41
  233. package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
  234. package/dist/tools/multi-items/inspect-handler.js +0 -50
  235. package/dist/tools/multi-items/inspect-handler.js.map +0 -1
  236. package/dist/tools/multi-items/item-container-map.d.ts +0 -41
  237. package/dist/tools/multi-items/item-container-map.d.ts.map +0 -1
  238. package/dist/tools/multi-items/item-container-map.js +0 -73
  239. package/dist/tools/multi-items/item-container-map.js.map +0 -1
  240. package/dist/tools/pages/builders.d.ts +0 -14
  241. package/dist/tools/pages/builders.d.ts.map +0 -1
  242. package/dist/tools/pages/builders.js +0 -115
  243. package/dist/tools/pages/builders.js.map +0 -1
  244. package/dist/tools/pages/handlers-read.d.ts +0 -33
  245. package/dist/tools/pages/handlers-read.d.ts.map +0 -1
  246. package/dist/tools/pages/handlers-read.js +0 -161
  247. package/dist/tools/pages/handlers-read.js.map +0 -1
  248. package/dist/tools/pages/handlers-write.d.ts +0 -21
  249. package/dist/tools/pages/handlers-write.d.ts.map +0 -1
  250. package/dist/tools/pages/handlers-write.js +0 -52
  251. package/dist/tools/pages/handlers-write.js.map +0 -1
  252. package/dist/tools/pages/index.d.ts +0 -17
  253. package/dist/tools/pages/index.d.ts.map +0 -1
  254. package/dist/tools/pages/index.js +0 -17
  255. package/dist/tools/pages/index.js.map +0 -1
  256. package/dist/tools/pages/schemas.d.ts +0 -30
  257. package/dist/tools/pages/schemas.d.ts.map +0 -1
  258. package/dist/tools/pages/schemas.js +0 -30
  259. package/dist/tools/pages/schemas.js.map +0 -1
  260. package/dist/tools/pages.d.ts +0 -13
  261. package/dist/tools/pages.d.ts.map +0 -1
  262. package/dist/tools/pages.js +0 -13
  263. package/dist/tools/pages.js.map +0 -1
  264. package/dist/tools/progress-phases.d.ts +0 -46
  265. package/dist/tools/progress-phases.d.ts.map +0 -1
  266. package/dist/tools/progress-phases.js +0 -48
  267. package/dist/tools/progress-phases.js.map +0 -1
  268. package/dist/tools/shared-schemas.d.ts +0 -15
  269. package/dist/tools/shared-schemas.d.ts.map +0 -1
  270. package/dist/tools/shared-schemas.js +0 -30
  271. package/dist/tools/shared-schemas.js.map +0 -1
  272. package/dist/tools/sources/builders.d.ts +0 -13
  273. package/dist/tools/sources/builders.d.ts.map +0 -1
  274. package/dist/tools/sources/builders.js +0 -103
  275. package/dist/tools/sources/builders.js.map +0 -1
  276. package/dist/tools/sources/handlers-bind.d.ts +0 -28
  277. package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
  278. package/dist/tools/sources/handlers-bind.js +0 -129
  279. package/dist/tools/sources/handlers-bind.js.map +0 -1
  280. package/dist/tools/sources/handlers.d.ts +0 -45
  281. package/dist/tools/sources/handlers.d.ts.map +0 -1
  282. package/dist/tools/sources/handlers.js +0 -91
  283. package/dist/tools/sources/handlers.js.map +0 -1
  284. package/dist/tools/sources/index.d.ts +0 -19
  285. package/dist/tools/sources/index.d.ts.map +0 -1
  286. package/dist/tools/sources/index.js +0 -18
  287. package/dist/tools/sources/index.js.map +0 -1
  288. package/dist/tools/sources.d.ts +0 -14
  289. package/dist/tools/sources.d.ts.map +0 -1
  290. package/dist/tools/sources.js +0 -14
  291. package/dist/tools/sources.js.map +0 -1
  292. package/dist/tools/sparse-fields.d.ts +0 -80
  293. package/dist/tools/sparse-fields.d.ts.map +0 -1
  294. package/dist/tools/sparse-fields.js +0 -144
  295. package/dist/tools/sparse-fields.js.map +0 -1
  296. package/dist/tools/tool-builder/annotations.d.ts +0 -55
  297. package/dist/tools/tool-builder/annotations.d.ts.map +0 -1
  298. package/dist/tools/tool-builder/annotations.js +0 -86
  299. package/dist/tools/tool-builder/annotations.js.map +0 -1
  300. package/dist/tools/tool-builder/define.d.ts +0 -31
  301. package/dist/tools/tool-builder/define.d.ts.map +0 -1
  302. package/dist/tools/tool-builder/define.js +0 -31
  303. package/dist/tools/tool-builder/define.js.map +0 -1
  304. package/dist/tools/tool-builder/index.d.ts +0 -28
  305. package/dist/tools/tool-builder/index.d.ts.map +0 -1
  306. package/dist/tools/tool-builder/index.js +0 -27
  307. package/dist/tools/tool-builder/index.js.map +0 -1
  308. package/dist/tools/tool-builder/results.d.ts +0 -59
  309. package/dist/tools/tool-builder/results.d.ts.map +0 -1
  310. package/dist/tools/tool-builder/results.js +0 -125
  311. package/dist/tools/tool-builder/results.js.map +0 -1
  312. package/dist/tools/tool-builder/types.d.ts +0 -82
  313. package/dist/tools/tool-builder/types.d.ts.map +0 -1
  314. package/dist/tools/tool-builder/types.js +0 -9
  315. package/dist/tools/tool-builder/types.js.map +0 -1
  316. package/dist/tools/tool-builder.d.ts +0 -16
  317. package/dist/tools/tool-builder.d.ts.map +0 -1
  318. package/dist/tools/tool-builder.js +0 -16
  319. package/dist/tools/tool-builder.js.map +0 -1
@@ -1,72 +0,0 @@
1
- /**
2
- * Client-config-writers.
3
- *
4
- * Each supported AI client has its own module that knows
5
- * - which config file to read/write
6
- * - what JSON shape to inject under `mcpServers` (or equivalent)
7
- *
8
- * The setup wizard calls `detectAvailableClients()` to enumerate, then
9
- * `writeClientConfig({client, server})` once the user picks one.
10
- *
11
- * @license MIT
12
- */
13
- import { existsSync } from 'node:fs';
14
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
15
- import { dirname } from 'node:path';
16
- import { claudeCodeClient } from './claude-code.js';
17
- import { claudeDesktopClient } from './claude-desktop.js';
18
- import { clineClient } from './cline.js';
19
- import { codexCliClient } from './codex-cli.js';
20
- import { continueClient } from './continue.js';
21
- import { cursorClient } from './cursor.js';
22
- import { geminiCliClient } from './gemini-cli.js';
23
- import { rooCodeClient } from './roo-code.js';
24
- import { zedClient } from './zed.js';
25
- export const ALL_CLIENTS = [
26
- claudeDesktopClient,
27
- claudeCodeClient,
28
- cursorClient,
29
- zedClient,
30
- continueClient,
31
- clineClient,
32
- rooCodeClient,
33
- codexCliClient,
34
- geminiCliClient,
35
- ];
36
- export function detectAvailableClients() {
37
- return ALL_CLIENTS.map((c) => ({
38
- id: c.id,
39
- label: c.label,
40
- configPath: c.configPath(),
41
- detected: c.isDetected(),
42
- }));
43
- }
44
- export function findClient(id) {
45
- return ALL_CLIENTS.find((c) => c.id === id);
46
- }
47
- /**
48
- * Shared helper: read a JSON file, mutate via callback, write back.
49
- * Creates parent directories if missing.
50
- */
51
- export async function patchJsonFile(path, mutator) {
52
- let current = {};
53
- if (existsSync(path)) {
54
- try {
55
- const raw = await readFile(path, 'utf-8');
56
- const parsed = raw.trim() === '' ? {} : JSON.parse(raw);
57
- if (parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)) {
58
- current = parsed;
59
- }
60
- }
61
- catch {
62
- current = {};
63
- }
64
- }
65
- else {
66
- await mkdir(dirname(path), { recursive: true });
67
- }
68
- const next = mutator(current);
69
- await writeFile(path, JSON.stringify(next, null, 2) + '\n', 'utf-8');
70
- }
71
- export { claudeCodeClient, claudeDesktopClient, clineClient, codexCliClient, continueClient, cursorClient, geminiCliClient, rooCodeClient, zedClient, };
72
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAmBrC,MAAM,CAAC,MAAM,WAAW,GAA4B;IAChD,mBAAmB;IACnB,gBAAgB;IAChB,YAAY;IACZ,SAAS;IACT,cAAc;IACd,WAAW;IACX,aAAa;IACb,cAAc;IACd,eAAe;CAClB,CAAC;AASF,MAAM,UAAU,sBAAsB;IAClC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE;QAC1B,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;KAC3B,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAU;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,IAAY,EACZ,OAAsE;IAEtE,IAAI,OAAO,GAA4B,EAAE,CAAC;IAC1C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;YACrE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1E,OAAO,GAAG,MAAiC,CAAC;YAChD,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,GAAG,EAAE,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,GACZ,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Roo Code MCP config writer.
3
- *
4
- * Roo Code (formerly Roo Cline) is the VS Code extension
5
- * `rooveterinaryinc.roo-cline` — a fork of Cline. It follows the
6
- * same VS Code globalStorage layout but its own settings file is
7
- * named `mcp_settings.json` (without the legacy `cline_` prefix
8
- * its parent uses).
9
- *
10
- * <vsCodeUserDir>/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
11
- *
12
- * VS Code's `<vsCodeUserDir>` is:
13
- * macOS: ~/Library/Application Support/Code/User
14
- * Linux: ~/.config/Code/User
15
- * Windows: %APPDATA%\Code\User
16
- *
17
- * Schema mirrors Claude Desktop's `mcpServers` map.
18
- *
19
- * @license MIT
20
- */
21
- import { type ClientWriter } from './index.js';
22
- export declare const rooCodeClient: ClientWriter;
23
- //# sourceMappingURL=roo-code.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roo-code.d.ts","sourceRoot":"","sources":["../../src/clients/roo-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAkCpF,eAAO,MAAM,aAAa,EAAE,YAqB3B,CAAC"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Roo Code MCP config writer.
3
- *
4
- * Roo Code (formerly Roo Cline) is the VS Code extension
5
- * `rooveterinaryinc.roo-cline` — a fork of Cline. It follows the
6
- * same VS Code globalStorage layout but its own settings file is
7
- * named `mcp_settings.json` (without the legacy `cline_` prefix
8
- * its parent uses).
9
- *
10
- * <vsCodeUserDir>/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
11
- *
12
- * VS Code's `<vsCodeUserDir>` is:
13
- * macOS: ~/Library/Application Support/Code/User
14
- * Linux: ~/.config/Code/User
15
- * Windows: %APPDATA%\Code\User
16
- *
17
- * Schema mirrors Claude Desktop's `mcpServers` map.
18
- *
19
- * @license MIT
20
- */
21
- import { existsSync } from 'node:fs';
22
- import { platform } from 'node:os';
23
- import { join } from 'node:path';
24
- import { userHome } from './home.js';
25
- import { patchJsonFile } from './index.js';
26
- const EXTENSION_ID = 'rooveterinaryinc.roo-cline';
27
- const SETTINGS_FILENAME = 'mcp_settings.json';
28
- function vsCodeUserDir() {
29
- const home = userHome();
30
- switch (platform()) {
31
- case 'darwin':
32
- return join(home, 'Library', 'Application Support', 'Code', 'User');
33
- case 'win32': {
34
- const appData = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
35
- return join(appData, 'Code', 'User');
36
- }
37
- default:
38
- return join(home, '.config', 'Code', 'User');
39
- }
40
- }
41
- function configPath() {
42
- return join(vsCodeUserDir(), 'globalStorage', EXTENSION_ID, 'settings', SETTINGS_FILENAME);
43
- }
44
- function isDetected() {
45
- const extDir = join(vsCodeUserDir(), 'globalStorage', EXTENSION_ID);
46
- return existsSync(extDir) || existsSync(configPath());
47
- }
48
- export const rooCodeClient = {
49
- id: 'roo-code',
50
- label: 'Roo Code (VS Code)',
51
- configPath,
52
- isDetected,
53
- apply: async (serverName, config) => {
54
- await patchJsonFile(configPath(), (current) => {
55
- const servers = current.mcpServers !== null &&
56
- typeof current.mcpServers === 'object' &&
57
- !Array.isArray(current.mcpServers)
58
- ? { ...current.mcpServers }
59
- : {};
60
- servers[serverName] = {
61
- command: config.command,
62
- args: config.args,
63
- env: config.env,
64
- };
65
- return { ...current, mcpServers: servers };
66
- });
67
- },
68
- };
69
- //# sourceMappingURL=roo-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roo-code.js","sourceRoot":"","sources":["../../src/clients/roo-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAA2C,MAAM,YAAY,CAAC;AAEpF,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAClD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,SAAS,aAAa;IAClB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACjB,KAAK,QAAQ;YACT,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxE,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QACD;YACI,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;AACL,CAAC;AAED,SAAS,UAAU;IACf,OAAO,IAAI,CACP,aAAa,EAAE,EACf,eAAe,EACf,YAAY,EACZ,UAAU,EACV,iBAAiB,CACpB,CAAC;AACN,CAAC;AAED,SAAS,UAAU;IACf,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACpE,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAiB;IACvC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,oBAAoB;IAC3B,UAAU;IACV,UAAU;IACV,KAAK,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAuB,EAAE,EAAE;QACzD,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GACT,OAAO,CAAC,UAAU,KAAK,IAAI;gBAC3B,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;gBACtC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9B,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,UAAsC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;aAClB,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Zed MCP config writer.
3
- *
4
- * Global: ~/.config/zed/settings.json (JSONC; we treat as JSON for write)
5
- *
6
- * Schema: `context_servers` map (Zed-specific naming).
7
- *
8
- * @license MIT
9
- */
10
- import { type ClientWriter } from './index.js';
11
- export declare const zedClient: ClientWriter;
12
- //# sourceMappingURL=zed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zed.d.ts","sourceRoot":"","sources":["../../src/clients/zed.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAMpF,eAAO,MAAM,SAAS,EAAE,YAwBvB,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Zed MCP config writer.
3
- *
4
- * Global: ~/.config/zed/settings.json (JSONC; we treat as JSON for write)
5
- *
6
- * Schema: `context_servers` map (Zed-specific naming).
7
- *
8
- * @license MIT
9
- */
10
- import { existsSync } from 'node:fs';
11
- import { join } from 'node:path';
12
- import { userHome } from './home.js';
13
- import { patchJsonFile } from './index.js';
14
- function configPath() {
15
- return join(userHome(), '.config', 'zed', 'settings.json');
16
- }
17
- export const zedClient = {
18
- id: 'zed',
19
- label: 'Zed',
20
- configPath,
21
- isDetected: () => existsSync(join(userHome(), '.config', 'zed')),
22
- apply: async (serverName, config) => {
23
- await patchJsonFile(configPath(), (current) => {
24
- const servers = current.context_servers !== null &&
25
- typeof current.context_servers === 'object' &&
26
- !Array.isArray(current.context_servers)
27
- ? { ...current.context_servers }
28
- : {};
29
- servers[serverName] = {
30
- command: {
31
- path: config.command,
32
- args: config.args,
33
- env: config.env,
34
- },
35
- settings: {},
36
- };
37
- return { ...current, context_servers: servers };
38
- });
39
- },
40
- };
41
- //# sourceMappingURL=zed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zed.js","sourceRoot":"","sources":["../../src/clients/zed.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAA2C,MAAM,YAAY,CAAC;AAEpF,SAAS,UAAU;IACf,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAiB;IACnC,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,KAAK;IACZ,UAAU;IACV,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,KAAK,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAuB,EAAE,EAAE;QACzD,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GACT,OAAO,CAAC,eAAe,KAAK,IAAI;gBAChC,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;gBAC3C,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;gBACnC,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,eAA2C,EAAE;gBAC7D,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM,CAAC,OAAO;oBACpB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;iBAClB;gBACD,QAAQ,EAAE,EAAE;aACf,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Error-code taxonomy + AI-friendly hint messages.
3
- *
4
- * `classify(status)` maps the HTTP status of a failed REST call into one
5
- * of nine canonical `YtbErrorCode` values. `hintFor(code)` returns a
6
- * recovery-oriented hint string the LLM can act on without re-reading the
7
- * raw error message.
8
- *
9
- * Centralising the taxonomy means every tool's catch-block emits the
10
- * same vocabulary, and the audit gate can pin the exact set of hints
11
- * that ship.
12
- *
13
- * Reference: `apimapper-mcp/src/modules/apimapper/client.ts:hintFor`
14
- * (Wave G.6.1 — same shape, ported for the YOOtheme Builder REST API).
15
- *
16
- * @license MIT
17
- */
18
- /**
19
- * Canonical YOOtheme-Builder-MCP error code union.
20
- *
21
- * Order is documentary only — `classify()` returns whichever applies.
22
- */
23
- export type YtbErrorCode = 'auth_invalid' | 'auth_missing' | 'forbidden' | 'not_found' | 'conflict_etag' | 'validation_error' | 'rate_limit' | 'server_error' | 'network';
24
- /** Options for `classify()` — second-tier signals (e.g. response headers). */
25
- export interface ClassifyOptions {
26
- /**
27
- * Whether the response carried a `WWW-Authenticate` header. Used to
28
- * distinguish `auth_missing` (no bearer sent → server didn't ask for one
29
- * via WWW-Authenticate; misconfigured client) from `auth_invalid`
30
- * (server rejected the bearer that WAS sent).
31
- */
32
- readonly hasWwwAuthenticate?: boolean;
33
- }
34
- /**
35
- * Map an HTTP status into a `YtbErrorCode`.
36
- *
37
- * Special-cases:
38
- * - 401 with `hasWwwAuthenticate: false` → `auth_missing`
39
- * - 401 with `hasWwwAuthenticate: true` → `auth_invalid` (default)
40
- * - 412 (Precondition Failed) is treated as `conflict_etag` alongside 409.
41
- * - Status 0 (no response) → `network`.
42
- * - Anything we don't recognise (incl. 2xx) → `server_error` so the agent
43
- * sees a non-empty hint rather than silently swallowing.
44
- */
45
- export declare function classify(status: number, options?: ClassifyOptions): YtbErrorCode;
46
- /**
47
- * Return a focused hint describing how the agent (or the user) can
48
- * recover from a given error code. Always non-empty.
49
- */
50
- export declare function hintFor(code: YtbErrorCode): string;
51
- //# sourceMappingURL=hints.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hints.d.ts","sourceRoot":"","sources":["../../src/errors/hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAClB,cAAc,GACd,cAAc,GACd,WAAW,GACX,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,YAAY,GACZ,cAAc,GACd,SAAS,CAAC;AAEhB,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,YAAY,CAYpF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA2DlD"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Error-code taxonomy + AI-friendly hint messages.
3
- *
4
- * `classify(status)` maps the HTTP status of a failed REST call into one
5
- * of nine canonical `YtbErrorCode` values. `hintFor(code)` returns a
6
- * recovery-oriented hint string the LLM can act on without re-reading the
7
- * raw error message.
8
- *
9
- * Centralising the taxonomy means every tool's catch-block emits the
10
- * same vocabulary, and the audit gate can pin the exact set of hints
11
- * that ship.
12
- *
13
- * Reference: `apimapper-mcp/src/modules/apimapper/client.ts:hintFor`
14
- * (Wave G.6.1 — same shape, ported for the YOOtheme Builder REST API).
15
- *
16
- * @license MIT
17
- */
18
- /**
19
- * Map an HTTP status into a `YtbErrorCode`.
20
- *
21
- * Special-cases:
22
- * - 401 with `hasWwwAuthenticate: false` → `auth_missing`
23
- * - 401 with `hasWwwAuthenticate: true` → `auth_invalid` (default)
24
- * - 412 (Precondition Failed) is treated as `conflict_etag` alongside 409.
25
- * - Status 0 (no response) → `network`.
26
- * - Anything we don't recognise (incl. 2xx) → `server_error` so the agent
27
- * sees a non-empty hint rather than silently swallowing.
28
- */
29
- export function classify(status, options = {}) {
30
- if (status === 0)
31
- return 'network';
32
- if (status === 401) {
33
- return options.hasWwwAuthenticate === false ? 'auth_missing' : 'auth_invalid';
34
- }
35
- if (status === 403)
36
- return 'forbidden';
37
- if (status === 404)
38
- return 'not_found';
39
- if (status === 409 || status === 412)
40
- return 'conflict_etag';
41
- if (status === 422)
42
- return 'validation_error';
43
- if (status === 429)
44
- return 'rate_limit';
45
- if (status >= 500)
46
- return 'server_error';
47
- return 'server_error';
48
- }
49
- /**
50
- * Return a focused hint describing how the agent (or the user) can
51
- * recover from a given error code. Always non-empty.
52
- */
53
- export function hintFor(code) {
54
- switch (code) {
55
- case 'auth_invalid':
56
- return ('Bearer key rejected (HTTP 401, key signature invalid or revoked). ' +
57
- 'Open wp-admin → Tools → "YT Builder MCP" → Bearer Keys, regenerate the ' +
58
- 'key, and update YTB_MCP_BEARER_TOKEN in your AI-client config. ' +
59
- 'Then restart the client.');
60
- case 'auth_missing':
61
- return ('No Bearer credential sent (HTTP 401 without WWW-Authenticate echo). ' +
62
- 'Set the YTB_MCP_BEARER_TOKEN environment variable in your AI-client ' +
63
- 'MCP configuration to a key generated by the plugin Settings page.');
64
- case 'forbidden':
65
- return ('Permission denied (HTTP 403). Your Bearer key lacks the required ' +
66
- 'scope for this operation. Regenerate a key with the correct ' +
67
- 'scope (read / write / admin) in the plugin Settings page.');
68
- case 'not_found':
69
- return ('Resource not found (HTTP 404). Use the matching `*_list` tool ' +
70
- '(yootheme_builder_pages_list, yootheme_builder_element_list, …) ' +
71
- 'to discover valid IDs / paths. IDs are case-sensitive.');
72
- case 'conflict_etag':
73
- return ('Optimistic-lock failed (HTTP 409/412). Another writer changed ' +
74
- 'the state since you fetched it. Call yootheme_builder_get_etag ' +
75
- 'again to get the fresh ETag, then retry your write with that ETag.');
76
- case 'validation_error':
77
- return ('Request body failed validation (HTTP 422). Re-check the tool\'s ' +
78
- 'inputSchema and the element-type schema via ' +
79
- 'yootheme_builder_element_type_get_schema for valid `props` keys.');
80
- case 'rate_limit':
81
- return ('Rate limit reached (HTTP 429). This is likely Cloudflare or ' +
82
- 'another WAF in front of WordPress, not the plugin itself. Wait ' +
83
- 'a few seconds and retry. If persistent, check the WAF rate-limit ' +
84
- 'rule in your Cloudflare dashboard.');
85
- case 'server_error':
86
- return ('Upstream server error (HTTP 5xx or unexpected status). Retry ' +
87
- 'after a short delay; if it persists, check the WordPress error ' +
88
- 'log (wp-content/debug.log) for the underlying PHP exception.');
89
- case 'network':
90
- return ('Network or timeout error reaching WordPress. Verify ' +
91
- 'YTB_MCP_WP_URL is correct and reachable from this host (try ' +
92
- '`curl <YTB_MCP_WP_URL>/wp-json/yt-builder-mcp/v1/health`).');
93
- }
94
- }
95
- //# sourceMappingURL=hints.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hints.js","sourceRoot":"","sources":["../../src/errors/hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA6BH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,UAA2B,EAAE;IAClE,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAClF,CAAC;IACD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,eAAe,CAAC;IAC7D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC9C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACxC,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC;IACzC,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,IAAkB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,cAAc;YACf,OAAO,CACH,oEAAoE;gBACpE,yEAAyE;gBACzE,iEAAiE;gBACjE,0BAA0B,CAC7B,CAAC;QACN,KAAK,cAAc;YACf,OAAO,CACH,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE,CACtE,CAAC;QACN,KAAK,WAAW;YACZ,OAAO,CACH,mEAAmE;gBACnE,8DAA8D;gBAC9D,2DAA2D,CAC9D,CAAC;QACN,KAAK,WAAW;YACZ,OAAO,CACH,gEAAgE;gBAChE,kEAAkE;gBAClE,wDAAwD,CAC3D,CAAC;QACN,KAAK,eAAe;YAChB,OAAO,CACH,gEAAgE;gBAChE,iEAAiE;gBACjE,oEAAoE,CACvE,CAAC;QACN,KAAK,kBAAkB;YACnB,OAAO,CACH,kEAAkE;gBAClE,8CAA8C;gBAC9C,kEAAkE,CACrE,CAAC;QACN,KAAK,YAAY;YACb,OAAO,CACH,8DAA8D;gBAC9D,iEAAiE;gBACjE,mEAAmE;gBACnE,oCAAoC,CACvC,CAAC;QACN,KAAK,cAAc;YACf,OAAO,CACH,+DAA+D;gBAC/D,iEAAiE;gBACjE,8DAA8D,CACjE,CAAC;QACN,KAAK,SAAS;YACV,OAAO,CACH,sDAAsD;gBACtD,8DAA8D;gBAC9D,4DAA4D,CAC/D,CAAC;IACV,CAAC;AACL,CAAC"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Secret-masking helpers — Wave G.6.2.
3
- *
4
- * `maskBearerToken` rewrites any `Bearer <token>` substring to
5
- * `Bearer ***masked***`. `sanitizeForLogs` additionally truncates very
6
- * long strings so a paste of a multi-MB stack trace can't blow the
7
- * context budget.
8
- *
9
- * Defense-in-depth: this is the single choke-point for any string
10
- * (error message, response body excerpt, log line) that crosses the
11
- * MCP boundary into the LLM's view.
12
- *
13
- * @license MIT
14
- */
15
- /** Maximum length for a sanitised log string. Anything longer is truncated. */
16
- export declare const LOG_TRUNCATION_LIMIT = 2000;
17
- /**
18
- * Replace every `Bearer <opaque-token>` substring with `Bearer ***masked***`.
19
- *
20
- * Token-shape is intentionally permissive — we'd rather over-mask than
21
- * leak. Any non-whitespace run following the literal `Bearer ` is treated
22
- * as the token and replaced.
23
- */
24
- export declare function maskBearerToken(input: string): string;
25
- /**
26
- * Sanitise a string before it joins the LLM-visible output:
27
- * 1. mask any Bearer tokens
28
- * 2. truncate to `LOG_TRUNCATION_LIMIT` chars with a clear suffix
29
- *
30
- * Non-string inputs (null / undefined) collapse to an empty string —
31
- * caller code typically passes `error?.message` and `?? ''` is a common
32
- * upstream pattern.
33
- */
34
- export declare function sanitizeForLogs(input: string): string;
35
- //# sourceMappingURL=mask.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../src/errors/mask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Secret-masking helpers — Wave G.6.2.
3
- *
4
- * `maskBearerToken` rewrites any `Bearer <token>` substring to
5
- * `Bearer ***masked***`. `sanitizeForLogs` additionally truncates very
6
- * long strings so a paste of a multi-MB stack trace can't blow the
7
- * context budget.
8
- *
9
- * Defense-in-depth: this is the single choke-point for any string
10
- * (error message, response body excerpt, log line) that crosses the
11
- * MCP boundary into the LLM's view.
12
- *
13
- * @license MIT
14
- */
15
- /** Maximum length for a sanitised log string. Anything longer is truncated. */
16
- export const LOG_TRUNCATION_LIMIT = 2000;
17
- /**
18
- * Replace every `Bearer <opaque-token>` substring with `Bearer ***masked***`.
19
- *
20
- * Token-shape is intentionally permissive — we'd rather over-mask than
21
- * leak. Any non-whitespace run following the literal `Bearer ` is treated
22
- * as the token and replaced.
23
- */
24
- export function maskBearerToken(input) {
25
- if (input === '')
26
- return '';
27
- // The `g` flag handles repeated occurrences in one string.
28
- return input.replace(/Bearer\s+\S+/g, 'Bearer ***masked***');
29
- }
30
- /**
31
- * Sanitise a string before it joins the LLM-visible output:
32
- * 1. mask any Bearer tokens
33
- * 2. truncate to `LOG_TRUNCATION_LIMIT` chars with a clear suffix
34
- *
35
- * Non-string inputs (null / undefined) collapse to an empty string —
36
- * caller code typically passes `error?.message` and `?? ''` is a common
37
- * upstream pattern.
38
- */
39
- export function sanitizeForLogs(input) {
40
- if (input === null || input === undefined)
41
- return '';
42
- if (input === '')
43
- return '';
44
- const masked = maskBearerToken(input);
45
- if (masked.length <= LOG_TRUNCATION_LIMIT)
46
- return masked;
47
- return masked.slice(0, LOG_TRUNCATION_LIMIT) + '... [truncated]';
48
- }
49
- //# sourceMappingURL=mask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mask.js","sourceRoot":"","sources":["../../src/errors/mask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,2DAA2D;IAC3D,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,IAAI,oBAAoB;QAAE,OAAO,MAAM,CAAC;IACzD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,CAAC;AACrE,CAAC"}
@@ -1,31 +0,0 @@
1
- /**
2
- * `sanitizeSecrets` — recursive value-walker that swaps any value at a
3
- * known-secret key for the sentinel `[REDACTED]`.
4
- *
5
- * Wave G.6.4. Pattern ported verbatim from
6
- * `apimapper-mcp/src/modules/apimapper/credential-sanitizer.ts` because
7
- * it's the same defense-in-depth shape and the apimapper version is
8
- * audit-hardened (A4 round 1 + 2).
9
- *
10
- * Used on both the error-path (RestError.body excerpts) AND the
11
- * success-path (jsonResult / structuredResult payloads in
12
- * `tool-builder.ts`) so a regressing REST handler — or a logging path —
13
- * can never leak `oauth_refresh_token` / `auth_data` / `bearer` etc.
14
- * into the LLM's context.
15
- *
16
- * Key-list intentionally mirrors apimapper-mcp; review both together
17
- * when extending.
18
- *
19
- * @license MIT
20
- */
21
- /**
22
- * Recursively walk any JSON-serialisable value and redact any nested
23
- * value whose key matches a known-secret name. Returns a fresh tree —
24
- * the input is never mutated.
25
- *
26
- * Primitives (string / number / boolean / null / undefined) pass through
27
- * unchanged. Arrays are mapped element-wise. Objects are reconstructed
28
- * with `[REDACTED]` substituted at any secret key.
29
- */
30
- export declare function sanitizeSecrets<T>(input: T): T;
31
- //# sourceMappingURL=sanitize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/errors/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA6CH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAgB9C"}
@@ -1,90 +0,0 @@
1
- /**
2
- * `sanitizeSecrets` — recursive value-walker that swaps any value at a
3
- * known-secret key for the sentinel `[REDACTED]`.
4
- *
5
- * Wave G.6.4. Pattern ported verbatim from
6
- * `apimapper-mcp/src/modules/apimapper/credential-sanitizer.ts` because
7
- * it's the same defense-in-depth shape and the apimapper version is
8
- * audit-hardened (A4 round 1 + 2).
9
- *
10
- * Used on both the error-path (RestError.body excerpts) AND the
11
- * success-path (jsonResult / structuredResult payloads in
12
- * `tool-builder.ts`) so a regressing REST handler — or a logging path —
13
- * can never leak `oauth_refresh_token` / `auth_data` / `bearer` etc.
14
- * into the LLM's context.
15
- *
16
- * Key-list intentionally mirrors apimapper-mcp; review both together
17
- * when extending.
18
- *
19
- * @license MIT
20
- */
21
- const SECRET_KEYS = new Set([
22
- // Generic auth tokens
23
- 'token',
24
- 'bearer',
25
- 'bearer_token',
26
- 'bearerToken',
27
- // Plugin-internal auth blob
28
- 'auth_data',
29
- 'authData',
30
- // OAuth flows
31
- 'oauth_refresh_token',
32
- 'oauthRefreshToken',
33
- 'refresh_token',
34
- 'refreshToken',
35
- 'access_token',
36
- 'accessToken',
37
- // App-secret pairs
38
- 'client_secret',
39
- 'clientSecret',
40
- 'api_key',
41
- 'apiKey',
42
- 'password',
43
- 'secret',
44
- 'secrets',
45
- 'raw_secret',
46
- 'rawSecret',
47
- // Defense-in-depth additions (cf. apimapper A4 audit round 2)
48
- 'private_key',
49
- 'privateKey',
50
- 'signing_key',
51
- 'signingKey',
52
- 'webhook_secret',
53
- 'webhookSecret',
54
- 'consumer_secret',
55
- 'consumerSecret',
56
- 'consumer_key',
57
- 'consumerKey',
58
- 'session_token',
59
- 'sessionToken',
60
- 'id_token',
61
- 'idToken',
62
- ]);
63
- /**
64
- * Recursively walk any JSON-serialisable value and redact any nested
65
- * value whose key matches a known-secret name. Returns a fresh tree —
66
- * the input is never mutated.
67
- *
68
- * Primitives (string / number / boolean / null / undefined) pass through
69
- * unchanged. Arrays are mapped element-wise. Objects are reconstructed
70
- * with `[REDACTED]` substituted at any secret key.
71
- */
72
- export function sanitizeSecrets(input) {
73
- if (Array.isArray(input)) {
74
- return input.map((item) => sanitizeSecrets(item));
75
- }
76
- if (input !== null && typeof input === 'object') {
77
- const out = {};
78
- for (const [k, v] of Object.entries(input)) {
79
- if (SECRET_KEYS.has(k)) {
80
- out[k] = '[REDACTED]';
81
- }
82
- else {
83
- out[k] = sanitizeSecrets(v);
84
- }
85
- }
86
- return out;
87
- }
88
- return input;
89
- }
90
- //# sourceMappingURL=sanitize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/errors/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;IAChC,sBAAsB;IACtB,OAAO;IACP,QAAQ;IACR,cAAc;IACd,aAAa;IACb,4BAA4B;IAC5B,WAAW;IACX,UAAU;IACV,cAAc;IACd,qBAAqB;IACrB,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,8DAA8D;IAC9D,aAAa;IACb,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,eAAe;IACf,cAAc;IACd,UAAU;IACV,SAAS;CACZ,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAI,KAAQ;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAiB,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACpE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QACD,OAAO,GAAmB,CAAC;IAC/B,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}