@linkedapi/mcp 0.3.11

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 (212) hide show
  1. package/.dockerignore +11 -0
  2. package/.github/workflows/merge-main.yaml +136 -0
  3. package/.github/workflows/pr-main.yaml +42 -0
  4. package/.husky/pre-commit +5 -0
  5. package/.prettierrc.js +21 -0
  6. package/.vscode/launch.json +19 -0
  7. package/Dockerfile +39 -0
  8. package/LICENSE +21 -0
  9. package/README.md +17 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +189 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/linked-api-server.d.ts +13 -0
  15. package/dist/linked-api-server.d.ts.map +1 -0
  16. package/dist/linked-api-server.js +127 -0
  17. package/dist/linked-api-server.js.map +1 -0
  18. package/dist/linked-api-tools.d.ts +8 -0
  19. package/dist/linked-api-tools.d.ts.map +1 -0
  20. package/dist/linked-api-tools.js +72 -0
  21. package/dist/linked-api-tools.js.map +1 -0
  22. package/dist/prompts/index.d.ts +10 -0
  23. package/dist/prompts/index.d.ts.map +1 -0
  24. package/dist/prompts/index.js +190 -0
  25. package/dist/prompts/index.js.map +1 -0
  26. package/dist/tools/check-connection-status.d.ts +13 -0
  27. package/dist/tools/check-connection-status.d.ts.map +1 -0
  28. package/dist/tools/check-connection-status.js +31 -0
  29. package/dist/tools/check-connection-status.js.map +1 -0
  30. package/dist/tools/comment-on-post.d.ts +15 -0
  31. package/dist/tools/comment-on-post.d.ts.map +1 -0
  32. package/dist/tools/comment-on-post.js +41 -0
  33. package/dist/tools/comment-on-post.js.map +1 -0
  34. package/dist/tools/create-post.d.ts +23 -0
  35. package/dist/tools/create-post.d.ts.map +1 -0
  36. package/dist/tools/create-post.js +67 -0
  37. package/dist/tools/create-post.js.map +1 -0
  38. package/dist/tools/execute-custom-workflow.d.ts +13 -0
  39. package/dist/tools/execute-custom-workflow.d.ts.map +1 -0
  40. package/dist/tools/execute-custom-workflow.js +26 -0
  41. package/dist/tools/execute-custom-workflow.js.map +1 -0
  42. package/dist/tools/fetch-company.d.ts +34 -0
  43. package/dist/tools/fetch-company.d.ts.map +1 -0
  44. package/dist/tools/fetch-company.js +139 -0
  45. package/dist/tools/fetch-company.js.map +1 -0
  46. package/dist/tools/fetch-person.d.ts +32 -0
  47. package/dist/tools/fetch-person.d.ts.map +1 -0
  48. package/dist/tools/fetch-person.js +129 -0
  49. package/dist/tools/fetch-person.js.map +1 -0
  50. package/dist/tools/fetch-post.d.ts +26 -0
  51. package/dist/tools/fetch-post.d.ts.map +1 -0
  52. package/dist/tools/fetch-post.js +82 -0
  53. package/dist/tools/fetch-post.js.map +1 -0
  54. package/dist/tools/get-api-usage-stats.d.ts +19 -0
  55. package/dist/tools/get-api-usage-stats.d.ts.map +1 -0
  56. package/dist/tools/get-api-usage-stats.js +40 -0
  57. package/dist/tools/get-api-usage-stats.js.map +1 -0
  58. package/dist/tools/get-conversation.d.ts +26 -0
  59. package/dist/tools/get-conversation.d.ts.map +1 -0
  60. package/dist/tools/get-conversation.js +59 -0
  61. package/dist/tools/get-conversation.js.map +1 -0
  62. package/dist/tools/get-workflow-result.d.ts +50 -0
  63. package/dist/tools/get-workflow-result.d.ts.map +1 -0
  64. package/dist/tools/get-workflow-result.js +46 -0
  65. package/dist/tools/get-workflow-result.js.map +1 -0
  66. package/dist/tools/nv-fetch-company.d.ts +30 -0
  67. package/dist/tools/nv-fetch-company.d.ts.map +1 -0
  68. package/dist/tools/nv-fetch-company.js +124 -0
  69. package/dist/tools/nv-fetch-company.js.map +1 -0
  70. package/dist/tools/nv-fetch-person.d.ts +13 -0
  71. package/dist/tools/nv-fetch-person.d.ts.map +1 -0
  72. package/dist/tools/nv-fetch-person.js +31 -0
  73. package/dist/tools/nv-fetch-person.js.map +1 -0
  74. package/dist/tools/nv-get-conversation.d.ts +26 -0
  75. package/dist/tools/nv-get-conversation.d.ts.map +1 -0
  76. package/dist/tools/nv-get-conversation.js +59 -0
  77. package/dist/tools/nv-get-conversation.js.map +1 -0
  78. package/dist/tools/nv-search-companies.d.ts +32 -0
  79. package/dist/tools/nv-search-companies.d.ts.map +1 -0
  80. package/dist/tools/nv-search-companies.js +106 -0
  81. package/dist/tools/nv-search-companies.js.map +1 -0
  82. package/dist/tools/nv-search-people.d.ts +25 -0
  83. package/dist/tools/nv-search-people.d.ts.map +1 -0
  84. package/dist/tools/nv-search-people.js +99 -0
  85. package/dist/tools/nv-search-people.js.map +1 -0
  86. package/dist/tools/nv-send-message.d.ts +15 -0
  87. package/dist/tools/nv-send-message.d.ts.map +1 -0
  88. package/dist/tools/nv-send-message.js +41 -0
  89. package/dist/tools/nv-send-message.js.map +1 -0
  90. package/dist/tools/nv-sync-conversation.d.ts +13 -0
  91. package/dist/tools/nv-sync-conversation.d.ts.map +1 -0
  92. package/dist/tools/nv-sync-conversation.js +31 -0
  93. package/dist/tools/nv-sync-conversation.js.map +1 -0
  94. package/dist/tools/react-to-post.d.ts +22 -0
  95. package/dist/tools/react-to-post.d.ts.map +1 -0
  96. package/dist/tools/react-to-post.js +42 -0
  97. package/dist/tools/react-to-post.js.map +1 -0
  98. package/dist/tools/remove-connection.d.ts +13 -0
  99. package/dist/tools/remove-connection.d.ts.map +1 -0
  100. package/dist/tools/remove-connection.js +31 -0
  101. package/dist/tools/remove-connection.js.map +1 -0
  102. package/dist/tools/retrieve-connections.d.ts +24 -0
  103. package/dist/tools/retrieve-connections.d.ts.map +1 -0
  104. package/dist/tools/retrieve-connections.js +90 -0
  105. package/dist/tools/retrieve-connections.js.map +1 -0
  106. package/dist/tools/retrieve-pending-requests.d.ts +10 -0
  107. package/dist/tools/retrieve-pending-requests.d.ts.map +1 -0
  108. package/dist/tools/retrieve-pending-requests.js +23 -0
  109. package/dist/tools/retrieve-pending-requests.js.map +1 -0
  110. package/dist/tools/retrieve-performance.d.ts +10 -0
  111. package/dist/tools/retrieve-performance.d.ts.map +1 -0
  112. package/dist/tools/retrieve-performance.js +23 -0
  113. package/dist/tools/retrieve-performance.js.map +1 -0
  114. package/dist/tools/retrieve-ssi.d.ts +10 -0
  115. package/dist/tools/retrieve-ssi.d.ts.map +1 -0
  116. package/dist/tools/retrieve-ssi.js +23 -0
  117. package/dist/tools/retrieve-ssi.js.map +1 -0
  118. package/dist/tools/search-companies.d.ts +28 -0
  119. package/dist/tools/search-companies.d.ts.map +1 -0
  120. package/dist/tools/search-companies.js +86 -0
  121. package/dist/tools/search-companies.js.map +1 -0
  122. package/dist/tools/search-people.d.ts +24 -0
  123. package/dist/tools/search-people.d.ts.map +1 -0
  124. package/dist/tools/search-people.js +90 -0
  125. package/dist/tools/search-people.js.map +1 -0
  126. package/dist/tools/send-connection-request.d.ts +15 -0
  127. package/dist/tools/send-connection-request.d.ts.map +1 -0
  128. package/dist/tools/send-connection-request.js +41 -0
  129. package/dist/tools/send-connection-request.js.map +1 -0
  130. package/dist/tools/send-message.d.ts +14 -0
  131. package/dist/tools/send-message.d.ts.map +1 -0
  132. package/dist/tools/send-message.js +36 -0
  133. package/dist/tools/send-message.js.map +1 -0
  134. package/dist/tools/sync-conversation.d.ts +13 -0
  135. package/dist/tools/sync-conversation.d.ts.map +1 -0
  136. package/dist/tools/sync-conversation.js +31 -0
  137. package/dist/tools/sync-conversation.js.map +1 -0
  138. package/dist/tools/withdraw-connection-request.d.ts +14 -0
  139. package/dist/tools/withdraw-connection-request.d.ts.map +1 -0
  140. package/dist/tools/withdraw-connection-request.js +36 -0
  141. package/dist/tools/withdraw-connection-request.js.map +1 -0
  142. package/dist/utils/define-request-timeout.d.ts +2 -0
  143. package/dist/utils/define-request-timeout.d.ts.map +1 -0
  144. package/dist/utils/define-request-timeout.js +20 -0
  145. package/dist/utils/define-request-timeout.js.map +1 -0
  146. package/dist/utils/execute-with-progress.d.ts +8 -0
  147. package/dist/utils/execute-with-progress.d.ts.map +1 -0
  148. package/dist/utils/execute-with-progress.js +75 -0
  149. package/dist/utils/execute-with-progress.js.map +1 -0
  150. package/dist/utils/handle-linked-api-error.d.ts +3 -0
  151. package/dist/utils/handle-linked-api-error.d.ts.map +1 -0
  152. package/dist/utils/handle-linked-api-error.js +29 -0
  153. package/dist/utils/handle-linked-api-error.js.map +1 -0
  154. package/dist/utils/json-http-transport.d.ts +26 -0
  155. package/dist/utils/json-http-transport.d.ts.map +1 -0
  156. package/dist/utils/json-http-transport.js +265 -0
  157. package/dist/utils/json-http-transport.js.map +1 -0
  158. package/dist/utils/linked-api-tool.d.ts +28 -0
  159. package/dist/utils/linked-api-tool.d.ts.map +1 -0
  160. package/dist/utils/linked-api-tool.js +25 -0
  161. package/dist/utils/linked-api-tool.js.map +1 -0
  162. package/dist/utils/logger.d.ts +8 -0
  163. package/dist/utils/logger.d.ts.map +1 -0
  164. package/dist/utils/logger.js +81 -0
  165. package/dist/utils/logger.js.map +1 -0
  166. package/dist/utils/types.d.ts +16 -0
  167. package/dist/utils/types.d.ts.map +1 -0
  168. package/dist/utils/types.js +3 -0
  169. package/dist/utils/types.js.map +1 -0
  170. package/eslint.config.js +118 -0
  171. package/package.json +62 -0
  172. package/src/index.ts +212 -0
  173. package/src/linked-api-server.ts +159 -0
  174. package/src/linked-api-tools.ts +72 -0
  175. package/src/prompts/index.ts +190 -0
  176. package/src/tools/check-connection-status.ts +39 -0
  177. package/src/tools/comment-on-post.ts +42 -0
  178. package/src/tools/create-post.ts +71 -0
  179. package/src/tools/execute-custom-workflow.ts +28 -0
  180. package/src/tools/fetch-company.ts +154 -0
  181. package/src/tools/fetch-person.ts +145 -0
  182. package/src/tools/fetch-post.ts +90 -0
  183. package/src/tools/get-api-usage-stats.ts +48 -0
  184. package/src/tools/get-conversation.ts +76 -0
  185. package/src/tools/get-workflow-result.ts +62 -0
  186. package/src/tools/nv-fetch-company.ts +136 -0
  187. package/src/tools/nv-fetch-person.ts +31 -0
  188. package/src/tools/nv-get-conversation.ts +76 -0
  189. package/src/tools/nv-search-companies.ts +114 -0
  190. package/src/tools/nv-search-people.ts +107 -0
  191. package/src/tools/nv-send-message.ts +42 -0
  192. package/src/tools/nv-sync-conversation.ts +32 -0
  193. package/src/tools/react-to-post.ts +44 -0
  194. package/src/tools/remove-connection.ts +32 -0
  195. package/src/tools/retrieve-connections.ts +105 -0
  196. package/src/tools/retrieve-pending-requests.ts +23 -0
  197. package/src/tools/retrieve-performance.ts +23 -0
  198. package/src/tools/retrieve-ssi.ts +23 -0
  199. package/src/tools/search-companies.ts +93 -0
  200. package/src/tools/search-people.ts +97 -0
  201. package/src/tools/send-connection-request.ts +46 -0
  202. package/src/tools/send-message.ts +36 -0
  203. package/src/tools/sync-conversation.ts +32 -0
  204. package/src/tools/withdraw-connection-request.ts +41 -0
  205. package/src/utils/define-request-timeout.ts +17 -0
  206. package/src/utils/execute-with-progress.ts +93 -0
  207. package/src/utils/handle-linked-api-error.ts +27 -0
  208. package/src/utils/json-http-transport.ts +325 -0
  209. package/src/utils/linked-api-tool.ts +58 -0
  210. package/src/utils/logger.ts +84 -0
  211. package/src/utils/types.ts +17 -0
  212. package/tsconfig.json +36 -0
@@ -0,0 +1,28 @@
1
+ import { TSearchCompaniesParams } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ import { OperationTool } from '../utils/linked-api-tool.js';
5
+ export declare class SearchCompaniesTool extends OperationTool<TSearchCompaniesParams, unknown> {
6
+ readonly name = "search_companies";
7
+ readonly operationName: "searchCompanies";
8
+ protected readonly schema: z.ZodObject<{
9
+ term: z.ZodOptional<z.ZodString>;
10
+ limit: z.ZodOptional<z.ZodNumber>;
11
+ filter: z.ZodOptional<z.ZodObject<{
12
+ locations: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
+ industries: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
+ sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
15
+ "1-10": "1-10";
16
+ "11-50": "11-50";
17
+ "51-200": "51-200";
18
+ "201-500": "201-500";
19
+ "501-1000": "501-1000";
20
+ "1001-5000": "1001-5000";
21
+ "5001-10000": "5001-10000";
22
+ "10001+": "10001+";
23
+ }>>>;
24
+ }, z.core.$strip>>;
25
+ }, z.core.$strip>;
26
+ getTool(): Tool;
27
+ }
28
+ //# sourceMappingURL=search-companies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-companies.d.ts","sourceRoot":"","sources":["../../src/tools/search-companies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACrF,SAAyB,IAAI,sBAAsB;IACnD,SAAyB,aAAa,oBAAkC;IACxE,mBAA4B,MAAM;;;;;;;;;;;;;;;;;sBAuB/B;IAEa,OAAO,IAAI,IAAI;CA0DhC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchCompaniesTool = void 0;
4
+ const node_1 = require("@linkedapi/node");
5
+ const zod_1 = require("zod");
6
+ const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
7
+ class SearchCompaniesTool extends linked_api_tool_js_1.OperationTool {
8
+ name = 'search_companies';
9
+ operationName = node_1.OPERATION_NAME.searchCompanies;
10
+ schema = zod_1.z.object({
11
+ term: zod_1.z.string().optional(),
12
+ limit: zod_1.z.number().min(1).max(1000).optional(),
13
+ filter: zod_1.z
14
+ .object({
15
+ locations: zod_1.z.array(zod_1.z.string()).optional(),
16
+ industries: zod_1.z.array(zod_1.z.string()).optional(),
17
+ sizes: zod_1.z
18
+ .array(zod_1.z.enum([
19
+ '1-10',
20
+ '11-50',
21
+ '51-200',
22
+ '201-500',
23
+ '501-1000',
24
+ '1001-5000',
25
+ '5001-10000',
26
+ '10001+',
27
+ ]))
28
+ .optional(),
29
+ })
30
+ .optional(),
31
+ });
32
+ getTool() {
33
+ return {
34
+ name: this.name,
35
+ description: 'Allows you to search for companies applying various filtering criteria (st.searchCompanies action).',
36
+ inputSchema: {
37
+ type: 'object',
38
+ properties: {
39
+ term: {
40
+ type: 'string',
41
+ description: 'Optional. Keyword or phrase to search.',
42
+ },
43
+ limit: {
44
+ type: 'number',
45
+ description: 'Optional. Number of search results to return. Defaults to 10, with a maximum value of 1000.',
46
+ },
47
+ filter: {
48
+ type: 'object',
49
+ description: 'Optional. Object that specifies filtering criteria for companies. When multiple filter fields are specified, they are combined using AND logic.',
50
+ properties: {
51
+ sizes: {
52
+ type: 'array',
53
+ description: 'Optional. Array of enums representing employee count ranges. Matches if company size falls within any of the listed ranges.',
54
+ items: {
55
+ type: 'string',
56
+ enum: [
57
+ '1-10',
58
+ '11-50',
59
+ '51-200',
60
+ '201-500',
61
+ '501-1000',
62
+ '1001-5000',
63
+ '5001-10000',
64
+ '10001+',
65
+ ],
66
+ },
67
+ },
68
+ locations: {
69
+ type: 'array',
70
+ description: 'Optional. Array of free-form strings representing locations. Matches if company is headquartered in any of the listed locations.',
71
+ items: { type: 'string' },
72
+ },
73
+ industries: {
74
+ type: 'array',
75
+ description: 'Optional. Array of enums representing industries. Matches if company works in any of the listed industries. Takes specific values available in the LinkedIn interface.',
76
+ items: { type: 'string' },
77
+ },
78
+ },
79
+ },
80
+ },
81
+ },
82
+ };
83
+ }
84
+ }
85
+ exports.SearchCompaniesTool = SearchCompaniesTool;
86
+ //# sourceMappingURL=search-companies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-companies.js","sourceRoot":"","sources":["../../src/tools/search-companies.ts"],"names":[],"mappings":";;;AAAA,0CAAyE;AAEzE,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,mBAAoB,SAAQ,kCAA8C;IAC5D,IAAI,GAAG,kBAAkB,CAAC;IAC1B,aAAa,GAAG,qBAAc,CAAC,eAAe,CAAC;IAC5C,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC7C,MAAM,EAAE,OAAC;aACN,MAAM,CAAC;YACN,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACzC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC1C,KAAK,EAAE,OAAC;iBACL,KAAK,CACJ,OAAC,CAAC,IAAI,CAAC;gBACL,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,YAAY;gBACZ,QAAQ;aACT,CAAC,CACH;iBACA,QAAQ,EAAE;SACd,CAAC;aACD,QAAQ,EAAE;KACd,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,qGAAqG;YACvG,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wCAAwC;qBACtD;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,6FAA6F;qBAChG;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,iJAAiJ;wBACnJ,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,OAAO;gCACb,WAAW,EACT,6HAA6H;gCAC/H,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,IAAI,EAAE;wCACJ,MAAM;wCACN,OAAO;wCACP,QAAQ;wCACR,SAAS;wCACT,UAAU;wCACV,WAAW;wCACX,YAAY;wCACZ,QAAQ;qCACT;iCACF;6BACF;4BACD,SAAS,EAAE;gCACT,IAAI,EAAE,OAAO;gCACb,WAAW,EACT,kIAAkI;gCACpI,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC1B;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,OAAO;gCACb,WAAW,EACT,wKAAwK;gCAC1K,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC1B;yBACF;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAtFD,kDAsFC"}
@@ -0,0 +1,24 @@
1
+ import { TSearchPeopleParams } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ import { OperationTool } from '../utils/linked-api-tool.js';
5
+ export declare class SearchPeopleTool extends OperationTool<TSearchPeopleParams, unknown> {
6
+ readonly name = "search_people";
7
+ readonly operationName: "searchPeople";
8
+ protected readonly schema: z.ZodObject<{
9
+ term: z.ZodOptional<z.ZodString>;
10
+ limit: z.ZodOptional<z.ZodNumber>;
11
+ filter: z.ZodOptional<z.ZodObject<{
12
+ firstName: z.ZodOptional<z.ZodString>;
13
+ lastName: z.ZodOptional<z.ZodString>;
14
+ position: z.ZodOptional<z.ZodString>;
15
+ locations: z.ZodOptional<z.ZodArray<z.ZodString>>;
16
+ industries: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
+ currentCompanies: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ previousCompanies: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
+ schools: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
+ }, z.core.$strip>>;
21
+ }, z.core.$strip>;
22
+ getTool(): Tool;
23
+ }
24
+ //# sourceMappingURL=search-people.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-people.d.ts","sourceRoot":"","sources":["../../src/tools/search-people.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,mBAAmB,EAAE,OAAO,CAAC;IAC/E,SAAyB,IAAI,mBAAmB;IAChD,SAAyB,aAAa,iBAA+B;IACrE,mBAA4B,MAAM;;;;;;;;;;;;;sBAe/B;IAEa,OAAO,IAAI,IAAI;CAsEhC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchPeopleTool = void 0;
4
+ const node_1 = require("@linkedapi/node");
5
+ const zod_1 = require("zod");
6
+ const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
7
+ class SearchPeopleTool extends linked_api_tool_js_1.OperationTool {
8
+ name = 'search_people';
9
+ operationName = node_1.OPERATION_NAME.searchPeople;
10
+ schema = zod_1.z.object({
11
+ term: zod_1.z.string().optional(),
12
+ limit: zod_1.z.number().min(1).max(1000).optional(),
13
+ filter: zod_1.z
14
+ .object({
15
+ firstName: zod_1.z.string().optional(),
16
+ lastName: zod_1.z.string().optional(),
17
+ position: zod_1.z.string().optional(),
18
+ locations: zod_1.z.array(zod_1.z.string()).optional(),
19
+ industries: zod_1.z.array(zod_1.z.string()).optional(),
20
+ currentCompanies: zod_1.z.array(zod_1.z.string()).optional(),
21
+ previousCompanies: zod_1.z.array(zod_1.z.string()).optional(),
22
+ schools: zod_1.z.array(zod_1.z.string()).optional(),
23
+ })
24
+ .optional(),
25
+ });
26
+ getTool() {
27
+ return {
28
+ name: this.name,
29
+ description: 'Allows you to search people applying various filtering criteria (st.searchPeople action).',
30
+ inputSchema: {
31
+ type: 'object',
32
+ properties: {
33
+ term: {
34
+ type: 'string',
35
+ description: 'Optional. Keyword or phrase to search.',
36
+ },
37
+ limit: {
38
+ type: 'number',
39
+ description: 'Optional. Number of search results to return. Defaults to 10, with a maximum value of 1000.',
40
+ },
41
+ filter: {
42
+ type: 'object',
43
+ description: 'Optional. Object that specifies filtering criteria for people. When multiple filter fields are specified, they are combined using AND logic.',
44
+ properties: {
45
+ firstName: {
46
+ type: 'string',
47
+ description: 'Optional. First name of person.',
48
+ },
49
+ lastName: {
50
+ type: 'string',
51
+ description: 'Optional. Last name of person.',
52
+ },
53
+ position: {
54
+ type: 'string',
55
+ description: 'Optional. Job position of person.',
56
+ },
57
+ locations: {
58
+ type: 'array',
59
+ description: 'Optional. Array of free-form strings representing locations. Matches if person is located in any of the listed locations.',
60
+ items: { type: 'string' },
61
+ },
62
+ industries: {
63
+ type: 'array',
64
+ description: 'Optional. Array of enums representing industries. Matches if person works in any of the listed industries. Takes specific values available in the LinkedIn interface.',
65
+ items: { type: 'string' },
66
+ },
67
+ currentCompanies: {
68
+ type: 'array',
69
+ description: 'Optional. Array of company names. Matches if person currently works at any of the listed companies.',
70
+ items: { type: 'string' },
71
+ },
72
+ previousCompanies: {
73
+ type: 'array',
74
+ description: 'Optional. Array of company names. Matches if person previously worked at any of the listed companies.',
75
+ items: { type: 'string' },
76
+ },
77
+ schools: {
78
+ type: 'array',
79
+ description: 'Optional. Array of institution names. Matches if person currently attends or previously attended any of the listed institutions.',
80
+ items: { type: 'string' },
81
+ },
82
+ },
83
+ },
84
+ },
85
+ },
86
+ };
87
+ }
88
+ }
89
+ exports.SearchPeopleTool = SearchPeopleTool;
90
+ //# sourceMappingURL=search-people.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-people.js","sourceRoot":"","sources":["../../src/tools/search-people.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { TSendConnectionRequestParams } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ import { OperationTool } from '../utils/linked-api-tool.js';
5
+ export declare class SendConnectionRequestTool extends OperationTool<TSendConnectionRequestParams, unknown> {
6
+ readonly name = "send_connection_request";
7
+ readonly operationName: "sendConnectionRequest";
8
+ protected readonly schema: z.ZodObject<{
9
+ personUrl: z.ZodString;
10
+ note: z.ZodOptional<z.ZodString>;
11
+ email: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ getTool(): Tool;
14
+ }
15
+ //# sourceMappingURL=send-connection-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-connection-request.d.ts","sourceRoot":"","sources":["../../src/tools/send-connection-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,yBAA0B,SAAQ,aAAa,CAC1D,4BAA4B,EAC5B,OAAO,CACR;IACC,SAAyB,IAAI,6BAA6B;IAC1D,SAAyB,aAAa,0BAAwC;IAC9E,mBAA4B,MAAM;;;;sBAI/B;IAEa,OAAO,IAAI,IAAI;CA2BhC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendConnectionRequestTool = void 0;
4
+ const node_1 = require("@linkedapi/node");
5
+ const zod_1 = require("zod");
6
+ const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
7
+ class SendConnectionRequestTool extends linked_api_tool_js_1.OperationTool {
8
+ name = 'send_connection_request';
9
+ operationName = node_1.OPERATION_NAME.sendConnectionRequest;
10
+ schema = zod_1.z.object({
11
+ personUrl: zod_1.z.string(),
12
+ note: zod_1.z.string().optional(),
13
+ email: zod_1.z.string().optional(),
14
+ });
15
+ getTool() {
16
+ return {
17
+ name: this.name,
18
+ description: 'Allows you to send a connection request to a person (st.sendConnectionRequest action).',
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ personUrl: {
23
+ type: 'string',
24
+ description: "Public or hashed LinkedIn URL of the person you want to send a connection request to. (e.g., 'https://www.linkedin.com/in/john-doe')",
25
+ },
26
+ note: {
27
+ type: 'string',
28
+ description: 'Optional. Note to include with the connection request.',
29
+ },
30
+ email: {
31
+ type: 'string',
32
+ description: 'Optional. Email address required by some people for sending connection requests to them. If it is required and not provided, the connection request will fail.',
33
+ },
34
+ },
35
+ required: ['personUrl'],
36
+ },
37
+ };
38
+ }
39
+ }
40
+ exports.SendConnectionRequestTool = SendConnectionRequestTool;
41
+ //# sourceMappingURL=send-connection-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-connection-request.js","sourceRoot":"","sources":["../../src/tools/send-connection-request.ts"],"names":[],"mappings":";;;AAAA,0CAA+E;AAE/E,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,yBAA0B,SAAQ,kCAG9C;IAC0B,IAAI,GAAG,yBAAyB,CAAC;IACjC,aAAa,GAAG,qBAAc,CAAC,qBAAqB,CAAC;IAClD,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,wFAAwF;YAC1F,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,sIAAsI;qBACzI;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wDAAwD;qBACtE;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,gKAAgK;qBACnK;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;CACF;AAvCD,8DAuCC"}
@@ -0,0 +1,14 @@
1
+ import { TSendMessageParams } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ import { OperationTool } from '../utils/linked-api-tool.js';
5
+ export declare class SendMessageTool extends OperationTool<TSendMessageParams, unknown> {
6
+ readonly name = "send_message";
7
+ readonly operationName: "sendMessage";
8
+ protected readonly schema: z.ZodObject<{
9
+ personUrl: z.ZodString;
10
+ text: z.ZodString;
11
+ }, z.core.$strip>;
12
+ getTool(): Tool;
13
+ }
14
+ //# sourceMappingURL=send-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,eAAgB,SAAQ,aAAa,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7E,SAAyB,IAAI,kBAAkB;IAC/C,SAAyB,aAAa,gBAA8B;IACpE,mBAA4B,MAAM;;;sBAG/B;IAEa,OAAO,IAAI,IAAI;CAqBhC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendMessageTool = void 0;
4
+ const node_1 = require("@linkedapi/node");
5
+ const zod_1 = require("zod");
6
+ const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
7
+ class SendMessageTool extends linked_api_tool_js_1.OperationTool {
8
+ name = 'send_message';
9
+ operationName = node_1.OPERATION_NAME.sendMessage;
10
+ schema = zod_1.z.object({
11
+ personUrl: zod_1.z.string(),
12
+ text: zod_1.z.string().min(1),
13
+ });
14
+ getTool() {
15
+ return {
16
+ name: this.name,
17
+ description: 'Allows you to send a message to a person (st.sendMessage action).',
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ personUrl: {
22
+ type: 'string',
23
+ description: "LinkedIn URL of the person you want to send a message to (e.g., 'https://www.linkedin.com/in/john-doe')",
24
+ },
25
+ text: {
26
+ type: 'string',
27
+ description: 'The message text, must be up to 1900 characters.',
28
+ },
29
+ },
30
+ required: ['personUrl', 'text'],
31
+ },
32
+ };
33
+ }
34
+ }
35
+ exports.SendMessageTool = SendMessageTool;
36
+ //# sourceMappingURL=send-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/tools/send-message.ts"],"names":[],"mappings":";;;AAAA,0CAAqE;AAErE,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,eAAgB,SAAQ,kCAA0C;IACpD,IAAI,GAAG,cAAc,CAAC;IACtB,aAAa,GAAG,qBAAc,CAAC,WAAW,CAAC;IACxC,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACxB,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,mEAAmE;YAChF,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,yGAAyG;qBAC5G;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,kDAAkD;qBAChE;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;aAChC;SACF,CAAC;IACJ,CAAC;CACF;AA7BD,0CA6BC"}
@@ -0,0 +1,13 @@
1
+ import { TSyncConversationParams } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ import { OperationTool } from '../utils/linked-api-tool.js';
5
+ export declare class SyncConversationTool extends OperationTool<TSyncConversationParams, unknown> {
6
+ readonly name = "sync_conversation";
7
+ readonly operationName: "syncConversation";
8
+ protected readonly schema: z.ZodObject<{
9
+ personUrl: z.ZodString;
10
+ }, z.core.$strip>;
11
+ getTool(): Tool;
12
+ }
13
+ //# sourceMappingURL=sync-conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-conversation.d.ts","sourceRoot":"","sources":["../../src/tools/sync-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,uBAAuB,EAAE,OAAO,CAAC;IACvF,SAAyB,IAAI,uBAAuB;IACpD,SAAyB,aAAa,qBAAmC;IACzE,mBAA4B,MAAM;;sBAE/B;IAEa,OAAO,IAAI,IAAI;CAkBhC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SyncConversationTool = void 0;
4
+ const node_1 = require("@linkedapi/node");
5
+ const zod_1 = require("zod");
6
+ const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
7
+ class SyncConversationTool extends linked_api_tool_js_1.OperationTool {
8
+ name = 'sync_conversation';
9
+ operationName = node_1.OPERATION_NAME.syncConversation;
10
+ schema = zod_1.z.object({
11
+ personUrl: zod_1.z.string(),
12
+ });
13
+ getTool() {
14
+ return {
15
+ name: this.name,
16
+ description: 'Allows you to sync a conversation so you can start polling it (st.syncConversation action).',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ personUrl: {
21
+ type: 'string',
22
+ description: "The LinkedIn URL of the person whose conversation you want to synchronize (e.g., 'https://www.linkedin.com/in/john-doe')",
23
+ },
24
+ },
25
+ required: ['personUrl'],
26
+ },
27
+ };
28
+ }
29
+ }
30
+ exports.SyncConversationTool = SyncConversationTool;
31
+ //# sourceMappingURL=sync-conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-conversation.js","sourceRoot":"","sources":["../../src/tools/sync-conversation.ts"],"names":[],"mappings":";;;AAAA,0CAA0E;AAE1E,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,oBAAqB,SAAQ,kCAA+C;IAC9D,IAAI,GAAG,mBAAmB,CAAC;IAC3B,aAAa,GAAG,qBAAc,CAAC,gBAAgB,CAAC;IAC7C,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;KACtB,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,6FAA6F;YAC/F,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,0HAA0H;qBAC7H;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;CACF;AAzBD,oDAyBC"}
@@ -0,0 +1,14 @@
1
+ import { TWithdrawConnectionRequestParams } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ import { OperationTool } from '../utils/linked-api-tool.js';
5
+ export declare class WithdrawConnectionRequestTool extends OperationTool<TWithdrawConnectionRequestParams, unknown> {
6
+ readonly name = "withdraw_connection_request";
7
+ readonly operationName: "withdrawConnectionRequest";
8
+ protected readonly schema: z.ZodObject<{
9
+ personUrl: z.ZodString;
10
+ unfollow: z.ZodOptional<z.ZodBoolean>;
11
+ }, z.core.$strip>;
12
+ getTool(): Tool;
13
+ }
14
+ //# sourceMappingURL=withdraw-connection-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdraw-connection-request.d.ts","sourceRoot":"","sources":["../../src/tools/withdraw-connection-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,6BAA8B,SAAQ,aAAa,CAC9D,gCAAgC,EAChC,OAAO,CACR;IACC,SAAyB,IAAI,iCAAiC;IAC9D,SAAyB,aAAa,8BAA4C;IAClF,mBAA4B,MAAM;;;sBAG/B;IAEa,OAAO,IAAI,IAAI;CAuBhC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WithdrawConnectionRequestTool = void 0;
4
+ const node_1 = require("@linkedapi/node");
5
+ const zod_1 = require("zod");
6
+ const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
7
+ class WithdrawConnectionRequestTool extends linked_api_tool_js_1.OperationTool {
8
+ name = 'withdraw_connection_request';
9
+ operationName = node_1.OPERATION_NAME.withdrawConnectionRequest;
10
+ schema = zod_1.z.object({
11
+ personUrl: zod_1.z.string(),
12
+ unfollow: zod_1.z.boolean().optional(),
13
+ });
14
+ getTool() {
15
+ return {
16
+ name: this.name,
17
+ description: 'Allows you to withdraw the connection request sent to a person (st.withdrawConnectionRequest action).',
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ personUrl: {
22
+ type: 'string',
23
+ description: "Public or hashed LinkedIn URL of the person you want to withdraw the connection request from. (e.g., 'https://www.linkedin.com/in/john-doe')",
24
+ },
25
+ unfollow: {
26
+ type: 'boolean',
27
+ description: 'Optional. Boolean indicating whether you want to unfollow the person when withdrawing the request. The default value is true.',
28
+ },
29
+ },
30
+ required: ['personUrl'],
31
+ },
32
+ };
33
+ }
34
+ }
35
+ exports.WithdrawConnectionRequestTool = WithdrawConnectionRequestTool;
36
+ //# sourceMappingURL=withdraw-connection-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdraw-connection-request.js","sourceRoot":"","sources":["../../src/tools/withdraw-connection-request.ts"],"names":[],"mappings":";;;AAAA,0CAAmF;AAEnF,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,6BAA8B,SAAQ,kCAGlD;IAC0B,IAAI,GAAG,6BAA6B,CAAC;IACrC,aAAa,GAAG,qBAAc,CAAC,yBAAyB,CAAC;IACtD,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACjC,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,uGAAuG;YACzG,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,8IAA8I;qBACjJ;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,+HAA+H;qBAClI;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;CACF;AAlCD,sEAkCC"}
@@ -0,0 +1,2 @@
1
+ export declare function defineRequestTimeoutInSeconds(mcpClient: string): number;
2
+ //# sourceMappingURL=define-request-timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-request-timeout.d.ts","sourceRoot":"","sources":["../../src/utils/define-request-timeout.ts"],"names":[],"mappings":"AAAA,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAgBvE"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineRequestTimeoutInSeconds = defineRequestTimeoutInSeconds;
4
+ function defineRequestTimeoutInSeconds(mcpClient) {
5
+ const bigTimeout = 600;
6
+ console.error('mcpClient', mcpClient);
7
+ switch (mcpClient) {
8
+ case 'claude':
9
+ return 180;
10
+ case 'chatgpt':
11
+ return 50;
12
+ case 'cursor':
13
+ case 'vscode':
14
+ case 'windsurf':
15
+ return bigTimeout;
16
+ default:
17
+ return 60;
18
+ }
19
+ }
20
+ //# sourceMappingURL=define-request-timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-request-timeout.js","sourceRoot":"","sources":["../../src/utils/define-request-timeout.ts"],"names":[],"mappings":";;AAAA,sEAgBC;AAhBD,SAAgB,6BAA6B,CAAC,SAAiB;IAC7D,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Operation, TMappedResponse } from '@linkedapi/node';
2
+ import { LinkedApiProgressNotification } from './types';
3
+ export declare function executeWithProgress<TParams, TResult>(progressCallback: (progress: LinkedApiProgressNotification) => void, operation: Operation<TParams, TResult>, workflowTimeout: number, { params, workflowId, progressToken, }?: {
4
+ params?: TParams;
5
+ workflowId?: string;
6
+ progressToken?: string | number;
7
+ }): Promise<TMappedResponse<TResult>>;
8
+ //# sourceMappingURL=execute-with-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-with-progress.d.ts","sourceRoot":"","sources":["../../src/utils/execute-with-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AAExD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EACxD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,6BAA6B,KAAK,IAAI,EACnE,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EACtC,eAAe,EAAE,MAAM,EACvB,EACE,MAAM,EACN,UAAU,EACV,aAAa,GACd,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,GACjF,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAqDnC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeWithProgress = executeWithProgress;
4
+ const node_1 = require("@linkedapi/node");
5
+ async function executeWithProgress(progressCallback, operation, workflowTimeout, { params, workflowId, progressToken, } = {}) {
6
+ let progress = 0;
7
+ progressCallback({
8
+ progressToken,
9
+ progress,
10
+ total: 100,
11
+ message: `Starting workflow ${operation.operationName}...`,
12
+ });
13
+ const interval = setInterval(() => {
14
+ if (progress < 50) {
15
+ progress += 5;
16
+ }
17
+ else if (progress < 98) {
18
+ progress += 1;
19
+ }
20
+ progressCallback({
21
+ progressToken,
22
+ progress,
23
+ total: 100,
24
+ message: `Executing workflow ${operation.operationName}...`,
25
+ });
26
+ }, Math.max(workflowTimeout / 20, 10000));
27
+ try {
28
+ if (!workflowId) {
29
+ workflowId = await operation.execute(params);
30
+ }
31
+ const result = await operation.result(workflowId, {
32
+ timeout: workflowTimeout,
33
+ });
34
+ clearInterval(interval);
35
+ progressCallback({
36
+ progressToken,
37
+ progress: 100,
38
+ total: 100,
39
+ message: `Workflow ${operation.operationName} completed successfully`,
40
+ });
41
+ return result;
42
+ }
43
+ catch (error) {
44
+ clearInterval(interval);
45
+ if (error instanceof node_1.LinkedApiWorkflowTimeoutError) {
46
+ throw generateTimeoutError(error);
47
+ }
48
+ throw error;
49
+ }
50
+ }
51
+ function generateTimeoutError(error) {
52
+ const restoreMessage = `Workflow is running in the background. Continue listening for updates.
53
+
54
+ ACTION REQUIRED (MCP CLIENT):
55
+ - Do not retry the original tool; the workflow is already running
56
+ - Call the get_workflow_result tool with the parameters below and keep listening until completion
57
+
58
+ PARAMETERS TO USE:
59
+ - workflowId: ${error.workflowId}
60
+ - operationName: ${error.operationName}
61
+
62
+ GENERIC MCP CALL EXAMPLE:
63
+ {
64
+ "name": "get_workflow_result",
65
+ "arguments": {
66
+ "workflowId": "${error.workflowId}",
67
+ "operationName": "${error.operationName}"
68
+ }
69
+ }
70
+
71
+ Background processing keeps the MCP client responsive while the workflow completes.`;
72
+ error.message = restoreMessage;
73
+ return error;
74
+ }
75
+ //# sourceMappingURL=execute-with-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-with-progress.js","sourceRoot":"","sources":["../../src/utils/execute-with-progress.ts"],"names":[],"mappings":";;AAIA,kDA8DC;AAlED,0CAA4F;AAIrF,KAAK,UAAU,mBAAmB,CACvC,gBAAmE,EACnE,SAAsC,EACtC,eAAuB,EACvB,EACE,MAAM,EACN,UAAU,EACV,aAAa,MACiE,EAAE;IAElF,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,gBAAgB,CAAC;QACf,aAAa;QACb,QAAQ;QACR,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,qBAAqB,SAAS,CAAC,aAAa,KAAK;KAC3D,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAC1B,GAAG,EAAE;QACH,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;YAClB,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;YACzB,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,gBAAgB,CAAC;YACf,aAAa;YACb,QAAQ;YACR,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,sBAAsB,SAAS,CAAC,aAAa,KAAK;SAC5D,CAAC,CAAC;IACL,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,EAAE,KAAK,CAAC,CACtC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAiB,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;YAChD,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QACH,aAAa,CAAC,QAAQ,CAAC,CAAC;QAExB,gBAAgB,CAAC;YACf,aAAa;YACb,QAAQ,EAAE,GAAG;YACb,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,YAAY,SAAS,CAAC,aAAa,yBAAyB;SACtE,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxB,IAAI,KAAK,YAAY,oCAA6B,EAAE,CAAC;YACnD,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAoC;IAChE,MAAM,cAAc,GAAG;;;;;;;gBAOT,KAAK,CAAC,UAAU;mBACb,KAAK,CAAC,aAAa;;;;;;qBAMjB,KAAK,CAAC,UAAU;wBACb,KAAK,CAAC,aAAa;;;;oFAIyC,CAAC;IAEnF,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { LinkedApiError } from '@linkedapi/node';
2
+ export declare function handleLinkedApiError(error: LinkedApiError): object;
3
+ //# sourceMappingURL=handle-linked-api-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-linked-api-error.d.ts","sourceRoot":"","sources":["../../src/utils/handle-linked-api-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiC,MAAM,iBAAiB,CAAC;AAIhF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAsBlE"}