@ffschrattenecker/tm1-mcp-server 7.0.1 → 8.0.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 (116) hide show
  1. package/CHANGELOG.md +102 -1
  2. package/README.md +5 -5
  3. package/dist/config.js +34 -17
  4. package/dist/connections.d.ts +18 -1
  5. package/dist/connections.js +34 -18
  6. package/dist/http-transport.js +51 -4
  7. package/dist/lib/callgraph/referenceIndex.js +2 -1
  8. package/dist/lib/callgraph/rulesLinter.d.ts +0 -19
  9. package/dist/lib/callgraph/rulesLinter.js +0 -590
  10. package/dist/lib/callgraph/tiParser.js +10 -5
  11. package/dist/lib/callgraph/tm1-adapter.d.ts +5 -1
  12. package/dist/lib/callgraph/tm1-adapter.js +41 -9
  13. package/dist/lib/callgraph/variableEnv.js +3 -2
  14. package/dist/lib/cell-address.d.ts +11 -1
  15. package/dist/lib/cell-address.js +22 -3
  16. package/dist/lib/complexity/antipatterns.js +3 -1
  17. package/dist/lib/complexity/comment-classifier.js +2 -1
  18. package/dist/lib/coordinate-error.js +5 -1
  19. package/dist/lib/feeders/element-type-cache.js +4 -6
  20. package/dist/lib/naming/odata-filter.js +2 -1
  21. package/dist/lib/pro-parser.js +13 -4
  22. package/dist/lib/safe-regex.d.ts +0 -13
  23. package/dist/lib/safe-regex.js +40 -13
  24. package/dist/lib/sample-cells.d.ts +6 -0
  25. package/dist/lib/sample-cells.js +20 -2
  26. package/dist/lib/ti-identifier.d.ts +11 -0
  27. package/dist/lib/ti-identifier.js +11 -0
  28. package/dist/lib/tm1-name.d.ts +9 -0
  29. package/dist/lib/tm1-name.js +9 -0
  30. package/dist/lib/v12-compat/deprecated-ti.js +2 -2
  31. package/dist/session-manager.d.ts +1 -0
  32. package/dist/session-manager.js +24 -0
  33. package/dist/tm1-client/connection/profile.js +2 -4
  34. package/dist/tm1-client/dispatcher.d.ts +1 -1
  35. package/dist/tm1-client/dispatcher.js +18 -6
  36. package/dist/tm1-client/http.d.ts +21 -0
  37. package/dist/tm1-client/http.js +39 -30
  38. package/dist/tm1-client/services/cell-service.d.ts +9 -7
  39. package/dist/tm1-client/services/cell-service.js +54 -25
  40. package/dist/tm1-client/services/chore-service.js +8 -9
  41. package/dist/tm1-client/services/cube-service.d.ts +14 -18
  42. package/dist/tm1-client/services/cube-service.js +51 -45
  43. package/dist/tm1-client/services/dimension-order.d.ts +13 -0
  44. package/dist/tm1-client/services/dimension-order.js +42 -0
  45. package/dist/tm1-client/services/dimension-service.js +4 -6
  46. package/dist/tm1-client/services/element-service.d.ts +35 -11
  47. package/dist/tm1-client/services/element-service.js +124 -60
  48. package/dist/tm1-client/services/file-service.d.ts +42 -6
  49. package/dist/tm1-client/services/file-service.js +225 -28
  50. package/dist/tm1-client/services/hierarchy-service.d.ts +19 -9
  51. package/dist/tm1-client/services/hierarchy-service.js +118 -12
  52. package/dist/tm1-client/services/monitoring-service.js +2 -5
  53. package/dist/tm1-client/services/odata-page.d.ts +6 -0
  54. package/dist/tm1-client/services/odata-page.js +8 -0
  55. package/dist/tm1-client/services/process-service.d.ts +1 -1
  56. package/dist/tm1-client/services/process-service.js +26 -26
  57. package/dist/tm1-client/services/security-service.js +8 -9
  58. package/dist/tm1-client/services/server-service.js +14 -15
  59. package/dist/tm1-client/services/subset-service.d.ts +23 -10
  60. package/dist/tm1-client/services/subset-service.js +82 -26
  61. package/dist/tm1-client/services/view-service.js +12 -13
  62. package/dist/tm1-client.js +5 -2
  63. package/dist/tools/analysis/check-v12-readiness.js +3 -3
  64. package/dist/tools/celldata/check-feeders.js +6 -6
  65. package/dist/tools/celldata/check-writable-coords.js +43 -25
  66. package/dist/tools/celldata/execute-mdx.js +19 -23
  67. package/dist/tools/celldata/get-cell-value.js +1 -1
  68. package/dist/tools/celldata/get-view.js +10 -9
  69. package/dist/tools/celldata/member-ref.d.ts +15 -0
  70. package/dist/tools/celldata/member-ref.js +67 -0
  71. package/dist/tools/celldata/sample-cells.js +3 -0
  72. package/dist/tools/celldata/trace-cell-calculation.js +6 -6
  73. package/dist/tools/celldata/trace-feeders.js +6 -6
  74. package/dist/tools/celldata/write-cells.js +62 -12
  75. package/dist/tools/dimension-management/create-element-attribute.js +1 -1
  76. package/dist/tools/dimension-management/delete-hierarchy.js +3 -4
  77. package/dist/tools/dimension-management/get-element-attribute-values.js +7 -2
  78. package/dist/tools/dimension-management/list-element-attributes.js +1 -1
  79. package/dist/tools/dimension-management/update-element-attribute-value.js +8 -3
  80. package/dist/tools/dimension-management/update-element.js +14 -7
  81. package/dist/tools/fileops/container.d.ts +8 -0
  82. package/dist/tools/fileops/container.js +11 -0
  83. package/dist/tools/fileops/delete-file.js +4 -2
  84. package/dist/tools/fileops/get-file-content.js +45 -7
  85. package/dist/tools/fileops/list-files.js +5 -2
  86. package/dist/tools/fileops/search-files.js +4 -1
  87. package/dist/tools/fileops/upload-file.js +5 -2
  88. package/dist/tools/format.d.ts +1 -0
  89. package/dist/tools/format.js +7 -2
  90. package/dist/tools/index.js +0 -2
  91. package/dist/tools/model-building/check-cube-rule.js +3 -2
  92. package/dist/tools/model-building/clear-cube.js +35 -26
  93. package/dist/tools/model-building/set-cube-rules.js +13 -20
  94. package/dist/tools/model-building/unload-cube.js +1 -1
  95. package/dist/tools/operations/get-cube-stats.js +1 -1
  96. package/dist/tools/operations/get-transaction-log.js +1 -1
  97. package/dist/tools/operations/list-error-logs.js +27 -2
  98. package/dist/tools/schemas/items-fileops.d.ts +4 -0
  99. package/dist/tools/schemas/items-fileops.js +1 -0
  100. package/dist/tools/security/list-clients.js +5 -5
  101. package/dist/tools/security/list-groups.js +1 -1
  102. package/dist/tools/subsets/create-subset.js +9 -5
  103. package/dist/tools/subsets/delete-subset.js +8 -3
  104. package/dist/tools/subsets/update-subset.js +9 -9
  105. package/dist/tools/ti-development/diff-process-with-file.js +4 -29
  106. package/dist/tools/ti-development/diff-processes.js +9 -0
  107. package/dist/tools/ti-development/export-process-to-git.js +9 -7
  108. package/dist/tools/ti-development/export-process-to-pro.js +15 -8
  109. package/dist/tools/ti-development/import-pro-file.js +10 -21
  110. package/dist/tools/ti-development/import-process-from-git.js +8 -18
  111. package/dist/tools/ti-development/install-pro-bundle.js +2 -2
  112. package/dist/tools/ti-development/upsert-process.js +26 -5
  113. package/npm-shrinkwrap.json +465 -500
  114. package/package.json +14 -10
  115. package/dist/tools/dimension-management/move-element.d.ts +0 -2
  116. package/dist/tools/dimension-management/move-element.js +0 -28
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ffschrattenecker/tm1-mcp-server",
3
- "version": "7.0.1",
3
+ "version": "8.0.0",
4
4
  "description": "MCP server for IBM Planning Analytics / TM1 — full model lifecycle via REST API",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,6 +43,7 @@
43
43
  "test:unit": "vitest run tests/unit",
44
44
  "test:property": "vitest run tests/property",
45
45
  "test:live": "vitest run --config vitest.live.config.ts",
46
+ "test:live:for": "tsx scripts/run-live-for.ts",
46
47
  "test:live:nightly": "node scripts/run-live-nightly.mjs",
47
48
  "contracts:record": "node scripts/record-wire-contracts.mjs",
48
49
  "contracts:verify": "node scripts/record-wire-contracts.mjs tm1-test --verify",
@@ -58,14 +59,16 @@
58
59
  "lint:tool-registration": "node scripts/check-tool-registration.mjs",
59
60
  "lint:input-naming": "node scripts/check-no-bare-name-input.mjs",
60
61
  "lint:mutation-envelope": "node scripts/check-mutation-envelope.mjs",
62
+ "lint:no-local-enc": "node scripts/check-no-local-enc.mjs",
61
63
  "lint:format": "prettier --check .",
62
64
  "format": "prettier --write .",
63
- "verify": "npm run typecheck && npm run typecheck:tests && npm run lint:no-flat-api && npm run lint:output-schema-budget && npm run lint:tool-surface-budget && npm run lint:tool-registration && npm run lint:input-naming && npm run lint:mutation-envelope && npm run lint:format && npm run lint:eslint && npm run coverage:check",
65
+ "audit:prod": "npm audit --omit=dev --audit-level=high",
66
+ "verify": "npm run audit:prod && npm run typecheck && npm run typecheck:tests && npm run lint:no-flat-api && npm run lint:output-schema-budget && npm run lint:tool-surface-budget && npm run lint:tool-registration && npm run lint:input-naming && npm run lint:mutation-envelope && npm run lint:no-local-enc && npm run lint:format && npm run lint:eslint && npm run coverage:check",
64
67
  "tools:list": "node scripts/gen-tool-list.mjs",
65
68
  "tools:update-readme": "node scripts/gen-tool-list.mjs --write-readme",
66
69
  "lint:eslint": "eslint .",
67
70
  "measure:tools": "node scripts/measure-tool-surface.mjs",
68
- "lint:tool-surface-budget": "node scripts/measure-tool-surface.mjs --top 0 --budget 133000"
71
+ "lint:tool-surface-budget": "node scripts/measure-tool-surface.mjs --top 0 --budget 140000"
69
72
  },
70
73
  "keywords": [
71
74
  "mcp",
@@ -78,22 +81,23 @@
78
81
  "node": ">=22.19.0"
79
82
  },
80
83
  "overrides": {
81
- "fast-uri": "^3.1.5",
84
+ "fast-uri": "^4.2.1",
82
85
  "ip-address": "^10.4.0"
83
86
  },
84
87
  "dependencies": {
85
- "@modelcontextprotocol/sdk": "1.30.0",
86
- "dotenv": "^17.4.1",
88
+ "@modelcontextprotocol/sdk": "1.30.1",
89
+ "dotenv": "^18.0.0",
87
90
  "pino": "^10.3.1",
91
+ "regexp-tree": "^0.1.27",
88
92
  "safe-regex": "^2.1.1",
89
- "undici": "^7.29.0",
90
- "zod": "4.4.3"
93
+ "undici": "^8.10.2",
94
+ "zod": "4.6.5"
91
95
  },
92
96
  "devDependencies": {
93
97
  "@eslint/js": "^10.0.1",
94
98
  "@types/node": "^26.1.1",
95
99
  "@types/safe-regex": "^1.1.6",
96
- "@vitest/coverage-v8": "^4.1.10",
100
+ "@vitest/coverage-v8": "^5.0.1",
97
101
  "eslint": "^10.8.0",
98
102
  "fast-check": "^4.9.0",
99
103
  "pino-pretty": "^13.1.3",
@@ -101,7 +105,7 @@
101
105
  "tsx": "^4.21.0",
102
106
  "typescript": "^6.0.3",
103
107
  "typescript-eslint": "^8.65.0",
104
- "vitest": "^4.1.10"
108
+ "vitest": "^5.0.1"
105
109
  },
106
110
  "publishConfig": {
107
111
  "access": "public"
@@ -1,2 +0,0 @@
1
- export declare const registerMoveElement: import("../define-tool.js").ToolRegistrar;
2
- //# sourceMappingURL=move-element.d.ts.map
@@ -1,28 +0,0 @@
1
- import { z } from "zod";
2
- import { actionResponse } from "../format.js";
3
- import { MutationResultSchema } from "../schemas/items.js";
4
- import { WRITE } from "../annotations.js";
5
- import { defineTool } from "../define-tool.js";
6
- import { HIERARCHY_NAME_OPTIONAL, resolveHierarchy } from "../hierarchy.js";
7
- export const registerMoveElement = defineTool({
8
- name: "tm1_move_element",
9
- description: "Move an element to a new parent within a TM1 dimension hierarchy",
10
- annotations: WRITE,
11
- output: MutationResultSchema,
12
- input: {
13
- dimensionName: z.string().describe("Name of the dimension"),
14
- ...HIERARCHY_NAME_OPTIONAL,
15
- elementName: z.string().describe("Name of the element to move"),
16
- newParent: z.string().describe("Name of the new parent element"),
17
- weight: z
18
- .number()
19
- .optional()
20
- .describe("Weight for the parent-child relationship (default: 1)"),
21
- },
22
- handler: async ({ dimensionName, hierarchyName, elementName, newParent, weight }, tm1Client) => {
23
- const hierarchy = resolveHierarchy(dimensionName, hierarchyName);
24
- await tm1Client.elements.move(dimensionName, hierarchy, elementName, newParent, weight);
25
- return actionResponse({ success: true, elementName, newParent });
26
- },
27
- });
28
- //# sourceMappingURL=move-element.js.map