@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.
- package/CHANGELOG.md +1211 -0
- package/LICENSE +21 -0
- package/NOTICE +34 -0
- package/README.md +276 -0
- package/dist/config.d.ts +35 -0
- package/dist/config.js +238 -0
- package/dist/http-transport.d.ts +8 -0
- package/dist/http-transport.js +132 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +164 -0
- package/dist/lib/callgraph/callGraph.d.ts +124 -0
- package/dist/lib/callgraph/callGraph.js +334 -0
- package/dist/lib/callgraph/choreGraph.d.ts +23 -0
- package/dist/lib/callgraph/choreGraph.js +102 -0
- package/dist/lib/callgraph/dataFlow.d.ts +74 -0
- package/dist/lib/callgraph/dataFlow.js +271 -0
- package/dist/lib/callgraph/datasourceMembership.d.ts +31 -0
- package/dist/lib/callgraph/datasourceMembership.js +142 -0
- package/dist/lib/callgraph/lintTypes.d.ts +28 -0
- package/dist/lib/callgraph/lintTypes.js +2 -0
- package/dist/lib/callgraph/mdxMembers.d.ts +29 -0
- package/dist/lib/callgraph/mdxMembers.js +97 -0
- package/dist/lib/callgraph/referenceIndex.d.ts +179 -0
- package/dist/lib/callgraph/referenceIndex.js +584 -0
- package/dist/lib/callgraph/rulesLinter.d.ts +55 -0
- package/dist/lib/callgraph/rulesLinter.js +776 -0
- package/dist/lib/callgraph/rulesParser.d.ts +26 -0
- package/dist/lib/callgraph/rulesParser.js +71 -0
- package/dist/lib/callgraph/subsetUsage.d.ts +16 -0
- package/dist/lib/callgraph/subsetUsage.js +134 -0
- package/dist/lib/callgraph/tiParser.d.ts +21 -0
- package/dist/lib/callgraph/tiParser.js +672 -0
- package/dist/lib/callgraph/tiSignatures.d.ts +32 -0
- package/dist/lib/callgraph/tiSignatures.js +6185 -0
- package/dist/lib/callgraph/tm1-adapter.d.ts +32 -0
- package/dist/lib/callgraph/tm1-adapter.js +159 -0
- package/dist/lib/callgraph/types.d.ts +53 -0
- package/dist/lib/callgraph/types.js +2 -0
- package/dist/lib/callgraph/variableEnv.d.ts +86 -0
- package/dist/lib/callgraph/variableEnv.js +214 -0
- package/dist/lib/cell-address.d.ts +12 -0
- package/dist/lib/cell-address.js +71 -0
- package/dist/lib/complexity/antipatterns.d.ts +22 -0
- package/dist/lib/complexity/antipatterns.js +302 -0
- package/dist/lib/complexity/comment-classifier.d.ts +24 -0
- package/dist/lib/complexity/comment-classifier.js +43 -0
- package/dist/lib/complexity/cross-process.d.ts +78 -0
- package/dist/lib/complexity/cross-process.js +114 -0
- package/dist/lib/complexity/process-metrics.d.ts +78 -0
- package/dist/lib/complexity/process-metrics.js +278 -0
- package/dist/lib/complexity/rules-metrics.d.ts +31 -0
- package/dist/lib/complexity/rules-metrics.js +99 -0
- package/dist/lib/concurrency.d.ts +11 -0
- package/dist/lib/concurrency.js +27 -0
- package/dist/lib/control-name.d.ts +10 -0
- package/dist/lib/control-name.js +10 -0
- package/dist/lib/coordinate-error.d.ts +3 -0
- package/dist/lib/coordinate-error.js +29 -0
- package/dist/lib/credential-format.d.ts +23 -0
- package/dist/lib/credential-format.js +25 -0
- package/dist/lib/cube-stats/fetcher.d.ts +106 -0
- package/dist/lib/cube-stats/fetcher.js +194 -0
- package/dist/lib/feeders/brackets.d.ts +47 -0
- package/dist/lib/feeders/brackets.js +195 -0
- package/dist/lib/feeders/element-type-cache.d.ts +42 -0
- package/dist/lib/feeders/element-type-cache.js +86 -0
- package/dist/lib/feeders/static-heuristics.d.ts +101 -0
- package/dist/lib/feeders/static-heuristics.js +202 -0
- package/dist/lib/git-process.d.ts +67 -0
- package/dist/lib/git-process.js +243 -0
- package/dist/lib/mask-secrets.d.ts +10 -0
- package/dist/lib/mask-secrets.js +99 -0
- package/dist/lib/mdx.d.ts +3 -0
- package/dist/lib/mdx.js +13 -0
- package/dist/lib/naming/odata-filter.d.ts +15 -0
- package/dist/lib/naming/odata-filter.js +81 -0
- package/dist/lib/naming/rules.d.ts +34 -0
- package/dist/lib/naming/rules.js +215 -0
- package/dist/lib/pro-parser.d.ts +19 -0
- package/dist/lib/pro-parser.js +260 -0
- package/dist/lib/pro-serializer.d.ts +19 -0
- package/dist/lib/pro-serializer.js +170 -0
- package/dist/lib/process-parts-schema.d.ts +45 -0
- package/dist/lib/process-parts-schema.js +46 -0
- package/dist/lib/process-refs.d.ts +88 -0
- package/dist/lib/process-refs.js +441 -0
- package/dist/lib/rules-outline.d.ts +29 -0
- package/dist/lib/rules-outline.js +68 -0
- package/dist/lib/rules-patch.d.ts +6 -0
- package/dist/lib/rules-patch.js +59 -0
- package/dist/lib/safe-regex.d.ts +15 -0
- package/dist/lib/safe-regex.js +37 -0
- package/dist/lib/sample-cells.d.ts +48 -0
- package/dist/lib/sample-cells.js +146 -0
- package/dist/lib/slim-json-schema.d.ts +20 -0
- package/dist/lib/slim-json-schema.js +68 -0
- package/dist/lib/strip-comments.d.ts +23 -0
- package/dist/lib/strip-comments.js +61 -0
- package/dist/lib/tm1-events.d.ts +16 -0
- package/dist/lib/tm1-events.js +29 -0
- package/dist/lib/v12-compat/deprecated-ti.d.ts +17 -0
- package/dist/lib/v12-compat/deprecated-ti.js +257 -0
- package/dist/lib/v12-compat/scanner.d.ts +10 -0
- package/dist/lib/v12-compat/scanner.js +43 -0
- package/dist/lib/variables-ui-data.d.ts +26 -0
- package/dist/lib/variables-ui-data.js +77 -0
- package/dist/load-env.d.ts +2 -0
- package/dist/load-env.js +29 -0
- package/dist/logger.d.ts +4 -0
- package/dist/logger.js +60 -0
- package/dist/prompts/index.d.ts +3 -0
- package/dist/prompts/index.js +141 -0
- package/dist/resources/index.d.ts +5 -0
- package/dist/resources/index.js +237 -0
- package/dist/resources/list-handler.d.ts +40 -0
- package/dist/resources/list-handler.js +86 -0
- package/dist/resources/subscriptions.d.ts +19 -0
- package/dist/resources/subscriptions.js +80 -0
- package/dist/schemas/cells.d.ts +17 -0
- package/dist/schemas/cells.js +13 -0
- package/dist/schemas/common.d.ts +16 -0
- package/dist/schemas/common.js +14 -0
- package/dist/schemas/index.d.ts +10 -0
- package/dist/schemas/index.js +23 -0
- package/dist/schemas/metadata.d.ts +70 -0
- package/dist/schemas/metadata.js +47 -0
- package/dist/schemas/monitoring.d.ts +95 -0
- package/dist/schemas/monitoring.js +69 -0
- package/dist/schemas/processes.d.ts +74 -0
- package/dist/schemas/processes.js +66 -0
- package/dist/schemas/scheduling.d.ts +13 -0
- package/dist/schemas/scheduling.js +13 -0
- package/dist/schemas/security.d.ts +19 -0
- package/dist/schemas/security.js +16 -0
- package/dist/schemas/subsets.d.ts +12 -0
- package/dist/schemas/subsets.js +12 -0
- package/dist/schemas/views.d.ts +9 -0
- package/dist/schemas/views.js +9 -0
- package/dist/session-manager.d.ts +79 -0
- package/dist/session-manager.js +281 -0
- package/dist/tm1-client/connection/profile.d.ts +13 -0
- package/dist/tm1-client/connection/profile.js +99 -0
- package/dist/tm1-client/dispatcher.d.ts +5 -0
- package/dist/tm1-client/dispatcher.js +31 -0
- package/dist/tm1-client/http.d.ts +81 -0
- package/dist/tm1-client/http.js +547 -0
- package/dist/tm1-client/services/batch-service.d.ts +123 -0
- package/dist/tm1-client/services/batch-service.js +455 -0
- package/dist/tm1-client/services/cell-service.d.ts +71 -0
- package/dist/tm1-client/services/cell-service.js +333 -0
- package/dist/tm1-client/services/cellset-transform.d.ts +26 -0
- package/dist/tm1-client/services/cellset-transform.js +80 -0
- package/dist/tm1-client/services/chore-service.d.ts +68 -0
- package/dist/tm1-client/services/chore-service.js +179 -0
- package/dist/tm1-client/services/chore-status.d.ts +11 -0
- package/dist/tm1-client/services/chore-status.js +127 -0
- package/dist/tm1-client/services/cube-service.d.ts +134 -0
- package/dist/tm1-client/services/cube-service.js +294 -0
- package/dist/tm1-client/services/dimension-service.d.ts +118 -0
- package/dist/tm1-client/services/dimension-service.js +249 -0
- package/dist/tm1-client/services/element-service.d.ts +245 -0
- package/dist/tm1-client/services/element-service.js +809 -0
- package/dist/tm1-client/services/fallback.d.ts +44 -0
- package/dist/tm1-client/services/fallback.js +72 -0
- package/dist/tm1-client/services/file-service.d.ts +53 -0
- package/dist/tm1-client/services/file-service.js +218 -0
- package/dist/tm1-client/services/hierarchy-service.d.ts +129 -0
- package/dist/tm1-client/services/hierarchy-service.js +332 -0
- package/dist/tm1-client/services/monitoring-service.d.ts +34 -0
- package/dist/tm1-client/services/monitoring-service.js +123 -0
- package/dist/tm1-client/services/odata-page.d.ts +71 -0
- package/dist/tm1-client/services/odata-page.js +87 -0
- package/dist/tm1-client/services/process-service.d.ts +278 -0
- package/dist/tm1-client/services/process-service.js +874 -0
- package/dist/tm1-client/services/process-status.d.ts +21 -0
- package/dist/tm1-client/services/process-status.js +89 -0
- package/dist/tm1-client/services/security-service.d.ts +50 -0
- package/dist/tm1-client/services/security-service.js +93 -0
- package/dist/tm1-client/services/server-service.d.ts +116 -0
- package/dist/tm1-client/services/server-service.js +504 -0
- package/dist/tm1-client/services/subset-service.d.ts +37 -0
- package/dist/tm1-client/services/subset-service.js +122 -0
- package/dist/tm1-client/services/view-service.d.ts +46 -0
- package/dist/tm1-client/services/view-service.js +287 -0
- package/dist/tm1-client.d.ts +56 -0
- package/dist/tm1-client.js +126 -0
- package/dist/tools/analysis/analyze-callgraph.d.ts +28 -0
- package/dist/tools/analysis/analyze-callgraph.js +350 -0
- package/dist/tools/analysis/analyze-chore-graph.d.ts +2 -0
- package/dist/tools/analysis/analyze-chore-graph.js +148 -0
- package/dist/tools/analysis/analyze-object-usage.d.ts +2 -0
- package/dist/tools/analysis/analyze-object-usage.js +143 -0
- package/dist/tools/analysis/audit-complexity.d.ts +2 -0
- package/dist/tools/analysis/audit-complexity.js +255 -0
- package/dist/tools/analysis/audit-feeders.d.ts +2 -0
- package/dist/tools/analysis/audit-feeders.js +417 -0
- package/dist/tools/analysis/audit-naming.d.ts +2 -0
- package/dist/tools/analysis/audit-naming.js +379 -0
- package/dist/tools/analysis/check-v12-readiness.d.ts +2 -0
- package/dist/tools/analysis/check-v12-readiness.js +136 -0
- package/dist/tools/analysis/find-orphan-dimensions.d.ts +2 -0
- package/dist/tools/analysis/find-orphan-dimensions.js +55 -0
- package/dist/tools/analysis/invalidate-callgraph-cache.d.ts +2 -0
- package/dist/tools/analysis/invalidate-callgraph-cache.js +40 -0
- package/dist/tools/analysis/trace-data-flow.d.ts +2 -0
- package/dist/tools/analysis/trace-data-flow.js +138 -0
- package/dist/tools/annotations.d.ts +12 -0
- package/dist/tools/annotations.js +61 -0
- package/dist/tools/celldata/check-feeders.d.ts +2 -0
- package/dist/tools/celldata/check-feeders.js +48 -0
- package/dist/tools/celldata/check-writable-coords.d.ts +2 -0
- package/dist/tools/celldata/check-writable-coords.js +126 -0
- package/dist/tools/celldata/execute-mdx.d.ts +17 -0
- package/dist/tools/celldata/execute-mdx.js +126 -0
- package/dist/tools/celldata/get-cell-value.d.ts +2 -0
- package/dist/tools/celldata/get-cell-value.js +30 -0
- package/dist/tools/celldata/get-view-definition.d.ts +2 -0
- package/dist/tools/celldata/get-view-definition.js +29 -0
- package/dist/tools/celldata/get-view.d.ts +2 -0
- package/dist/tools/celldata/get-view.js +55 -0
- package/dist/tools/celldata/sample-cells.d.ts +2 -0
- package/dist/tools/celldata/sample-cells.js +101 -0
- package/dist/tools/celldata/trace-cell-calculation.d.ts +2 -0
- package/dist/tools/celldata/trace-cell-calculation.js +53 -0
- package/dist/tools/celldata/trace-feeders.d.ts +2 -0
- package/dist/tools/celldata/trace-feeders.js +44 -0
- package/dist/tools/celldata/write-cells.d.ts +2 -0
- package/dist/tools/celldata/write-cells.js +65 -0
- package/dist/tools/confirm.d.ts +10 -0
- package/dist/tools/confirm.js +64 -0
- package/dist/tools/define-tool.d.ts +51 -0
- package/dist/tools/define-tool.js +49 -0
- package/dist/tools/dimension-management/bulk-upsert-elements.d.ts +2 -0
- package/dist/tools/dimension-management/bulk-upsert-elements.js +103 -0
- package/dist/tools/dimension-management/create-dimension.d.ts +2 -0
- package/dist/tools/dimension-management/create-dimension.js +22 -0
- package/dist/tools/dimension-management/create-element-attribute.d.ts +2 -0
- package/dist/tools/dimension-management/create-element-attribute.js +26 -0
- package/dist/tools/dimension-management/create-element.d.ts +2 -0
- package/dist/tools/dimension-management/create-element.js +31 -0
- package/dist/tools/dimension-management/create-hierarchy.d.ts +2 -0
- package/dist/tools/dimension-management/create-hierarchy.js +22 -0
- package/dist/tools/dimension-management/delete-dimension.d.ts +2 -0
- package/dist/tools/dimension-management/delete-dimension.js +25 -0
- package/dist/tools/dimension-management/delete-element.d.ts +2 -0
- package/dist/tools/dimension-management/delete-element.js +26 -0
- package/dist/tools/dimension-management/delete-elements.d.ts +2 -0
- package/dist/tools/dimension-management/delete-elements.js +44 -0
- package/dist/tools/dimension-management/delete-hierarchy.d.ts +2 -0
- package/dist/tools/dimension-management/delete-hierarchy.js +35 -0
- package/dist/tools/dimension-management/get-element-attribute-values.d.ts +2 -0
- package/dist/tools/dimension-management/get-element-attribute-values.js +77 -0
- package/dist/tools/dimension-management/list-element-attributes.d.ts +2 -0
- package/dist/tools/dimension-management/list-element-attributes.js +31 -0
- package/dist/tools/dimension-management/move-element.d.ts +2 -0
- package/dist/tools/dimension-management/move-element.js +28 -0
- package/dist/tools/dimension-management/update-element-attribute-value.d.ts +2 -0
- package/dist/tools/dimension-management/update-element-attribute-value.js +80 -0
- package/dist/tools/dimension-management/update-element.d.ts +2 -0
- package/dist/tools/dimension-management/update-element.js +35 -0
- package/dist/tools/error-format.d.ts +22 -0
- package/dist/tools/error-format.js +130 -0
- package/dist/tools/fileops/delete-file.d.ts +2 -0
- package/dist/tools/fileops/delete-file.js +32 -0
- package/dist/tools/fileops/get-file-content.d.ts +2 -0
- package/dist/tools/fileops/get-file-content.js +76 -0
- package/dist/tools/fileops/list-files.d.ts +2 -0
- package/dist/tools/fileops/list-files.js +43 -0
- package/dist/tools/fileops/search-files.d.ts +2 -0
- package/dist/tools/fileops/search-files.js +76 -0
- package/dist/tools/fileops/upload-file.d.ts +2 -0
- package/dist/tools/fileops/upload-file.js +69 -0
- package/dist/tools/format.d.ts +57 -0
- package/dist/tools/format.js +157 -0
- package/dist/tools/hierarchy.d.ts +6 -0
- package/dist/tools/hierarchy.js +27 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.js +263 -0
- package/dist/tools/local-file.d.ts +16 -0
- package/dist/tools/local-file.js +88 -0
- package/dist/tools/metadata/get-ancestors.d.ts +2 -0
- package/dist/tools/metadata/get-ancestors.js +36 -0
- package/dist/tools/metadata/get-descendants.d.ts +2 -0
- package/dist/tools/metadata/get-descendants.js +64 -0
- package/dist/tools/metadata/get-hierarchy.d.ts +2 -0
- package/dist/tools/metadata/get-hierarchy.js +130 -0
- package/dist/tools/metadata/list-chores.d.ts +2 -0
- package/dist/tools/metadata/list-chores.js +62 -0
- package/dist/tools/metadata/list-cubes.d.ts +2 -0
- package/dist/tools/metadata/list-cubes.js +128 -0
- package/dist/tools/metadata/list-dimensions.d.ts +2 -0
- package/dist/tools/metadata/list-dimensions.js +131 -0
- package/dist/tools/metadata/list-processes-grouped.d.ts +2 -0
- package/dist/tools/metadata/list-processes-grouped.js +96 -0
- package/dist/tools/metadata/list-processes.d.ts +2 -0
- package/dist/tools/metadata/list-processes.js +108 -0
- package/dist/tools/metadata/resolve-default-members.d.ts +2 -0
- package/dist/tools/metadata/resolve-default-members.js +46 -0
- package/dist/tools/model-building/check-cube-rule.d.ts +2 -0
- package/dist/tools/model-building/check-cube-rule.js +51 -0
- package/dist/tools/model-building/clear-cube.d.ts +2 -0
- package/dist/tools/model-building/clear-cube.js +46 -0
- package/dist/tools/model-building/create-cube.d.ts +2 -0
- package/dist/tools/model-building/create-cube.js +34 -0
- package/dist/tools/model-building/delete-cube.d.ts +2 -0
- package/dist/tools/model-building/delete-cube.js +27 -0
- package/dist/tools/model-building/get-all-cube-rules.d.ts +2 -0
- package/dist/tools/model-building/get-all-cube-rules.js +149 -0
- package/dist/tools/model-building/get-cube-rules.d.ts +2 -0
- package/dist/tools/model-building/get-cube-rules.js +69 -0
- package/dist/tools/model-building/rules-source.d.ts +21 -0
- package/dist/tools/model-building/rules-source.js +49 -0
- package/dist/tools/model-building/search-rules.d.ts +2 -0
- package/dist/tools/model-building/search-rules.js +132 -0
- package/dist/tools/model-building/set-cube-rules.d.ts +2 -0
- package/dist/tools/model-building/set-cube-rules.js +81 -0
- package/dist/tools/model-building/unload-cube.d.ts +2 -0
- package/dist/tools/model-building/unload-cube.js +23 -0
- package/dist/tools/operations/diagnose-process-error.d.ts +2 -0
- package/dist/tools/operations/diagnose-process-error.js +178 -0
- package/dist/tools/operations/error-log-helpers.d.ts +25 -0
- package/dist/tools/operations/error-log-helpers.js +57 -0
- package/dist/tools/operations/get-audit-log.d.ts +2 -0
- package/dist/tools/operations/get-audit-log.js +70 -0
- package/dist/tools/operations/get-cube-stats.d.ts +2 -0
- package/dist/tools/operations/get-cube-stats.js +107 -0
- package/dist/tools/operations/get-error-log-content.d.ts +2 -0
- package/dist/tools/operations/get-error-log-content.js +164 -0
- package/dist/tools/operations/get-jobs.d.ts +3 -0
- package/dist/tools/operations/get-jobs.js +51 -0
- package/dist/tools/operations/get-message-log.d.ts +2 -0
- package/dist/tools/operations/get-message-log.js +63 -0
- package/dist/tools/operations/get-server-info.d.ts +2 -0
- package/dist/tools/operations/get-server-info.js +180 -0
- package/dist/tools/operations/get-server-state.d.ts +2 -0
- package/dist/tools/operations/get-server-state.js +129 -0
- package/dist/tools/operations/get-sessions.d.ts +2 -0
- package/dist/tools/operations/get-sessions.js +76 -0
- package/dist/tools/operations/get-threads.d.ts +3 -0
- package/dist/tools/operations/get-threads.js +50 -0
- package/dist/tools/operations/get-transaction-log.d.ts +2 -0
- package/dist/tools/operations/get-transaction-log.js +63 -0
- package/dist/tools/operations/list-error-logs.d.ts +8 -0
- package/dist/tools/operations/list-error-logs.js +157 -0
- package/dist/tools/operations/save-data.d.ts +2 -0
- package/dist/tools/operations/save-data.js +50 -0
- package/dist/tools/pagination.d.ts +32 -0
- package/dist/tools/pagination.js +116 -0
- package/dist/tools/scheduling/create-chore.d.ts +2 -0
- package/dist/tools/scheduling/create-chore.js +93 -0
- package/dist/tools/scheduling/delete-chore.d.ts +2 -0
- package/dist/tools/scheduling/delete-chore.js +22 -0
- package/dist/tools/scheduling/execute-chore.d.ts +2 -0
- package/dist/tools/scheduling/execute-chore.js +52 -0
- package/dist/tools/scheduling/toggle-chore.d.ts +2 -0
- package/dist/tools/scheduling/toggle-chore.js +22 -0
- package/dist/tools/scheduling/update-chore.d.ts +2 -0
- package/dist/tools/scheduling/update-chore.js +71 -0
- package/dist/tools/schemas/common.d.ts +10 -0
- package/dist/tools/schemas/common.js +23 -0
- package/dist/tools/schemas/items-analysis.d.ts +394 -0
- package/dist/tools/schemas/items-analysis.js +419 -0
- package/dist/tools/schemas/items-cells.d.ts +70 -0
- package/dist/tools/schemas/items-cells.js +65 -0
- package/dist/tools/schemas/items-common.d.ts +18 -0
- package/dist/tools/schemas/items-common.js +39 -0
- package/dist/tools/schemas/items-fileops.d.ts +11 -0
- package/dist/tools/schemas/items-fileops.js +13 -0
- package/dist/tools/schemas/items-metadata.d.ts +262 -0
- package/dist/tools/schemas/items-metadata.js +184 -0
- package/dist/tools/schemas/items-monitoring.d.ts +79 -0
- package/dist/tools/schemas/items-monitoring.js +78 -0
- package/dist/tools/schemas/items-processes.d.ts +279 -0
- package/dist/tools/schemas/items-processes.js +235 -0
- package/dist/tools/schemas/items-scheduling.d.ts +25 -0
- package/dist/tools/schemas/items-scheduling.js +26 -0
- package/dist/tools/schemas/items-security.d.ts +19 -0
- package/dist/tools/schemas/items-security.js +12 -0
- package/dist/tools/schemas/items-subsets.d.ts +2 -0
- package/dist/tools/schemas/items-subsets.js +4 -0
- package/dist/tools/schemas/items-views.d.ts +38 -0
- package/dist/tools/schemas/items-views.js +26 -0
- package/dist/tools/schemas/items.d.ts +12 -0
- package/dist/tools/schemas/items.js +23 -0
- package/dist/tools/schemas/markdown-capable.d.ts +21 -0
- package/dist/tools/schemas/markdown-capable.js +58 -0
- package/dist/tools/schemas/output-schema.d.ts +24 -0
- package/dist/tools/schemas/output-schema.js +25 -0
- package/dist/tools/security/assign-client-group.d.ts +2 -0
- package/dist/tools/security/assign-client-group.js +20 -0
- package/dist/tools/security/create-client.d.ts +2 -0
- package/dist/tools/security/create-client.js +28 -0
- package/dist/tools/security/delete-client.d.ts +2 -0
- package/dist/tools/security/delete-client.js +22 -0
- package/dist/tools/security/get-client.d.ts +2 -0
- package/dist/tools/security/get-client.js +20 -0
- package/dist/tools/security/list-clients.d.ts +2 -0
- package/dist/tools/security/list-clients.js +86 -0
- package/dist/tools/security/list-groups.d.ts +2 -0
- package/dist/tools/security/list-groups.js +43 -0
- package/dist/tools/security/remove-client-group.d.ts +2 -0
- package/dist/tools/security/remove-client-group.js +27 -0
- package/dist/tools/security/update-client.d.ts +2 -0
- package/dist/tools/security/update-client.js +22 -0
- package/dist/tools/subsets/create-subset.d.ts +2 -0
- package/dist/tools/subsets/create-subset.js +44 -0
- package/dist/tools/subsets/delete-subset.d.ts +2 -0
- package/dist/tools/subsets/delete-subset.js +26 -0
- package/dist/tools/subsets/get-subset.d.ts +2 -0
- package/dist/tools/subsets/get-subset.js +29 -0
- package/dist/tools/subsets/list-subsets.d.ts +2 -0
- package/dist/tools/subsets/list-subsets.js +36 -0
- package/dist/tools/subsets/update-subset.d.ts +2 -0
- package/dist/tools/subsets/update-subset.js +33 -0
- package/dist/tools/ti-development/check-process-code.d.ts +2 -0
- package/dist/tools/ti-development/check-process-code.js +96 -0
- package/dist/tools/ti-development/compile-process.d.ts +2 -0
- package/dist/tools/ti-development/compile-process.js +32 -0
- package/dist/tools/ti-development/copy-process.d.ts +2 -0
- package/dist/tools/ti-development/copy-process.js +32 -0
- package/dist/tools/ti-development/delete-process.d.ts +2 -0
- package/dist/tools/ti-development/delete-process.js +26 -0
- package/dist/tools/ti-development/diff-process-with-file.d.ts +2 -0
- package/dist/tools/ti-development/diff-process-with-file.js +208 -0
- package/dist/tools/ti-development/diff-processes.d.ts +2 -0
- package/dist/tools/ti-development/diff-processes.js +312 -0
- package/dist/tools/ti-development/execute-process.d.ts +8 -0
- package/dist/tools/ti-development/execute-process.js +109 -0
- package/dist/tools/ti-development/export-process-to-git.d.ts +2 -0
- package/dist/tools/ti-development/export-process-to-git.js +113 -0
- package/dist/tools/ti-development/export-process-to-pro.d.ts +2 -0
- package/dist/tools/ti-development/export-process-to-pro.js +117 -0
- package/dist/tools/ti-development/get-all-processes-code.d.ts +2 -0
- package/dist/tools/ti-development/get-all-processes-code.js +131 -0
- package/dist/tools/ti-development/get-process-code.d.ts +2 -0
- package/dist/tools/ti-development/get-process-code.js +100 -0
- package/dist/tools/ti-development/get-process-datasource.d.ts +2 -0
- package/dist/tools/ti-development/get-process-datasource.js +20 -0
- package/dist/tools/ti-development/get-process-parameters.d.ts +2 -0
- package/dist/tools/ti-development/get-process-parameters.js +25 -0
- package/dist/tools/ti-development/get-process-variables.d.ts +2 -0
- package/dist/tools/ti-development/get-process-variables.js +38 -0
- package/dist/tools/ti-development/get-process.d.ts +2 -0
- package/dist/tools/ti-development/get-process.js +163 -0
- package/dist/tools/ti-development/import-pro-file.d.ts +2 -0
- package/dist/tools/ti-development/import-pro-file.js +153 -0
- package/dist/tools/ti-development/import-process-from-git.d.ts +2 -0
- package/dist/tools/ti-development/import-process-from-git.js +198 -0
- package/dist/tools/ti-development/install-pro-bundle.d.ts +2 -0
- package/dist/tools/ti-development/install-pro-bundle.js +288 -0
- package/dist/tools/ti-development/preflight.d.ts +39 -0
- package/dist/tools/ti-development/preflight.js +56 -0
- package/dist/tools/ti-development/process-backup.d.ts +29 -0
- package/dist/tools/ti-development/process-backup.js +118 -0
- package/dist/tools/ti-development/search-code.d.ts +2 -0
- package/dist/tools/ti-development/search-code.js +208 -0
- package/dist/tools/ti-development/upsert-process.d.ts +2 -0
- package/dist/tools/ti-development/upsert-process.js +167 -0
- package/dist/tools/ti-development/validate-process-refs.d.ts +2 -0
- package/dist/tools/ti-development/validate-process-refs.js +73 -0
- package/dist/tools/views/create-mdx-view.d.ts +2 -0
- package/dist/tools/views/create-mdx-view.js +21 -0
- package/dist/tools/views/create-native-view.d.ts +2 -0
- package/dist/tools/views/create-native-view.js +81 -0
- package/dist/tools/views/delete-view.d.ts +2 -0
- package/dist/tools/views/delete-view.js +23 -0
- package/dist/tools/views/list-views.d.ts +2 -0
- package/dist/tools/views/list-views.js +32 -0
- package/dist/tools/with-annotations.d.ts +6 -0
- package/dist/tools/with-annotations.js +339 -0
- package/dist/types.d.ts +409 -0
- package/dist/types.js +91 -0
- package/dist/version.d.ts +4 -0
- package/dist/version.js +18 -0
- package/package.json +107 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// Canonical list of TI functions removed in TM1 / Planning Analytics v12
|
|
2
|
+
// (Cloud Native engine).
|
|
3
|
+
//
|
|
4
|
+
// Source of truth: vscode-tm1-ti repo, src/tiLogicVisualizer/tiSignatures.ts
|
|
5
|
+
// Synced from commit cf73b93 ("fix(webview): robust Ctrl+V paste path + ...")
|
|
6
|
+
// on 2026-05-12. Each entry there carries a `deprecatedInV12: true` flag.
|
|
7
|
+
//
|
|
8
|
+
// Sync procedure: when IBM publishes new PA Cloud release notes or the
|
|
9
|
+
// upstream signatures file changes, re-extract from vscode-tm1-ti's
|
|
10
|
+
// tiSignatures.ts (entries flagged `deprecatedInV12: true`) and update the
|
|
11
|
+
// list below, bumping the source commit reference above.
|
|
12
|
+
// Keyed by lowercase name (TI is case-insensitive).
|
|
13
|
+
export const V12_DEPRECATED_TI = new Map([
|
|
14
|
+
{
|
|
15
|
+
name: "AddInfoCubeRestriction",
|
|
16
|
+
severity: "error",
|
|
17
|
+
issue: "Cube restriction API removed in v12 — security moves to Cloud IAM",
|
|
18
|
+
suggestion: "Configure via Cloud admin or PA Workspace security",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "AllowExternalRequests",
|
|
22
|
+
severity: "error",
|
|
23
|
+
issue: "External-request toggle removed in v12",
|
|
24
|
+
suggestion: "Remove without replacement — external calls go through the PA connector layer",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "AssignClientPassword",
|
|
28
|
+
severity: "error",
|
|
29
|
+
issue: "TI-based password management removed in v12",
|
|
30
|
+
suggestion: "Manage identity via Cloud IAM/SCIM",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "AssociateCAMIDToGroup",
|
|
34
|
+
severity: "error",
|
|
35
|
+
issue: "CAM security mapping via TI no longer supported in v12",
|
|
36
|
+
suggestion: "Maintain group mapping via Cloud admin",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "BatchCellIncrement",
|
|
40
|
+
severity: "error",
|
|
41
|
+
issue: "Batch cell API removed in v12",
|
|
42
|
+
suggestion: "Use a regular CellPutN/CellIncrementN loop",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "BatchUpdateFinish",
|
|
46
|
+
severity: "error",
|
|
47
|
+
issue: "BatchUpdate mode removed in v12 — the cloud engine optimizes automatically",
|
|
48
|
+
suggestion: "Remove without replacement",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "BatchUpdateFinishWait",
|
|
52
|
+
severity: "error",
|
|
53
|
+
issue: "BatchUpdate mode removed in v12",
|
|
54
|
+
suggestion: "Remove without replacement",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "BatchUpdateStart",
|
|
58
|
+
severity: "error",
|
|
59
|
+
issue: "BatchUpdate mode removed in v12",
|
|
60
|
+
suggestion: "Remove without replacement",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: "CGAddPromptValues",
|
|
64
|
+
severity: "error",
|
|
65
|
+
issue: "Cognos Gateway prompts removed in v12",
|
|
66
|
+
suggestion: "Remodel the workflow in PA Workspace",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: "CGPromptGetNextMember",
|
|
70
|
+
severity: "error",
|
|
71
|
+
issue: "Cognos Gateway prompts removed in v12",
|
|
72
|
+
suggestion: "Remodel the workflow in PA Workspace",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: "CGPromptSize",
|
|
76
|
+
severity: "error",
|
|
77
|
+
issue: "Cognos Gateway prompts removed in v12",
|
|
78
|
+
suggestion: "Remodel the workflow in PA Workspace",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "CreateHierarchyByAttribute",
|
|
82
|
+
severity: "error",
|
|
83
|
+
issue: "Auto hierarchy builder removed in v12",
|
|
84
|
+
suggestion: "Build the hierarchy manually via REST API/TI loop",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "CubeDataReservationAcquire",
|
|
88
|
+
severity: "error",
|
|
89
|
+
issue: "Data reservation API removed in v12",
|
|
90
|
+
suggestion: "Model locking via process lock / sandbox workflow",
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "CubeDataReservationGet",
|
|
94
|
+
severity: "error",
|
|
95
|
+
issue: "Data reservation API removed in v12",
|
|
96
|
+
suggestion: "Model locking via process lock / sandbox workflow",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "CubeDataReservationGetConflicts",
|
|
100
|
+
severity: "error",
|
|
101
|
+
issue: "Data reservation API removed in v12",
|
|
102
|
+
suggestion: "Model locking via process lock / sandbox workflow",
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "CubeDataReservationRelease",
|
|
106
|
+
severity: "error",
|
|
107
|
+
issue: "Data reservation API removed in v12",
|
|
108
|
+
suggestion: "Model locking via process lock / sandbox workflow",
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "CubeDataReservationReleaseAll",
|
|
112
|
+
severity: "error",
|
|
113
|
+
issue: "Data reservation API removed in v12",
|
|
114
|
+
suggestion: "Model locking via process lock / sandbox workflow",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "CubeGetLogChanges",
|
|
118
|
+
severity: "error",
|
|
119
|
+
issue: "Cube LogChanges toggle removed in v12 — logging is centralized",
|
|
120
|
+
suggestion: "Remove without replacement",
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: "CubeSaveData",
|
|
124
|
+
severity: "error",
|
|
125
|
+
issue: "Manual persistence removed in v12 — the cloud engine persists automatically",
|
|
126
|
+
suggestion: "Remove without replacement",
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: "CubeSetConnParams",
|
|
130
|
+
severity: "error",
|
|
131
|
+
issue: "Connection params via TI removed in v12",
|
|
132
|
+
suggestion: "Configure data sources via the admin UI",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: "CubeSetLogChanges",
|
|
136
|
+
severity: "error",
|
|
137
|
+
issue: "Cube LogChanges toggle removed in v12",
|
|
138
|
+
suggestion: "Remove without replacement",
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: "CubeUnload",
|
|
142
|
+
severity: "error",
|
|
143
|
+
issue: "Cube unload via TI removed in v12",
|
|
144
|
+
suggestion: "Use tm1_unload_cube via REST or remove without replacement",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: "DisableBulkLoadMode",
|
|
148
|
+
severity: "error",
|
|
149
|
+
issue: "BulkLoad mode removed in v12",
|
|
150
|
+
suggestion: "Remove without replacement — the cloud engine optimizes automatically",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: "EnableBatchCellIncrement",
|
|
154
|
+
severity: "error",
|
|
155
|
+
issue: "Batch cell API removed in v12",
|
|
156
|
+
suggestion: "Remove without replacement",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: "EnableBulkLoadMode",
|
|
160
|
+
severity: "error",
|
|
161
|
+
issue: "BulkLoad mode removed in v12",
|
|
162
|
+
suggestion: "Remove without replacement — the cloud engine optimizes automatically",
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: "ExecuteCommand",
|
|
166
|
+
severity: "error",
|
|
167
|
+
issue: "Shell execution removed in v12 (cloud sandbox allows no OS calls)",
|
|
168
|
+
suggestion: "Orchestrate external steps via CI/CD/PA connector",
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: "ExecuteJavaN",
|
|
172
|
+
severity: "error",
|
|
173
|
+
issue: "Java bridge removed in v12",
|
|
174
|
+
suggestion: "Port the logic to TI/rules or use an external service",
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
name: "ExecuteJavaS",
|
|
178
|
+
severity: "error",
|
|
179
|
+
issue: "Java bridge removed in v12",
|
|
180
|
+
suggestion: "Port the logic to TI/rules or use an external service",
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
name: "LockOff",
|
|
184
|
+
severity: "error",
|
|
185
|
+
issue: "TI lock toggle removed in v12",
|
|
186
|
+
suggestion: "Remove without replacement — locking via the sandbox model",
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
name: "LockOn",
|
|
190
|
+
severity: "error",
|
|
191
|
+
issue: "TI lock toggle removed in v12",
|
|
192
|
+
suggestion: "Remove without replacement — locking via the sandbox model",
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: "RefreshMDXHierarchy",
|
|
196
|
+
severity: "error",
|
|
197
|
+
issue: "MDX refresh hook removed in v12",
|
|
198
|
+
suggestion: "Remove without replacement — the engine refreshes automatically",
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: "RemoveCAMIDAssociation",
|
|
202
|
+
severity: "error",
|
|
203
|
+
issue: "CAM security mapping via TI no longer supported in v12",
|
|
204
|
+
suggestion: "Maintain mapping via Cloud admin",
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
name: "RemoveCAMIDAssociationFromGroup",
|
|
208
|
+
severity: "error",
|
|
209
|
+
issue: "CAM security mapping via TI no longer supported in v12",
|
|
210
|
+
suggestion: "Maintain mapping via Cloud admin",
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: "SaveDataAll",
|
|
214
|
+
severity: "error",
|
|
215
|
+
issue: "SaveDataAll removed in v12 — the cloud engine persists automatically",
|
|
216
|
+
suggestion: "Remove without replacement",
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
name: "ServerShutdown",
|
|
220
|
+
severity: "error",
|
|
221
|
+
issue: "Server shutdown via TI removed in v12 (cloud-managed)",
|
|
222
|
+
suggestion: "Remove without replacement",
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: "SetChoreVerboseMessages",
|
|
226
|
+
severity: "warning",
|
|
227
|
+
issue: "Chore verbose toggle removed in v12",
|
|
228
|
+
suggestion: "Consume logging via central logs",
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
name: "SetOdbcUnicodeInterface",
|
|
232
|
+
severity: "error",
|
|
233
|
+
issue: "ODBC data sources removed in v12 — external connector required",
|
|
234
|
+
suggestion: "Connect data via PA cloud connector / Files API",
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
name: "SwapAliasWithPrincipalName",
|
|
238
|
+
severity: "error",
|
|
239
|
+
issue: "Alias swap helper removed in v12",
|
|
240
|
+
suggestion: "Model explicitly via AttributePutS() operations",
|
|
241
|
+
},
|
|
242
|
+
].map((e) => [
|
|
243
|
+
e.name.toLowerCase(),
|
|
244
|
+
e,
|
|
245
|
+
]));
|
|
246
|
+
/**
|
|
247
|
+
* Combined case-insensitive regex matching any deprecated function name
|
|
248
|
+
* followed by `(`. Used by the scanner for a single-pass-per-line match.
|
|
249
|
+
*/
|
|
250
|
+
export const V12_DEPRECATED_TI_REGEX = (() => {
|
|
251
|
+
const alternation = Array.from(V12_DEPRECATED_TI.values())
|
|
252
|
+
.map((e) => e.name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))
|
|
253
|
+
.sort((a, b) => b.length - a.length)
|
|
254
|
+
.join("|");
|
|
255
|
+
return new RegExp(`\\b(${alternation})\\s*\\(`, "gi");
|
|
256
|
+
})();
|
|
257
|
+
//# sourceMappingURL=deprecated-ti.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ScanHit {
|
|
2
|
+
line: number;
|
|
3
|
+
function: string;
|
|
4
|
+
snippet: string;
|
|
5
|
+
severity: "error" | "warning";
|
|
6
|
+
issue: string;
|
|
7
|
+
suggestion: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function scanForDeprecatedTi(text: string): ScanHit[];
|
|
10
|
+
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Line-oriented scanner that finds deprecated-in-v12 TI function calls inside
|
|
2
|
+
// a code block (a TI section body or rules text). Strips '#'-prefixed full-line
|
|
3
|
+
// comments before matching; inline comments are uncommon in TI but accepted as
|
|
4
|
+
// a small false-positive surface in exchange for simplicity.
|
|
5
|
+
import { V12_DEPRECATED_TI, V12_DEPRECATED_TI_REGEX } from "./deprecated-ti.js";
|
|
6
|
+
const SNIPPET_MAX = 200;
|
|
7
|
+
export function scanForDeprecatedTi(text) {
|
|
8
|
+
if (!text)
|
|
9
|
+
return [];
|
|
10
|
+
const hits = [];
|
|
11
|
+
const lines = text.split(/\r?\n/);
|
|
12
|
+
for (let i = 0; i < lines.length; i++) {
|
|
13
|
+
const raw = lines[i];
|
|
14
|
+
const trimmed = raw.trimStart();
|
|
15
|
+
if (trimmed.startsWith("#"))
|
|
16
|
+
continue;
|
|
17
|
+
const seenOnThisLine = new Set();
|
|
18
|
+
V12_DEPRECATED_TI_REGEX.lastIndex = 0;
|
|
19
|
+
let m;
|
|
20
|
+
while ((m = V12_DEPRECATED_TI_REGEX.exec(raw)) !== null) {
|
|
21
|
+
const key = m[1].toLowerCase();
|
|
22
|
+
if (seenOnThisLine.has(key))
|
|
23
|
+
continue;
|
|
24
|
+
seenOnThisLine.add(key);
|
|
25
|
+
const entry = V12_DEPRECATED_TI.get(key);
|
|
26
|
+
if (!entry)
|
|
27
|
+
continue;
|
|
28
|
+
const snippet = raw.trim();
|
|
29
|
+
hits.push({
|
|
30
|
+
line: i + 1,
|
|
31
|
+
function: entry.name,
|
|
32
|
+
snippet: snippet.length > SNIPPET_MAX
|
|
33
|
+
? snippet.slice(0, SNIPPET_MAX) + "…"
|
|
34
|
+
: snippet,
|
|
35
|
+
severity: entry.severity,
|
|
36
|
+
issue: entry.issue,
|
|
37
|
+
suggestion: entry.suggestion,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return hits;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=scanner.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { IgnoredColumn } from "../schemas/processes.js";
|
|
2
|
+
/** Field separator inside a VariablesUIData entry (form feed, 0x0C). */
|
|
3
|
+
export declare const UI_DATA_SEPARATOR = "\f";
|
|
4
|
+
/** One datasource column as the Architect UI records it. */
|
|
5
|
+
export interface VariableColumn {
|
|
6
|
+
/** 1-based column position in the datasource. */
|
|
7
|
+
position: number;
|
|
8
|
+
ignored: boolean;
|
|
9
|
+
/** Variable name the column had before it was set to Ignore, if TM1 kept one. */
|
|
10
|
+
ignoredName?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Decode `VariablesUIData` into one entry per datasource column. Returns an
|
|
14
|
+
* empty array when the process has no UI data (nothing was ever ignored, or the
|
|
15
|
+
* server was asked without the `$select`).
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseVariableColumns(uiData: readonly string[] | undefined): VariableColumn[];
|
|
18
|
+
/**
|
|
19
|
+
* The ignored columns alone, ready for tool output. `name` is the variable name
|
|
20
|
+
* the column carried before it was ignored; TM1 keeps it so the setting can be
|
|
21
|
+
* undone in Architect.
|
|
22
|
+
*/
|
|
23
|
+
export declare function ignoredColumnsOf(uiData: readonly string[] | undefined): IgnoredColumn[];
|
|
24
|
+
/** Stable key for comparing two ignored-column sets (diff tools). */
|
|
25
|
+
export declare function ignoredColumnKey(column: IgnoredColumn): string;
|
|
26
|
+
//# sourceMappingURL=variables-ui-data.d.ts.map
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Datasource columns that a TI process ignores.
|
|
2
|
+
//
|
|
3
|
+
// `Process.Variables` lists only the columns that carry a variable. A column
|
|
4
|
+
// switched to "Ignore" in the Variables tab drops out of that list entirely:
|
|
5
|
+
// its sole trace is `Process.VariablesUIData`, which holds one entry per SOURCE
|
|
6
|
+
// COLUMN — ignored ones included — in column order:
|
|
7
|
+
//
|
|
8
|
+
// "IgnoredInputVarName=vsSTRN\fVarType=32\fColType=1165\f" ignored column
|
|
9
|
+
// "VarType=32\fColType=827\f" ordinary column
|
|
10
|
+
//
|
|
11
|
+
// Fields are separated by form feed (0x0C). VarType 32 = String, 33 = Numeric;
|
|
12
|
+
// ColType 1165 = Ignore. Measured on 1022 real .pro files (396 ignored columns
|
|
13
|
+
// across 30 processes, where the flag lives in line block 582) and live against
|
|
14
|
+
// 11.8 and 12.5.
|
|
15
|
+
//
|
|
16
|
+
// Two consequences drive the code below:
|
|
17
|
+
//
|
|
18
|
+
// - `VariablesUIData` is declared in NEITHER version's $metadata, so a plain
|
|
19
|
+
// GET never returns it — it has to be named in `$select` (undeclared is not
|
|
20
|
+
// the same as absent; see the same trap with `Alias`/`Code`).
|
|
21
|
+
// - The raw strings are carried around verbatim rather than rebuilt from a
|
|
22
|
+
// parsed form. Only ColType 1165 is measured; 827 dominates and 830 shows
|
|
23
|
+
// up once in the corpus, so regenerating the array would flatten contents
|
|
24
|
+
// settings whose meaning has not been established.
|
|
25
|
+
/** Field separator inside a VariablesUIData entry (form feed, 0x0C). */
|
|
26
|
+
export const UI_DATA_SEPARATOR = "\f";
|
|
27
|
+
const IGNORED_COL_TYPE = "1165";
|
|
28
|
+
function fieldsOf(entry) {
|
|
29
|
+
const fields = new Map();
|
|
30
|
+
for (const part of entry.split(UI_DATA_SEPARATOR)) {
|
|
31
|
+
const eq = part.indexOf("=");
|
|
32
|
+
if (eq === -1)
|
|
33
|
+
continue;
|
|
34
|
+
fields.set(part.slice(0, eq), part.slice(eq + 1));
|
|
35
|
+
}
|
|
36
|
+
return fields;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Decode `VariablesUIData` into one entry per datasource column. Returns an
|
|
40
|
+
* empty array when the process has no UI data (nothing was ever ignored, or the
|
|
41
|
+
* server was asked without the `$select`).
|
|
42
|
+
*/
|
|
43
|
+
export function parseVariableColumns(uiData) {
|
|
44
|
+
if (!uiData)
|
|
45
|
+
return [];
|
|
46
|
+
return uiData.map((entry, idx) => {
|
|
47
|
+
const fields = fieldsOf(entry);
|
|
48
|
+
const ignoredName = fields.get("IgnoredInputVarName");
|
|
49
|
+
const column = {
|
|
50
|
+
position: idx + 1,
|
|
51
|
+
ignored: fields.get("ColType") === IGNORED_COL_TYPE,
|
|
52
|
+
};
|
|
53
|
+
// TM1 only writes the remembered name on ignored columns, but a column can
|
|
54
|
+
// be ignored without one — treat the flag, not the name, as the signal.
|
|
55
|
+
if (ignoredName !== undefined && ignoredName !== "")
|
|
56
|
+
column.ignoredName = ignoredName;
|
|
57
|
+
return column;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The ignored columns alone, ready for tool output. `name` is the variable name
|
|
62
|
+
* the column carried before it was ignored; TM1 keeps it so the setting can be
|
|
63
|
+
* undone in Architect.
|
|
64
|
+
*/
|
|
65
|
+
export function ignoredColumnsOf(uiData) {
|
|
66
|
+
return parseVariableColumns(uiData)
|
|
67
|
+
.filter((c) => c.ignored)
|
|
68
|
+
.map((c) => ({
|
|
69
|
+
position: c.position,
|
|
70
|
+
...(c.ignoredName !== undefined ? { name: c.ignoredName } : {}),
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
/** Stable key for comparing two ignored-column sets (diff tools). */
|
|
74
|
+
export function ignoredColumnKey(column) {
|
|
75
|
+
return `${column.position}:${column.name ?? ""}`;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=variables-ui-data.js.map
|
package/dist/load-env.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { config as loadDotenv } from "dotenv";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
// Load environment from .env BEFORE any other module evaluates. MCP clients
|
|
5
|
+
// spawn this binary with THEIR working directory, not the repo's, so the plain
|
|
6
|
+
// `dotenv/config` (which only reads process.cwd()/.env) would never find a repo
|
|
7
|
+
// `.env` — the single most common first-run failure. We additionally resolve
|
|
8
|
+
// `.env` relative to the compiled entrypoint (dist/load-env.js -> ../.env, i.e.
|
|
9
|
+
// the package/repo root) so the documented clone+build setup works regardless of
|
|
10
|
+
// the client's cwd.
|
|
11
|
+
//
|
|
12
|
+
// `DOTENV_CONFIG_PATH` is honored explicitly: dotenv only reads that variable
|
|
13
|
+
// during Node preloading (`node --require dotenv/config`), NOT on a manual
|
|
14
|
+
// `config()` call, so an MCP client that sets it would otherwise fail silently.
|
|
15
|
+
//
|
|
16
|
+
// dotenv never overwrites already-set keys, so precedence is:
|
|
17
|
+
// real shell / MCP `env:` vars > $DOTENV_CONFIG_PATH > cwd/.env > <packageRoot>/.env
|
|
18
|
+
//
|
|
19
|
+
// `quiet: true` is REQUIRED: dotenv v17 prints "injected env" tips to stdout by
|
|
20
|
+
// default, which would corrupt the JSON-RPC stream on the stdio transport.
|
|
21
|
+
if (process.env.DOTENV_CONFIG_PATH) {
|
|
22
|
+
loadDotenv({ path: process.env.DOTENV_CONFIG_PATH, quiet: true });
|
|
23
|
+
}
|
|
24
|
+
loadDotenv({ quiet: true });
|
|
25
|
+
loadDotenv({
|
|
26
|
+
path: join(dirname(fileURLToPath(import.meta.url)), "..", ".env"),
|
|
27
|
+
quiet: true,
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=load-env.js.map
|
package/dist/logger.d.ts
ADDED
package/dist/logger.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import pino from "pino";
|
|
2
|
+
// "Cookie"/"cookie" are defensive: the TM1SessionId travels as a Cookie header
|
|
3
|
+
// VALUE, which path-based redaction of the field name would miss. No code logs
|
|
4
|
+
// headers today, but a future logger.debug({ headers }) must not leak the session.
|
|
5
|
+
const SENSITIVE_FIELDS = [
|
|
6
|
+
"password",
|
|
7
|
+
"Authorization",
|
|
8
|
+
"TM1SessionId",
|
|
9
|
+
"Cookie",
|
|
10
|
+
"cookie",
|
|
11
|
+
"clientSecret",
|
|
12
|
+
"accessToken",
|
|
13
|
+
"apiKey",
|
|
14
|
+
"camPassport",
|
|
15
|
+
];
|
|
16
|
+
const MASK_VALUE = "***";
|
|
17
|
+
function redactPaths() {
|
|
18
|
+
const paths = [];
|
|
19
|
+
for (const field of SENSITIVE_FIELDS) {
|
|
20
|
+
paths.push(field);
|
|
21
|
+
paths.push(`*.${field}`);
|
|
22
|
+
paths.push(`headers.${field}`);
|
|
23
|
+
}
|
|
24
|
+
return paths;
|
|
25
|
+
}
|
|
26
|
+
export function createLogger(config,
|
|
27
|
+
// Test-only: inject an in-memory destination to assert on real output. When
|
|
28
|
+
// omitted (production), logs go to stderr (+ optional file) via a transport.
|
|
29
|
+
// Redaction is configured on the pino instance itself, so it applies to any
|
|
30
|
+
// destination — tests that drive this function exercise the real mask config.
|
|
31
|
+
destination) {
|
|
32
|
+
const options = {
|
|
33
|
+
level: config.logLevel,
|
|
34
|
+
redact: {
|
|
35
|
+
paths: redactPaths(),
|
|
36
|
+
censor: MASK_VALUE,
|
|
37
|
+
},
|
|
38
|
+
timestamp: pino.stdTimeFunctions.isoTime,
|
|
39
|
+
};
|
|
40
|
+
if (destination) {
|
|
41
|
+
return pino(options, destination);
|
|
42
|
+
}
|
|
43
|
+
const targets = [];
|
|
44
|
+
// Always log to stderr so stdout stays clean for MCP stdio transport
|
|
45
|
+
targets.push({
|
|
46
|
+
target: "pino/file",
|
|
47
|
+
options: { destination: 2 }, // fd 2 = stderr
|
|
48
|
+
level: config.logLevel,
|
|
49
|
+
});
|
|
50
|
+
// Optional file output
|
|
51
|
+
if (config.logFile) {
|
|
52
|
+
targets.push({
|
|
53
|
+
target: "pino/file",
|
|
54
|
+
options: { destination: config.logFile },
|
|
55
|
+
level: config.logLevel,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return pino(options, pino.transport({ targets }));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
function userMessage(text) {
|
|
3
|
+
return {
|
|
4
|
+
messages: [{ role: "user", content: { type: "text", text } }],
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export function registerAllPrompts(server) {
|
|
8
|
+
// ── tm1_orientation ─────────────────────────────────────────────────
|
|
9
|
+
// R2-19: LLM onboarding. Surfaces server topology, naming conventions,
|
|
10
|
+
// pagination/envelope shape, and a workflow→tool map so the agent
|
|
11
|
+
// doesn't have to re-derive these from individual tool descriptions.
|
|
12
|
+
server.registerPrompt("tm1_orientation", {
|
|
13
|
+
title: "TM1 MCP server orientation",
|
|
14
|
+
description: "Use at the start of a TM1 session to brief yourself on server topology, naming conventions ('}'-prefix control objects), pagination envelope shape, and the recommended tool sequence per workflow (audit, build, debug, deploy). Read before making tool calls in an unfamiliar TM1 environment.",
|
|
15
|
+
}, () => userMessage([
|
|
16
|
+
"# TM1 MCP Server Orientation",
|
|
17
|
+
"",
|
|
18
|
+
"## Server topology",
|
|
19
|
+
"TM1 = OLAP database with these primary object types:",
|
|
20
|
+
"- **Cubes** — multidimensional fact tables. Each dimension is an ordered axis.",
|
|
21
|
+
"- **Dimensions** — categorical axes with one or more **Hierarchies** (parent/child trees of **Elements**). Element types: N (numeric leaf), C (consolidation/sum), S (string).",
|
|
22
|
+
"- **Subsets** — named element selections inside a hierarchy. Used as view slicers.",
|
|
23
|
+
"- **Views** — saved MDX query (rows × columns × titles) over a cube.",
|
|
24
|
+
"- **Processes (TI)** — TurboIntegrator scripts. 4 tabs: Prolog → Metadata → Data → Epilog.",
|
|
25
|
+
"- **Chores** — scheduled TI sequences with parameters.",
|
|
26
|
+
"- **Cube Rules** — calculated cell formulas with SKIPCHECK + FEEDERS.",
|
|
27
|
+
"- **Clients / Groups** — security principals.",
|
|
28
|
+
"",
|
|
29
|
+
"## Naming conventions",
|
|
30
|
+
"- Object names starting with `}` are **control objects** (system-internal: }ClientProperties, }StatsByCube, …). All `list_*` tools exclude them by default; set `includeControl=true` to inspect.",
|
|
31
|
+
"- Names are case-sensitive. Use exact match from `list_*` output; never guess casing.",
|
|
32
|
+
"- TI process names allow dots, slashes, spaces — URI-encoded on the wire.",
|
|
33
|
+
"",
|
|
34
|
+
"## Response envelope",
|
|
35
|
+
"List/search tools return:",
|
|
36
|
+
"```json",
|
|
37
|
+
'{ "total": N, "count": K, "offset": O, "has_more": bool, "next_offset": O+K|null, "items": [...] }',
|
|
38
|
+
"```",
|
|
39
|
+
'Override with `fetchAll=true` (entire dataset, beware on large dims) or `format="markdown"` (human-readable table, structuredContent still attached).',
|
|
40
|
+
"",
|
|
41
|
+
"## Workflow → tool map",
|
|
42
|
+
"| Goal | Sequence |",
|
|
43
|
+
"|---|---|",
|
|
44
|
+
"| Inspect a cube | `tm1_list_cubes(nameExact=X)` → `tm1_get_cube_rules` → `tm1_get_cube_stats` |",
|
|
45
|
+
"| Debug failed TI | use the `tm1_diagnose_process` prompt |",
|
|
46
|
+
"| Build new model | `tm1_create_dimension` → `tm1_create_element` (bulk: `tm1_bulk_upsert_elements`) → `tm1_create_cube` |",
|
|
47
|
+
"| Audit cube | use the `tm1_audit_cube` prompt |",
|
|
48
|
+
"| Health check | use the `tm1_health_check` prompt |",
|
|
49
|
+
"| Review rules | use the `tm1_rules_review` prompt |",
|
|
50
|
+
"| Deploy TI bundle | `tm1_diff_process_with_file` (preview) → `tm1_install_pro_bundle` |",
|
|
51
|
+
"| Find dead code | `tm1_find_orphan_dimensions`, `tm1_analyze_object_usage` |",
|
|
52
|
+
"| Pre-write check | `tm1_check_writable_coords` (N-Level + rule-overlap warn) |",
|
|
53
|
+
"",
|
|
54
|
+
"## Safety rules",
|
|
55
|
+
"- Destructive tools (`tm1_delete_cube`, `tm1_delete_dimension`, `tm1_delete_process`, `tm1_clear_cube`) require a `confirm=<name verbatim>` arg as a safety net.",
|
|
56
|
+
"- `tm1_execute_process` and `tm1_execute_chore` are destructive in effect (irreversible cell mutation) even though they are not `delete_*`.",
|
|
57
|
+
"- Cube rules edits: validate first with `tm1_check_cube_rule` before `tm1_set_cube_rules`.",
|
|
58
|
+
"",
|
|
59
|
+
"## When in doubt",
|
|
60
|
+
"Call `tm1_get_server_info` first to check version (v11/v12) and feature flags (MTQ, JobQueuing, AllowSeparateNandCRules).",
|
|
61
|
+
].join("\n")));
|
|
62
|
+
// ── tm1_diagnose_process ────────────────────────────────────────────
|
|
63
|
+
server.registerPrompt("tm1_diagnose_process", {
|
|
64
|
+
title: "Diagnose failed TI process",
|
|
65
|
+
description: "Walk-through to root-cause a failed TurboIntegrator process: error logs (with cascade), parameter shape, callgraph dependencies, message log correlation.",
|
|
66
|
+
argsSchema: {
|
|
67
|
+
processName: z
|
|
68
|
+
.string()
|
|
69
|
+
.describe("Name of the failed TI process to diagnose"),
|
|
70
|
+
},
|
|
71
|
+
}, ({ processName }) => userMessage([
|
|
72
|
+
`Diagnose why TI process **${processName}** failed. Follow this sequence:`,
|
|
73
|
+
"",
|
|
74
|
+
`1. **Error logs**: call \`tm1_diagnose_process_error(processName="${processName}", includeRelated=true, tail=80)\` — pulls newest logs + cascade siblings (sub-processes failing seconds apart).`,
|
|
75
|
+
`2. **Parameters**: call \`tm1_get_process_parameters(processName="${processName}")\` — verify the call site passed the right shape.`,
|
|
76
|
+
`3. **Source code**: call \`tm1_get_process_code(processName="${processName}")\` to inspect Prolog/Metadata/Data/Epilog.`,
|
|
77
|
+
`4. **Static refs**: call \`tm1_validate_process_refs(processName="${processName}")\` — surfaces unresolved cube/dimension references.`,
|
|
78
|
+
`5. **Callgraph**: call \`tm1_analyze_callgraph(processName="${processName}", summary=true)\` — what does this process call, what calls it.`,
|
|
79
|
+
`6. **Server log** (v11 only): \`tm1_get_message_log(filter="${processName}", top=50)\` for server-side correlation. Skip on v12 — the message log endpoint is deprecated there and the tool is not registered.`,
|
|
80
|
+
"",
|
|
81
|
+
"Synthesize: which step failed (Prolog/Metadata/Data/Epilog), what parameter or data triggered it, and the minimal fix.",
|
|
82
|
+
].join("\n")));
|
|
83
|
+
// ── tm1_audit_cube ──────────────────────────────────────────────────
|
|
84
|
+
server.registerPrompt("tm1_audit_cube", {
|
|
85
|
+
title: "Audit a cube",
|
|
86
|
+
description: "Comprehensive read-only audit of a TM1 cube: dimensions, rules, feeders, populated cell counts, callgraph dependencies, recent transaction-log activity.",
|
|
87
|
+
argsSchema: {
|
|
88
|
+
cubeName: z.string().describe("Name of the TM1 cube to audit"),
|
|
89
|
+
},
|
|
90
|
+
}, ({ cubeName }) => userMessage([
|
|
91
|
+
`Run a read-only audit of cube **${cubeName}**. Report findings.`,
|
|
92
|
+
"",
|
|
93
|
+
`1. **Shape**: \`tm1_list_cubes(nameExact="${cubeName}", includeRules=true)\` — confirm dimensions and rules-presence.`,
|
|
94
|
+
`2. **Rules**: \`tm1_get_cube_rules(cube="${cubeName}")\` — inspect SKIPCHECK + FEEDERS structure. Validate with \`tm1_check_cube_rule\` if anything looks off.`,
|
|
95
|
+
`3. **Stats**: \`tm1_get_cube_stats(cubeName="${cubeName}")\` — memory, populated cells, fed cells, feeder efficiency.`,
|
|
96
|
+
`4. **Object usage**: \`tm1_analyze_object_usage(objectType="cube", objectName="${cubeName}")\` — which TI processes / chores / views reference this cube.`,
|
|
97
|
+
`5. **Recent writes** (v11 only): \`tm1_get_transaction_log(cubeName="${cubeName}", top=30)\` — what changed lately. Skip on v12 — the transaction log endpoint is deprecated there and the tool is not registered.`,
|
|
98
|
+
"",
|
|
99
|
+
"Output: 1-paragraph health summary, list of concerns (high feeder count, rules without skipcheck, orphan deps), and concrete next-action suggestions.",
|
|
100
|
+
].join("\n")));
|
|
101
|
+
// ── tm1_health_check ────────────────────────────────────────────────
|
|
102
|
+
server.registerPrompt("tm1_health_check", {
|
|
103
|
+
title: "TM1 server health check",
|
|
104
|
+
description: "Snapshot of TM1 server state: connection, version, capability flags, object counts, active sessions, recent errors.",
|
|
105
|
+
}, () => userMessage([
|
|
106
|
+
"Run a TM1 server health check and report a 1-paragraph summary plus a punch-list of concerns.",
|
|
107
|
+
"",
|
|
108
|
+
"1. **State**: `tm1_get_server_state` — connection, version, MTQ/JobQueuing flags, object counts.",
|
|
109
|
+
"2. **Sessions**: `tm1_list_sessions(compact=true)` — named users vs. anonymous count.",
|
|
110
|
+
"3. **Threads**: `tm1_list_threads` — long-running operations, locks.",
|
|
111
|
+
"4. **Recent errors**: `tm1_list_error_logs(top=20)` — newest TI failures.",
|
|
112
|
+
"5. **Server log** (v11 only): `tm1_get_message_log(top=50)` — recent server-level events. Skip on v12, where the tool is not registered.",
|
|
113
|
+
"",
|
|
114
|
+
'Flag: stuck threads (state="Wait" with elapsedTime > 10min), repeated error patterns, capability-flag surprises.',
|
|
115
|
+
].join("\n")));
|
|
116
|
+
// ── tm1_rules_review ────────────────────────────────────────────────
|
|
117
|
+
server.registerPrompt("tm1_rules_review", {
|
|
118
|
+
title: "Cube rules review",
|
|
119
|
+
description: "Code-review a cube's rules text: SKIPCHECK placement, FEEDERS coverage, ratio consolidations (N/C splits), syntax validation.",
|
|
120
|
+
argsSchema: {
|
|
121
|
+
cubeName: z.string().describe("Name of the cube whose rules to review"),
|
|
122
|
+
},
|
|
123
|
+
}, ({ cubeName }) => userMessage([
|
|
124
|
+
`Review the rules of cube **${cubeName}**. Code-review style.`,
|
|
125
|
+
"",
|
|
126
|
+
`1. **Read rules**: \`tm1_get_cube_rules(cube="${cubeName}")\` — full rules text.`,
|
|
127
|
+
`2. **Syntax check**: \`tm1_check_cube_rule(cube="${cubeName}", rules=<text from step 1>)\` — surface line-numbered errors before any change.`,
|
|
128
|
+
`3. **Stats correlation**: \`tm1_get_cube_stats(cubeName="${cubeName}")\` — fed-cell-count vs populated-numeric, feeder efficiency.`,
|
|
129
|
+
`4. **Reference impact**: \`tm1_analyze_object_usage(objectType="cube", objectName="${cubeName}")\` — what depends on this cube's calculated cells.`,
|
|
130
|
+
`5. **Per-cell verification (v11)**: pick a populated rule cell via \`tm1_sample_cells(cubeName="${cubeName}")\`, then \`tm1_trace_cell_calculation\` (why has it this value) and \`tm1_check_feeders\` / \`tm1_trace_feeders\` (does it feed correctly) to confirm suspected feeder findings at runtime.`,
|
|
131
|
+
"",
|
|
132
|
+
"Comment on:",
|
|
133
|
+
"- SKIPCHECK at the top, FEEDERS section structure",
|
|
134
|
+
"- ratio measures with explicit N: + C: branches (consolidations should not sum ratios)",
|
|
135
|
+
"- feeder coverage for every rules-fed cell",
|
|
136
|
+
"- AllowSeparateNandCRules expectations (check via tm1_get_server_info)",
|
|
137
|
+
"",
|
|
138
|
+
"Suggest changes as a unified diff.",
|
|
139
|
+
].join("\n")));
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=index.js.map
|