@raytio/mcp-server 1.16.1 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/ppm/__fixtures__/work-item.d.ts.map +1 -1
  2. package/dist/ppm/__fixtures__/work-item.js +1 -0
  3. package/dist/ppm/__fixtures__/work-item.js.map +1 -1
  4. package/dist/ppm/projection.d.ts.map +1 -1
  5. package/dist/ppm/projection.js +1 -0
  6. package/dist/ppm/projection.js.map +1 -1
  7. package/dist/ppm/types.d.ts +1 -0
  8. package/dist/ppm/types.d.ts.map +1 -1
  9. package/dist/raytio/api-client.d.ts +20 -1
  10. package/dist/raytio/api-client.d.ts.map +1 -1
  11. package/dist/raytio/api-client.js +18 -1
  12. package/dist/raytio/api-client.js.map +1 -1
  13. package/dist/sfa/filters.d.ts +49 -0
  14. package/dist/sfa/filters.d.ts.map +1 -0
  15. package/dist/sfa/filters.js +93 -0
  16. package/dist/sfa/filters.js.map +1 -0
  17. package/dist/sfa/projection.d.ts +9 -0
  18. package/dist/sfa/projection.d.ts.map +1 -0
  19. package/dist/sfa/projection.js +57 -0
  20. package/dist/sfa/projection.js.map +1 -0
  21. package/dist/sfa/types.d.ts +107 -0
  22. package/dist/sfa/types.d.ts.map +1 -0
  23. package/dist/sfa/types.js +2 -0
  24. package/dist/sfa/types.js.map +1 -0
  25. package/dist/tools/domains.d.ts.map +1 -1
  26. package/dist/tools/domains.js +21 -0
  27. package/dist/tools/domains.js.map +1 -1
  28. package/dist/tools/ppm/work-item-create.d.ts.map +1 -1
  29. package/dist/tools/ppm/work-item-create.js +2 -1
  30. package/dist/tools/ppm/work-item-create.js.map +1 -1
  31. package/dist/tools/ppm/work-item-update.d.ts.map +1 -1
  32. package/dist/tools/ppm/work-item-update.js +1 -0
  33. package/dist/tools/ppm/work-item-update.js.map +1 -1
  34. package/dist/tools/role-mapping.d.ts.map +1 -1
  35. package/dist/tools/role-mapping.js +6 -0
  36. package/dist/tools/role-mapping.js.map +1 -1
  37. package/dist/tools/sfa/activity-create.d.ts +3 -0
  38. package/dist/tools/sfa/activity-create.d.ts.map +1 -0
  39. package/dist/tools/sfa/activity-create.js +49 -0
  40. package/dist/tools/sfa/activity-create.js.map +1 -0
  41. package/dist/tools/sfa/activity-list.d.ts +3 -0
  42. package/dist/tools/sfa/activity-list.d.ts.map +1 -0
  43. package/dist/tools/sfa/activity-list.js +47 -0
  44. package/dist/tools/sfa/activity-list.js.map +1 -0
  45. package/dist/tools/sfa/deal-advance-stage.d.ts +13 -0
  46. package/dist/tools/sfa/deal-advance-stage.d.ts.map +1 -0
  47. package/dist/tools/sfa/deal-advance-stage.js +48 -0
  48. package/dist/tools/sfa/deal-advance-stage.js.map +1 -0
  49. package/dist/tools/sfa/deal-create.d.ts +3 -0
  50. package/dist/tools/sfa/deal-create.d.ts.map +1 -0
  51. package/dist/tools/sfa/deal-create.js +51 -0
  52. package/dist/tools/sfa/deal-create.js.map +1 -0
  53. package/dist/tools/sfa/deal-get.d.ts +3 -0
  54. package/dist/tools/sfa/deal-get.d.ts.map +1 -0
  55. package/dist/tools/sfa/deal-get.js +24 -0
  56. package/dist/tools/sfa/deal-get.js.map +1 -0
  57. package/dist/tools/sfa/deal-line-create.d.ts +3 -0
  58. package/dist/tools/sfa/deal-line-create.d.ts.map +1 -0
  59. package/dist/tools/sfa/deal-line-create.js +37 -0
  60. package/dist/tools/sfa/deal-line-create.js.map +1 -0
  61. package/dist/tools/sfa/deal-line-list.d.ts +3 -0
  62. package/dist/tools/sfa/deal-line-list.d.ts.map +1 -0
  63. package/dist/tools/sfa/deal-line-list.js +44 -0
  64. package/dist/tools/sfa/deal-line-list.js.map +1 -0
  65. package/dist/tools/sfa/deal-list.d.ts +3 -0
  66. package/dist/tools/sfa/deal-list.d.ts.map +1 -0
  67. package/dist/tools/sfa/deal-list.js +40 -0
  68. package/dist/tools/sfa/deal-list.js.map +1 -0
  69. package/dist/tools/sfa/deal-update.d.ts +3 -0
  70. package/dist/tools/sfa/deal-update.d.ts.map +1 -0
  71. package/dist/tools/sfa/deal-update.js +56 -0
  72. package/dist/tools/sfa/deal-update.js.map +1 -0
  73. package/dist/tools/sfa/index.d.ts +3 -0
  74. package/dist/tools/sfa/index.d.ts.map +1 -0
  75. package/dist/tools/sfa/index.js +49 -0
  76. package/dist/tools/sfa/index.js.map +1 -0
  77. package/dist/tools/sfa/lead-convert.d.ts +15 -0
  78. package/dist/tools/sfa/lead-convert.d.ts.map +1 -0
  79. package/dist/tools/sfa/lead-convert.js +57 -0
  80. package/dist/tools/sfa/lead-convert.js.map +1 -0
  81. package/dist/tools/sfa/lead-create.d.ts +3 -0
  82. package/dist/tools/sfa/lead-create.d.ts.map +1 -0
  83. package/dist/tools/sfa/lead-create.js +52 -0
  84. package/dist/tools/sfa/lead-create.js.map +1 -0
  85. package/dist/tools/sfa/lead-dedup.d.ts +13 -0
  86. package/dist/tools/sfa/lead-dedup.d.ts.map +1 -0
  87. package/dist/tools/sfa/lead-dedup.js +43 -0
  88. package/dist/tools/sfa/lead-dedup.js.map +1 -0
  89. package/dist/tools/sfa/lead-get.d.ts +3 -0
  90. package/dist/tools/sfa/lead-get.d.ts.map +1 -0
  91. package/dist/tools/sfa/lead-get.js +24 -0
  92. package/dist/tools/sfa/lead-get.js.map +1 -0
  93. package/dist/tools/sfa/lead-import.d.ts +13 -0
  94. package/dist/tools/sfa/lead-import.d.ts.map +1 -0
  95. package/dist/tools/sfa/lead-import.js +55 -0
  96. package/dist/tools/sfa/lead-import.js.map +1 -0
  97. package/dist/tools/sfa/lead-list.d.ts +3 -0
  98. package/dist/tools/sfa/lead-list.d.ts.map +1 -0
  99. package/dist/tools/sfa/lead-list.js +40 -0
  100. package/dist/tools/sfa/lead-list.js.map +1 -0
  101. package/dist/tools/sfa/lead-promote.d.ts +14 -0
  102. package/dist/tools/sfa/lead-promote.d.ts.map +1 -0
  103. package/dist/tools/sfa/lead-promote.js +42 -0
  104. package/dist/tools/sfa/lead-promote.js.map +1 -0
  105. package/dist/tools/sfa/lead-source-list.d.ts +3 -0
  106. package/dist/tools/sfa/lead-source-list.d.ts.map +1 -0
  107. package/dist/tools/sfa/lead-source-list.js +45 -0
  108. package/dist/tools/sfa/lead-source-list.js.map +1 -0
  109. package/dist/tools/sfa/lead-staging-get.d.ts +3 -0
  110. package/dist/tools/sfa/lead-staging-get.d.ts.map +1 -0
  111. package/dist/tools/sfa/lead-staging-get.js +24 -0
  112. package/dist/tools/sfa/lead-staging-get.js.map +1 -0
  113. package/dist/tools/sfa/lead-staging-list.d.ts +3 -0
  114. package/dist/tools/sfa/lead-staging-list.d.ts.map +1 -0
  115. package/dist/tools/sfa/lead-staging-list.js +41 -0
  116. package/dist/tools/sfa/lead-staging-list.js.map +1 -0
  117. package/dist/tools/sfa/lead-update.d.ts +3 -0
  118. package/dist/tools/sfa/lead-update.d.ts.map +1 -0
  119. package/dist/tools/sfa/lead-update.js +56 -0
  120. package/dist/tools/sfa/lead-update.js.map +1 -0
  121. package/dist/tools/sfa/pipeline-list.d.ts +3 -0
  122. package/dist/tools/sfa/pipeline-list.d.ts.map +1 -0
  123. package/dist/tools/sfa/pipeline-list.js +44 -0
  124. package/dist/tools/sfa/pipeline-list.js.map +1 -0
  125. package/dist/tools/types.d.ts +2 -0
  126. package/dist/tools/types.d.ts.map +1 -1
  127. package/dist/tools/types.js +2 -0
  128. package/dist/tools/types.js.map +1 -1
  129. package/package.json +1 -1
  130. package/dist/tools/create-access-app.d.ts +0 -10
  131. package/dist/tools/create-access-app.d.ts.map +0 -1
  132. package/dist/tools/create-access-app.js +0 -20
  133. package/dist/tools/create-access-app.js.map +0 -1
  134. package/dist/tools/create-form.d.ts +0 -41
  135. package/dist/tools/create-form.d.ts.map +0 -1
  136. package/dist/tools/create-form.js +0 -81
  137. package/dist/tools/create-form.js.map +0 -1
  138. package/dist/tools/list-schemas.d.ts +0 -7
  139. package/dist/tools/list-schemas.d.ts.map +0 -1
  140. package/dist/tools/list-schemas.js +0 -19
  141. package/dist/tools/list-schemas.js.map +0 -1
  142. package/dist/tools/poll-and-retrieve.d.ts +0 -9
  143. package/dist/tools/poll-and-retrieve.d.ts.map +0 -1
  144. package/dist/tools/poll-and-retrieve.js +0 -48
  145. package/dist/tools/poll-and-retrieve.js.map +0 -1
  146. package/dist/tools/ppm/role-memory-create.d.ts +0 -3
  147. package/dist/tools/ppm/role-memory-create.d.ts.map +0 -1
  148. package/dist/tools/ppm/role-memory-create.js +0 -38
  149. package/dist/tools/ppm/role-memory-create.js.map +0 -1
  150. package/dist/tools/ppm/role-memory-get.d.ts +0 -3
  151. package/dist/tools/ppm/role-memory-get.d.ts.map +0 -1
  152. package/dist/tools/ppm/role-memory-get.js +0 -24
  153. package/dist/tools/ppm/role-memory-get.js.map +0 -1
  154. package/dist/tools/ppm/role-memory-list.d.ts +0 -3
  155. package/dist/tools/ppm/role-memory-list.d.ts.map +0 -1
  156. package/dist/tools/ppm/role-memory-list.js +0 -55
  157. package/dist/tools/ppm/role-memory-list.js.map +0 -1
  158. package/dist/tools/ppm/role-memory-update.d.ts +0 -3
  159. package/dist/tools/ppm/role-memory-update.d.ts.map +0 -1
  160. package/dist/tools/ppm/role-memory-update.js +0 -42
  161. package/dist/tools/ppm/role-memory-update.js.map +0 -1
  162. package/dist/tools/send-request.d.ts +0 -11
  163. package/dist/tools/send-request.d.ts.map +0 -1
  164. package/dist/tools/send-request.js +0 -24
  165. package/dist/tools/send-request.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ import { z } from 'zod';
2
+ import { successResponse, errorResponse, API_ERROR } from '../types.js';
3
+ import { SFA_LEAD_SOURCE_SELECT } from '../../sfa/projection.js';
4
+ export const leadSourceListTool = {
5
+ name: 'sfa_lead_source_list',
6
+ description: 'List SFA lead sources (web form, referral, campaign, etc.)',
7
+ inputSchema: z.object({
8
+ source_code: z.string().optional().describe('Filter by source_code'),
9
+ source_type: z.string().optional()
10
+ .describe('Filter by source_type (SFA_LEAD_SOURCE_TYPE lookup)'),
11
+ active: z.boolean().optional().describe('Filter by active flag (default true)'),
12
+ limit: z.number().optional().describe('Max results (default 50, max 200)'),
13
+ offset: z.number().optional().describe('Offset for pagination'),
14
+ order_by: z.string().optional()
15
+ .describe('PostgREST order clause (default: source_name.asc)'),
16
+ }),
17
+ handler: async (args, ctx) => {
18
+ const input = args;
19
+ try {
20
+ const parts = [];
21
+ if (input.source_code)
22
+ parts.push(`source_code=eq.${input.source_code}`);
23
+ if (input.source_type)
24
+ parts.push(`source_type=eq.${input.source_type}`);
25
+ const active = input.active ?? true;
26
+ parts.push(`active=eq.${active}`);
27
+ const limit = Math.min(input.limit ?? 50, 200);
28
+ parts.push(`limit=${limit}`);
29
+ if (input.offset)
30
+ parts.push(`offset=${input.offset}`);
31
+ parts.push(`order=${input.order_by ?? 'source_name.asc'}`);
32
+ const items = await ctx.apiClient.get(`${ctx.apiClient.dbBasePath}/sfa_lead_sources?select=${SFA_LEAD_SOURCE_SELECT}&${parts.join('&')}`, { headers: { Prefer: 'count=exact' } });
33
+ const offset = input.offset ?? 0;
34
+ return successResponse({
35
+ items,
36
+ count: items.length,
37
+ next_offset: items.length === limit ? offset + limit : null,
38
+ });
39
+ }
40
+ catch (error) {
41
+ return errorResponse(API_ERROR, `Failed to list SFA lead sources: ${error.message}`);
42
+ }
43
+ },
44
+ };
45
+ //# sourceMappingURL=lead-source-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-source-list.js","sourceRoot":"","sources":["../../../src/tools/sfa/lead-source-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../registry.js';
2
+ export declare const leadStagingGetTool: Tool;
3
+ //# sourceMappingURL=lead-staging-get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-staging-get.d.ts","sourceRoot":"","sources":["../../../src/tools/sfa/lead-staging-get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,eAAO,MAAM,kBAAkB,EAAE,IAoBhC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { successResponse, errorResponse, SFA_NOT_FOUND, API_ERROR } from '../types.js';
3
+ import { SFA_LEAD_STAGING_SELECT } from '../../sfa/projection.js';
4
+ export const leadStagingGetTool = {
5
+ name: 'sfa_lead_staging_get',
6
+ description: 'Get a single SFA lead staging row by ID (UUID).',
7
+ inputSchema: z.object({
8
+ id: z.string().describe('UUID of the staging row'),
9
+ }),
10
+ handler: async (args, ctx) => {
11
+ const { id } = args;
12
+ try {
13
+ const items = await ctx.apiClient.get(`${ctx.apiClient.dbBasePath}/sfa_lead_staging?id=eq.${id}&select=${SFA_LEAD_STAGING_SELECT}`);
14
+ if (!items || items.length === 0) {
15
+ return errorResponse(SFA_NOT_FOUND, `Lead staging row ${id} not found`);
16
+ }
17
+ return successResponse(items[0]);
18
+ }
19
+ catch (error) {
20
+ return errorResponse(API_ERROR, `Failed to get SFA lead staging: ${error.message}`);
21
+ }
22
+ },
23
+ };
24
+ //# sourceMappingURL=lead-staging-get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-staging-get.js","sourceRoot":"","sources":["../../../src/tools/sfa/lead-staging-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,MAAM,CAAC,MAAM,kBAAkB,GAAS;IACtC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,iDAAiD;IAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KACnD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAsB,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,CACnC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,2BAA2B,EAAE,WAAW,uBAAuB,EAAE,CAC7F,CAAC;YACF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,aAAa,CAAC,aAAa,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,aAAa,CAAC,SAAS,EAAE,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../registry.js';
2
+ export declare const leadStagingListTool: Tool;
3
+ //# sourceMappingURL=lead-staging-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-staging-list.d.ts","sourceRoot":"","sources":["../../../src/tools/sfa/lead-staging-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAMtC,eAAO,MAAM,mBAAmB,EAAE,IAsCjC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ import { successResponse, errorResponse, API_ERROR } from '../types.js';
3
+ import { SFA_LEAD_STAGING_SELECT } from '../../sfa/projection.js';
4
+ import { buildLeadStagingQuery } from '../../sfa/filters.js';
5
+ export const leadStagingListTool = {
6
+ name: 'sfa_lead_staging_list',
7
+ description: 'List/filter SFA lead staging rows (inbound/CSV/agent ingestion buffer prior to dedup + promote).',
8
+ inputSchema: z.object({
9
+ dedup_status: z.union([z.string(), z.array(z.string())]).optional()
10
+ .describe('Filter by dedup_status (PENDING/MATCHED/NEW/REJECTED). Single value or array.'),
11
+ source_type: z.union([z.string(), z.array(z.string())]).optional()
12
+ .describe('Filter by source_type (e.g. IMPORT, INBOUND, AGENT, API). Single value or array.'),
13
+ source_ref: z.string().optional()
14
+ .describe('Filter by source_ref (e.g. S3 key or inbound email id)'),
15
+ matched_lead_id: z.string().optional().describe('Filter by matched lead UUID'),
16
+ matched_party_id: z.string().optional().describe('Filter by matched party UUID'),
17
+ active: z.boolean().optional()
18
+ .describe('Filter by active flag (default true; set false to view promoted/archived rows)'),
19
+ limit: z.number().optional().describe('Max results (default 50, max 200)'),
20
+ offset: z.number().optional().describe('Offset for pagination'),
21
+ order_by: z.string().optional()
22
+ .describe('PostgREST order clause (default: start_date.desc)'),
23
+ }),
24
+ handler: async (args, ctx) => {
25
+ const input = args;
26
+ try {
27
+ const { query, limit } = buildLeadStagingQuery(input);
28
+ const items = await ctx.apiClient.get(`${ctx.apiClient.dbBasePath}/sfa_lead_staging?select=${SFA_LEAD_STAGING_SELECT}&${query}`, { headers: { Prefer: 'count=exact' } });
29
+ const offset = input.offset ?? 0;
30
+ return successResponse({
31
+ items,
32
+ count: items.length,
33
+ next_offset: items.length === limit ? offset + limit : null,
34
+ });
35
+ }
36
+ catch (error) {
37
+ return errorResponse(API_ERROR, `Failed to list SFA lead staging: ${error.message}`);
38
+ }
39
+ },
40
+ };
41
+ //# sourceMappingURL=lead-staging-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-staging-list.js","sourceRoot":"","sources":["../../../src/tools/sfa/lead-staging-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,CAAC,MAAM,mBAAmB,GAAS;IACvC,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,kGAAkG;IACpG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;aAChE,QAAQ,CAAC,+EAA+E,CAAC;QAC5F,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;aAC/D,QAAQ,CAAC,kFAAkF,CAAC;QAC/F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC9B,QAAQ,CAAC,wDAAwD,CAAC;QACrE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC9E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAChF,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;aAC3B,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC1E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,QAAQ,CAAC,mDAAmD,CAAC;KACjE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAA2B,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,CACnC,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,4BAA4B,uBAAuB,IAAI,KAAK,EAAE,EACzF,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CACvC,CAAC;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YACjC,OAAO,eAAe,CAAC;gBACrB,KAAK;gBACL,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;aAC5D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,aAAa,CAAC,SAAS,EAAE,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../registry.js';
2
+ export declare const leadUpdateTool: Tool;
3
+ //# sourceMappingURL=lead-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-update.d.ts","sourceRoot":"","sources":["../../../src/tools/sfa/lead-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAYtC,eAAO,MAAM,cAAc,EAAE,IAuD5B,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ import { successResponse, errorResponse, SFA_NOT_FOUND, SFA_VALIDATION, API_ERROR, } from '../types.js';
3
+ import { SFA_LEAD_SELECT } from '../../sfa/projection.js';
4
+ const UUID_FIELDS = new Set([
5
+ 'id', 'lead_source_id', 'party_id', 'assigned_to', 'converted_party_id', 'converted_deal_id',
6
+ ]);
7
+ export const leadUpdateTool = {
8
+ name: 'sfa_lead_update',
9
+ description: 'Update an SFA sales lead (generic CRUD). Pass null for a nullable field to clear it; omit the field to leave it unchanged.',
10
+ inputSchema: z.object({
11
+ id: z.string().describe('UUID of the lead'),
12
+ lead_name: z.string().optional().describe('Display name'),
13
+ first_name: z.string().nullable().optional().describe('First name (null to clear)'),
14
+ last_name: z.string().nullable().optional().describe('Last name (null to clear)'),
15
+ company_name: z.string().nullable().optional().describe('Company name (null to clear)'),
16
+ job_title: z.string().nullable().optional().describe('Job title (null to clear)'),
17
+ email: z.string().nullable().optional().describe('Email address (null to clear)'),
18
+ phone: z.string().nullable().optional().describe('Phone number (null to clear)'),
19
+ lead_status: z.string().nullable().optional().describe('Lead status (null to clear)'),
20
+ lead_rating: z.string().nullable().optional().describe('Lead rating (null to clear)'),
21
+ lead_score: z.number().nullable().optional().describe('Lead score (null to clear)'),
22
+ lead_source_id: z.string().nullable().optional().describe('Lead source UUID (null to clear)'),
23
+ party_id: z.string().nullable().optional().describe('Linked PRM party UUID (null to clear)'),
24
+ assigned_to: z.string().nullable().optional().describe('Assigned user UUID (null to clear)'),
25
+ enrichment: z.record(z.unknown()).nullable().optional()
26
+ .describe('Lead enrichment payload (null to clear)'),
27
+ active: z.boolean().optional().describe('Set to false for soft-delete'),
28
+ metadata: z.record(z.unknown()).nullable().optional()
29
+ .describe('Arbitrary JSON metadata object (null to clear)'),
30
+ }),
31
+ handler: async (args, ctx) => {
32
+ const { id, ...updates } = args;
33
+ for (const field of UUID_FIELDS) {
34
+ const value = field === 'id' ? id : updates[field];
35
+ if (value === '') {
36
+ return errorResponse(SFA_VALIDATION, `${field} must be a valid UUID, not an empty string`);
37
+ }
38
+ }
39
+ try {
40
+ const body = {};
41
+ for (const [key, value] of Object.entries(updates)) {
42
+ if (value !== undefined)
43
+ body[key] = value;
44
+ }
45
+ const items = await ctx.apiClient.patch(`${ctx.apiClient.dbBasePath}/sfa_leads?id=eq.${id}&select=${SFA_LEAD_SELECT}`, body, { headers: { Prefer: 'return=representation' } });
46
+ if (!items || items.length === 0) {
47
+ return errorResponse(SFA_NOT_FOUND, `Lead ${id} not found`);
48
+ }
49
+ return successResponse(items[0]);
50
+ }
51
+ catch (error) {
52
+ return errorResponse(API_ERROR, `Failed to update SFA lead: ${error.message}`);
53
+ }
54
+ },
55
+ };
56
+ //# sourceMappingURL=lead-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-update.js","sourceRoot":"","sources":["../../../src/tools/sfa/lead-update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../registry.js';
2
+ export declare const pipelineListTool: Tool;
3
+ //# sourceMappingURL=pipeline-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-list.d.ts","sourceRoot":"","sources":["../../../src/tools/sfa/pipeline-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,eAAO,MAAM,gBAAgB,EAAE,IAyC9B,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { successResponse, errorResponse, API_ERROR } from '../types.js';
3
+ import { SFA_PIPELINE_SELECT } from '../../sfa/projection.js';
4
+ export const pipelineListTool = {
5
+ name: 'sfa_pipeline_list',
6
+ description: 'List SFA sales pipelines',
7
+ inputSchema: z.object({
8
+ pipeline_code: z.string().optional().describe('Filter by pipeline_code'),
9
+ is_default: z.boolean().optional().describe('Filter by is_default flag'),
10
+ active: z.boolean().optional().describe('Filter by active flag (default true)'),
11
+ limit: z.number().optional().describe('Max results (default 50, max 200)'),
12
+ offset: z.number().optional().describe('Offset for pagination'),
13
+ order_by: z.string().optional()
14
+ .describe('PostgREST order clause (default: pipeline_name.asc)'),
15
+ }),
16
+ handler: async (args, ctx) => {
17
+ const input = args;
18
+ try {
19
+ const parts = [];
20
+ if (input.pipeline_code)
21
+ parts.push(`pipeline_code=eq.${input.pipeline_code}`);
22
+ if (input.is_default !== undefined)
23
+ parts.push(`is_default=eq.${input.is_default}`);
24
+ const active = input.active ?? true;
25
+ parts.push(`active=eq.${active}`);
26
+ const limit = Math.min(input.limit ?? 50, 200);
27
+ parts.push(`limit=${limit}`);
28
+ if (input.offset)
29
+ parts.push(`offset=${input.offset}`);
30
+ parts.push(`order=${input.order_by ?? 'pipeline_name.asc'}`);
31
+ const items = await ctx.apiClient.get(`${ctx.apiClient.dbBasePath}/sfa_pipelines?select=${SFA_PIPELINE_SELECT}&${parts.join('&')}`, { headers: { Prefer: 'count=exact' } });
32
+ const offset = input.offset ?? 0;
33
+ return successResponse({
34
+ items,
35
+ count: items.length,
36
+ next_offset: items.length === limit ? offset + limit : null,
37
+ });
38
+ }
39
+ catch (error) {
40
+ return errorResponse(API_ERROR, `Failed to list SFA pipelines: ${error.message}`);
41
+ }
42
+ },
43
+ };
44
+ //# sourceMappingURL=pipeline-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-list.js","sourceRoot":"","sources":["../../../src/tools/sfa/pipeline-list.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,7 @@ export declare const PPM_NOT_FOUND = "PPM_NOT_FOUND";
13
13
  export declare const PPM_VALIDATION = "PPM_VALIDATION";
14
14
  export declare const WRM_NOT_FOUND = "WRM_NOT_FOUND";
15
15
  export declare const WRM_VALIDATION = "WRM_VALIDATION";
16
+ export declare const SFA_NOT_FOUND = "SFA_NOT_FOUND";
17
+ export declare const SFA_VALIDATION = "SFA_VALIDATION";
16
18
  export declare const API_ERROR = "API_ERROR";
17
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,GAAG,CAAC;KACf,CAAC;CACH;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,YAAY,CAExF;AAGD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,SAAS,cAAc,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,GAAG,CAAC;KACf,CAAC;CACH;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,YAAY,CAExF;AAGD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,SAAS,cAAc,CAAC"}
@@ -9,5 +9,7 @@ export const PPM_NOT_FOUND = 'PPM_NOT_FOUND';
9
9
  export const PPM_VALIDATION = 'PPM_VALIDATION';
10
10
  export const WRM_NOT_FOUND = 'WRM_NOT_FOUND';
11
11
  export const WRM_VALIDATION = 'WRM_VALIDATION';
12
+ export const SFA_NOT_FOUND = 'SFA_NOT_FOUND';
13
+ export const SFA_VALIDATION = 'SFA_VALIDATION';
12
14
  export const API_ERROR = 'API_ERROR';
13
15
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,eAAe,CAAI,IAAO;IACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe,EAAE,OAAa;IACxE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED,cAAc;AACd,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,eAAe,CAAI,IAAO;IACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe,EAAE,OAAa;IACxE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED,cAAc;AACd,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raytio/mcp-server",
3
- "version": "1.16.1",
3
+ "version": "1.18.0",
4
4
  "description": "MCP server for secure AI agent access to Raytio user data",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,10 +0,0 @@
1
- import { RaytioApiClient } from '../raytio/api-client.js';
2
- import { ToolResponse } from './types.js';
3
- export interface CreateAccessApplicationResponse {
4
- access_application_id: string;
5
- name: string;
6
- customer_id: string;
7
- created_at?: string;
8
- }
9
- export declare function createAccessApplication(client: RaytioApiClient, customerId: string, name: string, description?: string): Promise<ToolResponse<CreateAccessApplicationResponse>>;
10
- //# sourceMappingURL=create-access-app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-access-app.d.ts","sourceRoot":"","sources":["../../src/tools/create-access-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAkC,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,+BAA+B;IAC9C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC,CAoBxD"}
@@ -1,20 +0,0 @@
1
- import { successResponse, errorResponse } from './types.js';
2
- export async function createAccessApplication(client, customerId, name, description) {
3
- try {
4
- const response = await client.post('/db/v1/dsm_access_applications', {
5
- customer_id: customerId,
6
- name,
7
- description: description || '',
8
- });
9
- return successResponse({
10
- access_application_id: response.id,
11
- name: response.name,
12
- customer_id: response.customer_id,
13
- created_at: response.created_at,
14
- });
15
- }
16
- catch (error) {
17
- return errorResponse('API_ERROR', `Failed to create access application: ${error.message}`);
18
- }
19
- }
20
- //# sourceMappingURL=create-access-app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-access-app.js","sourceRoot":"","sources":["../../src/tools/create-access-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAS1E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAuB,EACvB,UAAkB,EAClB,IAAY,EACZ,WAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YACnE,WAAW,EAAE,UAAU;YACvB,IAAI;YACJ,WAAW,EAAE,WAAW,IAAI,EAAE;SAC/B,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;YACrB,qBAAqB,EAAE,QAAQ,CAAC,EAAE;YAClC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,aAAa,CAClB,WAAW,EACX,wCAAwC,KAAK,CAAC,OAAO,EAAE,CACxD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,41 +0,0 @@
1
- import { RaytioApiClient } from '../raytio/api-client.js';
2
- import { ToolResponse } from './types.js';
3
- export interface CustomField {
4
- type: string;
5
- title?: string;
6
- description?: string;
7
- enum?: string[];
8
- default?: any;
9
- }
10
- export interface FormPage {
11
- name: string;
12
- description_override?: boolean;
13
- schemas: string[];
14
- multiple?: boolean;
15
- filter?: string;
16
- optional?: boolean;
17
- profile?: boolean;
18
- service_provider_link?: boolean;
19
- display_schema_description?: boolean;
20
- display_field_title?: boolean;
21
- display_field_description?: boolean;
22
- share?: string;
23
- verify_data?: boolean;
24
- display_mode?: string;
25
- }
26
- export interface FormConfig {
27
- a_id: string;
28
- pages: FormPage[];
29
- review_text?: string;
30
- update_reference?: boolean;
31
- emails: string[];
32
- quick_onboard?: boolean;
33
- display_sharing_preview?: boolean;
34
- }
35
- export interface CreateFormResponse {
36
- link_id: string;
37
- short_link_key: string;
38
- schema_ids: string[];
39
- }
40
- export declare function createForm(client: RaytioApiClient, accessApplicationId: string, systemSchemas: string[], customFields?: Record<string, CustomField>, recipientEmail?: string, pageName?: string): Promise<ToolResponse<CreateFormResponse>>;
41
- //# sourceMappingURL=create-form.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../src/tools/create-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAkC,MAAM,YAAY,CAAC;AAG1E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,MAAM,EAC3B,aAAa,EAAE,MAAM,EAAE,EACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAC1C,cAAc,CAAC,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CA2F3C"}
@@ -1,81 +0,0 @@
1
- import { successResponse, errorResponse } from './types.js';
2
- import { getSchemaByName } from '../schemas/loader.js';
3
- export async function createForm(client, accessApplicationId, systemSchemas, customFields, recipientEmail, pageName) {
4
- try {
5
- const schemaIds = [];
6
- // Validate system schemas exist
7
- for (const schemaName of systemSchemas) {
8
- const schema = getSchemaByName(schemaName);
9
- if (!schema) {
10
- return errorResponse('SCHEMA_NOT_FOUND', `Schema '${schemaName}' not found. Use list_schemas() to see available options.`);
11
- }
12
- schemaIds.push(schema.schema_name);
13
- }
14
- // Create personal schema if custom fields provided
15
- if (customFields && Object.keys(customFields).length > 0) {
16
- const personalSchemaName = `ps_Custom_${Date.now()}`;
17
- const personalSchema = {
18
- schema_name: personalSchemaName,
19
- schema_type: 'ps',
20
- schema: {
21
- type: 'object',
22
- title: 'Custom Fields',
23
- description: 'Additional custom fields',
24
- properties: customFields,
25
- required: [],
26
- },
27
- };
28
- const schemaResponse = await client.post('/db/v1/dsm_schema', personalSchema);
29
- schemaIds.push(schemaResponse.id || personalSchemaName);
30
- }
31
- // Build form configuration
32
- const formConfig = {
33
- a_id: accessApplicationId,
34
- pages: [
35
- {
36
- name: pageName || 'Data Request',
37
- description_override: false,
38
- schemas: schemaIds,
39
- multiple: false,
40
- filter: 'anyOf',
41
- optional: false,
42
- profile: true,
43
- service_provider_link: false,
44
- display_schema_description: false,
45
- display_field_title: true,
46
- display_field_description: true,
47
- share: 'both',
48
- verify_data: true,
49
- display_mode: 'default',
50
- },
51
- ],
52
- review_text: 'Please review the data you are about to share and confirm all of the details are correct',
53
- update_reference: false,
54
- emails: recipientEmail ? [recipientEmail] : [],
55
- quick_onboard: false,
56
- display_sharing_preview: true,
57
- };
58
- // Base64 encode the form configuration
59
- const encodedConfig = Buffer.from(JSON.stringify(formConfig)).toString('base64');
60
- // Create dsm_links record
61
- const linkResponse = await client.post('/db/v1/dsm_links', {
62
- url: encodedConfig,
63
- });
64
- const linkId = linkResponse.id;
65
- const shortLinkKey = linkResponse.short_link_key;
66
- // Link to access application via dsm_access_application_links
67
- await client.post('/db/v1/dsm_access_application_links', {
68
- aa_id: accessApplicationId,
69
- short_link_key: shortLinkKey,
70
- });
71
- return successResponse({
72
- link_id: linkId,
73
- short_link_key: shortLinkKey,
74
- schema_ids: schemaIds,
75
- });
76
- }
77
- catch (error) {
78
- return errorResponse('API_ERROR', `Failed to create form: ${error.message}`);
79
- }
80
- }
81
- //# sourceMappingURL=create-form.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-form.js","sourceRoot":"","sources":["../../src/tools/create-form.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { simplifySchema } from '../schemas/loader.js';
2
- import { ToolResponse } from './types.js';
3
- export interface ListSchemasResponse {
4
- schemas: ReturnType<typeof simplifySchema>[];
5
- }
6
- export declare function listSchemas(): ToolResponse<ListSchemasResponse>;
7
- //# sourceMappingURL=list-schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-schemas.d.ts","sourceRoot":"","sources":["../../src/tools/list-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,EAAE,CAAC;CAC9C;AAED,wBAAgB,WAAW,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAe/D"}
@@ -1,19 +0,0 @@
1
- import { loadSchemas, simplifySchema } from '../schemas/loader.js';
2
- import { successResponse } from './types.js';
3
- export function listSchemas() {
4
- try {
5
- const schemas = loadSchemas();
6
- const simplified = schemas.map(simplifySchema);
7
- return successResponse({ schemas: simplified });
8
- }
9
- catch (error) {
10
- return {
11
- success: false,
12
- error: {
13
- code: 'SCHEMA_LOAD_ERROR',
14
- message: `Failed to load schemas: ${error.message}`,
15
- },
16
- };
17
- }
18
- }
19
- //# sourceMappingURL=list-schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-schemas.js","sourceRoot":"","sources":["../../src/tools/list-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAgB,eAAe,EAAE,MAAM,YAAY,CAAC;AAM3D,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE/C,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;aACpD;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,9 +0,0 @@
1
- import { RaytioApiClient } from '../raytio/api-client.js';
2
- import { ToolResponse } from './types.js';
3
- export interface RetrievedData {
4
- instance_id: string;
5
- completed_at: string;
6
- data: Record<string, any>;
7
- }
8
- export declare function pollAndRetrieve(client: RaytioApiClient, requestShortCode: string, userPassword: string): Promise<ToolResponse<RetrievedData | null>>;
9
- //# sourceMappingURL=poll-and-retrieve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"poll-and-retrieve.d.ts","sourceRoot":"","sources":["../../src/tools/poll-and-retrieve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAkC,MAAM,YAAY,CAAC;AAG1E,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAgE7C"}
@@ -1,48 +0,0 @@
1
- import { successResponse, errorResponse } from './types.js';
2
- import { unwrapWADEK, decryptWithDEK } from '../crypto/wadek.js';
3
- export async function pollAndRetrieve(client, requestShortCode, userPassword) {
4
- try {
5
- // Step 1: Poll for completed instances
6
- const instances = await client.get(`/db/v1/dsm_access_application_instances?request_short_code=eq.${requestShortCode}&status=eq.Submitted`);
7
- if (!instances || instances.length === 0) {
8
- return successResponse(null); // No completed instances yet
9
- }
10
- const instance = instances[0];
11
- const instanceId = instance.id;
12
- // Step 2: Fetch encrypted data nodes
13
- const nodes = await client.get(`/db/v1/dsm_access_application_instance_nodes?aai_id=eq.${instanceId}`);
14
- // Step 3: Fetch WADEKs (wrapped DEKs)
15
- const keys = await client.get(`/db/v1/dsm_access_application_instance_node_keys?aai_id=eq.${instanceId}`);
16
- if (!keys || keys.length === 0) {
17
- return errorResponse('NO_KEYS_FOUND', 'No encryption keys found for this instance. Cannot decrypt data.');
18
- }
19
- // Step 4: Unwrap WADEK to get DEK
20
- const wadek = keys[0].wadek;
21
- const dek = await unwrapWADEK(wadek, userPassword);
22
- // Step 5: Decrypt all nodes
23
- const decryptedData = {};
24
- for (const node of nodes) {
25
- const schemaName = node.schema_name || node.schema_id;
26
- const encryptedData = node.encrypted_data;
27
- if (encryptedData) {
28
- try {
29
- const decrypted = await decryptWithDEK(encryptedData, dek);
30
- decryptedData[schemaName] = decrypted;
31
- }
32
- catch (error) {
33
- console.error(`Failed to decrypt node ${node.id}:`, error.message);
34
- // Continue decrypting other nodes
35
- }
36
- }
37
- }
38
- return successResponse({
39
- instance_id: instanceId,
40
- completed_at: instance.completed_at || instance.updated_at,
41
- data: decryptedData,
42
- });
43
- }
44
- catch (error) {
45
- return errorResponse('RETRIEVAL_ERROR', `Failed to retrieve data: ${error.message}`);
46
- }
47
- }
48
- //# sourceMappingURL=poll-and-retrieve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"poll-and-retrieve.js","sourceRoot":"","sources":["../../src/tools/poll-and-retrieve.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQjE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAuB,EACvB,gBAAwB,EACxB,YAAoB;IAEpB,IAAI,CAAC;QACH,uCAAuC;QACvC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAChC,iEAAiE,gBAAgB,sBAAsB,CACxG,CAAC;QAEF,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;QAE/B,qCAAqC;QACrC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAC5B,0DAA0D,UAAU,EAAE,CACvE,CAAC;QAEF,sCAAsC;QACtC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAC3B,8DAA8D,UAAU,EAAE,CAC3E,CAAC;QAEF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,aAAa,CAClB,eAAe,EACf,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAEnD,4BAA4B;QAC5B,MAAM,aAAa,GAAwB,EAAE,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;YACtD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;YAE1C,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;oBAC3D,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;gBACxC,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnE,kCAAkC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;YACrB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,UAAU;YAC1D,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,aAAa,CAClB,iBAAiB,EACjB,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAC5C,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Tool } from '../registry.js';
2
- export declare const roleMemoryCreateTool: Tool;
3
- //# sourceMappingURL=role-memory-create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role-memory-create.d.ts","sourceRoot":"","sources":["../../../src/tools/ppm/role-memory-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,eAAO,MAAM,oBAAoB,EAAE,IAsClC,CAAC"}