@cyanheads/brapi-mcp-server 0.7.10 → 0.7.12

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 (121) hide show
  1. package/CLAUDE.md +32 -25
  2. package/Dockerfile +19 -5
  3. package/README.md +7 -4
  4. package/changelog/0.7.x/0.7.11.md +43 -0
  5. package/changelog/0.7.x/0.7.12.md +35 -0
  6. package/changelog/template.md +62 -40
  7. package/dist/config/alias-credentials.d.ts +1 -1
  8. package/dist/config/alias-credentials.d.ts.map +1 -1
  9. package/dist/config/alias-credentials.js +24 -8
  10. package/dist/config/alias-credentials.js.map +1 -1
  11. package/dist/config/builtin-aliases.js.map +1 -1
  12. package/dist/config/server-config.d.ts +1 -1
  13. package/dist/config/server-config.d.ts.map +1 -1
  14. package/dist/config/server-config.js +3 -1
  15. package/dist/config/server-config.js.map +1 -1
  16. package/dist/mcp-server/resources/definitions/brapi-calls.resource.d.ts +3 -3
  17. package/dist/mcp-server/resources/definitions/brapi-calls.resource.d.ts.map +1 -1
  18. package/dist/mcp-server/resources/definitions/brapi-calls.resource.js +1 -1
  19. package/dist/mcp-server/resources/definitions/brapi-filters.resource.d.ts +3 -3
  20. package/dist/mcp-server/resources/definitions/brapi-filters.resource.d.ts.map +1 -1
  21. package/dist/mcp-server/resources/definitions/brapi-filters.resource.js +1 -1
  22. package/dist/mcp-server/resources/definitions/brapi-germplasm.resource.d.ts +6 -6
  23. package/dist/mcp-server/resources/definitions/brapi-germplasm.resource.d.ts.map +1 -1
  24. package/dist/mcp-server/resources/definitions/brapi-germplasm.resource.js +1 -1
  25. package/dist/mcp-server/resources/definitions/brapi-server-info.resource.d.ts +3 -3
  26. package/dist/mcp-server/resources/definitions/brapi-server-info.resource.d.ts.map +1 -1
  27. package/dist/mcp-server/resources/definitions/brapi-server-info.resource.js +1 -1
  28. package/dist/mcp-server/resources/definitions/brapi-study.resource.d.ts +6 -6
  29. package/dist/mcp-server/resources/definitions/brapi-study.resource.d.ts.map +1 -1
  30. package/dist/mcp-server/resources/definitions/brapi-study.resource.js +1 -1
  31. package/dist/mcp-server/resources/definitions/brapi-variable.resource.d.ts +6 -6
  32. package/dist/mcp-server/resources/definitions/brapi-variable.resource.d.ts.map +1 -1
  33. package/dist/mcp-server/resources/definitions/brapi-variable.resource.js +1 -1
  34. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.d.ts +19 -14
  35. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.d.ts.map +1 -1
  36. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.js +34 -0
  37. package/dist/mcp-server/tools/definitions/brapi-build-phenotype-matrix.tool.js.map +1 -1
  38. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts +12 -12
  39. package/dist/mcp-server/tools/definitions/brapi-connect.tool.d.ts.map +1 -1
  40. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts +2 -2
  41. package/dist/mcp-server/tools/definitions/brapi-dataframe-describe.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts +14 -14
  43. package/dist/mcp-server/tools/definitions/brapi-dataframe-export.tool.d.ts.map +1 -1
  44. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts +9 -4
  45. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js +31 -0
  47. package/dist/mcp-server/tools/definitions/brapi-dataframe-query.tool.js.map +1 -1
  48. package/dist/mcp-server/tools/definitions/brapi-describe-filters.tool.d.ts +6 -6
  49. package/dist/mcp-server/tools/definitions/brapi-describe-filters.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.d.ts +11 -11
  51. package/dist/mcp-server/tools/definitions/brapi-export-genotype-matrix.tool.d.ts.map +1 -1
  52. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts +11 -11
  53. package/dist/mcp-server/tools/definitions/brapi-find-genotype-calls.tool.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts +6 -6
  55. package/dist/mcp-server/tools/definitions/brapi-find-germplasm.tool.d.ts.map +1 -1
  56. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts +6 -6
  57. package/dist/mcp-server/tools/definitions/brapi-find-images.tool.d.ts.map +1 -1
  58. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts +6 -6
  59. package/dist/mcp-server/tools/definitions/brapi-find-locations.tool.d.ts.map +1 -1
  60. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts +6 -6
  61. package/dist/mcp-server/tools/definitions/brapi-find-observations.tool.d.ts.map +1 -1
  62. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts +6 -6
  63. package/dist/mcp-server/tools/definitions/brapi-find-studies.tool.d.ts.map +1 -1
  64. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts +7 -7
  65. package/dist/mcp-server/tools/definitions/brapi-find-variables.tool.d.ts.map +1 -1
  66. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts +6 -6
  67. package/dist/mcp-server/tools/definitions/brapi-find-variants.tool.d.ts.map +1 -1
  68. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.d.ts +6 -6
  69. package/dist/mcp-server/tools/definitions/brapi-germplasm-performance.tool.d.ts.map +1 -1
  70. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts +6 -6
  71. package/dist/mcp-server/tools/definitions/brapi-get-germplasm.tool.d.ts.map +1 -1
  72. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.d.ts +6 -6
  73. package/dist/mcp-server/tools/definitions/brapi-get-image.tool.d.ts.map +1 -1
  74. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts +6 -6
  75. package/dist/mcp-server/tools/definitions/brapi-get-study.tool.d.ts.map +1 -1
  76. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts +6 -6
  77. package/dist/mcp-server/tools/definitions/brapi-raw-get.tool.d.ts.map +1 -1
  78. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts +7 -7
  79. package/dist/mcp-server/tools/definitions/brapi-raw-search.tool.d.ts.map +1 -1
  80. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts +9 -9
  81. package/dist/mcp-server/tools/definitions/brapi-server-info.tool.d.ts.map +1 -1
  82. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.d.ts +23 -27
  83. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.d.ts.map +1 -1
  84. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.js +41 -55
  85. package/dist/mcp-server/tools/definitions/brapi-submit-observations.tool.js.map +1 -1
  86. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.d.ts +8 -8
  87. package/dist/mcp-server/tools/definitions/brapi-walk-pedigree.tool.d.ts.map +1 -1
  88. package/dist/mcp-server/tools/definitions/index.d.ts +829 -824
  89. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  90. package/dist/mcp-server/tools/shared/find-helpers.js.map +1 -1
  91. package/dist/mcp-server/tools/shared/observations.js.map +1 -1
  92. package/dist/mcp-server/tools/shared/orientation-envelope.d.ts +12 -12
  93. package/dist/services/brapi-client/brapi-client.d.ts +2 -3
  94. package/dist/services/brapi-client/brapi-client.d.ts.map +1 -1
  95. package/dist/services/brapi-client/brapi-client.js +16 -19
  96. package/dist/services/brapi-client/brapi-client.js.map +1 -1
  97. package/dist/services/brapi-client/types.d.ts +2 -2
  98. package/dist/services/brapi-dialect/detect.d.ts +1 -1
  99. package/dist/services/brapi-dialect/detect.js.map +1 -1
  100. package/dist/services/brapi-dialect/index.d.ts +2 -2
  101. package/dist/services/brapi-dialect/index.js +1 -1
  102. package/dist/services/brapi-dialect/index.js.map +1 -1
  103. package/dist/services/canvas-bridge/canvas-bridge.d.ts +1 -1
  104. package/dist/services/canvas-bridge/canvas-bridge.d.ts.map +1 -1
  105. package/dist/services/canvas-bridge/canvas-bridge.js.map +1 -1
  106. package/dist/services/capability-registry/capability-registry.d.ts +1 -1
  107. package/dist/services/capability-registry/capability-registry.d.ts.map +1 -1
  108. package/dist/services/capability-registry/capability-registry.js +1 -1
  109. package/dist/services/capability-registry/capability-registry.js.map +1 -1
  110. package/dist/services/ontology-resolver/ontology-resolver.d.ts.map +1 -1
  111. package/dist/services/ontology-resolver/ontology-resolver.js.map +1 -1
  112. package/dist/services/reference-data-cache/reference-data-cache.d.ts +2 -2
  113. package/dist/services/reference-data-cache/reference-data-cache.d.ts.map +1 -1
  114. package/dist/services/reference-data-cache/reference-data-cache.js +1 -1
  115. package/dist/services/reference-data-cache/reference-data-cache.js.map +1 -1
  116. package/dist/services/server-registry/server-registry.d.ts.map +1 -1
  117. package/dist/services/server-registry/server-registry.js.map +1 -1
  118. package/dist/services/server-registry/types.d.ts +1 -1
  119. package/manifest.json +8 -6
  120. package/package.json +15 -14
  121. package/server.json +3 -3
@@ -53,15 +53,15 @@ export declare const brapiFindVariants: import("@cyanheads/mcp-ts-core").ToolDef
53
53
  totalCount: z.ZodOptional<z.ZodNumber>;
54
54
  }, z.core.$strip>>;
55
55
  }, z.core.$strip>, readonly [{
56
- readonly reason: "unknown_alias";
56
+ readonly reason: 'unknown_alias';
57
57
  readonly code: JsonRpcErrorCode.NotFound;
58
- readonly when: "No connection has been registered under the requested alias";
59
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_find_variants.";
58
+ readonly when: 'No connection has been registered under the requested alias';
59
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_find_variants.';
60
60
  }, {
61
- readonly reason: "all_filters_dropped";
61
+ readonly reason: 'all_filters_dropped';
62
62
  readonly code: JsonRpcErrorCode.ValidationError;
63
- readonly when: "The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.";
64
- readonly recovery: "Drop the unsupported filters and rescope by variants, variantSets, references, or referenceName + start/end — these filter paths are honored on the active dialect.";
63
+ readonly when: 'The active dialect dropped every filter the agent supplied — the upstream server does not honor any of the requested scope filters on this endpoint, so the call would silently widen to the unfiltered baseline.';
64
+ readonly recovery: 'Drop the unsupported filters and rescope by variants, variantSets, references, or referenceName + start/end — these filter paths are honored on the active dialect.';
65
65
  }], {
66
66
  readonly totalCount: z.ZodNumber;
67
67
  readonly returnedCount: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-find-variants.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAsHjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4P5B,CAAC"}
1
+ {"version":3,"file":"brapi-find-variants.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-find-variants.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAsHjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAMhB,eAAe;;mBAEjB,6DAA6D;uBAEjE,uHAAuH;;qBAGjH,qBAAqB;;mBAEvB,mNAAmN;uBAEvN,qKAAqK;;;;;;;;EA2O3K,CAAC"}
@@ -48,14 +48,14 @@ export declare const brapiGermplasmPerformance: import("@cyanheads/mcp-ts-core")
48
48
  }, z.core.$strip>>;
49
49
  warnings: z.ZodArray<z.ZodString>;
50
50
  }, z.core.$strip>, readonly [{
51
- readonly reason: "unknown_alias";
51
+ readonly reason: 'unknown_alias';
52
52
  readonly code: JsonRpcErrorCode.NotFound;
53
- readonly when: "No connection has been registered under the requested alias";
54
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_germplasm_performance.";
53
+ readonly when: 'No connection has been registered under the requested alias';
54
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_germplasm_performance.';
55
55
  }, {
56
- readonly reason: "germplasm_not_found";
56
+ readonly reason: 'germplasm_not_found';
57
57
  readonly code: JsonRpcErrorCode.NotFound;
58
- readonly when: "Upstream returned no germplasm record for the requested germplasmDbId";
59
- readonly recovery: "Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.";
58
+ readonly when: 'Upstream returned no germplasm record for the requested germplasmDbId';
59
+ readonly recovery: 'Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.';
60
60
  }], undefined>;
61
61
  //# sourceMappingURL=brapi-germplasm-performance.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-germplasm-performance.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-germplasm-performance.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwGjE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2LpC,CAAC"}
1
+ {"version":3,"file":"brapi-germplasm-performance.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-germplasm-performance.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwGjE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;qBAMxB,eAAe;;mBAEjB,6DAA6D;uBAEjE,+HAA+H;;qBAGzH,qBAAqB;;mBAEvB,uEAAuE;uBAE3E,mGAAmG;cA0KzG,CAAC"}
@@ -51,14 +51,14 @@ export declare const brapiGetGermplasm: import("@cyanheads/mcp-ts-core").ToolDef
51
51
  directDescendantCount: z.ZodOptional<z.ZodNumber>;
52
52
  warnings: z.ZodArray<z.ZodString>;
53
53
  }, z.core.$strip>, readonly [{
54
- readonly reason: "unknown_alias";
54
+ readonly reason: 'unknown_alias';
55
55
  readonly code: JsonRpcErrorCode.NotFound;
56
- readonly when: "No connection has been registered under the requested alias";
57
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_get_germplasm.";
56
+ readonly when: 'No connection has been registered under the requested alias';
57
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_get_germplasm.';
58
58
  }, {
59
- readonly reason: "germplasm_not_found";
59
+ readonly reason: 'germplasm_not_found';
60
60
  readonly code: JsonRpcErrorCode.NotFound;
61
- readonly when: "Upstream returned no germplasm record for the requested DbId";
62
- readonly recovery: "Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.";
61
+ readonly when: 'Upstream returned no germplasm record for the requested DbId';
62
+ readonly recovery: 'Verify the germplasmDbId on the target server, or run brapi_find_germplasm to discover valid IDs.';
63
63
  }], undefined>;
64
64
  //# sourceMappingURL=brapi-get-germplasm.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-get-germplasm.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-get-germplasm.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA4GjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2P5B,CAAC"}
1
+ {"version":3,"file":"brapi-get-germplasm.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-get-germplasm.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA4GjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAMhB,eAAe;;mBAEjB,6DAA6D;uBAEjE,uHAAuH;;qBAGjH,qBAAqB;;mBAEvB,8DAA8D;uBAElE,mGAAmG;cA0OzG,CAAC"}
@@ -49,14 +49,14 @@ export declare const brapiGetImage: import("@cyanheads/mcp-ts-core").ToolDefinit
49
49
  warning: z.ZodString;
50
50
  }, z.core.$strip>>;
51
51
  }, z.core.$strip>, readonly [{
52
- readonly reason: "unknown_alias";
52
+ readonly reason: 'unknown_alias';
53
53
  readonly code: JsonRpcErrorCode.NotFound;
54
- readonly when: "No connection has been registered under the requested alias";
55
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_get_image.";
54
+ readonly when: 'No connection has been registered under the requested alias';
55
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_get_image.';
56
56
  }, {
57
- readonly reason: "images_unsupported";
57
+ readonly reason: 'images_unsupported';
58
58
  readonly code: JsonRpcErrorCode.NotFound;
59
- readonly when: "BrAPI server does not advertise /images in /serverinfo";
60
- readonly recovery: "Run brapi_server_info to inspect the advertised endpoints, or call brapi_connect with a different alias for a server that exposes /images.";
59
+ readonly when: 'BrAPI server does not advertise /images in /serverinfo';
60
+ readonly recovery: 'Run brapi_server_info to inspect the advertised endpoints, or call brapi_connect with a different alias for a server that exposes /images.';
61
61
  }], undefined>;
62
62
  //# sourceMappingURL=brapi-get-image.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-get-image.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-get-image.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAiFjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiKxB,CAAC"}
1
+ {"version":3,"file":"brapi-get-image.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-get-image.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAiFjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAKZ,eAAe;;mBAEjB,6DAA6D;uBAEjE,mHAAmH;;qBAG7G,oBAAoB;;mBAEtB,wDAAwD;uBAE5D,4IAA4I;cAiJlJ,CAAC"}
@@ -68,14 +68,14 @@ export declare const brapiGetStudy: import("@cyanheads/mcp-ts-core").ToolDefinit
68
68
  variableCount: z.ZodOptional<z.ZodNumber>;
69
69
  warnings: z.ZodArray<z.ZodString>;
70
70
  }, z.core.$strip>, readonly [{
71
- readonly reason: "unknown_alias";
71
+ readonly reason: 'unknown_alias';
72
72
  readonly code: JsonRpcErrorCode.NotFound;
73
- readonly when: "No connection has been registered under the requested alias";
74
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_get_study.";
73
+ readonly when: 'No connection has been registered under the requested alias';
74
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_get_study.';
75
75
  }, {
76
- readonly reason: "study_not_found";
76
+ readonly reason: 'study_not_found';
77
77
  readonly code: JsonRpcErrorCode.NotFound;
78
- readonly when: "Upstream returned no study record for the requested DbId";
79
- readonly recovery: "Verify the studyDbId on the target server, or run brapi_find_studies to discover valid IDs.";
78
+ readonly when: 'Upstream returned no study record for the requested DbId';
79
+ readonly recovery: 'Verify the studyDbId on the target server, or run brapi_find_studies to discover valid IDs.';
80
80
  }], undefined>;
81
81
  //# sourceMappingURL=brapi-get-study.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-get-study.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-get-study.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmJjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8QxB,CAAC"}
1
+ {"version":3,"file":"brapi-get-study.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-get-study.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmJjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAMZ,eAAe;;mBAEjB,6DAA6D;uBAEjE,mHAAmH;;qBAG7G,iBAAiB;;mBAEnB,0DAA0D;uBAE9D,6FAA6F;cA6PnG,CAAC"}
@@ -44,14 +44,14 @@ export declare const brapiRawGet: import("@cyanheads/mcp-ts-core").ToolDefinitio
44
44
  totalCount: z.ZodOptional<z.ZodNumber>;
45
45
  }, z.core.$strip>>;
46
46
  }, z.core.$strip>, readonly [{
47
- readonly reason: "unknown_alias";
47
+ readonly reason: 'unknown_alias';
48
48
  readonly code: JsonRpcErrorCode.NotFound;
49
- readonly when: "No connection has been registered under the requested alias";
50
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_raw_get.";
49
+ readonly when: 'No connection has been registered under the requested alias';
50
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_raw_get.';
51
51
  }, {
52
- readonly reason: "cross_origin_path";
52
+ readonly reason: 'cross_origin_path';
53
53
  readonly code: JsonRpcErrorCode.ValidationError;
54
- readonly when: "path argument was a full URL instead of a relative BrAPI route";
55
- readonly recovery: "Pass a path like \"/samples\" or \"/methods\" — the connection alias supplies the baseUrl.";
54
+ readonly when: 'path argument was a full URL instead of a relative BrAPI route';
55
+ readonly recovery: 'Pass a path like "/samples" or "/methods" — the connection alias supplies the baseUrl.';
56
56
  }], undefined>;
57
57
  //# sourceMappingURL=brapi-raw-get.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-raw-get.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-get.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAuDjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoItB,CAAC"}
1
+ {"version":3,"file":"brapi-raw-get.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-get.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAuDjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAMV,eAAe;;mBAEjB,6DAA6D;uBAEjE,iHAAiH;;qBAG3G,mBAAmB;;mBAErB,gEAAgE;uBAEpE,wFAAwF;cAmH9F,CAAC"}
@@ -21,8 +21,8 @@ export declare const brapiRawSearch: import("@cyanheads/mcp-ts-core").ToolDefini
21
21
  alias: z.ZodString;
22
22
  noun: z.ZodString;
23
23
  kind: z.ZodEnum<{
24
- sync: "sync";
25
24
  async: "async";
25
+ sync: "sync";
26
26
  }>;
27
27
  searchResultsDbId: z.ZodOptional<z.ZodString>;
28
28
  metadata: z.ZodObject<{
@@ -47,14 +47,14 @@ export declare const brapiRawSearch: import("@cyanheads/mcp-ts-core").ToolDefini
47
47
  totalCount: z.ZodOptional<z.ZodNumber>;
48
48
  }, z.core.$strip>>;
49
49
  }, z.core.$strip>, readonly [{
50
- readonly reason: "unknown_alias";
50
+ readonly reason: 'unknown_alias';
51
51
  readonly code: JsonRpcErrorCode.NotFound;
52
- readonly when: "No connection has been registered under the requested alias";
53
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_raw_search.";
52
+ readonly when: 'No connection has been registered under the requested alias';
53
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_raw_search.';
54
54
  }, {
55
- readonly reason: "search_endpoint_disabled";
55
+ readonly reason: 'search_endpoint_disabled';
56
56
  readonly code: JsonRpcErrorCode.ValidationError;
57
- readonly when: "The active dialect declares this POST /search/{noun} route as known-dead on this server";
58
- readonly recovery: "Use the curated find_* tool for this noun — it routes through GET filters instead and avoids the dead search route.";
57
+ readonly when: 'The active dialect declares this POST /search/{noun} route as known-dead on this server';
58
+ readonly recovery: 'Use the curated find_* tool for this noun — it routes through GET filters instead and avoids the dead search route.';
59
59
  }], undefined>;
60
60
  //# sourceMappingURL=brapi-raw-search.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-raw-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-search.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6DjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmKzB,CAAC"}
1
+ {"version":3,"file":"brapi-raw-search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-raw-search.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6DjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAMb,eAAe;;mBAEjB,6DAA6D;uBAEjE,oHAAoH;;qBAG9G,0BAA0B;;mBAE5B,yFAAyF;uBAE7F,qHAAqH;cAkJ3H,CAAC"}
@@ -25,11 +25,11 @@ export declare const brapiServerInfo: import("@cyanheads/mcp-ts-core").ToolDefin
25
25
  }, z.core.$strip>;
26
26
  auth: z.ZodObject<{
27
27
  mode: z.ZodEnum<{
28
- none: "none";
29
- sgn: "sgn";
30
- oauth2: "oauth2";
31
28
  api_key: "api_key";
32
29
  bearer: "bearer";
30
+ none: "none";
31
+ oauth2: "oauth2";
32
+ sgn: "sgn";
33
33
  }>;
34
34
  headerName: z.ZodOptional<z.ZodString>;
35
35
  expiresAt: z.ZodOptional<z.ZodString>;
@@ -43,10 +43,10 @@ export declare const brapiServerInfo: import("@cyanheads/mcp-ts-core").ToolDefin
43
43
  id: z.ZodString;
44
44
  source: z.ZodEnum<{
45
45
  "env-override": "env-override";
46
- "url-pattern": "url-pattern";
47
- "server-name": "server-name";
48
- "organization-name": "organization-name";
49
46
  fallback: "fallback";
47
+ "organization-name": "organization-name";
48
+ "server-name": "server-name";
49
+ "url-pattern": "url-pattern";
50
50
  }>;
51
51
  envVar: z.ZodString;
52
52
  disabledSearchEndpoints: z.ZodArray<z.ZodString>;
@@ -70,9 +70,9 @@ export declare const brapiServerInfo: import("@cyanheads/mcp-ts-core").ToolDefin
70
70
  notes: z.ZodArray<z.ZodString>;
71
71
  fetchedAt: z.ZodString;
72
72
  }, z.core.$strip>, readonly [{
73
- readonly reason: "unknown_alias";
73
+ readonly reason: 'unknown_alias';
74
74
  readonly code: JsonRpcErrorCode.NotFound;
75
- readonly when: "No connection has been registered under the requested alias";
76
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_server_info.";
75
+ readonly when: 'No connection has been registered under the requested alias';
76
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_server_info.';
77
77
  }], undefined>;
78
78
  //# sourceMappingURL=brapi-server-info.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-server-info.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-server-info.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAUjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0C1B,CAAC"}
1
+ {"version":3,"file":"brapi-server-info.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-server-info.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAUjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAMd,eAAe;;mBAEjB,6DAA6D;uBAEjE,qHAAqH;cAgC3H,CAAC"}
@@ -3,9 +3,10 @@
3
3
  * observations for a study. Two-phase write: `mode: 'preview'` validates rows
4
4
  * against the study's observation variables and returns a routing breakdown
5
5
  * (POST for new rows, PUT for rows carrying `observationDbId`); `mode: 'apply'`
6
- * elicits confirmation when supported, fans the rows out to POST + PUT in
7
- * parallel, then verifies the post-state with a cheap `pageSize=1` count.
8
- * Additive write — no observation is destroyed by this tool.
6
+ * asks the caller to confirm via a multi-round-trip `input_required` result,
7
+ * then fans the rows out to POST + PUT in parallel and verifies the post-state
8
+ * with a cheap `pageSize=1` count. Additive write — no observation is destroyed
9
+ * by this tool.
9
10
  *
10
11
  * @module mcp-server/tools/definitions/brapi-submit-observations.tool
11
12
  */
@@ -35,8 +36,8 @@ export declare const brapiSubmitObservations: import("@cyanheads/mcp-ts-core").T
35
36
  }, z.core.$strip>>;
36
37
  }, z.core.$strip>>;
37
38
  mode: z.ZodDefault<z.ZodEnum<{
38
- preview: "preview";
39
39
  apply: "apply";
40
+ preview: "preview";
40
41
  }>>;
41
42
  force: z.ZodDefault<z.ZodBoolean>;
42
43
  }, z.core.$strip>, z.ZodObject<{
@@ -85,39 +86,34 @@ export declare const brapiSubmitObservations: import("@cyanheads/mcp-ts-core").T
85
86
  warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
86
87
  }, z.core.$strip>], "mode">;
87
88
  }, z.core.$strip>, readonly [{
88
- readonly reason: "unknown_alias";
89
+ readonly reason: 'unknown_alias';
89
90
  readonly code: JsonRpcErrorCode.NotFound;
90
- readonly when: "No connection has been registered under the requested alias";
91
- readonly recovery: "Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_submit_observations.";
91
+ readonly when: 'No connection has been registered under the requested alias';
92
+ readonly recovery: 'Run brapi_connect with this alias (or omit `alias` to use the default connection) before calling brapi_submit_observations.';
92
93
  }, {
93
- readonly reason: "observations_unsupported";
94
+ readonly reason: 'observations_unsupported';
94
95
  readonly code: JsonRpcErrorCode.ValidationError;
95
- readonly when: "BrAPI server does not advertise /observations";
96
- readonly recovery: "Run brapi_server_info to inspect the advertised endpoints, or call brapi_connect with a different alias for a server that exposes /observations.";
96
+ readonly when: 'BrAPI server does not advertise /observations';
97
+ readonly recovery: 'Run brapi_server_info to inspect the advertised endpoints, or call brapi_connect with a different alias for a server that exposes /observations.';
97
98
  }, {
98
- readonly reason: "study_not_found";
99
+ readonly reason: 'study_not_found';
99
100
  readonly code: JsonRpcErrorCode.NotFound;
100
- readonly when: "Upstream returned no study record for the requested studyDbId";
101
- readonly recovery: "Verify the studyDbId on the target server, or run brapi_find_studies to discover valid IDs before retrying.";
101
+ readonly when: 'Upstream returned no study record for the requested studyDbId';
102
+ readonly recovery: 'Verify the studyDbId on the target server, or run brapi_find_studies to discover valid IDs before retrying.';
102
103
  }, {
103
- readonly reason: "post_unsupported";
104
+ readonly reason: 'post_unsupported';
104
105
  readonly code: JsonRpcErrorCode.ValidationError;
105
- readonly when: "Server does not advertise POST on /observations but new rows were submitted";
106
- readonly recovery: "Remove the rows that lack observationDbId (those are the new rows) before retrying, or connect to a different server that supports POST on /observations.";
106
+ readonly when: 'Server does not advertise POST on /observations but new rows were submitted';
107
+ readonly recovery: 'Remove the rows that lack observationDbId (those are the new rows) before retrying, or connect to a different server that supports POST on /observations.';
107
108
  }, {
108
- readonly reason: "put_unsupported";
109
+ readonly reason: 'put_unsupported';
109
110
  readonly code: JsonRpcErrorCode.ValidationError;
110
- readonly when: "Server does not advertise PUT on /observations but update rows were submitted";
111
- readonly recovery: "Connect to a different server that supports PUT on /observations — dropping observationDbId would route as POST and create duplicates instead of updating the existing rows.";
112
- }, {
113
- readonly reason: "elicit_unavailable";
114
- readonly code: JsonRpcErrorCode.Forbidden;
115
- readonly when: "Apply mode invoked but client does not expose ctx.elicit and force was false";
116
- readonly recovery: "Set force=true only with explicit user authorization, or use a client that supports elicitation.";
111
+ readonly when: 'Server does not advertise PUT on /observations but update rows were submitted';
112
+ readonly recovery: 'Connect to a different server that supports PUT on /observations — dropping observationDbId would route as POST and create duplicates instead of updating the existing rows.';
117
113
  }, {
118
- readonly reason: "user_declined";
114
+ readonly reason: 'user_declined';
119
115
  readonly code: JsonRpcErrorCode.Forbidden;
120
- readonly when: "User declined the elicitation prompt for the apply write";
121
- readonly recovery: "Re-run the tool when the user is ready to confirm the write.";
116
+ readonly when: 'The confirmation round came back declined, cancelled, or without a true `confirm` value';
117
+ readonly recovery: 'Re-run brapi_submit_observations when the user is ready to confirm, or pass force=true with explicit out-of-band authorization.';
122
118
  }], undefined>;
123
119
  //# sourceMappingURL=brapi-submit-observations.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-submit-observations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-submit-observations.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA2C,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkPjE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmTlC,CAAC"}
1
+ {"version":3,"file":"brapi-submit-observations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-submit-observations.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAqC,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgPjE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAjDxB,eAAe;;mBAEjB,6DAA6D;uBAEjE,6HAA6H;;qBAGvH,0BAA0B;;mBAE5B,+CAA+C;uBAEnD,kJAAkJ;;qBAG5I,iBAAiB;;mBAEnB,+DAA+D;uBAEnE,6GAA6G;;qBAGvG,kBAAkB;;mBAEpB,6EAA6E;uBAEjF,2JAA2J;;qBAGrJ,iBAAiB;;mBAEnB,+EAA+E;uBAEnF,8KAA8K;;qBAGxK,eAAe;;mBAEjB,yFAAyF;uBAE7F,iIAAiI;cA4UrI,CAAC"}
@@ -3,13 +3,14 @@
3
3
  * observations for a study. Two-phase write: `mode: 'preview'` validates rows
4
4
  * against the study's observation variables and returns a routing breakdown
5
5
  * (POST for new rows, PUT for rows carrying `observationDbId`); `mode: 'apply'`
6
- * elicits confirmation when supported, fans the rows out to POST + PUT in
7
- * parallel, then verifies the post-state with a cheap `pageSize=1` count.
8
- * Additive write — no observation is destroyed by this tool.
6
+ * asks the caller to confirm via a multi-round-trip `input_required` result,
7
+ * then fans the rows out to POST + PUT in parallel and verifies the post-state
8
+ * with a cheap `pageSize=1` count. Additive write — no observation is destroyed
9
+ * by this tool.
9
10
  *
10
11
  * @module mcp-server/tools/definitions/brapi-submit-observations.tool
11
12
  */
12
- import { tool, z } from '@cyanheads/mcp-ts-core';
13
+ import { inputRequired, tool, z } from '@cyanheads/mcp-ts-core';
13
14
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
14
15
  import { getServerConfig } from '../../../config/server-config.js';
15
16
  import { getBrapiClient } from '../../../services/brapi-client/index.js';
@@ -194,21 +195,20 @@ const SUBMIT_ERRORS = [
194
195
  when: 'Server does not advertise PUT on /observations but update rows were submitted',
195
196
  recovery: 'Connect to a different server that supports PUT on /observations — dropping observationDbId would route as POST and create duplicates instead of updating the existing rows.',
196
197
  },
197
- {
198
- reason: 'elicit_unavailable',
199
- code: JsonRpcErrorCode.Forbidden,
200
- when: 'Apply mode invoked but client does not expose ctx.elicit and force was false',
201
- recovery: 'Set force=true only with explicit user authorization, or use a client that supports elicitation.',
202
- },
203
198
  {
204
199
  reason: 'user_declined',
205
200
  code: JsonRpcErrorCode.Forbidden,
206
- when: 'User declined the elicitation prompt for the apply write',
207
- recovery: 'Re-run the tool when the user is ready to confirm the write.',
201
+ when: 'The confirmation round came back declined, cancelled, or without a true `confirm` value',
202
+ recovery: 'Re-run brapi_submit_observations when the user is ready to confirm, or pass force=true with explicit out-of-band authorization.',
208
203
  },
209
204
  ];
205
+ const ConfirmSchema = z.object({
206
+ confirm: z
207
+ .boolean()
208
+ .describe('Set to true to commit the writes; false to abort with no side effects.'),
209
+ });
210
210
  export const brapiSubmitObservations = tool('brapi_submit_observations', {
211
- description: 'Submit observations for a study. Default mode `preview` validates rows against the study variables and returns a routing breakdown without writing. Mode `apply` elicits confirmation when supported, then creates new rows or updates existing ones based on observationDbId presence. Additive only — no observation is destroyed.',
211
+ description: 'Submit observations for a study. Default mode `preview` validates rows against the study variables and returns a routing breakdown without writing. Mode `apply` asks the caller to confirm the write, then creates new rows or updates existing ones based on observationDbId presence. Additive only — no observation is destroyed.',
212
212
  annotations: {
213
213
  readOnlyHint: false,
214
214
  destructiveHint: false,
@@ -227,11 +227,11 @@ export const brapiSubmitObservations = tool('brapi_submit_observations', {
227
227
  mode: z
228
228
  .enum(['preview', 'apply'])
229
229
  .default('preview')
230
- .describe('`preview` (default) validates only; `apply` writes after eliciting confirmation when supported.'),
230
+ .describe('`preview` (default) validates only; `apply` writes after the caller confirms.'),
231
231
  force: z
232
232
  .boolean()
233
233
  .default(false)
234
- .describe('Bypass elicitation in apply mode. Use only when the client lacks ctx.elicit support and explicit user authorization for the write has been recorded out-of-band.'),
234
+ .describe('Skip the confirmation round in apply mode. Use only when explicit user authorization for the write has been recorded out-of-band.'),
235
235
  }),
236
236
  output: OutputSchema,
237
237
  auth: ['brapi:write:observations'],
@@ -332,15 +332,32 @@ export const brapiSubmitObservations = tool('brapi_submit_observations', {
332
332
  if (putCount > 0 && !supportsPut) {
333
333
  throw ctx.fail('put_unsupported', `Server does not advertise PUT on /observations. ${putCount} update row(s) cannot be applied.`, { baseUrl: connection.baseUrl, putCount, ...ctx.recoveryFor('put_unsupported') });
334
334
  }
335
- await confirmApply(ctx, {
336
- studyDbId: input.studyDbId,
337
- studyName,
338
- valid,
339
- invalid,
340
- postCount,
341
- putCount,
342
- force: input.force,
343
- });
335
+ if (!input.force) {
336
+ const answered = ctx.inputs.view('confirm');
337
+ if (answered.kind === 'missing') {
338
+ return ctx.requestInput({
339
+ inputRequests: {
340
+ confirm: inputRequired.elicit({
341
+ message: [
342
+ `Apply ${valid} observation row(s) to study \`${input.studyDbId}\`${studyName ? ` (${studyName})` : ''}?`,
343
+ `POST ${postCount} new · PUT ${putCount} update · ${invalid} skipped (structural errors).`,
344
+ ].join('\n'),
345
+ requestedSchema: ConfirmSchema,
346
+ }),
347
+ },
348
+ });
349
+ }
350
+ // Declined, cancelled, another response kind, or a payload the schema
351
+ // rejects — all terminal. Re-asking would burn rounds without a new answer.
352
+ const answer = ctx.inputs.accepted('confirm', ConfirmSchema);
353
+ if (!answer?.confirm) {
354
+ throw ctx.fail('user_declined', 'User declined to apply observation writes.', {
355
+ studyDbId: input.studyDbId,
356
+ action: answered.kind === 'elicit' ? answered.action : answered.kind,
357
+ ...ctx.recoveryFor('user_declined'),
358
+ });
359
+ }
360
+ }
344
361
  const validRows = decisions.flatMap((d) => {
345
362
  if (d.warnings.some(isStructural))
346
363
  return [];
@@ -463,37 +480,6 @@ export const brapiSubmitObservations = tool('brapi_submit_observations', {
463
480
  function isStructural(warning) {
464
481
  return warning.endsWith('is required.');
465
482
  }
466
- async function confirmApply(ctx, input) {
467
- if (input.force)
468
- return;
469
- if (!ctx.elicit) {
470
- throw ctx.fail('elicit_unavailable', 'Apply mode requires user confirmation. The MCP client does not expose elicitation, so set `force: true` to bypass — but only with explicit user authorization for this write.', {
471
- studyDbId: input.studyDbId,
472
- valid: input.valid,
473
- invalid: input.invalid,
474
- ...ctx.recoveryFor('elicit_unavailable'),
475
- });
476
- }
477
- const message = [
478
- `Apply ${input.valid} observation row(s) to study \`${input.studyDbId}\`${input.studyName ? ` (${input.studyName})` : ''}?`,
479
- `POST ${input.postCount} new · PUT ${input.putCount} update · ${input.invalid} skipped (structural errors).`,
480
- ].join('\n');
481
- const result = await ctx.elicit(message, z.object({
482
- confirm: z
483
- .boolean()
484
- .describe('Set to true to commit the writes; false to abort with no side effects.'),
485
- }));
486
- const confirmed = typeof result.data === 'object' &&
487
- result.data !== null &&
488
- result.data.confirm === true;
489
- if (result.action !== 'accept' || !confirmed) {
490
- throw ctx.fail('user_declined', 'User declined to apply observation writes.', {
491
- studyDbId: input.studyDbId,
492
- action: result.action,
493
- ...ctx.recoveryFor('user_declined'),
494
- });
495
- }
496
- }
497
483
  async function fetchStudyVariables(studyDbId, connection, client, ctx) {
498
484
  try {
499
485
  const env = await client.get(connection.baseUrl, '/variables', ctx, buildRequestOptions(connection, { studyDbId, pageSize: 1000 }));
@@ -1 +1 @@
1
- {"version":3,"file":"brapi-submit-observations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-submit-observations.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brapi-submit-observations.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/brapi-submit-observations.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAgB,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAqB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAoB,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAqB,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,gJAAgJ,CACjJ;IACH,mBAAmB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,oFAAoF,CACrF;IACH,uBAAuB,EAAE,CAAC;SACvB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CACP,sGAAsG,CACvG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC9F,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KAClF,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IACnF,cAAc,EAAE,CAAC;SACd,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QAC/E,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC5E,WAAW,EAAE,CAAC;iBACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,MAAM,CAAC,CAAC,CAAC;iBACT,QAAQ,CAAC,iDAAiD,CAAC;SAC/D,CAAC;aACD,QAAQ,CAAC,yBAAyB,CAAC;KACvC,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;CAC/E,CAAC;KACD,QAAQ,CAAC,sEAAsE,CAAC,CAAC;AAEpF,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC9F,uBAAuB,EAAE,CAAC;SACvB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;IACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC1F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACjE,CAAC;KACD,QAAQ,CAAC,wDAAwD,CAAC,CAAC;AAEtE,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACzF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACpF,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,CACP,4FAA4F,CAC7F;IACH,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,WAAW,EAAE;aACb,QAAQ,CAAC,iDAAiD,CAAC;QAC9D,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,EAAE;aACL,WAAW,EAAE;aACb,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC;SACD,QAAQ,CAAC,0CAA0C,CAAC;IACvD,cAAc,EAAE,CAAC;SACd,KAAK,CAAC,mBAAmB,CAAC;SAC1B,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,CAAC,kEAAkE,CAAC;CAChF,CAAC;KACD,QAAQ,CAAC,2CAA2C,CAAC,CAAC;AAEzD,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACtF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACvF,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gEAAgE,CAAC;QAC7E,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACjF,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KACvE,CAAC;SACD,QAAQ,CAAC,kDAAkD,CAAC,CAChE;SACA,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,OAAO,EAAE,CAAC;SACP,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAClF,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACjF,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAC3E,CAAC;SACD,QAAQ,CAAC,kDAAkD,CAAC,CAChE;SACA,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,qBAAqB,EAAE,CAAC;SACrB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,0BAA0B,EAAE,CAAC;SAC1B,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2EAA2E,CAAC;IACxF,cAAc,EAAE,CAAC;SACd,KAAK,CAAC,mBAAmB,CAAC;SAC1B,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC,CAAC;SAC1F,QAAQ,EAAE;SACV,QAAQ,CACP,+HAA+H,CAChI;CACJ,CAAC;KACD,QAAQ,CAAC,uDAAuD,CAAC,CAAC;AAErE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACrF,MAAM,EAAE,CAAC;SACN,kBAAkB,CAAC,MAAM,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;SACpE,QAAQ,CAAC,iDAAiD,CAAC;CAC/D,CAAC,CAAC;AAUH,MAAM,aAAa,GAAG;IACpB;QACE,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;QAC/B,IAAI,EAAE,6DAA6D;QACnE,QAAQ,EACN,6HAA6H;KAChI;IACD;QACE,MAAM,EAAE,0BAA0B;QAClC,IAAI,EAAE,gBAAgB,CAAC,eAAe;QACtC,IAAI,EAAE,+CAA+C;QACrD,QAAQ,EACN,kJAAkJ;KACrJ;IACD;QACE,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;QAC/B,IAAI,EAAE,+DAA+D;QACrE,QAAQ,EACN,6GAA6G;KAChH;IACD;QACE,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,gBAAgB,CAAC,eAAe;QACtC,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EACN,2JAA2J;KAC9J;IACD;QACE,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,gBAAgB,CAAC,eAAe;QACtC,IAAI,EAAE,+EAA+E;QACrF,QAAQ,EACN,8KAA8K;KACjL;IACD;QACE,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,gBAAgB,CAAC,SAAS;QAChC,IAAI,EAAE,yFAAyF;QAC/F,QAAQ,EACN,iIAAiI;KACpI;CACO,CAAC;AAEX,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,CAAC,wEAAwE,CAAC;CACtF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,2BAA2B,EAAE;IACvE,WAAW,EACT,uUAAuU;IACzU,WAAW,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB;IACD,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACtF,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,oBAAoB,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,KAAK,CAAC;aACV,QAAQ,CAAC,mEAAmE,CAAC;QAChF,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aAC1B,OAAO,CAAC,SAAS,CAAC;aAClB,QAAQ,CAAC,+EAA+E,CAAC;QAC5F,KAAK,EAAE,CAAC;aACL,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CACP,mIAAmI,CACpI;KACJ,CAAC;IACF,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,CAAC,0BAA0B,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvE,MAAM,gBAAgB,GAA8C,EAAE,CAAC;QACvE,IAAI,UAAU,CAAC,YAAY;YAAE,gBAAgB,CAAC,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC;QAC7E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACxE,MAAM,iBAAiB,GAAa,EAAE,CAAC;QAEvC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;QACrD,MAAM,YAAY,GAAG,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;QACvE,MAAM,WAAW,GAAG,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QACrE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC,IAAI,CACZ,0BAA0B,EAC1B,mBAAmB,UAAU,CAAC,OAAO,4EAA4E,EACjH,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,0BAA0B,CAAC,EAAE,CAChF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACxF,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,IAAI,CACZ,iBAAiB,EACjB,UAAU,KAAK,CAAC,SAAS,kBAAkB,UAAU,CAAC,OAAO,GAAG,EAChE;gBACE,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,GAAG,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC;aACtC,CACF,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACxC,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAE3F,MAAM,SAAS,GAAkB,EAAE,CAAC;QACpC,MAAM,cAAc,GAA0C,EAAE,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,IAAI,iBAAiB,GAAG,IAAI,CAAC;YAE7B,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACrD,iBAAiB,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;gBACjC,WAAW,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACzD,iBAAiB,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YACrE,CAAC;YACD,IACE,GAAG,CAAC,uBAAuB;gBAC3B,cAAc,CAAC,IAAI,GAAG,CAAC;gBACvB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAChD,CAAC;gBACD,WAAW,CAAC,IAAI,CACd,4BAA4B,GAAG,CAAC,uBAAuB,8BAA8B,KAAK,CAAC,SAAS,mCAAmC,CACxI,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAgB;gBAC5B,QAAQ,EAAE,CAAC;gBACX,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,QAAQ,EAAE,WAAW;aACtB,CAAC;YACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,iBAAiB,EAAE,CAAC;gBACtB,KAAK,EAAE,CAAC;gBACR,IAAI,GAAG,CAAC,eAAe;oBAAE,QAAQ,EAAE,CAAC;;oBAC/B,SAAS,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAwC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC5E,IAAI,GAAG,CAAC,uBAAuB;oBAC7B,KAAK,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CAAC;gBAC9D,IAAI,GAAG,CAAC,mBAAmB;oBAAE,KAAK,CAAC,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,CAAC;gBACjF,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAwC;gBAClD,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK;gBACL,OAAO;gBACP,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;gBAChC,cAAc;gBACd,kBAAkB,EAAE,cAAc,CAAC,IAAI;aACxC,CAAC;YACF,IAAI,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5C,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,GAAG,CAAC,IAAI,CACZ,kBAAkB,EAClB,oDAAoD,SAAS,gCAAgC,EAC7F,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,GAAG,CAAC,IAAI,CACZ,iBAAiB,EACjB,mDAAmD,QAAQ,mCAAmC,EAC9F,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CACjF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,GAAG,CAAC,YAAY,CAAC;oBACtB,aAAa,EAAE;wBACb,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;4BAC5B,OAAO,EAAE;gCACP,SAAS,KAAK,kCAAkC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;gCACzG,QAAQ,SAAS,cAAc,QAAQ,aAAa,OAAO,+BAA+B;6BAC3F,CAAC,IAAI,CAAC,IAAI,CAAC;4BACZ,eAAe,EAAE,aAAa;yBAC/B,CAAC;qBACH;iBACF,CAAC,CAAC;YACL,CAAC;YACD,sEAAsE;YACtE,4EAA4E;YAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,4CAA4C,EAAE;oBAC5E,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,MAAM,EAAE,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;oBACpE,GAAG,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAE3D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChD,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,UAAU,CAAC,OAAO,EAClB,eAAe,EACf,QAAQ,EACR,GAAG,EACH,mBAAmB,CAAC,UAAU,CAAC,CAChC;gBACH,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;YAC9B,OAAO,CAAC,MAAM,GAAG,CAAC;gBAChB,CAAC,CAAC,MAAM,CAAC,GAAG,CACR,UAAU,CAAC,OAAO,EAClB,eAAe,EACf,YAAY,CAAC,OAAO,CAAC,EACrB,GAAG,EACH,mBAAmB,CAAC,UAAU,CAAC,CAChC;gBACH,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;SAC/B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,UAAU;YACxB,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAC9C,CAAC,CAAC,EAA+C,EAAE,CAAC,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,CAC1F;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,qBAAqB,GAAG,MAAM,0BAA0B,CAC5D,KAAK,CAAC,SAAS,EACf,UAAU,EACV,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,MAAM,EACN,GAAG,CACJ,CAAC;QAEF,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAsC;YAChD,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM;YACN,OAAO;YACP,cAAc;SACf,CAAC;QACF,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5C,IAAI,qBAAqB,KAAK,SAAS;YAAE,MAAM,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAC9F,IAAI,eAAe;YAAE,MAAM,CAAC,0BAA0B,GAAG,eAAe,CAAC;QACzE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QAEtE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAmB,CAAC;IACtE,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACxB,KAAK,CAAC,IAAI,CACR,uBAAuB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,MAAM,CAAC,KAAK,IAAI,CACtG,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,SAAS,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjF,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF,MAAM,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/E,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACxB,KAAK,CAAC,IAAI,CACR,qBAAqB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,MAAM,CAAC,KAAK,IAAI,CACpG,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,qBAAqB,IAAI,GAAG,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,0BAA0B,IAAI,GAAG,EAAE,CAAC,CAAC;YACnF,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC3C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,eAAe;wBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC;oBACjE,IAAI,CAAC,CAAC,uBAAuB;wBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC;oBAC9E,IAAI,CAAC,CAAC,mBAAmB;wBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;oBACvE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC1D,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAa,CAAC,QAAQ,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC;oBACxD,IAAI,CAAC,CAAC,uBAAuB;wBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC;oBAC9E,IAAI,CAAC,CAAC,mBAAmB;wBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;oBACvE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC1D,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpF,MAAM,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/E,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,UAA4B,EAC5B,MAAmB,EACnB,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,UAAU,CAAC,OAAO,EAClB,YAAY,EACZ,GAAG,EACH,mBAAmB,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/D,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CACtB,GAAG,CAAC,MAA0E,CAC/E,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,GAAG,CAAC,uBAAuB,CAAC;YACvC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE;YAC7D,SAAS;YACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,UAA4B,EAC5B,MAAmB,EACnB,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,UAAU,CAAC,OAAO,EAClB,YAAY,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAC3C,GAAG,EACH,mBAAmB,CAAC,UAAU,CAAC,CAChC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7B,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAChD,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;YACnC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,kBAAkB,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACtD,gFAAgF;QAChF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,SAAiB,EACjB,UAA4B,EAC5B,OAAqB,EACrB,MAAoB,EACpB,QAAkB,EAClB,MAAmB,EACnB,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,UAAU,CAAC,OAAO,EAClB,eAAe,EACf,GAAG,EACH,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC7D,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,QAAQ,EAAE,CAAC;SACZ,CAAC,CACH,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;QACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAA4C;IAChE,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,SAAS;QACnC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;IACjC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe;IAM7C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,IAAe,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,MAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,IAAI,GAAI,MAA8B,CAAC,IAAI,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAKJ,EAAE,CAAC;IACR,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,IAAI,GAKN,EAAE,CAAC;QACP,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;YAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ;YAChD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACxD,IAAI,OAAO,MAAM,CAAC,uBAAuB,KAAK,QAAQ;YACpD,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;QAChE,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA4C;IACvE,IAAI,IAAwB,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,CAAC,oBAAoB,KAAK,QAAQ;YAAE,SAAS;QAC3D,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,oBAAoB,GAAG,IAAI;YAAE,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}