@syn7xx/testops-mcp-server 0.1.2 → 0.1.5

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 (93) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +147 -89
  3. package/dist/args.d.ts +2 -3
  4. package/dist/args.d.ts.map +1 -1
  5. package/dist/args.js +57 -19
  6. package/dist/args.js.map +1 -1
  7. package/dist/domain/project/service.d.ts.map +1 -1
  8. package/dist/domain/project/service.js +1 -1
  9. package/dist/domain/project/service.js.map +1 -1
  10. package/dist/domain/project/types.d.ts.map +1 -1
  11. package/dist/domain/test-case/service.d.ts +13 -1
  12. package/dist/domain/test-case/service.d.ts.map +1 -1
  13. package/dist/domain/test-case/service.js +22 -6
  14. package/dist/domain/test-case/service.js.map +1 -1
  15. package/dist/domain/test-case/types.d.ts +17 -0
  16. package/dist/domain/test-case/types.d.ts.map +1 -1
  17. package/dist/domain/test-plan/service.d.ts.map +1 -1
  18. package/dist/domain/test-plan/service.js +1 -1
  19. package/dist/domain/test-plan/service.js.map +1 -1
  20. package/dist/domain/test-plan/types.d.ts.map +1 -1
  21. package/dist/presentation/project/tools.d.ts +2 -1
  22. package/dist/presentation/project/tools.d.ts.map +1 -1
  23. package/dist/presentation/project/tools.js +30 -8
  24. package/dist/presentation/project/tools.js.map +1 -1
  25. package/dist/presentation/test-case/tools.d.ts +2 -1
  26. package/dist/presentation/test-case/tools.d.ts.map +1 -1
  27. package/dist/presentation/test-case/tools.js +138 -32
  28. package/dist/presentation/test-case/tools.js.map +1 -1
  29. package/dist/presentation/test-plan/tools.d.ts +2 -1
  30. package/dist/presentation/test-plan/tools.d.ts.map +1 -1
  31. package/dist/presentation/test-plan/tools.js +17 -5
  32. package/dist/presentation/test-plan/tools.js.map +1 -1
  33. package/dist/server.d.ts.map +1 -1
  34. package/dist/server.js +8 -5
  35. package/dist/server.js.map +1 -1
  36. package/dist/shared/api.d.ts +2 -4
  37. package/dist/shared/api.d.ts.map +1 -1
  38. package/dist/shared/api.js +34 -31
  39. package/dist/shared/api.js.map +1 -1
  40. package/dist/shared/pagination.d.ts.map +1 -1
  41. package/dist/shared/pagination.js.map +1 -1
  42. package/dist/shared/result.d.ts.map +1 -1
  43. package/dist/shared/result.js +7 -4
  44. package/dist/shared/result.js.map +1 -1
  45. package/package.json +18 -4
  46. package/dist/services/config.d.ts +0 -43
  47. package/dist/services/config.d.ts.map +0 -1
  48. package/dist/services/config.js +0 -99
  49. package/dist/services/config.js.map +0 -1
  50. package/dist/services/index.d.ts +0 -8
  51. package/dist/services/index.d.ts.map +0 -1
  52. package/dist/services/index.js +0 -8
  53. package/dist/services/index.js.map +0 -1
  54. package/dist/services/project.d.ts +0 -17
  55. package/dist/services/project.d.ts.map +0 -1
  56. package/dist/services/project.js +0 -27
  57. package/dist/services/project.js.map +0 -1
  58. package/dist/services/test-case.d.ts +0 -59
  59. package/dist/services/test-case.d.ts.map +0 -1
  60. package/dist/services/test-case.js +0 -138
  61. package/dist/services/test-case.js.map +0 -1
  62. package/dist/services/test-plan.d.ts +0 -20
  63. package/dist/services/test-plan.d.ts.map +0 -1
  64. package/dist/services/test-plan.js +0 -18
  65. package/dist/services/test-plan.js.map +0 -1
  66. package/dist/services/testops-client.d.ts +0 -96
  67. package/dist/services/testops-client.d.ts.map +0 -1
  68. package/dist/services/testops-client.js +0 -392
  69. package/dist/services/testops-client.js.map +0 -1
  70. package/dist/services/testops-types.d.ts +0 -62
  71. package/dist/services/testops-types.d.ts.map +0 -1
  72. package/dist/services/testops-types.js +0 -3
  73. package/dist/services/testops-types.js.map +0 -1
  74. package/dist/tools/index.d.ts +0 -8
  75. package/dist/tools/index.d.ts.map +0 -1
  76. package/dist/tools/index.js +0 -8
  77. package/dist/tools/index.js.map +0 -1
  78. package/dist/tools/project.d.ts +0 -5
  79. package/dist/tools/project.d.ts.map +0 -1
  80. package/dist/tools/project.js +0 -62
  81. package/dist/tools/project.js.map +0 -1
  82. package/dist/tools/test-case.d.ts +0 -5
  83. package/dist/tools/test-case.d.ts.map +0 -1
  84. package/dist/tools/test-case.js +0 -185
  85. package/dist/tools/test-case.js.map +0 -1
  86. package/dist/tools/test-plan.d.ts +0 -5
  87. package/dist/tools/test-plan.d.ts.map +0 -1
  88. package/dist/tools/test-plan.js +0 -57
  89. package/dist/tools/test-plan.js.map +0 -1
  90. package/dist/tools/testops.d.ts +0 -6
  91. package/dist/tools/testops.d.ts.map +0 -1
  92. package/dist/tools/testops.js +0 -302
  93. package/dist/tools/testops.js.map +0 -1
@@ -48,4 +48,21 @@ export interface TestCaseSearchResult {
48
48
  page: number;
49
49
  size: number;
50
50
  }
51
+ /** Page of tree nodes (groups and leaves) from v2 tree-node API */
52
+ export interface PageTestCaseTreeNode {
53
+ content?: TestCaseTreeNodeItem[];
54
+ totalElements?: number;
55
+ number?: number;
56
+ size?: number;
57
+ }
58
+ /** Group or leaf node; leaves expose `testCaseId` (see OpenAPI TestCaseTreeLeafDtoV2) */
59
+ export type TestCaseTreeNodeItem = Record<string, unknown>;
60
+ /** Response of GET .../test-case/tree/tree-node (TestCaseFullTreeNodeDto) */
61
+ export interface TestCaseFullTreeNode {
62
+ id?: number;
63
+ name?: string;
64
+ parentNodeId?: number;
65
+ customFieldValueId?: number;
66
+ children?: PageTestCaseTreeNode;
67
+ }
51
68
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-case/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAC/B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,EAAE;QACF,QAAQ,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACN;AAED,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-case/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,yFAAyF;AACzF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAO,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAuB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS7D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAE7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC7B,YAAY,MAAM,EAClB,SAAS,UAAU,KACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAgBpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACxB,YAAY,MAAM,KACnB,OAAO,CAAC,MAAM,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CAE1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEtF,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAO,MAAM,wBAAwB,CAAC;AAErD,OAAO,EACL,UAAU,EAEV,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS7D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,SAAS,UAAU,KAClB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAgBpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,KACjB,OAAO,CACR,MAAM,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CAGjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,YAAY,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEjC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { apiGet } from '../../shared/api.js';
2
2
  import { map } from '../../shared/result.js';
3
3
  import { createPaginated } from '../../shared/pagination.js';
4
- import { normalizePageParams } from '../../shared/pagination.js';
4
+ import { normalizePageParams, } from '../../shared/pagination.js';
5
5
  /**
6
6
  * Get a test plan by ID
7
7
  * @param id - Test plan ID
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAU,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAc,mBAAmB,EAAkB,MAAM,4BAA4B,CAAC;AAU7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAU,EAAoC,EAAE;IAC9E,OAAO,MAAM,CAAW,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACrC,UAAkB,EAClB,MAAmB,EACgC,EAAE;IACrD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CACzB,iBAAiB,UAAU,YAAY,EACvC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,UAAU,EAAE,CAC3C,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,eAAe,CACX,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,aAAa,CACrB,CACJ,CAAC;AACN,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,UAAkB,EACuD,EAAE;IAC3E,OAAO,MAAM,CAAC,iBAAiB,UAAU,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,UAAkB,EAAoC,EAAE;IACvF,OAAO,MAAM,CAAW,iBAAiB,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAU,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAEL,mBAAmB,GAEpB,MAAM,4BAA4B,CAAC;AAUpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,EAAU,EACwB,EAAE;IACpC,OAAO,MAAM,CAAW,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAkB,EAClB,MAAmB,EACkC,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAC3B,iBAAiB,UAAU,YAAY,EACvC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,UAAU,EAAE,CACzC,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC5B,eAAe,CACb,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,aAAa,CACnB,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,UAAkB,EAGlB,EAAE;IACF,OAAO,MAAM,CAAC,iBAAiB,UAAU,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,UAAkB,EACgB,EAAE;IACpC,OAAO,MAAM,CAAW,iBAAiB,UAAU,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -1,2 +1,3 @@
1
- export declare const registerProjectTools: (server: any) => void;
1
+ import type { McpServer } from '@modelcontextprotocol/server';
2
+ export declare const registerProjectTools: (server: McpServer) => void;
2
3
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,GAAI,QAAQ,GAAG,SA6E/C,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAS9D,eAAO,MAAM,oBAAoB,GAAI,QAAQ,SAAS,SAuGrD,CAAC"}
@@ -13,10 +13,14 @@ export const registerProjectTools = (server) => {
13
13
  }, async (args) => {
14
14
  const result = await findProjects(args);
15
15
  if (!isSuccess(result)) {
16
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
16
+ return {
17
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
18
+ isError: true,
19
+ };
17
20
  }
18
21
  return {
19
- content: [{
22
+ content: [
23
+ {
20
24
  type: 'text',
21
25
  text: JSON.stringify({
22
26
  items: result.value.items,
@@ -25,7 +29,8 @@ export const registerProjectTools = (server) => {
25
29
  totalElements: result.value.totalElements,
26
30
  hasNext: result.value.hasNext,
27
31
  }, null, 2),
28
- }],
32
+ },
33
+ ],
29
34
  };
30
35
  });
31
36
  server.registerTool('project_find_by_name', {
@@ -37,12 +42,22 @@ export const registerProjectTools = (server) => {
37
42
  }, async (args) => {
38
43
  const result = await findProjectByName(args.name);
39
44
  if (!isSuccess(result)) {
40
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
45
+ return {
46
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
47
+ isError: true,
48
+ };
41
49
  }
42
50
  if (!result.value) {
43
- return { content: [{ type: 'text', text: `Project "${args.name}" not found` }], isError: true };
51
+ return {
52
+ content: [{ type: 'text', text: `Project "${args.name}" not found` }],
53
+ isError: true,
54
+ };
44
55
  }
45
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
56
+ return {
57
+ content: [
58
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
59
+ ],
60
+ };
46
61
  });
47
62
  server.registerTool('project_get_by_id', {
48
63
  title: 'Get Project by ID',
@@ -53,9 +68,16 @@ export const registerProjectTools = (server) => {
53
68
  }, async (args) => {
54
69
  const result = await getProjectById(args.id);
55
70
  if (!isSuccess(result)) {
56
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
71
+ return {
72
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
73
+ isError: true,
74
+ };
57
75
  }
58
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
76
+ return {
77
+ content: [
78
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
79
+ ],
80
+ };
59
81
  });
60
82
  };
61
83
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare const registerTestCaseTools: (server: any) => void;
1
+ import type { McpServer } from '@modelcontextprotocol/server';
2
+ export declare const registerTestCaseTools: (server: McpServer) => void;
2
3
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/test-case/tools.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,qBAAqB,GAAI,QAAQ,GAAG,SA6KhD,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/test-case/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAuC9D,eAAO,MAAM,qBAAqB,GAAI,QAAQ,SAAS,SAwTtD,CAAC"}
@@ -1,6 +1,28 @@
1
1
  import * as z from 'zod';
2
2
  import { isSuccess } from '../../shared/result.js';
3
- import { getTestCase, getTestCaseDetail, getTestCaseScenario, updateScenarioStep, setTestCaseScenario, getTestCaseCustomFields, updateTestCaseCustomFields, searchTestCasesByAQL, } from '../../domain/test-case/index.js';
3
+ import { getTestCase, getTestCaseDetail, getTestCaseScenario, updateScenarioStep, setTestCaseScenario, getTestCaseCustomFields, updateTestCaseCustomFields, searchTestCasesByAQL, listTestCasesInTree, } from '../../domain/test-case/index.js';
4
+ const testCaseIdOnly = z.object({
5
+ id: z.number().describe('Allure test case ID (same as in TestOps UI / URL)'),
6
+ });
7
+ async function handleGetTestCaseScenario(args) {
8
+ const result = await getTestCaseScenario(args.id);
9
+ if (!isSuccess(result)) {
10
+ return {
11
+ content: [
12
+ { type: 'text', text: `Error: ${result.error.message}` },
13
+ ],
14
+ isError: true,
15
+ };
16
+ }
17
+ return {
18
+ content: [
19
+ {
20
+ type: 'text',
21
+ text: JSON.stringify(result.value, null, 2),
22
+ },
23
+ ],
24
+ };
25
+ }
4
26
  export const registerTestCaseTools = (server) => {
5
27
  server.registerTool('testcase_get', {
6
28
  title: 'Get Test Case',
@@ -11,36 +33,50 @@ export const registerTestCaseTools = (server) => {
11
33
  }, async (args) => {
12
34
  const result = await getTestCase(args.id);
13
35
  if (!isSuccess(result)) {
14
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
36
+ return {
37
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
38
+ isError: true,
39
+ };
15
40
  }
16
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
41
+ return {
42
+ content: [
43
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
44
+ ],
45
+ };
17
46
  });
18
47
  server.registerTool('testcase_get_detail', {
19
48
  title: 'Get Test Case Detail',
20
- description: 'Get test case with steps and custom fields',
49
+ description: 'Aggregated card: name, description, tags, custom fields, and step texts as a simple list. For the raw scenario graph (step actions + expected results per step from /step), use testcase_get_scenario or testcase_get_step instead — not this tool.',
50
+ annotations: { readOnlyHint: true },
21
51
  inputSchema: z.object({
22
52
  id: z.number().describe('Test case ID'),
23
53
  }),
24
54
  }, async (args) => {
25
55
  const result = await getTestCaseDetail(args.id);
26
56
  if (!isSuccess(result)) {
27
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
57
+ return {
58
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
59
+ isError: true,
60
+ };
28
61
  }
29
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
62
+ return {
63
+ content: [
64
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
65
+ ],
66
+ };
30
67
  });
31
68
  server.registerTool('testcase_get_scenario', {
32
69
  title: 'Get Test Case Scenario',
33
- description: 'Get scenario (steps and expected results) for a test case',
34
- inputSchema: z.object({
35
- id: z.number().describe('Test case ID'),
36
- }),
37
- }, async (args) => {
38
- const result = await getTestCaseScenario(args.id);
39
- if (!isSuccess(result)) {
40
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
41
- }
42
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
43
- });
70
+ description: 'Normalized scenario from GET /api/testcase/{id}/step (scenarioSteps, step bodies, expected results). For steps + expected results use this or testcase_get_step only — call by this exact name from tools/list.',
71
+ annotations: { readOnlyHint: true },
72
+ inputSchema: testCaseIdOnly,
73
+ }, handleGetTestCaseScenario);
74
+ server.registerTool('testcase_get_step', {
75
+ title: 'Get Test Case Steps',
76
+ description: 'Same as testcase_get_scenario (alias). Use either name from tools/list for scenario JSON; do not invent variants (e.g. get_steps).',
77
+ annotations: { readOnlyHint: true },
78
+ inputSchema: testCaseIdOnly,
79
+ }, handleGetTestCaseScenario);
44
80
  server.registerTool('testcase_update_step', {
45
81
  title: 'Update Scenario Step',
46
82
  description: 'Update a step in a test case scenario',
@@ -56,26 +92,42 @@ export const registerTestCaseTools = (server) => {
56
92
  expectedResult: args.expectedResult,
57
93
  });
58
94
  if (!isSuccess(result)) {
59
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
95
+ return {
96
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
97
+ isError: true,
98
+ };
60
99
  }
61
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
100
+ return {
101
+ content: [
102
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
103
+ ],
104
+ };
62
105
  });
63
106
  server.registerTool('testcase_set_scenario', {
64
107
  title: 'Set Test Case Scenario',
65
108
  description: 'Replace all steps in a test case scenario',
66
109
  inputSchema: z.object({
67
110
  id: z.number().describe('Test case ID'),
68
- steps: z.array(z.object({
111
+ steps: z
112
+ .array(z.object({
69
113
  action: z.string().describe('Step action'),
70
114
  expectedResult: z.string().optional().describe('Expected result'),
71
- })).describe('Steps to set'),
115
+ }))
116
+ .describe('Steps to set'),
72
117
  }),
73
118
  }, async (args) => {
74
119
  const result = await setTestCaseScenario(args.id, args.steps);
75
120
  if (!isSuccess(result)) {
76
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
121
+ return {
122
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
123
+ isError: true,
124
+ };
77
125
  }
78
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
126
+ return {
127
+ content: [
128
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
129
+ ],
130
+ };
79
131
  });
80
132
  server.registerTool('testcase_get_custom_fields', {
81
133
  title: 'Get Test Case Custom Fields',
@@ -86,26 +138,75 @@ export const registerTestCaseTools = (server) => {
86
138
  }, async (args) => {
87
139
  const result = await getTestCaseCustomFields(args.id);
88
140
  if (!isSuccess(result)) {
89
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
141
+ return {
142
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
143
+ isError: true,
144
+ };
90
145
  }
91
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
146
+ return {
147
+ content: [
148
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
149
+ ],
150
+ };
92
151
  });
93
152
  server.registerTool('testcase_update_custom_fields', {
94
153
  title: 'Update Test Case Custom Fields',
95
154
  description: 'Update custom field values for a test case',
96
155
  inputSchema: z.object({
97
156
  id: z.number().describe('Test case ID'),
98
- fields: z.array(z.object({
157
+ fields: z
158
+ .array(z.object({
99
159
  customFieldId: z.number().describe('Custom field ID'),
100
160
  valueIds: z.array(z.number()).describe('Value IDs to set'),
101
- })).describe('Custom fields to update'),
161
+ }))
162
+ .describe('Custom fields to update'),
102
163
  }),
103
164
  }, async (args) => {
104
165
  const result = await updateTestCaseCustomFields(args.id, args.fields);
105
166
  if (!isSuccess(result)) {
106
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
167
+ return {
168
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
169
+ isError: true,
170
+ };
107
171
  }
108
- return { content: [{ type: 'text', text: 'Custom fields updated successfully' }] };
172
+ return {
173
+ content: [{ type: 'text', text: 'Custom fields updated successfully' }],
174
+ };
175
+ });
176
+ server.registerTool('testcase_list_in_tree', {
177
+ title: 'List Test Cases in Tree',
178
+ description: 'List test cases for a project tree (Allure TestOps GET /api/v2/project/{projectId}/test-case/tree/tree-node). Requires treeId. Returns a tree node with paginated children; leaf nodes include testCaseId. Use parentNodeId to page into a folder.',
179
+ inputSchema: z.object({
180
+ projectId: z.number().describe('Project ID'),
181
+ treeId: z.number().describe('Test case tree ID'),
182
+ parentNodeId: z
183
+ .number()
184
+ .optional()
185
+ .describe('Parent folder node ID (omit for tree root)'),
186
+ search: z.string().optional().describe('Search filter'),
187
+ filterId: z.number().optional().describe('Saved filter ID'),
188
+ query: z.string().optional().describe('Query string (API `query`)'),
189
+ baseAql: z
190
+ .string()
191
+ .optional()
192
+ .describe('Base AQL applied on the server'),
193
+ page: z.number().optional().describe('Page index (0-based)'),
194
+ size: z.number().optional().describe('Page size'),
195
+ sort: z.string().optional().describe('Sort, e.g. name,ASC'),
196
+ }),
197
+ }, async (args) => {
198
+ const result = await listTestCasesInTree(args.projectId, args.treeId, args);
199
+ if (!isSuccess(result)) {
200
+ return {
201
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
202
+ isError: true,
203
+ };
204
+ }
205
+ return {
206
+ content: [
207
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
208
+ ],
209
+ };
109
210
  });
110
211
  server.registerTool('testcase_search_by_aql', {
111
212
  title: 'Search Test Cases by AQL',
@@ -121,10 +222,14 @@ export const registerTestCaseTools = (server) => {
121
222
  }, async (args) => {
122
223
  const result = await searchTestCasesByAQL(args.projectId, args.rql, args);
123
224
  if (!isSuccess(result)) {
124
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
225
+ return {
226
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
227
+ isError: true,
228
+ };
125
229
  }
126
230
  return {
127
- content: [{
231
+ content: [
232
+ {
128
233
  type: 'text',
129
234
  text: JSON.stringify({
130
235
  testCases: result.value.testCases,
@@ -132,7 +237,8 @@ export const registerTestCaseTools = (server) => {
132
237
  page: result.value.page,
133
238
  size: result.value.size,
134
239
  }, null, 2),
135
- }],
240
+ },
241
+ ],
136
242
  };
137
243
  });
138
244
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/test-case/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/test-case/tools.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare const registerTestPlanTools: (server: any) => void;
1
+ import type { McpServer } from '@modelcontextprotocol/server';
2
+ export declare const registerTestPlanTools: (server: McpServer) => void;
2
3
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/test-plan/tools.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,qBAAqB,GAAI,QAAQ,GAAG,SAsDhD,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/test-plan/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAQ9D,eAAO,MAAM,qBAAqB,GAAI,QAAQ,SAAS,SA2EtD,CAAC"}
@@ -11,9 +11,16 @@ export const registerTestPlanTools = (server) => {
11
11
  }, async (args) => {
12
12
  const result = await getTestPlan(args.id);
13
13
  if (!isSuccess(result)) {
14
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
14
+ return {
15
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
16
+ isError: true,
17
+ };
15
18
  }
16
- return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
19
+ return {
20
+ content: [
21
+ { type: 'text', text: JSON.stringify(result.value, null, 2) },
22
+ ],
23
+ };
17
24
  });
18
25
  server.registerTool('testplan_get_test_cases', {
19
26
  title: 'Get Test Plan Test Cases',
@@ -27,10 +34,14 @@ export const registerTestPlanTools = (server) => {
27
34
  }, async (args) => {
28
35
  const result = await getTestPlanTestCases(args.id, args);
29
36
  if (!isSuccess(result)) {
30
- return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
37
+ return {
38
+ content: [{ type: 'text', text: `Error: ${result.error.message}` }],
39
+ isError: true,
40
+ };
31
41
  }
32
42
  return {
33
- content: [{
43
+ content: [
44
+ {
34
45
  type: 'text',
35
46
  text: JSON.stringify({
36
47
  items: result.value.items,
@@ -39,7 +50,8 @@ export const registerTestPlanTools = (server) => {
39
50
  totalElements: result.value.totalElements,
40
51
  hasNext: result.value.hasNext,
41
52
  }, null, 2),
42
- }],
53
+ },
54
+ ],
43
55
  };
44
56
  });
45
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/test-plan/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACH,WAAW,EACX,oBAAoB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAW,EAAE,EAAE;IACjD,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACI,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC1C,CAAC;KACL,EACD,KAAK,EAAE,IAAoB,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,yBAAyB,EACzB;QACI,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAClE,CAAC;KACL,EACD,KAAK,EAAE,IAAiE,EAAE,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QAED,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;wBACzB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;wBACvB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;wBACvB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;wBACzC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;qBAChC,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC,CACJ,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/test-plan/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAiB,EAAE,EAAE;IACzD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SACxC,CAAC;KACH,EACD,KAAK,EAAE,IAAoB,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aAC9D;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAChE,CAAC;KACH,EACD,KAAK,EAAE,IAKN,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;wBACzB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;wBACvB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;wBACvB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;wBACzC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;qBAC9B,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,8BAA8B,CAAC;AAQ/E,wBAAsB,mBAAmB,uBA+BxC;AAED,wBAAsB,WAAW,kBAKhC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAwB,MAAM,8BAA8B,CAAC;AAa/E,wBAAsB,mBAAmB,uBA+BxC;AAED,wBAAsB,WAAW,kBAKhC"}
package/dist/server.js CHANGED
@@ -1,15 +1,18 @@
1
+ import { createRequire } from 'node:module';
1
2
  import { McpServer, StdioServerTransport } from '@modelcontextprotocol/server';
2
3
  import * as z from 'zod';
3
4
  import { registerProjectTools, registerTestPlanTools, registerTestCaseTools, } from './presentation/index.js';
5
+ const require = createRequire(import.meta.url);
6
+ const { version: packageVersion } = require('../package.json');
4
7
  export async function createTestOpsServer() {
5
8
  const server = new McpServer({
6
9
  name: 'testops-mcp-server',
7
- version: '0.1.0'
10
+ version: packageVersion,
8
11
  }, {
9
12
  capabilities: {
10
13
  resources: {},
11
- tools: {}
12
- }
14
+ tools: {},
15
+ },
13
16
  });
14
17
  registerProjectTools(server);
15
18
  registerTestPlanTools(server);
@@ -17,9 +20,9 @@ export async function createTestOpsServer() {
17
20
  server.registerTool('ping', {
18
21
  title: 'Ping',
19
22
  description: 'Test tool to verify server connectivity',
20
- inputSchema: z.object({})
23
+ inputSchema: z.object({}),
21
24
  }, async () => ({
22
- content: [{ type: 'text', text: 'Pong! Server is running.' }]
25
+ content: [{ type: 'text', text: 'Pong! Server is running.' }],
23
26
  }));
24
27
  return server;
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,CAAC,YAAY,CACjB,MAAM,EACN;QACE,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;KAC9D,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAE5D,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,cAAc;KACxB,EACD;QACE,YAAY,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,CAAC,YAAY,CACjB,MAAM,EACN;QACE,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;KAC9D,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC"}
@@ -22,10 +22,8 @@ export declare const clearJwtCache: () => void;
22
22
  */
23
23
  export declare const getJwt: () => Promise<string>;
24
24
  /**
25
- * Base HTTP client with automatic JWT auth
26
- * @param endpoint - API endpoint path
27
- * @param config - Request configuration
28
- * @returns Result containing response data or error
25
+ * Base HTTP client with automatic JWT auth.
26
+ * On HTTP 401, clears the cached JWT and retries the request once (e.g. expired access token).
29
27
  */
30
28
  export declare const apiFetch: <T = unknown>(endpoint: string, config: RequestConfig) => Promise<Result<T, Error>>;
31
29
  /** GET request helper */