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.
Files changed (63) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +4 -4
  3. package/dist/client/api.d.ts +16 -1
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/api.js +22 -0
  6. package/dist/client/api.js.map +1 -1
  7. package/dist/client/types.d.ts +14 -0
  8. package/dist/client/types.d.ts.map +1 -1
  9. package/dist/domain/diagram/build.d.ts +122 -73
  10. package/dist/domain/diagram/build.d.ts.map +1 -1
  11. package/dist/domain/diagram/build.js +51 -167
  12. package/dist/domain/diagram/build.js.map +1 -1
  13. package/dist/domain/diagram/layout.d.ts +5 -4
  14. package/dist/domain/diagram/layout.d.ts.map +1 -1
  15. package/dist/domain/diagram/layout.js +18 -45
  16. package/dist/domain/diagram/layout.js.map +1 -1
  17. package/dist/domain/diagram/patch.d.ts +1011 -92
  18. package/dist/domain/diagram/patch.d.ts.map +1 -1
  19. package/dist/domain/diagram/patch.js +113 -273
  20. package/dist/domain/diagram/patch.js.map +1 -1
  21. package/dist/domain/diagram/style.d.ts +4 -12
  22. package/dist/domain/diagram/style.d.ts.map +1 -1
  23. package/dist/domain/diagram/style.js +8 -84
  24. package/dist/domain/diagram/style.js.map +1 -1
  25. package/dist/domain/diagram/summarize.d.ts +26 -24
  26. package/dist/domain/diagram/summarize.d.ts.map +1 -1
  27. package/dist/domain/diagram/summarize.js +21 -35
  28. package/dist/domain/diagram/summarize.js.map +1 -1
  29. package/dist/domain/requestIntegrations.d.ts +20 -20
  30. package/dist/domain/requestShape.d.ts +32 -32
  31. package/dist/resources/docs/diagramSchema.d.ts +1 -1
  32. package/dist/resources/docs/diagramSchema.d.ts.map +1 -1
  33. package/dist/resources/docs/diagramSchema.js +87 -10
  34. package/dist/resources/docs/diagramSchema.js.map +1 -1
  35. package/dist/resources/docs/overview.d.ts +1 -1
  36. package/dist/resources/docs/overview.d.ts.map +1 -1
  37. package/dist/resources/docs/overview.js +4 -1
  38. package/dist/resources/docs/overview.js.map +1 -1
  39. package/dist/resources/generated/aiPacks.d.ts +1 -1
  40. package/dist/resources/generated/aiPacks.js +2 -2
  41. package/dist/tools/catalog.d.ts.map +1 -1
  42. package/dist/tools/catalog.js +5 -0
  43. package/dist/tools/catalog.js.map +1 -1
  44. package/dist/tools/diagrams.d.ts.map +1 -1
  45. package/dist/tools/diagrams.js +547 -59
  46. package/dist/tools/diagrams.js.map +1 -1
  47. package/dist/tools/lookups.d.ts +5 -1
  48. package/dist/tools/lookups.d.ts.map +1 -1
  49. package/dist/tools/lookups.js +41 -0
  50. package/dist/tools/lookups.js.map +1 -1
  51. package/dist-cjs/client/api.js +22 -0
  52. package/dist-cjs/domain/diagram/build.js +55 -171
  53. package/dist-cjs/domain/diagram/layout.js +19 -45
  54. package/dist-cjs/domain/diagram/patch.js +111 -271
  55. package/dist-cjs/domain/diagram/style.js +11 -88
  56. package/dist-cjs/domain/diagram/summarize.js +23 -35
  57. package/dist-cjs/resources/docs/diagramSchema.js +87 -10
  58. package/dist-cjs/resources/docs/overview.js +4 -1
  59. package/dist-cjs/resources/generated/aiPacks.js +2 -2
  60. package/dist-cjs/tools/catalog.js +5 -0
  61. package/dist-cjs/tools/diagrams.js +539 -51
  62. package/dist-cjs/tools/lookups.js +46 -1
  63. 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.2.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.28.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"