mcp-ai-agent-guidelines 0.1.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/LICENSE +21 -0
- package/README.md +336 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +307 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +21 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +504 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +14 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +92 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/structured.d.ts +47 -0
- package/dist/resources/structured.d.ts.map +1 -0
- package/dist/resources/structured.js +857 -0
- package/dist/resources/structured.js.map +1 -0
- package/dist/tools/code-hygiene-analyzer.d.ts +7 -0
- package/dist/tools/code-hygiene-analyzer.d.ts.map +1 -0
- package/dist/tools/code-hygiene-analyzer.js +176 -0
- package/dist/tools/code-hygiene-analyzer.js.map +1 -0
- package/dist/tools/config/guidelines-config.d.ts +16 -0
- package/dist/tools/config/guidelines-config.d.ts.map +1 -0
- package/dist/tools/config/guidelines-config.js +236 -0
- package/dist/tools/config/guidelines-config.js.map +1 -0
- package/dist/tools/config/model-config.d.ts +33 -0
- package/dist/tools/config/model-config.d.ts.map +1 -0
- package/dist/tools/config/model-config.js +206 -0
- package/dist/tools/config/model-config.js.map +1 -0
- package/dist/tools/guidelines-validator.d.ts +7 -0
- package/dist/tools/guidelines-validator.d.ts.map +1 -0
- package/dist/tools/guidelines-validator.js +178 -0
- package/dist/tools/guidelines-validator.js.map +1 -0
- package/dist/tools/hierarchical-prompt-builder.d.ts +7 -0
- package/dist/tools/hierarchical-prompt-builder.d.ts.map +1 -0
- package/dist/tools/hierarchical-prompt-builder.js +147 -0
- package/dist/tools/hierarchical-prompt-builder.js.map +1 -0
- package/dist/tools/memory-context-optimizer.d.ts +7 -0
- package/dist/tools/memory-context-optimizer.d.ts.map +1 -0
- package/dist/tools/memory-context-optimizer.js +256 -0
- package/dist/tools/memory-context-optimizer.js.map +1 -0
- package/dist/tools/mermaid-diagram-generator.d.ts +7 -0
- package/dist/tools/mermaid-diagram-generator.d.ts.map +1 -0
- package/dist/tools/mermaid-diagram-generator.js +312 -0
- package/dist/tools/mermaid-diagram-generator.js.map +1 -0
- package/dist/tools/model-compatibility-checker.d.ts +7 -0
- package/dist/tools/model-compatibility-checker.d.ts.map +1 -0
- package/dist/tools/model-compatibility-checker.js +204 -0
- package/dist/tools/model-compatibility-checker.js.map +1 -0
- package/dist/tools/sprint-timeline-calculator.d.ts +7 -0
- package/dist/tools/sprint-timeline-calculator.d.ts.map +1 -0
- package/dist/tools/sprint-timeline-calculator.js +240 -0
- package/dist/tools/sprint-timeline-calculator.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,857 @@
|
|
|
1
|
+
// Structured resources for MCP guidelines with dual output (Markdown + JSON)
|
|
2
|
+
// Best-practice: keep resources side-effect free, URL-backed references, and concise code examples.
|
|
3
|
+
export function renderStructuredToMarkdown(res) {
|
|
4
|
+
const lines = [];
|
|
5
|
+
lines.push(`# ${res.title}`);
|
|
6
|
+
lines.push("");
|
|
7
|
+
for (const seg of res.segments) {
|
|
8
|
+
switch (seg.type) {
|
|
9
|
+
case "heading": {
|
|
10
|
+
lines.push(`${"#".repeat(seg.level)} ${seg.text}`);
|
|
11
|
+
lines.push("");
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
case "paragraph": {
|
|
15
|
+
lines.push(seg.text);
|
|
16
|
+
lines.push("");
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
case "list": {
|
|
20
|
+
for (let i = 0; i < seg.items.length; i++) {
|
|
21
|
+
const item = seg.items[i];
|
|
22
|
+
if (seg.ordered)
|
|
23
|
+
lines.push(`${i + 1}. ${item}`);
|
|
24
|
+
else
|
|
25
|
+
lines.push(`- ${item}`);
|
|
26
|
+
}
|
|
27
|
+
lines.push("");
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
case "table": {
|
|
31
|
+
lines.push(`| ${seg.headers.join(" | ")} |`);
|
|
32
|
+
lines.push(`| ${seg.headers.map(() => "---").join(" | ")} |`);
|
|
33
|
+
for (const row of seg.rows) {
|
|
34
|
+
lines.push(`| ${row.join(" | ")} |`);
|
|
35
|
+
}
|
|
36
|
+
lines.push("");
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case "code": {
|
|
40
|
+
if (seg.caption)
|
|
41
|
+
lines.push(`_${seg.caption}_`);
|
|
42
|
+
lines.push(`\`\`\`${seg.language}`);
|
|
43
|
+
lines.push(seg.code);
|
|
44
|
+
lines.push("```");
|
|
45
|
+
lines.push("");
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case "note": {
|
|
49
|
+
lines.push(`> Note: ${seg.text}`);
|
|
50
|
+
lines.push("");
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case "callout": {
|
|
54
|
+
lines.push(`> ${seg.text}`);
|
|
55
|
+
lines.push("");
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case "references": {
|
|
59
|
+
lines.push("## References");
|
|
60
|
+
lines.push("");
|
|
61
|
+
for (const r of seg.items) {
|
|
62
|
+
const title = r.url ? `[${r.title}](${r.url})` : r.title;
|
|
63
|
+
const src = r.source ? ` – ${r.source}` : "";
|
|
64
|
+
const note = r.note ? ` — ${r.note}` : "";
|
|
65
|
+
lines.push(`- ${title}${src}${note}`);
|
|
66
|
+
}
|
|
67
|
+
lines.push("");
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
lines.push("---");
|
|
73
|
+
lines.push(`Version: ${res.version} · Updated: ${res.lastUpdated}`);
|
|
74
|
+
return lines.join("\n");
|
|
75
|
+
}
|
|
76
|
+
const updated = new Date().toISOString().slice(0, 10);
|
|
77
|
+
export const structuredResources = [
|
|
78
|
+
// Core development principles (extended, link-focused)
|
|
79
|
+
{
|
|
80
|
+
id: "core-development-principles",
|
|
81
|
+
title: "Core Development Principles (Extended)",
|
|
82
|
+
version: "0.1.0",
|
|
83
|
+
lastUpdated: updated,
|
|
84
|
+
tags: ["principles", "links", "prompting", "sprint", "mermaid", "memory"],
|
|
85
|
+
segments: [
|
|
86
|
+
{ type: "heading", level: 2, text: "Overview" },
|
|
87
|
+
{
|
|
88
|
+
type: "paragraph",
|
|
89
|
+
text: "Authoritative references for hierarchical prompting, sprint planning, model selection context, visualization with Mermaid, and memory/prompt caching.",
|
|
90
|
+
},
|
|
91
|
+
{ type: "heading", level: 2, text: "Hierarchical Prompt Structure" },
|
|
92
|
+
{
|
|
93
|
+
type: "paragraph",
|
|
94
|
+
text: "Use layered prompts (Context → Goal → Requirements → Output Format → Audience → Instructions). Validate choices with official docs; iterate with tests.",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: "references",
|
|
98
|
+
items: [
|
|
99
|
+
{
|
|
100
|
+
title: "Hierarchical Prompting for Better AI Interactions",
|
|
101
|
+
url: "https://relevanceai.com/prompt-engineering/master-hierarchical-prompting-for-better-ai-interactions",
|
|
102
|
+
source: "RelevanceAI",
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
title: "AI Prompt Engineering Best Practices",
|
|
106
|
+
url: "https://kanerika.com/blogs/ai-prompt-engineering-best-practices/",
|
|
107
|
+
source: "Kanerika",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: "Complete Prompt Engineering Guide: 15 Essential Techniques for 2025",
|
|
111
|
+
url: "https://www.dataunboxed.io/blog/the-complete-guide-to-prompt-engineering-15-essential-techniques-for-2025",
|
|
112
|
+
source: "DataUnboxed",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
title: "Hierarchical Prompt Learning for Multi-Task Learning (CVPR 2023)",
|
|
116
|
+
url: "https://openaccess.thecvf.com/content/CVPR2023/papers/Liu_Hierarchical_Prompt_Learning_for_Multi-Task_Learning_CVPR_2023_paper.pdf",
|
|
117
|
+
source: "CVPR 2023",
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
},
|
|
121
|
+
{ type: "heading", level: 2, text: "Timeframes & Sprint Planning" },
|
|
122
|
+
{
|
|
123
|
+
type: "references",
|
|
124
|
+
items: [
|
|
125
|
+
{
|
|
126
|
+
title: "The 7 Best AI-Assisted Sprint Planning Tools for Agile Teams in 2025",
|
|
127
|
+
url: "https://www.zenhub.com/blog-posts/the-7-best-ai-assisted-sprint-planning-tools-for-agile-teams-in-2025",
|
|
128
|
+
source: "ZenHub",
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: "AI in Software Project Delivery: Smarter Planning and Execution",
|
|
132
|
+
url: "https://www.nitorinfotech.com/blog/ai-in-software-project-delivery-smarter-planning-and-execution/",
|
|
133
|
+
source: "Nitor",
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
{ type: "heading", level: 2, text: "Checklists & Code Hygiene" },
|
|
138
|
+
{
|
|
139
|
+
type: "references",
|
|
140
|
+
items: [
|
|
141
|
+
{
|
|
142
|
+
title: "Legacy Code Refactoring: Transform Your Codebase Safely",
|
|
143
|
+
url: "https://www.docuwriter.ai/posts/legacy-code-refactoring",
|
|
144
|
+
source: "DocuWriter",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: "Strategies for Refactoring Legacy Code and Updating Outdated Software",
|
|
148
|
+
url: "https://refraction.dev/blog/refactoring-legacy-code-outdated-software",
|
|
149
|
+
source: "Refraction",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
title: "Refactoring Best Practices",
|
|
153
|
+
url: "https://graphite.dev/guides/refactoring-legacy-code-best-practices-techniques",
|
|
154
|
+
source: "Graphite",
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{ type: "heading", level: 2, text: "Visualization & Documentation" },
|
|
159
|
+
{
|
|
160
|
+
type: "references",
|
|
161
|
+
items: [
|
|
162
|
+
{
|
|
163
|
+
title: "Mermaid.js: Transforming Documentation and Diagrams",
|
|
164
|
+
url: "https://dev.to/dminatto/mermaidjs-transforming-documentation-and-diagrams-with-markdown-like-syntax-1aeb",
|
|
165
|
+
source: "DEV",
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
title: "Kubernetes Diagram Guide",
|
|
169
|
+
url: "https://kubernetes.io/docs/contribute/style/diagram-guide/",
|
|
170
|
+
source: "Kubernetes",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
title: "Mermaid.js: A Complete Guide",
|
|
174
|
+
url: "https://swimm.io/learn/mermaid-js/mermaid-js-a-complete-guide",
|
|
175
|
+
source: "Swimm",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
title: "Mermaid GitHub Repository",
|
|
179
|
+
url: "https://github.com/mermaid-js/mermaid",
|
|
180
|
+
source: "GitHub",
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
},
|
|
184
|
+
{ type: "heading", level: 2, text: "Memory & Prompt Caching" },
|
|
185
|
+
{
|
|
186
|
+
type: "references",
|
|
187
|
+
items: [
|
|
188
|
+
{
|
|
189
|
+
title: "Prompt Caching with Claude (Announcement)",
|
|
190
|
+
url: "https://www.anthropic.com/news/prompt-caching",
|
|
191
|
+
source: "Anthropic",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
title: "Prompt Caching - Anthropic Docs",
|
|
195
|
+
url: "https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching",
|
|
196
|
+
source: "Anthropic",
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
title: "Prompt Caching: Saving Time and Money in LLM Applications",
|
|
200
|
+
url: "https://caylent.com/blog/prompt-caching-saving-time-and-money-in-llm-applications",
|
|
201
|
+
source: "Caylent",
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
},
|
|
205
|
+
{ type: "heading", level: 2, text: "Model Landscape & Comparisons" },
|
|
206
|
+
{
|
|
207
|
+
type: "references",
|
|
208
|
+
items: [
|
|
209
|
+
{
|
|
210
|
+
title: "GPT-4 Turbo vs Claude 2.1",
|
|
211
|
+
url: "https://www.akkio.com/post/gpt-4-turbo-vs-claude-2-1",
|
|
212
|
+
source: "Akkio",
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
title: "AI Showdown: GPT vs Claude vs Gemini (2025)",
|
|
216
|
+
url: "https://www.linkedin.com/pulse/ai-showdown-openais-gpt-family-vs-anthropics-claude-gemini-pallister-ilb5c",
|
|
217
|
+
source: "LinkedIn",
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
title: "Claude vs ChatGPT",
|
|
221
|
+
url: "https://datasciencedojo.com/blog/claude-vs-chatgpt/",
|
|
222
|
+
source: "Data Science Dojo",
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
type: "heading",
|
|
228
|
+
level: 2,
|
|
229
|
+
text: "Sequential Thinking & Agent Workflow",
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
type: "references",
|
|
233
|
+
items: [
|
|
234
|
+
{
|
|
235
|
+
title: "Sequential Thinking Claude Code MCP Server",
|
|
236
|
+
url: "https://mcp.so/server/sequential-thinking---claude-code/MattMagg",
|
|
237
|
+
source: "MCP.so",
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
title: "Prompt Engineering Guide for AI Agents (2025)",
|
|
241
|
+
url: "https://www.youtube.com/watch?v=DP_yKoHeWI8",
|
|
242
|
+
source: "YouTube",
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
title: "Prompt Engineering for AI Agents",
|
|
246
|
+
url: "https://www.prompthub.us/blog/prompt-engineering-for-ai-agents",
|
|
247
|
+
source: "PromptHub",
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
title: "Prompt Engineering in 2025: The Latest Best Practices",
|
|
251
|
+
url: "https://www.news.aakashg.com/p/prompt-engineering",
|
|
252
|
+
source: "News.AakashG",
|
|
253
|
+
},
|
|
254
|
+
],
|
|
255
|
+
},
|
|
256
|
+
],
|
|
257
|
+
},
|
|
258
|
+
// Core principles
|
|
259
|
+
{
|
|
260
|
+
id: "core-principles",
|
|
261
|
+
title: "Core AI Agent Development Principles",
|
|
262
|
+
version: "0.1.0",
|
|
263
|
+
lastUpdated: updated,
|
|
264
|
+
tags: ["principles", "guidelines", "hierarchy", "memory", "mermaid"],
|
|
265
|
+
segments: [
|
|
266
|
+
{ type: "heading", level: 2, text: "Structured Development Framework" },
|
|
267
|
+
{
|
|
268
|
+
type: "list",
|
|
269
|
+
items: [
|
|
270
|
+
"Use hierarchical prompting with clear priorities and constraints",
|
|
271
|
+
"Codify checklists into prompts to enforce consistency",
|
|
272
|
+
"Timebox delivery and model-eval cycles; anticipate 2–3 month model updates",
|
|
273
|
+
"Maintain code hygiene and holistic awareness before edits",
|
|
274
|
+
"Prefer text-first docs with Mermaid; prefer SVG over raster",
|
|
275
|
+
"Apply prompt caching for static prefixes; summarize long sessions",
|
|
276
|
+
"Two-mode workflow: Plan (analyze) then Action (execute) with safety checks",
|
|
277
|
+
"Iterate with tests, consistent naming, and robust error handling",
|
|
278
|
+
],
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
type: "references",
|
|
282
|
+
items: [
|
|
283
|
+
{
|
|
284
|
+
title: "Hierarchical Prompting for Better AI Interactions",
|
|
285
|
+
url: "https://relevanceai.com/prompt-engineering/master-hierarchical-prompting-for-better-ai-interactions",
|
|
286
|
+
source: "RelevanceAI",
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
title: "AI Prompt Engineering Best Practices",
|
|
290
|
+
url: "https://kanerika.com/blogs/ai-prompt-engineering-best-practices/",
|
|
291
|
+
source: "Kanerika",
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
title: "Complete Prompt Engineering Guide: 15 AI Techniques for 2025",
|
|
295
|
+
url: "https://www.dataunboxed.io/blog/the-complete-guide-to-prompt-engineering-15-essential-techniques-for-2025",
|
|
296
|
+
source: "DataUnboxed",
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
title: "Prompt Caching – Anthropic docs",
|
|
300
|
+
url: "https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching",
|
|
301
|
+
source: "Anthropic",
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
title: "Mermaid GitHub Repository",
|
|
305
|
+
url: "https://github.com/mermaid-js/mermaid",
|
|
306
|
+
source: "GitHub",
|
|
307
|
+
},
|
|
308
|
+
],
|
|
309
|
+
},
|
|
310
|
+
],
|
|
311
|
+
},
|
|
312
|
+
// Prompt templates
|
|
313
|
+
{
|
|
314
|
+
id: "prompt-templates",
|
|
315
|
+
title: "Hierarchical Prompt Templates",
|
|
316
|
+
version: "0.1.0",
|
|
317
|
+
lastUpdated: updated,
|
|
318
|
+
tags: ["templates", "prompting", "hierarchy"],
|
|
319
|
+
segments: [
|
|
320
|
+
{ type: "heading", level: 2, text: "Basic Hierarchical Structure" },
|
|
321
|
+
{
|
|
322
|
+
type: "code",
|
|
323
|
+
language: "text",
|
|
324
|
+
caption: "Template: General Task",
|
|
325
|
+
code: [
|
|
326
|
+
"# Context\n[Domain/background]",
|
|
327
|
+
"\n# Goal\n[Specific objectives]",
|
|
328
|
+
"\n# Requirements\n1. [Constraint 1]\n2. [Constraint 2]\n3. [Constraint 3]",
|
|
329
|
+
"\n# Output Format\n[Structure]",
|
|
330
|
+
"\n# Target Audience\n[Expertise level]",
|
|
331
|
+
"\n# Instructions\n[Execution steps]",
|
|
332
|
+
].join("\n"),
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
type: "code",
|
|
336
|
+
language: "text",
|
|
337
|
+
caption: "Template: Code Analysis",
|
|
338
|
+
code: [
|
|
339
|
+
"# Context\nAnalyzing code for [purpose]",
|
|
340
|
+
"\n# Goal\n[Analysis objective]",
|
|
341
|
+
"\n# Code Requirements\n- Language: [X]\n- Framework: [Y]\n- Focus: [performance|security|maintainability]",
|
|
342
|
+
"\n# Analysis Format\n- Issues (severity)\n- Recommendations (priority)\n- Examples",
|
|
343
|
+
"\n# Deliverable\nActionable next steps",
|
|
344
|
+
].join("\n"),
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
type: "code",
|
|
348
|
+
language: "text",
|
|
349
|
+
caption: "Template: Architecture Design",
|
|
350
|
+
code: [
|
|
351
|
+
"# Context\nDesigning [system] for [use case]",
|
|
352
|
+
"\n# Requirements\n## Functional\n1. ...\n## Non-Functional\n1. Performance\n2. Scalability\n3. Security",
|
|
353
|
+
"\n# Constraints\n- Tech stack\n- Budget\n- Timeline",
|
|
354
|
+
"\n# Output\n- Mermaid diagram\n- Components\n- Data flow\n- Recommendations",
|
|
355
|
+
].join("\n"),
|
|
356
|
+
},
|
|
357
|
+
],
|
|
358
|
+
},
|
|
359
|
+
// Development checklists
|
|
360
|
+
{
|
|
361
|
+
id: "development-checklists",
|
|
362
|
+
title: "Development Checklists",
|
|
363
|
+
version: "0.1.0",
|
|
364
|
+
lastUpdated: updated,
|
|
365
|
+
tags: ["checklists", "process", "qa"],
|
|
366
|
+
segments: [
|
|
367
|
+
{ type: "heading", level: 2, text: "Pre-Development" },
|
|
368
|
+
{
|
|
369
|
+
type: "list",
|
|
370
|
+
items: [
|
|
371
|
+
"Requirements documented; architecture reviewed",
|
|
372
|
+
"Env configured; repo initialized; CI planned",
|
|
373
|
+
"Roles assigned; communication channels set; Definition of Done",
|
|
374
|
+
],
|
|
375
|
+
},
|
|
376
|
+
{ type: "heading", level: 2, text: "Development" },
|
|
377
|
+
{
|
|
378
|
+
type: "list",
|
|
379
|
+
items: [
|
|
380
|
+
"Style guidelines; unit/integration tests; coverage targets",
|
|
381
|
+
"Security & performance checks; up-to-date docs",
|
|
382
|
+
"Prompt templates applied; context management; fallback paths",
|
|
383
|
+
],
|
|
384
|
+
},
|
|
385
|
+
{ type: "heading", level: 2, text: "Pre-Deployment" },
|
|
386
|
+
{
|
|
387
|
+
type: "list",
|
|
388
|
+
items: [
|
|
389
|
+
"Automated + manual + UAT passing",
|
|
390
|
+
"Perf & security testing; accessibility",
|
|
391
|
+
"Docs, deployment & troubleshooting guides current",
|
|
392
|
+
],
|
|
393
|
+
},
|
|
394
|
+
{ type: "heading", level: 2, text: "Post-Deployment" },
|
|
395
|
+
{
|
|
396
|
+
type: "list",
|
|
397
|
+
items: [
|
|
398
|
+
"Monitor metrics, errors, token use, model performance",
|
|
399
|
+
"Update deps & patches; pay down technical debt",
|
|
400
|
+
],
|
|
401
|
+
},
|
|
402
|
+
{ type: "heading", level: 2, text: "Sprint Retrospective" },
|
|
403
|
+
{
|
|
404
|
+
type: "list",
|
|
405
|
+
items: [
|
|
406
|
+
"Evaluate goals & velocity; identify blockers",
|
|
407
|
+
"Review code quality, architecture, security posture",
|
|
408
|
+
],
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
type: "references",
|
|
412
|
+
items: [
|
|
413
|
+
{
|
|
414
|
+
title: "Prompt Engineering Mastery: Advanced AI Techniques for 2025",
|
|
415
|
+
url: "https://www.clickforest.com/en/blog/prompt-engineering-chatgpt-advanced",
|
|
416
|
+
source: "ClickForest",
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
title: "How to Hire Prompt Engineers [Checklist + Rates 2025]",
|
|
420
|
+
url: "https://dextralabs.com/blog/hire-prompt-engineer-for-your-business/",
|
|
421
|
+
source: "Dextra Labs",
|
|
422
|
+
},
|
|
423
|
+
],
|
|
424
|
+
},
|
|
425
|
+
],
|
|
426
|
+
},
|
|
427
|
+
// Model selection
|
|
428
|
+
{
|
|
429
|
+
id: "model-selection",
|
|
430
|
+
title: "AI Model Selection Guide",
|
|
431
|
+
version: "0.1.0",
|
|
432
|
+
lastUpdated: updated,
|
|
433
|
+
tags: ["models", "selection", "evaluation"],
|
|
434
|
+
segments: [
|
|
435
|
+
{ type: "heading", level: 2, text: "Selection Matrix" },
|
|
436
|
+
{
|
|
437
|
+
type: "paragraph",
|
|
438
|
+
text: "Match models to tasks, budget, context size, speed, and safety. Prototype, benchmark, and verify pricing/caps with providers before production.",
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
type: "table",
|
|
442
|
+
headers: ["Model", "Provider", "Context", "Speed", "Best For"],
|
|
443
|
+
rows: [
|
|
444
|
+
[
|
|
445
|
+
"Claude 4 Sonnet",
|
|
446
|
+
"Anthropic",
|
|
447
|
+
"~200K",
|
|
448
|
+
"Fast",
|
|
449
|
+
"Balanced code/tasks",
|
|
450
|
+
],
|
|
451
|
+
["Claude 4 Opus", "Anthropic", "~200K", "Med", "Complex reasoning"],
|
|
452
|
+
["GPT-4o", "OpenAI", "~128K", "Fast", "Multimodal"],
|
|
453
|
+
["Gemini 2.5 Pro", "Google", "Up to 2M", "Med", "Large contexts"],
|
|
454
|
+
],
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
type: "references",
|
|
458
|
+
items: [
|
|
459
|
+
{
|
|
460
|
+
title: "OpenAI models",
|
|
461
|
+
url: "https://platform.openai.com/docs/models",
|
|
462
|
+
source: "OpenAI",
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
title: "Anthropic Claude models",
|
|
466
|
+
url: "https://docs.anthropic.com/en/docs/about-claude/models",
|
|
467
|
+
source: "Anthropic",
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
title: "Google Gemini models",
|
|
471
|
+
url: "https://ai.google.dev/gemini-api/docs/models",
|
|
472
|
+
source: "Google",
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
title: "GitHub Copilot model comparison",
|
|
476
|
+
url: "https://docs.github.com/en/copilot/reference/ai-models/model-comparison#recommended-models-by-task",
|
|
477
|
+
source: "GitHub",
|
|
478
|
+
},
|
|
479
|
+
],
|
|
480
|
+
},
|
|
481
|
+
],
|
|
482
|
+
},
|
|
483
|
+
// Architecture patterns
|
|
484
|
+
{
|
|
485
|
+
id: "architecture-patterns",
|
|
486
|
+
title: "AI Agent Architecture Patterns",
|
|
487
|
+
version: "0.1.0",
|
|
488
|
+
lastUpdated: updated,
|
|
489
|
+
tags: ["architecture", "patterns", "mermaid"],
|
|
490
|
+
segments: [
|
|
491
|
+
{ type: "heading", level: 2, text: "Layered Architecture" },
|
|
492
|
+
{
|
|
493
|
+
type: "code",
|
|
494
|
+
language: "mermaid",
|
|
495
|
+
caption: "Layered structure",
|
|
496
|
+
code: [
|
|
497
|
+
"flowchart TB",
|
|
498
|
+
"UI[Presentation] --> APP[Application] --> AI[AI Integration] --> DATA[Data Access]",
|
|
499
|
+
].join("\n"),
|
|
500
|
+
},
|
|
501
|
+
{ type: "heading", level: 2, text: "Microservices" },
|
|
502
|
+
{
|
|
503
|
+
type: "code",
|
|
504
|
+
language: "mermaid",
|
|
505
|
+
caption: "Service decomposition",
|
|
506
|
+
code: [
|
|
507
|
+
"flowchart LR",
|
|
508
|
+
"CHAT[Chat] --- GW[API Gateway] --- ANALYSIS[Analysis]",
|
|
509
|
+
"GW --- GEN[Generator]",
|
|
510
|
+
].join("\n"),
|
|
511
|
+
},
|
|
512
|
+
{ type: "heading", level: 2, text: "Event-Driven" },
|
|
513
|
+
{
|
|
514
|
+
type: "code",
|
|
515
|
+
language: "mermaid",
|
|
516
|
+
caption: "Producers/Consumers",
|
|
517
|
+
code: [
|
|
518
|
+
"flowchart LR",
|
|
519
|
+
"P[Producer] --> BUS[Event Bus] --> C[Consumer]",
|
|
520
|
+
].join("\n"),
|
|
521
|
+
},
|
|
522
|
+
],
|
|
523
|
+
},
|
|
524
|
+
// Rapid model evolution
|
|
525
|
+
{
|
|
526
|
+
id: "rapid-model-evolution",
|
|
527
|
+
title: "Rapid Model Evolution (Qualitative)",
|
|
528
|
+
version: "0.1.0",
|
|
529
|
+
lastUpdated: updated,
|
|
530
|
+
tags: ["models", "evolution", "cadence"],
|
|
531
|
+
segments: [
|
|
532
|
+
{ type: "heading", level: 2, text: "2–3 Month Release Cadence" },
|
|
533
|
+
{
|
|
534
|
+
type: "list",
|
|
535
|
+
items: [
|
|
536
|
+
"Abstract model behind flags; implement fallbacks",
|
|
537
|
+
"Run periodic evals on representative tasks",
|
|
538
|
+
"Track latency, accuracy, safety, and cost KPIs",
|
|
539
|
+
],
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
type: "references",
|
|
543
|
+
items: [
|
|
544
|
+
{
|
|
545
|
+
title: "GPT-4 Turbo vs Claude 2.1",
|
|
546
|
+
url: "https://www.akkio.com/post/gpt-4-turbo-vs-claude-2-1",
|
|
547
|
+
source: "Akkio",
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
title: "OpenAI GPT vs Claude vs Gemini",
|
|
551
|
+
url: "https://www.linkedin.com/pulse/ai-showdown-openais-gpt-family-vs-anthropics-claude-gemini-pallister-ilb5c",
|
|
552
|
+
source: "LinkedIn",
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
title: "Claude vs ChatGPT",
|
|
556
|
+
url: "https://datasciencedojo.com/blog/claude-vs-chatgpt/",
|
|
557
|
+
source: "Data Science Dojo",
|
|
558
|
+
},
|
|
559
|
+
],
|
|
560
|
+
},
|
|
561
|
+
],
|
|
562
|
+
},
|
|
563
|
+
// External references (curated)
|
|
564
|
+
{
|
|
565
|
+
id: "external-references",
|
|
566
|
+
title: "External References (2025)",
|
|
567
|
+
version: "0.1.0",
|
|
568
|
+
lastUpdated: updated,
|
|
569
|
+
tags: ["references", "urls", "grounding"],
|
|
570
|
+
segments: [
|
|
571
|
+
{ type: "heading", level: 2, text: "Core Development Principles" },
|
|
572
|
+
{
|
|
573
|
+
type: "references",
|
|
574
|
+
items: [
|
|
575
|
+
{
|
|
576
|
+
title: "Hierarchical Prompting for Better AI Interactions",
|
|
577
|
+
url: "https://relevanceai.com/prompt-engineering/master-hierarchical-prompting-for-better-ai-interactions",
|
|
578
|
+
source: "RelevanceAI",
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
title: "AI Prompt Engineering Best Practices",
|
|
582
|
+
url: "https://kanerika.com/blogs/ai-prompt-engineering-best-practices/",
|
|
583
|
+
source: "Kanerika",
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
title: "Complete Prompt Engineering Guide: 15 AI Techniques for 2025",
|
|
587
|
+
url: "https://www.dataunboxed.io/blog/the-complete-guide-to-prompt-engineering-15-essential-techniques-for-2025",
|
|
588
|
+
source: "DataUnboxed",
|
|
589
|
+
},
|
|
590
|
+
],
|
|
591
|
+
},
|
|
592
|
+
{ type: "heading", level: 2, text: "Timeframes & Sprint Planning" },
|
|
593
|
+
{
|
|
594
|
+
type: "references",
|
|
595
|
+
items: [
|
|
596
|
+
{
|
|
597
|
+
title: "The 7 Best AI-Assisted Sprint Planning Tools for Agile Teams in 2025",
|
|
598
|
+
url: "https://www.zenhub.com/blog-posts/the-7-best-ai-assisted-sprint-planning-tools-for-agile-teams-in-2025",
|
|
599
|
+
source: "ZenHub",
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
title: "AI in Software Project Delivery: Smarter Planning and Execution",
|
|
603
|
+
url: "https://www.nitorinfotech.com/blog/ai-in-software-project-delivery-smarter-planning-and-execution/",
|
|
604
|
+
source: "Nitor",
|
|
605
|
+
},
|
|
606
|
+
],
|
|
607
|
+
},
|
|
608
|
+
{ type: "heading", level: 2, text: "Comprehensive Checklists" },
|
|
609
|
+
{
|
|
610
|
+
type: "references",
|
|
611
|
+
items: [
|
|
612
|
+
{
|
|
613
|
+
title: "Prompt Engineering Mastery: Advanced AI Techniques for 2025",
|
|
614
|
+
url: "https://www.clickforest.com/en/blog/prompt-engineering-chatgpt-advanced",
|
|
615
|
+
source: "ClickForest",
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
title: "How to Hire Prompt Engineers [Checklist + Rates 2025]",
|
|
619
|
+
url: "https://dextralabs.com/blog/hire-prompt-engineer-for-your-business/",
|
|
620
|
+
source: "Dextra Labs",
|
|
621
|
+
},
|
|
622
|
+
],
|
|
623
|
+
},
|
|
624
|
+
{ type: "heading", level: 2, text: "Codebase Management" },
|
|
625
|
+
{
|
|
626
|
+
type: "references",
|
|
627
|
+
items: [
|
|
628
|
+
{
|
|
629
|
+
title: "Legacy Code Refactoring: Transform Your Codebase Safely",
|
|
630
|
+
url: "https://www.docuwriter.ai/posts/legacy-code-refactoring",
|
|
631
|
+
source: "DocuWriter",
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
title: "Strategies for Refactoring Legacy Code and Updating Outdated Software",
|
|
635
|
+
url: "https://refraction.dev/blog/refactoring-legacy-code-outdated-software",
|
|
636
|
+
source: "Refraction",
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
title: "Fundamentals and Practical Implications of Agentic AI",
|
|
640
|
+
url: "https://arxiv.org/html/2505.19443v1",
|
|
641
|
+
source: "arXiv",
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
title: "Refactoring Best Practices",
|
|
645
|
+
url: "https://graphite.dev/guides/refactoring-legacy-code-best-practices-techniques",
|
|
646
|
+
source: "Graphite",
|
|
647
|
+
},
|
|
648
|
+
],
|
|
649
|
+
},
|
|
650
|
+
{ type: "heading", level: 2, text: "Visualization & Documentation" },
|
|
651
|
+
{
|
|
652
|
+
type: "references",
|
|
653
|
+
items: [
|
|
654
|
+
{
|
|
655
|
+
title: "Mermaid.js: Transforming Documentation and Diagrams",
|
|
656
|
+
url: "https://dev.to/dminatto/mermaidjs-transforming-documentation-and-diagrams-with-markdown-like-syntax-1aeb",
|
|
657
|
+
source: "DEV",
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
title: "Kubernetes Diagram Guide",
|
|
661
|
+
url: "https://kubernetes.io/docs/contribute/style/diagram-guide/",
|
|
662
|
+
source: "Kubernetes",
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
title: "Mermaid.js: A Complete Guide",
|
|
666
|
+
url: "https://swimm.io/learn/mermaid-js/mermaid-js-a-complete-guide",
|
|
667
|
+
source: "Swimm",
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
title: "Mermaid GitHub Repository",
|
|
671
|
+
url: "https://github.com/mermaid-js/mermaid",
|
|
672
|
+
source: "GitHub",
|
|
673
|
+
},
|
|
674
|
+
],
|
|
675
|
+
},
|
|
676
|
+
{ type: "heading", level: 2, text: "Memory & Performance" },
|
|
677
|
+
{
|
|
678
|
+
type: "references",
|
|
679
|
+
items: [
|
|
680
|
+
{
|
|
681
|
+
title: "Prompt Caching with Claude",
|
|
682
|
+
url: "https://www.anthropic.com/news/prompt-caching",
|
|
683
|
+
source: "Anthropic News",
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
title: "Prompt Caching - Anthropic API Documentation",
|
|
687
|
+
url: "https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching",
|
|
688
|
+
source: "Anthropic Docs",
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
title: "Prompt Caching: Saving Time and Money in LLM Applications",
|
|
692
|
+
url: "https://caylent.com/blog/prompt-caching-saving-time-and-money-in-llm-applications",
|
|
693
|
+
source: "Caylent",
|
|
694
|
+
},
|
|
695
|
+
],
|
|
696
|
+
},
|
|
697
|
+
{ type: "heading", level: 2, text: "Sequential Thinking" },
|
|
698
|
+
{
|
|
699
|
+
type: "references",
|
|
700
|
+
items: [
|
|
701
|
+
{
|
|
702
|
+
title: "Sequential Thinking Claude Code MCP Server",
|
|
703
|
+
url: "https://mcp.so/server/sequential-thinking---claude-code/MattMagg",
|
|
704
|
+
source: "MCP.so",
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
title: "Prompt Engineering Guide for AI Agents (2025)",
|
|
708
|
+
url: "https://www.youtube.com/watch?v=DP_yKoHeWI8",
|
|
709
|
+
source: "YouTube",
|
|
710
|
+
},
|
|
711
|
+
],
|
|
712
|
+
},
|
|
713
|
+
{ type: "heading", level: 2, text: "Two-Mode Development & Safety" },
|
|
714
|
+
{
|
|
715
|
+
type: "references",
|
|
716
|
+
items: [
|
|
717
|
+
{
|
|
718
|
+
title: "Prompt Engineering for AI Agents",
|
|
719
|
+
url: "https://www.prompthub.us/blog/prompt-engineering-for-ai-agents",
|
|
720
|
+
source: "PromptHub",
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
title: "Prompt Engineering in 2025: The Latest Best Practices",
|
|
724
|
+
url: "https://www.news.aakashg.com/p/prompt-engineering",
|
|
725
|
+
source: "News.AakashG",
|
|
726
|
+
},
|
|
727
|
+
],
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
type: "note",
|
|
731
|
+
text: "External links change quickly; verify details with official docs at runtime.",
|
|
732
|
+
},
|
|
733
|
+
],
|
|
734
|
+
},
|
|
735
|
+
// Knowledge base (offline summaries only)
|
|
736
|
+
{
|
|
737
|
+
id: "knowledge-base",
|
|
738
|
+
title: "Internal Knowledge Base (Summarized)",
|
|
739
|
+
version: "0.1.0",
|
|
740
|
+
lastUpdated: updated,
|
|
741
|
+
tags: ["knowledge", "offline", "summaries"],
|
|
742
|
+
segments: [
|
|
743
|
+
{
|
|
744
|
+
type: "paragraph",
|
|
745
|
+
text: "Concise, offline summaries distilled from public sources to seed prompts. Use external references for live details and verify specifics at execution time.",
|
|
746
|
+
},
|
|
747
|
+
],
|
|
748
|
+
},
|
|
749
|
+
// MCP TypeScript SDK insights
|
|
750
|
+
{
|
|
751
|
+
id: "mcp-ts-insights",
|
|
752
|
+
title: "MCP TypeScript SDK: Resource & Tool Patterns (Concise)",
|
|
753
|
+
version: "0.1.0",
|
|
754
|
+
lastUpdated: updated,
|
|
755
|
+
tags: ["mcp", "sdk", "resources", "tools", "resource_link"],
|
|
756
|
+
segments: [
|
|
757
|
+
{ type: "heading", level: 2, text: "Responsibilities" },
|
|
758
|
+
{
|
|
759
|
+
type: "list",
|
|
760
|
+
items: [
|
|
761
|
+
"Resources: expose data (no significant computation/side effects)",
|
|
762
|
+
"Tools: perform computation and may have side effects",
|
|
763
|
+
"Prompts: reusable templates (optionally with arg completion)",
|
|
764
|
+
],
|
|
765
|
+
},
|
|
766
|
+
{ type: "heading", level: 2, text: "Dynamic ResourceTemplate" },
|
|
767
|
+
{
|
|
768
|
+
type: "code",
|
|
769
|
+
language: "typescript",
|
|
770
|
+
caption: "Dynamic resource with completion (simplified)",
|
|
771
|
+
code: [
|
|
772
|
+
"import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';",
|
|
773
|
+
"const server = new McpServer({ name: 'guide', version: '0.1.0' });",
|
|
774
|
+
"server.registerResource(",
|
|
775
|
+
" 'repo',",
|
|
776
|
+
" new ResourceTemplate('github://repos/{owner}/{repo}', {",
|
|
777
|
+
" list: undefined,",
|
|
778
|
+
" complete: {",
|
|
779
|
+
" repo: (value, ctx) => (ctx?.arguments?.owner === 'org1'",
|
|
780
|
+
" ? ['project1','project2'] : ['default-repo']).filter(r => r.startsWith(value))",
|
|
781
|
+
" }",
|
|
782
|
+
" }),",
|
|
783
|
+
" { title: 'GitHub Repository', description: 'Repository info' },",
|
|
784
|
+
" async (uri, { owner, repo }) => ({ contents: [{ uri: uri.href, text: owner + '/' + repo }] })",
|
|
785
|
+
");",
|
|
786
|
+
].join("\n"),
|
|
787
|
+
},
|
|
788
|
+
{ type: "heading", level: 2, text: "Tools returning ResourceLinks" },
|
|
789
|
+
{
|
|
790
|
+
type: "code",
|
|
791
|
+
language: "typescript",
|
|
792
|
+
caption: "Reference large files without embedding content",
|
|
793
|
+
code: [
|
|
794
|
+
"server.registerTool('list-files',",
|
|
795
|
+
" { title: 'List Files', inputSchema: { pattern: z.string() } },",
|
|
796
|
+
" async ({ pattern }) => ({",
|
|
797
|
+
" content: [",
|
|
798
|
+
" { type: 'text', text: 'Found: ' + pattern },",
|
|
799
|
+
" { type: 'resource_link', uri: 'file:///project/README.md', name: 'README.md', mimeType: 'text/markdown' }",
|
|
800
|
+
" ]",
|
|
801
|
+
" })",
|
|
802
|
+
");",
|
|
803
|
+
].join("\n"),
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
type: "references",
|
|
807
|
+
items: [
|
|
808
|
+
{
|
|
809
|
+
title: "MCP TypeScript SDK (README)",
|
|
810
|
+
url: "https://github.com/modelcontextprotocol/typescript-sdk",
|
|
811
|
+
source: "GitHub",
|
|
812
|
+
},
|
|
813
|
+
],
|
|
814
|
+
},
|
|
815
|
+
],
|
|
816
|
+
},
|
|
817
|
+
// MCP advanced functions
|
|
818
|
+
{
|
|
819
|
+
id: "mcp-advanced-functions",
|
|
820
|
+
title: "MCP Advanced Functions: Resources, Completions, and Notifications",
|
|
821
|
+
version: "0.1.0",
|
|
822
|
+
lastUpdated: updated,
|
|
823
|
+
tags: ["mcp", "advanced", "list_changed", "completions"],
|
|
824
|
+
segments: [
|
|
825
|
+
{ type: "heading", level: 2, text: "Lifecycle & Notifications" },
|
|
826
|
+
{
|
|
827
|
+
type: "paragraph",
|
|
828
|
+
text: "Servers emit resources.list_changed when resources/templates are added, updated, enabled/disabled, or removed. Debouncing can coalesce rapid changes.",
|
|
829
|
+
},
|
|
830
|
+
{ type: "heading", level: 2, text: "Argument Completions" },
|
|
831
|
+
{
|
|
832
|
+
type: "paragraph",
|
|
833
|
+
text: "Use ResourceTemplate.complete for context-aware suggestions of template variables to improve UX and discoverability.",
|
|
834
|
+
},
|
|
835
|
+
{ type: "heading", level: 2, text: "Best Practices" },
|
|
836
|
+
{
|
|
837
|
+
type: "list",
|
|
838
|
+
items: [
|
|
839
|
+
"Keep resources idempotent and fast; offload heavy compute to tools",
|
|
840
|
+
"Prefer resource_link from tools for large artifacts",
|
|
841
|
+
"Provide display names/metadata for better client UX",
|
|
842
|
+
],
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
type: "references",
|
|
846
|
+
items: [
|
|
847
|
+
{
|
|
848
|
+
title: "MCP TypeScript SDK (README)",
|
|
849
|
+
url: "https://github.com/modelcontextprotocol/typescript-sdk",
|
|
850
|
+
source: "GitHub",
|
|
851
|
+
},
|
|
852
|
+
],
|
|
853
|
+
},
|
|
854
|
+
],
|
|
855
|
+
},
|
|
856
|
+
];
|
|
857
|
+
//# sourceMappingURL=structured.js.map
|