אימון עסקי
/* All styles scoped to .jawsc-page to avoid theme conflicts */ .jawsc-page { direction: rtl; font-family: 'Heebo', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #0f2744; background: #faf8f5; line-height: 1.6; max-width: 100%; overflow-x: hidden; } .jawsc-page * { box-sizing: border-box; } .jawsc-page .jawsc-container { max-width: 1100px; margin: 0 auto; padding: 0 24px; } .jawsc-page a { color: #1a5276; text-decoration: underline; text-underline-offset: 3px; } .jawsc-page a:hover { color: #c9a227; } .jawsc-page section { scroll-margin-top: 80px; } /* HERO */ .jawsc-hero { background: linear-gradient(135deg, #0f2744 0%, #14304f 100%); color: #ffffff; padding: 88px 0 96px; position: relative; overflow: hidden; } .jawsc-hero::before { content: ''; position: absolute; top: 0; right: 0; width: 4px; height: 100%; background: #c9a227; } .jawsc-hero-pre { color: #c9a227; font-size: 14px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 16px; } .jawsc-hero h1 { font-size: clamp(40px, 6vw, 64px); font-weight: 900; line-height: 1.1; margin: 0 0 20px; color: #ffffff; letter-spacing: -1px; } .jawsc-hero p.jawsc-sub { font-size: clamp(17px, 2vw, 20px); max-width: 720px; color: rgba(255,255,255,0.85); margin: 0 0 36px; font-weight: 400; } .jawsc-hero p.jawsc-sub a { color: #c9a227; text-decoration: underline; } .jawsc-hero p.jawsc-sub a:hover { color: #d4af37; } .jawsc-cta-row { display: flex; gap: 12px; flex-wrap: wrap; } .jawsc-btn { display: inline-block; padding: 16px 32px; border-radius: 6px; font-weight: 700; font-size: 16px; text-decoration: none; transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s ease; border: 2px solid transparent; text-align: center; } .jawsc-btn-primary { background: #c9a227; color: #0f2744; } .jawsc-btn-primary:hover { background: #d9b637; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(201,162,39,0.3); } .jawsc-btn-secondary { background: transparent; color: #ffffff; border-color: rgba(255,255,255,0.4); } .jawsc-btn-secondary:hover { background: rgba(255,255,255,0.1); border-color: #ffffff; } .jawsc-hero-fineprint { margin-top: 28px; color: rgba(255,255,255,0.55); font-size: 14px; } /* ANCHOR NAV STRIP */ .jawsc-anchor-nav { background: #ffffff; border-bottom: 1px solid #e8e3d8; padding: 14px 0; position: sticky; top: 0; z-index: 50; box-shadow: 0 2px 8px rgba(15,39,68,0.04); } .jawsc-anchor-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 4px; justify-content: center; } .jawsc-anchor-nav a { color: #0f2744; text-decoration: none; font-size: 14px; font-weight: 600; padding: 8px 14px; border-radius: 4px; transition: background 0.15s, color 0.15s; } .jawsc-anchor-nav a:hover { background: #0f2744; color: #c9a227; } .jawsc-anchor-nav li:not(:last-child)::after { content: '·'; color: #c9a227; margin-inline-start: 4px; font-weight: 700; } /* LIS — workshop-summary (right under H1 area, second view) */ .jawsc-summary-wrap { background: #ffffff; border-bottom: 1px solid #e8e3d8; } .workshop-summary { padding: 32px 0; font-size: 17px; color: #0f2744; line-height: 1.7; max-width: 920px; margin: 0 auto; } .workshop-summary strong { color: #c9a227; } /* SECTION DEFAULT */ .jawsc-section { padding: 80px 0; } .jawsc-section h2 { font-size: clamp(28px, 4vw, 38px); font-weight: 800; color: #0f2744; margin: 0 0 12px; line-height: 1.2; } .jawsc-section h3 { font-size: 19px; font-weight: 700; color: #0f2744; margin: 24px 0 12px; } .jawsc-section .jawsc-section-pre { color: #c9a227; font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; } .jawsc-section p.jawsc-lead { font-size: 17px; color: #4a5a72; max-width: 820px; margin: 0 0 32px; } .jawsc-section p.jawsc-body { font-size: 16px; color: #4a5a72; max-width: 820px; margin: 0 0 16px; } /* LIS — KEY FACTS GRID */ .key-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #e8e3d8; border: 1px solid #e8e3d8; border-radius: 8px; overflow: hidden; margin: 32px 0; } .key-facts > div { background: #ffffff; padding: 20px 18px; } .key-facts dt { font-size: 12px; color: #c9a227; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 6px; } .key-facts dd { margin: 0; font-size: 16px; color: #0f2744; font-weight: 600; line-height: 1.4; } /* WHAT IT IS — 3-column grid */ .jawsc-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid #e8e3d8; border-bottom: 1px solid #e8e3d8; } .jawsc-feature { padding: 36px 28px; border-inline-start: 1px solid #e8e3d8; } .jawsc-feature:first-child { border-inline-start: none; } .jawsc-feature-num { color: #c9a227; font-size: 32px; font-weight: 900; margin-bottom: 12px; } .jawsc-feature h3 { font-size: 19px; font-weight: 700; color: #0f2744; margin: 0 0 8px; } .jawsc-feature p { color: #4a5a72; font-size: 15px; margin: 0; } .jawsc-feature a { color: #1a5276; } /* DISCLAIMER */ .jawsc-disclaimer-wrap { background: #ffffff; border-block: 1px solid #e8e3d8; } .jawsc-disclaimer { padding: 56px 32px; border-inline-start: 4px solid #c9a227; background: #faf8f5; } .jawsc-disclaimer h2 { font-size: 24px; margin: 0 0 16px; } .jawsc-disclaimer p { color: #4a5a72; font-size: 16px; margin: 0 0 12px; max-width: 820px; } .jawsc-disclaimer p:last-child { margin-bottom: 0; } /* STEPS */ .jawsc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; counter-reset: step; } .jawsc-step { background: #ffffff; padding: 32px 24px; border-radius: 8px; border: 1px solid #e8e3d8; position: relative; } .jawsc-step-num { position: absolute; top: -20px; inset-inline-end: 24px; width: 40px; height: 40px; background: #0f2744; color: #c9a227; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 18px; } .jawsc-step h3 { font-size: 18px; font-weight: 700; color: #0f2744; margin: 0 0 8px; } .jawsc-step p { color: #4a5a72; font-size: 15px; margin: 0; } /* AUDIENCE */ .jawsc-audience-wrap { background: #0f2744; color: #ffffff; } .jawsc-audience-wrap h2 { color: #ffffff; } .jawsc-audience-wrap p { color: rgba(255,255,255,0.85); } .jawsc-audience-wrap .jawsc-section-pre { color: #c9a227; } .jawsc-audience-wrap a { color: #c9a227; } .jawsc-audience-wrap a:hover { color: #d4af37; } .jawsc-checklist { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 32px; } .jawsc-checklist li { position: relative; padding-inline-start: 32px; font-size: 16px; color: rgba(255,255,255,0.9); } .jawsc-checklist li::before { content: ''; position: absolute; inset-inline-start: 0; top: 9px; width: 14px; height: 8px; border-inline-start: 3px solid #c9a227; border-bottom: 3px solid #c9a227; transform: rotate(-45deg); } /* FAQ */ .jawsc-faq-wrap { background: #ffffff; } .jawsc-faq details { border-bottom: 1px solid #e8e3d8; padding: 20px 0; } .jawsc-faq details:first-of-type { border-top: 1px solid #e8e3d8; } .jawsc-faq summary { cursor: pointer; font-size: 17px; font-weight: 700; color: #0f2744; list-style: none; position: relative; padding-inline-end: 32px; } .jawsc-faq summary::-webkit-details-marker { display: none; } .jawsc-faq summary::after { content: '+'; position: absolute; inset-inline-end: 0; top: -2px; color: #c9a227; font-size: 24px; font-weight: 700; transition: transform 0.2s; } .jawsc-faq details[open] summary::after { content: '−'; } .jawsc-faq details > p { margin: 12px 0 0; color: #4a5a72; font-size: 16px; line-height: 1.7; } .jawsc-faq details > p a { color: #1a5276; } /* CLOSING CTA */ .jawsc-closing { padding: 80px 0; text-align: center; background: #faf8f5; } .jawsc-closing h2 { font-size: clamp(28px, 4vw, 36px); margin: 0 0 16px; color: #0f2744; } .jawsc-closing p { color: #4a5a72; font-size: 17px; max-width: 640px; margin: 0 auto 36px; } .jawsc-closing-ctas { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; } .jawsc-closing-ctas .jawsc-btn-secondary { color: #0f2744; border-color: #0f2744; } .jawsc-closing-ctas .jawsc-btn-secondary:hover { background: #0f2744; color: #ffffff; } /* EMBEDDED CHAT SECTION */ .jawsc-embed-section { background: linear-gradient(180deg, #faf8f5 0%, #ffffff 100%); padding-top: 64px; padding-bottom: 96px; position: relative; } .jawsc-embed-section::before { content: ''; position: absolute; top: 0; right: 50%; transform: translateX(50%); width: 80px; height: 4px; background: #c9a227; } .jawsc-embed-host { min-height: 620px; display: flex; justify-content: center; padding: 8px; background: #f4f0e8; border-radius: 20px; box-shadow: 0 1px 3px rgba(15,39,68,0.05), 0 20px 60px -10px rgba(15,39,68,0.18); } @media (max-width: 900px) { .jawsc-embed-section { padding-bottom: 56px; } .jawsc-embed-host { min-height: 540px; padding: 4px; border-radius: 12px; } } /* ═══════════════════════════════════════════════════════════════════ JAWS EMBED CHAT — chat shell inside #jawsCoachEmbed v3.0.4-aligned (coach/he). All selectors scoped to .jawsc-page to prevent collision with the English page's .jaws-embed rules if both pages live on the same domain in the same DOM cache. ═══════════════════════════════════════════════════════════════════ */ .jawsc-page .jaws-embed { background: #ffffff; border-radius: 16px; box-shadow: 0 1px 3px rgba(15,39,68,0.06), 0 12px 32px -8px rgba(15,39,68,0.18); border: 1px solid #e8e3d8; overflow: hidden; display: flex; flex-direction: column; height: 620px; max-height: 80vh; width: 100%; max-width: 900px; } .jawsc-page .jaws-embed-header { background: #0f2744; color: #ffffff; padding: 18px 22px; display: flex; align-items: center; gap: 14px; border-bottom: 3px solid #c9a227; flex-shrink: 0; } .jawsc-page .jaws-embed-avatar { width: 44px; height: 44px; border-radius: 50%; background: #c9a227; color: #0f2744; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; flex-shrink: 0; } .jawsc-page .jaws-embed-titlewrap { flex: 1; min-width: 0; } .jawsc-page .jaws-embed-titlewrap strong { font-size: 16px; font-weight: 700; display: block; color: #ffffff; } .jawsc-page .jaws-embed-titlewrap span { font-size: 12px; color: rgba(255,255,255,0.7); display: flex; align-items: center; gap: 6px; margin-top: 2px; } .jawsc-page .jaws-embed-titlewrap span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 3px rgba(74,222,128,0.2); } .jawsc-page .jaws-embed-messages { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 12px; background: #faf8f5; } .jawsc-page .jaws-embed-msg { max-width: 80%; padding: 12px 16px; border-radius: 14px; font-size: 15px; line-height: 1.55; word-wrap: break-word; white-space: pre-wrap; } /* In RTL: flex-start = right (user side), flex-end = left (bot side) */ .jawsc-page .jaws-embed-user { background: #0f2744; color: #ffffff; align-self: flex-start; border-bottom-right-radius: 4px; } .jawsc-page .jaws-embed-bot { background: #ffffff; color: #0f2744; align-self: flex-end; border: 1px solid #e8e3d8; border-bottom-left-radius: 4px; box-shadow: 0 1px 3px rgba(15,39,68,0.05); } .jawsc-page .jaws-embed-bot a { color: #c9a227; text-decoration: underline; word-break: break-all; } .jawsc-page .jaws-embed-bot a:hover { color: #a8841a; } .jawsc-page .jaws-embed-lead-badge { display: inline-block; margin-top: 8px; padding: 4px 12px; background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; border-radius: 999px; font-size: 12px; font-weight: 500; } .jawsc-page .jaws-embed-typing { background: #ffffff; align-self: flex-end; border: 1px solid #e8e3d8; border-radius: 14px; border-bottom-left-radius: 4px; padding: 14px 16px; display: inline-flex; gap: 5px; } .jawsc-page .jaws-embed-typing span { width: 7px; height: 7px; border-radius: 50%; background: #c9a227; animation: jawsc-bounce 1.2s infinite; } .jawsc-page .jaws-embed-typing span:nth-child(2) { animation-delay: 0.15s; } .jawsc-page .jaws-embed-typing span:nth-child(3) { animation-delay: 0.3s; } @keyframes jawsc-bounce { 0%, 60%, 100% { transform: translateY(0); opacity: 0.5; } 30% { transform: translateY(-7px); opacity: 1; } } .jawsc-page .jaws-embed-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px 12px; background: #faf8f5; } .jawsc-page .jaws-embed-chip { background: #ffffff; color: #0f2744; border: 1px solid #c9a227; padding: 8px 14px; border-radius: 999px; font-size: 14px; cursor: pointer; transition: all 0.2s; font-family: inherit; font-weight: 500; text-decoration: none; display: inline-block; line-height: 1.3; } .jawsc-page .jaws-embed-chip:hover { background: #c9a227; color: #ffffff; transform: translateY(-1px); } .jawsc-page .jaws-embed-chip.jaws-embed-chip-link { background: #c9a227; color: #ffffff; font-weight: 600; } .jawsc-page .jaws-embed-chip.jaws-embed-chip-link:hover { background: #a8841a; color: #ffffff; } .jawsc-page .jaws-embed-input { border-top: 1px solid #e8e3d8; padding: 14px; display: flex; gap: 10px; background: #ffffff; flex-shrink: 0; } .jawsc-page .jaws-embed-input textarea { flex: 1; border: 1px solid #e8e3d8; border-radius: 10px; padding: 11px 14px; font-size: 15px; resize: none; outline: none; font-family: inherit; color: #0f2744; background: #faf8f5; max-height: 120px; line-height: 1.4; transition: border-color 0.15s; direction: rtl; } .jawsc-page .jaws-embed-input textarea:focus { border-color: #c9a227; } .jawsc-page .jaws-embed-send { background: #c9a227; color: #ffffff; border: none; border-radius: 10px; width: 44px; height: 44px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.15s, transform 0.15s; flex-shrink: 0; align-self: flex-end; } .jawsc-page .jaws-embed-send:hover:not(:disabled) { background: #a8841a; transform: translateY(-1px); } .jawsc-page .jaws-embed-send:disabled { opacity: 0.6; cursor: not-allowed; } .jawsc-page .jaws-embed-send svg { width: 20px; height: 20px; /* Mirror the paper-plane in RTL so it "points" toward send direction */ transform: scaleX(-1); } @media (max-width: 900px) { .jawsc-page .jaws-embed { height: 540px; border-radius: 10px; } .jawsc-page .jaws-embed-header { padding: 14px 16px; } .jawsc-page .jaws-embed-messages { padding: 16px; } .jawsc-page .jaws-embed-chips { padding: 0 16px 10px; } .jawsc-page .jaws-embed-input { padding: 10px; } } /* RESPONSIVE */ @media (max-width: 900px) { .jawsc-section { padding: 56px 0; } .jawsc-hero { padding: 64px 0 72px; } .jawsc-features { grid-template-columns: 1fr; } .jawsc-feature { border-inline-start: none; border-top: 1px solid #e8e3d8; } .jawsc-feature:first-child { border-top: none; } .jawsc-steps { grid-template-columns: 1fr; gap: 32px; } .jawsc-checklist { grid-template-columns: 1fr; } .key-facts { grid-template-columns: 1fr; } .jawsc-btn { width: 100%; } .jawsc-cta-row, .jawsc-closing-ctas { flex-direction: column; } .jawsc-anchor-nav ul { gap: 4px; } .jawsc-anchor-nav a { padding: 6px 10px; font-size: 13px; } }
אימון עסקי דיגיטלי בעברית

JAWS COACH — מאמן עסקי דיגיטלי

טעימה משיטות העבודה של ניר מקובסקיTAB, STRATPRO, HI-MAP, ValueBuilder. שאלות אבחון נכונות, מסגרת חשיבה, וכיוון לפעולה. בלי הרשמה, בלי תשלום.

סשן ראשון 15–30 דקות · ללא הרשמה · ללא הקלטה

JAWS COACH הוא מאמן עסקי דיגיטלי בעברית, מבוסס AI, שמשקף את שיטת NIRMAKOTAB Peer Boards, STRATPRO, HI-MAP ו-Business Builder Blueprint. הוא שואל שאלות אבחון חדות, מציג פערים, ומכוון לפעולה. סשן ראשון אורך 15–30 דקות, ללא הרשמה וללא עלות. זאת טעימה — לא תחליף לפגישת אבחון אישית עם ניר.

סשן חי

התחל כאן — עכשיו

הצ'אט נטען אוטומטית. כתוב את השאלה הראשונה — JAWS COACH יחזור עם שאלת אבחון.

JAWS COACH — NIRMAKO מחובר ופעיל
מה זה

מאמן דיגיטלי שעובד אחרת

לא צ'אט בוט שעונה לכל דבר. כמו כן, זה לא מנוע חיפוש. למעשה, JAWS COACH שואל שאלות אבחון, מציג פערים, ומעמת אותך עם ההחלטות שאתה דוחה. לכן הוא מתאים לבעלי עסקים ומנכ״לים שרוצים לחדד מחשבה לפני מהלך.

שם
JAWS COACH
שפה
עברית עסקית
סוג
אימון עסקי דיגיטלי
מבוסס על
TAB · STRATPRO · HI-MAP · ValueBuilder
משך סשן
15–30 דקות
עלות
ללא תשלום
הרשמה
לא נדרשת
פלטפורמה
מוטמע באתר
מטרה
שאלות אבחון לפני החלטה
01

מבוסס על שיטות אמיתיות

TAB Peer Boards · STRATPRO · HI-MAP · Business Builder Blueprint · ValueBuilder. אותן שיטות שניר עובד איתן עם מנכ״לים בישראל.

02

בעברית עסקית

שיחה ישירה, בלי תרגום, בלי "מסע" ובלי סלוגנים. כלומר — הסגנון של ניר: בהירות, מיקוד, החלטה.

03

בלי התחייבות

ללא הרשמה, ללא תשלום, ללא הקלטה. בנוסף, המידע שלך לא נשמר ב-NIRMAKO. רק תוצאה לקחת איתך.

מה זה לא

זה לא תחליף לפגישת אבחון אישית עם ניר. JAWS COACH הוא כלי AI שנותן לך אינטראקציה דמוית-אימון, מבוסס על השיטות שלנו — אבל הוא לא רואה אותך, לא מכיר את העסק שלך, ולא נושא באחריות מקצועית.

יחד עם זאת, זה לא ייעוץ פסיכולוגי, משפטי, רפואי או פיננסי. לכן — לקבלת החלטות אסטרטגיות מהותיות, קבע שיחת אבחון אישית או הצטרף ל-TAB Boardroom לליווי שוטף.

איך זה עובד

שלושה צעדים

מההתחלה ועד action item — 15 עד 30 דקות, תלוי בעומק הסשן. בנוסף, ניתן לחזור לסשן בכל עת.

1

פותח שיחה

כותב את השאלה הראשונה בצ'אט שמעלה. מיד אחר כך JAWS COACH מציג את עצמו ומבקש להבין למה הגעת.

2

אבחון אמיתי

הוא שואל שאלות חדות. לעומת זאת, הוא לא ייתן פתרון מוכן — אלא יציג את הפער בין מה שאתה אומר למה שאתה עושה.

3

פעולה מוגדרת

בסופו של דבר תצא עם action item ברור ל-7 ימים, או עם הבנה ברורה מה לבדוק מול מאמן עסקי אמיתי.

למי זה

מתאים אם אתה

  • מנכ״ל שרוצה לבחון מהלך לפני שיחה עם מאמן
  • בעל עסק עם דילמה ניהולית קונקרטית
  • מנהל בכיר שמכין תכנית רבעונית
  • יזם שצריך לסדר את הראש לפני החלטה
  • מי שרוצה לבדוק את שיטת NIRMAKO לפני אבחון
  • מי ששוקל הצטרפות ל-TAB Boardroom
שאלות נפוצות

FAQ — אימון עסקי דיגיטלי

מה זה JAWS COACH?

JAWS COACH הוא מאמן עסקי דיגיטלי בעברית, מבוסס AI, שמשקף את שיטת NIRMAKO ואת המסגרות TAB, STRATPRO, HI-MAP ו-ValueBuilder. הוא שואל שאלות אבחון חדות במקום לתת תשובות מוכנות.

האם JAWS COACH מחליף פגישה אישית עם מאמן?

לא. מדובר בטעימה דיגיטלית, ולא בתחליף לאבחון אישי. לקבלת החלטות אסטרטגיות מהותיות — קבע פגישת אבחון עם ניר או בחן הצטרפות ל-TAB Boardroom.

מה עולה סשן ב-JAWS COACH?

סשן ראשון הוא ללא תשלום, ללא הרשמה ב-NIRMAKO, וללא שמירת מידע מזהה אצלנו. הצ'אט מוטמע ישירות באתר — בלי לעבור לאפליקציה אחרת.

במה זה שונה מ-ChatGPT רגיל?

ChatGPT הסטנדרטי עונה לשאלות. לעומת זאת, JAWS COACH שואל שאלות אבחון לפי שיטות אימון עסקי מוכחות, מציג פערים שאתה מעדיף לדחות, ומכוון אותך לפעולה ולא לתשובה.

למי JAWS COACH מתאים?

מנכ״לים, בעלי עסקים, מנהלים בכירים, ויזמים — בעיקר מי שמתלבט לקראת מהלך ורוצה לחדד מחשבה לפני שיחה עם קבוצת TAB או יועץ אמיתי. כמו כן, מי שמכין תכנית רבעונית או שוקל שינוי מבני בארגון.

מה לעשות אחרי הסשן?

אם הסשן הוביל לתובנה שראויה לדיון — קבע שיחת אבחון אישית. בנוסף, ניתן לבחון את הפודקאסט "שחייה ועסקים" של ניר לתכנים מעמיקים יותר.

סשן ראשון — עכשיו

אם הסשן הדיגיטלי הביא אותך לתובנה ראויה — קבע שיחת אבחון אישית עם ניר. ניקח אותה למקום הבא. לחלופין, בחן הצטרפות ל-TAB Boardroom.

(function() { // ─── CONFIGURATION ────────────────────────────────────────────────── var JAWS_WORKER_URL = 'https://lingering-bird-4409.10011334.workers.dev/chat'; var JAWS_PUBLIC_KEY = 'CtNJGD2BrA84gJcHQBFC9nDWDyRSqLkk'; var JAWS_MODE = 'coach'; // [v3.0.4] required by CORE v2.9.0+ var JAWS_LANGUAGE = 'he'; // [v3.0.4] required by CORE v2.9.0+ // Hebrew strings dictionary var T = { welcome: 'שלום, אני JAWS COACH — המאמן הדיגיטלי של ניר מקובסקי. מה הדילמה הניהולית או העסקית שעולה אצלך עכשיו?', sugg1: 'אני מתלבט לגבי מהלך אסטרטגי', sugg2: 'יש לי בעיית ניהול עובדים', sugg3: 'אני רוצה לבחון תכנית רבעונית', sugg4: { label: 'קבע פגישת אבחון עם ניר', href: 'https://calendly.com/d/3zm-n76-j84/meet-with-me' }, errGeneric: 'מצטער, יש כרגע תקלה. נסה שוב בעוד רגע.', errNetwork: 'מצטער, יש בעיית חיבור. נסה שוב בעוד רגע.', received: 'התקבל.', leadBadge: '✓ הפנייה שלך הועברה לצוות NIRMAKO' }; // ─── DOM REFERENCES ───────────────────────────────────────────────── var messages = document.getElementById('jawsEmbedMessages'); var chips = document.getElementById('jawsEmbedChips'); var input = document.getElementById('jawsEmbedInput'); var sendBtn = document.getElementById('jawsEmbedSend'); if (!messages || !chips || !input || !sendBtn) { console.warn('JAWS COACH: required DOM elements not found, chat not mounted'); return; } // ─── SESSION STATE ────────────────────────────────────────────────── var conversationId = null; var sessionId = 'sess_' + Date.now() + '_' + Math.random().toString(36).slice(2, 8); var visitorId; try { visitorId = localStorage.getItem('jaws_visitor_id'); if (!visitorId) { visitorId = 'vis_' + Date.now() + '_' + Math.random().toString(36).slice(2, 8); localStorage.setItem('jaws_visitor_id', visitorId); } } catch (e) { // Private mode / blocked localStorage — generate ephemeral ID visitorId = 'vis_' + Date.now() + '_' + Math.random().toString(36).slice(2, 8); } var isSending = false; var convHistory = []; // ─── HELPERS ──────────────────────────────────────────────────────── function escapeHtml(s) { var div = document.createElement('div'); div.textContent = String(s == null ? '' : s); return div.innerHTML; } function linkify(html) { return html.replace(/(https?:\/\/[^\s"]+)/g, function(u) { return '' + u + ''; }); } function scrollToBottom() { messages.scrollTop = messages.scrollHeight; } function addUserMessage(text) { var el = document.createElement('div'); el.className = 'jaws-embed-msg jaws-embed-user'; el.textContent = text; messages.appendChild(el); scrollToBottom(); } function addBotMessage(text, leadCaptured) { var el = document.createElement('div'); el.className = 'jaws-embed-msg jaws-embed-bot'; el.innerHTML = linkify(escapeHtml(text)); if (leadCaptured) { var badge = document.createElement('div'); badge.className = 'jaws-embed-lead-badge'; badge.textContent = T.leadBadge; el.appendChild(badge); } messages.appendChild(el); scrollToBottom(); } function showTyping() { var el = document.createElement('div'); el.className = 'jaws-embed-typing'; el.id = 'jawsEmbedTyping'; el.appendChild(document.createElement('span')); el.appendChild(document.createElement('span')); el.appendChild(document.createElement('span')); messages.appendChild(el); scrollToBottom(); } function hideTyping() { var el = document.getElementById('jawsEmbedTyping'); if (el) el.remove(); } function renderChips(items) { chips.innerHTML = ''; if (!items || items.length === 0) return; items.forEach(function(item) { var isLink = item && typeof item === 'object' && item.href; var label = isLink ? item.label : item; if (isLink) { var a = document.createElement('a'); a.className = 'jaws-embed-chip jaws-embed-chip-link'; a.href = item.href; a.target = '_blank'; a.rel = 'noopener noreferrer'; a.textContent = label; chips.appendChild(a); } else { var c = document.createElement('button'); c.className = 'jaws-embed-chip'; c.type = 'button'; c.textContent = label; c.addEventListener('click', function() { input.value = label; send(); }); chips.appendChild(c); } }); } function clearChips() { chips.innerHTML = ''; } function autoResize() { input.style.height = 'auto'; input.style.height = Math.min(input.scrollHeight, 120) + 'px'; } // ─── SEND ─────────────────────────────────────────────────────────── function send() { var text = input.value.trim(); if (!text || isSending) return; isSending = true; sendBtn.disabled = true; addUserMessage(text); convHistory.push({ role: 'user', content: text }); if (convHistory.length > 12) convHistory = convHistory.slice(-12); clearChips(); input.value = ''; autoResize(); showTyping(); fetch(JAWS_WORKER_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ public_key: JAWS_PUBLIC_KEY, session_id: sessionId, visitor_id: visitorId, page_url: window.location.href, page_title: document.title, message: text, conversation_id: conversationId, conversation_history: convHistory.slice(0, -1), mode: JAWS_MODE, language: JAWS_LANGUAGE }) }) .then(function(r) { return r.json(); }) .then(function(data) { hideTyping(); if (data.error) { addBotMessage(T.errGeneric); } else { conversationId = data.conversation_id || conversationId; var replyText = data.reply || T.received; addBotMessage(replyText, !!data.lead_captured); convHistory.push({ role: 'assistant', content: replyText }); if (convHistory.length > 12) convHistory = convHistory.slice(-12); if (data.chips && data.chips.length) { renderChips(data.chips); } } }) .catch(function(err) { console.error('JAWS COACH error:', err); hideTyping(); addBotMessage(T.errNetwork); }) .finally(function() { isSending = false; sendBtn.disabled = false; input.focus(); }); } // ─── EVENT BINDINGS ───────────────────────────────────────────────── sendBtn.addEventListener('click', send); input.addEventListener('keydown', function(e) { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); send(); } }); input.addEventListener('input', autoResize); // ─── INIT — welcome message + starter chips ───────────────────────── addBotMessage(T.welcome); renderChips([T.sugg1, T.sugg2, T.sugg3, T.sugg4]); })();