@qikdev/mcp 6.7.1 ā 6.7.2
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.
- package/build/src/tools/campaign.d.ts.map +1 -1
- package/build/src/tools/campaign.js +9 -76
- package/build/src/tools/campaign.js.map +1 -1
- package/build/src/tools/checkin.d.ts.map +1 -1
- package/build/src/tools/checkin.js +6 -34
- package/build/src/tools/checkin.js.map +1 -1
- package/build/src/tools/create.js +82 -154
- package/build/src/tools/create.js.map +1 -1
- package/build/src/tools/filters.d.ts.map +1 -1
- package/build/src/tools/filters.js +5 -29
- package/build/src/tools/filters.js.map +1 -1
- package/build/src/tools/glossary.d.ts.map +1 -1
- package/build/src/tools/glossary.js +7 -161
- package/build/src/tools/glossary.js.map +1 -1
- package/build/src/tools/list.js +2 -53
- package/build/src/tools/list.js.map +1 -1
- package/build/src/tools/profile.d.ts.map +1 -1
- package/build/src/tools/profile.js +2 -41
- package/build/src/tools/profile.js.map +1 -1
- package/build/src/tools/relationships.d.ts.map +1 -1
- package/build/src/tools/relationships.js +3 -61
- package/build/src/tools/relationships.js.map +1 -1
- package/build/src/tools/reporting.d.ts.map +1 -1
- package/build/src/tools/reporting.js +10 -63
- package/build/src/tools/reporting.js.map +1 -1
- package/build/src/tools/sms.d.ts.map +1 -1
- package/build/src/tools/sms.js +4 -35
- package/build/src/tools/sms.js.map +1 -1
- package/build/src/tools/update.js +35 -60
- package/build/src/tools/update.js.map +1 -1
- package/build/src/tools/user.js +1 -1
- package/build/src/tools/user.js.map +1 -1
- package/package.json +1 -1
|
@@ -85,49 +85,10 @@ export async function handleGetProfileTimeline(args) {
|
|
|
85
85
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
86
86
|
}
|
|
87
87
|
const timelineData = await response.json();
|
|
88
|
-
// Format the response for better readability
|
|
89
|
-
let formattedText = `š Profile Timeline for: ${timelineData.profile.title}\n`;
|
|
90
|
-
formattedText += `Profile ID: ${timelineData.profile._id}\n\n`;
|
|
91
|
-
if (timelineData.pagination) {
|
|
92
|
-
formattedText += `š Showing ${timelineData.timeline.length} entries`;
|
|
93
|
-
if (timelineData.pagination.total > timelineData.timeline.length) {
|
|
94
|
-
formattedText += ` of ${timelineData.pagination.total} total`;
|
|
95
|
-
}
|
|
96
|
-
formattedText += `\n\n`;
|
|
97
|
-
}
|
|
98
|
-
if (timelineData.timeline.length === 0) {
|
|
99
|
-
formattedText += `No timeline entries found for this profile.`;
|
|
100
|
-
if (args.startDate || args.endDate || args.actionTypes) {
|
|
101
|
-
formattedText += ` Try adjusting your filters.`;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
formattedText += `Timeline Entries:\n`;
|
|
106
|
-
formattedText += `${'='.repeat(50)}\n\n`;
|
|
107
|
-
timelineData.timeline.forEach((entry, index) => {
|
|
108
|
-
const timestamp = new Date(entry.timestamp).toLocaleString();
|
|
109
|
-
formattedText += `${index + 1}. ${entry.action.toUpperCase()} - ${entry.type}\n`;
|
|
110
|
-
formattedText += ` š
${timestamp}\n`;
|
|
111
|
-
if (entry.user) {
|
|
112
|
-
formattedText += ` š¤ User: ${entry.user.title} (${entry.user._id})\n`;
|
|
113
|
-
}
|
|
114
|
-
if (entry.content) {
|
|
115
|
-
formattedText += ` š Content: ${entry.content.title} (${entry.content.type})\n`;
|
|
116
|
-
formattedText += ` š Content ID: ${entry.content._id}\n`;
|
|
117
|
-
}
|
|
118
|
-
if (entry.details && Object.keys(entry.details).length > 0) {
|
|
119
|
-
formattedText += ` š Details: ${JSON.stringify(entry.details, null, 2).replace(/\n/g, '\n ')}\n`;
|
|
120
|
-
}
|
|
121
|
-
formattedText += `\n`;
|
|
122
|
-
});
|
|
123
|
-
if (timelineData.pagination && timelineData.pagination.hasMore) {
|
|
124
|
-
formattedText += `\nš” There are more entries available. Use page=${(timelineData.pagination.page || 1) + 1} to see more.`;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
88
|
return {
|
|
128
89
|
content: [{
|
|
129
90
|
type: "text",
|
|
130
|
-
text:
|
|
91
|
+
text: JSON.stringify(timelineData, null, 2)
|
|
131
92
|
}]
|
|
132
93
|
};
|
|
133
94
|
}
|
|
@@ -135,7 +96,7 @@ export async function handleGetProfileTimeline(args) {
|
|
|
135
96
|
return {
|
|
136
97
|
content: [{
|
|
137
98
|
type: "text",
|
|
138
|
-
text:
|
|
99
|
+
text: JSON.stringify({ error: error.message }, null, 2)
|
|
139
100
|
}]
|
|
140
101
|
};
|
|
141
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/profile.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../../src/tools/relationships.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,0BAA0B,EAAE,IA2BxC,CAAC;AAWF,wBAAsB,4BAA4B,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../../src/tools/relationships.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,0BAA0B,EAAE,IA2BxC,CAAC;AAWF,wBAAsB,4BAA4B,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA8CzI"}
|
|
@@ -46,75 +46,17 @@ export async function handleGetEntityRelationships(args) {
|
|
|
46
46
|
return {
|
|
47
47
|
content: [{
|
|
48
48
|
type: "text",
|
|
49
|
-
text:
|
|
49
|
+
text: JSON.stringify({ error: `Content type '${args.typeKey}' not found` }, null, 2)
|
|
50
50
|
}]
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
54
54
|
}
|
|
55
55
|
const typeData = await response.json();
|
|
56
|
-
const fields = typeData.fields || [];
|
|
57
|
-
// Extract reference fields
|
|
58
|
-
const referenceFields = fields.filter(f => f.type === 'reference' && f.referenceType);
|
|
59
|
-
// Also identify other important relationship patterns
|
|
60
|
-
const dateFields = fields.filter(f => f.type === 'date');
|
|
61
|
-
const arrayFields = fields.filter(f => f.path?.includes('[]'));
|
|
62
|
-
let resultText = `# Entity Relationships: ${typeData.title} (\`${args.typeKey}\`)\n\n`;
|
|
63
|
-
// Reference fields section
|
|
64
|
-
if (referenceFields.length > 0) {
|
|
65
|
-
resultText += `## References (Links to Other Entities)\n\n`;
|
|
66
|
-
resultText += `These fields link to other content types:\n\n`;
|
|
67
|
-
for (const field of referenceFields) {
|
|
68
|
-
resultText += `### \`${field.path}\` ā ${field.referenceType}\n`;
|
|
69
|
-
resultText += `- **Type**: Reference to \`${field.referenceType}\`\n`;
|
|
70
|
-
if (field.description) {
|
|
71
|
-
resultText += `- **Description**: ${field.description}\n`;
|
|
72
|
-
}
|
|
73
|
-
resultText += `- **Query**: Filter ${args.typeKey} by this field to find records linked to specific ${field.referenceType}\n`;
|
|
74
|
-
resultText += `\n`;
|
|
75
|
-
}
|
|
76
|
-
resultText += `**Example Query (find ${args.typeKey} for specific ${referenceFields[0]?.referenceType}):**\n`;
|
|
77
|
-
resultText += `\`\`\`json\n`;
|
|
78
|
-
resultText += `{
|
|
79
|
-
"typeKey": "${args.typeKey}",
|
|
80
|
-
"filter": {
|
|
81
|
-
"operator": "and",
|
|
82
|
-
"filters": [
|
|
83
|
-
{ "key": "${referenceFields[0]?.path}", "comparator": "equal", "value": "TARGET_ID" }
|
|
84
|
-
]
|
|
85
|
-
}
|
|
86
|
-
}\n`;
|
|
87
|
-
resultText += `\`\`\`\n\n`;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
resultText += `## References\n\nNo reference fields found. This entity doesn't directly link to other content types.\n\n`;
|
|
91
|
-
}
|
|
92
|
-
// Date fields section
|
|
93
|
-
if (dateFields.length > 0) {
|
|
94
|
-
resultText += `## Date Fields (for Time-based Queries)\n\n`;
|
|
95
|
-
for (const field of dateFields) {
|
|
96
|
-
resultText += `- \`${field.path}\`: ${field.title || field.description || 'Date field'}\n`;
|
|
97
|
-
}
|
|
98
|
-
resultText += `\nUse date comparators (datebetween, datenext, datepast) on these fields.\n\n`;
|
|
99
|
-
}
|
|
100
|
-
// Filterable fields summary
|
|
101
|
-
const filterableFields = fields.filter(f => f.type && !['void', 'group'].includes(f.type) && f.path);
|
|
102
|
-
resultText += `## All Filterable Fields\n\n`;
|
|
103
|
-
resultText += `| Path | Type | Reference |\n`;
|
|
104
|
-
resultText += `|------|------|----------|\n`;
|
|
105
|
-
for (const field of filterableFields.slice(0, 20)) {
|
|
106
|
-
const refInfo = field.referenceType ? `ā ${field.referenceType}` : '-';
|
|
107
|
-
resultText += `| \`${field.path}\` | ${field.type} | ${refInfo} |\n`;
|
|
108
|
-
}
|
|
109
|
-
if (filterableFields.length > 20) {
|
|
110
|
-
resultText += `| ... | (${filterableFields.length - 20} more fields) | |\n`;
|
|
111
|
-
}
|
|
112
|
-
resultText += `\n---\n`;
|
|
113
|
-
resultText += `š” Use \`get_content_type_details\` for full field documentation including examples.\n`;
|
|
114
56
|
return {
|
|
115
57
|
content: [{
|
|
116
58
|
type: "text",
|
|
117
|
-
text:
|
|
59
|
+
text: JSON.stringify(typeData, null, 2)
|
|
118
60
|
}]
|
|
119
61
|
};
|
|
120
62
|
}
|
|
@@ -122,7 +64,7 @@ export async function handleGetEntityRelationships(args) {
|
|
|
122
64
|
return {
|
|
123
65
|
content: [{
|
|
124
66
|
type: "text",
|
|
125
|
-
text:
|
|
67
|
+
text: JSON.stringify({ error: error.message }, null, 2)
|
|
126
68
|
}]
|
|
127
69
|
};
|
|
128
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../../src/tools/relationships.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE;;;;;;;;;;;;;;oCAcqB;IAClC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uFAAuF;aACrG;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAC;AAWF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,IAAyB;IAC1E,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,iCAAiC;QACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,qBAAqB,gBAAgB,IAAI,CAAC,OAAO,EAAE,EAAE;YACpG,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;gBAC/C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../../src/tools/relationships.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE;;;;;;;;;;;;;;oCAcqB;IAClC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uFAAuF;aACrG;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAC;AAWF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,IAAyB;IAC1E,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,iCAAiC;QACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,qBAAqB,gBAAgB,IAAI,CAAC,OAAO,EAAE,EAAE;YACpG,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;gBAC/C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,OAAO,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBACrF,CAAC;iBACH,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEvC,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC,CAAC;SACH,CAAC;IAEJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxD,CAAC;SACH,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../src/tools/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,sBAAsB,EAAE,IAyBpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IA4B9B,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../src/tools/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,sBAAsB,EAAE,IAyBpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IA4B9B,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2EhK;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAiD7I"}
|
|
@@ -68,10 +68,9 @@ export async function handleGetEventAttendance(args) {
|
|
|
68
68
|
'Content-Type': 'application/json',
|
|
69
69
|
},
|
|
70
70
|
});
|
|
71
|
-
let
|
|
71
|
+
let eventData = null;
|
|
72
72
|
if (eventResponse.ok) {
|
|
73
|
-
|
|
74
|
-
eventTitle = eventData.title || eventTitle;
|
|
73
|
+
eventData = await eventResponse.json();
|
|
75
74
|
}
|
|
76
75
|
// Query checkins for this event
|
|
77
76
|
const selectFields = ['_id', 'firstName', 'lastName', 'checkedOut', 'absent', 'age', 'gender', 'session'];
|
|
@@ -101,60 +100,14 @@ export async function handleGetEventAttendance(args) {
|
|
|
101
100
|
throw new Error(`HTTP ${checkinsResponse.status}: ${errorText}`);
|
|
102
101
|
}
|
|
103
102
|
const checkinsData = await checkinsResponse.json();
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const checkedOut = checkins.filter((c) => c.checkedOut).length;
|
|
109
|
-
const absent = checkins.filter((c) => c.absent).length;
|
|
110
|
-
// Gender breakdown
|
|
111
|
-
const genderCounts = {};
|
|
112
|
-
for (const checkin of checkins) {
|
|
113
|
-
const gender = checkin.gender || 'Unknown';
|
|
114
|
-
genderCounts[gender] = (genderCounts[gender] || 0) + 1;
|
|
115
|
-
}
|
|
116
|
-
// Session breakdown
|
|
117
|
-
const sessionCounts = {};
|
|
118
|
-
for (const checkin of checkins) {
|
|
119
|
-
if (checkin.session) {
|
|
120
|
-
sessionCounts[checkin.session] = (sessionCounts[checkin.session] || 0) + 1;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
let resultText = `# Event Attendance: ${eventTitle}\n\n`;
|
|
124
|
-
resultText += `## Summary\n`;
|
|
125
|
-
resultText += `- **Total records**: ${total}\n`;
|
|
126
|
-
resultText += `- **Checked in**: ${checkedIn}\n`;
|
|
127
|
-
resultText += `- **Checked out**: ${checkedOut}\n`;
|
|
128
|
-
resultText += `- **Absent**: ${absent}\n\n`;
|
|
129
|
-
if (Object.keys(genderCounts).length > 0) {
|
|
130
|
-
resultText += `## By Gender\n`;
|
|
131
|
-
for (const [gender, count] of Object.entries(genderCounts)) {
|
|
132
|
-
resultText += `- ${gender}: ${count}\n`;
|
|
133
|
-
}
|
|
134
|
-
resultText += '\n';
|
|
135
|
-
}
|
|
136
|
-
if (Object.keys(sessionCounts).length > 0) {
|
|
137
|
-
resultText += `## By Session\n`;
|
|
138
|
-
for (const [session, count] of Object.entries(sessionCounts)) {
|
|
139
|
-
resultText += `- ${session}: ${count}\n`;
|
|
140
|
-
}
|
|
141
|
-
resultText += '\n';
|
|
142
|
-
}
|
|
143
|
-
if (args.includeProfiles && checkins.length > 0) {
|
|
144
|
-
resultText += `## Attendees (first 20)\n`;
|
|
145
|
-
for (const checkin of checkins.slice(0, 20)) {
|
|
146
|
-
const name = [checkin.firstName, checkin.lastName].filter(Boolean).join(' ') || 'Unknown';
|
|
147
|
-
const status = checkin.absent ? 'ā Absent' : checkin.checkedOut ? 'ā©ļø Checked out' : 'ā
Present';
|
|
148
|
-
resultText += `- ${name} ${status}\n`;
|
|
149
|
-
}
|
|
150
|
-
if (checkins.length > 20) {
|
|
151
|
-
resultText += `- ... and ${checkins.length - 20} more\n`;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
103
|
+
const result = {
|
|
104
|
+
event: eventData,
|
|
105
|
+
checkins: checkinsData
|
|
106
|
+
};
|
|
154
107
|
return {
|
|
155
108
|
content: [{
|
|
156
109
|
type: "text",
|
|
157
|
-
text:
|
|
110
|
+
text: JSON.stringify(result, null, 2)
|
|
158
111
|
}]
|
|
159
112
|
};
|
|
160
113
|
}
|
|
@@ -162,7 +115,7 @@ export async function handleGetEventAttendance(args) {
|
|
|
162
115
|
return {
|
|
163
116
|
content: [{
|
|
164
117
|
type: "text",
|
|
165
|
-
text:
|
|
118
|
+
text: JSON.stringify({ error: error.message }, null, 2)
|
|
166
119
|
}]
|
|
167
120
|
};
|
|
168
121
|
}
|
|
@@ -194,16 +147,10 @@ export async function handleCountContent(args) {
|
|
|
194
147
|
throw new Error(`HTTP ${response.status}: ${errorText}`);
|
|
195
148
|
}
|
|
196
149
|
const data = await response.json();
|
|
197
|
-
const total = data.total || 0;
|
|
198
|
-
let filterDesc = '';
|
|
199
|
-
if (args.filter?.filters?.length) {
|
|
200
|
-
const conditions = args.filter.filters.map((f) => `${f.key} ${f.comparator} ${f.value !== undefined ? JSON.stringify(f.value) : ''}`).join(` ${args.filter.operator} `);
|
|
201
|
-
filterDesc = ` matching: ${conditions}`;
|
|
202
|
-
}
|
|
203
150
|
return {
|
|
204
151
|
content: [{
|
|
205
152
|
type: "text",
|
|
206
|
-
text:
|
|
153
|
+
text: JSON.stringify({ typeKey: args.typeKey, filter: args.filter, total: data.total || 0 }, null, 2)
|
|
207
154
|
}]
|
|
208
155
|
};
|
|
209
156
|
}
|
|
@@ -211,7 +158,7 @@ export async function handleCountContent(args) {
|
|
|
211
158
|
return {
|
|
212
159
|
content: [{
|
|
213
160
|
type: "text",
|
|
214
|
-
text:
|
|
161
|
+
text: JSON.stringify({ error: error.message }, null, 2)
|
|
215
162
|
}]
|
|
216
163
|
};
|
|
217
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporting.js","sourceRoot":"","sources":["../../../src/tools/reporting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAS;IAC1C,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE;;;;;;;;4DAQ6C;IAC1D,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oCAAoC;aAClD;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,sDAAsD;aACpE;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;0EAO2D;IACxE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6DAA6D;aAC3E;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;gBAC/D,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;oBACxD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;iBAC3B;aACF;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAoD;IACjG,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,+BAA+B;QAC/B,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,qBAAqB,YAAY,IAAI,CAAC,OAAO,EAAE,EAAE;YACrG,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;gBAC/C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,
|
|
1
|
+
{"version":3,"file":"reporting.js","sourceRoot":"","sources":["../../../src/tools/reporting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms.d.ts","sourceRoot":"","sources":["../../../src/tools/sms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,eAAe,EAAE,IAmC7B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"sms.d.ts","sourceRoot":"","sources":["../../../src/tools/sms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,eAAe,EAAE,IAmC7B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmEpK"}
|
package/build/src/tools/sms.js
CHANGED
|
@@ -46,7 +46,7 @@ export async function handleSendBulkSms(args) {
|
|
|
46
46
|
return {
|
|
47
47
|
content: [{
|
|
48
48
|
type: "text",
|
|
49
|
-
text:
|
|
49
|
+
text: JSON.stringify({ error: 'No recipients provided. Please provide an array of profile IDs.' }, null, 2)
|
|
50
50
|
}]
|
|
51
51
|
};
|
|
52
52
|
}
|
|
@@ -54,7 +54,7 @@ export async function handleSendBulkSms(args) {
|
|
|
54
54
|
return {
|
|
55
55
|
content: [{
|
|
56
56
|
type: "text",
|
|
57
|
-
text:
|
|
57
|
+
text: JSON.stringify({ error: 'No message body provided. Please provide the SMS text to send.' }, null, 2)
|
|
58
58
|
}]
|
|
59
59
|
};
|
|
60
60
|
}
|
|
@@ -78,41 +78,10 @@ export async function handleSendBulkSms(args) {
|
|
|
78
78
|
throw new Error(`HTTP ${response.status}: ${errorText}`);
|
|
79
79
|
}
|
|
80
80
|
const result = await response.json();
|
|
81
|
-
const { valid, invalid } = result;
|
|
82
|
-
let resultText = `# SMS Bulk Send\n\n`;
|
|
83
|
-
resultText += `## Summary\n`;
|
|
84
|
-
resultText += `- **Valid recipients**: ${valid?.length || 0} (will receive SMS)\n`;
|
|
85
|
-
resultText += `- **Invalid recipients**: ${invalid?.length || 0} (no phone number)\n\n`;
|
|
86
|
-
if (valid?.length > 0) {
|
|
87
|
-
resultText += `## Valid Recipients\n`;
|
|
88
|
-
for (const profile of valid.slice(0, 10)) {
|
|
89
|
-
const name = [profile.firstName, profile.lastName].filter(Boolean).join(' ') || 'Unknown';
|
|
90
|
-
const phone = profile.phoneNumbersInternational?.[0] || 'Phone on file';
|
|
91
|
-
resultText += `- ${name} (${phone})\n`;
|
|
92
|
-
}
|
|
93
|
-
if (valid.length > 10) {
|
|
94
|
-
resultText += `- ... and ${valid.length - 10} more\n`;
|
|
95
|
-
}
|
|
96
|
-
resultText += '\n';
|
|
97
|
-
}
|
|
98
|
-
if (invalid?.length > 0) {
|
|
99
|
-
resultText += `## Invalid Recipients (no phone)\n`;
|
|
100
|
-
for (const profile of invalid.slice(0, 5)) {
|
|
101
|
-
const name = [profile.firstName, profile.lastName].filter(Boolean).join(' ') || 'Unknown';
|
|
102
|
-
resultText += `- ${name}\n`;
|
|
103
|
-
}
|
|
104
|
-
if (invalid.length > 5) {
|
|
105
|
-
resultText += `- ... and ${invalid.length - 5} more\n`;
|
|
106
|
-
}
|
|
107
|
-
resultText += '\n';
|
|
108
|
-
}
|
|
109
|
-
resultText += `---\n`;
|
|
110
|
-
resultText += `ā
SMS messages have been queued for delivery.\n`;
|
|
111
|
-
resultText += `š± Message: "${args.body.substring(0, 50)}${args.body.length > 50 ? '...' : ''}"`;
|
|
112
81
|
return {
|
|
113
82
|
content: [{
|
|
114
83
|
type: "text",
|
|
115
|
-
text:
|
|
84
|
+
text: JSON.stringify(result, null, 2)
|
|
116
85
|
}]
|
|
117
86
|
};
|
|
118
87
|
}
|
|
@@ -120,7 +89,7 @@ export async function handleSendBulkSms(args) {
|
|
|
120
89
|
return {
|
|
121
90
|
content: [{
|
|
122
91
|
type: "text",
|
|
123
|
-
text:
|
|
92
|
+
text: JSON.stringify({ error: error.message }, null, 2)
|
|
124
93
|
}]
|
|
125
94
|
};
|
|
126
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms.js","sourceRoot":"","sources":["../../../src/tools/sms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;;;qEAYsD;IACnE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,qCAAqC;aACnD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC5C;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,wCAAwC;aACtD;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;KACjC;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA+D;IACrG,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"sms.js","sourceRoot":"","sources":["../../../src/tools/sms.ts"],"names":[],"mappings":"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"}
|
|
@@ -266,7 +266,7 @@ function createErrorResponse(message) {
|
|
|
266
266
|
return {
|
|
267
267
|
content: [{
|
|
268
268
|
type: "text",
|
|
269
|
-
text:
|
|
269
|
+
text: JSON.stringify({ error: message }, null, 2)
|
|
270
270
|
}]
|
|
271
271
|
};
|
|
272
272
|
}
|
|
@@ -274,7 +274,11 @@ function createSearchCriteriaPrompt(contentType, naturalLanguage) {
|
|
|
274
274
|
return {
|
|
275
275
|
content: [{
|
|
276
276
|
type: "text",
|
|
277
|
-
text:
|
|
277
|
+
text: JSON.stringify({
|
|
278
|
+
needsSearchCriteria: true,
|
|
279
|
+
contentTitle: contentType.title,
|
|
280
|
+
typeKey: naturalLanguage
|
|
281
|
+
}, null, 2)
|
|
278
282
|
}]
|
|
279
283
|
};
|
|
280
284
|
}
|
|
@@ -282,65 +286,38 @@ function createContentSelectionPrompt(contentType, searchResults, naturalLanguag
|
|
|
282
286
|
return {
|
|
283
287
|
content: [{
|
|
284
288
|
type: "text",
|
|
285
|
-
text:
|
|
289
|
+
text: JSON.stringify({
|
|
290
|
+
needsSelection: true,
|
|
291
|
+
contentTitle: contentType.title,
|
|
292
|
+
plural: contentType.plural,
|
|
293
|
+
searchResults: JSON.parse(searchResults),
|
|
294
|
+
typeKey: naturalLanguage
|
|
295
|
+
}, null, 2)
|
|
286
296
|
}]
|
|
287
297
|
};
|
|
288
298
|
}
|
|
289
299
|
function createUpdateConfirmationPrompt(contentType, targetContent, args) {
|
|
290
300
|
const { typeKey, contentId, searchCriteria, updateMethod, confirmUpdate, ...fieldUpdates } = args;
|
|
291
|
-
let currentValues = `**Current Content:**\n`;
|
|
292
|
-
currentValues += `- **ID**: ${targetContent._id}\n`;
|
|
293
|
-
currentValues += `- **Title**: ${targetContent.title || 'No title'}\n`;
|
|
294
|
-
if (targetContent.meta?.created) {
|
|
295
|
-
currentValues += `- **Created**: ${new Date(targetContent.meta.created).toLocaleDateString()}\n`;
|
|
296
|
-
}
|
|
297
|
-
if (targetContent.meta?.updated) {
|
|
298
|
-
currentValues += `- **Last Updated**: ${new Date(targetContent.meta.updated).toLocaleDateString()}\n`;
|
|
299
|
-
}
|
|
300
|
-
if (targetContent.meta?.status) {
|
|
301
|
-
currentValues += `- **Status**: ${targetContent.meta.status}\n`;
|
|
302
|
-
}
|
|
303
|
-
// Show current data values
|
|
304
|
-
if (targetContent.data && Object.keys(targetContent.data).length > 0) {
|
|
305
|
-
currentValues += `\n**Current Data:**\n`;
|
|
306
|
-
for (const [key, value] of Object.entries(targetContent.data)) {
|
|
307
|
-
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
308
|
-
currentValues += `- **${key}**: ${value}\n`;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
let proposedChanges = '';
|
|
313
|
-
if (Object.keys(fieldUpdates).length > 0) {
|
|
314
|
-
proposedChanges = `\n**Proposed Changes:**\n`;
|
|
315
|
-
for (const [key, value] of Object.entries(fieldUpdates)) {
|
|
316
|
-
proposedChanges += `- **${key}**: ${value}\n`;
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
else {
|
|
320
|
-
proposedChanges = `\nā **No field updates specified.** Please add the fields you want to update to your request.`;
|
|
321
|
-
}
|
|
322
|
-
const method = args.updateMethod || 'patch';
|
|
323
|
-
const methodDescription = method === 'patch' ? 'partial update (only specified fields will be changed)' : 'full replacement (entire content will be replaced)';
|
|
324
301
|
return {
|
|
325
302
|
content: [{
|
|
326
303
|
type: "text",
|
|
327
|
-
text:
|
|
304
|
+
text: JSON.stringify({
|
|
305
|
+
needsConfirmation: true,
|
|
306
|
+
contentTitle: contentType.title,
|
|
307
|
+
currentContent: targetContent,
|
|
308
|
+
proposedChanges: fieldUpdates,
|
|
309
|
+
updateMethod: args.updateMethod || 'patch',
|
|
310
|
+
typeKey,
|
|
311
|
+
contentId: targetContent._id
|
|
312
|
+
}, null, 2)
|
|
328
313
|
}]
|
|
329
314
|
};
|
|
330
315
|
}
|
|
331
316
|
function createUpdateSuccessResponse(contentType, updatedContent, method) {
|
|
332
|
-
const methodText = method === 'patch' ? 'partially updated' : 'fully replaced';
|
|
333
|
-
let contentJson = '';
|
|
334
|
-
try {
|
|
335
|
-
contentJson = JSON.stringify(updatedContent, null, 2);
|
|
336
|
-
}
|
|
337
|
-
catch (error) {
|
|
338
|
-
contentJson = 'Unable to display content details due to JSON serialization error';
|
|
339
|
-
}
|
|
340
317
|
return {
|
|
341
318
|
content: [{
|
|
342
319
|
type: "text",
|
|
343
|
-
text:
|
|
320
|
+
text: JSON.stringify(updatedContent, null, 2)
|
|
344
321
|
}]
|
|
345
322
|
};
|
|
346
323
|
}
|
|
@@ -370,7 +347,7 @@ async function handleUpdateReferenceFieldSearch(field, searchTerm, naturalLangua
|
|
|
370
347
|
return {
|
|
371
348
|
content: [{
|
|
372
349
|
type: "text",
|
|
373
|
-
text:
|
|
350
|
+
text: JSON.stringify({ error: `Cannot search for ${field.path} references - no reference type specified in field definition.` }, null, 2)
|
|
374
351
|
}]
|
|
375
352
|
};
|
|
376
353
|
}
|
|
@@ -381,21 +358,19 @@ async function handleUpdateReferenceFieldSearch(field, searchTerm, naturalLangua
|
|
|
381
358
|
page: { size: 10, index: 1 }
|
|
382
359
|
};
|
|
383
360
|
const searchResults = await handleListContent(listArgs);
|
|
384
|
-
const resultsText = searchResults.content[0]?.text || '';
|
|
385
|
-
// Check if no results found
|
|
386
|
-
if (resultsText.includes('No ') && resultsText.includes('found matching')) {
|
|
387
|
-
return {
|
|
388
|
-
content: [{
|
|
389
|
-
type: "text",
|
|
390
|
-
text: `š No ${field.referenceType} found matching "${searchTerm}" for field ${field.path}.\n\nPlease try a different search term or provide the exact ID if you know it:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${fieldKey}": "exact_id_here",\n "confirmUpdate": true\n}\n\`\`\`\n\nOr search with different terms:\n\n\`\`\`json\n{\n "typeKey": "${naturalLanguage}",\n "${fieldKey}": "search for: different search terms"\n}\n\`\`\``
|
|
391
|
-
}]
|
|
392
|
-
};
|
|
393
|
-
}
|
|
394
|
-
// Return the search results with instructions on how to select
|
|
395
361
|
return {
|
|
396
362
|
content: [{
|
|
397
363
|
type: "text",
|
|
398
|
-
text:
|
|
364
|
+
text: JSON.stringify({
|
|
365
|
+
referenceSearch: true,
|
|
366
|
+
field: field.path,
|
|
367
|
+
fieldTitle: field.title,
|
|
368
|
+
fieldKey,
|
|
369
|
+
referenceType: field.referenceType,
|
|
370
|
+
searchTerm,
|
|
371
|
+
results: JSON.parse(searchResults.content[0]?.text || '{}'),
|
|
372
|
+
typeKey: naturalLanguage
|
|
373
|
+
}, null, 2)
|
|
399
374
|
}]
|
|
400
375
|
};
|
|
401
376
|
}
|
|
@@ -403,7 +378,7 @@ async function handleUpdateReferenceFieldSearch(field, searchTerm, naturalLangua
|
|
|
403
378
|
return {
|
|
404
379
|
content: [{
|
|
405
380
|
type: "text",
|
|
406
|
-
text:
|
|
381
|
+
text: JSON.stringify({ error: `Failed to search for ${field.path} references: ${error.message}` }, null, 2)
|
|
407
382
|
}]
|
|
408
383
|
};
|
|
409
384
|
}
|