@lagoon-protocol/lagoon-mcp 0.1.3 → 0.2.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.
- package/README.md +54 -0
- package/dist/server.js +1 -1
- package/dist/skills/curator-evaluation.d.ts +15 -0
- package/dist/skills/curator-evaluation.d.ts.map +1 -0
- package/dist/skills/curator-evaluation.js +424 -0
- package/dist/skills/curator-evaluation.js.map +1 -0
- package/dist/skills/customer-support.d.ts +15 -0
- package/dist/skills/customer-support.d.ts.map +1 -0
- package/dist/skills/customer-support.js +512 -0
- package/dist/skills/customer-support.js.map +1 -0
- package/dist/skills/index.d.ts +91 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +100 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +120 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +263 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/onboarding.d.ts +15 -0
- package/dist/skills/onboarding.d.ts.map +1 -0
- package/dist/skills/onboarding.js +383 -0
- package/dist/skills/onboarding.js.map +1 -0
- package/dist/skills/portfolio-review.d.ts +15 -0
- package/dist/skills/portfolio-review.d.ts.map +1 -0
- package/dist/skills/portfolio-review.js +464 -0
- package/dist/skills/portfolio-review.js.map +1 -0
- package/dist/skills/protocol-health.d.ts +15 -0
- package/dist/skills/protocol-health.d.ts.map +1 -0
- package/dist/skills/protocol-health.js +451 -0
- package/dist/skills/protocol-health.js.map +1 -0
- package/dist/skills/risk-expert.d.ts +15 -0
- package/dist/skills/risk-expert.d.ts.map +1 -0
- package/dist/skills/risk-expert.js +456 -0
- package/dist/skills/risk-expert.js.map +1 -0
- package/dist/skills/shared.d.ts +82 -0
- package/dist/skills/shared.d.ts.map +1 -0
- package/dist/skills/shared.js +136 -0
- package/dist/skills/shared.js.map +1 -0
- package/dist/skills/types.d.ts +137 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +11 -0
- package/dist/skills/types.js.map +1 -0
- package/package.json +14 -1
- package/skills/README.md +141 -0
- package/skills/lagoon-curator-evaluation/SKILL.md +281 -0
- package/skills/lagoon-curator-evaluation/scoring-rubric.md +121 -0
- package/skills/lagoon-customer-support/SKILL.md +95 -0
- package/skills/lagoon-customer-support/response-templates.md +196 -0
- package/skills/lagoon-onboarding/SKILL.md +251 -0
- package/skills/lagoon-onboarding/risk-interpretation.md +188 -0
- package/skills/lagoon-onboarding/tool-sequences.md +217 -0
- package/skills/lagoon-portfolio-review/SKILL.md +156 -0
- package/skills/lagoon-portfolio-review/rebalancing-criteria.md +85 -0
- package/skills/lagoon-portfolio-review/review-framework.md +70 -0
- package/skills/lagoon-protocol-health/SKILL.md +171 -0
- package/skills/lagoon-protocol-health/kpi-thresholds.md +50 -0
- package/skills/lagoon-protocol-health/report-templates.md +149 -0
- package/skills/lagoon-risk-expert/SKILL.md +131 -0
- package/skills/lagoon-risk-expert/risk-frameworks.md +124 -0
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lagoon Customer Support Skill
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent, professional support responses for the internal
|
|
5
|
+
* support team handling customer inquiries and issues.
|
|
6
|
+
*
|
|
7
|
+
* @module skills/customer-support
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Main skill instructions
|
|
11
|
+
*/
|
|
12
|
+
const INSTRUCTIONS = `# Lagoon Customer Support: Response Guide
|
|
13
|
+
|
|
14
|
+
You are a support specialist helping the Lagoon support team craft consistent, helpful responses to customer inquiries. Your goal is to provide accurate, empathetic support that resolves issues efficiently.
|
|
15
|
+
|
|
16
|
+
## When This Skill Activates
|
|
17
|
+
|
|
18
|
+
This skill is relevant when support team members:
|
|
19
|
+
- Need to respond to customer inquiries
|
|
20
|
+
- Want templates for common issues
|
|
21
|
+
- Need guidance on escalation procedures
|
|
22
|
+
- Require consistent messaging for support tickets
|
|
23
|
+
- Are handling complaints or issues
|
|
24
|
+
|
|
25
|
+
## Support Response Framework
|
|
26
|
+
|
|
27
|
+
### Response Structure
|
|
28
|
+
|
|
29
|
+
Every support response should follow this structure:
|
|
30
|
+
|
|
31
|
+
1. **Acknowledgment**: Recognize the customer's situation
|
|
32
|
+
2. **Clarification**: If needed, ask targeted questions
|
|
33
|
+
3. **Solution/Information**: Provide clear, actionable guidance
|
|
34
|
+
4. **Next Steps**: Outline what happens next
|
|
35
|
+
5. **Availability**: Offer continued support
|
|
36
|
+
|
|
37
|
+
### Tone Guidelines
|
|
38
|
+
|
|
39
|
+
- **Professional but friendly**: Not robotic, not overly casual
|
|
40
|
+
- **Empathetic**: Acknowledge frustrations or concerns
|
|
41
|
+
- **Clear**: Avoid jargon unless customer uses it
|
|
42
|
+
- **Concise**: Respect customer's time
|
|
43
|
+
- **Proactive**: Anticipate follow-up questions
|
|
44
|
+
|
|
45
|
+
## Common Issue Categories
|
|
46
|
+
|
|
47
|
+
### 1. Deposit Issues
|
|
48
|
+
|
|
49
|
+
**Symptoms**: Customer can't deposit, deposit pending, deposit failed
|
|
50
|
+
|
|
51
|
+
**Diagnostic Questions**:
|
|
52
|
+
- What wallet are you using?
|
|
53
|
+
- Which vault and chain?
|
|
54
|
+
- What's the transaction hash (if any)?
|
|
55
|
+
- What error message appeared?
|
|
56
|
+
|
|
57
|
+
**Tool Usage**: \`get_vault_data\` to check vault status
|
|
58
|
+
|
|
59
|
+
**Response Template**:
|
|
60
|
+
\`\`\`
|
|
61
|
+
Hi [Name],
|
|
62
|
+
|
|
63
|
+
Thank you for reaching out about your deposit issue.
|
|
64
|
+
|
|
65
|
+
I understand how frustrating it can be when a deposit doesn't go through as expected. Let me help you resolve this.
|
|
66
|
+
|
|
67
|
+
[IF PENDING]:
|
|
68
|
+
Your deposit is currently processing. Lagoon vaults use an asynchronous model where deposits are batched for efficiency. Your deposit should be processed within [timeframe]. You can track the status at [link].
|
|
69
|
+
|
|
70
|
+
[IF FAILED]:
|
|
71
|
+
I see the transaction encountered an issue. This typically happens when:
|
|
72
|
+
- Insufficient gas for the transaction
|
|
73
|
+
- The vault reached a temporary capacity limit
|
|
74
|
+
- Network congestion caused a timeout
|
|
75
|
+
|
|
76
|
+
To resolve this:
|
|
77
|
+
1. [Specific step 1]
|
|
78
|
+
2. [Specific step 2]
|
|
79
|
+
3. [Specific step 3]
|
|
80
|
+
|
|
81
|
+
[IF NEED MORE INFO]:
|
|
82
|
+
To help you further, could you please provide:
|
|
83
|
+
- The transaction hash from your wallet
|
|
84
|
+
- A screenshot of any error messages
|
|
85
|
+
|
|
86
|
+
I'm here to help until this is fully resolved. Please don't hesitate to reply with any questions.
|
|
87
|
+
|
|
88
|
+
Best regards,
|
|
89
|
+
[Support Agent]
|
|
90
|
+
\`\`\`
|
|
91
|
+
|
|
92
|
+
### 2. Redemption Issues
|
|
93
|
+
|
|
94
|
+
**Symptoms**: Can't redeem, redemption delayed, incorrect amount received
|
|
95
|
+
|
|
96
|
+
**Diagnostic Questions**:
|
|
97
|
+
- When did you request the redemption?
|
|
98
|
+
- Which vault are you redeeming from?
|
|
99
|
+
- What amount were you expecting vs received?
|
|
100
|
+
|
|
101
|
+
**Tool Usage**: \`get_vault_data\` and \`get_transactions\`
|
|
102
|
+
|
|
103
|
+
**Response Template**:
|
|
104
|
+
\`\`\`
|
|
105
|
+
Hi [Name],
|
|
106
|
+
|
|
107
|
+
Thank you for contacting us about your redemption.
|
|
108
|
+
|
|
109
|
+
[IF PENDING]:
|
|
110
|
+
Redemptions from Lagoon vaults follow an asynchronous process to ensure optimal pricing and security. Your redemption request has been received and will be processed in the next settlement cycle.
|
|
111
|
+
|
|
112
|
+
Expected processing: [timeframe]
|
|
113
|
+
You can track status at: [link]
|
|
114
|
+
|
|
115
|
+
[IF AMOUNT DISCREPANCY]:
|
|
116
|
+
I've reviewed your redemption and wanted to explain the amount received.
|
|
117
|
+
|
|
118
|
+
Original deposit: [X] [asset]
|
|
119
|
+
Shares received: [X]
|
|
120
|
+
Current share value: [X]
|
|
121
|
+
Redemption amount: [X] [asset]
|
|
122
|
+
|
|
123
|
+
The difference reflects [performance changes/fees/etc.].
|
|
124
|
+
|
|
125
|
+
[IF DELAYED]:
|
|
126
|
+
I apologize for the delay in processing your redemption. I'm escalating this to our operations team to expedite the resolution.
|
|
127
|
+
|
|
128
|
+
Expected resolution: [timeframe]
|
|
129
|
+
Ticket reference: [number]
|
|
130
|
+
|
|
131
|
+
Best regards,
|
|
132
|
+
[Support Agent]
|
|
133
|
+
\`\`\`
|
|
134
|
+
|
|
135
|
+
### 3. Performance Questions
|
|
136
|
+
|
|
137
|
+
**Symptoms**: Questions about APR, returns, comparisons
|
|
138
|
+
|
|
139
|
+
**Tool Usage**: \`get_vault_performance\`, \`get_vault_data\`
|
|
140
|
+
|
|
141
|
+
**Response Template**:
|
|
142
|
+
\`\`\`
|
|
143
|
+
Hi [Name],
|
|
144
|
+
|
|
145
|
+
Great question about vault performance!
|
|
146
|
+
|
|
147
|
+
[VAULT] Current Stats:
|
|
148
|
+
- Current APR: [X]%
|
|
149
|
+
- 30-day return: [X]%
|
|
150
|
+
- Total Value Locked: $[X]
|
|
151
|
+
|
|
152
|
+
[IF COMPARING]:
|
|
153
|
+
Here's how [Vault A] compares to [Vault B]:
|
|
154
|
+
|
|
155
|
+
| Metric | Vault A | Vault B |
|
|
156
|
+
|--------|---------|---------|
|
|
157
|
+
| APR | [X]% | [X]% |
|
|
158
|
+
| Risk Score | [X] | [X] |
|
|
159
|
+
| TVL | $[X] | $[X] |
|
|
160
|
+
|
|
161
|
+
[IF APR CHANGED]:
|
|
162
|
+
APR fluctuates based on market conditions and the underlying yield sources. The current APR reflects [explanation].
|
|
163
|
+
|
|
164
|
+
Would you like me to explain any of these metrics in more detail?
|
|
165
|
+
|
|
166
|
+
Best regards,
|
|
167
|
+
[Support Agent]
|
|
168
|
+
\`\`\`
|
|
169
|
+
|
|
170
|
+
### 4. Risk Questions
|
|
171
|
+
|
|
172
|
+
**Symptoms**: Concerns about safety, risk levels, security
|
|
173
|
+
|
|
174
|
+
**Tool Usage**: \`analyze_risk\`, \`get_vault_data\`
|
|
175
|
+
|
|
176
|
+
**Response Template**:
|
|
177
|
+
\`\`\`
|
|
178
|
+
Hi [Name],
|
|
179
|
+
|
|
180
|
+
Thank you for asking about risk - it's an important consideration for any investment.
|
|
181
|
+
|
|
182
|
+
[VAULT] Risk Profile:
|
|
183
|
+
- Risk Score: [X]/100 ([Level])
|
|
184
|
+
- Key Risk Factors: [Summary]
|
|
185
|
+
|
|
186
|
+
What this means:
|
|
187
|
+
[Plain language explanation of risk factors]
|
|
188
|
+
|
|
189
|
+
Risk Mitigations:
|
|
190
|
+
- [Mitigation 1]
|
|
191
|
+
- [Mitigation 2]
|
|
192
|
+
|
|
193
|
+
Important Disclaimer:
|
|
194
|
+
All DeFi investments carry risk, including the potential for total loss. Please only invest what you can afford to lose and consider consulting with a financial advisor.
|
|
195
|
+
|
|
196
|
+
Would you like more details on any specific risk factor?
|
|
197
|
+
|
|
198
|
+
Best regards,
|
|
199
|
+
[Support Agent]
|
|
200
|
+
\`\`\`
|
|
201
|
+
|
|
202
|
+
### 5. Technical Issues
|
|
203
|
+
|
|
204
|
+
**Symptoms**: UI bugs, connection problems, display errors
|
|
205
|
+
|
|
206
|
+
**Diagnostic Questions**:
|
|
207
|
+
- What browser/device are you using?
|
|
208
|
+
- Can you share a screenshot?
|
|
209
|
+
- Have you tried clearing cache/refreshing?
|
|
210
|
+
|
|
211
|
+
**Response Template**:
|
|
212
|
+
\`\`\`
|
|
213
|
+
Hi [Name],
|
|
214
|
+
|
|
215
|
+
I'm sorry you're experiencing technical difficulties.
|
|
216
|
+
|
|
217
|
+
[IF KNOWN ISSUE]:
|
|
218
|
+
We're aware of this issue and our team is actively working on a fix. Expected resolution: [timeframe].
|
|
219
|
+
|
|
220
|
+
[IF USER-SIDE]:
|
|
221
|
+
Let's try a few troubleshooting steps:
|
|
222
|
+
|
|
223
|
+
1. Clear your browser cache and cookies
|
|
224
|
+
2. Try a different browser (we recommend Chrome or Firefox)
|
|
225
|
+
3. Ensure your wallet extension is up to date
|
|
226
|
+
4. Disable any ad blockers temporarily
|
|
227
|
+
|
|
228
|
+
[IF NEEDS ESCALATION]:
|
|
229
|
+
I've documented this issue and escalated it to our engineering team.
|
|
230
|
+
|
|
231
|
+
Ticket reference: [number]
|
|
232
|
+
Expected response: [timeframe]
|
|
233
|
+
|
|
234
|
+
I'll follow up as soon as we have more information.
|
|
235
|
+
|
|
236
|
+
Best regards,
|
|
237
|
+
[Support Agent]
|
|
238
|
+
\`\`\`
|
|
239
|
+
|
|
240
|
+
## Escalation Procedures
|
|
241
|
+
|
|
242
|
+
### When to Escalate
|
|
243
|
+
|
|
244
|
+
**Immediate Escalation** (within 1 hour):
|
|
245
|
+
- Security concerns or potential exploits
|
|
246
|
+
- Transactions >$100K with issues
|
|
247
|
+
- Data privacy concerns
|
|
248
|
+
- Legal or regulatory inquiries
|
|
249
|
+
|
|
250
|
+
**Standard Escalation** (within 4 hours):
|
|
251
|
+
- Complex technical issues
|
|
252
|
+
- Repeated failed transactions
|
|
253
|
+
- Unresolved issues after 2 interactions
|
|
254
|
+
- Feature requests from large users
|
|
255
|
+
|
|
256
|
+
**Scheduled Review** (next business day):
|
|
257
|
+
- General feedback
|
|
258
|
+
- Minor UI issues
|
|
259
|
+
- Feature suggestions
|
|
260
|
+
|
|
261
|
+
### Escalation Template
|
|
262
|
+
|
|
263
|
+
\`\`\`
|
|
264
|
+
ESCALATION REQUEST
|
|
265
|
+
==================
|
|
266
|
+
|
|
267
|
+
Priority: [Critical/High/Medium/Low]
|
|
268
|
+
Category: [Technical/Financial/Security/Other]
|
|
269
|
+
|
|
270
|
+
Customer: [Name/ID]
|
|
271
|
+
Contact: [Email]
|
|
272
|
+
Original Ticket: [Number]
|
|
273
|
+
|
|
274
|
+
Issue Summary:
|
|
275
|
+
[Brief description]
|
|
276
|
+
|
|
277
|
+
Attempted Resolution:
|
|
278
|
+
[What has been tried]
|
|
279
|
+
|
|
280
|
+
Escalation Reason:
|
|
281
|
+
[Why this needs escalation]
|
|
282
|
+
|
|
283
|
+
Requested Action:
|
|
284
|
+
[What is needed from escalation team]
|
|
285
|
+
|
|
286
|
+
Supporting Information:
|
|
287
|
+
[Transaction hashes, screenshots, etc.]
|
|
288
|
+
\`\`\`
|
|
289
|
+
|
|
290
|
+
## Communication Guidelines
|
|
291
|
+
|
|
292
|
+
### Language Standards
|
|
293
|
+
- Use "we" when referring to Lagoon
|
|
294
|
+
- Avoid technical jargon unless customer is technical
|
|
295
|
+
- Never promise specific returns or outcomes
|
|
296
|
+
- Always include appropriate disclaimers for financial topics
|
|
297
|
+
|
|
298
|
+
### Response Timing
|
|
299
|
+
- First response: Within 4 hours (business hours)
|
|
300
|
+
- Follow-ups: Within 24 hours
|
|
301
|
+
- Escalations: Per priority level above
|
|
302
|
+
|
|
303
|
+
### Prohibited Statements
|
|
304
|
+
- Never guarantee returns or APR
|
|
305
|
+
- Never promise specific timelines without confirmation
|
|
306
|
+
- Never share other customer information
|
|
307
|
+
- Never provide financial, legal, or tax advice`;
|
|
308
|
+
/**
|
|
309
|
+
* Response templates resource
|
|
310
|
+
*/
|
|
311
|
+
const RESPONSE_TEMPLATES = `# Support Response Templates
|
|
312
|
+
|
|
313
|
+
## Quick Responses
|
|
314
|
+
|
|
315
|
+
### Deposit Received
|
|
316
|
+
\`\`\`
|
|
317
|
+
Hi [Name],
|
|
318
|
+
|
|
319
|
+
Great news! Your deposit of [amount] has been successfully processed and is now earning yield in [vault name].
|
|
320
|
+
|
|
321
|
+
Current position: [X] shares
|
|
322
|
+
Current value: $[X]
|
|
323
|
+
|
|
324
|
+
You can view your position at any time in your dashboard.
|
|
325
|
+
|
|
326
|
+
Best regards,
|
|
327
|
+
[Support Agent]
|
|
328
|
+
\`\`\`
|
|
329
|
+
|
|
330
|
+
### Redemption Processed
|
|
331
|
+
\`\`\`
|
|
332
|
+
Hi [Name],
|
|
333
|
+
|
|
334
|
+
Your redemption has been processed successfully!
|
|
335
|
+
|
|
336
|
+
Amount redeemed: [X] [asset]
|
|
337
|
+
Transaction: [hash link]
|
|
338
|
+
|
|
339
|
+
The funds should appear in your wallet shortly (usually within a few minutes depending on network conditions).
|
|
340
|
+
|
|
341
|
+
Best regards,
|
|
342
|
+
[Support Agent]
|
|
343
|
+
\`\`\`
|
|
344
|
+
|
|
345
|
+
### Request More Information
|
|
346
|
+
\`\`\`
|
|
347
|
+
Hi [Name],
|
|
348
|
+
|
|
349
|
+
Thank you for contacting Lagoon support. I'd like to help resolve this for you.
|
|
350
|
+
|
|
351
|
+
To assist you better, could you please provide:
|
|
352
|
+
- [Specific information needed]
|
|
353
|
+
- [Additional context]
|
|
354
|
+
|
|
355
|
+
Once I have this information, I'll be able to investigate further.
|
|
356
|
+
|
|
357
|
+
Best regards,
|
|
358
|
+
[Support Agent]
|
|
359
|
+
\`\`\`
|
|
360
|
+
|
|
361
|
+
### Issue Resolved
|
|
362
|
+
\`\`\`
|
|
363
|
+
Hi [Name],
|
|
364
|
+
|
|
365
|
+
I'm pleased to confirm that your issue has been resolved.
|
|
366
|
+
|
|
367
|
+
Summary:
|
|
368
|
+
- Issue: [Brief description]
|
|
369
|
+
- Resolution: [What was done]
|
|
370
|
+
- Current Status: [Resolved/Monitoring]
|
|
371
|
+
|
|
372
|
+
Is there anything else I can help you with?
|
|
373
|
+
|
|
374
|
+
Best regards,
|
|
375
|
+
[Support Agent]
|
|
376
|
+
\`\`\`
|
|
377
|
+
|
|
378
|
+
### Scheduled Maintenance
|
|
379
|
+
\`\`\`
|
|
380
|
+
Hi [Name],
|
|
381
|
+
|
|
382
|
+
Thank you for your patience. The [feature/service] is currently undergoing scheduled maintenance.
|
|
383
|
+
|
|
384
|
+
Expected duration: [timeframe]
|
|
385
|
+
Impact: [What is affected]
|
|
386
|
+
Workaround: [If any]
|
|
387
|
+
|
|
388
|
+
We'll notify you when service is restored. Your funds remain safe during this maintenance period.
|
|
389
|
+
|
|
390
|
+
Best regards,
|
|
391
|
+
[Support Agent]
|
|
392
|
+
\`\`\`
|
|
393
|
+
|
|
394
|
+
## FAQ Responses
|
|
395
|
+
|
|
396
|
+
### What are vault fees?
|
|
397
|
+
\`\`\`
|
|
398
|
+
Lagoon vaults have transparent fee structures:
|
|
399
|
+
|
|
400
|
+
- Management Fee: [X]% annually (accrued daily)
|
|
401
|
+
- Performance Fee: [X]% of profits (only charged on gains)
|
|
402
|
+
- Entry/Exit Fees: [Details if applicable]
|
|
403
|
+
|
|
404
|
+
These fees are automatically deducted and reflected in your share value. The displayed APR is already net of fees.
|
|
405
|
+
|
|
406
|
+
For specific vault fees, you can find them on the vault details page or I can look them up for you.
|
|
407
|
+
\`\`\`
|
|
408
|
+
|
|
409
|
+
### How is APR calculated?
|
|
410
|
+
\`\`\`
|
|
411
|
+
APR (Annual Percentage Rate) represents the annualized return based on recent vault performance.
|
|
412
|
+
|
|
413
|
+
Calculation method:
|
|
414
|
+
- Based on [30-day/7-day] historical performance
|
|
415
|
+
- Annualized for comparison purposes
|
|
416
|
+
- Net of all fees
|
|
417
|
+
- Does not include compounding effects
|
|
418
|
+
|
|
419
|
+
Important: APR is variable and based on historical data. It does not guarantee future returns.
|
|
420
|
+
\`\`\`
|
|
421
|
+
|
|
422
|
+
### What happens if a vault strategy fails?
|
|
423
|
+
\`\`\`
|
|
424
|
+
While rare, strategy issues are possible in DeFi. Here's what you should know:
|
|
425
|
+
|
|
426
|
+
Protections in place:
|
|
427
|
+
- Professional curator oversight
|
|
428
|
+
- Diversified underlying strategies
|
|
429
|
+
- Regular monitoring and rebalancing
|
|
430
|
+
|
|
431
|
+
If issues occur:
|
|
432
|
+
- Curator may pause deposits/redemptions temporarily
|
|
433
|
+
- Strategy adjustments made as needed
|
|
434
|
+
- Communication sent to all depositors
|
|
435
|
+
|
|
436
|
+
Risk reminder: All DeFi investments carry risk, including potential total loss.
|
|
437
|
+
\`\`\`
|
|
438
|
+
|
|
439
|
+
### How do I contact support?
|
|
440
|
+
\`\`\`
|
|
441
|
+
You can reach Lagoon support through:
|
|
442
|
+
|
|
443
|
+
- This support chat (fastest response)
|
|
444
|
+
- Email: support@lagoon.protocol
|
|
445
|
+
- Discord: [link to support channel]
|
|
446
|
+
|
|
447
|
+
Support hours: [Hours]
|
|
448
|
+
Average response time: [Timeframe]
|
|
449
|
+
|
|
450
|
+
For urgent security concerns, please use [emergency contact method].
|
|
451
|
+
\`\`\`
|
|
452
|
+
|
|
453
|
+
## Closing Messages
|
|
454
|
+
|
|
455
|
+
### Positive Resolution
|
|
456
|
+
\`\`\`
|
|
457
|
+
I'm glad I could help resolve this for you! If you have any other questions in the future, don't hesitate to reach out.
|
|
458
|
+
|
|
459
|
+
Thank you for using Lagoon!
|
|
460
|
+
\`\`\`
|
|
461
|
+
|
|
462
|
+
### Awaiting Customer Response
|
|
463
|
+
\`\`\`
|
|
464
|
+
I'll keep this ticket open while awaiting your response. Feel free to reply whenever convenient.
|
|
465
|
+
|
|
466
|
+
This ticket will auto-close after [X] days of inactivity, but you can always open a new one if needed.
|
|
467
|
+
\`\`\`
|
|
468
|
+
|
|
469
|
+
### After Escalation
|
|
470
|
+
\`\`\`
|
|
471
|
+
I've escalated this to our specialized team who will follow up with you directly.
|
|
472
|
+
|
|
473
|
+
Ticket reference: [number]
|
|
474
|
+
Expected follow-up: [timeframe]
|
|
475
|
+
|
|
476
|
+
Thank you for your patience.
|
|
477
|
+
\`\`\``;
|
|
478
|
+
/**
|
|
479
|
+
* Lagoon Customer Support Skill Definition
|
|
480
|
+
*/
|
|
481
|
+
export const lagoonCustomerSupportSkill = {
|
|
482
|
+
name: 'lagoon-customer-support',
|
|
483
|
+
description: 'Consistent, professional support responses for the internal support team handling customer inquiries, issues, and escalations.',
|
|
484
|
+
triggers: [
|
|
485
|
+
'support response',
|
|
486
|
+
'customer question',
|
|
487
|
+
'support template',
|
|
488
|
+
'customer issue',
|
|
489
|
+
'help response',
|
|
490
|
+
'support ticket',
|
|
491
|
+
'customer inquiry',
|
|
492
|
+
'support reply',
|
|
493
|
+
'escalation',
|
|
494
|
+
'customer complaint',
|
|
495
|
+
'support message',
|
|
496
|
+
'ticket response',
|
|
497
|
+
],
|
|
498
|
+
audience: 'internal-support',
|
|
499
|
+
instructions: INSTRUCTIONS,
|
|
500
|
+
resources: {
|
|
501
|
+
responseTemplates: RESPONSE_TEMPLATES,
|
|
502
|
+
},
|
|
503
|
+
metadata: {
|
|
504
|
+
version: '1.0.0',
|
|
505
|
+
category: 'support',
|
|
506
|
+
primaryTools: ['search_vaults', 'get_vault_data', 'get_transactions'],
|
|
507
|
+
estimatedTokens: 2400,
|
|
508
|
+
lastUpdated: '2024-12-15',
|
|
509
|
+
},
|
|
510
|
+
};
|
|
511
|
+
export default lagoonCustomerSupportSkill;
|
|
512
|
+
//# sourceMappingURL=customer-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customer-support.js","sourceRoot":"","sources":["../../src/skills/customer-support.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;GAEG;AACH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAuS2B,CAAC;AAEjD;;GAEG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsKpB,CAAC;AAER;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,gIAAgI;IAClI,QAAQ,EAAE;QACR,kBAAkB;QAClB,mBAAmB;QACnB,kBAAkB;QAClB,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,kBAAkB;QAClB,eAAe;QACf,YAAY;QACZ,oBAAoB;QACpB,iBAAiB;QACjB,iBAAiB;KAClB;IACD,QAAQ,EAAE,kBAAkB;IAC5B,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE;QACT,iBAAiB,EAAE,kBAAkB;KACtC;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;QACrE,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,YAAY;KAC1B;CACF,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lagoon Skills Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all skills and utilities for programmatic usage in backend integrations.
|
|
5
|
+
*
|
|
6
|
+
* ## Overview
|
|
7
|
+
*
|
|
8
|
+
* Skills are procedural knowledge modules that complement MCP's data connectivity.
|
|
9
|
+
* While MCP tools fetch data, Skills teach Claude HOW to use those tools effectively.
|
|
10
|
+
*
|
|
11
|
+
* ## Usage in Backend
|
|
12
|
+
*
|
|
13
|
+
* ### Recommended: Use buildSkillAwarePrompt helper
|
|
14
|
+
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { buildSkillAwarePrompt } from '@lagoon-protocol/lagoon-mcp/skills';
|
|
17
|
+
*
|
|
18
|
+
* // In your Claude API handler:
|
|
19
|
+
* const { systemPrompt, detectedSkill, tokensAdded } = buildSkillAwarePrompt(
|
|
20
|
+
* "You are a Lagoon vault assistant...",
|
|
21
|
+
* userMessage,
|
|
22
|
+
* { confidenceThreshold: 0.5, includeResources: true }
|
|
23
|
+
* );
|
|
24
|
+
*
|
|
25
|
+
* const response = await claude.messages.create({
|
|
26
|
+
* model: 'claude-sonnet-4-20250514',
|
|
27
|
+
* system: systemPrompt,
|
|
28
|
+
* tools: mcpTools,
|
|
29
|
+
* messages: [{ role: 'user', content: userMessage }]
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* // Log skill usage for analytics
|
|
33
|
+
* if (detectedSkill) {
|
|
34
|
+
* console.log(`Skill activated: ${detectedSkill} (+${tokensAdded} tokens)`);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* ### Alternative: Manual skill detection
|
|
39
|
+
*
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import { detectSkill, getSkillPrompt } from '@lagoon-protocol/lagoon-mcp/skills';
|
|
42
|
+
*
|
|
43
|
+
* const detection = detectSkill(userMessage);
|
|
44
|
+
* if (detection.skill && detection.confidence > 0.5) {
|
|
45
|
+
* systemPrompt += getSkillPrompt(detection.skill.name);
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* ### Explicit skill activation
|
|
50
|
+
*
|
|
51
|
+
* ```typescript
|
|
52
|
+
* import { getSkillPrompt } from '@lagoon-protocol/lagoon-mcp/skills';
|
|
53
|
+
*
|
|
54
|
+
* if (isNewUser) {
|
|
55
|
+
* systemPrompt += getSkillPrompt('lagoon-onboarding', { includeResources: true });
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* ## Available Skills
|
|
60
|
+
*
|
|
61
|
+
* - `lagoon-onboarding`: First vault selection for new users
|
|
62
|
+
* - (Future) `lagoon-protocol-health`: Internal KPI monitoring
|
|
63
|
+
* - (Future) `lagoon-portfolio-review`: Portfolio health checks
|
|
64
|
+
*
|
|
65
|
+
* @module skills
|
|
66
|
+
*/
|
|
67
|
+
export type { BuildPromptOptions, BuildPromptResult, LagoonSkill, SkillAudience, SkillCategory, SkillDetectionResult, SkillLoadOptions, SkillMetadata, SkillRegistry, SkillResources, } from './types.js';
|
|
68
|
+
export { lagoonOnboardingSkill } from './onboarding.js';
|
|
69
|
+
export { lagoonProtocolHealthSkill } from './protocol-health.js';
|
|
70
|
+
export { lagoonPortfolioReviewSkill } from './portfolio-review.js';
|
|
71
|
+
export { lagoonCuratorEvaluationSkill } from './curator-evaluation.js';
|
|
72
|
+
export { lagoonRiskExpertSkill } from './risk-expert.js';
|
|
73
|
+
export { lagoonCustomerSupportSkill } from './customer-support.js';
|
|
74
|
+
export { COMMON_DISCLAIMERS, COMMON_TRIGGERS, COMMUNICATION_GUIDELINES, combineTriggers, estimateTokens, } from './shared.js';
|
|
75
|
+
export { buildSkillAwarePrompt, createSkillRegistry, detectSkill, getSkill, getSkillCatalog, getSkillNames, getSkillPrompt, getSkills, skillRegistry, } from './loader.js';
|
|
76
|
+
/**
|
|
77
|
+
* All available skills as a named collection
|
|
78
|
+
*/
|
|
79
|
+
export declare const skills: {
|
|
80
|
+
readonly onboarding: import("./types.js").LagoonSkill;
|
|
81
|
+
readonly protocolHealth: import("./types.js").LagoonSkill;
|
|
82
|
+
readonly portfolioReview: import("./types.js").LagoonSkill;
|
|
83
|
+
readonly curatorEvaluation: import("./types.js").LagoonSkill;
|
|
84
|
+
readonly riskExpert: import("./types.js").LagoonSkill;
|
|
85
|
+
readonly customerSupport: import("./types.js").LagoonSkill;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Default export: skill registry for simple access
|
|
89
|
+
*/
|
|
90
|
+
export { skillRegistry as default } from './loader.js';
|
|
91
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAGH,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,cAAc,EACd,SAAS,EACT,aAAa,GACd,MAAM,aAAa,CAAC;AAUrB;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AAEX;;GAEG;AACH,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lagoon Skills Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all skills and utilities for programmatic usage in backend integrations.
|
|
5
|
+
*
|
|
6
|
+
* ## Overview
|
|
7
|
+
*
|
|
8
|
+
* Skills are procedural knowledge modules that complement MCP's data connectivity.
|
|
9
|
+
* While MCP tools fetch data, Skills teach Claude HOW to use those tools effectively.
|
|
10
|
+
*
|
|
11
|
+
* ## Usage in Backend
|
|
12
|
+
*
|
|
13
|
+
* ### Recommended: Use buildSkillAwarePrompt helper
|
|
14
|
+
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { buildSkillAwarePrompt } from '@lagoon-protocol/lagoon-mcp/skills';
|
|
17
|
+
*
|
|
18
|
+
* // In your Claude API handler:
|
|
19
|
+
* const { systemPrompt, detectedSkill, tokensAdded } = buildSkillAwarePrompt(
|
|
20
|
+
* "You are a Lagoon vault assistant...",
|
|
21
|
+
* userMessage,
|
|
22
|
+
* { confidenceThreshold: 0.5, includeResources: true }
|
|
23
|
+
* );
|
|
24
|
+
*
|
|
25
|
+
* const response = await claude.messages.create({
|
|
26
|
+
* model: 'claude-sonnet-4-20250514',
|
|
27
|
+
* system: systemPrompt,
|
|
28
|
+
* tools: mcpTools,
|
|
29
|
+
* messages: [{ role: 'user', content: userMessage }]
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* // Log skill usage for analytics
|
|
33
|
+
* if (detectedSkill) {
|
|
34
|
+
* console.log(`Skill activated: ${detectedSkill} (+${tokensAdded} tokens)`);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* ### Alternative: Manual skill detection
|
|
39
|
+
*
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import { detectSkill, getSkillPrompt } from '@lagoon-protocol/lagoon-mcp/skills';
|
|
42
|
+
*
|
|
43
|
+
* const detection = detectSkill(userMessage);
|
|
44
|
+
* if (detection.skill && detection.confidence > 0.5) {
|
|
45
|
+
* systemPrompt += getSkillPrompt(detection.skill.name);
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* ### Explicit skill activation
|
|
50
|
+
*
|
|
51
|
+
* ```typescript
|
|
52
|
+
* import { getSkillPrompt } from '@lagoon-protocol/lagoon-mcp/skills';
|
|
53
|
+
*
|
|
54
|
+
* if (isNewUser) {
|
|
55
|
+
* systemPrompt += getSkillPrompt('lagoon-onboarding', { includeResources: true });
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* ## Available Skills
|
|
60
|
+
*
|
|
61
|
+
* - `lagoon-onboarding`: First vault selection for new users
|
|
62
|
+
* - (Future) `lagoon-protocol-health`: Internal KPI monitoring
|
|
63
|
+
* - (Future) `lagoon-portfolio-review`: Portfolio health checks
|
|
64
|
+
*
|
|
65
|
+
* @module skills
|
|
66
|
+
*/
|
|
67
|
+
// Skill definitions
|
|
68
|
+
export { lagoonOnboardingSkill } from './onboarding.js';
|
|
69
|
+
export { lagoonProtocolHealthSkill } from './protocol-health.js';
|
|
70
|
+
export { lagoonPortfolioReviewSkill } from './portfolio-review.js';
|
|
71
|
+
export { lagoonCuratorEvaluationSkill } from './curator-evaluation.js';
|
|
72
|
+
export { lagoonRiskExpertSkill } from './risk-expert.js';
|
|
73
|
+
export { lagoonCustomerSupportSkill } from './customer-support.js';
|
|
74
|
+
// Shared utilities
|
|
75
|
+
export { COMMON_DISCLAIMERS, COMMON_TRIGGERS, COMMUNICATION_GUIDELINES, combineTriggers, estimateTokens, } from './shared.js';
|
|
76
|
+
// Loader utilities
|
|
77
|
+
export { buildSkillAwarePrompt, createSkillRegistry, detectSkill, getSkill, getSkillCatalog, getSkillNames, getSkillPrompt, getSkills, skillRegistry, } from './loader.js';
|
|
78
|
+
// Convenience re-export of all skills as a collection
|
|
79
|
+
import { lagoonOnboardingSkill } from './onboarding.js';
|
|
80
|
+
import { lagoonProtocolHealthSkill } from './protocol-health.js';
|
|
81
|
+
import { lagoonPortfolioReviewSkill } from './portfolio-review.js';
|
|
82
|
+
import { lagoonCuratorEvaluationSkill } from './curator-evaluation.js';
|
|
83
|
+
import { lagoonRiskExpertSkill } from './risk-expert.js';
|
|
84
|
+
import { lagoonCustomerSupportSkill } from './customer-support.js';
|
|
85
|
+
/**
|
|
86
|
+
* All available skills as a named collection
|
|
87
|
+
*/
|
|
88
|
+
export const skills = {
|
|
89
|
+
onboarding: lagoonOnboardingSkill,
|
|
90
|
+
protocolHealth: lagoonProtocolHealthSkill,
|
|
91
|
+
portfolioReview: lagoonPortfolioReviewSkill,
|
|
92
|
+
curatorEvaluation: lagoonCuratorEvaluationSkill,
|
|
93
|
+
riskExpert: lagoonRiskExpertSkill,
|
|
94
|
+
customerSupport: lagoonCustomerSupportSkill,
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Default export: skill registry for simple access
|
|
98
|
+
*/
|
|
99
|
+
export { skillRegistry as default } from './loader.js';
|
|
100
|
+
//# sourceMappingURL=index.js.map
|