(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[364],{2658:(e,a,s)=>{Promise.resolve().then(s.bind(s,5941))},5941:(e,a,s)=>{"use strict";s.d(a,{WorkspaceClient:()=>F});var t=s(5155),l=s(2115);let r=[{slash:"supply_demand",name:"supply_demand",badge:"default",active:!0},{slash:"ict_concepts",name:"ict_concepts",badge:"default"},{slash:"fibonacci",name:"fibonacci",badge:"default"},{slash:"wyckoff_phases",name:"wyckoff_phases",badge:"$5/mo",paid:!0},{slash:"smc_liquidity",name:"smc_liquidity",badge:"$9/mo",paid:!0},{slash:"session_killz",name:"session_killz",badge:"default"}],n=[{title:"EURUSD H1 — supply zones above 1.0860",time:"12:42",tool:"supply_demand",active:!0},{title:"GBPJPY: distribution or accumulation?",time:"Yesterday",tool:"wyckoff_phases"},{title:"ES futures FVG — Tuesday open",time:"Apr 28",tool:"ict_concepts"},{title:"Asian session range — XAUUSD",time:"Apr 27",tool:"session_killz"},{title:"Fib confluence at 1.27 ext",time:"Apr 25",tool:"fibonacci"}],i=[{role:"user",author:"You",time:"12:38",body:"Looking at EURUSD H1. I see price has been ranging. Can you mark the most recent supply zone above current price and highlight any unfilled FVG below? I want to know where to short from."},{role:"ai",author:"Coach",tool:"supply_demand",time:"12:38",provider:"codex-cli",latency:"1.2s",body:'
Two supply zones stand out on the H1, and one of them is the cleaner short. The higher zone, drawn between 1.0884 and 1.0871, is the origin of the impulse leg that broke down on April 28th — strong reaction, low time spent inside, no return. That is where institutional sell orders likely remain.
Below current price, the unfilled fair-value gap from the same impulse sits at 1.0832 – 1.0826. It has not been mitigated. If price rallies into the upper supply and the gap is your downside target, the reward-to-risk runs roughly 1 : 2.6 on a stop above 1.0892.
I have drawn both zones, the FVG, and a Fibonacci retracement from the swing high to the most recent low. Watch for a reaction at the 0.618 / 0.705 confluence — that is where the cleanest entry has historically lived on this pair.
',callout:[{k:"Entry",v:"1.0884",tone:"dn"},{k:"Stop",v:"1.0892",tone:""},{k:"Target",v:"1.0832",tone:"up"},{k:"R : R",v:"1 : 2.6",tone:"brass"}],actions:[{label:"Drew",val:"Supply zone \xd7 1",color:"var(--red)"},{label:"Drew",val:"Demand zone \xd7 1",color:"var(--green)"},{label:"Drew",val:"FVG box \xd7 1",color:"var(--accent)"},{label:"Drew",val:"Fibonacci \xd7 6",color:"var(--ink-3)"},{label:"Drew",val:"Trendline \xd7 1",color:"var(--ink-3)"}]}],c=function(){let e;let a=(e=42,()=>{let a=Math.imul((e=e+0x6d2b79f5|0)^e>>>15,1|e);return(((a=a+Math.imul(a^a>>>7,61|a)^a)^a>>>14)>>>0)/0x100000000}),s=[],t=1.0855;for(let e=0;e<22;e++){let l=t,r=l+(8e-4*Math.sin(.7*e)+(a()-.5)*6e-4),n=Math.max(l,r)+6e-4*a()+2e-4,i=Math.min(l,r)-6e-4*a()-2e-4;s.push({o:l,h:n,l:i,c:r}),t=r}for(let e=0;e<6;e++){let e=t,l=e+.0014+8e-4*a(),r=l+4e-4*a(),n=e-3e-4*a();s.push({o:e,h:r,l:n,c:l}),t=l}for(let e=0;e<8;e++){let e=t,l=e-.0018-.001*a(),r=e+3e-4*a(),n=l-6e-4*a();s.push({o:e,h:r,l:n,c:l}),t=l}for(let e=0;e<16;e++){let e=t,l=e+(a()-.5)*.0012,r=Math.max(e,l)+5e-4*a(),n=Math.min(e,l)-5e-4*a();s.push({o:e,h:r,l:n,c:l}),t=l}for(let e=0;e<20;e++){let e=t,l=e+(6e-4+(a()-.4)*8e-4),r=Math.max(e,l)+5e-4*a(),n=Math.min(e,l)-5e-4*a();s.push({o:e,h:r,l:n,c:l}),t=l}for(let e=0;e<8;e++){let e=t,l=e+(4e-4+(a()-.3)*7e-4),r=Math.max(e,l)+6e-4*a(),n=Math.min(e,l)-4e-4*a();s.push({o:e,h:r,l:n,c:l}),t=l}return s}(),o={supply:{startIdx:22,endIdx:79,top:1.0884,bottom:1.0871,label:"SUPPLY \xb7 H1"},demand:{startIdx:36,endIdx:79,top:1.0772,bottom:1.0758,label:"DEMAND"},fvg:{startIdx:30,endIdx:79,top:1.0832,bottom:1.0826,label:"FVG \xb7 UNFILLED"},fib:{startIdx:28,endIdx:79,high:1.0884,low:1.0758,levels:[{v:0,label:"0.0"},{v:.382,label:"0.382"},{v:.5,label:"0.500"},{v:.618,label:"0.618"},{v:.705,label:"0.705"},{v:1,label:"1.0"}]},trendline:{p1:{idx:27,price:1.0884},p2:{idx:78,price:1.086},label:"RESISTANCE"},entry:{idx:75,price:1.084,label:"LONG ENTRY \xb7 1.0840",direction:"long"}},d=c.map((e,a)=>1e3*(e.h-e.l)*(.6+.3*Math.sin(.4*a)+(Math.cos(.7*a)+1)*.15)),h={role:"ai",author:"Coach",tool:"wyckoff_phases",time:"12:43",provider:"anthropic-fallback",latency:"1.8s",body:'Re-distribution is the working hypothesis, but it is not yet confirmed. Look at the structure: a sharp markdown after the supply rejection, sideways action through 16 hours, and now a creep back up on declining range. That is the classic cause-building phase — Phase B in Wyckoff terms.
What you want to see before committing to the short is an Upthrust After Distribution (UTAD) — a false break above the supply that gets sold immediately. The current touch is too clean and too slow to be that. Patience.
',actions:[{label:"Drew",val:"Phase A label",color:"var(--accent)"},{label:"Drew",val:"Phase B label",color:"var(--accent)"},{label:"Drew",val:"Phase C anticipated",color:"var(--bordeaux)"}]};var m=s(492),x=s(360),p=s(9009),u=s(3543);function j(e){let{activeTool:a,onToolChange:s,activeChat:i,onChatChange:c}=e,[o,d]=(0,l.useState)(""),h=o.trim().toLowerCase(),j=(0,l.useMemo)(()=>h?r.filter(e=>e.name.toLowerCase().includes(h)):r,[h]),v=(0,l.useMemo)(()=>h?n.filter(e=>e.title.toLowerCase().includes(h)||e.tool.toLowerCase().includes(h)):n,[h]);return(0,t.jsxs)("aside",{className:"sidebar col","aria-label":"Workspace navigation",children:[(0,t.jsxs)("div",{className:"brand",children:[(0,t.jsx)("div",{className:"brand-mark","aria-hidden":"true",children:"AI"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"brand-name",children:"AI Trading Coach"}),(0,t.jsx)("div",{className:"brand-sub",children:"aitrading.coach"})]}),(0,t.jsx)("span",{className:"brand-spacer"}),(0,t.jsx)("span",{className:"brand-version",children:"v1.4"})]}),(0,t.jsxs)("div",{className:"sb-search",children:[(0,t.jsx)("label",{className:"sr-only",htmlFor:"sb-search-input",children:"Search chats and tools"}),(0,t.jsxs)("div",{className:"sb-search-wrap",children:[(0,t.jsx)(m.A,{className:"sb-search-icon",size:13,"aria-hidden":"true"}),(0,t.jsx)("input",{id:"sb-search-input",type:"search",className:"sb-search-input",placeholder:"Search chats, tools…",value:o,onChange:e=>d(e.target.value),autoComplete:"off"})]})]}),(0,t.jsxs)("div",{className:"sb-section",children:[(0,t.jsxs)("div",{className:"sb-label",children:["My Tools",(0,t.jsx)("button",{type:"button",className:"add","aria-label":"New tool",children:(0,t.jsx)(x.A,{size:13,"aria-hidden":"true"})})]}),(0,t.jsxs)("div",{className:"sb-tools",role:"list",children:[j.map(e=>(0,t.jsxs)("button",{type:"button",role:"listitem",className:"tool-row ".concat(a===e.slash?"active":""),onClick:()=>s(e.slash),"aria-current":a===e.slash?"true":void 0,children:[(0,t.jsx)("span",{className:"tool-slash","aria-hidden":"true",children:"/"}),(0,t.jsx)("span",{className:"tool-name",children:e.name}),(0,t.jsx)("span",{className:"tool-badge ".concat(e.paid?"paid":""),children:e.paid?e.badge:""})]},e.slash)),0===j.length&&(0,t.jsxs)("div",{className:"sb-empty",children:['No tools match "',o,'"']})]})]}),(0,t.jsxs)("div",{className:"sb-section",children:[(0,t.jsxs)("div",{className:"sb-label",children:["Recent",(0,t.jsx)("button",{type:"button",className:"add","aria-label":"More chat options",children:(0,t.jsx)(p.A,{size:13,"aria-hidden":"true"})})]}),(0,t.jsxs)("div",{className:"sb-chats",role:"list",children:[v.map((e,a)=>(0,t.jsxs)("button",{type:"button",role:"listitem",className:"chat-row ".concat(i===a?"active":""),onClick:()=>c(a),"aria-current":i===a?"true":void 0,children:[(0,t.jsx)("div",{className:"chat-row-title",children:e.title}),(0,t.jsxs)("div",{className:"chat-row-meta",children:[(0,t.jsxs)("span",{children:["/",e.tool]}),(0,t.jsx)("span",{className:"dot","aria-hidden":"true"}),(0,t.jsx)("span",{children:e.time})]})]},e.title)),0===v.length&&(0,t.jsxs)("div",{className:"sb-empty",children:['No chats match "',o,'"']})]})]}),(0,t.jsx)("div",{className:"sb-spacer"}),(0,t.jsxs)("div",{className:"market-promo",role:"link",tabIndex:0,children:[(0,t.jsx)("div",{className:"market-promo-eyebrow",children:"Marketplace"}),(0,t.jsxs)("div",{className:"market-promo-title",children:["Browse ",(0,t.jsx)("em",{children:"coach"}),(0,t.jsx)("br",{}),"strategies"]}),(0,t.jsxs)("div",{className:"market-promo-meta",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"240+"})," tools"]}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"62"})," coaches"]})]})]}),(0,t.jsxs)("div",{className:"ea-status",children:[(0,t.jsx)("span",{className:"ea-dot","aria-hidden":"true"}),(0,t.jsx)("span",{children:"MT5 EA \xb7 authenticated"}),(0,t.jsx)("span",{className:"ea-meta",children:"14ms"})]}),(0,t.jsxs)("div",{className:"user-card",children:[(0,t.jsx)("div",{className:"avatar","aria-hidden":"true",children:"M"}),(0,t.jsxs)("div",{className:"user-info",children:[(0,t.jsx)("div",{className:"user-name",children:"marcus@atelier.fx"}),(0,t.jsxs)("div",{className:"user-tier",children:[(0,t.jsx)("span",{className:"pill",children:"PRO"}),"11 days left"]})]}),(0,t.jsx)("button",{type:"button",className:"icon-btn","aria-label":"Account settings",children:(0,t.jsx)(u.A,{size:14,"aria-hidden":"true"})})]})]})}var v=s(6939),y=s(9138),b=s(7708),g=s(6071),N=s(4234),f=s(1759);function k(e){let{provider:a,latency:s,variant:l}=e,r=a.split("-")[0];return"minimal"===l?(0,t.jsxs)("span",{className:"provider",children:[(0,t.jsx)("span",{style:{opacity:.5},children:"via"}),(0,t.jsx)("span",{style:{color:"var(--ink-2)"},children:a})]}):"verbose"===l?(0,t.jsxs)("span",{className:"provider",children:[(0,t.jsx)("span",{children:"provider"}),(0,t.jsxs)("span",{className:"provider-tag ".concat(r),children:[(0,t.jsx)("span",{className:"pdot"}),a]}),(0,t.jsx)("span",{className:"latency",children:s})]}):(0,t.jsx)("span",{className:"provider",children:(0,t.jsxs)("span",{className:"provider-tag ".concat(r),children:[(0,t.jsx)("span",{className:"pdot"}),a]})})}let w={ALLOWED_TAGS:["p","strong","em","span","br","ul","ol","li","code","pre"],ALLOWED_ATTR:["class"]};function S(e){let{m:a,providerVariant:s}=e,r=(0,l.useMemo)(()=>"ai"===a.role?f.Ay.sanitize(a.body,w):"",[a.role,a.body]);return"user"===a.role?(0,t.jsxs)("div",{className:"msg msg-user",children:[(0,t.jsxs)("div",{className:"msg-meta",children:[(0,t.jsxs)("span",{className:"msg-meta-author",children:[(0,t.jsx)("span",{className:"who",children:"You"}),(0,t.jsx)("span",{className:"sep",children:"\xb7"}),(0,t.jsx)("span",{children:a.time})]}),(0,t.jsx)("span",{className:"msg-meta-rule"})]}),(0,t.jsx)("div",{className:"msg-body",children:a.body})]}):(0,t.jsxs)("div",{className:"msg msg-ai",children:[(0,t.jsxs)("div",{className:"msg-meta",children:[(0,t.jsxs)("span",{className:"msg-meta-author",children:[(0,t.jsx)("span",{className:"who",children:"Coach"}),(0,t.jsx)("span",{className:"sep",children:"\xb7"}),(0,t.jsxs)("span",{children:["/",a.tool]}),(0,t.jsx)("span",{className:"sep",children:"\xb7"}),(0,t.jsx)("span",{children:a.time})]}),(0,t.jsx)("span",{className:"msg-meta-rule"}),(0,t.jsx)(k,{provider:a.provider,latency:a.latency||"1.2s",variant:s})]}),(0,t.jsx)("div",{className:"msg-body",dangerouslySetInnerHTML:{__html:r}}),a.callout&&(0,t.jsx)("div",{className:"callout",children:a.callout.map((e,a)=>(0,t.jsxs)("div",{className:"callout-cell",children:[(0,t.jsx)("div",{className:"k",children:e.k}),(0,t.jsx)("div",{className:"v ".concat(e.tone||""),children:e.v})]},a))}),a.actions&&(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("span",{className:"actions-label",children:"Drew on chart →"}),a.actions.map((e,a)=>(0,t.jsxs)("span",{className:"chip",children:[(0,t.jsx)("span",{className:"chip-dot",style:{background:e.color}}),(0,t.jsx)("span",{className:"chip-val",children:e.val})]},a))]})]})}function C(e){let{messages:a,sending:s,onSend:r,providerVariant:n}=e,[i,c]=(0,l.useState)(""),o=(0,l.useRef)(null),d=(0,l.useRef)(null),h=(0,l.useRef)(!0);(0,l.useEffect)(()=>{let e=d.current;e&&h.current&&(e.scrollTop=e.scrollHeight)},[a,s]);let m=()=>{var e;i.trim()&&!s&&(r(i.trim()),c(""),h.current=!0,null===(e=o.current)||void 0===e||e.focus())};return(0,t.jsxs)("main",{className:"conv col","aria-label":"Conversation",children:[(0,t.jsxs)("div",{className:"conv-header",children:[(0,t.jsxs)("div",{className:"conv-crumbs",children:[(0,t.jsx)("span",{children:"Workspace"}),(0,t.jsx)("span",{className:"sep","aria-hidden":"true",children:"/"}),(0,t.jsx)("span",{className:"tool",children:"supply_demand"})]}),(0,t.jsxs)("div",{className:"conv-header-main",children:[(0,t.jsxs)("h1",{className:"conv-header-title",children:["EUR/USD H1 — supply zones ",(0,t.jsx)("em",{children:"above"})," 1.0860"]}),(0,t.jsxs)("div",{className:"conv-header-meta",children:[(0,t.jsx)("span",{children:"4 messages"}),(0,t.jsx)("span",{className:"dot","aria-hidden":"true"}),(0,t.jsx)("span",{children:"started 12:38"}),(0,t.jsx)("span",{className:"dot","aria-hidden":"true"}),(0,t.jsx)("span",{children:"3 drawings"})]})]}),(0,t.jsxs)("div",{className:"conv-header-actions",children:[(0,t.jsx)("button",{type:"button",className:"icon-btn","aria-label":"Back-test this analysis",children:(0,t.jsx)(v.A,{size:14,"aria-hidden":"true"})}),(0,t.jsx)("button",{type:"button",className:"icon-btn","aria-label":"Share conversation",children:(0,t.jsx)(y.A,{size:14,"aria-hidden":"true"})}),(0,t.jsx)("button",{type:"button",className:"icon-btn","aria-label":"Bookmark conversation",children:(0,t.jsx)(b.A,{size:14,"aria-hidden":"true"})}),(0,t.jsx)("span",{className:"conv-header-divider","aria-hidden":"true"}),(0,t.jsx)("button",{type:"button",className:"icon-btn","aria-label":"More options",children:(0,t.jsx)(p.A,{size:14,"aria-hidden":"true"})})]})]}),(0,t.jsxs)("div",{className:"messages",ref:d,onScroll:()=>{let e=d.current;if(!e)return;let a=e.scrollHeight-e.scrollTop-e.clientHeight;h.current=a<=80},children:[a.map((e,a)=>(0,t.jsx)(S,{m:e,providerVariant:n},"".concat(e.role,"-").concat(e.time,"-").concat(a))),s&&(0,t.jsxs)("div",{className:"msg msg-ai","aria-live":"polite",children:[(0,t.jsxs)("div",{className:"msg-meta",children:[(0,t.jsxs)("span",{className:"msg-meta-author",children:[(0,t.jsx)("span",{className:"who",children:"Coach"}),(0,t.jsx)("span",{className:"sep","aria-hidden":"true",children:"\xb7"}),(0,t.jsx)("span",{children:"analyzing chart"})]}),(0,t.jsx)("span",{className:"msg-meta-rule","aria-hidden":"true"})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,t.jsxs)("div",{className:"typing","aria-hidden":"true",children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{}),(0,t.jsx)("span",{})]}),(0,t.jsx)("span",{className:"typing-label",children:"Reading 80 H1 bars \xb7 running /wyckoff_phases"})]})]})]}),(0,t.jsxs)("div",{className:"composer-wrap",children:[(0,t.jsxs)("div",{className:"composer",children:[(0,t.jsx)("label",{className:"sr-only",htmlFor:"composer-input",children:"Type your message"}),(0,t.jsx)("textarea",{id:"composer-input",ref:o,className:"composer-input",placeholder:"Ask the Coach to mark, draw, or analyze…",value:i,rows:1,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),m())}}),(0,t.jsxs)("div",{className:"composer-toolbar",children:[(0,t.jsxs)("span",{className:"composer-pill tool",children:["/supply_demand ",(0,t.jsx)("span",{className:"x","aria-hidden":"true",children:"\xd7"})]}),(0,t.jsx)("span",{className:"composer-pill",children:"EUR/USD \xb7 H1"}),(0,t.jsx)("span",{className:"composer-pill",children:"+ Attach chart"}),(0,t.jsx)("span",{className:"composer-spacer"}),(0,t.jsx)("button",{type:"button",className:"voice-btn","aria-label":"Voice input",children:(0,t.jsx)(g.A,{size:11,"aria-hidden":"true"})}),(0,t.jsxs)("button",{type:"button",className:"send-btn",disabled:!i.trim()||s,onClick:m,"aria-label":"Send message",children:[(0,t.jsx)(N.A,{size:11,"aria-hidden":"true"})," Send ",(0,t.jsx)("span",{className:"kbd",children:"↵"})]})]})]}),(0,t.jsxs)("div",{className:"composer-hint",children:[(0,t.jsx)("span",{className:"kbd-h",children:"↵"})," send \xb7 ",(0,t.jsx)("span",{className:"kbd-h",children:"⇧↵"})," newline \xb7"," ",(0,t.jsx)("span",{className:"kbd-h",children:"/"})," tools \xb7 ",(0,t.jsx)("span",{className:"kbd-h",children:"space"})," dictate"]})]})]})}function M(e){let{visible:a}=e,s=(0,l.useRef)(null),[r,n]=(0,l.useState)({w:800,h:500}),[i,h]=(0,l.useState)(null);if((0,l.useEffect)(()=>{if(!s.current)return;let e=new ResizeObserver(e=>{let a=e[0].contentRect;n({w:a.width,h:a.height})});return e.observe(s.current),()=>e.disconnect()},[]),!a)return null;let m=r.w,x=r.h,p=Math.max(100,m-8-68),u=Math.max(100,x-18-26-36-4),j=18+u+4,v=c.flatMap(e=>[e.h,e.l]),y=Math.min(...v)-8e-4,b=Math.max(...v)+8e-4,g=b-y,N=e=>8+(e+.5)*(p/c.length),f=e=>18+(1-(e-y)/g)*u,k=Math.max(2,p/c.length*.65),w=[],S=.005*Math.ceil(y/.005);for(let e=S;e<=b;e+=.005)w.push(e);let C=[];for(let e=0;e