nothumanallowed 13.5.88 → 13.5.90

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nothumanallowed",
3
- "version": "13.5.88",
3
+ "version": "13.5.90",
4
4
  "description": "NotHumanAllowed — 38 AI agents, 80 tools, Studio (visual agentic workflows). Email, calendar, browser automation, screen capture, canvas, cron/heartbeat, Alexandria E2E messaging, GitHub, Notion, Slack, voice chat, free AI (Liara), 28 languages. Zero-dependency CLI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -6556,6 +6556,8 @@ var _wcSyntaxResults = []; // [{file, ok, error}]
6556
6556
  var _wcSnapshots = []; // [{ts, fileCount}]
6557
6557
  var _wcLastFilePlan = []; // saved for manual repair trigger
6558
6558
  var _wcLastSysPreamble = '';
6559
+ var _wcTokIn = 0; // global token counters (accumulate across generation + repair)
6560
+ var _wcTokOut = 0;
6559
6561
  // Skills state
6560
6562
  var wcSkills = []; // [{name, content, type}] type: 'skill'|'memory'|'provider'
6561
6563
  var wcSkillModal = null; // null | {mode:'edit'|'new', idx:number|null, name, content, type, generating}
@@ -6646,12 +6648,12 @@ function renderWebCraft(el) {
6646
6648
 
6647
6649
  // Example prompts — clicking fills project name + description
6648
6650
  var wcExamples = [
6649
- {name:'MySaaS', desc:'SaaS landing page with hero section, pricing table (free/pro/enterprise), feature comparison grid, user registration (name, email, password), login, protected dashboard with sidebar navigation (overview, settings, billing), account settings page, and email verification flow.'},
6650
- {name:'MyShop', desc:'E-commerce site with homepage showcasing featured products, product catalog with filters (category, price range), product detail page with image gallery, shopping cart with quantity controls, checkout form with address and payment fields, user registration and login, order history page, and admin panel for product management.'},
6651
- {name:'MyBlog', desc:'Blog and CMS with homepage listing recent articles (title, excerpt, cover image, author, date), article detail page with markdown rendering, category and tag filtering, author profile page, admin panel for writing and publishing posts (rich text editor), user comments with moderation, and RSS feed endpoint.'},
6652
- {name:'MyPortfolio', desc:'Professional portfolio with animated hero section (name, role, call-to-action), projects showcase grid with lightbox modal, skills section with progress bars, about page with timeline, contact form with SMTP email sending, dark/light mode toggle, and smooth scroll navigation.'},
6653
- {name:'MyRestaurant', desc:'Restaurant website with hero with background video, menu page organized by category (starters, mains, desserts, drinks) with photos and prices, online booking form (date, time, party size, special requests) with email confirmation, about us page, gallery section, and contact page with embedded map.'},
6654
- {name:'MyJobBoard', desc:'Job board platform with homepage listing recent job postings (title, company, location, type), job detail page, company profile pages, candidate registration and login, job application form with resume upload, employer dashboard to post and manage listings, saved jobs for candidates, and job search with filters (location, type, salary range).'}
6651
+ {name:'MySaaS', desc:'SaaS product landing page. Hero: large headline, subheadline, two CTA buttons (Start free trial / Watch demo), animated gradient background. Features section: 3-column grid with icon, title, description for 6 features (real-time sync, team collaboration, analytics dashboard, API access, role-based permissions, 99.9% uptime SLA). Pricing section: 3 cards (Free: 1 user, 5 projects, community support; Pro $29/mo: 10 users, unlimited projects, priority support, API access; Enterprise: custom pricing, SSO, SLA, dedicated support) with highlighted recommended card. Testimonials: 3 customer quotes with avatar placeholder, name, company, star rating. FAQ accordion: 5 questions. Footer: links, social icons, copyright. Nav: logo, links (Features, Pricing, Docs, Blog), Login and Start Free CTA buttons. Sticky nav on scroll. Smooth scroll between sections.'},
6652
+ {name:'MyShop', desc:'E-commerce storefront homepage. Nav: logo, search bar (full-width on mobile), cart icon with item count badge, account icon, hamburger menu on mobile. Hero: full-width banner with promotional message, discount badge, Shop Now CTA. Category strip: 6 category cards with icon and label (Electronics, Clothing, Home, Sports, Books, Beauty). Featured products grid: 8 product cards each with product image placeholder, product name, star rating (1-5), review count, original price with strikethrough, sale price, Add to Cart button, wishlist heart icon. Promo banner: full-width colored banner with coupon code. Newsletter signup: email input with Subscribe button. Footer: 4-column layout (Company, Customer Service, Categories, Contact info). Fully responsive 2-col on tablet, 1-col on mobile.'},
6653
+ {name:'MyBlog', desc:'Blog and content platform homepage. Nav: logo, category links (Tech, Design, Business, Life), search icon, Subscribe CTA. Hero: large featured article card with cover image placeholder, category badge, title, excerpt (2 lines), author avatar, author name, date, read time, Read More link. Article grid: 6 cards in 3-column layout, each with cover image, category tag, title, excerpt, author, date. Sidebar (on desktop): Recent posts list (5 items with thumbnail, title, date), Popular tags cloud (10 tags as pill buttons), Newsletter signup widget (email + Subscribe). Pagination: numbered page links. Author bio section at bottom: avatar, name, bio paragraph, social links. Footer: minimal with links and copyright.'},
6654
+ {name:'MyPortfolio', desc:'Developer portfolio homepage. Nav: name/logo left, links right (Work, Skills, About, Contact), dark/light mode toggle button, nav hides on scroll down and shows on scroll up. Hero: centered layout, large name heading, animated typewriter role subtitle cycling through 3 roles (e.g. Full-Stack Developer / UI Engineer / Open Source Contributor), short bio paragraph, two CTA buttons (View my work / Download CV), animated floating code snippet decoration. Work section: 6 project cards in 2-column masonry-style grid, each with project screenshot placeholder, project name, tech stack tags (3-4 pills), description (2 lines), GitHub icon link and Live Demo link. Skills section: grouped by category (Frontend, Backend, Tools) with skill name and filled bar (percentage). About section: split layout, left photo placeholder, right: bio paragraph, timeline of 3 career milestones (year, title, company, description). Contact section: centered form (name, email, subject, message textarea, Send Message button), response time note. All sections with smooth scroll entrance animations using Intersection Observer.'},
6655
+ {name:'MyRestaurant', desc:'Restaurant website homepage. Nav: logo center, links left (Menu, Story, Reservations, Gallery, Contact), phone number right, fixed transparent becoming solid white on scroll. Hero: full-viewport background image placeholder with dark overlay, restaurant name in serif font, tagline, two buttons (Reserve a Table / View Menu). About strip: 3 horizontal icon+stat items (e.g. Est. 2010 / 50 Tables / 4.9 Stars). Menu preview section: tabbed navigation (Starters, Mains, Desserts, Drinks), each tab shows 6 menu items in 2-column grid with dish name, description (1 line), allergen icons, price. CTA reservation banner: colored background, heading, inline form (date picker, time select, party size select, name, phone, Book Now button). Gallery grid: 9 square image placeholders in 3x3 mosaic layout with hover zoom effect. Chef section: photo placeholder left, name, title, bio paragraph, signature right. Testimonials: horizontal scroll of 5 review cards (stars, quote, reviewer name, date). Footer: address, opening hours table (Mon-Sun), social links, Google Maps embed placeholder.'},
6656
+ {name:'MyJobBoard', desc:'Job board homepage. Nav: logo, links (Browse Jobs, Companies, Salary Guide, Blog), Post a Job CTA button (green), Sign In link. Hero: centered search widget (keyword input + location input + category select + Search Jobs button), popular searches as clickable tags below (e.g. React Developer, Data Analyst, UX Designer). Stats strip: 4 counters (Active Jobs, Companies Hiring, Candidates, Jobs Filled This Month). Featured jobs list: 8 job cards in vertical list, each with company logo placeholder, job title, company name, location (with icon), job type badge (Full-time/Remote/Contract), salary range, posted X days ago, bookmark icon, Quick Apply button. Filter sidebar (desktop): checkboxes for Job Type, Experience Level, Salary Range slider, Location radius, Remote only toggle. Top companies section: 6 company cards in 3-col grid with logo, name, industry, open positions count, View Jobs link. Category cards: 8 icons+labels for job categories. Newsletter: email input with Get Job Alerts button. Footer: 5-column layout (Job Seekers, Employers, Resources, Company, Social).'}
6655
6657
  ];
6656
6658
  var wcExHtml = '<div style="margin-bottom:12px;flex-shrink:0"><div style="font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px">'+t('wc_examples_label')+'</div><div style="display:flex;gap:6px;flex-wrap:wrap">' +
6657
6659
  wcExamples.map(function(ex,i){
@@ -6769,12 +6771,12 @@ function renderWebCraft(el) {
6769
6771
 
6770
6772
  function wcPickExample(i) {
6771
6773
  var wcExamplesData = [
6772
- {name:'MySaaS', desc:'SaaS landing page with hero section, pricing table (free/pro/enterprise), feature comparison grid, user registration (name, email, password), login, protected dashboard with sidebar navigation (overview, settings, billing), account settings page, and email verification flow.'},
6773
- {name:'MyShop', desc:'E-commerce site with homepage showcasing featured products, product catalog with filters (category, price range), product detail page with image gallery, shopping cart with quantity controls, checkout form with address and payment fields, user registration and login, order history page, and admin panel for product management.'},
6774
- {name:'MyBlog', desc:'Blog and CMS with homepage listing recent articles (title, excerpt, cover image, author, date), article detail page with markdown rendering, category and tag filtering, author profile page, admin panel for writing and publishing posts (rich text editor), user comments with moderation, and RSS feed endpoint.'},
6775
- {name:'MyPortfolio', desc:'Professional portfolio with animated hero section (name, role, call-to-action), projects showcase grid with lightbox modal, skills section with progress bars, about page with timeline, contact form with SMTP email sending, dark/light mode toggle, and smooth scroll navigation.'},
6776
- {name:'MyRestaurant', desc:'Restaurant website with hero with background video, menu page organized by category (starters, mains, desserts, drinks) with photos and prices, online booking form (date, time, party size, special requests) with email confirmation, about us page, gallery section, and contact page with embedded map.'},
6777
- {name:'MyJobBoard', desc:'Job board platform with homepage listing recent job postings (title, company, location, type), job detail page, company profile pages, candidate registration and login, job application form with resume upload, employer dashboard to post and manage listings, saved jobs for candidates, and job search with filters (location, type, salary range).'}
6774
+ {name:'MySaaS', desc:'SaaS product landing page. Hero: large headline, subheadline, two CTA buttons (Start free trial / Watch demo), animated gradient background. Features section: 3-column grid with icon, title, description for 6 features (real-time sync, team collaboration, analytics dashboard, API access, role-based permissions, 99.9% uptime SLA). Pricing section: 3 cards (Free: 1 user, 5 projects, community support; Pro $29/mo: 10 users, unlimited projects, priority support, API access; Enterprise: custom pricing, SSO, SLA, dedicated support) with highlighted recommended card. Testimonials: 3 customer quotes with avatar placeholder, name, company, star rating. FAQ accordion: 5 questions. Footer: links, social icons, copyright. Nav: logo, links (Features, Pricing, Docs, Blog), Login and Start Free CTA buttons. Sticky nav on scroll. Smooth scroll between sections.'},
6775
+ {name:'MyShop', desc:'E-commerce storefront homepage. Nav: logo, search bar (full-width on mobile), cart icon with item count badge, account icon, hamburger menu on mobile. Hero: full-width banner with promotional message, discount badge, Shop Now CTA. Category strip: 6 category cards with icon and label (Electronics, Clothing, Home, Sports, Books, Beauty). Featured products grid: 8 product cards each with product image placeholder, product name, star rating (1-5), review count, original price with strikethrough, sale price, Add to Cart button, wishlist heart icon. Promo banner: full-width colored banner with coupon code. Newsletter signup: email input with Subscribe button. Footer: 4-column layout (Company, Customer Service, Categories, Contact info). Fully responsive 2-col on tablet, 1-col on mobile.'},
6776
+ {name:'MyBlog', desc:'Blog and content platform homepage. Nav: logo, category links (Tech, Design, Business, Life), search icon, Subscribe CTA. Hero: large featured article card with cover image placeholder, category badge, title, excerpt (2 lines), author avatar, author name, date, read time, Read More link. Article grid: 6 cards in 3-column layout, each with cover image, category tag, title, excerpt, author, date. Sidebar (on desktop): Recent posts list (5 items with thumbnail, title, date), Popular tags cloud (10 tags as pill buttons), Newsletter signup widget (email + Subscribe). Pagination: numbered page links. Author bio section at bottom: avatar, name, bio paragraph, social links. Footer: minimal with links and copyright.'},
6777
+ {name:'MyPortfolio', desc:'Developer portfolio homepage. Nav: name/logo left, links right (Work, Skills, About, Contact), dark/light mode toggle button, nav hides on scroll down and shows on scroll up. Hero: centered layout, large name heading, animated typewriter role subtitle cycling through 3 roles (e.g. Full-Stack Developer / UI Engineer / Open Source Contributor), short bio paragraph, two CTA buttons (View my work / Download CV), animated floating code snippet decoration. Work section: 6 project cards in 2-column masonry-style grid, each with project screenshot placeholder, project name, tech stack tags (3-4 pills), description (2 lines), GitHub icon link and Live Demo link. Skills section: grouped by category (Frontend, Backend, Tools) with skill name and filled bar (percentage). About section: split layout, left photo placeholder, right: bio paragraph, timeline of 3 career milestones (year, title, company, description). Contact section: centered form (name, email, subject, message textarea, Send Message button), response time note. All sections with smooth scroll entrance animations using Intersection Observer.'},
6778
+ {name:'MyRestaurant', desc:'Restaurant website homepage. Nav: logo center, links left (Menu, Story, Reservations, Gallery, Contact), phone number right, fixed transparent becoming solid white on scroll. Hero: full-viewport background image placeholder with dark overlay, restaurant name in serif font, tagline, two buttons (Reserve a Table / View Menu). About strip: 3 horizontal icon+stat items (e.g. Est. 2010 / 50 Tables / 4.9 Stars). Menu preview section: tabbed navigation (Starters, Mains, Desserts, Drinks), each tab shows 6 menu items in 2-column grid with dish name, description (1 line), allergen icons, price. CTA reservation banner: colored background, heading, inline form (date picker, time select, party size select, name, phone, Book Now button). Gallery grid: 9 square image placeholders in 3x3 mosaic layout with hover zoom effect. Chef section: photo placeholder left, name, title, bio paragraph, signature right. Testimonials: horizontal scroll of 5 review cards (stars, quote, reviewer name, date). Footer: address, opening hours table (Mon-Sun), social links, Google Maps embed placeholder.'},
6779
+ {name:'MyJobBoard', desc:'Job board homepage. Nav: logo, links (Browse Jobs, Companies, Salary Guide, Blog), Post a Job CTA button (green), Sign In link. Hero: centered search widget (keyword input + location input + category select + Search Jobs button), popular searches as clickable tags below (e.g. React Developer, Data Analyst, UX Designer). Stats strip: 4 counters (Active Jobs, Companies Hiring, Candidates, Jobs Filled This Month). Featured jobs list: 8 job cards in vertical list, each with company logo placeholder, job title, company name, location (with icon), job type badge (Full-time/Remote/Contract), salary range, posted X days ago, bookmark icon, Quick Apply button. Filter sidebar (desktop): checkboxes for Job Type, Experience Level, Salary Range slider, Location radius, Remote only toggle. Top companies section: 6 company cards in 3-col grid with logo, name, industry, open positions count, View Jobs link. Category cards: 8 icons+labels for job categories. Newsletter: email input with Get Job Alerts button. Footer: 5-column layout (Job Seekers, Employers, Resources, Company, Social).'}
6778
6780
  ];
6779
6781
  var ex = wcExamplesData[i];
6780
6782
  if (!ex) return;
@@ -7936,7 +7938,7 @@ async function wcGenerate() {
7936
7938
  _wcLastSysPreamble = sysPreamble;
7937
7939
 
7938
7940
  var _wcGenStartTime = Date.now();
7939
- var _wcTokIn = 0, _wcTokOut = 0;
7941
+ _wcTokIn = 0; _wcTokOut = 0; // reset global counters for this generation run
7940
7942
  var _wcTimerInterval = null;
7941
7943
 
7942
7944
  function wcGenElapsed() {
@@ -8042,12 +8044,10 @@ async function wcGenerate() {
8042
8044
  }
8043
8045
 
8044
8046
  if (_wcTimerInterval) { clearInterval(_wcTimerInterval); _wcTimerInterval = null; }
8045
- var _wcGenTotalTime = Math.floor((Date.now() - _wcGenStartTime) / 1000);
8046
8047
 
8047
8048
  wcState.running = false;
8048
8049
  _wcGenAbortCtrl = null;
8049
8050
  _wcOverlayMinimized = false;
8050
- wcState.lastGenStats = { tokIn: _wcTokIn, tokOut: _wcTokOut, seconds: _wcGenTotalTime, files: wcState.generatedFiles.length };
8051
8051
 
8052
8052
  // Auto-save
8053
8053
  try {
@@ -8057,10 +8057,21 @@ async function wcGenerate() {
8057
8057
  });
8058
8058
  } catch(_) {}
8059
8059
 
8060
+ // Post-generation syntax scan — mark truncated/broken files before repair
8061
+ wcState.generatedFiles.forEach(function(f) {
8062
+ if (f._error || f._pending || !f.content) return;
8063
+ var chk = wcSyntaxCheck(f.content, f.lang || '');
8064
+ if (!chk.ok) f._syntaxError = chk.reason;
8065
+ });
8066
+
8060
8067
  renderWebCraft(document.getElementById('content'));
8061
8068
 
8062
8069
  // Auto-repair: run immediately after generation completes
8063
8070
  await wcAutoRepair(filePlan, sysPreamble);
8071
+
8072
+ // Update stats AFTER repair so token counts include repair calls
8073
+ wcState.lastGenStats = { tokIn: _wcTokIn, tokOut: _wcTokOut, seconds: Math.floor((Date.now() - _wcGenStartTime) / 1000), files: wcState.generatedFiles.length };
8074
+ renderWebCraft(document.getElementById('content'));
8064
8075
  }
8065
8076
 
8066
8077
  // ── Auto-repair pass — fixes _error and _syntaxError files ────────────────
@@ -8233,12 +8244,12 @@ async function wcCallLLMRaw(sys, user, signal) {
8233
8244
  var d = await r.json();
8234
8245
  // Accumulate token counts if the server returns usage data
8235
8246
  if (d && d.usage) {
8236
- if (typeof _wcTokIn !== 'undefined') _wcTokIn += (d.usage.prompt_tokens || d.usage.input_tokens || 0);
8237
- if (typeof _wcTokOut !== 'undefined') _wcTokOut += (d.usage.completion_tokens || d.usage.output_tokens || 0);
8247
+ _wcTokIn += (d.usage.prompt_tokens || d.usage.input_tokens || 0);
8248
+ _wcTokOut += (d.usage.completion_tokens || d.usage.output_tokens || 0);
8238
8249
  } else if (d && d.text) {
8239
8250
  // Estimate from char count (4 chars ≈ 1 token)
8240
- if (typeof _wcTokIn !== 'undefined') _wcTokIn += Math.round((sys.length + user.length) / 4);
8241
- if (typeof _wcTokOut !== 'undefined') _wcTokOut += Math.round((d.text || '').length / 4);
8251
+ _wcTokIn += Math.round((sys.length + user.length) / 4);
8252
+ _wcTokOut += Math.round((d.text || '').length / 4);
8242
8253
  }
8243
8254
  return (d && (d.text || d.content || d.result)) || '';
8244
8255
  }
@@ -8407,6 +8418,7 @@ async function wcStartSandbox() {
8407
8418
  wcState.sandbox = { running: true, port: null, dir: null, logs: [], error: null };
8408
8419
  wcState.rightTab = 'preview';
8409
8420
  wcRightTab = 'preview';
8421
+ _wcSkillsLoaded = false; // force skill panel reload after sandbox completes
8410
8422
  renderWebCraft(document.getElementById('content'));
8411
8423
 
8412
8424
  try {