@orchyn/mcp 1.17.6 → 1.17.7

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.
@@ -11,7 +11,7 @@ import { OrchynError } from "./orchyn.js";
11
11
  import { formatPaywallError, runVideoAnalysis, validatePostUrl } from "./video.js";
12
12
  import { ORCHYN_UI_TEMPLATE } from "./ui-template.js";
13
13
  /** Current MCP server version — bumped on every deploy for traceability. */
14
- export const MCP_SERVER_VERSION = "1.17.6";
14
+ export const MCP_SERVER_VERSION = "1.17.7";
15
15
  /** MCP Apps extension identifier */
16
16
  const UI_EXTENSION = "io.modelcontextprotocol/ui";
17
17
  /** MIME type for MCP Apps HTML resources */
@@ -50,14 +50,18 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
50
50
 
51
51
  /* ─── Cards ─── */
52
52
  .gallery{display:flex;flex-wrap:wrap;gap:10px;}
53
- .card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;width:300px;background:var(--card);display:inline-block;vertical-align:top;box-shadow:var(--shadow-sm);transition:var(--transition);cursor:default;}
53
+ .card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;width:380px;background:var(--card);display:inline-block;vertical-align:top;box-shadow:var(--shadow-sm);transition:var(--transition);cursor:default;}
54
54
  .card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--muted);}
55
55
  .card-wide{width:100%;}
56
- .card img{width:100%;height:200px;object-fit:cover;display:block;transition:transform .3s ease;}
56
+ .card img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .3s ease;}
57
57
  .card:hover img{transform:scale(1.02);}
58
58
  .card-wide img{max-height:340px;}
59
- .card video{width:100%;display:block;background:#000;border:none;outline:none;}
60
- .card-wide video{max-height:500px;}
59
+ .card video{width:100%;min-height:220px;max-height:520px;display:block;background:#000;border:none;outline:none;object-fit:contain;}
60
+ .card-wide video{max-height:520px;}
61
+ .video-wrap{width:100%;background:#000;position:relative;overflow:hidden;}
62
+ .video-wrap.v{aspect-ratio:9/16;max-height:520px;}
63
+ .video-wrap.h{aspect-ratio:16/9;max-height:360px;}
64
+ .video-wrap.sq{aspect-ratio:1/1;max-height:440px;}
61
65
  .card-body{padding:14px 16px;}
62
66
 
63
67
  /* ─── Badges & Tags ─── */
@@ -347,13 +351,12 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
347
351
  else if(platform==="tiktok"||platform==="douyin")isVertical=true;
348
352
  else if(platform==="youtube"&&dur>0&&dur<=60)isVertical=true;
349
353
  else if(platform==="instagram")isVertical=true;
350
- var videoAR=isVertical?"56.25%":"";
351
- var videoMaxH=isVertical?(wide?"500px":"380px"):(wide?"340px":"250px");
352
- mediaHtml='<div class="video-wrap" style="width:100%;aspect-ratio:16/9;background:#000;position:relative;overflow:hidden">'
354
+ var arCls=isVertical?"v":"h";
355
+ var _vc="video-wrap "+arCls;
356
+ mediaHtml='<div class=""+_vc+"">'
353
357
  +'<video src="'+esc(video)+'" controls preload="metadata" playsinline '
354
358
  +'poster="'+esc(thumb)+'" '
355
- +'style="width:100%;height:100%;object-fit:contain;display:block;background:#000" '
356
- +'onloadedmetadata="onVideoLoaded(this)"'
359
+ +'style="width:100%;height:100%;object-fit:contain;display:block;background:#000">'
357
360
  +'Your browser does not support video playback.</video></div>';
358
361
  }else if(images.length>1){
359
362
  // Carousel / multi-image gallery — horizontally scrollable strip.
@@ -434,7 +437,7 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
434
437
  var vt=a.viralTriggers.slice(0,8).map(function(t){return'<span class="tag clickable" onclick="copyText(this.dataset.v)" data-v="'+esc(t)+'">🔥 '+esc(t)+"</span>";}).join("");
435
438
  sections+=section("Viral Triggers",vt);
436
439
  }
437
- if(a.suggestedHook)sections+=section("Suggested Hook",'<div class="quote-box">'+esc(a.suggestedHook)+'<button class="copy-btn" onclick="copyText(\\''+esc(a.suggestedHook).replace(/'/g,"\\\\'")+'\\')">Copy</button></div>',true);
440
+ if(a.suggestedHook)sections+=section("Suggested Hook",'<div class="quote-box">'+esc(a.suggestedHook)+'<button class="copy-btn" data-copy="'+esc(a.suggestedHook).replace(/"/g,'&quot;')+'">Copy</button></div>',true);
438
441
  if(a.suggestedHashtags&&a.suggestedHashtags.length){
439
442
  var sh=a.suggestedHashtags.slice(0,10).map(function(t){var clean=t.replace(/^#/,"");return'<span class="tag clickable" onclick="copyText(this.dataset.v)" data-v="#'+esc(clean)+'" style="background:#ede9fe;color:#6d28d9">#'+esc(clean)+"</span>";}).join("");
440
443
  sections+=section("Hashtags",sh);
@@ -562,6 +565,10 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
562
565
 
563
566
  // Global helpers
564
567
  window.copyText=copyText;
568
+ document.addEventListener('click',function(e){
569
+ var btn=e.target.closest('.copy-btn[data-copy]');
570
+ if(btn)copyText(btn.getAttribute('data-copy'));
571
+ });
565
572
  window.toggleSection=function(header){
566
573
  header.classList.toggle("open");
567
574
  var content=header.nextElementSibling;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchyn/mcp",
3
- "version": "1.17.6",
3
+ "version": "1.17.7",
4
4
  "description": "MCP server for orchyn - fetch, discover and understand TikTok/Instagram/YouTube/X/LinkedIn posts with AI (media metadata, niche discovery, hook & viral analysis)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",