callman-mcp 0.1.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 (244) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/LICENSE +21 -0
  3. package/README.md +203 -0
  4. package/dist/client/api.d.ts +109 -0
  5. package/dist/client/api.d.ts.map +1 -0
  6. package/dist/client/api.js +180 -0
  7. package/dist/client/api.js.map +1 -0
  8. package/dist/client/errors.d.ts +27 -0
  9. package/dist/client/errors.d.ts.map +1 -0
  10. package/dist/client/errors.js +98 -0
  11. package/dist/client/errors.js.map +1 -0
  12. package/dist/client/http.d.ts +34 -0
  13. package/dist/client/http.d.ts.map +1 -0
  14. package/dist/client/http.js +121 -0
  15. package/dist/client/http.js.map +1 -0
  16. package/dist/client/types.d.ts +327 -0
  17. package/dist/client/types.d.ts.map +1 -0
  18. package/dist/client/types.js +5 -0
  19. package/dist/client/types.js.map +1 -0
  20. package/dist/config.d.ts +20 -0
  21. package/dist/config.d.ts.map +1 -0
  22. package/dist/config.js +69 -0
  23. package/dist/config.js.map +1 -0
  24. package/dist/context.d.ts +35 -0
  25. package/dist/context.d.ts.map +1 -0
  26. package/dist/context.js +91 -0
  27. package/dist/context.js.map +1 -0
  28. package/dist/domain/diagram/build.d.ts +260 -0
  29. package/dist/domain/diagram/build.d.ts.map +1 -0
  30. package/dist/domain/diagram/build.js +160 -0
  31. package/dist/domain/diagram/build.js.map +1 -0
  32. package/dist/domain/diagram/layout.d.ts +17 -0
  33. package/dist/domain/diagram/layout.d.ts.map +1 -0
  34. package/dist/domain/diagram/layout.js +61 -0
  35. package/dist/domain/diagram/layout.js.map +1 -0
  36. package/dist/domain/diagram/patch.d.ts +330 -0
  37. package/dist/domain/diagram/patch.d.ts.map +1 -0
  38. package/dist/domain/diagram/patch.js +176 -0
  39. package/dist/domain/diagram/patch.js.map +1 -0
  40. package/dist/domain/diagram/summarize.d.ts +41 -0
  41. package/dist/domain/diagram/summarize.d.ts.map +1 -0
  42. package/dist/domain/diagram/summarize.js +47 -0
  43. package/dist/domain/diagram/summarize.js.map +1 -0
  44. package/dist/domain/importDetect.d.ts +6 -0
  45. package/dist/domain/importDetect.d.ts.map +1 -0
  46. package/dist/domain/importDetect.js +32 -0
  47. package/dist/domain/importDetect.js.map +1 -0
  48. package/dist/domain/requestShape.d.ts +796 -0
  49. package/dist/domain/requestShape.d.ts.map +1 -0
  50. package/dist/domain/requestShape.js +250 -0
  51. package/dist/domain/requestShape.js.map +1 -0
  52. package/dist/domain/resolve.d.ts +30 -0
  53. package/dist/domain/resolve.d.ts.map +1 -0
  54. package/dist/domain/resolve.js +56 -0
  55. package/dist/domain/resolve.js.map +1 -0
  56. package/dist/domain/scenario/build.d.ts +270 -0
  57. package/dist/domain/scenario/build.d.ts.map +1 -0
  58. package/dist/domain/scenario/build.js +135 -0
  59. package/dist/domain/scenario/build.js.map +1 -0
  60. package/dist/domain/scenario/summarize.d.ts +206 -0
  61. package/dist/domain/scenario/summarize.d.ts.map +1 -0
  62. package/dist/domain/scenario/summarize.js +138 -0
  63. package/dist/domain/scenario/summarize.js.map +1 -0
  64. package/dist/index.d.ts +3 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +142 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/lib/cache.d.ts +12 -0
  69. package/dist/lib/cache.d.ts.map +1 -0
  70. package/dist/lib/cache.js +40 -0
  71. package/dist/lib/cache.js.map +1 -0
  72. package/dist/lib/ids.d.ts +5 -0
  73. package/dist/lib/ids.d.ts.map +1 -0
  74. package/dist/lib/ids.js +19 -0
  75. package/dist/lib/ids.js.map +1 -0
  76. package/dist/lib/log.d.ts +10 -0
  77. package/dist/lib/log.d.ts.map +1 -0
  78. package/dist/lib/log.js +25 -0
  79. package/dist/lib/log.js.map +1 -0
  80. package/dist/lib/mask.d.ts +24 -0
  81. package/dist/lib/mask.d.ts.map +1 -0
  82. package/dist/lib/mask.js +63 -0
  83. package/dist/lib/mask.js.map +1 -0
  84. package/dist/lib/pagination.d.ts +21 -0
  85. package/dist/lib/pagination.d.ts.map +1 -0
  86. package/dist/lib/pagination.js +40 -0
  87. package/dist/lib/pagination.js.map +1 -0
  88. package/dist/lib/truncate.d.ts +25 -0
  89. package/dist/lib/truncate.d.ts.map +1 -0
  90. package/dist/lib/truncate.js +45 -0
  91. package/dist/lib/truncate.js.map +1 -0
  92. package/dist/main.d.ts +9 -0
  93. package/dist/main.d.ts.map +1 -0
  94. package/dist/main.js +12 -0
  95. package/dist/main.js.map +1 -0
  96. package/dist/prompts/index.d.ts +4 -0
  97. package/dist/prompts/index.d.ts.map +1 -0
  98. package/dist/prompts/index.js +72 -0
  99. package/dist/prompts/index.js.map +1 -0
  100. package/dist/resources/docs/diagramSchema.d.ts +2 -0
  101. package/dist/resources/docs/diagramSchema.d.ts.map +1 -0
  102. package/dist/resources/docs/diagramSchema.js +65 -0
  103. package/dist/resources/docs/diagramSchema.js.map +1 -0
  104. package/dist/resources/docs/overview.d.ts +2 -0
  105. package/dist/resources/docs/overview.d.ts.map +1 -0
  106. package/dist/resources/docs/overview.js +46 -0
  107. package/dist/resources/docs/overview.js.map +1 -0
  108. package/dist/resources/docs/requestSchema.d.ts +2 -0
  109. package/dist/resources/docs/requestSchema.d.ts.map +1 -0
  110. package/dist/resources/docs/requestSchema.js +70 -0
  111. package/dist/resources/docs/requestSchema.js.map +1 -0
  112. package/dist/resources/generated/aiPacks.d.ts +3 -0
  113. package/dist/resources/generated/aiPacks.d.ts.map +1 -0
  114. package/dist/resources/generated/aiPacks.js +11 -0
  115. package/dist/resources/generated/aiPacks.js.map +1 -0
  116. package/dist/resources/index.d.ts +4 -0
  117. package/dist/resources/index.d.ts.map +1 -0
  118. package/dist/resources/index.js +114 -0
  119. package/dist/resources/index.js.map +1 -0
  120. package/dist/run/executeCollection.d.ts +19 -0
  121. package/dist/run/executeCollection.d.ts.map +1 -0
  122. package/dist/run/executeCollection.js +89 -0
  123. package/dist/run/executeCollection.js.map +1 -0
  124. package/dist/run/loadBundle.d.ts +9 -0
  125. package/dist/run/loadBundle.d.ts.map +1 -0
  126. package/dist/run/loadBundle.js +242 -0
  127. package/dist/run/loadBundle.js.map +1 -0
  128. package/dist/run/resolveTemplate.d.ts +2 -0
  129. package/dist/run/resolveTemplate.d.ts.map +1 -0
  130. package/dist/run/resolveTemplate.js +12 -0
  131. package/dist/run/resolveTemplate.js.map +1 -0
  132. package/dist/run/summarize.d.ts +73 -0
  133. package/dist/run/summarize.d.ts.map +1 -0
  134. package/dist/run/summarize.js +69 -0
  135. package/dist/run/summarize.js.map +1 -0
  136. package/dist/run/types.d.ts +46 -0
  137. package/dist/run/types.d.ts.map +1 -0
  138. package/dist/run/types.js +2 -0
  139. package/dist/run/types.js.map +1 -0
  140. package/dist/server.d.ts +23 -0
  141. package/dist/server.d.ts.map +1 -0
  142. package/dist/server.js +25 -0
  143. package/dist/server.js.map +1 -0
  144. package/dist/tools/catalog.d.ts +18 -0
  145. package/dist/tools/catalog.d.ts.map +1 -0
  146. package/dist/tools/catalog.js +66 -0
  147. package/dist/tools/catalog.js.map +1 -0
  148. package/dist/tools/collections.d.ts +4 -0
  149. package/dist/tools/collections.d.ts.map +1 -0
  150. package/dist/tools/collections.js +201 -0
  151. package/dist/tools/collections.js.map +1 -0
  152. package/dist/tools/diagrams.d.ts +4 -0
  153. package/dist/tools/diagrams.d.ts.map +1 -0
  154. package/dist/tools/diagrams.js +226 -0
  155. package/dist/tools/diagrams.js.map +1 -0
  156. package/dist/tools/environments.d.ts +4 -0
  157. package/dist/tools/environments.d.ts.map +1 -0
  158. package/dist/tools/environments.js +150 -0
  159. package/dist/tools/environments.js.map +1 -0
  160. package/dist/tools/import.d.ts +6 -0
  161. package/dist/tools/import.d.ts.map +1 -0
  162. package/dist/tools/import.js +144 -0
  163. package/dist/tools/import.js.map +1 -0
  164. package/dist/tools/index.d.ts +5 -0
  165. package/dist/tools/index.d.ts.map +1 -0
  166. package/dist/tools/index.js +26 -0
  167. package/dist/tools/index.js.map +1 -0
  168. package/dist/tools/lookups.d.ts +33 -0
  169. package/dist/tools/lookups.d.ts.map +1 -0
  170. package/dist/tools/lookups.js +132 -0
  171. package/dist/tools/lookups.js.map +1 -0
  172. package/dist/tools/meta.d.ts +4 -0
  173. package/dist/tools/meta.d.ts.map +1 -0
  174. package/dist/tools/meta.js +78 -0
  175. package/dist/tools/meta.js.map +1 -0
  176. package/dist/tools/requests.d.ts +4 -0
  177. package/dist/tools/requests.d.ts.map +1 -0
  178. package/dist/tools/requests.js +247 -0
  179. package/dist/tools/requests.js.map +1 -0
  180. package/dist/tools/run.d.ts +4 -0
  181. package/dist/tools/run.d.ts.map +1 -0
  182. package/dist/tools/run.js +167 -0
  183. package/dist/tools/run.js.map +1 -0
  184. package/dist/tools/scenarios.d.ts +4 -0
  185. package/dist/tools/scenarios.d.ts.map +1 -0
  186. package/dist/tools/scenarios.js +242 -0
  187. package/dist/tools/scenarios.js.map +1 -0
  188. package/dist/tools/shared.d.ts +20 -0
  189. package/dist/tools/shared.d.ts.map +1 -0
  190. package/dist/tools/shared.js +74 -0
  191. package/dist/tools/shared.js.map +1 -0
  192. package/dist/tools/workspaces.d.ts +4 -0
  193. package/dist/tools/workspaces.d.ts.map +1 -0
  194. package/dist/tools/workspaces.js +80 -0
  195. package/dist/tools/workspaces.js.map +1 -0
  196. package/dist-cjs/client/api.js +183 -0
  197. package/dist-cjs/client/errors.js +104 -0
  198. package/dist-cjs/client/http.js +124 -0
  199. package/dist-cjs/client/types.js +5 -0
  200. package/dist-cjs/config.js +73 -0
  201. package/dist-cjs/context.js +94 -0
  202. package/dist-cjs/domain/diagram/build.js +164 -0
  203. package/dist-cjs/domain/diagram/layout.js +98 -0
  204. package/dist-cjs/domain/diagram/patch.js +179 -0
  205. package/dist-cjs/domain/diagram/summarize.js +52 -0
  206. package/dist-cjs/domain/importDetect.js +40 -0
  207. package/dist-cjs/domain/requestShape.js +260 -0
  208. package/dist-cjs/domain/resolve.js +63 -0
  209. package/dist-cjs/domain/scenario/build.js +140 -0
  210. package/dist-cjs/domain/scenario/summarize.js +144 -0
  211. package/dist-cjs/lib/cache.js +43 -0
  212. package/dist-cjs/lib/ids.js +24 -0
  213. package/dist-cjs/lib/log.js +28 -0
  214. package/dist-cjs/lib/mask.js +72 -0
  215. package/dist-cjs/lib/pagination.js +48 -0
  216. package/dist-cjs/lib/truncate.js +52 -0
  217. package/dist-cjs/main.js +31 -0
  218. package/dist-cjs/package.json +3 -0
  219. package/dist-cjs/prompts/index.js +75 -0
  220. package/dist-cjs/resources/docs/diagramSchema.js +67 -0
  221. package/dist-cjs/resources/docs/overview.js +48 -0
  222. package/dist-cjs/resources/docs/requestSchema.js +72 -0
  223. package/dist-cjs/resources/generated/aiPacks.js +13 -0
  224. package/dist-cjs/resources/index.js +117 -0
  225. package/dist-cjs/run/executeCollection.js +93 -0
  226. package/dist-cjs/run/loadBundle.js +246 -0
  227. package/dist-cjs/run/resolveTemplate.js +15 -0
  228. package/dist-cjs/run/summarize.js +73 -0
  229. package/dist-cjs/run/types.js +2 -0
  230. package/dist-cjs/server.js +28 -0
  231. package/dist-cjs/tools/catalog.js +69 -0
  232. package/dist-cjs/tools/collections.js +204 -0
  233. package/dist-cjs/tools/diagrams.js +229 -0
  234. package/dist-cjs/tools/environments.js +153 -0
  235. package/dist-cjs/tools/import.js +147 -0
  236. package/dist-cjs/tools/index.js +31 -0
  237. package/dist-cjs/tools/lookups.js +149 -0
  238. package/dist-cjs/tools/meta.js +81 -0
  239. package/dist-cjs/tools/requests.js +250 -0
  240. package/dist-cjs/tools/run.js +203 -0
  241. package/dist-cjs/tools/scenarios.js +245 -0
  242. package/dist-cjs/tools/shared.js +81 -0
  243. package/dist-cjs/tools/workspaces.js +83 -0
  244. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeCollection.js","sourceRoot":"","sources":["../../src/run/executeCollection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ConnectionRuntimeMap } from "callman-core";
2
+ import type { PipelineBundle } from "../client/types.js";
3
+ import type { RunnableCollection } from "./types.js";
4
+ export declare const validateCollection: (input: unknown) => RunnableCollection;
5
+ export declare const buildConnectionRuntimeMap: (connections: PipelineBundle["connections"]) => {
6
+ map: ConnectionRuntimeMap;
7
+ skipped: string[];
8
+ };
9
+ //# sourceMappingURL=loadBundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBundle.d.ts","sourceRoot":"","sources":["../../src/run/loadBundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,oBAAoB,EAIrB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,YAAY,CAAC;AAoItE,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,kBAyDnD,CAAC;AAkBF,eAAO,MAAM,yBAAyB,GACpC,aAAa,cAAc,CAAC,aAAa,CAAC,KACzC;IAAE,GAAG,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAgDhD,CAAC"}
@@ -0,0 +1,242 @@
1
+ import { ToolInputError } from "../client/errors.js";
2
+ // The pipeline bundle (`GET /api/pipeline/bundle`) → a runnable collection.
3
+ // A verbatim port of callme-cli's loaders.validateCollection and
4
+ // remote.buildConnectionRuntimeMap: bearer/basic/apiKey auth baked into
5
+ // headers/query, OAuth 2.0 carried through for core to resolve at run time,
6
+ // DB/Redis connection configs mapped to core's runtime map (Kafka skipped —
7
+ // the local runner does not consume).
8
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
9
+ // A function DECLARATION with an explicit `never` return type — TypeScript only
10
+ // narrows control flow after a call to one of those (not a const arrow).
11
+ function fail(message) {
12
+ throw new ToolInputError("BUNDLE_INVALID", message);
13
+ }
14
+ const normalizeKeyValues = (input, label) => {
15
+ if (input === undefined)
16
+ return {};
17
+ if (Array.isArray(input)) {
18
+ const record = {};
19
+ for (const [index, entry] of input.entries()) {
20
+ if (!isRecord(entry))
21
+ fail(`${label}[${index}] must be an object`);
22
+ if (entry.enabled === false)
23
+ continue;
24
+ const key = typeof entry.key === "string" ? entry.key.trim() : "";
25
+ if (!key)
26
+ continue;
27
+ record[key] = entry.value === undefined || entry.value === null ? "" : String(entry.value);
28
+ }
29
+ return record;
30
+ }
31
+ if (!isRecord(input))
32
+ fail(`${label} must be an object or key/value array`);
33
+ return Object.fromEntries(Object.entries(input)
34
+ .map(([key, value]) => [key.trim(), value === null ? "" : String(value)])
35
+ .filter(([key]) => key));
36
+ };
37
+ const hasHeader = (headers, key) => Object.keys(headers).some((headerKey) => headerKey.toLowerCase() === key.toLowerCase());
38
+ const setHeader = (headers, key, value) => {
39
+ const existing = Object.keys(headers).find((headerKey) => headerKey.toLowerCase() === key.toLowerCase());
40
+ return { ...headers, [existing ?? key]: value };
41
+ };
42
+ const applyAuthHeaders = (headers, auth) => {
43
+ if (!isRecord(auth) || typeof auth.type !== "string" || auth.type === "none")
44
+ return headers;
45
+ if (auth.type === "bearer" && typeof auth.bearerToken === "string" && auth.bearerToken.trim()) {
46
+ return setHeader(headers, "Authorization", `Bearer ${auth.bearerToken}`);
47
+ }
48
+ if (auth.type === "basic" && typeof auth.basicUsername === "string" && typeof auth.basicPassword === "string") {
49
+ return setHeader(headers, "Authorization", `Basic ${Buffer.from(`${auth.basicUsername}:${auth.basicPassword}`).toString("base64")}`);
50
+ }
51
+ if ((auth.type === "apikey" || auth.type === "apiKey") &&
52
+ auth.apiKeyLocation !== "query" &&
53
+ typeof auth.apiKeyKey === "string" &&
54
+ typeof auth.apiKeyValue === "string" &&
55
+ auth.apiKeyKey.trim()) {
56
+ return setHeader(headers, auth.apiKeyKey, auth.apiKeyValue);
57
+ }
58
+ return headers;
59
+ };
60
+ const applyAuthQuery = (query, auth) => {
61
+ if (!isRecord(auth) ||
62
+ (auth.type !== "apikey" && auth.type !== "apiKey") ||
63
+ auth.apiKeyLocation !== "query" ||
64
+ typeof auth.apiKeyKey !== "string" ||
65
+ typeof auth.apiKeyValue !== "string" ||
66
+ !auth.apiKeyKey.trim()) {
67
+ return query;
68
+ }
69
+ return { ...query, [auth.apiKeyKey]: auth.apiKeyValue };
70
+ };
71
+ const applyDefaultHeaders = (headers, body) => {
72
+ let next = { ...headers };
73
+ if (!hasHeader(next, "Accept"))
74
+ next = setHeader(next, "Accept", "*/*");
75
+ if (body !== undefined && body !== null && !hasHeader(next, "Content-Type"))
76
+ next = setHeader(next, "Content-Type", "application/json");
77
+ return next;
78
+ };
79
+ const scriptOf = (request) => {
80
+ const scripts = [request.postResponseScript, request.testsScript, request.tests]
81
+ .filter((script) => typeof script === "string" && script.trim().length > 0);
82
+ return scripts.length > 0 ? scripts.join("\n\n") : undefined;
83
+ };
84
+ const dbNode = (value) => isRecord(value)
85
+ ? {
86
+ enabled: value.enabled === true,
87
+ connectionId: typeof value.connectionId === "string" ? value.connectionId : null,
88
+ query: typeof value.query === "string" ? value.query : "",
89
+ }
90
+ : undefined;
91
+ const databaseOf = (request) => {
92
+ if (!isRecord(request.database))
93
+ return undefined;
94
+ const preRequest = dbNode(request.database.preRequest);
95
+ const postResponse = dbNode(request.database.postResponse);
96
+ return preRequest || postResponse ? { preRequest, postResponse } : undefined;
97
+ };
98
+ const commandStrings = (value) => Array.isArray(value)
99
+ ? value
100
+ .map((entry) => (typeof entry === "string" ? entry : isRecord(entry) && typeof entry.command === "string" ? entry.command : ""))
101
+ .filter((command) => command.trim().length > 0)
102
+ : [];
103
+ const redisOf = (request) => {
104
+ if (!isRecord(request.redis))
105
+ return undefined;
106
+ const preCommands = commandStrings(request.redis.preCommands);
107
+ const postCommands = commandStrings(request.redis.postCommands);
108
+ const connectionId = typeof request.redis.connectionId === "string" ? request.redis.connectionId : null;
109
+ if (!connectionId && preCommands.length === 0 && postCommands.length === 0)
110
+ return undefined;
111
+ return { enabled: request.redis.enabled === true, connectionId, preCommands, postCommands };
112
+ };
113
+ const dataContractOf = (request) => {
114
+ const raw = request.dataContract;
115
+ if (!isRecord(raw) || !Array.isArray(raw.rows) || raw.rows.length === 0)
116
+ return undefined;
117
+ return { columns: Array.isArray(raw.columns) ? raw.columns : [], rows: raw.rows };
118
+ };
119
+ export const validateCollection = (input) => {
120
+ if (!isRecord(input))
121
+ fail("bundle.collection must be an object");
122
+ const record = input;
123
+ const name = typeof record.name === "string" && record.name.trim()
124
+ ? record.name.trim()
125
+ : isRecord(record.collection) && typeof record.collection.name === "string"
126
+ ? record.collection.name.trim()
127
+ : fail("collection.name must be a non-empty string");
128
+ if (!Array.isArray(record.requests))
129
+ fail("collection.requests must be an array");
130
+ const requests = record.requests.map((raw, index) => {
131
+ const label = `requests[${index}]`;
132
+ if (!isRecord(raw))
133
+ fail(`${label} must be an object`);
134
+ const request = raw;
135
+ for (const field of ["id", "name", "method", "url"]) {
136
+ if (typeof request[field] !== "string" || !request[field].trim())
137
+ fail(`${label}.${field} must be a non-empty string`);
138
+ }
139
+ const headers = applyAuthHeaders(normalizeKeyValues(request.headers, `${label}.headers`), request.auth);
140
+ const query = applyAuthQuery(normalizeKeyValues(request.query, `${label}.query`), request.auth);
141
+ const preRequestScript = typeof request.preRequestScript === "string" && request.preRequestScript.trim() ? request.preRequestScript : undefined;
142
+ const contracts = Array.isArray(request.contracts) ? request.contracts : Array.isArray(request.contractRules) ? request.contractRules : undefined;
143
+ const database = databaseOf(request);
144
+ const redis = redisOf(request);
145
+ const dataContract = dataContractOf(request);
146
+ return {
147
+ id: request.id.trim(),
148
+ name: request.name.trim(),
149
+ method: request.method.trim().toUpperCase(),
150
+ url: request.url.trim(),
151
+ folderId: typeof request.folderId === "string" ? request.folderId : null,
152
+ isEnabledInRunner: request.isEnabledInRunner !== false,
153
+ headers: applyDefaultHeaders(headers, request.body),
154
+ query,
155
+ ...(isRecord(request.auth) && request.auth.type === "oauth2" ? { auth: request.auth } : {}),
156
+ body: request.body,
157
+ tests: scriptOf(request),
158
+ ...(preRequestScript ? { preRequestScript } : {}),
159
+ contracts,
160
+ ...(database ? { database } : {}),
161
+ ...(redis ? { redis } : {}),
162
+ ...(dataContract ? { dataContract } : {}),
163
+ };
164
+ });
165
+ const settingsSource = isRecord(record.runnerSettings)
166
+ ? record.runnerSettings
167
+ : isRecord(record.collection) && isRecord(record.collection.runnerSettings)
168
+ ? record.collection.runnerSettings
169
+ : undefined;
170
+ return {
171
+ name,
172
+ requests,
173
+ ...(settingsSource
174
+ ? { runnerSettings: { database: settingsSource.database !== false, kafka: settingsSource.kafka === true, redis: settingsSource.redis !== false } }
175
+ : {}),
176
+ };
177
+ };
178
+ // ── connections ────────────────────────────────────────────────────────
179
+ const PROVIDER_TO_DB_TYPE = {
180
+ mongodb: "mongo",
181
+ postgresql: "postgres",
182
+ mysql: "mysql",
183
+ oracle: "oracle",
184
+ mssql: "mssql",
185
+ };
186
+ const toNumber = (value) => {
187
+ const parsed = typeof value === "number" ? value : Number(value);
188
+ return Number.isFinite(parsed) ? parsed : undefined;
189
+ };
190
+ const toText = (value) => (typeof value === "string" && value.trim() ? value : undefined);
191
+ export const buildConnectionRuntimeMap = (connections) => {
192
+ const map = {};
193
+ const skipped = [];
194
+ for (const connection of connections ?? []) {
195
+ const config = connection.config ?? {};
196
+ let runtime = null;
197
+ if (connection.type === "database") {
198
+ const dbType = PROVIDER_TO_DB_TYPE[connection.provider];
199
+ if (!dbType) {
200
+ skipped.push(`${connection.name} (${connection.provider})`);
201
+ continue;
202
+ }
203
+ runtime = {
204
+ kind: "db",
205
+ id: connection.id,
206
+ name: connection.name,
207
+ type: dbType,
208
+ connectionMode: config.connectionMode === "connectionString" ? "connectionString" : "detailed",
209
+ connectionString: toText(config.connectionString),
210
+ host: toText(config.host),
211
+ port: toNumber(config.port),
212
+ database: toText(config.database),
213
+ serviceName: toText(config.serviceName),
214
+ instanceName: toText(config.instanceName),
215
+ username: toText(config.username),
216
+ password: typeof config.password === "string" ? config.password : undefined,
217
+ ssl: config.ssl === true,
218
+ trustServerCertificate: config.trustServerCertificate === true,
219
+ };
220
+ }
221
+ else if (connection.type === "redis") {
222
+ runtime = {
223
+ kind: "redis",
224
+ id: connection.id,
225
+ name: connection.name,
226
+ host: toText(config.host) ?? "",
227
+ port: toNumber(config.port) ?? 6379,
228
+ username: toText(config.username),
229
+ password: typeof config.password === "string" ? config.password : undefined,
230
+ dbIndex: toNumber(config.dbIndex),
231
+ ssl: config.ssl === true,
232
+ };
233
+ }
234
+ else {
235
+ skipped.push(`${connection.name} (${connection.type})`);
236
+ continue;
237
+ }
238
+ map[connection.id] = runtime;
239
+ }
240
+ return { map, skipped };
241
+ };
242
+ //# sourceMappingURL=loadBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBundle.js","sourceRoot":"","sources":["../../src/run/loadBundle.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,4EAA4E;AAC5E,iEAAiE;AACjE,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,sCAAsC;AAEtC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,gFAAgF;AAChF,yEAAyE;AACzE,SAAS,IAAI,CAAC,OAAe;IAC3B,MAAM,IAAI,cAAc,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAE,KAAa,EAA0B,EAAE;IACnF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,qBAAqB,CAAC,CAAC;YACnE,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;gBAAE,SAAS;YACtC,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,KAAK,uCAAuC,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAClB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACxE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAA+B,EAAE,GAAW,EAAW,EAAE,CAC1E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAE1F,MAAM,SAAS,GAAG,CAAC,OAA+B,EAAE,GAAW,EAAE,KAAa,EAA0B,EAAE;IACxG,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACzG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAA+B,EAAE,IAAa,EAA0B,EAAE;IAClG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC;IAC7F,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9F,OAAO,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC9G,OAAO,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvI,CAAC;IACD,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAClD,IAAI,CAAC,cAAc,KAAK,OAAO;QAC/B,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAClC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EACrB,CAAC;QACD,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAA6B,EAAE,IAAa,EAA0B,EAAE;IAC9F,IACE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACf,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAClD,IAAI,CAAC,cAAc,KAAK,OAAO;QAC/B,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAClC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QACpC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAA+B,EAAE,IAAa,EAA0B,EAAE;IACrG,IAAI,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC;QAAE,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IACxI,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,OAAgC,EAAsB,EAAE;IACxE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC;SAC7E,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChG,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE,CAChC,QAAQ,CAAC,KAAK,CAAC;IACb,CAAC,CAAC;QACE,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;QAC/B,YAAY,EAAE,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;QAChF,KAAK,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;KAC1D;IACH,CAAC,CAAC,SAAS,CAAC;AAEhB,MAAM,UAAU,GAAG,CAAC,OAAgC,EAA+B,EAAE;IACnF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3D,OAAO,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAc,EAAY,EAAE,CAClD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;SACF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC/H,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC,EAAE,CAAC;AAET,MAAM,OAAO,GAAG,CAAC,OAAgC,EAA4B,EAAE;IAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACxG,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7F,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAgC,EAAmC,EAAE;IAC3F,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,OAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAyB,EAAE,CAAC;AACvH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAsB,EAAE;IACvE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,IAAI,GACR,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACnD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACpB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ;YACzE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;YAC/B,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAI,MAAM,CAAC,QAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAmB,EAAE;QAClF,MAAM,KAAK,GAAG,YAAY,KAAK,GAAG,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,GAA8B,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,EAAE,CAAC;YAC7D,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAE,OAAO,CAAC,KAAK,CAAY,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,6BAA6B,CAAC,CAAC;QACrI,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxG,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChG,MAAM,gBAAgB,GAAG,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;QAChJ,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAClJ,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO;YACL,EAAE,EAAG,OAAO,CAAC,EAAa,CAAC,IAAI,EAAE;YACjC,IAAI,EAAG,OAAO,CAAC,IAAe,CAAC,IAAI,EAAE;YACrC,MAAM,EAAG,OAAO,CAAC,MAAiB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YACvD,GAAG,EAAG,OAAO,CAAC,GAAc,CAAC,IAAI,EAAE;YACnC,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YACxE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,KAAK,KAAK;YACtD,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;YACnD,KAAK;YACL,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAoC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3H,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;YACxB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,SAAS;YACT,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;QACpD,CAAC,CAAC,MAAM,CAAC,cAAc;QACvB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;YACzE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc;YAClC,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,GAAG,CAAC,cAAc;YAChB,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,KAAK,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,KAAK,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,KAAK,KAAK,EAAE,EAAE;YAClJ,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC,CAAC;AAEF,0EAA0E;AAE1E,MAAM,mBAAmB,GAAgD;IACvE,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAsB,EAAE;IACtD,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEvH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,WAA0C,EACQ,EAAE;IACpD,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,UAAU,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,IAAI,OAAO,GAA6B,IAAI,CAAC;QAC7C,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC5D,SAAS;YACX,CAAC;YACD,OAAO,GAAG;gBACR,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU;gBAC9F,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACjD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACzB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACjC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBACvC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;gBACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACjC,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC3E,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,IAAI;gBACxB,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,KAAK,IAAI;aACjC,CAAC;QAClC,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvC,OAAO,GAAG;gBACR,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC/B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;gBACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACjC,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC3E,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;gBACjC,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,IAAI;aACQ,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const resolveTemplate: (value: string, env: Record<string, unknown>) => string;
2
+ //# sourceMappingURL=resolveTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveTemplate.d.ts","sourceRoot":"","sources":["../../src/run/resolveTemplate.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAM1E,CAAC"}
@@ -0,0 +1,12 @@
1
+ // Minimal {{key}} substitution for `run_request dryRun` previews. The real run
2
+ // uses callman-core's full templating (dynamic $variables, nested paths,
3
+ // data.* rows); this only needs to show which plain keys resolve.
4
+ const TEMPLATE = /\{\{\s*([^}]+?)\s*\}\}/g;
5
+ export const resolveTemplate = (value, env) => value.replace(TEMPLATE, (whole, rawKey) => {
6
+ const key = rawKey.trim();
7
+ if (!(key in env))
8
+ return whole;
9
+ const resolved = env[key];
10
+ return resolved === null || resolved === undefined ? "" : typeof resolved === "string" ? resolved : JSON.stringify(resolved);
11
+ });
12
+ //# sourceMappingURL=resolveTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveTemplate.js","sourceRoot":"","sources":["../../src/run/resolveTemplate.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yEAAyE;AACzE,kEAAkE;AAElE,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,GAA4B,EAAU,EAAE,CACrF,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC/H,CAAC,CAAC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import type { ExecutionResult } from "callman-core";
2
+ import type { RunOutcome } from "./types.js";
3
+ export declare const summarizeResult: (result: ExecutionResult, maxBodyBytes: number) => {
4
+ requestId: string;
5
+ name: string;
6
+ passed: boolean;
7
+ status: number;
8
+ durationMs: number;
9
+ request: {
10
+ body?: string | undefined;
11
+ method: string;
12
+ url: string;
13
+ headers: Record<string, string>;
14
+ } | null;
15
+ response: {
16
+ bodyTruncated?: boolean | undefined;
17
+ bodyBytes?: number | undefined;
18
+ headers: Record<string, string>;
19
+ body: string | null;
20
+ };
21
+ tests: {
22
+ message?: string | undefined;
23
+ name: string;
24
+ status: "PASS" | "FAIL";
25
+ }[];
26
+ contracts: {
27
+ message?: string | undefined;
28
+ name: string;
29
+ status: "PASS" | "FAIL";
30
+ }[];
31
+ };
32
+ export declare const summarizeRun: (outcome: RunOutcome, maxBodyBytes: number, extra?: Record<string, unknown>) => {
33
+ summary: {
34
+ bailed: boolean;
35
+ total: number;
36
+ passed: number;
37
+ failed: number;
38
+ };
39
+ results: {
40
+ requestId: string;
41
+ name: string;
42
+ passed: boolean;
43
+ status: number;
44
+ durationMs: number;
45
+ request: {
46
+ body?: string | undefined;
47
+ method: string;
48
+ url: string;
49
+ headers: Record<string, string>;
50
+ } | null;
51
+ response: {
52
+ bodyTruncated?: boolean | undefined;
53
+ bodyBytes?: number | undefined;
54
+ headers: Record<string, string>;
55
+ body: string | null;
56
+ };
57
+ tests: {
58
+ message?: string | undefined;
59
+ name: string;
60
+ status: "PASS" | "FAIL";
61
+ }[];
62
+ contracts: {
63
+ message?: string | undefined;
64
+ name: string;
65
+ status: "PASS" | "FAIL";
66
+ }[];
67
+ }[];
68
+ env: {
69
+ set: string[];
70
+ unset: string[];
71
+ };
72
+ };
73
+ //# sourceMappingURL=summarize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/run/summarize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkC7C,eAAO,MAAM,eAAe,GAAI,QAAQ,eAAe,EAAE,cAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B5E,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,SAAS,UAAU,EAAE,cAAc,MAAM,EAAE,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzG,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { maskHeaderRecord } from "../lib/mask.js";
2
+ import { clip, clipBytes, LIMITS, safeStringify } from "../lib/truncate.js";
3
+ import { requestFailed } from "./executeCollection.js";
4
+ // What a local run reports back to the model: enough to judge and debug
5
+ // (status, timing, tests, a bounded body preview, the request as SENT with
6
+ // sensitive headers masked) and nothing that leaks credentials — variable
7
+ // VALUES never appear, only the keys scripts changed.
8
+ const KEEP_RESPONSE_HEADERS = new Set([
9
+ "content-type",
10
+ "content-length",
11
+ "location",
12
+ "cache-control",
13
+ "x-request-id",
14
+ "x-correlation-id",
15
+ "retry-after",
16
+ "www-authenticate",
17
+ ]);
18
+ const responseHeadersOf = (response) => {
19
+ const headers = response?.headers;
20
+ if (!headers || typeof headers !== "object")
21
+ return {};
22
+ const out = {};
23
+ for (const [key, value] of Object.entries(headers)) {
24
+ if (KEEP_RESPONSE_HEADERS.has(key.toLowerCase()))
25
+ out[key] = Array.isArray(value) ? value.join(", ") : String(value);
26
+ }
27
+ return out;
28
+ };
29
+ const bodyOf = (response) => {
30
+ if (!response || typeof response !== "object")
31
+ return null;
32
+ const record = response;
33
+ return record.data !== undefined ? record.data : record.body !== undefined ? record.body : null;
34
+ };
35
+ export const summarizeResult = (result, maxBodyBytes) => {
36
+ const body = bodyOf(result.response);
37
+ const bodyText = body === null || body === undefined ? "" : typeof body === "string" ? body : safeStringify(body);
38
+ const clipped = clipBytes(bodyText, maxBodyBytes);
39
+ const sent = result.request;
40
+ return {
41
+ requestId: result.requestId,
42
+ name: result.requestName ?? result.requestId,
43
+ passed: !requestFailed(result),
44
+ status: result.status,
45
+ durationMs: result.duration,
46
+ request: sent
47
+ ? {
48
+ method: sent.method,
49
+ url: clip(sent.url, 2048),
50
+ headers: maskHeaderRecord(sent.headers),
51
+ ...(sent.body !== undefined && sent.body !== null ? { body: clip(typeof sent.body === "string" ? sent.body : safeStringify(sent.body), LIMITS.BODY_PREVIEW) } : {}),
52
+ }
53
+ : null,
54
+ response: {
55
+ headers: responseHeadersOf(result.response),
56
+ body: clipped.text || null,
57
+ ...(clipped.truncated ? { bodyTruncated: true, bodyBytes: clipped.totalBytes } : {}),
58
+ },
59
+ tests: result.scriptResults.map((test) => ({ name: test.name, status: test.status, ...(test.message ? { message: clip(test.message, 300) } : {}) })),
60
+ contracts: result.contractResults.map((test) => ({ name: test.name, status: test.status, ...(test.message ? { message: clip(test.message, 300) } : {}) })),
61
+ };
62
+ };
63
+ export const summarizeRun = (outcome, maxBodyBytes, extra = {}) => ({
64
+ ...extra,
65
+ summary: { ...outcome.summary, bailed: outcome.bailed },
66
+ results: outcome.results.map((result) => summarizeResult(result, maxBodyBytes)),
67
+ env: outcome.envChanges,
68
+ });
69
+ //# sourceMappingURL=summarize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/run/summarize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { DataContractRow, ExecutionResult, RequestAuthConfig, RequestDatabaseRuntimeConfig, RequestRedisRuntimeConfig } from "callman-core";
2
+ export interface RunnableRequest {
3
+ id: string;
4
+ name: string;
5
+ method: string;
6
+ url: string;
7
+ folderId?: string | null;
8
+ isEnabledInRunner?: boolean;
9
+ headers?: Record<string, string>;
10
+ query?: Record<string, string>;
11
+ auth?: RequestAuthConfig;
12
+ body?: unknown;
13
+ tests?: string;
14
+ preRequestScript?: string;
15
+ contracts?: unknown[];
16
+ database?: RequestDatabaseRuntimeConfig;
17
+ redis?: RequestRedisRuntimeConfig;
18
+ dataContract?: {
19
+ columns: string[];
20
+ rows: DataContractRow[];
21
+ };
22
+ }
23
+ export interface RunnableCollection {
24
+ name: string;
25
+ runnerSettings?: {
26
+ database?: boolean;
27
+ kafka?: boolean;
28
+ redis?: boolean;
29
+ };
30
+ requests: RunnableRequest[];
31
+ }
32
+ export interface RunOutcome {
33
+ results: ExecutionResult[];
34
+ summary: {
35
+ total: number;
36
+ passed: number;
37
+ failed: number;
38
+ };
39
+ envChanges: {
40
+ set: string[];
41
+ unset: string[];
42
+ };
43
+ bailed: boolean;
44
+ }
45
+ export type { ExecutionResult };
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/run/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAMtB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,4BAA4B,CAAC;IACxC,KAAK,CAAC,EAAE,yBAAyB,CAAC;IAClC,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1E,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3D,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/run/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { CallmanMcpConfig } from "./config.js";
3
+ import { type ToolContext } from "./context.js";
4
+ import type { Logger } from "./lib/log.js";
5
+ export interface CreateServerOptions {
6
+ config: CallmanMcpConfig;
7
+ version?: string;
8
+ fetch?: typeof fetch;
9
+ logger?: Logger;
10
+ cacheTtlMs?: number;
11
+ pollDelaysMs?: {
12
+ fast: number;
13
+ slow: number;
14
+ };
15
+ }
16
+ export interface CallmanMcpInstance {
17
+ server: McpServer;
18
+ context: ToolContext;
19
+ }
20
+ export declare const SERVER_NAME = "callman";
21
+ export declare const SERVER_INSTRUCTIONS = "Callman is an API client and test platform: collections of HTTP requests, environments with variables, multi-step test scenarios, and system-design diagrams. You act as the user whose token is configured, within that token's permissions and the user's workspace role.\nStart with whoami. Names work as references (collection, folder, request, environment, scenario, diagram, workspace); ambiguous names return candidates. List before creating \u2014 duplicate collection names are refused. Preview large writes with dryRun: true; deletions need confirm: true and the user's agreement. Environment values are masked unless the token holds environments:reveal and you pass reveal: true; never write a masked value back. Read callman://docs/overview for the conventions, callman://docs/request-schema before creating requests, callman://docs/scenario-nodes before scenarios, and callman://diagram/components before diagrams.";
22
+ export declare const createCallmanMcpServer: (options: CreateServerOptions) => CallmanMcpInstance;
23
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,mBAAmB,85BACwmB,CAAC;AAEzoB,eAAO,MAAM,sBAAsB,GAAI,SAAS,mBAAmB,KAAG,kBAkBrE,CAAC"}
package/dist/server.js ADDED
@@ -0,0 +1,25 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { createToolContext } from "./context.js";
3
+ import { registerPrompts } from "./prompts/index.js";
4
+ import { registerResources } from "./resources/index.js";
5
+ import { registerAllTools } from "./tools/index.js";
6
+ export const SERVER_NAME = "callman";
7
+ export const SERVER_INSTRUCTIONS = `Callman is an API client and test platform: collections of HTTP requests, environments with variables, multi-step test scenarios, and system-design diagrams. You act as the user whose token is configured, within that token's permissions and the user's workspace role.
8
+ Start with whoami. Names work as references (collection, folder, request, environment, scenario, diagram, workspace); ambiguous names return candidates. List before creating — duplicate collection names are refused. Preview large writes with dryRun: true; deletions need confirm: true and the user's agreement. Environment values are masked unless the token holds environments:reveal and you pass reveal: true; never write a masked value back. Read callman://docs/overview for the conventions, callman://docs/request-schema before creating requests, callman://docs/scenario-nodes before scenarios, and callman://diagram/components before diagrams.`;
9
+ export const createCallmanMcpServer = (options) => {
10
+ const version = options.version ?? "0.0.0";
11
+ const context = createToolContext({
12
+ config: options.config,
13
+ version,
14
+ fetch: options.fetch,
15
+ logger: options.logger,
16
+ cacheTtlMs: options.cacheTtlMs,
17
+ pollDelaysMs: options.pollDelaysMs,
18
+ });
19
+ const server = new McpServer({ name: SERVER_NAME, version, title: "Callman" }, { capabilities: { tools: {}, resources: {}, prompts: {} }, instructions: SERVER_INSTRUCTIONS });
20
+ registerAllTools(server, context);
21
+ registerResources(server, context);
22
+ registerPrompts(server, context);
23
+ return { server, context };
24
+ };
25
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBpD,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG;woBACqmB,CAAC;AAEzoB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAA4B,EAAsB,EAAE;IACzF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAChD,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAC/F,CAAC;IACF,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type ToolGroup = "meta" | "workspaces" | "collections" | "requests" | "import" | "environments" | "scenarios" | "diagrams" | "run";
2
+ export interface ToolCatalogEntry {
3
+ name: string;
4
+ group: ToolGroup;
5
+ scopes: string[];
6
+ anyOf?: boolean;
7
+ destructive?: boolean;
8
+ localRun?: boolean;
9
+ }
10
+ export declare const TOOL_CATALOG: ToolCatalogEntry[];
11
+ export interface ToolAvailability {
12
+ name: string;
13
+ available: boolean;
14
+ missingScopes: string[];
15
+ reason?: string;
16
+ }
17
+ export declare const toolAvailability: (tokenScopes: string[], allowLocalRun: boolean) => ToolAvailability[];
18
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/tools/catalog.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,CAAC;AAE1I,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IAEjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,gBAAgB,EAwD1C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,EAAE,eAAe,OAAO,KAAG,gBAAgB,EAUhG,CAAC"}