callman-mcp 0.2.0 → 0.4.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.
- package/CHANGELOG.md +56 -0
- package/README.md +4 -4
- package/dist/client/api.d.ts +16 -1
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +22 -0
- package/dist/client/api.js.map +1 -1
- package/dist/client/types.d.ts +14 -0
- package/dist/client/types.d.ts.map +1 -1
- package/dist/domain/diagram/build.d.ts +122 -73
- package/dist/domain/diagram/build.d.ts.map +1 -1
- package/dist/domain/diagram/build.js +51 -167
- package/dist/domain/diagram/build.js.map +1 -1
- package/dist/domain/diagram/layout.d.ts +5 -4
- package/dist/domain/diagram/layout.d.ts.map +1 -1
- package/dist/domain/diagram/layout.js +18 -45
- package/dist/domain/diagram/layout.js.map +1 -1
- package/dist/domain/diagram/patch.d.ts +1011 -92
- package/dist/domain/diagram/patch.d.ts.map +1 -1
- package/dist/domain/diagram/patch.js +113 -273
- package/dist/domain/diagram/patch.js.map +1 -1
- package/dist/domain/diagram/style.d.ts +4 -12
- package/dist/domain/diagram/style.d.ts.map +1 -1
- package/dist/domain/diagram/style.js +8 -84
- package/dist/domain/diagram/style.js.map +1 -1
- package/dist/domain/diagram/summarize.d.ts +26 -24
- package/dist/domain/diagram/summarize.d.ts.map +1 -1
- package/dist/domain/diagram/summarize.js +21 -35
- package/dist/domain/diagram/summarize.js.map +1 -1
- package/dist/domain/requestIntegrations.d.ts +20 -20
- package/dist/domain/requestShape.d.ts +32 -32
- package/dist/resources/docs/diagramSchema.d.ts +1 -1
- package/dist/resources/docs/diagramSchema.d.ts.map +1 -1
- package/dist/resources/docs/diagramSchema.js +87 -10
- package/dist/resources/docs/diagramSchema.js.map +1 -1
- package/dist/resources/docs/overview.d.ts +1 -1
- package/dist/resources/docs/overview.d.ts.map +1 -1
- package/dist/resources/docs/overview.js +4 -1
- package/dist/resources/docs/overview.js.map +1 -1
- package/dist/resources/generated/aiPacks.d.ts +1 -1
- package/dist/resources/generated/aiPacks.js +2 -2
- package/dist/tools/catalog.d.ts.map +1 -1
- package/dist/tools/catalog.js +5 -0
- package/dist/tools/catalog.js.map +1 -1
- package/dist/tools/diagrams.d.ts.map +1 -1
- package/dist/tools/diagrams.js +547 -59
- package/dist/tools/diagrams.js.map +1 -1
- package/dist/tools/lookups.d.ts +5 -1
- package/dist/tools/lookups.d.ts.map +1 -1
- package/dist/tools/lookups.js +41 -0
- package/dist/tools/lookups.js.map +1 -1
- package/dist-cjs/client/api.js +22 -0
- package/dist-cjs/domain/diagram/build.js +55 -171
- package/dist-cjs/domain/diagram/layout.js +19 -45
- package/dist-cjs/domain/diagram/patch.js +111 -271
- package/dist-cjs/domain/diagram/style.js +11 -88
- package/dist-cjs/domain/diagram/summarize.js +23 -35
- package/dist-cjs/resources/docs/diagramSchema.js +87 -10
- package/dist-cjs/resources/docs/overview.js +4 -1
- package/dist-cjs/resources/generated/aiPacks.js +2 -2
- package/dist-cjs/tools/catalog.js +5 -0
- package/dist-cjs/tools/diagrams.js +539 -51
- package/dist-cjs/tools/lookups.js +46 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sameName = exports.connectionResolverFor = exports.loadConnections = exports.resolveDiagram = exports.loadDiagrams = exports.resolveScenarioFolder = exports.resolveScenario = exports.loadScenarioCatalog = exports.resolveEnvironment = exports.loadEnvironments = exports.resolveRequest = exports.searchRequests = exports.requestIdsInFolder = exports.resolveFolder = exports.loadTree = exports.resolveCollection = exports.findEnvironment = exports.findRequest = exports.findCollection = exports.findInWorkspaces = exports.workspaceTag = exports.workspacesForListing = exports.isAllWorkspaces = exports.loadCollections = void 0;
|
|
3
|
+
exports.sameName = exports.connectionResolverFor = exports.loadConnections = exports.resolveDiagram = exports.resolveDiagramFolder = exports.diagramFolderPath = exports.diagramFolderRows = exports.loadDiagramFolders = exports.loadDiagrams = exports.resolveScenarioFolder = exports.resolveScenario = exports.loadScenarioCatalog = exports.resolveEnvironment = exports.loadEnvironments = exports.resolveRequest = exports.searchRequests = exports.requestIdsInFolder = exports.resolveFolder = exports.loadTree = exports.resolveCollection = exports.findEnvironment = exports.findRequest = exports.findCollection = exports.findInWorkspaces = exports.workspaceTag = exports.workspacesForListing = exports.isAllWorkspaces = exports.loadCollections = void 0;
|
|
4
4
|
const errors_js_1 = require("../client/errors.js");
|
|
5
5
|
const requestIntegrations_js_1 = require("../domain/requestIntegrations.js");
|
|
6
6
|
const resolve_js_1 = require("../domain/resolve.js");
|
|
@@ -240,6 +240,51 @@ const resolveScenarioFolder = async (ctx, ws, ref) => (0, resolve_js_1.resolveRe
|
|
|
240
240
|
exports.resolveScenarioFolder = resolveScenarioFolder;
|
|
241
241
|
const loadDiagrams = (ctx) => ctx.cache.getOrSet("diagrams", () => ctx.api.listDiagrams());
|
|
242
242
|
exports.loadDiagrams = loadDiagrams;
|
|
243
|
+
// ── diagram folders (the token owner's private library tree) ──────────
|
|
244
|
+
const loadDiagramFolders = (ctx) => ctx.cache.getOrSet("diagram-folders", () => ctx.api.listDiagramFolders());
|
|
245
|
+
exports.loadDiagramFolders = loadDiagramFolders;
|
|
246
|
+
// The tree as rows with paths ("Architecture/Payments"), depth-first,
|
|
247
|
+
// siblings by name — what a model refers to folders by. An older backend
|
|
248
|
+
// without the route yields no rows (every diagram is then at the top level).
|
|
249
|
+
const diagramFolderRows = async (ctx) => {
|
|
250
|
+
let folders;
|
|
251
|
+
try {
|
|
252
|
+
folders = await (0, exports.loadDiagramFolders)(ctx);
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
if (error instanceof errors_js_1.CallmanApiError && (error.status === 404 || error.status === 403))
|
|
256
|
+
return [];
|
|
257
|
+
throw error;
|
|
258
|
+
}
|
|
259
|
+
const byName = (a, b) => a.name.localeCompare(b.name, undefined, { numeric: true, sensitivity: "base" }) || a.id.localeCompare(b.id);
|
|
260
|
+
const out = [];
|
|
261
|
+
const seen = new Set();
|
|
262
|
+
const walk = (parentId, prefix, depth) => {
|
|
263
|
+
for (const folder of folders.filter((entry) => entry.parentId === parentId).sort(byName)) {
|
|
264
|
+
if (seen.has(folder.id))
|
|
265
|
+
continue; // a corrupt cycle must not recurse forever
|
|
266
|
+
seen.add(folder.id);
|
|
267
|
+
const path = prefix ? `${prefix}/${folder.name}` : folder.name;
|
|
268
|
+
out.push({ id: folder.id, name: folder.name, parentId: folder.parentId, path, depth });
|
|
269
|
+
walk(folder.id, path, depth + 1);
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
walk(null, "", 0);
|
|
273
|
+
return out;
|
|
274
|
+
};
|
|
275
|
+
exports.diagramFolderRows = diagramFolderRows;
|
|
276
|
+
const diagramFolderPath = (rows, folderId) => folderId ? (rows.find((row) => row.id === folderId)?.path ?? null) : null;
|
|
277
|
+
exports.diagramFolderPath = diagramFolderPath;
|
|
278
|
+
// A folder by id, exact path, exact name (unique) or unique substring.
|
|
279
|
+
const resolveDiagramFolder = async (ctx, ref, options = {}) => {
|
|
280
|
+
const rows = await (0, exports.diagramFolderRows)(ctx);
|
|
281
|
+
return (0, resolve_js_1.resolveRef)("diagram folder", ref, rows, {
|
|
282
|
+
describe: (folder) => ({ path: folder.path }),
|
|
283
|
+
aliases: (folder) => [folder.path],
|
|
284
|
+
exact: options.exact,
|
|
285
|
+
});
|
|
286
|
+
};
|
|
287
|
+
exports.resolveDiagramFolder = resolveDiagramFolder;
|
|
243
288
|
const resolveDiagram = async (ctx, ref, options = {}) => {
|
|
244
289
|
if ((0, ids_js_1.isObjectId)(ref))
|
|
245
290
|
return { item: await ctx.api.getDiagram(ref), matched: "id" };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "callman-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MCP server for Callman: lets Claude Code, Claude Desktop, Cursor, Codex and Gemini CLI manage collections, requests, environments, test scenarios and system-design diagrams in your Callman workspace — cloud or on-prem.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"callman",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
65
|
-
"callman-core": "^1.
|
|
65
|
+
"callman-core": "^1.30.0",
|
|
66
66
|
"elkjs": "^0.12.0",
|
|
67
67
|
"js-yaml": "^4.1.0",
|
|
68
68
|
"zod": "^3.25.0"
|