helpers.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. "use strict";
  2. /**
  3. * Experimental task capability assertion helpers.
  4. * WARNING: These APIs are experimental and may change without notice.
  5. *
  6. * @experimental
  7. */
  8. Object.defineProperty(exports, "__esModule", { value: true });
  9. exports.assertToolsCallTaskCapability = assertToolsCallTaskCapability;
  10. exports.assertClientRequestTaskCapability = assertClientRequestTaskCapability;
  11. /**
  12. * Asserts that task creation is supported for tools/call.
  13. * Used by Client.assertTaskCapability and Server.assertTaskHandlerCapability.
  14. *
  15. * @param requests - The task requests capability object
  16. * @param method - The method being checked
  17. * @param entityName - 'Server' or 'Client' for error messages
  18. * @throws Error if the capability is not supported
  19. *
  20. * @experimental
  21. */
  22. function assertToolsCallTaskCapability(requests, method, entityName) {
  23. if (!requests) {
  24. throw new Error(`${entityName} does not support task creation (required for ${method})`);
  25. }
  26. switch (method) {
  27. case 'tools/call':
  28. if (!requests.tools?.call) {
  29. throw new Error(`${entityName} does not support task creation for tools/call (required for ${method})`);
  30. }
  31. break;
  32. default:
  33. // Method doesn't support tasks, which is fine - no error
  34. break;
  35. }
  36. }
  37. /**
  38. * Asserts that task creation is supported for sampling/createMessage or elicitation/create.
  39. * Used by Server.assertTaskCapability and Client.assertTaskHandlerCapability.
  40. *
  41. * @param requests - The task requests capability object
  42. * @param method - The method being checked
  43. * @param entityName - 'Server' or 'Client' for error messages
  44. * @throws Error if the capability is not supported
  45. *
  46. * @experimental
  47. */
  48. function assertClientRequestTaskCapability(requests, method, entityName) {
  49. if (!requests) {
  50. throw new Error(`${entityName} does not support task creation (required for ${method})`);
  51. }
  52. switch (method) {
  53. case 'sampling/createMessage':
  54. if (!requests.sampling?.createMessage) {
  55. throw new Error(`${entityName} does not support task creation for sampling/createMessage (required for ${method})`);
  56. }
  57. break;
  58. case 'elicitation/create':
  59. if (!requests.elicitation?.create) {
  60. throw new Error(`${entityName} does not support task creation for elicitation/create (required for ${method})`);
  61. }
  62. break;
  63. default:
  64. // Method doesn't support tasks, which is fine - no error
  65. break;
  66. }
  67. }
  68. //# sourceMappingURL=helpers.js.map