@kashi-ui/mcp 1.0.0 → 1.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @kashi-ui/mcp
2
2
 
3
- سرور [MCP](https://modelcontextprotocol.io) کاشی: Claude، Cursor، Copilot و دیگر دستیارهای هوش مصنوعی را مستقیم به مستندات کامپوننت‌ها، ۴۵۰۰ آیکون، توکن‌ها و ابزارهای فارسی [کاشی](https://kashi.sepantapouya.com) وصل می‌کند تا کد را از روی prop های واقعی بنویسند، نه از روی حدس.
3
+ سرور [MCP](https://modelcontextprotocol.io) کاشی: Claude، Cursor، Copilot و دیگر دستیارهای هوش مصنوعی را مستقیم به مستندات کامپوننت‌ها، ۴۵۱۰ آیکون، توکن‌ها و ابزارهای فارسی [کاشی](https://kashi.sepantapouya.com) وصل می‌کند تا کد را از روی prop های واقعی بنویسند، نه از روی حدس.
4
4
 
5
5
  راهنمای کامل: [kashi.sepantapouya.com/docs/ai](https://kashi.sepantapouya.com/docs/ai/)
6
6
 
@@ -31,7 +31,7 @@ VS Code (`.vscode/mcp.json`):
31
31
  | `kashi_get_docs` | مستندات کامل یک کامپوننت: prop ها، نمونهٔ React و HTML، متغیرهای CSS و دسترس‌پذیری |
32
32
  | `kashi_search_docs` | جستجوی فارسی و انگلیسی در مستندات |
33
33
  | `kashi_list_docs` | فهرست همهٔ صفحه‌ها |
34
- | `kashi_search_icons` | جستجو بین ۴۵۰۰ آیکون |
34
+ | `kashi_search_icons` | جستجو بین ۴۵۱۰ آیکون |
35
35
  | `kashi_get_icon` | کد React یا SVG یک آیکون در هر شش سبک |
36
36
  | `kashi_get_tokens` | توکن‌های طراحی و متغیرهای تم |
37
37
  | `kashi_create_theme` | CSS تم برند از یک رنگ |
@@ -152,8 +152,17 @@ export function elementMarkdown(doc) {
152
152
  return out.join("\n");
153
153
  }
154
154
 
155
+ /** بخش «راهنمای استفاده» یک صفحه از روی apps/docs/src/data/guidelines.ts؛ همان چیزی که سایت نشان می‌دهد */
156
+ export function guidelineMarkdown(g) {
157
+ const out = ["## راهنمای استفاده", "", "کِی استفاده کنیم:", "", ...g.use.map((u) => `- ${u}`), "", "کِی استفاده نکنیم:", ""];
158
+ out.push(...g.avoid.map(([t, href, label]) => `- ${t}${href ? ` (${label ?? "جایگزین"}: ${href})` : ""}`), "", "درست و نادرست:", "");
159
+ for (const p of g.pairs) out.push(`- ✓ درست: ${p.do.text}`, `- ✗ نادرست: ${p.dont.text}`);
160
+ if (g.writing?.length) out.push("", "متن:", "", ...g.writing.map((w) => `- ${w}`));
161
+ return out.join("\n");
162
+ }
163
+
155
164
  /** همهٔ صفحه‌های MDX یک پوشه با عنوان و گروه از فهرست ناوبری سایت؛ elements بخش وب کامپوننت هر صفحه را اضافه می‌کند */
156
- export function collectDocs(root, nav, site = "https://kashi.sepantapouya.com", elements = {}) {
165
+ export function collectDocs(root, nav, site = "https://kashi.sepantapouya.com", elements = {}, guidelines = {}) {
157
166
  const groupOf = {};
158
167
  for (const g of nav) for (const item of g.items) groupOf[item.href] = { group: g.title, title: item.title };
159
168
  return globSync(`${root}/**/*.mdx`).sort().map((file) => {
@@ -164,7 +173,8 @@ export function collectDocs(root, nav, site = "https://kashi.sepantapouya.com",
164
173
  // راهنماها هم نمونه‌کد دارند (Button در صفحهٔ نصب)؛ فقط صفحه‌های کامپوننت کامپوننت معرفی می‌کنند
165
174
  const components = /^(components|persian)\//.test(rel) ? d.components : [];
166
175
  const el = elements[href];
167
- const markdown = el ? `${d.markdown}\n\n${elementMarkdown(el)}` : d.markdown;
176
+ const g = guidelines[href];
177
+ const markdown = [d.markdown, g && guidelineMarkdown(g), el && elementMarkdown(el)].filter(Boolean).join("\n\n");
168
178
  return { slug: rel || "intro", url: site + href, title: d.title || (n && n.title) || rel, description: d.description, group: n ? n.group : "", components, markdown };
169
179
  });
170
180
  }