PageSourceSearch

https://docs-vrgeo-version3.netlify.app/assets/js/9c0289cf.c037b9be.js

js docs-vrgeo-version3.netlify.app collected 2026-10-03 10:42:04 UTC 7,340 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkvrgs_docs_v_3_1=globalThis.webpackChunkvrgs_docs_v_3_1||[]).push([[21027],{15889(s,e,t){t.r(e),t.d(e,{default:()=>es});var n=t(96540),a=t(44060),i=t(28774),r=t(34164),o=t(86025),c=t(60023);const l="hero_HC1P",d="heroText_iMCQ",u="pill_Jj2a",h="subtitle_maJJ",m="disclaimerPanel_ydPT",g="disclaimerIcon_ETkQ",p="disclaimerTitle_xDrx",x="disclaimerText_rcXP",j="brandRow_UMKU",_="brandDivider_uhZh",f="brandLogo_z8YH",b="suggestions_cX8x",v="suggestion_d_rU",y="main_CwqR",N="panel_PZZA",A="panelHeader_nQuK",k="label_AfRd",w="helper_mLT4",S="statusBadge_yDXK",R="chatBox_aRK4",T="message_NkLT",I="user_tjHc",C="assistant_ktmv",H="messageHeader_BQa9",$="badge_aLAH",G="messageBody_RRSU",U="userText_t6Yt",q="sources_OMUX",L="sourceLabel_l5ZH",P="sourceList_WxbW",V="sourceChip_E8Pb",M="form_ogd9",J="input_Piom",E="button__2uI",B="error_iVrS",K="footnote_gBLR",O="srOnly_kgUb",Q="thinking_tSEq",D="trilobite_dQJs",X="trilobiteIcon_s8Yc";var Y=t(74848);const Z=["How do I measure a dip and azimuth from a bedding plane?","What does the Collections Tree contain?","How do I create an orthopanel?","How can I export a sedimentary log?","How do I configure an on-prem server license?"],F="undefined"!=typeof process&&process.env?.ASSISTANT_API_URL||"/.netlify/functions/assistant";function W({sources:s}){return s&&s.length?(0,Y.jsxs)("div",{className:q,children:[(0,Y.jsx)("span",{className:L,children:"Sources"}),(0,Y.jsx)("div",{className:P,children:s.map((s,e)=>{const t=1-.06*e,n=s.primaryChunk?.heading,a=function(s){const e=s.url||s.primaryChunk?.url;if(e)return e;const t=s.slug,n=t&&"/"!==t&&"intro"!==t?`/docs/${t}`:"/docs",a=s.primaryChunk?.anchor;return a?`${n}#${a}`:n}(s),r=s.count>1?`${s.title||s.slug} (${s.count})`:s.title||s.slug;return(0,Y.jsx)(i.A,{to:a,className:V,style:{opacity:t},title:`Relevance: ${Math.round(100*(s.score||0))}%${n?` \u2022 Jump to: ${n}`:""}`,children:r},s.slug)})})]}):null}function z(){return(0,Y.jsxs)("div",{className:Q,children:[(0,Y.jsxs)("div",{className:D,children:[(0,Y.jsx)("img",{src:(0,o.Ay)("/img/thinking_trilobite.svg"),alt:"Thinking",className:X}),(0,Y.jsx)("img",{src:(0,o.Ay)("/img/thinking_trilobite.svg"),alt:"Thinking",className:X}),(0,Y.jsx)("img",{src:(0,o.Ay)("/img/thinking_trilobite.svg"),alt:"Thinking",className:X})]}),(0,Y.jsx)("span",{children:"Athos is thinking..."})]})}function ss({message:s}){const e="user"===s.role,t=(0,n.useMemo)(()=>{if(e)return null;const t=(s.content||"").replace(/[&<>]/g,s=>({"&":"&amp;","<":"&lt;",">":"&gt;"}[s]||s));return c.xI.parse(t,{gfm:!0,breaks:!0,headerIds:!1,mangle:!1})},[e,s.content]);return(0,Y.jsxs)("div",{className:(0,r.A)(T,e?I:C),children:[(0,Y.jsx)("div",{className:H,children:(0,Y.jsx)("span",{className:$,children:e?"You":"Athos"})}),(0,Y.jsx)("div",{className:G,children:e?(0,Y.jsx)("span",{className:U,children:s.content}):(0,Y.jsx)("span",{dangerouslySetInnerHTML:{__html:t}})}),!e&&(0,Y.jsx)(W,{sources:s.sources})]})}
1function es(){const[s,e]=(0,n.useState)([{role:"assistant",content:"Hi, I'm Athos -your guide to the VRGS docs. Ask about workflows, menus, data prep, or release notes."}]),[t,i]=(0,n.useState)(""),[r,c]=(0,n.useState)(!1),[T,I]=(0,n.useState)(null),C=(0,n.useRef)(null),H=(0,n.useRef)(null);(0,n.useEffect)(()=>{H.current&&(H.current.scrollTop=H.current.scrollHeight)},[s]);const $=async t=>{const n=t.trim();if(!n||r)return;const a={role:"user",content:n},o=[...s,a].filter(s=>"user"===s.role||"assistant"===s.role).slice(-8).map(({role:s,content:e})=>({role:s,content:e}));e(s=>[...s,a]),i(""),I(null),c(!0);try{const s=await fetch(F,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:n,history:o})});let t;if(!(s.headers.get("content-type")||"").includes("application/json")){const e=await s.text();throw new Error(`Assistant unavailable. Received non-JSON response. Try running "npx netlify-cli dev" for local functions. Raw: ${e.slice(0,120)}`)}if(t=await s.json(),!s.ok)throw new Error(t.error||"Assistant request failed.");e(s=>[...s,{role:"assistant",content:t.answer||"I could not find an answer in the docs.",sources:t.sources||[]}])}catch(l){I("Failed to fetch"===l?.message?"Unable to reach the assistant service. Check your network and that the Netlify function endpoint is accessible.":l?.message||"Unable to reach the assistant. If running locally, start with `npx netlify-cli dev` so functions are available.")}finally{c(!1),C.current?.focus()}};return(0,Y.jsxs)(a.A,{title:"Athos AI Assistant",description:"Ask Athos about the VRGS docs",children:[(0,Y.jsx)("div",{className:l,children:(0,Y.jsxs)("div",{className:d,children:[(0,Y.jsxs)("div",{className:j,children:[(0,Y.jsx)("img",{src:(0,o.Ay)("/img/athos_logo.svg"),alt:"Athos logo",className:f}),(0,Y.jsx)("span",{className:_,"aria-hidden":"true"}),(0,Y.jsx)("img",{src:(0,o.Ay)("/img/vrgeoscience_logo.svg"),alt:"VRGeoscience logo",className:f})]}),(0,Y.jsx)("p",{className:u,children:"Athos by VRGeoscience"}),(0,Y.jsx)("h1",{children:"Meet Athos, your VRGS copilot"}),(0,Y.jsx)("p",{className:h,children:"Get quick answers grounded in the VRGS documentation\u2014Athos links back to the sources."}),(0,Y.jsx)("div",{className:b,children:Z.map(s=>(0,Y.jsx)("button",{type:"button",className:v,onClick:()=>$(s),disabled:r,children:s},s))})]})}),(0,Y.jsxs)("main",{className:y,children:[(0,Y.jsxs)("section",{className:N,children:[(0,Y.jsxs)("div",{className:A,children:[(0,Y.jsxs)("div",{children:[(0,Y.jsx)("p",{className:k,children:"Conversation"}),(0,Y.jsx)("p",{className:w,children:"Athos retrieves answers from the published Markdown docs. Keep questions specific for best results."})]}),(0,Y.jsx)("span",{className:S,children:r?"Athos is thinking...":"Athos is ready"})]}),(0,Y.jsxs)("div",{className:R,ref:H,role:"log","aria-live":"polite",children:[s.map((s,e)=>(0,Y.jsx)(ss,{message:s},`${s.role}-${e}-${s.content.slice(0,8)}`)),r&&(0,Y.jsx)(z,{})]}),(0,Y.jsxs)("form",{className:M,onSubmit:s=>{s.preventDefault(),t.trim()&&$(t)},children:[(0,Y.jsx)("label",{htmlFor:"assistant-question",className:O,children:"Ask a question"}),(0,Y.jsx)("input",{id:"assistant-question",ref:C,type:"text",placeholder:"Ask anything about VRGS...",value:t,onChange:s=>i(s.target.value),disabled:r,className:J}),(0,Y.jsx)("button",{type:"submit",className:E,disabled:r||!t.trim(),children:r?"Generating...":"Send"})]}),T?(0,Y.jsx)("p",{className:B,children:T}):null,(0,Y.jsx)("p",{className:K,children:"Answers are generated from the current docs snapshot. For new doc updates, rebuild embeddings before deploying so Athos stays current."})]}),(0,Y.jsx)("br",{}),(0,Y.jsxs)("div",{className:m,role:"note","aria-label":"Athos AI guidance notice",children:[(0,Y.jsx)("div",{className:g,"aria-hidden":"true",children:"!"}),(0,Y.jsxs)("div",{children:[(0,Y.jsx)("p",{className:p,children:"Athos is still in training - verify before you act"}),(0,Y.jsxs)("p",{className:x,children:["Athos summarises VRGS documentation, including some content automatically generated from code, so project-specific steps may be incomplete or missing. Avoid sharing sensitive data in prompts.",(0,Y.jsx)("br",{}),"If you're unsure, you can always reach out via our ",(0,Y.jsx)("a",{href:"https://www.vrgeoscience.com/contact-us/",children:"Contact Us"})," page."]})]})]})]})]})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.