@seldonframe/mcp 1.1.8 → 1.3.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.
Files changed (2) hide show
  1. package/package.json +3 -2
  2. package/src/welcome.js +1 -1
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@seldonframe/mcp",
3
- "version": "1.1.8",
4
- "description": "MCP server for SeldonFrame — AI-native Business OS platform. ⚠️ BACKEND REDEPLOY REQUIRED bumping the npm MCP package alone does not deploy server-side fixes. The Next.js backend at app.seldonframe.com must be redeployed from the v1.1.8 branch for landing-page rendering / Resend / personality fixes to actually take effect. v1.1.8 builds on v1.1.7's SAAS_PACK rewrite + medspa personality + Resend hardening with two more defense layers: (1) CTA button labels now flow from personality.content_templates.cta_button_primary / .cta_button_secondary so a fresh medspa workspace ships 'Book your consultation →' on the hero (not the SAAS_PACK's generic 'Get started →'). Pack-defined PageAction labels get rewritten in seedLandingFromSoul's applyResolvedContentToActions step. (2) pickFromAddress hardened: any RESEND_FROM_ADDRESS env value not on a verified seldonframe.com domain is now rejected with a console.warn and falls back to welcome@seldonframe.com. Guards against env drift on staging/preview deployments. v1.1.7 recap: SAAS_PACK neutralized (was hardcoding 'Replace 5 Tools. 75 MCP Tools. Brain Layer.' SeldonFrame copy on every operator workspace); classifier no longer matches bare 'platform'/'api'/'library'; hero dashboard mockup removed; medspa personality added (keywords, pipeline, 30 min Complimentary Consultation booking, gold accent #c9a96e).",
3
+ "version": "1.3.0",
4
+ "description": "MCP server for SeldonFrame — AI-native Business OS platform. v1.3.0: LLM-generated personalities (the real Karpathy move). Hardcoding 7 personalities + a 'general' fallback (v1.2.0) doesn't scale to the long tail pet grooming, photography, accounting, tutoring, and a hundred other niches will each fall into 'general' and produce mediocre output. v1.3.0: model GENERATES the personality, validator GATES the quality, cache SCALES the cost. Three-layer resolve: (1) cache: SELECT from new personality_cache table by stable business_type_key derived from services+description (e.g. 'roofing', 'pet-grooming', 'wedding-photography'). Hit → return cached schema, increment usage_count, zero LLM cost. (2) LLM: Claude generates a custom CRMPersonality for THIS specific business via a few-shot prompt with 4 hardcoded personalities as examples. Output validated by checkPersonalityCompleteness (intake.title, ≥3 FAQs, exactly 4 trust badges, ≥4 pipeline stages, etc.). Retry once on validation fail with errors appended to prompt. On success, INSERT into cache (ON CONFLICT DO NOTHING handles parallel-create races). (3) Fallback: existing keyword-based selectCRMPersonality if LLM unavailable / fails twice. Hardcoded personalities (general, hvac, dental, legal, agency, coaching, medspa) become SEED CACHE rows + few-shot examples they're the warm starting point, not the final system. Cost model: ~$0.01 first workspace per niche; subsequent workspaces $0. Quality model: every cached schema passed completeness check. Anti-fragile: gets better as Claude gets better, no code changes. New observability: workspace_created_full event tags personality_source (cache/llm/fallback) + personality_cache_key for cache-hit-ratio analytics. ⚠️ BACKEND REDEPLOY REQUIRED + run migration 0035_personality_cache.sql.",
5
+ "description": "MCP server for SeldonFrame — AI-native Business OS platform. v1.2.0: complete the default personality + add CTA defense layers. The Ironclad Roofing demo exposed the gap that v1.1.9 didn't catch: roofing fell through to coaching personality, both CTAs went to /intake, all 6 service cards collapsed to wrench, no hero image. Root cause: DEFAULT_PERSONALITY was COACHING (with coaching pipeline + 'Discovery call' CTAs); BUSINESS_TYPE_FALLBACK rerouted local_service+professional_service to coaching; trade keywords (roof/storm/gutter/siding/window/deck/etc) weren't in the icon RULES; and the v1.1.9 CTA hardcoding only ran in the soul-driven path, not in the template-load path. (1) NEW general personality — industry-neutral (Customer/Job/Activity, 'New Lead → Quoted → Approved → Scheduled → In Progress → Completed' pipeline, 'Book a free quote →' CTA, steel-blue accent #0e7490). Has its own content_templates, intake.title, image bundle. Made the new DEFAULT_PERSONALITY. BUSINESS_TYPE_FALLBACK rerouted local_service+professional_service from coaching → general. (2) +13 trade icons (cloud_lightning, columns, search, app_window, square_stack, hammer, paintbrush, layers, fence, blocks, thermometer, square, ruler) +20 keyword RULES (storm damage→cloud_lightning, tarping→shield, roof/shingle→home, gutter→droplets, siding→columns, deck→square_stack, renovation→hammer, etc.) ordered specific-first so 'roof repair' hits home before generic 'repair'→wrench. (3) CTA HARDCODING DEFENSE-IN-DEPTH — now applied at FOUR layers: (a) skills/templates/general.json + hvac.json fixed at source, (b) buildBlueprintForWorkspace normalizes hero/mid-cta CTAs immediately after pickTemplate, (c) seedLandingFromSoul applyResolvedContentToActions overrides at schema level (v1.1.9), (d) personality content_templates carry the labels. Even if one layer misses, the next catches. (4) +9 trade keywords in BusinessType classifier (roof, storm damage, gutter, siding, fencing, decking, drywall, stucco, masonry) so trade workspaces classify as local_service instead of professional_service. ⚠️ BACKEND REDEPLOY REQUIRED — npm package is just tool definitions.",
5
6
  "type": "module",
6
7
  "bin": {
7
8
  "seldonframe-mcp": "src/index.js"
package/src/welcome.js CHANGED
@@ -8,7 +8,7 @@
8
8
  // stripped. `create_full_workspace` is the only workspace-creation
9
9
  // path mentioned anywhere in this briefing.
10
10
 
11
- export const VERSION = "1.1.8";
11
+ export const VERSION = "1.3.0";
12
12
 
13
13
  export const WELCOME_MARKDOWN = `# SeldonFrame — create a real Business OS in one conversation
14
14