@canonry/canonry 5.9.0 → 5.11.0

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.
Files changed (36) hide show
  1. package/assets/agent-workspace/skills/aero/SKILL.md +13 -6
  2. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +36 -9
  3. package/assets/assets/{AuditHistoryPanel-DumM4n44.js → AuditHistoryPanel-Cq8CoZV5.js} +1 -1
  4. package/assets/assets/{BacklinksPage-DHW-aDYf.js → BacklinksPage-B5_QeuXd.js} +1 -1
  5. package/assets/assets/{HistoryPage-DJgCpcmY.js → HistoryPage-Foj5--rM.js} +1 -1
  6. package/assets/assets/MeasurementPropertyPage-2t8jVNFL.js +1 -0
  7. package/assets/assets/{ProjectPage-BKZyG1S3.js → ProjectPage-By0UYm8r.js} +5 -5
  8. package/assets/assets/{RunRow-plH2LI7o.js → RunRow-CbTtzDK5.js} +1 -1
  9. package/assets/assets/{RunsPage-JCSy7P9I.js → RunsPage-Cjv7YiXR.js} +1 -1
  10. package/assets/assets/{SettingsPage-B8KXT4YK.js → SettingsPage-DIQgJQ8Y.js} +1 -1
  11. package/assets/assets/SiteHealthSection-CUNhD0To.js +4 -0
  12. package/assets/assets/{TrafficPage-BYLDNQ1A.js → TrafficPage-abuZqCEU.js} +3 -3
  13. package/assets/assets/{TrafficSourceDetailPage-CxseBpYr.js → TrafficSourceDetailPage-B-zVt0Sa.js} +1 -1
  14. package/assets/assets/{extract-error-message-Dv5fwiqy.js → extract-error-message-C5-X8IcG.js} +1 -1
  15. package/assets/assets/index-Dzg_siX8.js +86 -0
  16. package/assets/assets/{index-neNKCg78.css → index-EJC8PSbh.css} +1 -1
  17. package/assets/assets/{react-sigma_core.esm.min-C8381RhL.js → react-sigma_core.esm.min-Ybxr8Ybd.js} +1 -1
  18. package/assets/assets/v2-overview-adapter-BMOnF8IE.js +1 -0
  19. package/assets/assets/{vendor-lucide-CneDbhOr.js → vendor-lucide-N6vOpZmh.js} +1 -1
  20. package/assets/index.html +3 -3
  21. package/dist/{chunk-R4COV5KR.js → chunk-JNU6GLAV.js} +2 -2
  22. package/dist/{chunk-S4DBS5DP.js → chunk-JW5DCORY.js} +188 -52
  23. package/dist/{chunk-D3DKDTXP.js → chunk-MQMJJZ6W.js} +114 -0
  24. package/dist/{chunk-LR7BVM53.js → chunk-NV3X6O5P.js} +2 -2
  25. package/dist/{chunk-5E4ASNU4.js → chunk-SMYBGUVV.js} +2089 -1903
  26. package/dist/{chunk-WTYVSCMP.js → chunk-UYSTNPTX.js} +589 -351
  27. package/dist/cli.js +136 -15
  28. package/dist/{demo-server-WRVVNKLS.js → demo-server-76IZBMJ3.js} +3 -3
  29. package/dist/index.js +5 -5
  30. package/dist/{intelligence-service-4XMMO3JK.js → intelligence-service-KF5WWPGR.js} +2 -2
  31. package/dist/mcp.js +3 -3
  32. package/package.json +11 -11
  33. package/assets/assets/MeasurementPropertyPage-CblC7DUV.js +0 -1
  34. package/assets/assets/SiteHealthSection-06pNjngi.js +0 -4
  35. package/assets/assets/index-2Ldc0Hq4.js +0 -86
  36. package/assets/assets/v2-overview-adapter-BQD1Ap8K.js +0 -1
@@ -1,4 +1,4 @@
1
- import{g as Bt,t as S,r as C}from"./vendor-tanstack-ZXXkndVj.js";import{e as Ht,G as Wt}from"./SiteHealthSection-06pNjngi.js";import"./index-2Ldc0Hq4.js";import"./vendor-radix-twS1M3FF.js";import"./vendor-recharts-llkUFBGR.js";import"./vendor-lucide-CneDbhOr.js";import"./vendor-markdown-B4giJcws.js";import"./vendor-yaml-GWJz5H2G.js";import"./ChartPrimitives-BQC2VH0O.js";function Vt(r,n){if(typeof r!="object"||!r)return r;var i=r[Symbol.toPrimitive];if(i!==void 0){var e=i.call(r,n);if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}function ae(r){var n=Vt(r,"string");return typeof n=="symbol"?n:n+""}function A(r,n){if(!(r instanceof n))throw new TypeError("Cannot call a class as a function")}function He(r,n){for(var i=0;i<n.length;i++){var e=n[i];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(r,ae(e.key),e)}}function L(r,n,i){return n&&He(r.prototype,n),i&&He(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r}function Q(r){return Q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Q(r)}function yt(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(yt=function(){return!!r})()}function jt(r){if(r===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r}function Zt(r,n){if(n&&(typeof n=="object"||typeof n=="function"))return n;if(n!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return jt(r)}function I(r,n,i){return n=Q(n),Zt(r,yt()?Reflect.construct(n,i||[],Q(r).constructor):n.apply(r,i))}function xe(r,n){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,e){return i.__proto__=e,i},xe(r,n)}function G(r,n){if(typeof n!="function"&&n!==null)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(n&&n.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),n&&xe(r,n)}function qt(r){if(Array.isArray(r))return r}function Yt(r,n){var i=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(i!=null){var e,t,a,o,s=[],l=!0,h=!1;try{if(a=(i=i.call(r)).next,n===0){if(Object(i)!==i)return;l=!1}else for(;!(l=(e=a.call(i)).done)&&(s.push(e.value),s.length!==n);l=!0);}catch(u){h=!0,t=u}finally{try{if(!l&&i.return!=null&&(o=i.return(),Object(o)!==o))return}finally{if(h)throw t}}return s}}function Se(r,n){(n==null||n>r.length)&&(n=r.length);for(var i=0,e=Array(n);i<n;i++)e[i]=r[i];return e}function Tt(r,n){if(r){if(typeof r=="string")return Se(r,n);var i={}.toString.call(r).slice(8,-1);return i==="Object"&&r.constructor&&(i=r.constructor.name),i==="Map"||i==="Set"?Array.from(r):i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Se(r,n):void 0}}function Xt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1
+ import{g as Bt,t as S,r as C}from"./vendor-tanstack-ZXXkndVj.js";import{e as Ht,G as Wt}from"./SiteHealthSection-CUNhD0To.js";import"./index-Dzg_siX8.js";import"./vendor-radix-twS1M3FF.js";import"./vendor-recharts-llkUFBGR.js";import"./vendor-lucide-N6vOpZmh.js";import"./vendor-markdown-B4giJcws.js";import"./vendor-yaml-GWJz5H2G.js";import"./ChartPrimitives-BQC2VH0O.js";function Vt(r,n){if(typeof r!="object"||!r)return r;var i=r[Symbol.toPrimitive];if(i!==void 0){var e=i.call(r,n);if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}function ae(r){var n=Vt(r,"string");return typeof n=="symbol"?n:n+""}function A(r,n){if(!(r instanceof n))throw new TypeError("Cannot call a class as a function")}function He(r,n){for(var i=0;i<n.length;i++){var e=n[i];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(r,ae(e.key),e)}}function L(r,n,i){return n&&He(r.prototype,n),i&&He(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r}function Q(r){return Q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Q(r)}function yt(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(yt=function(){return!!r})()}function jt(r){if(r===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r}function Zt(r,n){if(n&&(typeof n=="object"||typeof n=="function"))return n;if(n!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return jt(r)}function I(r,n,i){return n=Q(n),Zt(r,yt()?Reflect.construct(n,i||[],Q(r).constructor):n.apply(r,i))}function xe(r,n){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,e){return i.__proto__=e,i},xe(r,n)}function G(r,n){if(typeof n!="function"&&n!==null)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(n&&n.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),n&&xe(r,n)}function qt(r){if(Array.isArray(r))return r}function Yt(r,n){var i=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(i!=null){var e,t,a,o,s=[],l=!0,h=!1;try{if(a=(i=i.call(r)).next,n===0){if(Object(i)!==i)return;l=!1}else for(;!(l=(e=a.call(i)).done)&&(s.push(e.value),s.length!==n);l=!0);}catch(u){h=!0,t=u}finally{try{if(!l&&i.return!=null&&(o=i.return(),Object(o)!==o))return}finally{if(h)throw t}}return s}}function Se(r,n){(n==null||n>r.length)&&(n=r.length);for(var i=0,e=Array(n);i<n;i++)e[i]=r[i];return e}function Tt(r,n){if(r){if(typeof r=="string")return Se(r,n);var i={}.toString.call(r).slice(8,-1);return i==="Object"&&r.constructor&&(i=r.constructor.name),i==="Map"||i==="Set"?Array.from(r):i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Se(r,n):void 0}}function Xt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(r,n){return qt(r)||Yt(r,n)||Tt(r,n)||Xt()}var pe={black:"#000000",silver:"#C0C0C0",gray:"#808080",grey:"#808080",white:"#FFFFFF",maroon:"#800000",red:"#FF0000",purple:"#800080",fuchsia:"#FF00FF",green:"#008000",lime:"#00FF00",olive:"#808000",yellow:"#FFFF00",navy:"#000080",blue:"#0000FF",teal:"#008080",aqua:"#00FFFF",darkblue:"#00008B",mediumblue:"#0000CD",darkgreen:"#006400",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",springgreen:"#00FF7F",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",rebeccapurple:"#663399",mediumaquamarine:"#66CDAA",dimgray:"#696969",dimgrey:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",slategrey:"#708090",lightslategray:"#778899",lightslategrey:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370DB",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",palevioletred:"#DB7093",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",lightyellow:"#FFFFE0",ivory:"#FFFFF0"},Ct=new Int8Array(4),be=new Int32Array(Ct.buffer,0,1),$t=new Float32Array(Ct.buffer,0,1),Kt=/^\s*rgba?\s*\(/,Jt=/^\s*rgba?\s*\(\s*([0-9]*)\s*,\s*([0-9]*)\s*,\s*([0-9]*)(?:\s*,\s*(.*)?)?\)\s*$/;function Qt(r){var n=0,i=0,e=0,t=1;if(r[0]==="#")r.length===4?(n=parseInt(r.charAt(1)+r.charAt(1),16),i=parseInt(r.charAt(2)+r.charAt(2),16),e=parseInt(r.charAt(3)+r.charAt(3),16)):(n=parseInt(r.charAt(1)+r.charAt(2),16),i=parseInt(r.charAt(3)+r.charAt(4),16),e=parseInt(r.charAt(5)+r.charAt(6),16)),r.length===9&&(t=parseInt(r.charAt(7)+r.charAt(8),16)/255);else if(Kt.test(r)){var a=r.match(Jt);a&&(n=+a[1],i=+a[2],e=+a[3],a[4]&&(t=+a[4]))}return{r:n,g:i,b:e,a:t}}var J={};for(var le in pe)J[le]=oe(pe[le]),J[pe[le]]=J[le];function Rt(r,n,i,e,t){return be[0]=e<<24|i<<16|n<<8|r,be[0]=be[0]&4278190079,$t[0]}function oe(r){if(r=r.toLowerCase(),typeof J[r]<"u")return J[r];var n=Qt(r),i=n.r,e=n.g,t=n.b,a=n.a;a=a*255|0;var o=Rt(i,e,t,a);return J[r]=o,o}var Ee={};function _t(r){if(typeof Ee[r]<"u")return Ee[r];var n=(r&16711680)>>>16,i=(r&65280)>>>8,e=r&255,t=255,a=Rt(n,i,e,t);return Ee[r]=a,a}function We(r,n,i,e){return i+(n<<8)+(r<<16)}function Ve(r,n,i,e,t,a){var o=Math.floor(i/a*t),s=Math.floor(r.drawingBufferHeight/a-e/a*t),l=new Uint8Array(4);r.bindFramebuffer(r.FRAMEBUFFER,n),r.readPixels(o,s,1,1,r.RGBA,r.UNSIGNED_BYTE,l);var h=ee(l,4),u=h[0],d=h[1],f=h[2],g=h[3];return[u,d,f,g]}function c(r,n,i){return(n=ae(n))in r?Object.defineProperty(r,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[n]=i,r}function je(r,n){var i=Object.keys(r);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(r);n&&(e=e.filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})),i.push.apply(i,e)}return i}function b(r){for(var n=1;n<arguments.length;n++){var i=arguments[n]!=null?arguments[n]:{};n%2?je(Object(i),!0).forEach(function(e){c(r,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):je(Object(i)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))})}return r}function ei(r,n){for(;!{}.hasOwnProperty.call(r,n)&&(r=Q(r))!==null;);return r}function Ae(){return Ae=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(r,n,i){var e=ei(r,n);if(e){var t=Object.getOwnPropertyDescriptor(e,n);return t.get?t.get.call(arguments.length<3?r:i):t.value}},Ae.apply(null,arguments)}function wt(r,n,i,e){var t=Ae(Q(r.prototype),n,i);return typeof t=="function"?function(a){return t.apply(i,a)}:t}function ti(r){return r.normalized?1:r.size}function ye(r){var n=0;return r.forEach(function(i){return n+=ti(i)}),n}function xt(r,n,i){var e=r==="VERTEX"?n.VERTEX_SHADER:n.FRAGMENT_SHADER,t=n.createShader(e);if(t===null)throw new Error("loadShader: error while creating the shader");n.shaderSource(t,i),n.compileShader(t);var a=n.getShaderParameter(t,n.COMPILE_STATUS);if(!a){var o=n.getShaderInfoLog(t);throw n.deleteShader(t),new Error(`loadShader: error while compiling the shader:
3
3
  `.concat(o,`
4
4
  `).concat(i))}return t}function ii(r,n){return xt("VERTEX",r,n)}function ri(r,n){return xt("FRAGMENT",r,n)}function ni(r,n){var i=r.createProgram();if(i===null)throw new Error("loadProgram: error while creating the program.");var e,t;for(e=0,t=n.length;e<t;e++)r.attachShader(i,n[e]);r.linkProgram(i);var a=r.getProgramParameter(i,r.LINK_STATUS);if(!a){var o=r.getProgramInfoLog(i);throw r.deleteProgram(i),new Error("loadProgram: error while linking the program: ".concat(o))}return i}function Ze(r){var n=r.gl,i=r.buffer,e=r.program,t=r.vertexShader,a=r.fragmentShader;n.deleteShader(t),n.deleteShader(a),n.deleteProgram(e),n.deleteBuffer(i)}var qe=`#define PICKING_MODE
@@ -0,0 +1 @@
1
+ import{j as s,r as C}from"./vendor-tanstack-ZXXkndVj.js";import{A as ie,B as oe}from"./index-Dzg_siX8.js";import{M as le}from"./vendor-markdown-B4giJcws.js";import{C as ue,$ as ce,g as J}from"./vendor-lucide-N6vOpZmh.js";const $e="Sources",B={copy:"Copy answer",copying:"Copying…",copied:"Copied",failed:"Could not copy. Select and copy the answer above."};function de({headingLevel:e}){return n=>{const l=[],u=c=>{c.type==="heading"&&c.depth&&l.push(c),c.children?.forEach(u)};u(n);const f=l.reduce((c,p)=>Math.min(c,p.depth),6);for(const c of l){const p=c.depth-f;c.depth=Math.min(6,e+p),c.data={...c.data,hProperties:{...c.data?.hProperties,"data-answer-heading-level":p+1}}}}}function pe({answer:e}){const[n,l]=C.useState("idle"),u=C.useRef(!1),f=async()=>{if(!u.current){u.current=!0,l("copying");try{await navigator.clipboard.writeText(e),l("copied")}catch{l("failed")}finally{u.current=!1}}};return s.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-x-3",children:[s.jsx(oe,{type:"button",variant:"ghost",className:"min-h-11 px-2","aria-disabled":n==="copying","aria-busy":n==="copying",onClick:()=>{f()},children:n==="copying"?B.copying:B.copy}),s.jsx("span",{role:"status",className:"text-sm text-secondary",children:n==="copied"?B.copied:n==="failed"?B.failed:""})]})}function Me({children:e,headingLevel:n=4,copyable:l=!1}){return s.jsxs("div",{className:"answer-markdown",children:[s.jsx(le,{remarkPlugins:[[de,{headingLevel:n}]],components:{p:({children:u})=>s.jsx("p",{className:"mb-3 whitespace-pre-wrap last:mb-0",children:u}),ul:({children:u})=>s.jsx("ul",{className:"mb-3 ml-5 list-disc space-y-1",children:u}),ol:({children:u,start:f})=>s.jsx("ol",{start:f,className:"mb-3 ml-5 list-decimal space-y-1",children:u}),pre:({children:u})=>s.jsx("pre",{className:"mb-3 overflow-x-auto whitespace-pre-wrap",children:u}),a:({children:u,href:f})=>{const c=ie(f);return c?s.jsx("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"text-link underline",children:u}):s.jsx("span",{children:u})},img:({alt:u})=>s.jsx("span",{children:u})},children:e}),l&&e.trim()?s.jsx(pe,{answer:e},e):null]})}const X="min-h-11 w-full rounded-md border border-default bg-surface px-3 py-2 text-sm text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",D="flex min-h-11 w-full items-center justify-between gap-3 rounded px-2 text-left text-sm text-primary hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",q=e=>e.kind==="project"?"Whole site":e.label,E={allMarkets:"All markets",browse:e=>`Browse ${e}`,select:e=>`Select ${e}`,browseAll:"Browse all properties"},me=e=>e?.kind==="group"&&e.marketKeys?.length===1?e.marketKeys[0]:void 0,ee=e=>`${e} ${e===1?"property":"properties"}`;function Ie({options:e,selected:n,onSelect:l,marketKey:u,label:f="Measurement scope",labelVisibility:c="visible",allowGroupSelect:p=!0}){const a=[...e].sort((t,o)=>t.label.localeCompare(o.label,void 0,{numeric:!0})||t.id.localeCompare(o.id)),[x,k]=C.useState(""),[M,I]=C.useState([]),[y,N]=C.useState(!1),b=C.useRef(null),v=C.useRef(null),r=C.useId(),g=a.filter(t=>t.kind==="group"),m=new Map(g.map(t=>[t.id,t])),i=m.get(M.at(-1)??""),U=m.get(M.at(-2)??""),h=x.trim().toLocaleLowerCase(),re=g.filter(t=>!t.parentGroupIds?.some(o=>m.has(o))),_=a.filter(t=>t.kind==="property"),L=t=>(t.parentGroupIds??[]).map(o=>m.get(o)?.label).filter(Boolean).join(" · "),R=t=>`${q(t)} ${L(t)}`.toLocaleLowerCase().includes(h),F=t=>{const o=[...t.parentGroupIds??[]],d=new Set;for(;o.length;){const j=o.pop();if(j===i?.id)return!0;d.has(j)||(d.add(j),o.push(...m.get(j)?.parentGroupIds??[]))}return!1},K=(y?[]:i?g.filter(t=>h?F(t):t.parentGroupIds?.includes(i.id)):h?g:re).filter(R),S=a.find(t=>t.kind==="market"&&t.id===(u??(n.kind==="market"?n.id:void 0))),H=i&&S&&(i.marketKeys?.includes(S.id)||S.parentGroupIds?.includes(i.id))?S.id:void 0,O=p?H??me(i):void 0,G=(i?_.filter(t=>t.parentGroupIds?.includes(i.id)&&(!O||t.marketKeys?.includes(O))):h||y||g.length===0?_:[]).filter(R),W=a.filter(t=>t.kind!=="market"||y||!p&&!i&&!h&&g.length>0||p&&i?.marketKeys?.length===1&&!h?!1:(i?h?F(t):t.parentGroupIds?.includes(i.id):h||!t.parentGroupIds?.some(d=>m.has(d)))&&R(t)),z=i||y?[]:a.filter(t=>t.kind==="project"&&R(t));C.useEffect(()=>{const t=o=>{b.current?.open&&o.target instanceof Node&&!b.current.contains(o.target)&&(b.current.open=!1)};return document.addEventListener("pointerdown",t),()=>document.removeEventListener("pointerdown",t)},[]);const se=t=>{b.current&&(b.current.open=!1,b.current.querySelector("summary")?.focus());const o=p?t.kind==="property"?O:t.kind==="group"&&t.id===i?.id?H:void 0:void 0;o?l(t,o):l(t)},T=t=>{const o=[];let d=m.get(t.parentGroupIds?.[0]??"");for(;d&&!o.includes(d.id)&&d.id!==t.id;)o.unshift(d.id),d=m.get(d.parentGroupIds?.[0]??"");return[...o,t.id]},ae=()=>{const t=n.kind==="group"?m.get(n.id):void 0,o=m.get(S?.parentGroupIds?.[0]??""),d=(n.parentGroupIds??[]).flatMap(A=>{const w=m.get(A);return w?[T(w)]:[]}),j=d.find(A=>A.at(-1)===i?.id)??d.sort((A,w)=>w.length-A.length)[0]??[],Z=o?T(o):n.marketKeys?.length?[]:j;I(t?T(t):Z),N(n.kind==="property"&&Z.length===0&&g.length>0),k("")},Q=t=>{I(T(t)),N(!1),k(""),v.current?.focus()},P=(t,o=q(t))=>s.jsxs("div",{className:"flex items-stretch",children:[s.jsxs("button",{type:"button",className:D,"aria-label":t.kind==="group"&&!p?E.browse(q(t)):E.select(q(t)),"aria-current":n.kind===t.kind&&n.id===t.id?"true":void 0,onClick:()=>t.kind==="group"&&!p?Q(t):se(t),children:[s.jsxs("span",{className:"min-w-0 break-words",children:[o,h&&L(t)?s.jsx("span",{className:"block text-[13px] text-secondary",children:L(t)}):null]}),s.jsx("span",{className:"shrink-0 text-right text-[13px] text-secondary",children:t.kind==="market"?p?"Query context":"Market":t.kind==="property"?"Property":ee(t.targetCount)})]}),p&&t.kind==="group"&&t.id!==i?.id&&a.some(d=>d.parentGroupIds?.includes(t.id))?s.jsx("button",{type:"button","aria-label":E.browse(t.label),title:`Browse ${t.label}`,className:"flex min-h-11 min-w-11 items-center justify-center rounded text-secondary hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",onClick:()=>Q(t),children:s.jsx(J,{size:18,"aria-hidden":"true"})}):null]},`${t.kind}:${t.id}`),V=(t,o)=>o.length>0?s.jsxs("section",{"aria-label":t,className:"mt-2",children:[s.jsx("h3",{className:"px-2 py-2 text-[13px] font-medium text-secondary",children:t}),o.map(d=>P(d))]}):null,Y=(t,o,d)=>o.length>0?s.jsxs("details",{open:d,className:"mt-2 border-y border-default",children:[s.jsxs("summary",{className:"min-h-11 cursor-pointer px-2 py-3 text-sm text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",children:[t," (",o.length,")"]}),o.map(j=>P(j))]},`${i?.id??"root"}:${t}`):null;return s.jsxs("div",{className:"min-w-0",children:[s.jsx("span",{id:`${r}-label`,className:c==="sr-only"?"sr-only":"mb-1 block text-sm font-medium text-heading",children:f}),s.jsxs("details",{ref:b,className:"relative",onToggle:t=>{t.target===t.currentTarget&&t.currentTarget.open&&v.current?.focus()},onKeyDown:t=>{t.key==="Escape"&&(t.preventDefault(),t.currentTarget.open=!1,t.currentTarget.querySelector("summary")?.focus())},children:[s.jsxs("summary",{id:`${r}-value`,"aria-labelledby":`${r}-label ${r}-value`,className:`${X} visibility-scope-trigger`,onClick:()=>{b.current?.open||ae()},children:[`${q(n)}${n.kind==="group"?` · ${ee(n.targetCount)}`:n.kind==="property"?` · ${a.find(t=>t.kind==="market"&&t.id===u)?.label??(n.marketKeys?.length?E.allMarkets:"Property")}`:n.kind==="market"?" · Market":""}`,s.jsx(ue,{size:16,"aria-hidden":"true",className:"shrink-0 text-secondary"})]}),s.jsxs("div",{className:"visibility-scope-menu",children:[i||y?s.jsxs("div",{className:"mb-2 border-b border-default pb-2",children:[s.jsx("button",{type:"button",className:D,"aria-label":`Back to ${U?.label??"all groups"}`,onClick:()=>{I(M.slice(0,-1)),N(!1),k(""),v.current?.focus()},children:s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(ce,{size:16,"aria-hidden":"true"}),U?.label??"All groups"]})}),s.jsx("p",{className:"px-2 py-1 text-sm font-medium text-heading","aria-live":"polite",children:i?.label??"All properties"})]}):null,s.jsx("input",{ref:v,type:"search","aria-label":"Search scopes",className:X,placeholder:i?"Search within this group":y?"Search properties":"Search groups or properties",value:x,onChange:t=>k(t.target.value)}),s.jsxs("div",{className:"mt-2 max-h-80 overflow-y-auto",children:[p&&i&&!h?P(i,"All properties in this group"):null,z.map(t=>P(t)),i&&!h?Y("Subgroups",K,!0):V(i?"Subgroups":"Groups",K),h?V("Properties",G):Y(i&&K.length>0?"All properties":"Properties",G,!i||K.length===0),V("Markets",W),!i&&!y&&!h&&g.length>0&&_.length>0?s.jsxs("button",{type:"button",className:`${D} mt-2 border-t border-default`,"aria-label":E.browseAll,onClick:()=>{N(!0),v.current?.focus()},children:[s.jsx("span",{children:"All properties"}),s.jsx(J,{size:18,"aria-hidden":"true"})]}):null,h&&K.length+G.length+W.length+z.length===0?s.jsx("p",{className:"py-3 text-sm text-secondary",children:"No matching scopes."}):null]})]})]})]})}function Ke(e){const n=e[0];return n?e.every(l=>l.mode===n.mode&&l.scope.kind===n.scope.kind&&l.scope.key===n.scope.key&&l.queryClass===n.queryClass&&l.measurement.displayedRunId===n.measurement.displayedRunId):!0}function $(e){return e.state==="unavailable"?{numerator:null,denominator:null,reason:e.reason}:e.numerator===void 0||e.denominator===void 0||e.denominator<=0?{numerator:null,denominator:null,reason:"not_applicable"}:{numerator:e.numerator,denominator:e.denominator}}function ge(e){return e.kind==="exact"?e.url:e.kind==="prefix"?`https://${e.host}${e.pathPrefix}/*`:`https://${e.host}/*`}function fe(e){return e==="assigned"?"this-property":e==="sibling"?"another-property":e==="ownedUnmapped"?"owned-unassigned":e==="external"?"external":e==="ambiguous"?"multiple-properties":"invalid-url"}function he(e){return e==="assigned"?"positive":e==="external"?"neutral":e==="invalid"?"negative":"caution"}function te(e){return`target:${e.targetKey}:${e.queryId}:${e.executionNodeKey}`}function ye(e,n,l){const u=new Map;if(!n)return u;const f=new Map(e.usageEdges.map(a=>[te(a),a.targetKey])),c=new Map(e.assignments.map(a=>[`${a.targetKey}:${a.queryId}`,a.queryClass])),p=new Map(e.usageEdges.map(a=>[te(a),c.get(`${a.targetKey}:${a.queryId}`)]));for(const a of n.evidence){if(l&&p.get(a.usageEdgeId)!==l)continue;const x=f.get(a.usageEdgeId);if(!x)continue;const k=u.get(x)??[];k.push({id:`${a.observationId}:${a.expectedSlotId}:${a.usageEdgeId}:${a.sourceUrl}`,kind:fe(a.classification),query:a.queryText,provider:a.provider,location:a.location,url:a.sourceUrl,tone:he(a.classification),historical:a.historical||a.bridged}),u.set(x,k)}return u}function be(e){if(e.flags>0)return{label:"Review",tone:"caution"};const n=[e.mentionCoverage,e.citationCoverage].filter(l=>l.state==="unavailable").map(l=>l.reason);return n.includes("no_completed_run")?{label:"Not measured",tone:"neutral"}:n.includes("plan_v1")?{label:"Update setup",tone:"caution"}:n.includes("evidence_incomplete")?{label:"Evidence incomplete",tone:"caution"}:n.includes("no_population")?{label:"No queries",tone:"neutral"}:n.includes("not_applicable")?{label:"Not applicable",tone:"neutral"}:{label:"Complete",tone:"positive"}}function xe(e){return e==="complete"?{label:"Complete",tone:"positive"}:e==="partial"?{label:"Partial",tone:"caution"}:e==="queued"?{label:"Queued",tone:"neutral"}:e==="running"?{label:"Running",tone:"neutral"}:e==="failed"?{label:"Failed",tone:"negative"}:{label:"Not measured",tone:"neutral"}}function ke(e){if(!e)return"";const n=new Date(e);return Number.isFinite(n.getTime())?n.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:"UTC"}):""}function ne(e){const n=e.nextAction.count??e.flags.total;if(e.nextAction.kind==="review_flags")return`${n} flagged ${n===1?"result needs":"results need"} review.`;if(e.nextAction.kind==="complete_setup")return"Finish setup.";if(e.nextAction.kind==="republish_setup")return"Setup update required.";if(e.nextAction.kind==="run_measurement")return"Ready to measure."}function Se({overview:e,activePlan:n,report:l,reportState:u=l?"ready":"loading",sort:f}){if(n.plan.schemaVersion!==2||e.mode!=="active-v2")throw new Error("The current overview requires an active version-two setup.");if(e.scope.kind!=="all"&&e.scope.kind!=="group")throw new Error("The current overview requires an All Properties or group scope.");const c=n.plan,p=new Map(c.targets.map(r=>[r.stableKey,r])),a=new Map(c.querySnapshots.map(r=>[r.queryId,r.queryText])),x=new Map;for(const r of c.assignments){if(e.queryClass!=="all"&&r.queryClass!==e.queryClass)continue;const g=a.get(r.queryId);if(!g)continue;const m=x.get(r.targetKey)??new Set;m.add(g),x.set(r.targetKey,m)}const k=l?.revision===n.revision&&l.run?.id===e.measurement.displayedRunId?l:null,M=e.measurement.displayedRunId===void 0||k?"ready":u==="error"||l!=null?"error":"loading",I=ye(c,k,e.queryClass==="all"?void 0:e.queryClass),y=new Map;for(const r of c.groups)for(const g of r.targetKeys)y.has(g)||y.set(g,r.label);const N=e.properties.items.map(r=>{const g=p.get(r.targetKey),m=I.get(r.targetKey)??[];return{id:r.targetKey,name:r.label,mentionCoverage:$(r.mentionCoverage),citationCoverage:$(r.citationCoverage),status:be(r),providers:r.providers?.map(i=>({provider:i.provider,mentionCoverage:$(i.mentionCoverage),citationCoverage:$(i.citationCoverage)})),market:y.get(r.targetKey),assignedQueries:[...x.get(r.targetKey)??[]],urls:g?.urlMatchers.map(ge)??[],evidence:m,evidenceState:M,historical:m.some(i=>i.historical)}}),b=e.namedShareOfVoice?.entries.map(r=>({name:r.label,coverage:{numerator:r.credits,denominator:e.namedShareOfVoice.denominator}})),v=e.properties.items.flatMap(r=>r.flags>0?[{id:`property:${r.targetKey}`,property:r.label,summary:`${r.flags} ${r.flags===1?"result needs":"results need"} review.`,tone:"caution",count:r.flags}]:[]);return{classReporting:"available",latestMeasurement:{status:xe(e.measurement.state),completedSlots:e.measurement.completed,totalSlots:e.measurement.expected,date:ke(e.measurement.completedAt),includesBridgedHistory:e.measurement.includesHistoricalData===!0},currentView:{scope:e.scope.kind==="group"?{kind:"group",...e.scope.key?{key:e.scope.key}:{}}:{kind:"all"},queryClass:e.queryClass,aggregate:{metrics:{propertiesMentioned:$(e.metrics.propertiesMentioned),mentionCoverage:$(e.metrics.mentionCoverage),citationCoverage:$(e.metrics.citationCoverage)},properties:N,...b?{shareOfVoice:b}:{}},propertyTotal:e.properties.totalEstimate??N.length,outcomes:e.outcomes,nextCursor:e.properties.nextCursor,...f?{sort:f}:{}},availableGroups:c.groups.map(r=>({id:r.stableKey,label:r.label})),...ne(e)?{nextActionText:ne(e)}:{},flaggedResultsTotal:e.flags.total,flaggedResults:v}}export{Me as A,E as M,Ie as V,$e as a,Ke as b,Se as c,ge as m};
@@ -1 +1 @@
1
- import{r as n}from"./vendor-tanstack-ZXXkndVj.js";const _=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),M=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,o,c)=>c?c.toUpperCase():o.toLowerCase()),y=a=>{const t=M(a);return t.charAt(0).toUpperCase()+t.slice(1)},r=(...a)=>a.filter((t,o,c)=>!!t&&t.trim()!==""&&c.indexOf(t)===o).join(" ").trim(),m=a=>{for(const t in a)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var v={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const x=n.forwardRef(({color:a="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:c,className:s="",children:h,iconNode:i,...d},k)=>n.createElement("svg",{ref:k,...v,width:t,height:t,stroke:a,strokeWidth:c?Number(o)*24/Number(t):o,className:r("lucide",s),...!h&&!m(d)&&{"aria-hidden":"true"},...d},[...i.map(([p,l])=>n.createElement(p,l)),...Array.isArray(h)?h:[h]]));const e=(a,t)=>{const o=n.forwardRef(({className:c,...s},h)=>n.createElement(x,{ref:h,iconNode:t,className:r(`lucide-${_(y(a))}`,`lucide-${a}`,c),...s}));return o.displayName=y(a),o};const u=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],$1=e("arrow-left",u);const g=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],N1=e("arrow-right",g);const $=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],w1=e("arrow-up-right",$);const N=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],f1=e("arrow-up",N);const w=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],z1=e("bell",w);const f=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],q1=e("book-open",f);const z=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],C1=e("bot",z);const q=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],b1=e("calendar-clock",q);const C=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],A1=e("chart-line",C);const b=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],j1=e("check",b);const A=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],L1=e("chevron-down",A);const j=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],H1=e("chevron-left",j);const L=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],V1=e("chevron-right",L);const H=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],R1=e("circle-check",H);const V=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],P1=e("circle-question-mark",V);const R=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],S1=e("cloud",R);const P=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Z1=e("copy",P);const S=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],B1=e("download",S);const Z=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],E1=e("external-link",Z);const B=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],U1=e("file-text",B);const E=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],T1=e("github",E);const U=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],D1=e("globe",U);const T=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],O1=e("history",T);const D=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],G1=e("layout-dashboard",D);const O=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],I1=e("link-2",O);const G=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],W1=e("loader-circle",G);const I=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],F1=e("map-pin",I);const W=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],K1=e("maximize-2",W);const F=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],Q1=e("menu",F);const K=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],J1=e("minimize-2",K);const Q=[["path",{d:"M5 12h14",key:"1ays0h"}]],X1=e("minus",Q);const J=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],Y1=e("panel-left-close",J);const X=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],e2=e("panel-left-open",X);const Y=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],t2=e("pencil",Y);const e1=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],a2=e("play",e1);const t1=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],o2=e("plus",t1);const a1=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],c2=e("radar",a1);const o1=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],h2=e("radio",o1);const c1=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],n2=e("refresh-cw",c1);const h1=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],s2=e("rocket",h1);const n1=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],d2=e("rotate-ccw",n1);const s1=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]],y2=e("scan-search",s1);const d1=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],r2=e("search",d1);const y1=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],i2=e("server",y1);const r1=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],k2=e("settings-2",r1);const i1=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],p2=e("settings",i1);const k1=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],l2=e("shield",k1);const p1=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],_2=e("terminal",p1);const l1=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],M2=e("trash-2",l1);const _1=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],m2=e("triangle-alert",_1);const M1=[["path",{d:"M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"14u9p9"}]],v2=e("triangle",M1);const m1=[["path",{d:"m19 5 3-3",key:"yk6iyv"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z",key:"1snsnr"}]],x2=e("unplug",m1);const v1=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],u2=e("upload",v1);const x1=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],g2=e("wrench",x1);const u1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],$2=e("x",u1);export{y2 as $,N1 as A,q1 as B,L1 as C,B1 as D,E1 as E,U1 as F,T1 as G,O1 as H,P1 as I,X1 as J,t2 as K,W1 as L,J1 as M,M2 as N,l2 as O,a2 as P,v2 as Q,h2 as R,r2 as S,m2 as T,x2 as U,S1 as V,g2 as W,$2 as X,$1 as Y,C1 as Z,H1 as _,w1 as a,k2 as a0,d2 as b,K1 as c,f1 as d,j1 as e,V1 as f,Z1 as g,G1 as h,D1 as i,c2 as j,I1 as k,p2 as l,s2 as m,e2 as n,Y1 as o,Q1 as p,o2 as q,A1 as r,b1 as s,z1 as t,F1 as u,_2 as v,i2 as w,n2 as x,u2 as y,R1 as z};
1
+ import{r as n}from"./vendor-tanstack-ZXXkndVj.js";const _=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),M=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,o,c)=>c?c.toUpperCase():o.toLowerCase()),y=a=>{const t=M(a);return t.charAt(0).toUpperCase()+t.slice(1)},r=(...a)=>a.filter((t,o,c)=>!!t&&t.trim()!==""&&c.indexOf(t)===o).join(" ").trim(),m=a=>{for(const t in a)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var v={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const x=n.forwardRef(({color:a="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:c,className:s="",children:h,iconNode:i,...d},k)=>n.createElement("svg",{ref:k,...v,width:t,height:t,stroke:a,strokeWidth:c?Number(o)*24/Number(t):o,className:r("lucide",s),...!h&&!m(d)&&{"aria-hidden":"true"},...d},[...i.map(([p,l])=>n.createElement(p,l)),...Array.isArray(h)?h:[h]]));const e=(a,t)=>{const o=n.forwardRef(({className:c,...s},h)=>n.createElement(x,{ref:h,iconNode:t,className:r(`lucide-${_(y(a))}`,`lucide-${a}`,c),...s}));return o.displayName=y(a),o};const u=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],N1=e("arrow-left",u);const g=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],w1=e("arrow-right",g);const $=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],f1=e("arrow-up-right",$);const N=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],z1=e("arrow-up",N);const w=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],q1=e("bell",w);const f=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],C1=e("book-open",f);const z=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],b1=e("bot",z);const q=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],A1=e("calendar-clock",q);const C=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],j1=e("chart-line",C);const b=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],L1=e("check",b);const A=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],H1=e("chevron-down",A);const j=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],V1=e("chevron-left",j);const L=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],R1=e("chevron-right",L);const H=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],P1=e("circle-check",H);const V=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],S1=e("circle-question-mark",V);const R=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],Z1=e("cloud",R);const P=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],B1=e("copy",P);const S=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],E1=e("download",S);const Z=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],T1=e("external-link",Z);const B=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],U1=e("file-text",B);const E=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],D1=e("github",E);const T=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],O1=e("globe",T);const U=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],G1=e("history",U);const D=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],I1=e("layout-dashboard",D);const O=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],W1=e("link-2",O);const G=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],F1=e("loader-circle",G);const I=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],K1=e("map-pin",I);const W=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],Q1=e("maximize-2",W);const F=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],J1=e("menu",F);const K=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],X1=e("minimize-2",K);const Q=[["path",{d:"M5 12h14",key:"1ays0h"}]],Y1=e("minus",Q);const J=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],e2=e("panel-left-close",J);const X=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],t2=e("panel-left-open",X);const Y=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],a2=e("pencil",Y);const e1=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],o2=e("play",e1);const t1=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],c2=e("plus",t1);const a1=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],h2=e("radar",a1);const o1=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],n2=e("radio",o1);const c1=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],s2=e("refresh-cw",c1);const h1=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],d2=e("rocket",h1);const n1=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],y2=e("rotate-ccw",n1);const s1=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]],r2=e("scan-search",s1);const d1=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],i2=e("search",d1);const y1=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],k2=e("server",y1);const r1=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],p2=e("settings-2",r1);const i1=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],l2=e("settings",i1);const k1=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],_2=e("shield",k1);const p1=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],M2=e("square",p1);const l1=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],m2=e("terminal",l1);const _1=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],v2=e("trash-2",_1);const M1=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],x2=e("triangle-alert",M1);const m1=[["path",{d:"M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"14u9p9"}]],u2=e("triangle",m1);const v1=[["path",{d:"m19 5 3-3",key:"yk6iyv"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z",key:"1snsnr"}]],g2=e("unplug",v1);const x1=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],$2=e("upload",x1);const u1=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],N2=e("wrench",u1);const g1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],w2=e("x",g1);export{V1 as $,w1 as A,C1 as B,H1 as C,P1 as D,T1 as E,U1 as F,D1 as G,G1 as H,E1 as I,S1 as J,Y1 as K,F1 as L,X1 as M,a2 as N,v2 as O,c2 as P,_2 as Q,n2 as R,i2 as S,x2 as T,g2 as U,u2 as V,N2 as W,w2 as X,Z1 as Y,N1 as Z,b1 as _,f1 as a,r2 as a0,p2 as a1,Q1 as b,M2 as c,z1 as d,L1 as e,B1 as f,R1 as g,I1 as h,O1 as i,o2 as j,h2 as k,W1 as l,l2 as m,d2 as n,t2 as o,e2 as p,J1 as q,y2 as r,j1 as s,A1 as t,q1 as u,K1 as v,m2 as w,k2 as x,s2 as y,$2 as z};
package/assets/index.html CHANGED
@@ -12,14 +12,14 @@
12
12
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
13
13
  <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
14
14
  <title>Canonry</title>
15
- <script type="module" crossorigin src="./assets/index-2Ldc0Hq4.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-Dzg_siX8.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-ZXXkndVj.js">
17
17
  <link rel="modulepreload" crossorigin href="./assets/vendor-radix-twS1M3FF.js">
18
18
  <link rel="modulepreload" crossorigin href="./assets/vendor-recharts-llkUFBGR.js">
19
- <link rel="modulepreload" crossorigin href="./assets/vendor-lucide-CneDbhOr.js">
19
+ <link rel="modulepreload" crossorigin href="./assets/vendor-lucide-N6vOpZmh.js">
20
20
  <link rel="modulepreload" crossorigin href="./assets/vendor-markdown-B4giJcws.js">
21
21
  <link rel="modulepreload" crossorigin href="./assets/vendor-yaml-GWJz5H2G.js">
22
- <link rel="stylesheet" crossorigin href="./assets/index-neNKCg78.css">
22
+ <link rel="stylesheet" crossorigin href="./assets/index-EJC8PSbh.css">
23
23
  </head>
24
24
  <body>
25
25
  <div id="root"></div>
@@ -5,12 +5,12 @@ import {
5
5
  siteCrawlGraphNodes,
6
6
  siteCrawlPages,
7
7
  siteCrawlSnapshots
8
- } from "./chunk-5E4ASNU4.js";
8
+ } from "./chunk-SMYBGUVV.js";
9
9
  import {
10
10
  SITE_CRAWL_GRAPH_MAX_EDGES,
11
11
  SITE_CRAWL_GRAPH_MAX_NODES,
12
12
  TEMPLATE_LINK_RATIO_THRESHOLD
13
- } from "./chunk-D3DKDTXP.js";
13
+ } from "./chunk-MQMJJZ6W.js";
14
14
 
15
15
  // src/site-crawl-graph-layout.ts
16
16
  import crypto from "crypto";
@@ -26,6 +26,7 @@ import {
26
26
  adsOperationReconcileRequestSchema,
27
27
  adsPauseRequestSchema,
28
28
  adsUnresolvedOperationListQuerySchema,
29
+ agentConversationCreateSchema,
29
30
  agentPluginClientLabel,
30
31
  apiKeyDtoSchema,
31
32
  backlinkSourceSchema,
@@ -130,7 +131,7 @@ import {
130
131
  upgradeCaveatFor,
131
132
  upgradeCommandFor,
132
133
  visibilityReportRequestSchema
133
- } from "./chunk-D3DKDTXP.js";
134
+ } from "./chunk-MQMJJZ6W.js";
134
135
 
135
136
  // src/cli-error.ts
136
137
  function isMachineFormat(format) {
@@ -624,56 +625,6 @@ function configExists() {
624
625
  return fs.existsSync(getConfigPath());
625
626
  }
626
627
 
627
- // src/client.ts
628
- import { AsyncLocalStorage } from "async_hooks";
629
-
630
- // src/client-reliability.ts
631
- function parseRetryAfterMs(header, now = Date.now()) {
632
- if (!header) return void 0;
633
- const value = header.trim();
634
- if (!value) return void 0;
635
- if (/^\d+(?:\.\d+)?$/.test(value)) {
636
- const delayMs2 = Number(value) * 1e3;
637
- return Number.isFinite(delayMs2) && delayMs2 >= 0 && delayMs2 <= Number.MAX_SAFE_INTEGER ? delayMs2 : void 0;
638
- }
639
- if (!/^[a-z]{3},\s/i.test(value)) return void 0;
640
- const target = Date.parse(value);
641
- if (!Number.isFinite(target)) return void 0;
642
- const delayMs = Math.max(0, target - now);
643
- return Number.isSafeInteger(delayMs) ? delayMs : void 0;
644
- }
645
- function httpErrorDetails(serverDetails, response) {
646
- const retryAfterMs = parseRetryAfterMs(response.headers.get("retry-after"));
647
- const requestId = response.headers.get("x-request-id") ?? response.headers.get("request-id");
648
- return {
649
- ...serverDetails && typeof serverDetails === "object" && !Array.isArray(serverDetails) ? serverDetails : {},
650
- httpStatus: response.status,
651
- ...retryAfterMs === void 0 ? {} : { retryAfterMs },
652
- ...requestId ? { requestId } : {}
653
- };
654
- }
655
- function isConnectionFailure(message) {
656
- return message.includes("fetch failed") || message.includes("ECONNREFUSED") || message.includes("connect ECONNREFUSED");
657
- }
658
- function connectionFailureMessage(target) {
659
- return `Could not connect to canonry server at ${redactRequestTarget(target)}. Check that this URL is reachable and the server is running. For a local Canonry instance, start it with "canonry start" (a background daemon, stopped with "canonry stop"), or "canonry serve" to run it in the foreground.`;
660
- }
661
- function redactRequestTarget(target) {
662
- try {
663
- const url = new URL(target);
664
- url.username = "";
665
- url.password = "";
666
- for (const key of [...url.searchParams.keys()]) {
667
- if (isSensitiveDiagnosticQueryKey(key)) {
668
- url.searchParams.set(key, "<redacted>");
669
- }
670
- }
671
- return url.toString();
672
- } catch {
673
- return target.replace(/\/\/[^/@]*@/, "//");
674
- }
675
- }
676
-
677
628
  // ../api-client-generated/src/generated/core/bodySerializer.gen.ts
678
629
  var jsonBodySerializer = {
679
630
  bodySerializer: (body) => JSON.stringify(
@@ -5939,6 +5890,70 @@ var getApiV1ProjectsByNameTechnicalAeoRunsByRunIdProgress = (options) => {
5939
5890
  ...options
5940
5891
  });
5941
5892
  };
5893
+ var getApiV1ProjectsByNameAgentConversations = (options) => {
5894
+ return (options.client ?? client).get({
5895
+ security: [
5896
+ {
5897
+ scheme: "bearer",
5898
+ type: "http"
5899
+ }
5900
+ ],
5901
+ url: "/api/v1/projects/{name}/agent/conversations",
5902
+ ...options
5903
+ });
5904
+ };
5905
+ var postApiV1ProjectsByNameAgentConversations = (options) => {
5906
+ return (options.client ?? client).post({
5907
+ security: [
5908
+ {
5909
+ scheme: "bearer",
5910
+ type: "http"
5911
+ }
5912
+ ],
5913
+ url: "/api/v1/projects/{name}/agent/conversations",
5914
+ ...options,
5915
+ headers: {
5916
+ "Content-Type": "application/json",
5917
+ ...options.headers
5918
+ }
5919
+ });
5920
+ };
5921
+ var deleteApiV1ProjectsByNameAgentConversationsById = (options) => {
5922
+ return (options.client ?? client).delete({
5923
+ security: [
5924
+ {
5925
+ scheme: "bearer",
5926
+ type: "http"
5927
+ }
5928
+ ],
5929
+ url: "/api/v1/projects/{name}/agent/conversations/{id}",
5930
+ ...options
5931
+ });
5932
+ };
5933
+ var getApiV1ProjectsByNameAgentConversationsById = (options) => {
5934
+ return (options.client ?? client).get({
5935
+ security: [
5936
+ {
5937
+ scheme: "bearer",
5938
+ type: "http"
5939
+ }
5940
+ ],
5941
+ url: "/api/v1/projects/{name}/agent/conversations/{id}",
5942
+ ...options
5943
+ });
5944
+ };
5945
+ var postApiV1ProjectsByNameAgentConversationsByIdResume = (options) => {
5946
+ return (options.client ?? client).post({
5947
+ security: [
5948
+ {
5949
+ scheme: "bearer",
5950
+ type: "http"
5951
+ }
5952
+ ],
5953
+ url: "/api/v1/projects/{name}/agent/conversations/{id}/resume",
5954
+ ...options
5955
+ });
5956
+ };
5942
5957
  var deleteApiV1ProjectsByNameAgentTranscript = (options) => {
5943
5958
  return (options.client ?? client).delete({
5944
5959
  security: [
@@ -6033,6 +6048,56 @@ function createClient2(opts) {
6033
6048
  return createClient(config);
6034
6049
  }
6035
6050
 
6051
+ // src/client.ts
6052
+ import { AsyncLocalStorage } from "async_hooks";
6053
+
6054
+ // src/client-reliability.ts
6055
+ function parseRetryAfterMs(header, now = Date.now()) {
6056
+ if (!header) return void 0;
6057
+ const value = header.trim();
6058
+ if (!value) return void 0;
6059
+ if (/^\d+(?:\.\d+)?$/.test(value)) {
6060
+ const delayMs2 = Number(value) * 1e3;
6061
+ return Number.isFinite(delayMs2) && delayMs2 >= 0 && delayMs2 <= Number.MAX_SAFE_INTEGER ? delayMs2 : void 0;
6062
+ }
6063
+ if (!/^[a-z]{3},\s/i.test(value)) return void 0;
6064
+ const target = Date.parse(value);
6065
+ if (!Number.isFinite(target)) return void 0;
6066
+ const delayMs = Math.max(0, target - now);
6067
+ return Number.isSafeInteger(delayMs) ? delayMs : void 0;
6068
+ }
6069
+ function httpErrorDetails(serverDetails, response) {
6070
+ const retryAfterMs = parseRetryAfterMs(response.headers.get("retry-after"));
6071
+ const requestId = response.headers.get("x-request-id") ?? response.headers.get("request-id");
6072
+ return {
6073
+ ...serverDetails && typeof serverDetails === "object" && !Array.isArray(serverDetails) ? serverDetails : {},
6074
+ httpStatus: response.status,
6075
+ ...retryAfterMs === void 0 ? {} : { retryAfterMs },
6076
+ ...requestId ? { requestId } : {}
6077
+ };
6078
+ }
6079
+ function isConnectionFailure(message) {
6080
+ return message.includes("fetch failed") || message.includes("ECONNREFUSED") || message.includes("connect ECONNREFUSED");
6081
+ }
6082
+ function connectionFailureMessage(target) {
6083
+ return `Could not connect to canonry server at ${redactRequestTarget(target)}. Check that this URL is reachable and the server is running. For a local Canonry instance, start it with "canonry start" (a background daemon, stopped with "canonry stop"), or "canonry serve" to run it in the foreground.`;
6084
+ }
6085
+ function redactRequestTarget(target) {
6086
+ try {
6087
+ const url = new URL(target);
6088
+ url.username = "";
6089
+ url.password = "";
6090
+ for (const key of [...url.searchParams.keys()]) {
6091
+ if (isSensitiveDiagnosticQueryKey(key)) {
6092
+ url.searchParams.set(key, "<redacted>");
6093
+ }
6094
+ }
6095
+ return url.toString();
6096
+ } catch {
6097
+ return target.replace(/\/\/[^/@]*@/, "//");
6098
+ }
6099
+ }
6100
+
6036
6101
  // src/client.ts
6037
6102
  function parseServerUpdateAvailable(value) {
6038
6103
  if (!value || typeof value !== "object") return null;
@@ -6212,6 +6277,21 @@ var ApiClient = class {
6212
6277
  // generated SDK and we route them through `invoke()` like every other
6213
6278
  // endpoint. The SSE `POST /agent/prompt` is intentionally not here — it
6214
6279
  // stays on `streamPost()` below since the SDK can't represent SSE cleanly.
6280
+ async listAgentConversations(project, query) {
6281
+ return this.invoke(() => getApiV1ProjectsByNameAgentConversations({ client: this.heyClient, path: { name: project }, query }));
6282
+ }
6283
+ async getAgentConversation(project, id) {
6284
+ return this.invoke(() => getApiV1ProjectsByNameAgentConversationsById({ client: this.heyClient, path: { name: project, id } }));
6285
+ }
6286
+ async createAgentConversation(project, id) {
6287
+ return this.invoke(() => postApiV1ProjectsByNameAgentConversations({ client: this.heyClient, path: { name: project }, body: { id } }));
6288
+ }
6289
+ async resumeAgentConversation(project, id) {
6290
+ return this.invoke(() => postApiV1ProjectsByNameAgentConversationsByIdResume({ client: this.heyClient, path: { name: project, id } }));
6291
+ }
6292
+ async deleteAgentConversation(project, id) {
6293
+ return this.invoke(() => deleteApiV1ProjectsByNameAgentConversationsById({ client: this.heyClient, path: { name: project, id } }));
6294
+ }
6215
6295
  async getAgentTranscript(project) {
6216
6296
  return this.invoke(
6217
6297
  () => getApiV1ProjectsByNameAgentTranscript({ client: this.heyClient, path: { name: project } })
@@ -11784,10 +11864,65 @@ var canonryMcpTools = [
11784
11864
  openApiOperations: ["DELETE /api/v1/projects/{name}/agent/memory"],
11785
11865
  handler: (client2, input) => client2.forgetAgentMemory(input.project, input.key)
11786
11866
  }),
11867
+ defineTool({
11868
+ name: "canonry_agent_conversations_list",
11869
+ title: "List Aero conversations",
11870
+ description: "List Aero conversations. Instance administrators only. New and resume preserve the previous conversation; shared project notes are retained. Creation requires a UUID that must be reused on retries.",
11871
+ access: "read",
11872
+ tier: "agent",
11873
+ inputSchema: projectInputSchema.extend({ offset: z4.number().int().min(0).optional(), limit: z4.number().int().min(1).max(100).optional() }),
11874
+ annotations: readAnnotations(),
11875
+ openApiOperations: ["GET /api/v1/projects/{name}/agent/conversations"],
11876
+ handler: (client2, input) => client2.listAgentConversations(input.project, { offset: input.offset, limit: input.limit })
11877
+ }),
11878
+ defineTool({
11879
+ name: "canonry_agent_conversations_get",
11880
+ title: "Read an Aero conversation",
11881
+ description: "Read an Aero conversation. Instance administrators only. New and resume preserve the previous conversation; shared project notes are retained. Creation requires a UUID that must be reused on retries.",
11882
+ access: "read",
11883
+ tier: "agent",
11884
+ inputSchema: projectInputSchema.extend({ id: z4.string().min(1) }),
11885
+ annotations: readAnnotations(),
11886
+ openApiOperations: ["GET /api/v1/projects/{name}/agent/conversations/{id}"],
11887
+ handler: (client2, input) => client2.getAgentConversation(input.project, input.id)
11888
+ }),
11889
+ defineTool({
11890
+ name: "canonry_agent_conversations_new",
11891
+ title: "Start a new Aero conversation",
11892
+ description: "Start a new Aero conversation. Instance administrators only. New and resume preserve the previous conversation; shared project notes are retained. Creation requires a UUID that must be reused on retries.",
11893
+ access: "write",
11894
+ tier: "agent",
11895
+ inputSchema: projectInputSchema.extend(agentConversationCreateSchema.shape),
11896
+ annotations: writeAnnotations({ idempotentHint: true }),
11897
+ openApiOperations: ["POST /api/v1/projects/{name}/agent/conversations"],
11898
+ handler: (client2, input) => client2.createAgentConversation(input.project, input.id)
11899
+ }),
11900
+ defineTool({
11901
+ name: "canonry_agent_conversations_resume",
11902
+ title: "Resume an Aero conversation",
11903
+ description: "Resume an Aero conversation. Instance administrators only. New and resume preserve the previous conversation; shared project notes are retained. Creation requires a UUID that must be reused on retries.",
11904
+ access: "write",
11905
+ tier: "agent",
11906
+ inputSchema: projectInputSchema.extend({ id: z4.string().min(1) }),
11907
+ annotations: writeAnnotations({ idempotentHint: true }),
11908
+ openApiOperations: ["POST /api/v1/projects/{name}/agent/conversations/{id}/resume"],
11909
+ handler: (client2, input) => client2.resumeAgentConversation(input.project, input.id)
11910
+ }),
11911
+ defineTool({
11912
+ name: "canonry_agent_conversations_delete",
11913
+ title: "Delete an Aero conversation",
11914
+ description: "Delete an Aero conversation. Instance administrators only. New and resume preserve the previous conversation; shared project notes are retained. Creation requires a UUID that must be reused on retries.",
11915
+ access: "write",
11916
+ tier: "agent",
11917
+ inputSchema: projectInputSchema.extend({ id: z4.string().min(1) }),
11918
+ annotations: writeAnnotations({ idempotentHint: true, destructiveHint: true }),
11919
+ openApiOperations: ["DELETE /api/v1/projects/{name}/agent/conversations/{id}"],
11920
+ handler: (client2, input) => client2.deleteAgentConversation(input.project, input.id)
11921
+ }),
11787
11922
  defineTool({
11788
11923
  name: "canonry_agent_clear",
11789
11924
  title: "Clear agent transcript",
11790
- description: "Clear the rolling Aero conversation for a project \u2014 wipes the transcript, the in-memory pending follow-up buffer, and the persisted follow-up queue. Memory entries (canonry_memory_*) are preserved. Use when starting a fresh dialogue or when the operator wants to reset context.",
11925
+ description: "Clear the rolling Aero conversation for a project \u2014 wipes the transcript, the in-memory pending follow-up buffer, and the persisted follow-up queue. Memory entries (canonry_memory_*) are preserved. Destructive legacy operation. Prefer canonry_agent_conversations_new to start fresh while preserving history.",
11791
11926
  access: "write",
11792
11927
  tier: "agent",
11793
11928
  inputSchema: projectInputSchema,
@@ -13722,5 +13857,6 @@ export {
13722
13857
  CanonryMcpToolNames,
13723
13858
  CANONRY_MCP_TIERS,
13724
13859
  CANONRY_MCP_TOOLKIT_NAMES,
13860
+ CANONRY_MCP_TOOLKITS,
13725
13861
  createCanonryMcpServer
13726
13862
  };
@@ -13882,6 +13882,63 @@ var healthSnapshotDtoSchema = z44.object({
13882
13882
 
13883
13883
  // ../contracts/src/agent.ts
13884
13884
  import { z as z45 } from "zod";
13885
+ var agentViewContextSchema = z45.object({
13886
+ view: z45.enum(["project", "visibility", "property", "queries", "site-health"]),
13887
+ unavailableReason: z45.string().trim().min(1).max(512).optional(),
13888
+ selection: visibilityReportRequestSchema.optional(),
13889
+ page: z45.object({
13890
+ runId: z45.string().trim().min(1).max(256).optional(),
13891
+ nodeKey: z45.string().trim().min(1).max(2048).optional()
13892
+ }).strict().optional()
13893
+ }).strict().superRefine((value, ctx) => {
13894
+ if (value.page && value.view !== "site-health") ctx.addIssue({ code: "custom", message: "Page context requires Site Health." });
13895
+ if (value.selection && !["visibility", "property", "queries"].includes(value.view)) ctx.addIssue({ code: "custom", message: "Measurement selection requires a measurement view." });
13896
+ });
13897
+ var agentTurnLimitsSchema = z45.object({
13898
+ maxToolCalls: z45.number().int().min(1).max(100).default(30),
13899
+ timeoutMs: z45.number().int().min(1e3).max(6e5).default(18e4)
13900
+ }).strict();
13901
+ function agentVisibilityEvidence(report, project, retrievedAt) {
13902
+ const selection = report.selection;
13903
+ const search = new URLSearchParams({ queryClass: selection.queryClass, measurementScope: selection.scope.kind });
13904
+ if (selection.scope.kind !== "project") search.set("measurementScopeKey", selection.scope.id);
13905
+ const fields = {
13906
+ measurementMarketKey: selection.market?.id,
13907
+ measurementProvider: selection.provider,
13908
+ measurementModel: selection.model,
13909
+ measurementLocation: selection.location.kind === "exact" ? selection.location.value : selection.location.kind === "none" ? "none" : null,
13910
+ measurementFrom: selection.time.from,
13911
+ measurementTo: selection.time.to,
13912
+ measurementRunId: selection.run.id,
13913
+ measurementRevision: selection.revision?.toString()
13914
+ };
13915
+ for (const [key, value] of Object.entries(fields)) if (value != null) search.set(key, value);
13916
+ return {
13917
+ source: {
13918
+ label: "Open measured evidence",
13919
+ // Relative to the dashboard base, so reverse-proxy prefixes survive.
13920
+ path: `projects/${encodeURIComponent(project)}?${search}`,
13921
+ retrievedAt,
13922
+ measuredAt: selection.measurement.completedAt
13923
+ },
13924
+ selection,
13925
+ populations: report.populations.map((population) => {
13926
+ const { items: _items, ...page } = population.evidence;
13927
+ return {
13928
+ queryClass: population.queryClass,
13929
+ summary: population.summary,
13930
+ comparison: population.comparison ?? null,
13931
+ evidence: page
13932
+ };
13933
+ }),
13934
+ interpretation: "These are observations, not proof of causation. Preserve independent query classes, unavailable values, comparison reasons, and evidence pagination. Retrieved time is not measurement time. Open query detail for answer text and sources. Paginated observations are never the coverage denominator.",
13935
+ // Keep all class summaries ahead of the independently trimmable rows.
13936
+ // A large first-class answer must never evict the other denominators.
13937
+ observations: report.populations.flatMap((population) => population.evidence.items.map(
13938
+ ({ answerText: _answerText, sources: _sources, observedCompetitors: _competitors, ...row }) => ({ queryClass: population.queryClass, ...row })
13939
+ ))
13940
+ };
13941
+ }
13885
13942
  var agentProviderIdSchema = z45.enum(["claude", "openai", "gemini", "zai", "deepinfra"]);
13886
13943
  var agentProviderOptionDtoSchema = z45.object({
13887
13944
  /** Stable identifier — what clients pass back as `provider` on the prompt endpoint. */
@@ -13921,6 +13978,53 @@ var agentMemoryUpsertRequestSchema = z45.object({
13921
13978
  var agentMemoryDeleteRequestSchema = z45.object({
13922
13979
  key: z45.string().min(1).max(AGENT_MEMORY_KEY_MAX_LENGTH)
13923
13980
  });
13981
+ var agentPromptRequestSchema = z45.object({
13982
+ prompt: z45.string().trim().min(1),
13983
+ conversationId: z45.string().min(1).nullable().optional(),
13984
+ provider: agentProviderIdSchema.optional(),
13985
+ modelId: z45.string().trim().min(1).optional(),
13986
+ scope: z45.enum(["all", "read-only"]).optional(),
13987
+ profile: z45.enum(["default", "ads-operator"]).optional(),
13988
+ context: agentViewContextSchema.optional(),
13989
+ limits: agentTurnLimitsSchema.optional()
13990
+ });
13991
+ var agentConversationMessageSchema = z45.looseObject({ role: z45.string(), content: z45.unknown().optional() });
13992
+ var agentConversationSummarySchema = z45.object({
13993
+ id: z45.string(),
13994
+ title: z45.string(),
13995
+ active: z45.boolean(),
13996
+ modelProvider: z45.string(),
13997
+ modelId: z45.string(),
13998
+ createdAt: z45.string(),
13999
+ updatedAt: z45.string()
14000
+ });
14001
+ var agentConversationSchema = agentConversationSummarySchema.extend({
14002
+ messages: z45.array(agentConversationMessageSchema),
14003
+ isStreaming: z45.boolean()
14004
+ });
14005
+ var agentConversationListSchema = z45.object({
14006
+ conversations: z45.array(agentConversationSummarySchema),
14007
+ currentConversationId: z45.string().nullable(),
14008
+ nextOffset: z45.number().int().nullable()
14009
+ });
14010
+ var agentConversationCreateSchema = z45.object({
14011
+ id: z45.uuid()
14012
+ }).strict();
14013
+ var agentConversationDeleteSchema = z45.object({ id: z45.string(), status: z45.literal("deleted") });
14014
+ function agentConversationTitle(messages) {
14015
+ for (const message of messages) {
14016
+ if (message.role !== "user") continue;
14017
+ const content = message.content;
14018
+ const text = typeof content === "string" ? content : Array.isArray(content) ? content.flatMap((block) => typeof block === "object" && block !== null && "type" in block && block.type === "text" && "text" in block && typeof block.text === "string" ? [block.text] : []).join(" ") : "";
14019
+ const title = text.replace(/\s+/g, " ").trim();
14020
+ if (title && !title.startsWith("[system]")) return title.length > 80 ? title.slice(0, 79) + "\u2026" : title;
14021
+ }
14022
+ return "New conversation";
14023
+ }
14024
+ var agentConversationListQuerySchema = z45.object({
14025
+ offset: z45.coerce.number().int().min(0).default(0),
14026
+ limit: z45.coerce.number().int().min(1).max(100).default(50)
14027
+ }).strict();
13924
14028
 
13925
14029
  // ../contracts/src/backlinks.ts
13926
14030
  import { z as z46 } from "zod";
@@ -19604,12 +19708,22 @@ export {
19604
19708
  ga4SocialReferralHistoryEntrySchema,
19605
19709
  ga4SessionHistoryEntrySchema,
19606
19710
  healthSnapshotDtoSchema,
19711
+ agentViewContextSchema,
19712
+ agentTurnLimitsSchema,
19713
+ agentVisibilityEvidence,
19607
19714
  agentProvidersResponseDtoSchema,
19608
19715
  MemorySources,
19609
19716
  AGENT_MEMORY_VALUE_MAX_BYTES,
19610
19717
  AGENT_MEMORY_KEY_MAX_LENGTH,
19611
19718
  agentMemoryUpsertRequestSchema,
19612
19719
  agentMemoryDeleteRequestSchema,
19720
+ agentPromptRequestSchema,
19721
+ agentConversationSchema,
19722
+ agentConversationListSchema,
19723
+ agentConversationCreateSchema,
19724
+ agentConversationDeleteSchema,
19725
+ agentConversationTitle,
19726
+ agentConversationListQuerySchema,
19613
19727
  backlinkSourceSchema,
19614
19728
  BacklinkSources,
19615
19729
  computeBacklinkSummaryMetrics,