coalesce-transform-mcp 0.3.0 → 0.4.2

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 (279) hide show
  1. package/README.md +74 -3
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +6 -2
  4. package/dist/client.js.map +1 -1
  5. package/dist/coalesce/api/environments.d.ts +0 -12
  6. package/dist/coalesce/api/environments.d.ts.map +1 -1
  7. package/dist/coalesce/api/environments.js +0 -4
  8. package/dist/coalesce/api/environments.js.map +1 -1
  9. package/dist/coalesce/api/jobs.d.ts +3 -5
  10. package/dist/coalesce/api/jobs.d.ts.map +1 -1
  11. package/dist/coalesce/api/jobs.js +3 -6
  12. package/dist/coalesce/api/jobs.js.map +1 -1
  13. package/dist/coalesce/api/nodes.d.ts +3 -3
  14. package/dist/coalesce/api/nodes.d.ts.map +1 -1
  15. package/dist/coalesce/api/nodes.js +6 -4
  16. package/dist/coalesce/api/nodes.js.map +1 -1
  17. package/dist/coalesce/api/runs.d.ts.map +1 -1
  18. package/dist/coalesce/api/runs.js +11 -1
  19. package/dist/coalesce/api/runs.js.map +1 -1
  20. package/dist/coalesce/api/scan.d.ts +14 -0
  21. package/dist/coalesce/api/scan.d.ts.map +1 -0
  22. package/dist/coalesce/api/scan.js +64 -0
  23. package/dist/coalesce/api/scan.js.map +1 -0
  24. package/dist/coalesce/api/subgraphs.d.ts +3 -2
  25. package/dist/coalesce/api/subgraphs.d.ts.map +1 -1
  26. package/dist/coalesce/api/subgraphs.js +3 -2
  27. package/dist/coalesce/api/subgraphs.js.map +1 -1
  28. package/dist/coalesce/run-schemas.d.ts.map +1 -1
  29. package/dist/coalesce/run-schemas.js +26 -16
  30. package/dist/coalesce/run-schemas.js.map +1 -1
  31. package/dist/coalesce/tool-response.d.ts +1 -13
  32. package/dist/coalesce/tool-response.d.ts.map +1 -1
  33. package/dist/coalesce/tool-response.js +20 -6
  34. package/dist/coalesce/tool-response.js.map +1 -1
  35. package/dist/coalesce/tool-schemas.d.ts +1 -2
  36. package/dist/coalesce/tool-schemas.d.ts.map +1 -1
  37. package/dist/coalesce/tool-schemas.js +368 -5
  38. package/dist/coalesce/tool-schemas.js.map +1 -1
  39. package/dist/coalesce/types.d.ts +8 -0
  40. package/dist/coalesce/types.d.ts.map +1 -1
  41. package/dist/coalesce/types.js +3 -1
  42. package/dist/coalesce/types.js.map +1 -1
  43. package/dist/constants.d.ts +18 -0
  44. package/dist/constants.d.ts.map +1 -0
  45. package/dist/constants.js +21 -0
  46. package/dist/constants.js.map +1 -0
  47. package/dist/mcp/cache.d.ts +2 -1
  48. package/dist/mcp/cache.d.ts.map +1 -1
  49. package/dist/mcp/cache.js +122 -138
  50. package/dist/mcp/cache.js.map +1 -1
  51. package/dist/mcp/environments.d.ts +2 -1
  52. package/dist/mcp/environments.d.ts.map +1 -1
  53. package/dist/mcp/environments.js +56 -112
  54. package/dist/mcp/environments.js.map +1 -1
  55. package/dist/mcp/git-accounts.d.ts +2 -1
  56. package/dist/mcp/git-accounts.d.ts.map +1 -1
  57. package/dist/mcp/git-accounts.js +74 -96
  58. package/dist/mcp/git-accounts.js.map +1 -1
  59. package/dist/mcp/jobs.d.ts +2 -1
  60. package/dist/mcp/jobs.d.ts.map +1 -1
  61. package/dist/mcp/jobs.js +68 -122
  62. package/dist/mcp/jobs.js.map +1 -1
  63. package/dist/mcp/lineage.d.ts +5 -0
  64. package/dist/mcp/lineage.d.ts.map +1 -0
  65. package/dist/mcp/lineage.js +410 -0
  66. package/dist/mcp/lineage.js.map +1 -0
  67. package/dist/mcp/node-type-corpus.d.ts +2 -1
  68. package/dist/mcp/node-type-corpus.d.ts.map +1 -1
  69. package/dist/mcp/node-type-corpus.js +148 -151
  70. package/dist/mcp/node-type-corpus.js.map +1 -1
  71. package/dist/mcp/nodes.d.ts +2 -1
  72. package/dist/mcp/nodes.d.ts.map +1 -1
  73. package/dist/mcp/nodes.js +358 -464
  74. package/dist/mcp/nodes.js.map +1 -1
  75. package/dist/mcp/pipelines.d.ts +2 -1
  76. package/dist/mcp/pipelines.d.ts.map +1 -1
  77. package/dist/mcp/pipelines.js +514 -314
  78. package/dist/mcp/pipelines.js.map +1 -1
  79. package/dist/mcp/projects.d.ts +2 -1
  80. package/dist/mcp/projects.d.ts.map +1 -1
  81. package/dist/mcp/projects.js +66 -100
  82. package/dist/mcp/projects.js.map +1 -1
  83. package/dist/mcp/repo-node-types.d.ts +2 -1
  84. package/dist/mcp/repo-node-types.d.ts.map +1 -1
  85. package/dist/mcp/repo-node-types.js +92 -121
  86. package/dist/mcp/repo-node-types.js.map +1 -1
  87. package/dist/mcp/runs.d.ts +3 -2
  88. package/dist/mcp/runs.d.ts.map +1 -1
  89. package/dist/mcp/runs.js +93 -148
  90. package/dist/mcp/runs.js.map +1 -1
  91. package/dist/mcp/skills.d.ts +13 -0
  92. package/dist/mcp/skills.d.ts.map +1 -0
  93. package/dist/mcp/skills.js +85 -0
  94. package/dist/mcp/skills.js.map +1 -0
  95. package/dist/mcp/subgraphs.d.ts +2 -1
  96. package/dist/mcp/subgraphs.d.ts.map +1 -1
  97. package/dist/mcp/subgraphs.js +61 -98
  98. package/dist/mcp/subgraphs.js.map +1 -1
  99. package/dist/mcp/tool-helpers.d.ts +37 -0
  100. package/dist/mcp/tool-helpers.d.ts.map +1 -0
  101. package/dist/mcp/tool-helpers.js +82 -0
  102. package/dist/mcp/tool-helpers.js.map +1 -0
  103. package/dist/mcp/users.d.ts +2 -1
  104. package/dist/mcp/users.d.ts.map +1 -1
  105. package/dist/mcp/users.js +92 -145
  106. package/dist/mcp/users.js.map +1 -1
  107. package/dist/mcp/workshop.d.ts +2 -1
  108. package/dist/mcp/workshop.d.ts.map +1 -1
  109. package/dist/mcp/workshop.js +66 -101
  110. package/dist/mcp/workshop.js.map +1 -1
  111. package/dist/mcp/workspaces.d.ts +2 -1
  112. package/dist/mcp/workspaces.d.ts.map +1 -1
  113. package/dist/mcp/workspaces.js +19 -34
  114. package/dist/mcp/workspaces.js.map +1 -1
  115. package/dist/prompts/index.d.ts.map +1 -1
  116. package/dist/prompts/index.js +85 -0
  117. package/dist/prompts/index.js.map +1 -1
  118. package/dist/resources/context/pipeline-workshop-guide.md +1 -1
  119. package/dist/resources/context/tool-usage.md +7 -0
  120. package/dist/resources/index.d.ts +13 -0
  121. package/dist/resources/index.d.ts.map +1 -1
  122. package/dist/resources/index.js +105 -5
  123. package/dist/resources/index.js.map +1 -1
  124. package/dist/schemas/node-payloads.d.ts +2 -2
  125. package/dist/server.d.ts +2 -1
  126. package/dist/server.d.ts.map +1 -1
  127. package/dist/server.js +158 -41
  128. package/dist/server.js.map +1 -1
  129. package/dist/services/cache/snapshots.d.ts.map +1 -1
  130. package/dist/services/cache/snapshots.js +9 -5
  131. package/dist/services/cache/snapshots.js.map +1 -1
  132. package/dist/services/config/schema-resolver.d.ts.map +1 -1
  133. package/dist/services/config/schema-resolver.js +3 -6
  134. package/dist/services/config/schema-resolver.js.map +1 -1
  135. package/dist/services/lineage/lineage-cache.d.ts +53 -0
  136. package/dist/services/lineage/lineage-cache.d.ts.map +1 -0
  137. package/dist/services/lineage/lineage-cache.js +335 -0
  138. package/dist/services/lineage/lineage-cache.js.map +1 -0
  139. package/dist/services/lineage/lineage-documentation.d.ts +29 -0
  140. package/dist/services/lineage/lineage-documentation.d.ts.map +1 -0
  141. package/dist/services/lineage/lineage-documentation.js +80 -0
  142. package/dist/services/lineage/lineage-documentation.js.map +1 -0
  143. package/dist/services/lineage/lineage-propagation.d.ts +47 -0
  144. package/dist/services/lineage/lineage-propagation.d.ts.map +1 -0
  145. package/dist/services/lineage/lineage-propagation.js +176 -0
  146. package/dist/services/lineage/lineage-propagation.js.map +1 -0
  147. package/dist/services/lineage/lineage-search.d.ts +33 -0
  148. package/dist/services/lineage/lineage-search.d.ts.map +1 -0
  149. package/dist/services/lineage/lineage-search.js +133 -0
  150. package/dist/services/lineage/lineage-search.js.map +1 -0
  151. package/dist/services/lineage/lineage-traversal.d.ts +34 -0
  152. package/dist/services/lineage/lineage-traversal.d.ts.map +1 -0
  153. package/dist/services/lineage/lineage-traversal.js +283 -0
  154. package/dist/services/lineage/lineage-traversal.js.map +1 -0
  155. package/dist/services/pipelines/clause-extraction.d.ts +3 -0
  156. package/dist/services/pipelines/clause-extraction.d.ts.map +1 -0
  157. package/dist/services/pipelines/clause-extraction.js +27 -0
  158. package/dist/services/pipelines/clause-extraction.js.map +1 -0
  159. package/dist/services/pipelines/column-helpers.d.ts +8 -0
  160. package/dist/services/pipelines/column-helpers.d.ts.map +1 -0
  161. package/dist/services/pipelines/column-helpers.js +125 -0
  162. package/dist/services/pipelines/column-helpers.js.map +1 -0
  163. package/dist/services/pipelines/cte-parsing.d.ts +29 -0
  164. package/dist/services/pipelines/cte-parsing.d.ts.map +1 -0
  165. package/dist/services/pipelines/cte-parsing.js +160 -0
  166. package/dist/services/pipelines/cte-parsing.js.map +1 -0
  167. package/dist/services/pipelines/cte-planning.d.ts +22 -0
  168. package/dist/services/pipelines/cte-planning.d.ts.map +1 -0
  169. package/dist/services/pipelines/cte-planning.js +206 -0
  170. package/dist/services/pipelines/cte-planning.js.map +1 -0
  171. package/dist/services/pipelines/execution.d.ts.map +1 -1
  172. package/dist/services/pipelines/execution.js +0 -1
  173. package/dist/services/pipelines/execution.js.map +1 -1
  174. package/dist/services/pipelines/intent-parsing.d.ts +24 -0
  175. package/dist/services/pipelines/intent-parsing.d.ts.map +1 -0
  176. package/dist/services/pipelines/intent-parsing.js +245 -0
  177. package/dist/services/pipelines/intent-parsing.js.map +1 -0
  178. package/dist/services/pipelines/intent-resolution.d.ts +24 -0
  179. package/dist/services/pipelines/intent-resolution.d.ts.map +1 -0
  180. package/dist/services/pipelines/intent-resolution.js +141 -0
  181. package/dist/services/pipelines/intent-resolution.js.map +1 -0
  182. package/dist/services/pipelines/intent.d.ts +4 -45
  183. package/dist/services/pipelines/intent.d.ts.map +1 -1
  184. package/dist/services/pipelines/intent.js +14 -408
  185. package/dist/services/pipelines/intent.js.map +1 -1
  186. package/dist/services/pipelines/node-type-candidates.d.ts +6 -0
  187. package/dist/services/pipelines/node-type-candidates.d.ts.map +1 -0
  188. package/dist/services/pipelines/node-type-candidates.js +165 -0
  189. package/dist/services/pipelines/node-type-candidates.js.map +1 -0
  190. package/dist/services/pipelines/node-type-intent.d.ts +1 -5
  191. package/dist/services/pipelines/node-type-intent.d.ts.map +1 -1
  192. package/dist/services/pipelines/node-type-intent.js +1 -5
  193. package/dist/services/pipelines/node-type-intent.js.map +1 -1
  194. package/dist/services/pipelines/node-type-scoring.d.ts +13 -0
  195. package/dist/services/pipelines/node-type-scoring.d.ts.map +1 -0
  196. package/dist/services/pipelines/node-type-scoring.js +322 -0
  197. package/dist/services/pipelines/node-type-scoring.js.map +1 -0
  198. package/dist/services/pipelines/node-type-selection.d.ts +22 -2
  199. package/dist/services/pipelines/node-type-selection.d.ts.map +1 -1
  200. package/dist/services/pipelines/node-type-selection.js +16 -538
  201. package/dist/services/pipelines/node-type-selection.js.map +1 -1
  202. package/dist/services/pipelines/plan-builder.d.ts +33 -0
  203. package/dist/services/pipelines/plan-builder.d.ts.map +1 -0
  204. package/dist/services/pipelines/plan-builder.js +224 -0
  205. package/dist/services/pipelines/plan-builder.js.map +1 -0
  206. package/dist/services/pipelines/planning-types.d.ts +543 -0
  207. package/dist/services/pipelines/planning-types.d.ts.map +1 -0
  208. package/dist/services/pipelines/planning-types.js +85 -0
  209. package/dist/services/pipelines/planning-types.js.map +1 -0
  210. package/dist/services/pipelines/planning.d.ts +8 -537
  211. package/dist/services/pipelines/planning.d.ts.map +1 -1
  212. package/dist/services/pipelines/planning.js +10 -1956
  213. package/dist/services/pipelines/planning.js.map +1 -1
  214. package/dist/services/pipelines/review.d.ts.map +1 -1
  215. package/dist/services/pipelines/review.js +3 -8
  216. package/dist/services/pipelines/review.js.map +1 -1
  217. package/dist/services/pipelines/select-parsing.d.ts +7 -0
  218. package/dist/services/pipelines/select-parsing.d.ts.map +1 -0
  219. package/dist/services/pipelines/select-parsing.js +185 -0
  220. package/dist/services/pipelines/select-parsing.js.map +1 -0
  221. package/dist/services/pipelines/source-parsing.d.ts +8 -0
  222. package/dist/services/pipelines/source-parsing.d.ts.map +1 -0
  223. package/dist/services/pipelines/source-parsing.js +151 -0
  224. package/dist/services/pipelines/source-parsing.js.map +1 -0
  225. package/dist/services/pipelines/sql-parsing.d.ts +8 -0
  226. package/dist/services/pipelines/sql-parsing.d.ts.map +1 -0
  227. package/dist/services/pipelines/sql-parsing.js +9 -0
  228. package/dist/services/pipelines/sql-parsing.js.map +1 -0
  229. package/dist/services/pipelines/sql-tokenizer.d.ts +42 -0
  230. package/dist/services/pipelines/sql-tokenizer.d.ts.map +1 -0
  231. package/dist/services/pipelines/sql-tokenizer.js +493 -0
  232. package/dist/services/pipelines/sql-tokenizer.js.map +1 -0
  233. package/dist/services/pipelines/sql-utils.d.ts +30 -0
  234. package/dist/services/pipelines/sql-utils.d.ts.map +1 -0
  235. package/dist/services/pipelines/sql-utils.js +62 -0
  236. package/dist/services/pipelines/sql-utils.js.map +1 -0
  237. package/dist/services/pipelines/workshop.d.ts.map +1 -1
  238. package/dist/services/pipelines/workshop.js +53 -25
  239. package/dist/services/pipelines/workshop.js.map +1 -1
  240. package/dist/services/pipelines/workspace-resolution.d.ts +18 -0
  241. package/dist/services/pipelines/workspace-resolution.d.ts.map +1 -0
  242. package/dist/services/pipelines/workspace-resolution.js +279 -0
  243. package/dist/services/pipelines/workspace-resolution.js.map +1 -0
  244. package/dist/services/runs/diagnostics.d.ts.map +1 -1
  245. package/dist/services/runs/diagnostics.js +3 -8
  246. package/dist/services/runs/diagnostics.js.map +1 -1
  247. package/dist/services/shared/elicitation.d.ts +14 -0
  248. package/dist/services/shared/elicitation.d.ts.map +1 -0
  249. package/dist/services/shared/elicitation.js +56 -0
  250. package/dist/services/shared/elicitation.js.map +1 -0
  251. package/dist/services/workspace/node-creation.d.ts.map +1 -1
  252. package/dist/services/workspace/node-creation.js +5 -1
  253. package/dist/services/workspace/node-creation.js.map +1 -1
  254. package/dist/services/workspace/node-update-helpers.d.ts.map +1 -1
  255. package/dist/services/workspace/node-update-helpers.js +3 -8
  256. package/dist/services/workspace/node-update-helpers.js.map +1 -1
  257. package/dist/utils.d.ts +11 -0
  258. package/dist/utils.d.ts.map +1 -1
  259. package/dist/utils.js +20 -1
  260. package/dist/utils.js.map +1 -1
  261. package/dist/workflows/get-environment-health.d.ts +49 -0
  262. package/dist/workflows/get-environment-health.d.ts.map +1 -0
  263. package/dist/workflows/get-environment-health.js +310 -0
  264. package/dist/workflows/get-environment-health.js.map +1 -0
  265. package/dist/workflows/get-environment-overview.d.ts +2 -1
  266. package/dist/workflows/get-environment-overview.d.ts.map +1 -1
  267. package/dist/workflows/get-environment-overview.js +13 -19
  268. package/dist/workflows/get-environment-overview.js.map +1 -1
  269. package/dist/workflows/get-run-details.d.ts +2 -2
  270. package/dist/workflows/get-run-details.d.ts.map +1 -1
  271. package/dist/workflows/get-run-details.js +14 -19
  272. package/dist/workflows/get-run-details.js.map +1 -1
  273. package/dist/workflows/retry-and-wait.d.ts.map +1 -1
  274. package/dist/workflows/retry-and-wait.js +3 -2
  275. package/dist/workflows/retry-and-wait.js.map +1 -1
  276. package/dist/workflows/run-and-wait.d.ts.map +1 -1
  277. package/dist/workflows/run-and-wait.js +3 -2
  278. package/dist/workflows/run-and-wait.js.map +1 -1
  279. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/mcp/cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAkCnD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,IAAI,CAwKN"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/mcp/cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AA6B9B,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,cAAc,EAAE,CA2IlB"}
package/dist/mcp/cache.js CHANGED
@@ -2,14 +2,16 @@ import { rmSync, existsSync, readdirSync, statSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { z } from "zod";
4
4
  import { DESTRUCTIVE_ANNOTATIONS, IDEMPOTENT_WRITE_ANNOTATIONS, buildJsonToolResponse, handleToolError, getToolOutputSchema, } from "../coalesce/types.js";
5
+ import { requireDestructiveConfirmation } from "../services/shared/elicitation.js";
5
6
  import { getCacheDir, CACHE_DIR_NAME } from "../cache-dir.js";
6
7
  import { cacheEnvironmentNodes, cacheOrgUsers, cacheRuns, cacheWorkspaceNodes, } from "../services/cache/snapshots.js";
8
+ import { defineSimpleTool } from "./tool-helpers.js";
7
9
  const SnapshotPaginationShape = {
8
10
  pageSize: z
9
11
  .number()
10
12
  .int()
11
13
  .positive()
12
- .max(1000)
14
+ .max(500)
13
15
  .optional()
14
16
  .describe("Optional API page size used while collecting the full snapshot. Defaults to 250."),
15
17
  orderBy: z
@@ -21,149 +23,131 @@ const SnapshotPaginationShape = {
21
23
  .optional()
22
24
  .describe("Optional sort direction used for paginated collection."),
23
25
  };
24
- export function registerCacheTools(server, client) {
25
- server.registerTool("cache_workspace_nodes", {
26
- title: "Cache Workspace Nodes",
27
- description: "Fetch and cache all workspace nodes to disk for efficient repeated access. Useful when working with large workspaces where inline responses exceed the auto-cache threshold.\n\nArgs:\n - workspaceID (string, required): The workspace ID\n - detail (boolean, optional): Fetch expanded node details. Defaults to true\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 1000\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
28
- inputSchema: z.object({
29
- workspaceID: z.string().describe("The workspace ID"),
30
- detail: z
31
- .boolean()
32
- .optional()
33
- .describe("When true, fetches expanded node details. Defaults to true."),
34
- ...SnapshotPaginationShape,
35
- }),
36
- outputSchema: getToolOutputSchema("cache_workspace_nodes"),
37
- annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
38
- }, async (params) => {
39
- try {
40
- const result = await cacheWorkspaceNodes(client, params);
41
- return buildJsonToolResponse("cache_workspace_nodes", result);
42
- }
43
- catch (error) {
44
- return handleToolError(error);
45
- }
46
- });
47
- server.registerTool("cache_environment_nodes", {
48
- title: "Cache Environment Nodes",
49
- description: "Fetch and cache all environment nodes to disk for efficient repeated access.\n\nArgs:\n - environmentID (string, required): The environment ID\n - detail (boolean, optional): Fetch expanded node details. Defaults to true\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 1000\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
50
- inputSchema: z.object({
51
- environmentID: z.string().describe("The environment ID"),
52
- detail: z
53
- .boolean()
54
- .optional()
55
- .describe("When true, fetches expanded node details. Defaults to true."),
56
- ...SnapshotPaginationShape,
57
- }),
58
- outputSchema: getToolOutputSchema("cache_environment_nodes"),
59
- annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
60
- }, async (params) => {
61
- try {
62
- const result = await cacheEnvironmentNodes(client, params);
63
- return buildJsonToolResponse("cache_environment_nodes", result);
64
- }
65
- catch (error) {
66
- return handleToolError(error);
67
- }
68
- });
69
- server.registerTool("cache_runs", {
70
- title: "Cache Runs",
71
- description: "Fetch and cache runs to disk with optional filters for efficient repeated access.\n\nArgs:\n - runType (enum, optional): Filter by 'deploy' or 'refresh'\n - runStatus (enum, optional): Filter by 'completed' | 'failed' | 'canceled' | 'running' | 'waitingToRun'\n - environmentID (string, optional): Filter by environment ID\n - detail (boolean, optional): Fetch expanded run details. Defaults to false\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 1000\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
72
- inputSchema: z.object({
73
- runType: z.enum(["deploy", "refresh"]).optional().describe("Optional run type filter"),
74
- runStatus: z
75
- .enum(["completed", "failed", "canceled", "running", "waitingToRun"])
76
- .optional()
77
- .describe("Optional run status filter"),
78
- environmentID: z.string().optional().describe("Optional environment ID filter"),
79
- detail: z
80
- .boolean()
81
- .optional()
82
- .describe("When true, fetches expanded run details. Defaults to false."),
83
- ...SnapshotPaginationShape,
84
- }),
85
- outputSchema: getToolOutputSchema("cache_runs"),
86
- annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
87
- }, async (params) => {
88
- try {
89
- const result = await cacheRuns(client, params);
90
- return buildJsonToolResponse("cache_runs", result);
91
- }
92
- catch (error) {
93
- return handleToolError(error);
94
- }
95
- });
96
- server.registerTool("cache_org_users", {
97
- title: "Cache Org Users",
98
- description: "Fetch and cache all organization users to disk for efficient repeated access.\n\nArgs:\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 1000\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
99
- inputSchema: z.object({
100
- ...SnapshotPaginationShape,
101
- }),
102
- outputSchema: getToolOutputSchema("cache_org_users"),
103
- annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
104
- }, async (params) => {
105
- try {
106
- const result = await cacheOrgUsers(client, params);
107
- return buildJsonToolResponse("cache_org_users", result);
108
- }
109
- catch (error) {
110
- return handleToolError(error);
111
- }
112
- });
113
- server.registerTool("clear_data_cache", {
114
- title: "Clear Data Cache",
115
- description: "Clear the MCP server's local data cache. Removes all cached artifacts from disk.\n\nReturns:\n { deleted: boolean, fileCount: number, totalBytes: number, message: string }",
116
- inputSchema: z.object({}),
117
- outputSchema: getToolOutputSchema("clear_data_cache"),
118
- annotations: DESTRUCTIVE_ANNOTATIONS,
119
- }, async () => {
120
- try {
121
- const cacheDir = getCacheDir();
122
- if (!existsSync(cacheDir)) {
123
- return buildJsonToolResponse("clear_data_cache", {
124
- deleted: false,
125
- message: `No cache directory found at ${CACHE_DIR_NAME}/`,
126
- });
127
- }
128
- // Count files and measure size before deleting
129
- let fileCount = 0;
130
- let totalBytes = 0;
131
- function countFiles(dir) {
26
+ export function defineCacheTools(server, client) {
27
+ return [
28
+ defineSimpleTool(client, "cache_workspace_nodes", {
29
+ title: "Cache Workspace Nodes",
30
+ description: "Fetch and cache all workspace nodes to disk for efficient repeated access. Useful when working with large workspaces where inline responses exceed the auto-cache threshold.\n\nArgs:\n - workspaceID (string, required): The workspace ID\n - detail (boolean, optional): Fetch expanded node details. Defaults to true\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 500\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
31
+ inputSchema: z.object({
32
+ workspaceID: z.string().describe("The workspace ID"),
33
+ detail: z
34
+ .boolean()
35
+ .optional()
36
+ .describe("When true, fetches expanded node details. Defaults to true."),
37
+ ...SnapshotPaginationShape,
38
+ }),
39
+ annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
40
+ }, cacheWorkspaceNodes),
41
+ defineSimpleTool(client, "cache_environment_nodes", {
42
+ title: "Cache Environment Nodes",
43
+ description: "Fetch and cache all environment nodes to disk for efficient repeated access.\n\nArgs:\n - environmentID (string, required): The environment ID\n - detail (boolean, optional): Fetch expanded node details. Defaults to true\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 500\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
44
+ inputSchema: z.object({
45
+ environmentID: z.string().describe("The environment ID"),
46
+ detail: z
47
+ .boolean()
48
+ .optional()
49
+ .describe("When true, fetches expanded node details. Defaults to true."),
50
+ ...SnapshotPaginationShape,
51
+ }),
52
+ annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
53
+ }, cacheEnvironmentNodes),
54
+ defineSimpleTool(client, "cache_runs", {
55
+ title: "Cache Runs",
56
+ description: "Fetch and cache runs to disk with optional filters for efficient repeated access.\n\nArgs:\n - runType (enum, optional): Filter by 'deploy' or 'refresh'\n - runStatus (enum, optional): Filter by 'completed' | 'failed' | 'canceled' | 'running' | 'waitingToRun'\n - environmentID (string, optional): Filter by environment ID\n - detail (boolean, optional): Fetch expanded run details. Defaults to false\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 500\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
57
+ inputSchema: z.object({
58
+ runType: z.enum(["deploy", "refresh"]).optional().describe("Optional run type filter"),
59
+ runStatus: z
60
+ .enum(["completed", "failed", "canceled", "running", "waitingToRun"])
61
+ .optional()
62
+ .describe("Optional run status filter"),
63
+ environmentID: z.string().optional().describe("Optional environment ID filter"),
64
+ detail: z
65
+ .boolean()
66
+ .optional()
67
+ .describe("When true, fetches expanded run details. Defaults to false."),
68
+ ...SnapshotPaginationShape,
69
+ }),
70
+ annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
71
+ }, cacheRuns),
72
+ defineSimpleTool(client, "cache_org_users", {
73
+ title: "Cache Org Users",
74
+ description: "Fetch and cache all organization users to disk for efficient repeated access.\n\nArgs:\n - pageSize (number, optional): API page size for collection. Defaults to 250, max 500\n - orderBy (string, optional): Sort field for paginated collection. Defaults to id\n - orderByDirection ('asc'|'desc', optional): Sort direction\n\nReturns:\n Cache metadata with resourceUri (coalesce://cache/...) for accessing the cached data via MCP resource read.",
75
+ inputSchema: z.object({
76
+ ...SnapshotPaginationShape,
77
+ }),
78
+ annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
79
+ }, cacheOrgUsers),
80
+ // clear_data_cache has complex inline logic (file counting + rmSync)
81
+ // that doesn't fit the simple helper pattern.
82
+ // NOTE: The inline handler requires `server` for elicitation — do NOT rename to `_server`.
83
+ ["clear_data_cache",
84
+ {
85
+ title: "Clear Data Cache",
86
+ description: "Clear the MCP server's local data cache. Removes all cached artifacts from disk.\n\nArgs:\n - confirmed (boolean, optional): Set to true after the user explicitly confirms cache clearing\n\nReturns:\n { deleted: boolean, fileCount: number, totalBytes: number, message: string }",
87
+ inputSchema: z.object({
88
+ confirmed: z
89
+ .boolean()
90
+ .optional()
91
+ .describe("Set to true after the user explicitly confirms the cache clearing."),
92
+ }),
93
+ outputSchema: getToolOutputSchema("clear_data_cache"),
94
+ annotations: DESTRUCTIVE_ANNOTATIONS,
95
+ },
96
+ async (params) => {
132
97
  try {
133
- for (const entry of readdirSync(dir, { withFileTypes: true })) {
134
- const entryPath = join(dir, entry.name);
135
- if (entry.isDirectory()) {
136
- countFiles(entryPath);
137
- }
138
- else if (entry.isFile()) {
139
- fileCount++;
140
- try {
141
- totalBytes += statSync(entryPath).size;
142
- }
143
- catch {
144
- // skip unreadable files
98
+ const approvalResponse = await requireDestructiveConfirmation(server, "clear_data_cache", "This will delete all cached data from disk. Cached snapshots will need to be re-fetched.", params.confirmed);
99
+ if (approvalResponse)
100
+ return approvalResponse;
101
+ const cacheDir = getCacheDir();
102
+ if (!existsSync(cacheDir)) {
103
+ return buildJsonToolResponse("clear_data_cache", {
104
+ deleted: false,
105
+ message: `No cache directory found at ${CACHE_DIR_NAME}/`,
106
+ });
107
+ }
108
+ // Count files and measure size before deleting
109
+ let fileCount = 0;
110
+ let totalBytes = 0;
111
+ let countErrors = 0;
112
+ function countFiles(dir) {
113
+ try {
114
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
115
+ const entryPath = join(dir, entry.name);
116
+ if (entry.isDirectory()) {
117
+ countFiles(entryPath);
118
+ }
119
+ else if (entry.isFile()) {
120
+ fileCount++;
121
+ try {
122
+ totalBytes += statSync(entryPath).size;
123
+ }
124
+ catch {
125
+ countErrors++;
126
+ }
127
+ }
145
128
  }
146
129
  }
130
+ catch {
131
+ countErrors++;
132
+ }
147
133
  }
134
+ countFiles(cacheDir);
135
+ rmSync(cacheDir, { recursive: true, force: true });
136
+ const sizeMB = (totalBytes / (1024 * 1024)).toFixed(2);
137
+ return buildJsonToolResponse("clear_data_cache", {
138
+ deleted: true,
139
+ fileCount,
140
+ totalBytes,
141
+ sizeMB: `${sizeMB} MB`,
142
+ message: `Deleted ${fileCount} files (${sizeMB} MB) from ${CACHE_DIR_NAME}/`,
143
+ ...(countErrors > 0 ? { countWarning: `${countErrors} file(s)/dir(s) could not be measured — reported totals may be approximate` } : {}),
144
+ });
148
145
  }
149
- catch {
150
- // skip unreadable dirs
146
+ catch (error) {
147
+ return handleToolError(error);
151
148
  }
152
149
  }
153
- countFiles(cacheDir);
154
- rmSync(cacheDir, { recursive: true, force: true });
155
- const sizeMB = (totalBytes / (1024 * 1024)).toFixed(2);
156
- return buildJsonToolResponse("clear_data_cache", {
157
- deleted: true,
158
- fileCount,
159
- totalBytes,
160
- sizeMB: `${sizeMB} MB`,
161
- message: `Deleted ${fileCount} files (${sizeMB} MB) from ${CACHE_DIR_NAME}/`,
162
- });
163
- }
164
- catch (error) {
165
- return handleToolError(error);
166
- }
167
- });
150
+ ],
151
+ ];
168
152
  }
169
153
  //# sourceMappingURL=cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/mcp/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,MAAM,uBAAuB,GAAG;IAC9B,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,kFAAkF,CAAC;IAC/F,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;IACjF,gBAAgB,EAAE,CAAC;SAChB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACrB,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;CAC7D,CAAC;AAEX,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,MAAsB;IAEtB,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,qqBAAqqB;QACvqB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACpD,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,GAAG,uBAAuB;SAC3B,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC,uBAAuB,CAAC;QAC1D,WAAW,EAAE,4BAA4B;KAC1C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO,qBAAqB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,ykBAAykB;QAC3kB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACxD,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,GAAG,uBAAuB;SAC3B,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC,yBAAyB,CAAC;QAC5D,WAAW,EAAE,4BAA4B;KAC1C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,OAAO,qBAAqB,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,+vBAA+vB;QACjwB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACtF,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;iBACpE,QAAQ,EAAE;iBACV,QAAQ,CAAC,4BAA4B,CAAC;YACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC/E,MAAM,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,GAAG,uBAAuB;SAC3B,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC;QAC/C,WAAW,EAAE,4BAA4B;KAC1C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,icAAic;QACnc,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,GAAG,uBAAuB;SAC3B,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;QACpD,WAAW,EAAE,4BAA4B;KAC1C,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,8KAA8K;QAChL,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,YAAY,EAAE,mBAAmB,CAAC,kBAAkB,CAAC;QACrD,WAAW,EAAE,uBAAuB;KACrC,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,qBAAqB,CAAC,kBAAkB,EAAE;oBAC/C,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,+BAA+B,cAAc,GAAG;iBAC1D,CAAC,CAAC;YACL,CAAC;YAED,+CAA+C;YAC/C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,SAAS,UAAU,CAAC,GAAW;gBAC7B,IAAI,CAAC;oBACH,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;wBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;4BACxB,UAAU,CAAC,SAAS,CAAC,CAAC;wBACxB,CAAC;6BAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;4BAC1B,SAAS,EAAE,CAAC;4BACZ,IAAI,CAAC;gCACH,UAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;4BACzC,CAAC;4BAAC,MAAM,CAAC;gCACP,wBAAwB;4BAC1B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;YACD,UAAU,CAAC,QAAQ,CAAC,CAAC;YAErB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,qBAAqB,CAAC,kBAAkB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,SAAS;gBACT,UAAU;gBACV,MAAM,EAAE,GAAG,MAAM,KAAK;gBACtB,OAAO,EAAE,WAAW,SAAS,WAAW,MAAM,aAAa,cAAc,GAAG;aAC7E,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/mcp/cache.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { CoalesceClient } from "../client.js";
3
- export declare function registerEnvironmentTools(server: McpServer, client: CoalesceClient): void;
3
+ import { type ToolDefinition } from "../coalesce/types.js";
4
+ export declare function defineEnvironmentTools(server: McpServer, client: CoalesceClient): ToolDefinition[];
4
5
  //# sourceMappingURL=environments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/mcp/environments.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmBnD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,IAAI,CAwIN"}
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/mcp/environments.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,cAAc,EAAE,CA8DlB"}
@@ -1,117 +1,61 @@
1
1
  import { z } from "zod";
2
- import { listEnvironments, getEnvironment, createEnvironment, updateEnvironment, deleteEnvironment, } from "../coalesce/api/environments.js";
3
- import { PaginationParams, buildJsonToolResponse, handleToolError, getToolOutputSchema, READ_ONLY_ANNOTATIONS, WRITE_ANNOTATIONS, IDEMPOTENT_WRITE_ANNOTATIONS, DESTRUCTIVE_ANNOTATIONS, } from "../coalesce/types.js";
4
- export function registerEnvironmentTools(server, client) {
5
- server.registerTool("list_environments", {
6
- title: "List Environments",
7
- description: "List all available Coalesce environments with optional pagination.\n\nReturns environment IDs, names, and configuration. Use this to discover environment IDs needed by run, node, and job tools.\n\nArgs:\n - limit (number, optional): Max results per page\n - startingFrom (string, optional): Pagination cursor from previous response\n - orderBy (string, optional): Sort field (requires startingFrom)\n - orderByDirection ('asc'|'desc', optional): Sort direction\n - detail (boolean, optional): Include expanded environment configuration\n\nReturns:\n { data: Environment[], next?: string, total?: number }\n\nUse get_environment for a single environment by ID.",
8
- inputSchema: PaginationParams.extend({
9
- detail: z.boolean().optional().describe("When true, returns expanded environment info"),
10
- }),
11
- outputSchema: getToolOutputSchema("list_environments"),
12
- annotations: READ_ONLY_ANNOTATIONS,
13
- }, async (params) => {
14
- try {
15
- const result = await listEnvironments(client, params);
16
- return buildJsonToolResponse("list_environments", result);
17
- }
18
- catch (error) {
19
- return handleToolError(error);
20
- }
21
- });
22
- server.registerTool("get_environment", {
23
- title: "Get Environment",
24
- description: "Get details of a specific Coalesce environment by ID.\n\nReturns full environment configuration including connection details, runtime parameters, and tag colors.\n\nArgs:\n - environmentID (string, required): The environment ID\n\nReturns:\n Full environment object with ID, name, project, connection settings, and configuration.",
25
- inputSchema: z.object({
26
- environmentID: z.string().describe("The environment ID"),
27
- }),
28
- outputSchema: getToolOutputSchema("get_environment"),
29
- annotations: READ_ONLY_ANNOTATIONS,
30
- }, async (params) => {
31
- try {
32
- const result = await getEnvironment(client, params);
33
- return buildJsonToolResponse("get_environment", result);
34
- }
35
- catch (error) {
36
- return handleToolError(error);
37
- }
38
- });
39
- server.registerTool("create_environment", {
40
- title: "Create Environment",
41
- description: "Create a new Coalesce environment within a project.\n\nArgs:\n - projectID (string, required): The project to create the environment in\n - name (string, required): Name for the new environment\n - oauthEnabled (boolean, optional): Enable OAuth (default: false)\n - devEnv (boolean, optional): Mark as development environment (default: false)\n - connectionAccount (string, optional): Connection account identifier\n - runTimeParameters (object, optional): Runtime parameters for the environment\n - tagColors (object, optional): UI tag colors { backgroundColor, textColor }\n\nReturns:\n Created environment object with assigned ID.",
42
- inputSchema: z.object({
43
- projectID: z.string().describe("The project ID to create the environment in"),
44
- name: z.string().describe("Name for the new environment"),
45
- oauthEnabled: z.boolean().optional().describe("Whether OAuth is enabled. Defaults to false."),
46
- devEnv: z.boolean().optional().describe("Defaults to false."),
47
- connectionAccount: z.string().optional().describe("Optional connection account identifier"),
48
- runTimeParameters: z.record(z.unknown()).optional().describe("Optional runtime parameters"),
49
- tagColors: z
50
- .object({
51
- backgroundColor: z.string().optional(),
52
- textColor: z.string().optional(),
53
- })
54
- .optional()
55
- .describe("Optional tag colors for the environment"),
56
- }),
57
- outputSchema: getToolOutputSchema("create_environment"),
58
- annotations: WRITE_ANNOTATIONS,
59
- }, async (params) => {
60
- try {
61
- // Coalesce API expects `project` in the body
2
+ import { listEnvironments, getEnvironment, createEnvironment, deleteEnvironment, } from "../coalesce/api/environments.js";
3
+ import { PaginationParams, READ_ONLY_ANNOTATIONS, WRITE_ANNOTATIONS, DESTRUCTIVE_ANNOTATIONS, } from "../coalesce/types.js";
4
+ import { defineSimpleTool, defineDestructiveTool } from "./tool-helpers.js";
5
+ export function defineEnvironmentTools(server, client) {
6
+ return [
7
+ defineSimpleTool(client, "list_environments", {
8
+ title: "List Environments",
9
+ description: "List all available Coalesce environments with optional pagination.\n\nReturns environment IDs, names, and configuration. Use this to discover environment IDs needed by run, node, and job tools.\n\nArgs:\n - limit (number, optional): Max results per page\n - startingFrom (string, optional): Pagination cursor from previous response\n - orderBy (string, optional): Sort field (requires startingFrom)\n - orderByDirection ('asc'|'desc', optional): Sort direction\n - detail (boolean, optional): Include expanded environment configuration\n\nReturns:\n { data: Environment[], next?: string, total?: number }\n\nUse get_environment for a single environment by ID.",
10
+ inputSchema: PaginationParams.extend({
11
+ detail: z.boolean().optional().describe("When true, returns expanded environment info"),
12
+ }),
13
+ annotations: READ_ONLY_ANNOTATIONS,
14
+ }, listEnvironments),
15
+ defineSimpleTool(client, "get_environment", {
16
+ title: "Get Environment",
17
+ description: "Get details of a specific Coalesce environment by ID.\n\nReturns full environment configuration including connection details, runtime parameters, and tag colors.\n\nArgs:\n - environmentID (string, required): The environment ID\n\nReturns:\n Full environment object with ID, name, project, connection settings, and configuration.",
18
+ inputSchema: z.object({
19
+ environmentID: z.string().describe("The environment ID"),
20
+ }),
21
+ annotations: READ_ONLY_ANNOTATIONS,
22
+ }, getEnvironment),
23
+ defineSimpleTool(client, "create_environment", {
24
+ title: "Create Environment",
25
+ description: "Create a new Coalesce environment within a project.\n\nArgs:\n - projectID (string, required): The project to create the environment in\n - name (string, required): Name for the new environment\n - oauthEnabled (boolean, optional): Enable OAuth (default: false)\n - devEnv (boolean, optional): Mark as development environment (default: false)\n - connectionAccount (string, optional): Connection account identifier\n - runTimeParameters (object, optional): Runtime parameters for the environment\n - tagColors (object, optional): UI tag colors { backgroundColor, textColor }\n\nReturns:\n Created environment object with assigned ID.",
26
+ inputSchema: z.object({
27
+ projectID: z.string().describe("The project ID to create the environment in"),
28
+ name: z.string().describe("Name for the new environment"),
29
+ oauthEnabled: z.boolean().optional().describe("Whether OAuth is enabled. Defaults to false."),
30
+ devEnv: z.boolean().optional().describe("Defaults to false."),
31
+ connectionAccount: z.string().optional().describe("Optional connection account identifier"),
32
+ runTimeParameters: z.record(z.unknown()).optional().describe("Optional runtime parameters"),
33
+ tagColors: z
34
+ .object({
35
+ backgroundColor: z.string().optional(),
36
+ textColor: z.string().optional(),
37
+ })
38
+ .optional()
39
+ .describe("Optional tag colors for the environment"),
40
+ }),
41
+ annotations: WRITE_ANNOTATIONS,
42
+ }, (client, params) => {
62
43
  const { projectID, ...rest } = params;
63
- const result = await createEnvironment(client, { project: projectID, ...rest });
64
- return buildJsonToolResponse("create_environment", result);
65
- }
66
- catch (error) {
67
- return handleToolError(error);
68
- }
69
- });
70
- server.registerTool("update_environment", {
71
- title: "Update Environment",
72
- description: "Update an existing Coalesce environment. Partial update — only provided fields are changed.\n\nArgs:\n - environmentID (string, required): The environment ID to update\n - name (string, optional): Updated environment name\n - oauthEnabled (boolean, optional): Toggle OAuth\n - connectionAccount (string, optional): Updated connection account\n - runTimeParameters (object, optional): Updated runtime parameters\n - tagColors (object, optional): Updated UI tag colors\n\nReturns:\n Updated environment object.",
73
- inputSchema: z.object({
74
- environmentID: z.string().describe("The environment ID to update"),
75
- name: z.string().optional().describe("Updated name for the environment"),
76
- oauthEnabled: z.boolean().optional().describe("Whether OAuth is enabled"),
77
- devEnv: z.boolean().optional().describe("Whether this is a dev environment"),
78
- connectionAccount: z.string().optional().describe("Connection account identifier"),
79
- runTimeParameters: z.record(z.unknown()).optional().describe("Runtime parameters"),
80
- tagColors: z
81
- .object({
82
- backgroundColor: z.string().optional(),
83
- textColor: z.string().optional(),
84
- })
85
- .optional()
86
- .describe("Tag colors for the environment"),
87
- }),
88
- outputSchema: getToolOutputSchema("update_environment"),
89
- annotations: IDEMPOTENT_WRITE_ANNOTATIONS,
90
- }, async (params) => {
91
- try {
92
- const result = await updateEnvironment(client, params);
93
- return buildJsonToolResponse("update_environment", result);
94
- }
95
- catch (error) {
96
- return handleToolError(error);
97
- }
98
- });
99
- server.registerTool("delete_environment", {
100
- title: "Delete Environment",
101
- description: "Permanently delete a Coalesce environment. This is destructive and cannot be undone.\n\nArgs:\n - environmentID (string, required): The environment ID to delete\n\nReturns:\n Confirmation message.",
102
- inputSchema: z.object({
103
- environmentID: z.string().describe("The environment ID to delete"),
44
+ return createEnvironment(client, { project: projectID, oauthEnabled: false, ...rest });
104
45
  }),
105
- outputSchema: getToolOutputSchema("delete_environment"),
106
- annotations: DESTRUCTIVE_ANNOTATIONS,
107
- }, async (params) => {
108
- try {
109
- const result = await deleteEnvironment(client, params);
110
- return buildJsonToolResponse("delete_environment", result);
111
- }
112
- catch (error) {
113
- return handleToolError(error);
114
- }
115
- });
46
+ defineDestructiveTool(server, client, "delete_environment", {
47
+ title: "Delete Environment",
48
+ description: "Permanently delete a Coalesce environment. This is destructive and cannot be undone.\n\nArgs:\n - environmentID (string, required): The environment ID to delete\n - confirmed (boolean, optional): Set to true after the user explicitly confirms deletion\n\nReturns:\n Confirmation message.",
49
+ inputSchema: z.object({
50
+ environmentID: z.string().describe("The environment ID to delete"),
51
+ confirmed: z
52
+ .boolean()
53
+ .optional()
54
+ .describe("Set to true after the user explicitly confirms the deletion."),
55
+ }),
56
+ annotations: DESTRUCTIVE_ANNOTATIONS,
57
+ confirmMessage: (params) => `This will permanently delete environment "${params.environmentID}". This cannot be undone.`,
58
+ }, deleteEnvironment),
59
+ ];
116
60
  }
117
61
  //# sourceMappingURL=environments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../src/mcp/environments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../src/mcp/environments.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { CoalesceClient } from "../client.js";
3
- export declare function registerGitAccountTools(server: McpServer, client: CoalesceClient): void;
3
+ import { type ToolDefinition } from "../coalesce/types.js";
4
+ export declare function defineGitAccountTools(server: McpServer, client: CoalesceClient): ToolDefinition[];
4
5
  //# sourceMappingURL=git-accounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-accounts.d.ts","sourceRoot":"","sources":["../../src/mcp/git-accounts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAkBnD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,IAAI,CA2HN"}
1
+ {"version":3,"file":"git-accounts.d.ts","sourceRoot":"","sources":["../../src/mcp/git-accounts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAQnD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,cAAc,EAAE,CAqFlB"}