@mcp-abap-adt/calm-server 0.2.0 → 0.2.1

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 CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.1 — 2026-05-13
4
+
5
+ Same-day follow-up to 0.2.0: realigns two bonus tools with
6
+ `@mcp-abap-adt/calm-client@0.2.0`, which corrected its
7
+ `listDeliverables` / `listWorkstreams` signatures to require
8
+ `projectId` (see calm-client issue #1 / PR #2).
9
+
10
+ ### Changed (BREAKING for two tool input schemas)
11
+
12
+ - **`calm_tasks_list_deliverables`** — `projectId` is now `required`
13
+ in the input schema. The Tasks service exposes this endpoint with
14
+ `@RequestParam UUID projectId` and rejects calls without it; the
15
+ previous schema treated `projectId` as optional and emitted it as an
16
+ OData `$filter`, which the server ignored (sandbox returned 400,
17
+ live tenant would also 400).
18
+ - **`calm_tasks_list_workstreams`** — same change for symmetry and to
19
+ match the corrected client API. Sandbox happened to tolerate the
20
+ missing param and return an empty page, but a real tenant would 400.
21
+
22
+ ### Updated
23
+
24
+ - Peer dependency `@mcp-abap-adt/calm-client` bumped from `^0.1.0` to
25
+ `^0.2.0`. Required for the corrected method signatures.
26
+
27
+ ### Tests
28
+
29
+ - Unit tests for the two affected bonus tools rewritten to assert
30
+ `INVALID_ARGUMENT` without `projectId` and positional-`projectId`
31
+ forwarding to the client. 225 passed (was 224), 7 skipped, 1 todo.
32
+
3
33
  ## 0.2.0 — 2026-05-13
4
34
 
5
35
  Parity with the consetto-Rust port plus a wider bonus surface, live
@@ -8,7 +8,7 @@ const buildClient_1 = require("./buildClient");
8
8
  const config_1 = require("./config");
9
9
  const stderrLogger_1 = require("./stderrLogger");
10
10
  const PACKAGE_NAME = '@mcp-abap-adt/calm-server';
11
- const PACKAGE_VERSION = '0.2.0';
11
+ const PACKAGE_VERSION = '0.2.1';
12
12
  /**
13
13
  * Entry point for standalone stdio mode. Reads `.env` + env vars,
14
14
  * builds a `CalmClient`, wires all tool groups onto a
@@ -2,7 +2,7 @@ import { type IDeliverable } from '@mcp-abap-adt/calm-client';
2
2
  import type { ICalmHandlerEntry } from '../../registry/types';
3
3
  import { type IListResponse } from '../../utils';
4
4
  export interface IListDeliverablesArgs {
5
- projectId?: string;
5
+ projectId: string;
6
6
  limit?: number;
7
7
  offset?: number;
8
8
  withCount?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"listDeliverables.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/listDeliverables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAKnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAuCD,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAClD,qBAAqB,EACrB,aAAa,CAAC,YAAY,CAAC,CAI5B,CAAC"}
1
+ {"version":3,"file":"listDeliverables.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/listDeliverables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAClD,qBAAqB,EACrB,aAAa,CAAC,YAAY,CAAC,CAI5B,CAAC"}
@@ -5,11 +5,15 @@ const calm_client_1 = require("@mcp-abap-adt/calm-client");
5
5
  const utils_1 = require("../../utils");
6
6
  const definition = {
7
7
  name: 'calm_tasks_list_deliverables',
8
- description: 'List Cloud ALM deliverables (the tracked work-product entities tasks can reference). Optionally scope to a project via `projectId`.',
8
+ description: 'List Cloud ALM deliverables (work-product entities tasks can reference) for a project. Requires `projectId` — the Tasks service exposes this endpoint with @RequestParam UUID projectId and rejects calls without it (sandbox behaviour was inconsistent before calm-client 0.2.0; live tenants always 400).',
9
9
  inputSchema: {
10
10
  type: 'object',
11
+ required: ['projectId'],
11
12
  properties: {
12
- projectId: { type: 'string', description: 'Optional project scope.' },
13
+ projectId: {
14
+ type: 'string',
15
+ description: 'Project id (required scope).',
16
+ },
13
17
  limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
14
18
  offset: { type: 'integer', minimum: 0 },
15
19
  withCount: { type: 'boolean' },
@@ -17,18 +21,21 @@ const definition = {
17
21
  },
18
22
  };
19
23
  const handler = async (ctx, args) => {
20
- const limit = (0, utils_1.clampListLimit)(args?.limit);
21
- const offset = args?.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
22
- const filter = (0, utils_1.joinAndFilters)(args?.projectId
23
- ? `projectId eq '${(0, utils_1.escapeODataString)(args.projectId)}'`
24
- : undefined);
24
+ if (!args?.projectId) {
25
+ throw new utils_1.CalmToolError({
26
+ code: 'INVALID_ARGUMENT',
27
+ message: 'projectId is required',
28
+ });
29
+ }
30
+ const limit = (0, utils_1.clampListLimit)(args.limit);
31
+ const offset = args.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
25
32
  let query = calm_client_1.ODataQuery.new().top(limit).skip(offset);
26
- if (filter)
27
- query = query.filter(filter);
28
- if (args?.withCount)
33
+ if (args.withCount)
29
34
  query = query.count();
30
35
  try {
31
- const collection = await ctx.calm.getTasks().listDeliverables(query);
36
+ const collection = await ctx.calm
37
+ .getTasks()
38
+ .listDeliverables(args.projectId, query);
32
39
  return (0, utils_1.toListResponse)(collection, { limit, offset });
33
40
  }
34
41
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"listDeliverables.js","sourceRoot":"","sources":["../../../src/tools/tasks/listDeliverables.ts"],"names":[],"mappings":";;;AAAA,2DAA0E;AAM1E,uCAQqB;AASrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,8BAA8B;IACpC,WAAW,EACT,qIAAqI;IACvI,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACrE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAc,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YACvC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/B;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAGT,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAA,sBAAc,EAC3B,IAAI,EAAE,SAAS;QACb,CAAC,CAAC,iBAAiB,IAAA,yBAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG;QACvD,CAAC,CAAC,SAAS,CACd,CAAC;IACF,IAAI,KAAK,GAAG,wBAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,SAAS;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrE,OAAO,IAAA,sBAAc,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,oBAAoB,GAG7B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"listDeliverables.js","sourceRoot":"","sources":["../../../src/tools/tasks/listDeliverables.ts"],"names":[],"mappings":";;;AAAA,2DAA0E;AAM1E,uCAOqB;AASrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,8BAA8B;IACpC,WAAW,EACT,8SAA8S;IAChT,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAc,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YACvC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/B;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAGT,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,KAAK,GAAG,wBAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,SAAS;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI;aAC9B,QAAQ,EAAE;aACV,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAA,sBAAc,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,oBAAoB,GAG7B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
@@ -2,7 +2,7 @@ import { type IWorkstream } from '@mcp-abap-adt/calm-client';
2
2
  import type { ICalmHandlerEntry } from '../../registry/types';
3
3
  import { type IListResponse } from '../../utils';
4
4
  export interface IListWorkstreamsArgs {
5
- projectId?: string;
5
+ projectId: string;
6
6
  limit?: number;
7
7
  offset?: number;
8
8
  withCount?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"listWorkstreams.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/listWorkstreams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAKnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAuCD,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CACjD,oBAAoB,EACpB,aAAa,CAAC,WAAW,CAAC,CAI3B,CAAC"}
1
+ {"version":3,"file":"listWorkstreams.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/listWorkstreams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,CACjD,oBAAoB,EACpB,aAAa,CAAC,WAAW,CAAC,CAI3B,CAAC"}
@@ -5,11 +5,15 @@ const calm_client_1 = require("@mcp-abap-adt/calm-client");
5
5
  const utils_1 = require("../../utils");
6
6
  const definition = {
7
7
  name: 'calm_tasks_list_workstreams',
8
- description: 'List Cloud ALM workstreams (the workstream taxonomy tasks can be grouped under). Optionally scope to a project via `projectId`.',
8
+ description: 'List Cloud ALM workstreams (the grouping taxonomy tasks can be filed under) for a project. Requires `projectId` — same @RequestParam UUID contract as calm_tasks_list_deliverables.',
9
9
  inputSchema: {
10
10
  type: 'object',
11
+ required: ['projectId'],
11
12
  properties: {
12
- projectId: { type: 'string', description: 'Optional project scope.' },
13
+ projectId: {
14
+ type: 'string',
15
+ description: 'Project id (required scope).',
16
+ },
13
17
  limit: { type: 'integer', minimum: 1, maximum: utils_1.MAX_LIST_LIMIT },
14
18
  offset: { type: 'integer', minimum: 0 },
15
19
  withCount: { type: 'boolean' },
@@ -17,18 +21,21 @@ const definition = {
17
21
  },
18
22
  };
19
23
  const handler = async (ctx, args) => {
20
- const limit = (0, utils_1.clampListLimit)(args?.limit);
21
- const offset = args?.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
22
- const filter = (0, utils_1.joinAndFilters)(args?.projectId
23
- ? `projectId eq '${(0, utils_1.escapeODataString)(args.projectId)}'`
24
- : undefined);
24
+ if (!args?.projectId) {
25
+ throw new utils_1.CalmToolError({
26
+ code: 'INVALID_ARGUMENT',
27
+ message: 'projectId is required',
28
+ });
29
+ }
30
+ const limit = (0, utils_1.clampListLimit)(args.limit);
31
+ const offset = args.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
25
32
  let query = calm_client_1.ODataQuery.new().top(limit).skip(offset);
26
- if (filter)
27
- query = query.filter(filter);
28
- if (args?.withCount)
33
+ if (args.withCount)
29
34
  query = query.count();
30
35
  try {
31
- const collection = await ctx.calm.getTasks().listWorkstreams(query);
36
+ const collection = await ctx.calm
37
+ .getTasks()
38
+ .listWorkstreams(args.projectId, query);
32
39
  return (0, utils_1.toListResponse)(collection, { limit, offset });
33
40
  }
34
41
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"listWorkstreams.js","sourceRoot":"","sources":["../../../src/tools/tasks/listWorkstreams.ts"],"names":[],"mappings":";;;AAAA,2DAAyE;AAMzE,uCAQqB;AASrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,iIAAiI;IACnI,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACrE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAc,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YACvC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/B;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAGT,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAA,sBAAc,EAC3B,IAAI,EAAE,SAAS;QACb,CAAC,CAAC,iBAAiB,IAAA,yBAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG;QACvD,CAAC,CAAC,SAAS,CACd,CAAC;IACF,IAAI,KAAK,GAAG,wBAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,SAAS;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,IAAA,sBAAc,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,mBAAmB,GAG5B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"listWorkstreams.js","sourceRoot":"","sources":["../../../src/tools/tasks/listWorkstreams.ts"],"names":[],"mappings":";;;AAAA,2DAAyE;AAMzE,uCAOqB;AASrB,MAAM,UAAU,GAAwB;IACtC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,qLAAqL;IACvL,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAc,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YACvC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/B;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAGT,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,qBAAa,CAAC;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,KAAK,GAAG,wBAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,SAAS;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI;aAC9B,QAAQ,EAAE;aACV,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAA,sBAAc,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,mBAAmB,GAG5B;IACF,cAAc,EAAE,UAAU;IAC1B,OAAO;CACR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/calm-server",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server + reusable tool primitives for SAP Cloud ALM, backed by @mcp-abap-adt/calm-client.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -63,7 +63,7 @@
63
63
  "tools"
64
64
  ],
65
65
  "peerDependencies": {
66
- "@mcp-abap-adt/calm-client": "^0.1.0",
66
+ "@mcp-abap-adt/calm-client": "^0.2.0",
67
67
  "@mcp-abap-adt/interfaces": "^7.1.0",
68
68
  "@modelcontextprotocol/sdk": "^1.0.0"
69
69
  },
@@ -72,7 +72,7 @@
72
72
  "@mcp-abap-adt/auth-broker": "^1.0.5",
73
73
  "@mcp-abap-adt/auth-providers": "^1.0.5",
74
74
  "@mcp-abap-adt/auth-stores": "^1.0.4",
75
- "@mcp-abap-adt/calm-client": "^0.1.0",
75
+ "@mcp-abap-adt/calm-client": "^0.2.0",
76
76
  "@mcp-abap-adt/interfaces": "^7.1.0",
77
77
  "@mcp-abap-adt/logger": "^0.1.4",
78
78
  "@modelcontextprotocol/sdk": "^1.0.0",