touchdesigner-mcp-server
Version:
MCP server for TouchDesigner
91 lines (90 loc) • 3.55 kB
TypeScript
/**
* Compatibility is decided by comparing the connected TouchDesigner
* component's API version against the API version this release ships with
* (`mcpCompatibility.expectedApiVersion`), bounded below by
* `mcpCompatibility.minApiVersion`.
*
* The npm package version is deliberately NOT part of the decision: the
* package version and the API version are independent axes, so a package
* major bump alone must never invalidate deployed components.
*/
export declare const COMPATIBILITY_POLICY_TYPES: {
readonly BELOW_MIN_VERSION: "belowMinVersion";
readonly COMPATIBLE: "compatible";
readonly COMPONENT_NEWER: "componentNewer";
readonly COMPONENT_OUTDATED: "componentOutdated";
readonly NO_VERSION: "noVersion";
readonly SERVER_OUTDATED: "serverOutdated";
};
export declare const COMPATIBILITY_POLICY_ERROR_LEVELS: {
readonly ALLOW: "info";
readonly ERROR: "error";
readonly WARNING: "warning";
};
export type CompatibilityPolicyType = (typeof COMPATIBILITY_POLICY_TYPES)[keyof typeof COMPATIBILITY_POLICY_TYPES];
export type CompatibilityPolicyErrorLevel = (typeof COMPATIBILITY_POLICY_ERROR_LEVELS)[keyof typeof COMPATIBILITY_POLICY_ERROR_LEVELS];
/**
* Arguments shared by every compatibility message generator
*/
export interface CompatibilityMessageArgs {
apiVersion: string;
expectedApiVersion: string;
mcpVersion: string;
minRequired: string;
}
export declare const getCompatibilityPolicyType: (params: {
apiVersion: string;
expectedApiVersion: string;
}) => CompatibilityPolicyType;
export declare const getCompatibilityPolicy: (type: CompatibilityPolicyType) => {
readonly compatible: false;
readonly level: "error";
readonly message: typeof generateNoVersionMessage;
} | {
readonly compatible: false;
readonly level: "error";
readonly message: typeof generateMinVersionMessage;
} | {
readonly compatible: false;
readonly level: "error";
readonly message: typeof generateServerOutdatedMessage;
} | {
readonly compatible: true;
readonly level: "warning";
readonly message: typeof generateComponentOutdatedMessage;
} | {
readonly compatible: true;
readonly level: "warning";
readonly message: typeof generateComponentNewerMessage;
} | {
readonly compatible: true;
readonly level: "info";
readonly message: typeof generateFullyCompatibleMessage;
};
/**
* Generate error message for unknown version information
*/
export declare function generateNoVersionMessage(args: CompatibilityMessageArgs): string;
/**
* Generate error message when API version is below minimum compatible version
*/
export declare function generateMinVersionMessage(args: CompatibilityMessageArgs): string;
/**
* Generate error message when the component's API generation is newer than
* this MCP server release supports
*/
export declare function generateServerOutdatedMessage(args: CompatibilityMessageArgs): string;
/**
* Generate warning message when the component is older than the API version
* this release ships with
*/
export declare function generateComponentOutdatedMessage(args: CompatibilityMessageArgs): string;
/**
* Generate warning message when the component is newer than the API version
* this release ships with (same generation)
*/
export declare function generateComponentNewerMessage(args: CompatibilityMessageArgs): string;
/**
* Generate info message when versions are fully compatible
*/
export declare function generateFullyCompatibleMessage(args: CompatibilityMessageArgs): string;