1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56766,83746],{430368:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var s=a(637876),n=a(567247),r=a(770377),i=a(869241);let l=e=>{let{className:t}=e,a=(0,r.l)();return a.length?(0,s.jsx)("div",{className:(0,i.A)("overflow-visible",t),children:(0,s.jsx)(n.A,{items:a})}):null}},551154:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>w});var s=a(637876),n=a(14232),r=a(397141),i=a(977328),l=a.n(i),o=a(743956),d=a(430368),c=a(310773),u=a(114804),m=a(894890),p=a(536963),g=a(329480),y=a(781069),h=a(510877),x=a(321355),v=a(212591),b=a(259917),f=a(532e3);function j(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=document.cookie.split("; ").find(e=>e.startsWith("csrf-token=")),a=t?t.split("=")[1]:null;return a?{...e,"x-csrf-token":a}:e}let N=[{id:"eval-backfill",name:"Evaluation Backfill",desc:"Backfill AI model evaluation metrics for historical predictions and recommendations.",endpoint:m.bOF.aiToolsPage.evaluationBackfill,method:"POST",icon:h.A,body:{}},{id:"audit-assistant",name:"AI Audit Assistant",desc:"AI-powered audit assistant â generates audit findings, risk assessments, and evidence summaries.",endpoint:m.bOF.aiToolsPage.auditAssistant,method:"POST",icon:x.A,hasInput:!0,inputPlaceholder:"Describe the audit scope..."},{id:"nl-entry",name:"Natural Language Entry",desc:"Enter emissions data using natural language â AI parses and structures the input automatically.",endpoint:m.bOF.aiToolsPage.naturalLanguageEntry,method:"POST",icon:r.gO,body:{},hasInput:!0,inputPlaceholder:"e.g., We used 500 gallons of diesel last month at Plant A"},{id:"reports-citations",name:"Report Citations",desc:"Read citation coverage and source-status records without changing verification state.",endpoint:m.bOF.aiToolsPage.reportsCitations,method:"GET",icon:x.A},{id:"tokens",name:"AI Token Usage",desc:"View AI token consumption, budget allocation, and cost tracking across all AI features.",endpoint:m.bOF.aiToolsPage.tokenUsage,method:"GET",icon:v.A}];function w(){var e,t;let{organizationId:a}=(0,p.h)(),{toast:i}=(0,g.dj)(),[h,x]=(0,n.useState)({}),[v,w]=(0,n.useState)({}),[A,_]=(0,n.useState)({}),[S,k]=(0,n.useState)({}),q=null!=(t=null==(e=h["nl-entry"])?void 0:e.data)?t:null,E=Object.entries(A).filter(e=>{let[,t]=e;return t}).map(e=>{let[t]=e;return Number(t)}).sort((e,t)=>e-t),C=(0,n.useCallback)(async e=>{var t,s,n,r,l;if(!a||(null==(t=h[e.id])?void 0:t.status)==="running")return;let o=(null==(s=v[e.id])?void 0:s.trim())||"";if(e.hasInput&&!(null==(n=v[e.id])?void 0:n.trim())){x(t=>({...t,[e.id]:{status:"error",message:"Input is required before running this tool"}})),i.warning(e.name,"Input is required before running this tool");return}x(t=>({...t,[e.id]:{status:"running"}}));try{let t={method:e.method,credentials:"include"};if("POST"===e.method){let a=((e,t)=>{switch(e.id){case"audit-assistant":return{action:"answer_question",question:t,verification_standard:"iso_14064"};case"nl-entry":return{input:t,auto_save:!1};default:return{...e.body||{}}}})(e,o);t.headers=j({"Content-Type":"application/json"}),t.body=JSON.stringify(a)}let a=await (0,y.nr)(e.endpoint,t),s=await a.json(),n=s.message||(null==(r=s.data)?void 0:r.message)||"Completed",d=null!=(l=s.data)?l:s;if("nl-entry"===e.id){_({});let e=Array.isArray(null==d?void 0:d.parsed)?d.parsed:[];k(e.reduce((e,t,a)=>(e[a]={scope:"number"==typeof t.scope?t.scope:1,category:"string"==typeof t.category?t.category:"",activity_type:"string"==typeof t.activity_type?t.activity_type:"",quantity:"number"==typeof t.quantity&&Number.isFinite(t.quantity)?String(t.quantity):"",unit:"string"==typeof t.unit?t.unit:"",location:"string"==typeof t.location?t.location:"",period:"string"==typeof t.period?t.period:""},e),{}))}x(t=>({...t,[e.id]:{status:"success",message:n,data:d}})),i.success(e.name,n)}catch(a){let t=a instanceof Error?a.message:"Error";x(a=>({...a,[e.id]:{status:"error",message:t}})),i.error(e.name,t)}},[i,v,a,h]),P=(0,n.useCallback)(async()=>{var e,t,s;let n=null==(e=v["nl-entry"])?void 0:e.trim();if(a&&n&&0!==E.length){x(e=>{var t;return{...e,"nl-entry":{status:"running",message:"Saving confirmed records...",data:null==(t=e["nl-entry"])?void 0:t.data}}});try{let e=E.map(e=>{let t=S[e];if(!t)return null;let a=Number(t.quantity);return Number.isFinite(a)?{index:e,scope:1===t.scope||2===t.scope||3===t.scope?t.scope:1,category:t.category.trim(),activity_type:t.activity_type.trim(),quantity:a,unit:t.unit.trim(),location:t.location.trim()||null,period:t.period.trim()}:null}).filter(e=>null!==e),a=await (0,y.nr)(m.bOF.aiToolsPage.naturalLanguageEntry,{method:"POST",credentials:"include",headers:j({"Content-Type":"application/json"}),body:JSON.stringify({input:n,auto_save:!0,confirmed_record_indexes:E,reviewed_re
1cords:e})}),r=await a.json(),l=null!=(s=r.data)?s:r,o=r.message||(null==(t=r.data)?void 0:t.message)||"Saved confirmed records";x(e=>({...e,"nl-entry":{status:"success",message:o,data:l}})),i.success("Natural Language Entry",o)}catch(t){let e=t instanceof Error?t.message:"Error";x(t=>{var a;return{...t,"nl-entry":{status:"error",message:e,data:null==(a=t["nl-entry"])?void 0:a.data}}}),i.error("Natural Language Entry",e)}}},[E,v,a,S,i]);return(0,s.jsxs)(c.OV,{requiredPermissions:[u.aX.DATA_VIEW_ALL],children:[(0,s.jsx)(l(),{children:(0,s.jsx)("title",{children:"AI Tools - Akeptus"})}),(0,s.jsxs)(o.A,{children:[(0,s.jsx)(d.A,{className:"mb-4"}),(0,s.jsxs)("div",{className:"max-w-7xl mx-auto px-6 py-8",children:[(0,s.jsxs)("div",{className:"mb-8 flex items-center gap-3",children:[(0,s.jsx)(b.A,{className:"w-8 h-8 text-emerald-600"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"universal-h1 text-gray-900",children:"AI Tools & Services"}),(0,s.jsx)("p",{className:"text-gray-600",children:"Natural language entry, audit assistance, citation readback, and token management"})]})]}),(0,s.jsx)("div",{className:"mb-6 rounded-xl border border-gray-200 bg-white px-5 py-4",children:(0,s.jsx)("p",{className:"text-sm text-gray-600",children:"Report generation and verification are unavailable until server-owned provenance and an independent approval ledger are connected."})}),(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:N.map(e=>{var t;let n=h[e.id]||{status:"idle"},i=e.icon;return(0,s.jsxs)("div",{className:"bg-white rounded-xl shadow-sm border p-6 ".concat("success"===n.status?"border-emerald-600/20":"error"===n.status?"border-[#e5383b]/20":"border-gray-200"),children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 mb-3",children:[(0,s.jsx)("div",{className:"w-10 h-10 rounded-lg bg-gray-50 flex items-center justify-center",children:(0,s.jsx)(i,{className:"w-5 h-5 text-emerald-600"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:e.name}),(0,s.jsx)("p",{className:"text-sm text-gray-600 mt-1",children:e.desc})]})]}),e.hasInput&&(0,s.jsx)("input",{type:"text",value:v[e.id]||"",onChange:t=>w(a=>({...a,[e.id]:t.target.value})),placeholder:e.inputPlaceholder,className:"w-full mb-4 px-3 py-2 text-sm border border-gray-200 rounded-lg focus:ring-2 focus:ring-emerald-600"}),(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("button",{type:"button",onClick:()=>C(e),disabled:!a||"running"===n.status,className:"px-4 py-2 text-sm bg-emerald-700 text-white rounded-lg hover:bg-stone-700 disabled:opacity-50",children:"running"===n.status?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r._Z,{className:"w-3 h-3 inline animate-spin mr-1"}),"Running..."]}):"Run"}),"success"===n.status&&(0,s.jsx)(f.A,{className:"w-4 h-4 text-emerald-600"}),"error"===n.status&&(0,s.jsxs)("span",{className:"text-xs text-[#e5383b] truncate max-w-[150px]",children:[(0,s.jsx)(r.$8,{className:"w-3 h-3 inline mr-0.5"}),n.message]})]}),(0,s.jsxs)("div",{className:"mt-2 text-xs text-gray-400 font-mono truncate",children:[e.method," ",e.endpoint]}),"nl-entry"===e.id&&q&&((null==(t=q.parsed)?void 0:t.length)||0)>0&&(0,s.jsxs)("div",{className:"mt-4 rounded-lg border border-[#fe7254] bg-[#fe7254] p-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Confirm parsed records before saving"}),(0,s.jsx)("p",{className:"mt-1 text-xs text-gray-600",children:"Only confirmed records will be submitted with `auto_save=true`."})]}),(0,s.jsx)("button",{type:"button",onClick:()=>{P()},disabled:0===E.length||"running"===n.status,className:"rounded-lg bg-[#fe7254] px-3 py-2 text-xs font-medium text-white disabled:opacity-50",children:"Save confirmed records"})]}),(0,s.jsx)("div",{className:"mt-3 space-y-2",children:(q.parsed||[]).map((e,t)=>{var a,n,r,i,l,o,d,c;return(0,s.jsxs)("div",{className:"rounded-lg border border-[#fe7254]/20 bg-white p-3",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)("input",{type:"checkbox","aria-label":"Confirm record ".concat(t+1),checked:!!A[t],onChange:e=>_(a=>({...a,[t]:e.target.checked}
1)),className:"mt-1 h-4 w-4 rounded border-gray-100 text-emerald-700 focus:ring-emerald-600"}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:"text-sm font-medium text-gray-900",children:["Review record ",t+1]}),(0,s.jsxs)("p",{className:"mt-1 text-sm text-gray-700",children:[e.activity_type,": ",e.quantity.toLocaleString()," ",e.unit," for ",e.period]})]})]}),(0,s.jsxs)("div",{className:"mt-3 grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,s.jsxs)("label",{className:"text-xs text-gray-700",children:["Quantity for record ",t+1,(0,s.jsx)("input",{type:"number","aria-label":"Quantity for record ".concat(t+1),value:null!=(l=null==(a=S[t])?void 0:a.quantity)?l:"",onChange:a=>k(s=>{var n,r;return{...s,[t]:{...null!=(r=s[t])?r:{scope:e.scope,category:e.category,activity_type:e.activity_type,quantity:String(e.quantity),unit:e.unit,location:null!=(n=e.location)?n:"",period:e.period},quantity:a.target.value}}}),className:"mt-1 w-full rounded-md border border-gray-200 px-3 py-2 text-sm"})]}),(0,s.jsxs)("label",{className:"text-xs text-gray-700",children:["Period for record ",t+1,(0,s.jsx)("input",{type:"text","aria-label":"Period for record ".concat(t+1),value:null!=(o=null==(n=S[t])?void 0:n.period)?o:"",onChange:a=>k(s=>{var n,r;return{...s,[t]:{...null!=(r=s[t])?r:{scope:e.scope,category:e.category,activity_type:e.activity_type,quantity:String(e.quantity),unit:e.unit,location:null!=(n=e.location)?n:"",period:e.period},period:a.target.value}}}),className:"mt-1 w-full rounded-md border border-gray-200 px-3 py-2 text-sm"})]}),(0,s.jsxs)("label",{className:"text-xs text-gray-700",children:["Activity type for record ",t+1,(0,s.jsx)("input",{type:"text",value:null!=(d=null==(r=S[t])?void 0:r.activity_type)?d:"",onChange:a=>k(s=>{var n,r;return{...s,[t]:{...null!=(r=s[t])?r:{scope:e.scope,category:e.category,activity_type:e.activity_type,quantity:String(e.quantity),unit:e.unit,location:null!=(n=e.location)?n:"",period:e.period},activity_type:a.target.value}}}),className:"mt-1 w-full rounded-md border border-gray-200 px-3 py-2 text-sm"})]}),(0,s.jsxs)("label",{className:"text-xs text-gray-700",children:["Unit for record ",t+1,(0,s.jsx)("input",{type:"text",value:null!=(c=null==(i=S[t])?void 0:i.unit)?c:"",onCh
1ange:a=>k(s=>{var n,r;return{...s,[t]:{...null!=(r=s[t])?r:{scope:e.scope,category:e.category,activity_type:e.activity_type,quantity:String(e.quantity),unit:e.unit,location:null!=(n=e.location)?n:"",period:e.period},unit:a.target.value}}}),className:"mt-1 w-full rounded-md border border-gray-200 px-3 py-2 text-sm"})]})]})]},"".concat(e.category,"-").concat(e.activity_type,"-").concat(t))})}),(q.warnings||[]).length>0&&(0,s.jsx)("div",{className:"mt-3 space-y-1",children:(q.warnings||[]).map(e=>(0,s.jsx)("p",{className:"text-xs text-white",children:e},e))})]})]},e.id)})})]})]})]})}},567247:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var s=a(637876),n=a(648230),r=a.n(n),i=a(869241);let l=e=>{let{items:t,className:a}=e;return(null==t?void 0:t.length)?(0,s.jsx)("nav",{className:(0,i.A)("flex",a),"aria-label":"Breadcrumb",children:(0,s.jsx)("ol",{className:"flex items-center gap-2",children:t.map((e,a)=>{let n=a===t.length-1;return(0,s.jsxs)("li",{className:"flex items-center gap-2",children:[e.href&&!n?(0,s.jsx)(r(),{href:e.href,className:"universal-body text-gray-500 hover:text-gray-700 transition-colors",children:e.label}):(0,s.jsx)("span",{className:(0,i.A)("universal-body",n?"text-gray-900 font-medium":"text-gray-500"),children:e.label}),!n&&(0,s.jsx)("span",{className:"universal-body text-gray-400",children:"/"})]},"".concat(e.label,"-").concat(a))})})}):null}},770377:(e,t,a)=>{"use strict";a.d(t,{l:()=>u});var s=a(776413),n=a(89099),r=a(14232);let i={label:"Home",href:"/dashboard"},l={"/homeowners/app":"Dashboard","/homeowners/autopilot":"Autopilot","/homeowners/utilities":"Utilities","/
1homeowners/home-health":"Home Health","/homeowners/household":"Household","/homeowners/tasks":"Tasks","/homeowners/profile":"Home Dossier","/homeowners/agents":"Autopilot","/reports/collaborative":"Collaborative Documents","/reports/regulatory":"Regulatory Reports","/reports/custom":"Custom Reports","/reports/data-request":"Data Requests","/boundaries/facilities":"Facility Mapping","/boundaries/entity":"Organizational Boundaries","/strategy/targets":"Targets & Goals","/strategy/roadmap":"Strategy Roadmap","/strategy/risks":"Risk Assessment","/strategy/benchmarks":"Performance Benchmarks","/strategy/governance":"Strategy Governance","/strategy/scenarios":"Scenario Planner","/strategy/slb-bonds":"SLB Bonds","/data/metrics-library":"Metrics Library","/data/ai-quality":"AI Data Quality","/data/pca-anomaly":"PCA Anomaly Detection","/validation/issues":"Validation Issues","/validation/rules":"Validation Rules","/validation/history":"Validation History","/validation/index":"Validation Dashboard","/energy-management/demand-response":"Demand Response","/energy-management/hvac":"HVAC Optimization","/energy-management/fleet":"Fleet Electrification","/energy-management/planning":"Energy Planning","/energy-management/maintenance":"Maintenance","/energy-management/recovery":"Energy Recovery","/energy-management/analytics":"Energy Analytics","/emissions/methodologies":"Methodologies","/emissions/pca-analytics":"PCA Analytics","/emissions/analysis":"Emissions Analysis","/emissions/targets":"Emissions Targets","/emissions/offsets":"Offsets","/emissions/factors":"Emission Factors","/emissions/negative":"Negative Emissions","/emissions/scope1":"Scope 1","/emissions/scope2":"Scope 2","/emissions/scope3":"Scope 3","/carbon-optimization":"Carbon Optimization","/data-request":"Data Requests","/assets/analytics":"Asset Analytics","/assets/reports":"Asset Reports","/assets/maintenance":"Asset Maintenance","/assets/inventory":"Asset Inventory","/governance/users":"Governance Users","/governance/framework":"Governance Framework","/governance/calendar":"Governance Calendar","/suppliers/requests":"Supplier Requests","/suppliers/responses":"Supplier Responses","/clients/suppliers/analytics":"Supplier Analytics","/suppliers/scope3":"Supplier Scope 3"},o={dashboard:{label:"Home",href:"/dashboard"},homeowners:{label:"Home OS",href:"/homeowners/app"},reports:{label:"Reports",href:"/reports"},strategy:{label:"Strategy",href:"/strategy"},data:{label:"Data Hub",href:"/data"},validation:{label:"Validation",href:"/validation"},boundaries:{label:"Boundaries",href:"/boundaries"},assets:{label:"Assets",href:"/assets"},governance:{label:"Governance",href:"/governance"},suppliers:{label:"Suppliers",href:"/suppliers"},"energy-management":{label:"Energy Management",href:"/energy-management"},emissions:{label:"Emissions",href:"/emissions"},audit:{label:"Audit",href:"/audit"},ai:{label:"AI",href:"/ai"},nilm:{label:"NILM",href:"/nilm"},integrations:{label:"Integrations",href:"/integrations"},approvals:{label:"Approvals",href:"/governance/approvals"},"data-request":{label:"Data Requests",href:"/data-request"},"carbon-optimization":{label:"Carbon Optimization",href:"/carbon-optimization"}},d=new Set(["ghg","ai","ppa","cfe","nilm","eac","cbam","saf"]),c=e=>e.replace(/\/+/g,"/").replace(/\/$/,"")||"/",u=()=>{let e=(0,n.useRouter)();return(0,r.useMemo)(()=>(e=>{var t;let a=c((null==e||null==(t=e.split("?")[0])?void 0:t.split("#")[0])||"/");if("/"===a||"/dashboard"===a)return[];let n=a.split("/").filter(Boolean),r=[i],u="";return n.forEach((e,t)=>{var a,i;if("/dashboard"===(u+="/".concat(e)))return;let m=c(u),p=l[m],g=o[e],y=t===n.length-1,h=null!=(a=null!=p?p:null==g?void 0:g.label)?a:(e=>e.startsWith("[")&&e.endsWith("]"))(e)||/^[0-9a-f-]{6,}$/i.test(e)?"Details":e.split("-").map(e=>{let t=(0,s.uu)(e);return d.has(t)?(0,s.F4)(t):(0,s.F4)(e.charAt(0))+e.slice(1)}).join(" "),x=y?void 0:null!=(i=null==g?void 0:g.href)?i:m;r.push({label:h,href:x})}),r})(e.asPath||e.pathname||""),[e.asPath,e.pathname])}},771692:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/ai/tools",function(){return a(5511
154)}])}},e=>{e.O(0,[38513,82909,58422,1126,10553,42237,65130,41941,75656,77197,54587,29186,6679,82373,1272,26794,54523,21266,94890,10773,50762,1537,17427,37432,43956,18521,90636,46593,38792],()=>e(e.s=771692)),_N_E=e.O()}]);
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.