@ffschrattenecker/tm1-mcp-server 6.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 (475) hide show
  1. package/CHANGELOG.md +1211 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +34 -0
  4. package/README.md +276 -0
  5. package/dist/config.d.ts +35 -0
  6. package/dist/config.js +238 -0
  7. package/dist/http-transport.d.ts +8 -0
  8. package/dist/http-transport.js +132 -0
  9. package/dist/index.d.ts +18 -0
  10. package/dist/index.js +164 -0
  11. package/dist/lib/callgraph/callGraph.d.ts +124 -0
  12. package/dist/lib/callgraph/callGraph.js +334 -0
  13. package/dist/lib/callgraph/choreGraph.d.ts +23 -0
  14. package/dist/lib/callgraph/choreGraph.js +102 -0
  15. package/dist/lib/callgraph/dataFlow.d.ts +74 -0
  16. package/dist/lib/callgraph/dataFlow.js +271 -0
  17. package/dist/lib/callgraph/datasourceMembership.d.ts +31 -0
  18. package/dist/lib/callgraph/datasourceMembership.js +142 -0
  19. package/dist/lib/callgraph/lintTypes.d.ts +28 -0
  20. package/dist/lib/callgraph/lintTypes.js +2 -0
  21. package/dist/lib/callgraph/mdxMembers.d.ts +29 -0
  22. package/dist/lib/callgraph/mdxMembers.js +97 -0
  23. package/dist/lib/callgraph/referenceIndex.d.ts +179 -0
  24. package/dist/lib/callgraph/referenceIndex.js +584 -0
  25. package/dist/lib/callgraph/rulesLinter.d.ts +55 -0
  26. package/dist/lib/callgraph/rulesLinter.js +776 -0
  27. package/dist/lib/callgraph/rulesParser.d.ts +26 -0
  28. package/dist/lib/callgraph/rulesParser.js +71 -0
  29. package/dist/lib/callgraph/subsetUsage.d.ts +16 -0
  30. package/dist/lib/callgraph/subsetUsage.js +134 -0
  31. package/dist/lib/callgraph/tiParser.d.ts +21 -0
  32. package/dist/lib/callgraph/tiParser.js +672 -0
  33. package/dist/lib/callgraph/tiSignatures.d.ts +32 -0
  34. package/dist/lib/callgraph/tiSignatures.js +6185 -0
  35. package/dist/lib/callgraph/tm1-adapter.d.ts +32 -0
  36. package/dist/lib/callgraph/tm1-adapter.js +159 -0
  37. package/dist/lib/callgraph/types.d.ts +53 -0
  38. package/dist/lib/callgraph/types.js +2 -0
  39. package/dist/lib/callgraph/variableEnv.d.ts +86 -0
  40. package/dist/lib/callgraph/variableEnv.js +214 -0
  41. package/dist/lib/cell-address.d.ts +12 -0
  42. package/dist/lib/cell-address.js +71 -0
  43. package/dist/lib/complexity/antipatterns.d.ts +22 -0
  44. package/dist/lib/complexity/antipatterns.js +302 -0
  45. package/dist/lib/complexity/comment-classifier.d.ts +24 -0
  46. package/dist/lib/complexity/comment-classifier.js +43 -0
  47. package/dist/lib/complexity/cross-process.d.ts +78 -0
  48. package/dist/lib/complexity/cross-process.js +114 -0
  49. package/dist/lib/complexity/process-metrics.d.ts +78 -0
  50. package/dist/lib/complexity/process-metrics.js +278 -0
  51. package/dist/lib/complexity/rules-metrics.d.ts +31 -0
  52. package/dist/lib/complexity/rules-metrics.js +99 -0
  53. package/dist/lib/concurrency.d.ts +11 -0
  54. package/dist/lib/concurrency.js +27 -0
  55. package/dist/lib/control-name.d.ts +10 -0
  56. package/dist/lib/control-name.js +10 -0
  57. package/dist/lib/coordinate-error.d.ts +3 -0
  58. package/dist/lib/coordinate-error.js +29 -0
  59. package/dist/lib/credential-format.d.ts +23 -0
  60. package/dist/lib/credential-format.js +25 -0
  61. package/dist/lib/cube-stats/fetcher.d.ts +106 -0
  62. package/dist/lib/cube-stats/fetcher.js +194 -0
  63. package/dist/lib/feeders/brackets.d.ts +47 -0
  64. package/dist/lib/feeders/brackets.js +195 -0
  65. package/dist/lib/feeders/element-type-cache.d.ts +42 -0
  66. package/dist/lib/feeders/element-type-cache.js +86 -0
  67. package/dist/lib/feeders/static-heuristics.d.ts +101 -0
  68. package/dist/lib/feeders/static-heuristics.js +202 -0
  69. package/dist/lib/git-process.d.ts +67 -0
  70. package/dist/lib/git-process.js +243 -0
  71. package/dist/lib/mask-secrets.d.ts +10 -0
  72. package/dist/lib/mask-secrets.js +99 -0
  73. package/dist/lib/mdx.d.ts +3 -0
  74. package/dist/lib/mdx.js +13 -0
  75. package/dist/lib/naming/odata-filter.d.ts +15 -0
  76. package/dist/lib/naming/odata-filter.js +81 -0
  77. package/dist/lib/naming/rules.d.ts +34 -0
  78. package/dist/lib/naming/rules.js +215 -0
  79. package/dist/lib/pro-parser.d.ts +19 -0
  80. package/dist/lib/pro-parser.js +260 -0
  81. package/dist/lib/pro-serializer.d.ts +19 -0
  82. package/dist/lib/pro-serializer.js +170 -0
  83. package/dist/lib/process-parts-schema.d.ts +45 -0
  84. package/dist/lib/process-parts-schema.js +46 -0
  85. package/dist/lib/process-refs.d.ts +88 -0
  86. package/dist/lib/process-refs.js +441 -0
  87. package/dist/lib/rules-outline.d.ts +29 -0
  88. package/dist/lib/rules-outline.js +68 -0
  89. package/dist/lib/rules-patch.d.ts +6 -0
  90. package/dist/lib/rules-patch.js +59 -0
  91. package/dist/lib/safe-regex.d.ts +15 -0
  92. package/dist/lib/safe-regex.js +37 -0
  93. package/dist/lib/sample-cells.d.ts +48 -0
  94. package/dist/lib/sample-cells.js +146 -0
  95. package/dist/lib/slim-json-schema.d.ts +20 -0
  96. package/dist/lib/slim-json-schema.js +68 -0
  97. package/dist/lib/strip-comments.d.ts +23 -0
  98. package/dist/lib/strip-comments.js +61 -0
  99. package/dist/lib/tm1-events.d.ts +16 -0
  100. package/dist/lib/tm1-events.js +29 -0
  101. package/dist/lib/v12-compat/deprecated-ti.d.ts +17 -0
  102. package/dist/lib/v12-compat/deprecated-ti.js +257 -0
  103. package/dist/lib/v12-compat/scanner.d.ts +10 -0
  104. package/dist/lib/v12-compat/scanner.js +43 -0
  105. package/dist/lib/variables-ui-data.d.ts +26 -0
  106. package/dist/lib/variables-ui-data.js +77 -0
  107. package/dist/load-env.d.ts +2 -0
  108. package/dist/load-env.js +29 -0
  109. package/dist/logger.d.ts +4 -0
  110. package/dist/logger.js +60 -0
  111. package/dist/prompts/index.d.ts +3 -0
  112. package/dist/prompts/index.js +141 -0
  113. package/dist/resources/index.d.ts +5 -0
  114. package/dist/resources/index.js +237 -0
  115. package/dist/resources/list-handler.d.ts +40 -0
  116. package/dist/resources/list-handler.js +86 -0
  117. package/dist/resources/subscriptions.d.ts +19 -0
  118. package/dist/resources/subscriptions.js +80 -0
  119. package/dist/schemas/cells.d.ts +17 -0
  120. package/dist/schemas/cells.js +13 -0
  121. package/dist/schemas/common.d.ts +16 -0
  122. package/dist/schemas/common.js +14 -0
  123. package/dist/schemas/index.d.ts +10 -0
  124. package/dist/schemas/index.js +23 -0
  125. package/dist/schemas/metadata.d.ts +70 -0
  126. package/dist/schemas/metadata.js +47 -0
  127. package/dist/schemas/monitoring.d.ts +95 -0
  128. package/dist/schemas/monitoring.js +69 -0
  129. package/dist/schemas/processes.d.ts +74 -0
  130. package/dist/schemas/processes.js +66 -0
  131. package/dist/schemas/scheduling.d.ts +13 -0
  132. package/dist/schemas/scheduling.js +13 -0
  133. package/dist/schemas/security.d.ts +19 -0
  134. package/dist/schemas/security.js +16 -0
  135. package/dist/schemas/subsets.d.ts +12 -0
  136. package/dist/schemas/subsets.js +12 -0
  137. package/dist/schemas/views.d.ts +9 -0
  138. package/dist/schemas/views.js +9 -0
  139. package/dist/session-manager.d.ts +79 -0
  140. package/dist/session-manager.js +281 -0
  141. package/dist/tm1-client/connection/profile.d.ts +13 -0
  142. package/dist/tm1-client/connection/profile.js +99 -0
  143. package/dist/tm1-client/dispatcher.d.ts +5 -0
  144. package/dist/tm1-client/dispatcher.js +31 -0
  145. package/dist/tm1-client/http.d.ts +81 -0
  146. package/dist/tm1-client/http.js +547 -0
  147. package/dist/tm1-client/services/batch-service.d.ts +123 -0
  148. package/dist/tm1-client/services/batch-service.js +455 -0
  149. package/dist/tm1-client/services/cell-service.d.ts +71 -0
  150. package/dist/tm1-client/services/cell-service.js +333 -0
  151. package/dist/tm1-client/services/cellset-transform.d.ts +26 -0
  152. package/dist/tm1-client/services/cellset-transform.js +80 -0
  153. package/dist/tm1-client/services/chore-service.d.ts +68 -0
  154. package/dist/tm1-client/services/chore-service.js +179 -0
  155. package/dist/tm1-client/services/chore-status.d.ts +11 -0
  156. package/dist/tm1-client/services/chore-status.js +127 -0
  157. package/dist/tm1-client/services/cube-service.d.ts +134 -0
  158. package/dist/tm1-client/services/cube-service.js +294 -0
  159. package/dist/tm1-client/services/dimension-service.d.ts +118 -0
  160. package/dist/tm1-client/services/dimension-service.js +249 -0
  161. package/dist/tm1-client/services/element-service.d.ts +245 -0
  162. package/dist/tm1-client/services/element-service.js +809 -0
  163. package/dist/tm1-client/services/fallback.d.ts +44 -0
  164. package/dist/tm1-client/services/fallback.js +72 -0
  165. package/dist/tm1-client/services/file-service.d.ts +53 -0
  166. package/dist/tm1-client/services/file-service.js +218 -0
  167. package/dist/tm1-client/services/hierarchy-service.d.ts +129 -0
  168. package/dist/tm1-client/services/hierarchy-service.js +332 -0
  169. package/dist/tm1-client/services/monitoring-service.d.ts +34 -0
  170. package/dist/tm1-client/services/monitoring-service.js +123 -0
  171. package/dist/tm1-client/services/odata-page.d.ts +71 -0
  172. package/dist/tm1-client/services/odata-page.js +87 -0
  173. package/dist/tm1-client/services/process-service.d.ts +278 -0
  174. package/dist/tm1-client/services/process-service.js +874 -0
  175. package/dist/tm1-client/services/process-status.d.ts +21 -0
  176. package/dist/tm1-client/services/process-status.js +89 -0
  177. package/dist/tm1-client/services/security-service.d.ts +50 -0
  178. package/dist/tm1-client/services/security-service.js +93 -0
  179. package/dist/tm1-client/services/server-service.d.ts +116 -0
  180. package/dist/tm1-client/services/server-service.js +504 -0
  181. package/dist/tm1-client/services/subset-service.d.ts +37 -0
  182. package/dist/tm1-client/services/subset-service.js +122 -0
  183. package/dist/tm1-client/services/view-service.d.ts +46 -0
  184. package/dist/tm1-client/services/view-service.js +287 -0
  185. package/dist/tm1-client.d.ts +56 -0
  186. package/dist/tm1-client.js +126 -0
  187. package/dist/tools/analysis/analyze-callgraph.d.ts +28 -0
  188. package/dist/tools/analysis/analyze-callgraph.js +350 -0
  189. package/dist/tools/analysis/analyze-chore-graph.d.ts +2 -0
  190. package/dist/tools/analysis/analyze-chore-graph.js +148 -0
  191. package/dist/tools/analysis/analyze-object-usage.d.ts +2 -0
  192. package/dist/tools/analysis/analyze-object-usage.js +143 -0
  193. package/dist/tools/analysis/audit-complexity.d.ts +2 -0
  194. package/dist/tools/analysis/audit-complexity.js +255 -0
  195. package/dist/tools/analysis/audit-feeders.d.ts +2 -0
  196. package/dist/tools/analysis/audit-feeders.js +417 -0
  197. package/dist/tools/analysis/audit-naming.d.ts +2 -0
  198. package/dist/tools/analysis/audit-naming.js +379 -0
  199. package/dist/tools/analysis/check-v12-readiness.d.ts +2 -0
  200. package/dist/tools/analysis/check-v12-readiness.js +136 -0
  201. package/dist/tools/analysis/find-orphan-dimensions.d.ts +2 -0
  202. package/dist/tools/analysis/find-orphan-dimensions.js +55 -0
  203. package/dist/tools/analysis/invalidate-callgraph-cache.d.ts +2 -0
  204. package/dist/tools/analysis/invalidate-callgraph-cache.js +40 -0
  205. package/dist/tools/analysis/trace-data-flow.d.ts +2 -0
  206. package/dist/tools/analysis/trace-data-flow.js +138 -0
  207. package/dist/tools/annotations.d.ts +12 -0
  208. package/dist/tools/annotations.js +61 -0
  209. package/dist/tools/celldata/check-feeders.d.ts +2 -0
  210. package/dist/tools/celldata/check-feeders.js +48 -0
  211. package/dist/tools/celldata/check-writable-coords.d.ts +2 -0
  212. package/dist/tools/celldata/check-writable-coords.js +126 -0
  213. package/dist/tools/celldata/execute-mdx.d.ts +17 -0
  214. package/dist/tools/celldata/execute-mdx.js +126 -0
  215. package/dist/tools/celldata/get-cell-value.d.ts +2 -0
  216. package/dist/tools/celldata/get-cell-value.js +30 -0
  217. package/dist/tools/celldata/get-view-definition.d.ts +2 -0
  218. package/dist/tools/celldata/get-view-definition.js +29 -0
  219. package/dist/tools/celldata/get-view.d.ts +2 -0
  220. package/dist/tools/celldata/get-view.js +55 -0
  221. package/dist/tools/celldata/sample-cells.d.ts +2 -0
  222. package/dist/tools/celldata/sample-cells.js +101 -0
  223. package/dist/tools/celldata/trace-cell-calculation.d.ts +2 -0
  224. package/dist/tools/celldata/trace-cell-calculation.js +53 -0
  225. package/dist/tools/celldata/trace-feeders.d.ts +2 -0
  226. package/dist/tools/celldata/trace-feeders.js +44 -0
  227. package/dist/tools/celldata/write-cells.d.ts +2 -0
  228. package/dist/tools/celldata/write-cells.js +65 -0
  229. package/dist/tools/confirm.d.ts +10 -0
  230. package/dist/tools/confirm.js +64 -0
  231. package/dist/tools/define-tool.d.ts +51 -0
  232. package/dist/tools/define-tool.js +49 -0
  233. package/dist/tools/dimension-management/bulk-upsert-elements.d.ts +2 -0
  234. package/dist/tools/dimension-management/bulk-upsert-elements.js +103 -0
  235. package/dist/tools/dimension-management/create-dimension.d.ts +2 -0
  236. package/dist/tools/dimension-management/create-dimension.js +22 -0
  237. package/dist/tools/dimension-management/create-element-attribute.d.ts +2 -0
  238. package/dist/tools/dimension-management/create-element-attribute.js +26 -0
  239. package/dist/tools/dimension-management/create-element.d.ts +2 -0
  240. package/dist/tools/dimension-management/create-element.js +31 -0
  241. package/dist/tools/dimension-management/create-hierarchy.d.ts +2 -0
  242. package/dist/tools/dimension-management/create-hierarchy.js +22 -0
  243. package/dist/tools/dimension-management/delete-dimension.d.ts +2 -0
  244. package/dist/tools/dimension-management/delete-dimension.js +25 -0
  245. package/dist/tools/dimension-management/delete-element.d.ts +2 -0
  246. package/dist/tools/dimension-management/delete-element.js +26 -0
  247. package/dist/tools/dimension-management/delete-elements.d.ts +2 -0
  248. package/dist/tools/dimension-management/delete-elements.js +44 -0
  249. package/dist/tools/dimension-management/delete-hierarchy.d.ts +2 -0
  250. package/dist/tools/dimension-management/delete-hierarchy.js +35 -0
  251. package/dist/tools/dimension-management/get-element-attribute-values.d.ts +2 -0
  252. package/dist/tools/dimension-management/get-element-attribute-values.js +77 -0
  253. package/dist/tools/dimension-management/list-element-attributes.d.ts +2 -0
  254. package/dist/tools/dimension-management/list-element-attributes.js +31 -0
  255. package/dist/tools/dimension-management/move-element.d.ts +2 -0
  256. package/dist/tools/dimension-management/move-element.js +28 -0
  257. package/dist/tools/dimension-management/update-element-attribute-value.d.ts +2 -0
  258. package/dist/tools/dimension-management/update-element-attribute-value.js +80 -0
  259. package/dist/tools/dimension-management/update-element.d.ts +2 -0
  260. package/dist/tools/dimension-management/update-element.js +35 -0
  261. package/dist/tools/error-format.d.ts +22 -0
  262. package/dist/tools/error-format.js +130 -0
  263. package/dist/tools/fileops/delete-file.d.ts +2 -0
  264. package/dist/tools/fileops/delete-file.js +32 -0
  265. package/dist/tools/fileops/get-file-content.d.ts +2 -0
  266. package/dist/tools/fileops/get-file-content.js +76 -0
  267. package/dist/tools/fileops/list-files.d.ts +2 -0
  268. package/dist/tools/fileops/list-files.js +43 -0
  269. package/dist/tools/fileops/search-files.d.ts +2 -0
  270. package/dist/tools/fileops/search-files.js +76 -0
  271. package/dist/tools/fileops/upload-file.d.ts +2 -0
  272. package/dist/tools/fileops/upload-file.js +69 -0
  273. package/dist/tools/format.d.ts +57 -0
  274. package/dist/tools/format.js +157 -0
  275. package/dist/tools/hierarchy.d.ts +6 -0
  276. package/dist/tools/hierarchy.js +27 -0
  277. package/dist/tools/index.d.ts +4 -0
  278. package/dist/tools/index.js +263 -0
  279. package/dist/tools/local-file.d.ts +16 -0
  280. package/dist/tools/local-file.js +88 -0
  281. package/dist/tools/metadata/get-ancestors.d.ts +2 -0
  282. package/dist/tools/metadata/get-ancestors.js +36 -0
  283. package/dist/tools/metadata/get-descendants.d.ts +2 -0
  284. package/dist/tools/metadata/get-descendants.js +64 -0
  285. package/dist/tools/metadata/get-hierarchy.d.ts +2 -0
  286. package/dist/tools/metadata/get-hierarchy.js +130 -0
  287. package/dist/tools/metadata/list-chores.d.ts +2 -0
  288. package/dist/tools/metadata/list-chores.js +62 -0
  289. package/dist/tools/metadata/list-cubes.d.ts +2 -0
  290. package/dist/tools/metadata/list-cubes.js +128 -0
  291. package/dist/tools/metadata/list-dimensions.d.ts +2 -0
  292. package/dist/tools/metadata/list-dimensions.js +131 -0
  293. package/dist/tools/metadata/list-processes-grouped.d.ts +2 -0
  294. package/dist/tools/metadata/list-processes-grouped.js +96 -0
  295. package/dist/tools/metadata/list-processes.d.ts +2 -0
  296. package/dist/tools/metadata/list-processes.js +108 -0
  297. package/dist/tools/metadata/resolve-default-members.d.ts +2 -0
  298. package/dist/tools/metadata/resolve-default-members.js +46 -0
  299. package/dist/tools/model-building/check-cube-rule.d.ts +2 -0
  300. package/dist/tools/model-building/check-cube-rule.js +51 -0
  301. package/dist/tools/model-building/clear-cube.d.ts +2 -0
  302. package/dist/tools/model-building/clear-cube.js +46 -0
  303. package/dist/tools/model-building/create-cube.d.ts +2 -0
  304. package/dist/tools/model-building/create-cube.js +34 -0
  305. package/dist/tools/model-building/delete-cube.d.ts +2 -0
  306. package/dist/tools/model-building/delete-cube.js +27 -0
  307. package/dist/tools/model-building/get-all-cube-rules.d.ts +2 -0
  308. package/dist/tools/model-building/get-all-cube-rules.js +149 -0
  309. package/dist/tools/model-building/get-cube-rules.d.ts +2 -0
  310. package/dist/tools/model-building/get-cube-rules.js +69 -0
  311. package/dist/tools/model-building/rules-source.d.ts +21 -0
  312. package/dist/tools/model-building/rules-source.js +49 -0
  313. package/dist/tools/model-building/search-rules.d.ts +2 -0
  314. package/dist/tools/model-building/search-rules.js +132 -0
  315. package/dist/tools/model-building/set-cube-rules.d.ts +2 -0
  316. package/dist/tools/model-building/set-cube-rules.js +81 -0
  317. package/dist/tools/model-building/unload-cube.d.ts +2 -0
  318. package/dist/tools/model-building/unload-cube.js +23 -0
  319. package/dist/tools/operations/diagnose-process-error.d.ts +2 -0
  320. package/dist/tools/operations/diagnose-process-error.js +178 -0
  321. package/dist/tools/operations/error-log-helpers.d.ts +25 -0
  322. package/dist/tools/operations/error-log-helpers.js +57 -0
  323. package/dist/tools/operations/get-audit-log.d.ts +2 -0
  324. package/dist/tools/operations/get-audit-log.js +70 -0
  325. package/dist/tools/operations/get-cube-stats.d.ts +2 -0
  326. package/dist/tools/operations/get-cube-stats.js +107 -0
  327. package/dist/tools/operations/get-error-log-content.d.ts +2 -0
  328. package/dist/tools/operations/get-error-log-content.js +164 -0
  329. package/dist/tools/operations/get-jobs.d.ts +3 -0
  330. package/dist/tools/operations/get-jobs.js +51 -0
  331. package/dist/tools/operations/get-message-log.d.ts +2 -0
  332. package/dist/tools/operations/get-message-log.js +63 -0
  333. package/dist/tools/operations/get-server-info.d.ts +2 -0
  334. package/dist/tools/operations/get-server-info.js +180 -0
  335. package/dist/tools/operations/get-server-state.d.ts +2 -0
  336. package/dist/tools/operations/get-server-state.js +129 -0
  337. package/dist/tools/operations/get-sessions.d.ts +2 -0
  338. package/dist/tools/operations/get-sessions.js +76 -0
  339. package/dist/tools/operations/get-threads.d.ts +3 -0
  340. package/dist/tools/operations/get-threads.js +50 -0
  341. package/dist/tools/operations/get-transaction-log.d.ts +2 -0
  342. package/dist/tools/operations/get-transaction-log.js +63 -0
  343. package/dist/tools/operations/list-error-logs.d.ts +8 -0
  344. package/dist/tools/operations/list-error-logs.js +157 -0
  345. package/dist/tools/operations/save-data.d.ts +2 -0
  346. package/dist/tools/operations/save-data.js +50 -0
  347. package/dist/tools/pagination.d.ts +32 -0
  348. package/dist/tools/pagination.js +116 -0
  349. package/dist/tools/scheduling/create-chore.d.ts +2 -0
  350. package/dist/tools/scheduling/create-chore.js +93 -0
  351. package/dist/tools/scheduling/delete-chore.d.ts +2 -0
  352. package/dist/tools/scheduling/delete-chore.js +22 -0
  353. package/dist/tools/scheduling/execute-chore.d.ts +2 -0
  354. package/dist/tools/scheduling/execute-chore.js +52 -0
  355. package/dist/tools/scheduling/toggle-chore.d.ts +2 -0
  356. package/dist/tools/scheduling/toggle-chore.js +22 -0
  357. package/dist/tools/scheduling/update-chore.d.ts +2 -0
  358. package/dist/tools/scheduling/update-chore.js +71 -0
  359. package/dist/tools/schemas/common.d.ts +10 -0
  360. package/dist/tools/schemas/common.js +23 -0
  361. package/dist/tools/schemas/items-analysis.d.ts +394 -0
  362. package/dist/tools/schemas/items-analysis.js +419 -0
  363. package/dist/tools/schemas/items-cells.d.ts +70 -0
  364. package/dist/tools/schemas/items-cells.js +65 -0
  365. package/dist/tools/schemas/items-common.d.ts +18 -0
  366. package/dist/tools/schemas/items-common.js +39 -0
  367. package/dist/tools/schemas/items-fileops.d.ts +11 -0
  368. package/dist/tools/schemas/items-fileops.js +13 -0
  369. package/dist/tools/schemas/items-metadata.d.ts +262 -0
  370. package/dist/tools/schemas/items-metadata.js +184 -0
  371. package/dist/tools/schemas/items-monitoring.d.ts +79 -0
  372. package/dist/tools/schemas/items-monitoring.js +78 -0
  373. package/dist/tools/schemas/items-processes.d.ts +279 -0
  374. package/dist/tools/schemas/items-processes.js +235 -0
  375. package/dist/tools/schemas/items-scheduling.d.ts +25 -0
  376. package/dist/tools/schemas/items-scheduling.js +26 -0
  377. package/dist/tools/schemas/items-security.d.ts +19 -0
  378. package/dist/tools/schemas/items-security.js +12 -0
  379. package/dist/tools/schemas/items-subsets.d.ts +2 -0
  380. package/dist/tools/schemas/items-subsets.js +4 -0
  381. package/dist/tools/schemas/items-views.d.ts +38 -0
  382. package/dist/tools/schemas/items-views.js +26 -0
  383. package/dist/tools/schemas/items.d.ts +12 -0
  384. package/dist/tools/schemas/items.js +23 -0
  385. package/dist/tools/schemas/markdown-capable.d.ts +21 -0
  386. package/dist/tools/schemas/markdown-capable.js +58 -0
  387. package/dist/tools/schemas/output-schema.d.ts +24 -0
  388. package/dist/tools/schemas/output-schema.js +25 -0
  389. package/dist/tools/security/assign-client-group.d.ts +2 -0
  390. package/dist/tools/security/assign-client-group.js +20 -0
  391. package/dist/tools/security/create-client.d.ts +2 -0
  392. package/dist/tools/security/create-client.js +28 -0
  393. package/dist/tools/security/delete-client.d.ts +2 -0
  394. package/dist/tools/security/delete-client.js +22 -0
  395. package/dist/tools/security/get-client.d.ts +2 -0
  396. package/dist/tools/security/get-client.js +20 -0
  397. package/dist/tools/security/list-clients.d.ts +2 -0
  398. package/dist/tools/security/list-clients.js +86 -0
  399. package/dist/tools/security/list-groups.d.ts +2 -0
  400. package/dist/tools/security/list-groups.js +43 -0
  401. package/dist/tools/security/remove-client-group.d.ts +2 -0
  402. package/dist/tools/security/remove-client-group.js +27 -0
  403. package/dist/tools/security/update-client.d.ts +2 -0
  404. package/dist/tools/security/update-client.js +22 -0
  405. package/dist/tools/subsets/create-subset.d.ts +2 -0
  406. package/dist/tools/subsets/create-subset.js +44 -0
  407. package/dist/tools/subsets/delete-subset.d.ts +2 -0
  408. package/dist/tools/subsets/delete-subset.js +26 -0
  409. package/dist/tools/subsets/get-subset.d.ts +2 -0
  410. package/dist/tools/subsets/get-subset.js +29 -0
  411. package/dist/tools/subsets/list-subsets.d.ts +2 -0
  412. package/dist/tools/subsets/list-subsets.js +36 -0
  413. package/dist/tools/subsets/update-subset.d.ts +2 -0
  414. package/dist/tools/subsets/update-subset.js +33 -0
  415. package/dist/tools/ti-development/check-process-code.d.ts +2 -0
  416. package/dist/tools/ti-development/check-process-code.js +96 -0
  417. package/dist/tools/ti-development/compile-process.d.ts +2 -0
  418. package/dist/tools/ti-development/compile-process.js +32 -0
  419. package/dist/tools/ti-development/copy-process.d.ts +2 -0
  420. package/dist/tools/ti-development/copy-process.js +32 -0
  421. package/dist/tools/ti-development/delete-process.d.ts +2 -0
  422. package/dist/tools/ti-development/delete-process.js +26 -0
  423. package/dist/tools/ti-development/diff-process-with-file.d.ts +2 -0
  424. package/dist/tools/ti-development/diff-process-with-file.js +208 -0
  425. package/dist/tools/ti-development/diff-processes.d.ts +2 -0
  426. package/dist/tools/ti-development/diff-processes.js +312 -0
  427. package/dist/tools/ti-development/execute-process.d.ts +8 -0
  428. package/dist/tools/ti-development/execute-process.js +109 -0
  429. package/dist/tools/ti-development/export-process-to-git.d.ts +2 -0
  430. package/dist/tools/ti-development/export-process-to-git.js +113 -0
  431. package/dist/tools/ti-development/export-process-to-pro.d.ts +2 -0
  432. package/dist/tools/ti-development/export-process-to-pro.js +117 -0
  433. package/dist/tools/ti-development/get-all-processes-code.d.ts +2 -0
  434. package/dist/tools/ti-development/get-all-processes-code.js +131 -0
  435. package/dist/tools/ti-development/get-process-code.d.ts +2 -0
  436. package/dist/tools/ti-development/get-process-code.js +100 -0
  437. package/dist/tools/ti-development/get-process-datasource.d.ts +2 -0
  438. package/dist/tools/ti-development/get-process-datasource.js +20 -0
  439. package/dist/tools/ti-development/get-process-parameters.d.ts +2 -0
  440. package/dist/tools/ti-development/get-process-parameters.js +25 -0
  441. package/dist/tools/ti-development/get-process-variables.d.ts +2 -0
  442. package/dist/tools/ti-development/get-process-variables.js +38 -0
  443. package/dist/tools/ti-development/get-process.d.ts +2 -0
  444. package/dist/tools/ti-development/get-process.js +163 -0
  445. package/dist/tools/ti-development/import-pro-file.d.ts +2 -0
  446. package/dist/tools/ti-development/import-pro-file.js +153 -0
  447. package/dist/tools/ti-development/import-process-from-git.d.ts +2 -0
  448. package/dist/tools/ti-development/import-process-from-git.js +198 -0
  449. package/dist/tools/ti-development/install-pro-bundle.d.ts +2 -0
  450. package/dist/tools/ti-development/install-pro-bundle.js +288 -0
  451. package/dist/tools/ti-development/preflight.d.ts +39 -0
  452. package/dist/tools/ti-development/preflight.js +56 -0
  453. package/dist/tools/ti-development/process-backup.d.ts +29 -0
  454. package/dist/tools/ti-development/process-backup.js +118 -0
  455. package/dist/tools/ti-development/search-code.d.ts +2 -0
  456. package/dist/tools/ti-development/search-code.js +208 -0
  457. package/dist/tools/ti-development/upsert-process.d.ts +2 -0
  458. package/dist/tools/ti-development/upsert-process.js +167 -0
  459. package/dist/tools/ti-development/validate-process-refs.d.ts +2 -0
  460. package/dist/tools/ti-development/validate-process-refs.js +73 -0
  461. package/dist/tools/views/create-mdx-view.d.ts +2 -0
  462. package/dist/tools/views/create-mdx-view.js +21 -0
  463. package/dist/tools/views/create-native-view.d.ts +2 -0
  464. package/dist/tools/views/create-native-view.js +81 -0
  465. package/dist/tools/views/delete-view.d.ts +2 -0
  466. package/dist/tools/views/delete-view.js +23 -0
  467. package/dist/tools/views/list-views.d.ts +2 -0
  468. package/dist/tools/views/list-views.js +32 -0
  469. package/dist/tools/with-annotations.d.ts +6 -0
  470. package/dist/tools/with-annotations.js +339 -0
  471. package/dist/types.d.ts +409 -0
  472. package/dist/types.js +91 -0
  473. package/dist/version.d.ts +4 -0
  474. package/dist/version.js +18 -0
  475. package/package.json +107 -0
@@ -0,0 +1,26 @@
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 registerCreateElementAttribute = defineTool({
8
+ name: "tm1_create_element_attribute",
9
+ description: "Create an element attribute definition (schema) on a TM1 hierarchy. For reproducible deployments prefer a TI process (DimensionElementInsert on the }ElementAttributes_{dim} control cube). Use this tool for ad-hoc / debugging scenarios or when explicitly requested.",
10
+ annotations: WRITE,
11
+ output: MutationResultSchema,
12
+ input: {
13
+ dimensionName: z.string().describe("Name of the TM1 dimension"),
14
+ ...HIERARCHY_NAME_OPTIONAL,
15
+ attributeName: z.string().describe("Name of the new attribute"),
16
+ attributeType: z
17
+ .enum(["Numeric", "String", "Alias"])
18
+ .describe("Attribute type: Numeric (ATTRN), String (ATTRS), or Alias"),
19
+ },
20
+ handler: async ({ dimensionName, hierarchyName, attributeName, attributeType }, tm1Client) => {
21
+ const hierarchy = resolveHierarchy(dimensionName, hierarchyName);
22
+ await tm1Client.elements.createAttribute(dimensionName, hierarchy, attributeName, attributeType);
23
+ return actionResponse({ success: true, attributeName, attributeType });
24
+ },
25
+ });
26
+ //# sourceMappingURL=create-element-attribute.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerCreateElement: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=create-element.d.ts.map
@@ -0,0 +1,31 @@
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
+ const elementSchema = z.object({
8
+ name: z.string().describe("Element name"),
9
+ type: z.enum(["Numeric", "String", "Consolidated"]).describe("Element type"),
10
+ components: z
11
+ .array(z.object({ name: z.string(), weight: z.number() }))
12
+ .optional()
13
+ .describe("Child components for consolidated elements"),
14
+ });
15
+ export const registerCreateElement = defineTool({
16
+ name: "tm1_create_element",
17
+ description: "Create a new element in a TM1 dimension hierarchy",
18
+ annotations: WRITE,
19
+ output: MutationResultSchema,
20
+ input: {
21
+ dimensionName: z.string().describe("Name of the dimension"),
22
+ ...HIERARCHY_NAME_OPTIONAL,
23
+ element: elementSchema.describe("Element definition with name, type and optional components"),
24
+ },
25
+ handler: async ({ dimensionName, hierarchyName, element }, tm1Client) => {
26
+ const hierarchy = resolveHierarchy(dimensionName, hierarchyName);
27
+ await tm1Client.elements.create(dimensionName, hierarchy, element);
28
+ return actionResponse({ success: true, elementName: element.name });
29
+ },
30
+ });
31
+ //# sourceMappingURL=create-element.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerCreateHierarchy: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=create-hierarchy.d.ts.map
@@ -0,0 +1,22 @@
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
+ export const registerCreateHierarchy = defineTool({
7
+ name: "tm1_create_hierarchy",
8
+ description: "Create a new (alternate) hierarchy inside an existing dimension. The dimension's default hierarchy already has the same name as the dimension — use this for additional rollup structures.",
9
+ annotations: WRITE,
10
+ output: MutationResultSchema,
11
+ input: {
12
+ dimensionName: z.string().describe("Existing dimension name"),
13
+ hierarchyName: z
14
+ .string()
15
+ .describe("New hierarchy name (must differ from existing hierarchies)"),
16
+ },
17
+ handler: async ({ dimensionName, hierarchyName }, tm1Client) => {
18
+ await tm1Client.hierarchies.create(dimensionName, hierarchyName);
19
+ return actionResponse({ success: true, dimensionName, hierarchyName });
20
+ },
21
+ });
22
+ //# sourceMappingURL=create-hierarchy.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerDeleteDimension: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=delete-dimension.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { actionResponse } from "../format.js";
3
+ import { CONFIRM_SCHEMA, requireConfirm } from "../confirm.js";
4
+ import { DESTRUCTIVE } from "../annotations.js";
5
+ import { MutationResultSchema } from "../schemas/items.js";
6
+ import { defineTool } from "../define-tool.js";
7
+ export const registerDeleteDimension = defineTool({
8
+ name: "tm1_delete_dimension",
9
+ description: [
10
+ "Delete a TM1 dimension and all its hierarchies. Warning: fails if the dimension is used in a cube.",
11
+ "Before: tm1_find_orphan_dimensions to confirm the dimension is unused, or tm1_analyze_object_usage for a targeted check.",
12
+ ],
13
+ annotations: DESTRUCTIVE,
14
+ output: MutationResultSchema,
15
+ input: {
16
+ dimensionName: z.string().describe("Dimension name (case-sensitive)"),
17
+ ...CONFIRM_SCHEMA,
18
+ },
19
+ handler: async ({ dimensionName, confirm }, tm1Client) => {
20
+ requireConfirm(confirm, dimensionName, "dimension");
21
+ await tm1Client.dimensions.delete(dimensionName);
22
+ return actionResponse({ success: true, dimensionName });
23
+ },
24
+ });
25
+ //# sourceMappingURL=delete-dimension.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerDeleteElement: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=delete-element.d.ts.map
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ import { CONFIRM_SCHEMA, requireConfirm } from "../confirm.js";
3
+ import { actionResponse } from "../format.js";
4
+ import { DESTRUCTIVE } from "../annotations.js";
5
+ import { MutationResultSchema } from "../schemas/items.js";
6
+ import { defineTool } from "../define-tool.js";
7
+ import { HIERARCHY_NAME_OPTIONAL, resolveHierarchy } from "../hierarchy.js";
8
+ export const registerDeleteElement = defineTool({
9
+ name: "tm1_delete_element",
10
+ description: "Delete an element from a TM1 dimension hierarchy. Irreversible — pass confirm=<element name verbatim>.",
11
+ annotations: DESTRUCTIVE,
12
+ output: MutationResultSchema,
13
+ input: {
14
+ dimensionName: z.string().describe("Name of the dimension"),
15
+ ...HIERARCHY_NAME_OPTIONAL,
16
+ elementName: z.string().describe("Name of the element to delete"),
17
+ ...CONFIRM_SCHEMA,
18
+ },
19
+ handler: async ({ dimensionName, hierarchyName, elementName, confirm }, tm1Client) => {
20
+ const hierarchy = resolveHierarchy(dimensionName, hierarchyName);
21
+ requireConfirm(confirm, elementName, "element");
22
+ await tm1Client.elements.delete(dimensionName, hierarchy, elementName);
23
+ return actionResponse({ success: true, elementName });
24
+ },
25
+ });
26
+ //# sourceMappingURL=delete-element.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerDeleteElements: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=delete-elements.d.ts.map
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import { CONFIRM_SCHEMA, requireConfirm } from "../confirm.js";
3
+ import { actionResponse } from "../format.js";
4
+ import { DESTRUCTIVE } from "../annotations.js";
5
+ import { MutationResultSchema } from "../schemas/items.js";
6
+ import { defineTool } from "../define-tool.js";
7
+ import { HIERARCHY_NAME_OPTIONAL, resolveHierarchy } from "../hierarchy.js";
8
+ export const registerDeleteElements = defineTool({
9
+ name: "tm1_delete_elements",
10
+ description: [
11
+ "Delete many elements from one TM1 dimension hierarchy in a single call ($batch where the server supports it).",
12
+ "Not all-or-nothing: each element reports deleted or its error, and success is true only when every one was deleted. Irreversible — pass confirm=<dimension name verbatim>.",
13
+ "For one element tm1_delete_element works too.",
14
+ ],
15
+ annotations: DESTRUCTIVE,
16
+ output: MutationResultSchema,
17
+ input: {
18
+ dimensionName: z.string().describe("Name of the dimension"),
19
+ ...HIERARCHY_NAME_OPTIONAL,
20
+ elementNames: z
21
+ .array(z.string())
22
+ .min(1)
23
+ .max(5000)
24
+ .describe("Elements to delete"),
25
+ ...CONFIRM_SCHEMA,
26
+ },
27
+ handler: async ({ dimensionName, hierarchyName, elementNames, confirm }, tm1Client) => {
28
+ requireConfirm(confirm, dimensionName, "dimension");
29
+ const hierarchy = resolveHierarchy(dimensionName, hierarchyName);
30
+ const results = await tm1Client.elements.deleteMany(dimensionName, hierarchy, elementNames);
31
+ const failures = results.filter((r) => !r.deleted);
32
+ return actionResponse({
33
+ success: failures.length === 0,
34
+ dimensionName,
35
+ hierarchyName: hierarchy,
36
+ deleted: results.length - failures.length,
37
+ failed: failures.length,
38
+ // Only the failures carry detail; listing every deleted name back would
39
+ // just echo the request.
40
+ failures,
41
+ });
42
+ },
43
+ });
44
+ //# sourceMappingURL=delete-elements.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerDeleteHierarchy: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=delete-hierarchy.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ import { CONFIRM_SCHEMA, requireConfirm } from "../confirm.js";
3
+ import { actionResponse } from "../format.js";
4
+ import { DESTRUCTIVE } from "../annotations.js";
5
+ import { MutationResultSchema } from "../schemas/items.js";
6
+ import { defineTool } from "../define-tool.js";
7
+ import { TM1Error, TM1ErrorCode } from "../../types.js";
8
+ // TM1 names ignore case and spaces.
9
+ const norm = (s) => s.toLowerCase().replace(/ /g, "");
10
+ export const registerDeleteHierarchy = defineTool({
11
+ name: "tm1_delete_hierarchy",
12
+ description: "Delete a hierarchy from a dimension. The default (dimension-named) hierarchy cannot be deleted — use tm1_delete_dimension for that. Irreversible — pass confirm=<hierarchy name verbatim>.",
13
+ annotations: DESTRUCTIVE,
14
+ output: MutationResultSchema,
15
+ input: {
16
+ dimensionName: z.string().describe("Dimension name"),
17
+ hierarchyName: z.string().describe("Hierarchy name to delete"),
18
+ ...CONFIRM_SCHEMA,
19
+ },
20
+ handler: async ({ dimensionName, hierarchyName, confirm }, tm1Client) => {
21
+ requireConfirm(confirm, hierarchyName, "hierarchy");
22
+ // TM1 does NOT refuse this itself: 11.8 answers 204 and leaves a dimension
23
+ // listed with no hierarchies at all (verified live). Refuse it here.
24
+ if (norm(hierarchyName) === norm(dimensionName)) {
25
+ throw new TM1Error({
26
+ code: TM1ErrorCode.VALIDATION_ERROR,
27
+ message: `'${hierarchyName}' is the default hierarchy of '${dimensionName}' and cannot be deleted on its own.`,
28
+ hint: "Delete the whole dimension with tm1_delete_dimension, or name an alternate hierarchy.",
29
+ });
30
+ }
31
+ await tm1Client.hierarchies.delete(dimensionName, hierarchyName);
32
+ return actionResponse({ success: true, dimensionName, hierarchyName });
33
+ },
34
+ });
35
+ //# sourceMappingURL=delete-hierarchy.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerGetElementAttributeValues: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=get-element-attribute-values.d.ts.map
@@ -0,0 +1,77 @@
1
+ import { z } from "zod";
2
+ import { FORMAT_SCHEMA, payloadResponse, renderTable, columnsOf, } from "../format.js";
3
+ import { ElementAttributeValueSchema } from "../schemas/items.js";
4
+ import { CellValueSchema } from "../../schemas/common.js";
5
+ import { READ_ONLY } from "../annotations.js";
6
+ import { defineTool } from "../define-tool.js";
7
+ import { PAGINATION_SCHEMA, UNBOUNDED_MAX_ITEMS, pageFromServer, } from "../pagination.js";
8
+ import { pageShapeFor } from "../schemas/common.js";
9
+ const ElementValuesRowSchema = z.object({
10
+ elementName: z.string(),
11
+ values: z.record(z.string(), CellValueSchema),
12
+ });
13
+ // Two shapes behind one tool: a single element's attribute rows, or a page of
14
+ // elements with an attribute → value map each. Every field of both is
15
+ // optional here so either payload validates.
16
+ const pageShape = pageShapeFor(ElementValuesRowSchema);
17
+ export const registerGetElementAttributeValues = defineTool({
18
+ name: "tm1_get_element_attribute_values",
19
+ description: [
20
+ "Read attribute values (Numeric/String/Alias) via MDX on the }ElementAttributes_{Dim} control cube. Use this to verify alias values, attribute lookups, or to debug rules referencing ATTRN/ATTRS.",
21
+ "With elementName: that element's attributes. Without: every element of the dimension, name-sorted and paged (items[{elementName, values}]); narrow the columns with attributeNames.",
22
+ ],
23
+ annotations: READ_ONLY,
24
+ output: {
25
+ dimensionName: z.string(),
26
+ elementName: z.string().optional(),
27
+ attributes: z.array(ElementAttributeValueSchema).optional(),
28
+ total: pageShape.total.optional(),
29
+ count: pageShape.count.optional(),
30
+ offset: pageShape.offset.optional(),
31
+ has_more: pageShape.has_more.optional(),
32
+ next_offset: pageShape.next_offset.optional(),
33
+ items: pageShape.items.optional(),
34
+ },
35
+ input: {
36
+ dimensionName: z.string().describe("Dimension name"),
37
+ elementName: z
38
+ .string()
39
+ .optional()
40
+ .describe("Element whose attribute values should be read. Omit to page through all elements."),
41
+ attributeNames: z
42
+ .array(z.string())
43
+ .optional()
44
+ .describe("Only these attributes (all-elements mode). Default: all."),
45
+ ...PAGINATION_SCHEMA,
46
+ ...FORMAT_SCHEMA,
47
+ },
48
+ handler: async ({ dimensionName, elementName, attributeNames, limit, offset, fetchAll, format, }, tm1Client) => {
49
+ if (elementName === undefined) {
50
+ const unbounded = fetchAll || limit === 0;
51
+ const start = unbounded ? 0 : offset;
52
+ const { total, items } = await tm1Client.elements.getAttributeValuesPage(dimensionName, {
53
+ offset: start,
54
+ limit: unbounded ? UNBOUNDED_MAX_ITEMS : limit,
55
+ ...(attributeNames !== undefined ? { attributeNames } : {}),
56
+ });
57
+ const payload = {
58
+ dimensionName,
59
+ ...pageFromServer(items, total, start),
60
+ };
61
+ const attrs = Object.keys(items[0]?.values ?? {});
62
+ const columns = columnsOf([
63
+ "elementName",
64
+ ...attrs.map((a) => ({ header: a, get: (r) => r.values[a] })),
65
+ ]);
66
+ return payloadResponse(payload, format, (p) => `## Attributes of ${p.dimensionName} (${p.offset + 1}–${p.offset + p.count} of ${p.total})\n\n${renderTable(p.items, columns)}`);
67
+ }
68
+ const values = await tm1Client.elements.getAttributeValues(dimensionName, elementName);
69
+ const payload = { dimensionName, elementName, attributes: values };
70
+ const columns = columnsOf([
71
+ { header: "attribute", get: (a) => a.attributeName },
72
+ "value",
73
+ ]);
74
+ return payloadResponse(payload, format, (p) => `## Attributes of ${p.dimensionName}/${p.elementName}\n\n${renderTable(p.attributes, columns)}`);
75
+ },
76
+ });
77
+ //# sourceMappingURL=get-element-attribute-values.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerListElementAttributes: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=list-element-attributes.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ import { PAGINATION_SCHEMA, paginate } from "../pagination.js";
3
+ import { FORMAT_SCHEMA, pageResponse, columnsOf } from "../format.js";
4
+ import { ElementAttributeDefinitionSchema } from "../schemas/items.js";
5
+ import { READ_ONLY } from "../annotations.js";
6
+ import { defineTool } from "../define-tool.js";
7
+ import { HIERARCHY_NAME_OPTIONAL, resolveHierarchy } from "../hierarchy.js";
8
+ import { pageShapeFor } from "../schemas/common.js";
9
+ export const registerListElementAttributes = defineTool({
10
+ name: "tm1_list_element_attributes",
11
+ description: "List element attribute definitions of a TM1 hierarchy with their types (Numeric/String/Alias). Useful to verify attribute schema before writing values or referencing them in rules (ATTRN/ATTRS).",
12
+ annotations: READ_ONLY,
13
+ output: pageShapeFor(ElementAttributeDefinitionSchema),
14
+ input: {
15
+ dimensionName: z.string().describe("Name of the TM1 dimension"),
16
+ ...HIERARCHY_NAME_OPTIONAL,
17
+ ...PAGINATION_SCHEMA,
18
+ ...FORMAT_SCHEMA,
19
+ },
20
+ handler: async ({ dimensionName, hierarchyName, limit, offset, fetchAll, format }, tm1Client) => {
21
+ const hierarchy = resolveHierarchy(dimensionName, hierarchyName);
22
+ const attributes = await tm1Client.elements.listAttributes(dimensionName, hierarchy);
23
+ const page = paginate(attributes, limit, offset, fetchAll);
24
+ const columns = columnsOf(["name", "type"]);
25
+ return pageResponse(page, format, {
26
+ title: `Element attributes of ${dimensionName}/${hierarchy}`,
27
+ columns,
28
+ });
29
+ },
30
+ });
31
+ //# sourceMappingURL=list-element-attributes.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerMoveElement: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=move-element.d.ts.map
@@ -0,0 +1,28 @@
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
@@ -0,0 +1,2 @@
1
+ export declare const registerUpdateElementAttributeValue: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=update-element-attribute-value.d.ts.map
@@ -0,0 +1,80 @@
1
+ import { z } from "zod";
2
+ import { actionResponse } from "../format.js";
3
+ import { IDEMPOTENT_WRITE } from "../annotations.js";
4
+ import { MutationResultSchema } from "../schemas/items.js";
5
+ import { defineTool } from "../define-tool.js";
6
+ import { TM1Error, TM1ErrorCode } from "../../types.js";
7
+ // Advertised as a string; a bare number is still accepted and read as text.
8
+ // The server coerces to the attribute's type, so callers never have to pick
9
+ // between string and number — picking wrong was a recurring malformed call.
10
+ const valueSchema = z.preprocess((v) => (typeof v === "number" ? String(v) : v), z.string());
11
+ export const registerUpdateElementAttributeValue = defineTool({
12
+ name: "tm1_update_element_attribute_value",
13
+ description: [
14
+ "Set attribute values on elements by writing to the }ElementAttributes_{Dim} control cube.",
15
+ "One value (elementName + attributeName + value) or many in a single write (updates[]). Values are strings, coerced server-side for Numeric attributes.",
16
+ "For reproducible deployments prefer a TI process (AttrPutS / AttrPutN); this REST-direct tool is for ad-hoc / debugging scenarios.",
17
+ ],
18
+ annotations: IDEMPOTENT_WRITE,
19
+ output: MutationResultSchema,
20
+ input: {
21
+ dimensionName: z.string().describe("Dimension name"),
22
+ elementName: z
23
+ .string()
24
+ .optional()
25
+ .describe("Element whose attribute value should be set"),
26
+ attributeName: z
27
+ .string()
28
+ .optional()
29
+ .describe("Attribute name (must already exist as schema)"),
30
+ value: valueSchema
31
+ .optional()
32
+ .describe("New value as text, e.g. '12.5' for a Numeric attribute. Numeric attributes reject non-numbers."),
33
+ updates: z
34
+ .array(z.object({
35
+ elementName: z.string(),
36
+ attributeName: z.string(),
37
+ value: valueSchema,
38
+ }))
39
+ .min(1)
40
+ .max(5000)
41
+ .optional()
42
+ .describe("Batch form: many {elementName, attributeName, value} in one cellset write. Replaces elementName/attributeName/value."),
43
+ },
44
+ handler: async ({ dimensionName, elementName, attributeName, value, updates }, tm1Client) => {
45
+ const single = elementName !== undefined ||
46
+ attributeName !== undefined ||
47
+ value !== undefined;
48
+ if (updates !== undefined && single) {
49
+ throw new TM1Error({
50
+ code: TM1ErrorCode.VALIDATION_ERROR,
51
+ message: "Pass either updates[] or elementName/attributeName/value, not both.",
52
+ });
53
+ }
54
+ if (updates !== undefined) {
55
+ await tm1Client.elements.updateAttributeValues(dimensionName, updates);
56
+ return actionResponse({
57
+ success: true,
58
+ dimensionName,
59
+ updated: updates.length,
60
+ });
61
+ }
62
+ if (elementName === undefined ||
63
+ attributeName === undefined ||
64
+ value === undefined) {
65
+ throw new TM1Error({
66
+ code: TM1ErrorCode.VALIDATION_ERROR,
67
+ message: "elementName, attributeName and value are all required (or pass updates[]).",
68
+ });
69
+ }
70
+ await tm1Client.elements.updateAttributeValue(dimensionName, elementName, attributeName, value);
71
+ return actionResponse({
72
+ success: true,
73
+ dimensionName,
74
+ elementName,
75
+ attributeName,
76
+ value,
77
+ });
78
+ },
79
+ });
80
+ //# sourceMappingURL=update-element-attribute-value.js.map
@@ -0,0 +1,2 @@
1
+ export declare const registerUpdateElement: import("../define-tool.js").ToolRegistrar;
2
+ //# sourceMappingURL=update-element.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ import { actionResponse } from "../format.js";
3
+ import { IDEMPOTENT_WRITE } from "../annotations.js";
4
+ import { MutationResultSchema } from "../schemas/items.js";
5
+ import { defineTool } from "../define-tool.js";
6
+ import { HIERARCHY_NAME_OPTIONAL, resolveHierarchy } from "../hierarchy.js";
7
+ const updateSchema = z.object({
8
+ newName: z.string().optional().describe("New name for the element"),
9
+ type: z
10
+ .enum(["Numeric", "String", "Consolidated"])
11
+ .optional()
12
+ .describe("New element type"),
13
+ components: z
14
+ .array(z.object({ name: z.string(), weight: z.number() }))
15
+ .optional()
16
+ .describe("New child components for consolidated elements"),
17
+ });
18
+ export const registerUpdateElement = defineTool({
19
+ name: "tm1_update_element",
20
+ description: "Update an existing element in a TM1 dimension hierarchy (name, type, or components)",
21
+ annotations: IDEMPOTENT_WRITE,
22
+ output: MutationResultSchema,
23
+ input: {
24
+ dimensionName: z.string().describe("Name of the dimension"),
25
+ ...HIERARCHY_NAME_OPTIONAL,
26
+ elementName: z.string().describe("Current name of the element to update"),
27
+ update: updateSchema.describe("Fields to update on the element"),
28
+ },
29
+ handler: async ({ dimensionName, hierarchyName, elementName, update }, tm1Client) => {
30
+ const hierarchy = resolveHierarchy(dimensionName, hierarchyName);
31
+ await tm1Client.elements.update(dimensionName, hierarchy, elementName, update);
32
+ return actionResponse({ success: true, elementName });
33
+ },
34
+ });
35
+ //# sourceMappingURL=update-element.js.map
@@ -0,0 +1,22 @@
1
+ import { TM1ErrorCode } from "../types.js";
2
+ interface UniformErrorPayload {
3
+ code: TM1ErrorCode | string;
4
+ message: string;
5
+ httpStatus?: number | undefined;
6
+ endpoint?: string | undefined;
7
+ details?: string | undefined;
8
+ hint: string;
9
+ }
10
+ interface McpToolResult {
11
+ content: Array<{
12
+ type: "text";
13
+ text: string;
14
+ }>;
15
+ isError?: boolean;
16
+ structuredContent?: unknown;
17
+ }
18
+ export declare function formatTm1ErrorResult(err: unknown): McpToolResult;
19
+ export declare function normalizeErrorResult(result: McpToolResult): McpToolResult;
20
+ export declare function withToolHint<T>(p: Promise<T>, hint: string): Promise<T>;
21
+ export type { UniformErrorPayload, McpToolResult };
22
+ //# sourceMappingURL=error-format.d.ts.map