callman-mcp 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/README.md +45 -16
  3. package/dist/client/api.d.ts +64 -3
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/api.js +67 -2
  6. package/dist/client/api.js.map +1 -1
  7. package/dist/client/errors.d.ts.map +1 -1
  8. package/dist/client/errors.js +33 -7
  9. package/dist/client/errors.js.map +1 -1
  10. package/dist/client/types.d.ts +91 -2
  11. package/dist/client/types.d.ts.map +1 -1
  12. package/dist/context.d.ts +2 -0
  13. package/dist/context.d.ts.map +1 -1
  14. package/dist/context.js +7 -2
  15. package/dist/context.js.map +1 -1
  16. package/dist/domain/contracts.d.ts +893 -0
  17. package/dist/domain/contracts.d.ts.map +1 -0
  18. package/dist/domain/contracts.js +90 -0
  19. package/dist/domain/contracts.js.map +1 -0
  20. package/dist/domain/diagram/build.d.ts +520 -18
  21. package/dist/domain/diagram/build.d.ts.map +1 -1
  22. package/dist/domain/diagram/build.js +65 -19
  23. package/dist/domain/diagram/build.js.map +1 -1
  24. package/dist/domain/diagram/patch.d.ts +624 -51
  25. package/dist/domain/diagram/patch.d.ts.map +1 -1
  26. package/dist/domain/diagram/patch.js +180 -40
  27. package/dist/domain/diagram/patch.js.map +1 -1
  28. package/dist/domain/diagram/style.d.ts +315 -0
  29. package/dist/domain/diagram/style.d.ts.map +1 -0
  30. package/dist/domain/diagram/style.js +124 -0
  31. package/dist/domain/diagram/style.js.map +1 -0
  32. package/dist/domain/diagram/summarize.d.ts +8 -0
  33. package/dist/domain/diagram/summarize.d.ts.map +1 -1
  34. package/dist/domain/diagram/summarize.js +28 -13
  35. package/dist/domain/diagram/summarize.js.map +1 -1
  36. package/dist/domain/requestIntegrations.d.ts +719 -0
  37. package/dist/domain/requestIntegrations.d.ts.map +1 -0
  38. package/dist/domain/requestIntegrations.js +222 -0
  39. package/dist/domain/requestIntegrations.js.map +1 -0
  40. package/dist/domain/requestShape.d.ts +1350 -152
  41. package/dist/domain/requestShape.d.ts.map +1 -1
  42. package/dist/domain/requestShape.js +336 -121
  43. package/dist/domain/requestShape.js.map +1 -1
  44. package/dist/domain/resolve.d.ts +2 -1
  45. package/dist/domain/resolve.d.ts.map +1 -1
  46. package/dist/domain/resolve.js +5 -1
  47. package/dist/domain/resolve.js.map +1 -1
  48. package/dist/domain/scenario/build.d.ts +82 -26
  49. package/dist/domain/scenario/build.d.ts.map +1 -1
  50. package/dist/domain/scenario/build.js +196 -65
  51. package/dist/domain/scenario/build.js.map +1 -1
  52. package/dist/domain/scenario/nodeConfig.d.ts +11 -0
  53. package/dist/domain/scenario/nodeConfig.d.ts.map +1 -0
  54. package/dist/domain/scenario/nodeConfig.js +251 -0
  55. package/dist/domain/scenario/nodeConfig.js.map +1 -0
  56. package/dist/domain/scenario/summarize.d.ts +145 -25
  57. package/dist/domain/scenario/summarize.d.ts.map +1 -1
  58. package/dist/domain/scenario/summarize.js +84 -29
  59. package/dist/domain/scenario/summarize.js.map +1 -1
  60. package/dist/lib/mask.d.ts +0 -18
  61. package/dist/lib/mask.d.ts.map +1 -1
  62. package/dist/lib/mask.js +2 -44
  63. package/dist/lib/mask.js.map +1 -1
  64. package/dist/lib/pagination.d.ts +3 -2
  65. package/dist/lib/pagination.d.ts.map +1 -1
  66. package/dist/lib/pagination.js +13 -8
  67. package/dist/lib/pagination.js.map +1 -1
  68. package/dist/lib/redact.d.ts +12 -0
  69. package/dist/lib/redact.d.ts.map +1 -0
  70. package/dist/lib/redact.js +50 -0
  71. package/dist/lib/redact.js.map +1 -0
  72. package/dist/lib/strict.d.ts +4 -0
  73. package/dist/lib/strict.d.ts.map +1 -0
  74. package/dist/lib/strict.js +14 -0
  75. package/dist/lib/strict.js.map +1 -0
  76. package/dist/prompts/index.js +7 -7
  77. package/dist/prompts/index.js.map +1 -1
  78. package/dist/resources/docs/contracts.d.ts +2 -0
  79. package/dist/resources/docs/contracts.d.ts.map +1 -0
  80. package/dist/resources/docs/contracts.js +74 -0
  81. package/dist/resources/docs/contracts.js.map +1 -0
  82. package/dist/resources/docs/diagramSchema.d.ts +1 -1
  83. package/dist/resources/docs/diagramSchema.d.ts.map +1 -1
  84. package/dist/resources/docs/diagramSchema.js +95 -28
  85. package/dist/resources/docs/diagramSchema.js.map +1 -1
  86. package/dist/resources/docs/overview.d.ts +1 -1
  87. package/dist/resources/docs/overview.d.ts.map +1 -1
  88. package/dist/resources/docs/overview.js +29 -7
  89. package/dist/resources/docs/overview.js.map +1 -1
  90. package/dist/resources/docs/requestSchema.d.ts +1 -1
  91. package/dist/resources/docs/requestSchema.d.ts.map +1 -1
  92. package/dist/resources/docs/requestSchema.js +85 -16
  93. package/dist/resources/docs/requestSchema.js.map +1 -1
  94. package/dist/resources/generated/aiPacks.d.ts +1 -1
  95. package/dist/resources/generated/aiPacks.d.ts.map +1 -1
  96. package/dist/resources/generated/aiPacks.js +3 -2
  97. package/dist/resources/generated/aiPacks.js.map +1 -1
  98. package/dist/resources/index.d.ts.map +1 -1
  99. package/dist/resources/index.js +19 -19
  100. package/dist/resources/index.js.map +1 -1
  101. package/dist/run/executeCollection.d.ts +3 -1
  102. package/dist/run/executeCollection.d.ts.map +1 -1
  103. package/dist/run/executeCollection.js +16 -4
  104. package/dist/run/executeCollection.js.map +1 -1
  105. package/dist/run/summarize.d.ts +17 -6
  106. package/dist/run/summarize.d.ts.map +1 -1
  107. package/dist/run/summarize.js +48 -41
  108. package/dist/run/summarize.js.map +1 -1
  109. package/dist/run/types.d.ts +1 -0
  110. package/dist/run/types.d.ts.map +1 -1
  111. package/dist/server.d.ts +1 -1
  112. package/dist/server.d.ts.map +1 -1
  113. package/dist/server.js +1 -1
  114. package/dist/server.js.map +1 -1
  115. package/dist/tools/catalog.d.ts +1 -1
  116. package/dist/tools/catalog.d.ts.map +1 -1
  117. package/dist/tools/catalog.js +18 -0
  118. package/dist/tools/catalog.js.map +1 -1
  119. package/dist/tools/collections.d.ts.map +1 -1
  120. package/dist/tools/collections.js +53 -41
  121. package/dist/tools/collections.js.map +1 -1
  122. package/dist/tools/contracts.d.ts +4 -0
  123. package/dist/tools/contracts.d.ts.map +1 -0
  124. package/dist/tools/contracts.js +201 -0
  125. package/dist/tools/contracts.js.map +1 -0
  126. package/dist/tools/diagrams.d.ts.map +1 -1
  127. package/dist/tools/diagrams.js +19 -10
  128. package/dist/tools/diagrams.js.map +1 -1
  129. package/dist/tools/environments.d.ts.map +1 -1
  130. package/dist/tools/environments.js +184 -64
  131. package/dist/tools/environments.js.map +1 -1
  132. package/dist/tools/import.d.ts.map +1 -1
  133. package/dist/tools/import.js +111 -20
  134. package/dist/tools/import.js.map +1 -1
  135. package/dist/tools/index.d.ts +2 -1
  136. package/dist/tools/index.d.ts.map +1 -1
  137. package/dist/tools/index.js +19 -1
  138. package/dist/tools/index.js.map +1 -1
  139. package/dist/tools/lookups.d.ts +38 -7
  140. package/dist/tools/lookups.d.ts.map +1 -1
  141. package/dist/tools/lookups.js +113 -10
  142. package/dist/tools/lookups.js.map +1 -1
  143. package/dist/tools/meta.d.ts.map +1 -1
  144. package/dist/tools/meta.js +9 -4
  145. package/dist/tools/meta.js.map +1 -1
  146. package/dist/tools/requests.d.ts.map +1 -1
  147. package/dist/tools/requests.js +138 -50
  148. package/dist/tools/requests.js.map +1 -1
  149. package/dist/tools/run.d.ts.map +1 -1
  150. package/dist/tools/run.js +84 -28
  151. package/dist/tools/run.js.map +1 -1
  152. package/dist/tools/scenarios.d.ts.map +1 -1
  153. package/dist/tools/scenarios.js +238 -75
  154. package/dist/tools/scenarios.js.map +1 -1
  155. package/dist/tools/shared.d.ts +1 -0
  156. package/dist/tools/shared.d.ts.map +1 -1
  157. package/dist/tools/shared.js +9 -1
  158. package/dist/tools/shared.js.map +1 -1
  159. package/dist/tools/workspaces.d.ts.map +1 -1
  160. package/dist/tools/workspaces.js +44 -7
  161. package/dist/tools/workspaces.js.map +1 -1
  162. package/dist-cjs/client/api.js +67 -2
  163. package/dist-cjs/client/errors.js +33 -7
  164. package/dist-cjs/context.js +7 -2
  165. package/dist-cjs/domain/contracts.js +93 -0
  166. package/dist-cjs/domain/diagram/build.js +71 -20
  167. package/dist-cjs/domain/diagram/patch.js +179 -39
  168. package/dist-cjs/domain/diagram/style.js +130 -0
  169. package/dist-cjs/domain/diagram/summarize.js +28 -13
  170. package/dist-cjs/domain/requestIntegrations.js +228 -0
  171. package/dist-cjs/domain/requestShape.js +342 -121
  172. package/dist-cjs/domain/resolve.js +5 -1
  173. package/dist-cjs/domain/scenario/build.js +197 -65
  174. package/dist-cjs/domain/scenario/nodeConfig.js +260 -0
  175. package/dist-cjs/domain/scenario/summarize.js +86 -29
  176. package/dist-cjs/lib/mask.js +3 -48
  177. package/dist-cjs/lib/pagination.js +13 -8
  178. package/dist-cjs/lib/redact.js +53 -0
  179. package/dist-cjs/lib/strict.js +18 -0
  180. package/dist-cjs/prompts/index.js +7 -7
  181. package/dist-cjs/resources/docs/contracts.js +76 -0
  182. package/dist-cjs/resources/docs/diagramSchema.js +95 -28
  183. package/dist-cjs/resources/docs/overview.js +29 -7
  184. package/dist-cjs/resources/docs/requestSchema.js +85 -16
  185. package/dist-cjs/resources/generated/aiPacks.js +3 -2
  186. package/dist-cjs/resources/index.js +17 -17
  187. package/dist-cjs/run/executeCollection.js +16 -4
  188. package/dist-cjs/run/summarize.js +48 -41
  189. package/dist-cjs/server.js +1 -1
  190. package/dist-cjs/tools/catalog.js +18 -0
  191. package/dist-cjs/tools/collections.js +52 -40
  192. package/dist-cjs/tools/contracts.js +204 -0
  193. package/dist-cjs/tools/diagrams.js +19 -10
  194. package/dist-cjs/tools/environments.js +182 -62
  195. package/dist-cjs/tools/import.js +107 -16
  196. package/dist-cjs/tools/index.js +21 -2
  197. package/dist-cjs/tools/lookups.js +123 -11
  198. package/dist-cjs/tools/meta.js +9 -4
  199. package/dist-cjs/tools/requests.js +134 -46
  200. package/dist-cjs/tools/run.js +82 -26
  201. package/dist-cjs/tools/scenarios.js +235 -72
  202. package/dist-cjs/tools/shared.js +11 -2
  203. package/dist-cjs/tools/workspaces.js +43 -6
  204. package/package.json +2 -2
@@ -1,17 +1,18 @@
1
1
  import { parseCurlFile, parseHttpFile } from "callman-core";
2
2
  import { z } from "zod";
3
- import { CallmanApiError, ToolInputError } from "../client/errors.js";
3
+ import { ToolInputError } from "../client/errors.js";
4
4
  import { detectImport, documentPayload, SERVER_DOCUMENT_FORMATS } from "../domain/importDetect.js";
5
- import { resolvedSummary } from "../domain/resolve.js";
5
+ import { resolvedSummary, resolveRef } from "../domain/resolve.js";
6
6
  import { LIMITS } from "../lib/truncate.js";
7
- import { loadCollections, resolveCollection, resolveFolder, resolveScenarioFolder, sameName } from "./lookups.js";
8
- import { dryRunArg, guarded, ok, refArg, workspaceArg, WRITE } from "./shared.js";
7
+ import { strictObject } from "../lib/strict.js";
8
+ import { findCollection, loadCollections, loadConnections, resolveEnvironment, resolveFolder, resolveScenarioFolder, sameName, workspaceTag } from "./lookups.js";
9
+ import { dryRunArg, failureOf, guarded, ok, refArg, workspaceArg, WRITE } from "./shared.js";
9
10
  const CONTENT_MAX = 8 * 1024 * 1024;
10
11
  const IMPORT_FORMATS = ["auto", "postman", "openapi", "insomnia", "bruno", "internal", "curl", "http"];
11
12
  export const registerImportTools = (server, ctx) => {
12
13
  server.registerTool("import_content", {
13
14
  title: "Import a file's content",
14
- description: "Import API definitions from file CONTENT you read: Postman collection, OpenAPI/Swagger (JSON or YAML), Insomnia, Bruno, a Callman export, a cURL script, or a .http/.rest file. The format is detected (`format: auto`). Document formats always create a new collection; cURL/.http create a new collection (`collectionName`) or add to an existing one (`targetCollection` + optional `folder`). Use dryRun: true to see what was detected before writing. For endpoints found in source code, read the routes yourself and call create_requests_bulk instead.",
15
+ description: "Import API definitions from file CONTENT you read: Postman collection, OpenAPI/Swagger (JSON or YAML), Insomnia, Bruno, a Callman export, a cURL script, or a .http/.rest file. The format is detected (`format: auto`). Document formats always create a new collection; cURL/.http create a new collection (`collectionName`) or add to an existing one (`targetCollection` + optional `folder`). Variables the file defines (Postman collection variables, OpenAPI servers → baseUrl, .http @vars) are written into `environment` when you name one — without it, requests reference {{variables}} that have no value anywhere. Use dryRun: true to see what was detected before writing. For endpoints found in source code, read the routes yourself and call create_requests_bulk instead.",
15
16
  inputSchema: {
16
17
  workspace: workspaceArg,
17
18
  content: z.string().min(1).max(CONTENT_MAX).describe("The raw file content"),
@@ -20,13 +21,21 @@ export const registerImportTools = (server, ctx) => {
20
21
  collectionName: z.string().max(LIMITS.NAME).optional().describe("Name for the new collection (documents: fallback when the file carries no name)"),
21
22
  targetCollection: z.string().max(200).optional().describe("cURL/.http only: add to this existing collection instead of creating one"),
22
23
  folder: z.string().max(300).optional().describe("cURL/.http + targetCollection: folder to put the requests in"),
24
+ environment: z.string().max(200).optional().describe("Environment (id or name) that receives the variables the file defines"),
23
25
  dryRun: dryRunArg,
24
26
  },
25
27
  annotations: WRITE,
26
- }, guarded(async ({ workspace, content, fileName, format, collectionName, targetCollection, folder, dryRun }) => {
27
- const ws = await ctx.resolveWorkspace(workspace);
28
+ }, guarded(async ({ workspace, content, fileName, format, collectionName, targetCollection, folder, environment, dryRun }) => {
29
+ // Into an existing collection → that collection's workspace; otherwise
30
+ // the one named, the session default or the only one.
31
+ const target = targetCollection ? await findCollection(ctx, workspace, targetCollection) : null;
32
+ const ws = target ? target.ws : await ctx.resolveWorkspace(workspace);
28
33
  const detection = detectImport(fileName, content);
29
34
  const resolvedFormat = format === "auto" ? detection.format : format;
35
+ const targetEnvironment = environment ? await resolveEnvironment(ctx, ws.id, environment) : null;
36
+ if (folder && !targetCollection) {
37
+ throw new ToolInputError("FOLDER_NEEDS_TARGET_COLLECTION", "`folder` only applies together with targetCollection (cURL/.http into an existing collection).");
38
+ }
30
39
  if (resolvedFormat === "unknown" || resolvedFormat === "scenario" || resolvedFormat === "environment") {
31
40
  throw new ToolInputError("IMPORT_FORMAT_UNSUPPORTED", resolvedFormat === "scenario"
32
41
  ? "This is a Callman scenario export — use import_scenario."
@@ -46,8 +55,28 @@ export const registerImportTools = (server, ctx) => {
46
55
  if (collectionName)
47
56
  payload = { ...payload, collectionName: collectionName.trim() };
48
57
  const sample = payload.requests.slice(0, 5).map((request) => `${request.method} ${request.name}`);
58
+ // .http `@name = value` lines (callman-core ≥ 1.28.1 returns them).
59
+ const fileVariables = (payload.variables ?? []).filter((variable) => variable.key);
60
+ const applyFileVariables = async () => {
61
+ if (fileVariables.length === 0)
62
+ return {};
63
+ if (!targetEnvironment) {
64
+ return { fileVariables: fileVariables.map((variable) => variable.key), fileVariablesNote: "The file defines these variables; pass `environment` to store them, or set them with set_environment_variables." };
65
+ }
66
+ const existing = new Set(targetEnvironment.item.variables.map((variable) => variable.key));
67
+ const written = [];
68
+ for (const variable of fileVariables) {
69
+ if (existing.has(variable.key))
70
+ await ctx.api.updateEnvironmentVariable(ws.id, targetEnvironment.item.id, variable.key, { value: variable.value });
71
+ else
72
+ await ctx.api.addEnvironmentVariable(ws.id, targetEnvironment.item.id, { key: variable.key, value: variable.value });
73
+ written.push(variable.key);
74
+ }
75
+ ctx.invalidate(`environments:${ws.id}`);
76
+ return { environment: { id: targetEnvironment.item.id, name: targetEnvironment.item.name, variablesWritten: written } };
77
+ };
49
78
  if (targetCollection) {
50
- const resolved = await resolveCollection(ctx, ws.id, targetCollection);
79
+ const resolved = target.value;
51
80
  const targetFolder = await resolveFolder(ctx, ws.id, resolved.item.id, folder);
52
81
  if (dryRun) {
53
82
  return ok({ dryRun: true, detected: detection, format: resolvedFormat, mode: "existing-collection", collection: { id: resolved.item.id, name: resolved.item.name }, requestCount: payload.requests.length, sample });
@@ -60,12 +89,12 @@ export const registerImportTools = (server, ctx) => {
60
89
  created.push({ id: row.id, name: row.name, method: row.method });
61
90
  }
62
91
  catch (error) {
63
- failed.push({ name: request.name, error: error instanceof CallmanApiError ? `${error.code}: ${error.message}` : String(error) });
92
+ failed.push({ name: request.name, error: failureOf(error) });
64
93
  }
65
94
  }
66
95
  ctx.invalidate(`tree:${ws.id}:${resolved.item.id}`);
67
96
  ctx.invalidate(`collections:${ws.id}`);
68
- return ok({ format: resolvedFormat, collection: { id: resolved.item.id, name: resolved.item.name }, created: created.length, failed, requests: created, resolved: [resolvedSummary(targetCollection, resolved)] });
97
+ return ok({ format: resolvedFormat, collection: { id: resolved.item.id, name: resolved.item.name }, workspace: workspaceTag(ws), created: created.length, failed, requests: created, ...(await applyFileVariables()), resolved: [resolvedSummary(targetCollection, resolved)] });
69
98
  }
70
99
  const existing = (await loadCollections(ctx, ws.id)).find((entry) => sameName(entry.name, payload.collectionName));
71
100
  if (existing) {
@@ -78,7 +107,10 @@ export const registerImportTools = (server, ctx) => {
78
107
  }
79
108
  const result = await ctx.api.importJson(ws.id, { format: "requests", payload });
80
109
  ctx.invalidate(`collections:${ws.id}`);
81
- return ok({ format: resolvedFormat, collection: { id: result.collection.id, name: result.collection.name }, created: result.importedCounts });
110
+ return ok({ format: resolvedFormat, collection: { id: result.collection.id, name: result.collection.name }, workspace: workspaceTag(ws), created: result.importedCounts, ...(await applyFileVariables()) });
111
+ }
112
+ if (targetCollection) {
113
+ throw new ToolInputError("IMPORT_TARGET_UNSUPPORTED", `A ${resolvedFormat} document always creates a new collection — targetCollection only applies to cURL/.http. Import it, then use move_requests to move requests into "${targetCollection}".`);
82
114
  }
83
115
  if (!SERVER_DOCUMENT_FORMATS.has(resolvedFormat)) {
84
116
  throw new ToolInputError("IMPORT_FORMAT_UNSUPPORTED", `Format "${resolvedFormat}" is not importable here.`);
@@ -87,22 +119,45 @@ export const registerImportTools = (server, ctx) => {
87
119
  if (dryRun) {
88
120
  return ok({ dryRun: true, detected: detection, format: resolvedFormat, mode: "new-collection", note: "The server parses this document; request counts are known after the import." });
89
121
  }
90
- const result = await ctx.api.importJson(ws.id, { format: resolvedFormat, payload, ...(collectionName ? { fallbackCollectionName: collectionName.trim() } : {}) });
122
+ const result = await ctx.api.importJson(ws.id, {
123
+ format: resolvedFormat,
124
+ payload,
125
+ ...(collectionName ? { fallbackCollectionName: collectionName.trim() } : {}),
126
+ ...(targetEnvironment ? { targetEnvironmentId: targetEnvironment.item.id } : {}),
127
+ });
91
128
  ctx.invalidate(`collections:${ws.id}`);
92
- return ok({ format: resolvedFormat, collection: { id: result.collection.id, name: result.collection.name }, created: result.importedCounts });
129
+ if (targetEnvironment)
130
+ ctx.invalidate(`environments:${ws.id}`);
131
+ return ok({
132
+ format: resolvedFormat,
133
+ collection: { id: result.collection.id, name: result.collection.name },
134
+ workspace: workspaceTag(ws),
135
+ created: result.importedCounts,
136
+ // Keys only — the import response carries the environment's values.
137
+ ...(result.environment ? { environment: { id: result.environment.id, name: result.environment.name, variableKeys: (result.environment.variables ?? []).map((variable) => variable.key) } } : {}),
138
+ ...(!targetEnvironment ? { note: "Variables defined by the file were not stored — pass `environment` to write them into an environment." } : {}),
139
+ });
93
140
  }));
94
141
  server.registerTool("import_scenario", {
95
142
  title: "Import a scenario export",
96
- description: "Import a Callman scenario export (a `callman.scenario` envelope — the JSON of a .callman.scenario file, as text or object). Connections referenced by the export that have no counterpart here are skipped (the nodes import without a connection; the result lists warnings).",
143
+ description: "Import a Callman scenario export (a `callman.scenario` envelope — the JSON of a .callman.scenario file, as text or object). Connections the export references are matched to this workspace's connections of the same type and name automatically; `connections` overrides that per export connection (a workspace connection id or name, or \"skip\"). Unmatched ones are skipped (the nodes import without a connection) and listed. On-prem, `group` picks the scenario group.",
97
144
  inputSchema: {
98
145
  workspace: workspaceArg,
99
146
  envelope: z.union([z.string().max(CONTENT_MAX), z.record(z.unknown())]).describe("The export envelope (JSON text or object)"),
100
147
  name: z.string().max(200).optional().describe("Override the imported scenario's name"),
101
148
  folder: z.string().max(200).optional().describe("Scenario folder id or name"),
149
+ group: z.string().max(200).optional().describe('On-prem scenario group (name or id, or "personal")'),
150
+ connections: z
151
+ .array(strictObject({
152
+ from: z.string().min(1).max(300).describe("The export's connection (its refId or name)"),
153
+ to: z.string().min(1).max(200).describe('Workspace connection id or name, or "skip"'),
154
+ }, "connection mapping field"))
155
+ .max(200)
156
+ .optional(),
102
157
  dryRun: dryRunArg,
103
158
  },
104
159
  annotations: WRITE,
105
- }, guarded(async ({ workspace, envelope, name, folder, dryRun }) => {
160
+ }, guarded(async ({ workspace, envelope, name, folder, group, connections: mapping, dryRun }) => {
106
161
  const ws = await ctx.resolveWorkspace(workspace);
107
162
  let parsed = envelope;
108
163
  if (typeof envelope === "string") {
@@ -118,23 +173,59 @@ export const registerImportTools = (server, ctx) => {
118
173
  throw new ToolInputError("IMPORT_NOT_SCENARIO", "This is not a Callman scenario export (expected kind: \"callman.scenario\").");
119
174
  }
120
175
  const targetFolder = folder ? await resolveScenarioFolder(ctx, ws.id, folder) : null;
121
- const connections = record.connections ?? [];
122
- const connectionMap = Object.fromEntries(connections.filter((connection) => connection.refId).map((connection) => [connection.refId, { action: "skip" }]));
176
+ let groupId;
177
+ if (group) {
178
+ if (group.trim().toLowerCase() === "personal")
179
+ groupId = "personal";
180
+ else {
181
+ const { items } = await ctx.api.listMyScenarioGroups(ws.id);
182
+ if (items.length > 0)
183
+ groupId = resolveRef("scenario group", group, items).item.id;
184
+ }
185
+ }
186
+ const exported = (record.connections ?? []).filter((connection) => connection.refId);
187
+ for (const entry of mapping ?? []) {
188
+ if (!exported.some((connection) => connection.refId === entry.from || connection.name === entry.from)) {
189
+ throw new ToolInputError("IMPORT_CONNECTION_UNKNOWN", `The export has no connection "${entry.from}".`, { exportConnections: exported.map((connection) => ({ refId: connection.refId, name: connection.name, type: connection.type })) });
190
+ }
191
+ }
192
+ const available = exported.length > 0 ? await loadConnections(ctx, ws.id) : [];
193
+ const decisions = [];
194
+ const connectionMap = {};
195
+ for (const connection of exported) {
196
+ const override = (mapping ?? []).find((entry) => entry.from === connection.refId || entry.from === connection.name);
197
+ let target;
198
+ if (override && override.to.trim().toLowerCase() !== "skip") {
199
+ target = available.find((candidate) => candidate.id === override.to) ?? available.find((candidate) => candidate.name.toLowerCase() === override.to.toLowerCase());
200
+ if (!target)
201
+ throw new ToolInputError("CONNECTION_NOT_FOUND", `No workspace connection "${override.to}" (list_connections shows them).`);
202
+ if (connection.type && target.type !== connection.type)
203
+ throw new ToolInputError("CONNECTION_WRONG_TYPE", `"${target.name}" is a ${target.type} connection; the export's "${connection.name}" is ${connection.type}.`);
204
+ }
205
+ else if (!override) {
206
+ const sameName = available.filter((candidate) => candidate.type === connection.type && candidate.name.toLowerCase() === (connection.name ?? "").toLowerCase());
207
+ target = sameName.length === 1 ? sameName[0] : undefined;
208
+ }
209
+ connectionMap[connection.refId] = target ? { action: "map", connectionId: target.id } : { action: "skip" };
210
+ decisions.push({ export: connection.name ?? connection.refId, type: connection.type ?? null, mappedTo: target ? target.name : null });
211
+ }
123
212
  if (dryRun) {
124
213
  return ok({
125
214
  dryRun: true,
126
215
  scenario: { name: name ?? record.scenario?.name ?? null, nodeCount: Array.isArray(record.scenario?.nodes) ? record.scenario?.nodes.length : null },
127
- connectionsSkipped: connections.map((connection) => `${connection.name ?? connection.refId} (${connection.type ?? "?"})`),
216
+ connections: decisions,
128
217
  folder: targetFolder ? { id: targetFolder.item.id, name: targetFolder.item.name } : null,
129
218
  });
130
219
  }
131
- const result = await ctx.api.importScenario(ws.id, { envelope: parsed, ...(name ? { name } : {}), folderId: targetFolder?.item.id ?? null, connectionMap });
220
+ const result = await ctx.api.importScenario(ws.id, { envelope: parsed, ...(name ? { name } : {}), folderId: targetFolder?.item.id ?? null, connectionMap, ...(groupId ? { groupId } : {}) });
132
221
  ctx.invalidate("scenarios:");
133
222
  const scenario = result.scenario;
223
+ const skipped = decisions.filter((decision) => !decision.mappedTo);
134
224
  return ok({
135
225
  scenario: { id: scenario.id, name: scenario.name, nodeCount: scenario.nodes?.length ?? null, reviewStatus: scenario.reviewStatus ?? null },
226
+ connections: decisions,
136
227
  warnings: result.warnings ?? [],
137
- ...(connections.length > 0 ? { note: "Connections from the export were skipped — attach the right workspace connections to the DB/Kafka/Redis nodes in the desktop app." } : {}),
228
+ ...(skipped.length > 0 ? { note: `Not connected: ${skipped.map((decision) => decision.export).join(", ")} — their nodes need a connectionId (patch_scenario + list_connections).` } : {}),
138
229
  ...(targetFolder ? { resolved: [resolvedSummary(folder, targetFolder)] } : {}),
139
230
  });
140
231
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/tools/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/tools/import.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { ToolContext } from "../context.js";
3
3
  export { TOOL_CATALOG, toolAvailability, type ToolCatalogEntry } from "./catalog.js";
4
- export declare const registerAllTools: (server: McpServer, ctx: ToolContext) => void;
4
+ export declare const withStrictArguments: (server: McpServer) => McpServer;
5
+ export declare const registerAllTools: (host: McpServer, ctx: ToolContext) => void;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAWjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,EAAE,KAAK,WAAW,KAAG,IAUtE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAajD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUrF,eAAO,MAAM,mBAAmB,GAAI,QAAQ,SAAS,KAAG,SAYpD,CAAC;AAKL,eAAO,MAAM,gBAAgB,GAAI,MAAM,SAAS,EAAE,KAAK,WAAW,KAAG,IAYpE,CAAC"}
@@ -1,4 +1,6 @@
1
+ import { strictObject } from "../lib/strict.js";
1
2
  import { registerCollectionTools } from "./collections.js";
3
+ import { registerContractTools } from "./contracts.js";
2
4
  import { registerDiagramTools } from "./diagrams.js";
3
5
  import { registerEnvironmentTools } from "./environments.js";
4
6
  import { registerImportTools } from "./import.js";
@@ -8,14 +10,30 @@ import { registerRunTools } from "./run.js";
8
10
  import { registerScenarioTools } from "./scenarios.js";
9
11
  import { registerWorkspaceTools } from "./workspaces.js";
10
12
  export { TOOL_CATALOG, toolAvailability } from "./catalog.js";
13
+ // Every tool's arguments are strict: the SDK would otherwise build a
14
+ // strip-mode object from the raw shape, and a misspelled argument
15
+ // (`workspaceId` for `workspace`, `colour` for `color`) would vanish while the
16
+ // tool ran with its default. Runtime only — handler types still come from the
17
+ // raw shapes at each registerTool call.
18
+ const isRawShape = (schema) => typeof schema === "object" && schema !== null && !("_def" in schema) && !("_zod" in schema);
19
+ export const withStrictArguments = (server) => new Proxy(server, {
20
+ get(target, property, receiver) {
21
+ if (property !== "registerTool")
22
+ return Reflect.get(target, property, receiver);
23
+ const register = (name, config, callback) => target.registerTool(name, { ...config, inputSchema: isRawShape(config.inputSchema) ? strictObject(config.inputSchema, "argument", name) : config.inputSchema }, callback);
24
+ return register;
25
+ },
26
+ });
11
27
  // Registration order = the order clients list tools in. Run tools are only
12
28
  // registered when local execution is allowed (a backend-hosted server passes
13
29
  // allowLocalRun: false and they disappear from tools/list).
14
- export const registerAllTools = (server, ctx) => {
30
+ export const registerAllTools = (host, ctx) => {
31
+ const server = withStrictArguments(host);
15
32
  registerMetaTools(server, ctx);
16
33
  registerWorkspaceTools(server, ctx);
17
34
  registerCollectionTools(server, ctx);
18
35
  registerRequestTools(server, ctx);
36
+ registerContractTools(server, ctx);
19
37
  registerImportTools(server, ctx);
20
38
  registerEnvironmentTools(server, ctx);
21
39
  registerScenarioTools(server, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAyB,MAAM,cAAc,CAAC;AAErF,2EAA2E;AAC3E,6EAA6E;AAC7E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAiB,EAAE,GAAgB,EAAQ,EAAE;IAC5E,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa;QAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAyB,MAAM,cAAc,CAAC;AAErF,qEAAqE;AACrE,kEAAkE;AAClE,+EAA+E;AAC/E,8EAA8E;AAC9E,wCAAwC;AACxC,MAAM,UAAU,GAAG,CAAC,MAAe,EAA2B,EAAE,CAC9D,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAiB,EAAa,EAAE,CAClE,IAAI,KAAK,CAAC,MAAM,EAAE;IAChB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;QAC5B,IAAI,QAAQ,KAAK,cAAc;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,MAAiC,EAAE,QAAiB,EAAE,EAAE,CACrF,MAAM,CAAC,YAAgD,CACtD,IAAI,EACJ,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EACpI,QAAQ,CACT,CAAC;QACJ,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC,CAAC;AAEL,2EAA2E;AAC3E,6EAA6E;AAC7E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,GAAgB,EAAQ,EAAE;IAC1E,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa;QAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC,CAAC"}
@@ -1,33 +1,64 @@
1
- import type { ApiRequest, Collection, Diagram, Environment, RequestTreeItem, Scenario, ScenarioFolder } from "../client/types.js";
1
+ import type { ApiRequest, Collection, ConnectionRecord, Diagram, Environment, RequestTreeItem, Scenario, ScenarioFolder, Workspace } from "../client/types.js";
2
2
  import type { ToolContext } from "../context.js";
3
+ import { type ConnectionResolver } from "../domain/requestIntegrations.js";
3
4
  import { type FlatFolder, type Resolved } from "../domain/resolve.js";
4
5
  export declare const loadCollections: (ctx: ToolContext, ws: string) => Promise<Collection[]>;
5
- export declare const resolveCollection: (ctx: ToolContext, ws: string, ref: string) => Promise<Resolved<Collection>>;
6
+ export interface LookupOptions {
7
+ exact?: boolean;
8
+ }
9
+ export declare const isAllWorkspaces: (ref: string | null | undefined) => boolean;
10
+ export declare const workspacesForListing: (ctx: ToolContext, explicit: string | null | undefined) => Promise<Workspace[]>;
11
+ export declare const workspaceTag: (ws: Workspace) => {
12
+ id: string;
13
+ name: string;
14
+ };
15
+ export interface Found<T> {
16
+ ws: Workspace;
17
+ value: T;
18
+ note?: string;
19
+ }
20
+ type MatchKind = "id" | "name" | "partial" | undefined;
21
+ export declare const findInWorkspaces: <T>(ctx: ToolContext, explicit: string | null | undefined, kind: string, ref: string, find: (ws: Workspace) => Promise<T>, options?: {
22
+ matchOf?: (value: T) => MatchKind;
23
+ describe?: (value: T) => Record<string, unknown>;
24
+ }) => Promise<Found<T>>;
25
+ export declare const findCollection: (ctx: ToolContext, workspace: string | null | undefined, ref: string, options?: LookupOptions) => Promise<Found<Resolved<Collection>>>;
26
+ export declare const findRequest: (ctx: ToolContext, workspace: string | null | undefined, ref: string, collectionRef?: string | null, options?: LookupOptions) => Promise<Found<{
27
+ request: ApiRequest;
28
+ annotation?: string;
29
+ matched: "id" | "name" | "partial";
30
+ }>>;
31
+ export declare const findEnvironment: (ctx: ToolContext, workspace: string | null | undefined, ref: string, options?: LookupOptions) => Promise<Found<Resolved<Environment>>>;
32
+ export declare const resolveCollection: (ctx: ToolContext, ws: string, ref: string, options?: LookupOptions) => Promise<Resolved<Collection>>;
6
33
  export interface CollectionTree {
7
34
  folders: FlatFolder[];
8
35
  requests: RequestTreeItem[];
9
36
  }
10
37
  export declare const loadTree: (ctx: ToolContext, ws: string, collectionId: string) => Promise<CollectionTree>;
11
- export declare const resolveFolder: (ctx: ToolContext, ws: string, collectionId: string, ref: string | null | undefined) => Promise<Resolved<FlatFolder> | null>;
38
+ export declare const resolveFolder: (ctx: ToolContext, ws: string, collectionId: string, ref: string | null | undefined, options?: LookupOptions) => Promise<Resolved<FlatFolder> | null>;
12
39
  export declare const requestIdsInFolder: (tree: CollectionTree, folderId: string) => string[];
13
40
  export interface RequestMatch extends RequestTreeItem {
14
41
  collectionName: string;
15
42
  }
16
43
  export declare const searchRequests: (ctx: ToolContext, ws: string, query: string, collectionId: string | null, limit?: number) => Promise<RequestMatch[]>;
17
- export declare const resolveRequest: (ctx: ToolContext, ws: string, ref: string, collectionRef?: string | null) => Promise<{
44
+ export declare const resolveRequest: (ctx: ToolContext, ws: string, ref: string, collectionRef?: string | null, options?: LookupOptions) => Promise<{
18
45
  request: ApiRequest;
19
46
  annotation?: string;
47
+ matched: "id" | "name" | "partial";
20
48
  }>;
21
49
  export declare const loadEnvironments: (ctx: ToolContext, ws: string) => Promise<Environment[]>;
22
- export declare const resolveEnvironment: (ctx: ToolContext, ws: string, ref: string) => Promise<Resolved<Environment>>;
50
+ export declare const resolveEnvironment: (ctx: ToolContext, ws: string, ref: string, options?: LookupOptions) => Promise<Resolved<Environment>>;
23
51
  export interface ScenarioCatalog {
24
52
  scenarios: Scenario[];
25
53
  folders: ScenarioFolder[];
26
54
  }
27
55
  export declare const loadScenarioCatalog: (ctx: ToolContext, ws: string | null) => Promise<ScenarioCatalog>;
28
- export declare const resolveScenario: (ctx: ToolContext, ws: string | null, ref: string) => Promise<Resolved<Scenario>>;
56
+ export declare const resolveScenario: (ctx: ToolContext, ws: string | null, ref: string, options?: LookupOptions) => Promise<Resolved<Scenario>>;
29
57
  export declare const resolveScenarioFolder: (ctx: ToolContext, ws: string | null, ref: string) => Promise<Resolved<ScenarioFolder>>;
30
58
  export declare const loadDiagrams: (ctx: ToolContext) => Promise<Diagram[]>;
31
- export declare const resolveDiagram: (ctx: ToolContext, ref: string) => Promise<Resolved<Diagram>>;
59
+ export declare const resolveDiagram: (ctx: ToolContext, ref: string, options?: LookupOptions) => Promise<Resolved<Diagram>>;
60
+ export declare const loadConnections: (ctx: ToolContext, ws: string) => Promise<ConnectionRecord[]>;
61
+ export declare const connectionResolverFor: (ctx: ToolContext, ws: string, needed: boolean) => Promise<ConnectionResolver | undefined>;
32
62
  export declare const sameName: (a: string, b: string) => boolean;
63
+ export {};
33
64
  //# sourceMappingURL=lookups.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lookups.d.ts","sourceRoot":"","sources":["../../src/tools/lookups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookups.d.ts","sourceRoot":"","sources":["../../src/tools/lookups.ts"],"names":[],"mappings":"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"}