@enfyra/mcp-server 0.0.33 → 0.0.35
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/package.json
CHANGED
package/src/lib/mcp-examples.js
CHANGED
|
@@ -553,7 +553,7 @@ create_extension({
|
|
|
553
553
|
name: "ReportsPage",
|
|
554
554
|
description: "Reports dashboard",
|
|
555
555
|
menuId: "<created-menu-id>",
|
|
556
|
-
code: "<template><section class=\\"min-h-full w-full
|
|
556
|
+
code: "<template><section class=\\"min-h-full w-full space-y-4\\">Reports</section></template><script setup>useHeaderActionRegistry({ id: 'refresh-reports', label: 'Refresh', icon: 'lucide:refresh-cw', onClick: () => {}, order: 0 })</script>",
|
|
557
557
|
isEnabled: true
|
|
558
558
|
})`,
|
|
559
559
|
notes: [
|
|
@@ -561,6 +561,7 @@ create_extension({
|
|
|
561
561
|
'Use menu_definition.label, not title.',
|
|
562
562
|
'For page extensions, create the menu first and pass menuId to create_extension.',
|
|
563
563
|
'Page extensions should be full-bleed by default and responsive from the first version.',
|
|
564
|
+
'The extension root is already inside eApp main; do not add root-level page padding.',
|
|
564
565
|
],
|
|
565
566
|
},
|
|
566
567
|
{
|
|
@@ -576,17 +577,21 @@ create_menu({
|
|
|
576
577
|
})
|
|
577
578
|
|
|
578
579
|
// Child page extensions should be focused:
|
|
579
|
-
// /dashboard
|
|
580
|
+
// /dashboard compact summary/routing hub: KPIs, current signal, attention queue, navigation cards
|
|
580
581
|
// /cloud/projects project status and drill-downs
|
|
581
|
-
// /cloud/provisioning provisioning
|
|
582
|
+
// /cloud/provisioning project/run grouped provisioning status, current step, meaning, next action
|
|
582
583
|
// /cloud/billing orders/subscriptions/refunds
|
|
583
584
|
// /cloud/infrastructure hosts/capacity/plans/system credential readiness
|
|
584
585
|
// /cloud/readiness legal/Paddle/landing launch checklist
|
|
585
|
-
// Use UTabs inside large pages instead of placing every section in one dashboard
|
|
586
|
+
// Use UTabs inside large pages instead of placing every section in one dashboard.
|
|
587
|
+
// For admin record management, link to /data/<table>, e.g. /data/landing_terms, not public landing paths.`,
|
|
586
588
|
notes: [
|
|
587
589
|
'Design the menu/page split before generating dashboard code.',
|
|
588
|
-
'Keep /dashboard as
|
|
590
|
+
'Keep /dashboard as a summary and distribution page, not a detailed operations table.',
|
|
591
|
+
'Use focused pages for operational domains.',
|
|
592
|
+
'Provisioning pages should not show raw history rows as the primary UI; group by project/run and translate step keys into operator-facing labels.',
|
|
589
593
|
'UTabs is available in eApp extension runtime for page-level sections.',
|
|
594
|
+
'Admin links for editing or inspecting records should point to /data/<table> routes.',
|
|
590
595
|
],
|
|
591
596
|
},
|
|
592
597
|
{
|
|
@@ -271,8 +271,10 @@ export function buildMcpServerInstructions(apiBaseUrl) {
|
|
|
271
271
|
'- **CRITICAL:** MUST call `create_record` or `update_record` on `extension_definition` — outputting Vue code in chat does NOT save it. User will NOT see it.',
|
|
272
272
|
'- **Code format:** Vue SFC only. Structure: `<template>...</template>` + `<script setup>...</script>`. Server auto-compiles; if compile fails, fix and retry.',
|
|
273
273
|
'- **NO import statements.** All APIs are injected globally (see full list below).',
|
|
274
|
-
'- **Design first for dashboards:** before creating/updating a dashboard extension, define the menu/page split, time range controls, tabs, and drill-down links. Keep `/dashboard` as
|
|
275
|
-
'- **
|
|
274
|
+
'- **Design first for dashboards:** before creating/updating a dashboard extension, define the menu/page split, time range controls, tabs, and drill-down links. Keep `/dashboard` as a compact summary and routing hub only: KPIs, current signal, attention queue, and navigation cards. Put detailed lists/tables/timelines into focused pages such as projects, provisioning, billing, infrastructure, and readiness.',
|
|
275
|
+
'- **Operational page modeling:** model admin operational pages around the operator mental entity, not raw database/event rows. For provisioning, group history by project/run, translate internal step keys into readable labels, show current step, operator meaning, and next action, and keep raw history as a secondary `/data` shortcut.',
|
|
276
|
+
'- **Page layout default:** page extensions should render full-bleed inside the app shell by default. The extension root is already inside the eApp page `<main>`, so do not add root-level page padding such as `p-4 sm:p-6 xl:p-8`; use spacing between internal sections only. Do not wrap the entire page in a centered card/container unless explicitly requested. Use responsive grids/stacks from the first version so the page works on desktop, tablet, and mobile.',
|
|
277
|
+
'- **Admin record links:** when an admin extension links to backend records for management or inspection, point to eApp data routes such as `/data/landing_terms`, `/data/cloud_projects`, or `/data/cloud_payment_orders`. Do not use public landing-page paths from record fields such as `/cloud-terms` unless the explicit intent is previewing the public website.',
|
|
276
278
|
'- **Do not downgrade extension code to ES5 to appease tooling.** eApp extension runtime should support normal browser/runtime APIs such as `Array.includes`, `Set`, `Promise.all`, `String.replace`, `Intl.DateTimeFormat`, and `Intl.NumberFormat`. If diagnostics reject these, fix eApp extension checker/runtime contract instead of rewriting generated extension code around the limitation.',
|
|
277
279
|
'',
|
|
278
280
|
'#### Injected Vue API functions:',
|