@ainyc/canonry 4.188.1 → 4.188.2

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 (28) hide show
  1. package/assets/assets/{AuditHistoryPanel-BCpFULQp.js → AuditHistoryPanel-BB7rr4vG.js} +1 -1
  2. package/assets/assets/{BacklinksPage-CFHiZFhZ.js → BacklinksPage-8dDuc28f.js} +1 -1
  3. package/assets/assets/{HistoryPage-THnDCEnv.js → HistoryPage-CCvbnLuu.js} +1 -1
  4. package/assets/assets/{MeasurementPropertyPage-DWWwA2kL.js → MeasurementPropertyPage-BrrQ6PvC.js} +1 -1
  5. package/assets/assets/ProjectPage-DNT9kgFA.js +9 -0
  6. package/assets/assets/{RunRow-CDWArf9X.js → RunRow-CmgxzVdi.js} +1 -1
  7. package/assets/assets/{RunsPage-Ctsw14Vg.js → RunsPage-C45l2Esz.js} +1 -1
  8. package/assets/assets/{SettingsPage-IHYGgD0e.js → SettingsPage-CpYnUN8n.js} +1 -1
  9. package/assets/assets/{SiteHealthSection-DjFHZqBF.js → SiteHealthSection-D0WRI8jf.js} +3 -3
  10. package/assets/assets/{TrafficPage-Cb1Zwgc5.js → TrafficPage-D632bq2a.js} +1 -1
  11. package/assets/assets/{TrafficSourceDetailPage-CRdjdiAa.js → TrafficSourceDetailPage-DPBUcLs4.js} +1 -1
  12. package/assets/assets/{extract-error-message-CNs6e1oz.js → extract-error-message-DFIwOwb8.js} +1 -1
  13. package/assets/assets/{index-DTblya6d.css → index-DLB5x_Yh.css} +1 -1
  14. package/assets/assets/{index-B64f9mVI.js → index-D_ut_IJW.js} +28 -28
  15. package/assets/assets/{react-sigma_core.esm.min-CzJ-HG1j.js → react-sigma_core.esm.min-BtdnOf_z.js} +1 -1
  16. package/assets/assets/{vendor-lucide-BovNTc41.js → vendor-lucide-dNHw1I5G.js} +1 -1
  17. package/assets/index.html +3 -3
  18. package/dist/{chunk-A47HAZDJ.js → chunk-5NAOIDJM.js} +2 -2
  19. package/dist/{chunk-HIIOVQSH.js → chunk-EBLUZCIX.js} +46 -1
  20. package/dist/{chunk-QPYMAXLJ.js → chunk-FUCEQ5C5.js} +1 -1
  21. package/dist/{chunk-6YJQGOR6.js → chunk-H25PK25P.js} +4 -4
  22. package/dist/{chunk-GPTEXYYL.js → chunk-HBXA2APL.js} +29 -11
  23. package/dist/cli.js +5 -5
  24. package/dist/index.js +4 -4
  25. package/dist/{intelligence-service-4KMWHEYP.js → intelligence-service-SLL5HWV6.js} +2 -2
  26. package/dist/mcp.js +3 -3
  27. package/package.json +9 -9
  28. package/assets/assets/ProjectPage-CP57_Lqf.js +0 -9
@@ -1,4 +1,4 @@
1
- import{g as Bt,t as S,r as C}from"./vendor-tanstack-CYBjbqVr.js";import{e as Ht,G as Wt}from"./SiteHealthSection-DjFHZqBF.js";import"./index-B64f9mVI.js";import"./vendor-radix-BpmvLvpp.js";import"./vendor-recharts-FA0uySU7.js";import"./vendor-lucide-BovNTc41.js";import"./vendor-markdown-9tTeP8v7.js";import"./vendor-yaml-GWJz5H2G.js";import"./ChartPrimitives-DLEICrrL.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-CYBjbqVr.js";import{e as Ht,G as Wt}from"./SiteHealthSection-D0WRI8jf.js";import"./index-D_ut_IJW.js";import"./vendor-radix-BpmvLvpp.js";import"./vendor-recharts-FA0uySU7.js";import"./vendor-lucide-dNHw1I5G.js";import"./vendor-markdown-9tTeP8v7.js";import"./vendor-yaml-GWJz5H2G.js";import"./ChartPrimitives-DLEICrrL.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
@@ -1 +1 @@
1
- import{r as h}from"./vendor-tanstack-CYBjbqVr.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 u=h.forwardRef(({color:a="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:c,className:s="",children:n,iconNode:i,...d},k)=>h.createElement("svg",{ref:k,...v,width:t,height:t,stroke:a,strokeWidth:c?Number(o)*24/Number(t):o,className:r("lucide",s),...!n&&!m(d)&&{"aria-hidden":"true"},...d},[...i.map(([p,l])=>h.createElement(p,l)),...Array.isArray(n)?n:[n]]));const e=(a,t)=>{const o=h.forwardRef(({className:c,...s},n)=>h.createElement(u,{ref:n,iconNode:t,className:r(`lucide-${_(y(a))}`,`lucide-${a}`,c),...s}));return o.displayName=y(a),o};const x=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],p1=e("arrow-left",x);const g=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],l1=e("arrow-right",g);const w=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],_1=e("arrow-up",w);const $=[["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"}]],M1=e("book-open",$);const N=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],m1=e("check",N);const f=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],v1=e("chevron-down",f);const z=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],u1=e("chevron-left",z);const q=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],x1=e("chevron-right",q);const C=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],g1=e("circle-check",C);const j=[["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"}]],w1=e("circle-question-mark",j);const b=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],$1=e("cloud",b);const A=[["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"}]],N1=e("copy",A);const L=[["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"}]],f1=e("download",L);const H=[["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"}]],z1=e("external-link",H);const R=[["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"}]],q1=e("file-text",R);const V=[["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"}]],C1=e("github",V);const P=[["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"}]],j1=e("globe",P);const E=[["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"}]],b1=e("history",E);const Z=[["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"}]],A1=e("layout-dashboard",Z);const S=[["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"}]],L1=e("link-2",S);const U=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],H1=e("loader-circle",U);const B=[["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"}]],R1=e("maximize-2",B);const D=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],V1=e("menu",D);const T=[["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"}]],P1=e("minimize-2",T);const G=[["path",{d:"M5 12h14",key:"1ays0h"}]],E1=e("minus",G);const I=[["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"}]],Z1=e("panel-left-close",I);const W=[["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"}]],S1=e("panel-left-open",W);const F=[["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"}]],U1=e("pencil",F);const O=[["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"}]],B1=e("play",O);const J=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],D1=e("plus",J);const K=[["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"}]],T1=e("radar",K);const Q=[["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"}]],G1=e("radio",Q);const X=[["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"}]],I1=e("refresh-cw",X);const Y=[["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"}]],W1=e("rocket",Y);const e1=[["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"}]],F1=e("rotate-ccw",e1);const t1=[["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"}]],O1=e("scan-search",t1);const a1=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],J1=e("search",a1);const o1=[["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"}]],K1=e("settings-2",o1);const c1=[["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"}]],Q1=e("settings",c1);const n1=[["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"}]],X1=e("trash-2",n1);const h1=[["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"}]],Y1=e("triangle-alert",h1);const s1=[["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"}]],e2=e("triangle",s1);const d1=[["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"}]],t2=e("unplug",d1);const y1=[["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"}]],a2=e("upload",y1);const r1=[["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"}]],o2=e("wrench",r1);const i1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],c2=e("x",i1);export{l1 as A,M1 as B,v1 as C,f1 as D,z1 as E,q1 as F,j1 as G,b1 as H,u1 as I,O1 as J,K1 as K,H1 as L,P1 as M,B1 as P,G1 as R,J1 as S,Y1 as T,t2 as U,o2 as W,c2 as X,F1 as a,R1 as b,_1 as c,m1 as d,x1 as e,N1 as f,A1 as g,T1 as h,L1 as i,Q1 as j,W1 as k,C1 as l,S1 as m,Z1 as n,V1 as o,D1 as p,I1 as q,a2 as r,g1 as s,w1 as t,E1 as u,U1 as v,X1 as w,$1 as x,e2 as y,p1 as z};
1
+ import{r as h}from"./vendor-tanstack-CYBjbqVr.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 u=h.forwardRef(({color:a="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:c,className:s="",children:n,iconNode:i,...d},k)=>h.createElement("svg",{ref:k,...v,width:t,height:t,stroke:a,strokeWidth:c?Number(o)*24/Number(t):o,className:r("lucide",s),...!n&&!m(d)&&{"aria-hidden":"true"},...d},[...i.map(([p,l])=>h.createElement(p,l)),...Array.isArray(n)?n:[n]]));const e=(a,t)=>{const o=h.forwardRef(({className:c,...s},n)=>h.createElement(u,{ref:n,iconNode:t,className:r(`lucide-${_(y(a))}`,`lucide-${a}`,c),...s}));return o.displayName=y(a),o};const x=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],p1=e("arrow-left",x);const g=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],l1=e("arrow-right",g);const w=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],_1=e("arrow-up",w);const $=[["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"}]],M1=e("book-open",$);const N=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],m1=e("check",N);const f=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],v1=e("chevron-down",f);const z=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],u1=e("chevron-left",z);const q=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],x1=e("chevron-right",q);const C=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],g1=e("circle-check",C);const j=[["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"}]],w1=e("circle-question-mark",j);const b=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],$1=e("cloud",b);const A=[["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"}]],N1=e("copy",A);const L=[["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"}]],f1=e("download",L);const H=[["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"}]],z1=e("external-link",H);const R=[["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"}]],q1=e("file-text",R);const V=[["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"}]],C1=e("github",V);const P=[["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"}]],j1=e("globe",P);const E=[["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"}]],b1=e("history",E);const Z=[["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"}]],A1=e("layout-dashboard",Z);const S=[["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"}]],L1=e("link-2",S);const U=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],H1=e("loader-circle",U);const B=[["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"}]],R1=e("maximize-2",B);const D=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],V1=e("menu",D);const T=[["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"}]],P1=e("minimize-2",T);const G=[["path",{d:"M5 12h14",key:"1ays0h"}]],E1=e("minus",G);const I=[["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"}]],Z1=e("panel-left-close",I);const W=[["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"}]],S1=e("panel-left-open",W);const F=[["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"}]],U1=e("pencil",F);const O=[["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"}]],B1=e("play",O);const J=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],D1=e("plus",J);const K=[["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"}]],T1=e("radar",K);const Q=[["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"}]],G1=e("radio",Q);const X=[["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"}]],I1=e("refresh-cw",X);const Y=[["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"}]],W1=e("rocket",Y);const e1=[["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"}]],F1=e("rotate-ccw",e1);const t1=[["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"}]],O1=e("scan-search",t1);const a1=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],J1=e("search",a1);const o1=[["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"}]],K1=e("settings-2",o1);const c1=[["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"}]],Q1=e("settings",c1);const n1=[["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"}]],X1=e("trash-2",n1);const h1=[["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"}]],Y1=e("triangle-alert",h1);const s1=[["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"}]],e2=e("triangle",s1);const d1=[["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"}]],t2=e("unplug",d1);const y1=[["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"}]],a2=e("upload",y1);const r1=[["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"}]],o2=e("wrench",r1);const i1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],c2=e("x",i1);export{l1 as A,M1 as B,v1 as C,f1 as D,z1 as E,q1 as F,j1 as G,b1 as H,p1 as I,O1 as J,K1 as K,H1 as L,P1 as M,B1 as P,G1 as R,J1 as S,Y1 as T,t2 as U,o2 as W,c2 as X,F1 as a,R1 as b,_1 as c,m1 as d,x1 as e,N1 as f,A1 as g,T1 as h,L1 as i,Q1 as j,W1 as k,C1 as l,S1 as m,Z1 as n,V1 as o,D1 as p,I1 as q,a2 as r,g1 as s,w1 as t,E1 as u,u1 as v,U1 as w,X1 as x,$1 as y,e2 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-B64f9mVI.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-D_ut_IJW.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-CYBjbqVr.js">
17
17
  <link rel="modulepreload" crossorigin href="./assets/vendor-radix-BpmvLvpp.js">
18
18
  <link rel="modulepreload" crossorigin href="./assets/vendor-recharts-FA0uySU7.js">
19
- <link rel="modulepreload" crossorigin href="./assets/vendor-lucide-BovNTc41.js">
19
+ <link rel="modulepreload" crossorigin href="./assets/vendor-lucide-dNHw1I5G.js">
20
20
  <link rel="modulepreload" crossorigin href="./assets/vendor-markdown-9tTeP8v7.js">
21
21
  <link rel="modulepreload" crossorigin href="./assets/vendor-yaml-GWJz5H2G.js">
22
- <link rel="stylesheet" crossorigin href="./assets/index-DTblya6d.css">
22
+ <link rel="stylesheet" crossorigin href="./assets/index-DLB5x_Yh.css">
23
23
  </head>
24
24
  <body>
25
25
  <div id="root"></div>
@@ -5,11 +5,11 @@ import {
5
5
  installSkills,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-QPYMAXLJ.js";
8
+ } from "./chunk-FUCEQ5C5.js";
9
9
  import {
10
10
  SKILL_MANIFEST_FILENAME,
11
11
  SkillsClients
12
- } from "./chunk-HIIOVQSH.js";
12
+ } from "./chunk-EBLUZCIX.js";
13
13
 
14
14
  // src/skills-autosync.ts
15
15
  import fs from "fs";
@@ -3882,6 +3882,8 @@ var measurementV2CompetitorSchema = z6.object({
3882
3882
  var measurementV2GroupSchema = z6.object({
3883
3883
  stableKey: measurementV2StableKeySchema,
3884
3884
  label: z6.string().trim().min(1),
3885
+ /** Explicit reporting navigation only; it is never inferred from target membership. */
3886
+ parentGroupKey: measurementV2StableKeySchema.optional(),
3885
3887
  targetKeys: z6.array(measurementV2StableKeySchema),
3886
3888
  competitors: z6.array(measurementV2CompetitorSchema)
3887
3889
  }).strict();
@@ -4026,6 +4028,42 @@ var measurementPlanV2Schema = z6.object({
4026
4028
  });
4027
4029
  }
4028
4030
  });
4031
+ const groupsByKey = /* @__PURE__ */ new Map();
4032
+ plan.groups.forEach((group, groupIndex) => {
4033
+ if (groupsByKey.has(group.stableKey)) {
4034
+ ctx.addIssue({ code: z6.ZodIssueCode.custom, path: ["groups", groupIndex, "stableKey"], message: "Duplicate group stable key " + group.stableKey });
4035
+ }
4036
+ groupsByKey.set(group.stableKey, group);
4037
+ });
4038
+ plan.groups.forEach((group, groupIndex) => {
4039
+ const parentKey = group.parentGroupKey;
4040
+ if (parentKey === void 0) return;
4041
+ if (parentKey === group.stableKey) {
4042
+ ctx.addIssue({ code: z6.ZodIssueCode.custom, path: ["groups", groupIndex, "parentGroupKey"], message: "A group cannot be its own parent." });
4043
+ return;
4044
+ }
4045
+ const parent = groupsByKey.get(parentKey);
4046
+ if (!parent) {
4047
+ ctx.addIssue({ code: z6.ZodIssueCode.custom, path: ["groups", groupIndex, "parentGroupKey"], message: "Group parent does not exist: " + parentKey });
4048
+ return;
4049
+ }
4050
+ const parentTargets = new Set(parent.targetKeys);
4051
+ group.targetKeys.forEach((targetKey, targetIndex) => {
4052
+ if (!parentTargets.has(targetKey)) ctx.addIssue({ code: z6.ZodIssueCode.custom, path: ["groups", groupIndex, "targetKeys", targetIndex], message: "Group target membership must be a subset of its parent." });
4053
+ });
4054
+ const seen = /* @__PURE__ */ new Set([group.stableKey]);
4055
+ let cursor = parent;
4056
+ while (cursor.parentGroupKey !== void 0) {
4057
+ if (seen.has(cursor.stableKey)) {
4058
+ ctx.addIssue({ code: z6.ZodIssueCode.custom, path: ["groups", groupIndex, "parentGroupKey"], message: "Group parent relationships cannot contain a cycle." });
4059
+ break;
4060
+ }
4061
+ seen.add(cursor.stableKey);
4062
+ const next = groupsByKey.get(cursor.parentGroupKey);
4063
+ if (!next) break;
4064
+ cursor = next;
4065
+ }
4066
+ });
4029
4067
  for (const group of plan.groups) {
4030
4068
  for (const targetKey of group.targetKeys) {
4031
4069
  if (!targetKeys.has(targetKey)) {
@@ -6096,7 +6134,9 @@ var visibilityReportScopeOptionSchema = z14.object({
6096
6134
  id: nonBlankIdSchema,
6097
6135
  label: z14.string().trim().min(1),
6098
6136
  kind: visibilityReportScopeKindSchema,
6099
- targetCount: z14.number().int().nonnegative()
6137
+ targetCount: z14.number().int().nonnegative(),
6138
+ /** Group and Property membership is frozen and explicit; groups have zero or one id. */
6139
+ parentGroupIds: z14.array(nonBlankIdSchema).optional()
6100
6140
  }).strict();
6101
6141
  var visibilityReportModelOptionSchema = z14.object({
6102
6142
  provider: nonBlankIdSchema,
@@ -6377,6 +6417,7 @@ var queryTrackingTargetSchema = z15.object({
6377
6417
  }).strict();
6378
6418
  var queryTrackingGroupSchema = z15.object({
6379
6419
  stableKey: measurementV2StableKeySchema,
6420
+ parentGroupKey: measurementV2StableKeySchema.optional(),
6380
6421
  label: z15.string().trim().min(1),
6381
6422
  targetKeys: z15.array(measurementV2StableKeySchema)
6382
6423
  }).strict();
@@ -7282,6 +7323,8 @@ var measurementDraftCompetitorSchema = measurementV2CompetitorSchema;
7282
7323
  var measurementDraftGroupSchema = z18.object({
7283
7324
  stableKey: measurementV2StableKeySchema,
7284
7325
  label: z18.string().trim().min(1),
7326
+ /** Explicit reporting navigation only; no geographic hierarchy is inferred. */
7327
+ parentGroupKey: measurementV2StableKeySchema.optional(),
7285
7328
  targetKeys: z18.array(measurementV2StableKeySchema),
7286
7329
  competitors: z18.array(measurementDraftCompetitorSchema)
7287
7330
  }).strict();
@@ -7493,6 +7536,8 @@ var measurementDraftUpsertGroupRequestSchema = z18.object({
7493
7536
  group: z18.object({
7494
7537
  stableKey: measurementV2StableKeySchema,
7495
7538
  label: z18.string().trim().min(1),
7539
+ /** Omission preserves the existing parent for older clients; null explicitly detaches. */
7540
+ parentGroupKey: measurementV2StableKeySchema.nullable().optional(),
7496
7541
  targetKeys: z18.array(measurementV2StableKeySchema),
7497
7542
  /** Omission preserves existing competitors; presence replaces the complete list. */
7498
7543
  competitors: z18.array(measurementDraftCompetitorSchema).optional()
@@ -99,7 +99,7 @@ import {
99
99
  trafficEventKindSchema,
100
100
  trafficSeriesGranularitySchema,
101
101
  visibilityReportRequestSchema
102
- } from "./chunk-HIIOVQSH.js";
102
+ } from "./chunk-EBLUZCIX.js";
103
103
 
104
104
  // src/cli-error.ts
105
105
  function isMachineFormat(format) {
@@ -13,7 +13,7 @@ import {
13
13
  loadConfig,
14
14
  loadConfigRaw,
15
15
  saveConfigPatch
16
- } from "./chunk-QPYMAXLJ.js";
16
+ } from "./chunk-FUCEQ5C5.js";
17
17
  import {
18
18
  CC_CACHE_DIR,
19
19
  DUCKDB_SPEC,
@@ -160,7 +160,7 @@ import {
160
160
  siteCrawlSnapshots,
161
161
  toAlertView,
162
162
  usageCounters
163
- } from "./chunk-GPTEXYYL.js";
163
+ } from "./chunk-HBXA2APL.js";
164
164
  import {
165
165
  AGENT_MEMORY_VALUE_MAX_BYTES,
166
166
  AGENT_PROVIDER_IDS,
@@ -302,7 +302,7 @@ import {
302
302
  validationError,
303
303
  winnabilityClassLabel,
304
304
  withRetry
305
- } from "./chunk-HIIOVQSH.js";
305
+ } from "./chunk-EBLUZCIX.js";
306
306
 
307
307
  // src/telemetry.ts
308
308
  import crypto from "crypto";
@@ -11924,7 +11924,7 @@ function readStoredGroundingSources(rawResponse) {
11924
11924
  return result;
11925
11925
  }
11926
11926
  async function backfillInsightsCommand(project, opts) {
11927
- const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-4KMWHEYP.js");
11927
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-SLL5HWV6.js");
11928
11928
  const config = loadConfig();
11929
11929
  const db = createClient(config.database);
11930
11930
  migrate(db);
@@ -670,7 +670,7 @@ import {
670
670
  wordpressSchemaDeployResultDtoSchema,
671
671
  wordpressSchemaStatusResultDtoSchema,
672
672
  wordpressStatusDtoSchema
673
- } from "./chunk-HIIOVQSH.js";
673
+ } from "./chunk-EBLUZCIX.js";
674
674
 
675
675
  // src/intelligence-service.ts
676
676
  import { eq as eq67, desc as desc29, asc as asc12, and as and56, ne as ne10, or as or14, inArray as inArray25, gte as gte18, lte as lte15, isNull as isNull12, sql as sql26, exists } from "drizzle-orm";
@@ -17502,6 +17502,7 @@ function compileMeasurementDraft(authoring, context) {
17502
17502
  compiledGroups.push({
17503
17503
  stableKey: group.stableKey,
17504
17504
  label: group.label,
17505
+ ...group.parentGroupKey === void 0 ? {} : { parentGroupKey: group.parentGroupKey },
17505
17506
  targetKeys: canonicalStrings(group.targetKeys),
17506
17507
  competitors: [...group.competitors].map((competitor) => ({ ...competitor, aliases: canonicalStrings(competitor.aliases) })).sort((left, right) => compareText7(left.stableKey, right.stableKey))
17507
17508
  });
@@ -17793,12 +17794,13 @@ function plansAreLabelOnlyVariants(active, candidate) {
17793
17794
  const doc = canonicalMeasurementPlanV2(plan);
17794
17795
  const stripped = {
17795
17796
  ...doc,
17796
- // compiledChecksum is DERIVED over the full document, labels included,
17797
- // so keeping it would smuggle the stripped labels back into the
17798
- // comparison. Everything else in the doc is semantic and stays.
17797
+ // The checksum includes labels and navigation parents. Neutralize it
17798
+ // with those display fields; all measurement semantics stay in the comparison.
17799
17799
  compiledChecksum: "",
17800
17800
  targets: doc.targets.map((target) => ({ ...target, label: "" })),
17801
- groups: doc.groups.map((group) => ({
17801
+ groups: doc.groups.map(({ parentGroupKey: _parentGroupKey, ...group }) => ({
17802
+ // Parentage changes navigation only. It changes the frozen document and
17803
+ // checksum, but never an execution, target population, or metric.
17802
17804
  ...group,
17803
17805
  label: "",
17804
17806
  competitors: group.competitors.map((competitor) => ({ ...competitor, label: "" }))
@@ -18207,6 +18209,7 @@ function upsertGroup(authoring, body) {
18207
18209
  const next = {
18208
18210
  stableKey: group.stableKey,
18209
18211
  label: group.label,
18212
+ ...group.parentGroupKey === void 0 ? index2 === -1 || groups[index2].parentGroupKey === void 0 ? {} : { parentGroupKey: groups[index2].parentGroupKey } : group.parentGroupKey === null ? {} : { parentGroupKey: group.parentGroupKey },
18210
18213
  targetKeys: unique(group.targetKeys),
18211
18214
  competitors: group.competitors === void 0 ? index2 === -1 ? [] : groups[index2].competitors : group.competitors
18212
18215
  };
@@ -18221,6 +18224,10 @@ function upsertGroup(authoring, body) {
18221
18224
  }
18222
18225
  function removeGroup(authoring, body) {
18223
18226
  const { groupKey } = parseBody(measurementDraftRemoveGroupRequestSchema, body, "remove-group");
18227
+ const children = authoring.groups.filter((group) => group.parentGroupKey === groupKey);
18228
+ if (children.length) {
18229
+ throw validationError("Cannot remove group " + groupKey + " while it is the explicit parent of: " + children.map((group) => group.stableKey).join(", ") + ". Reparent or remove its child groups first.", { displayToOperator: true });
18230
+ }
18224
18231
  return {
18225
18232
  authoring: { ...authoring, groups: authoring.groups.filter((group) => group.stableKey !== groupKey) },
18226
18233
  warnings: []
@@ -19135,6 +19142,7 @@ function seedAuthoring(project, active, context, opts) {
19135
19142
  groups: active.groups.map((group) => ({
19136
19143
  stableKey: group.stableKey,
19137
19144
  label: group.label,
19145
+ ...group.parentGroupKey === void 0 ? {} : { parentGroupKey: group.parentGroupKey },
19138
19146
  targetKeys: [...group.targetKeys],
19139
19147
  competitors: group.competitors.map((competitor) => ({ ...competitor }))
19140
19148
  })),
@@ -22238,8 +22246,9 @@ function breakdown(candidates, definition, populationTargetKeys = selectedTarget
22238
22246
  ...metrics
22239
22247
  };
22240
22248
  }).sort((left, right) => compareText14(left.label, right.label) || compareText14(left.id, right.id));
22241
- const groups = definition.groups.map((group) => {
22242
- const groupTargetKeys = new Set(group.targetKeys);
22249
+ const populationTargetSet = new Set(populationTargetKeys);
22250
+ const groups = definition.groups.map((group) => ({ group, targetKeys: group.targetKeys.filter((targetKey) => populationTargetSet.has(targetKey)) })).filter(({ targetKeys }) => targetKeys.length > 0).map(({ group, targetKeys }) => {
22251
+ const groupTargetKeys = new Set(targetKeys);
22243
22252
  const own = candidates.map((candidate) => narrowedToTargetKeys(candidate, groupTargetKeys)).filter((candidate) => candidate !== null);
22244
22253
  const metrics = rate(own.map((candidate) => targetValues(candidate, targets).mention), own.length);
22245
22254
  const citations = rate(own.map((candidate) => targetValues(candidate, targets).citation), own.length);
@@ -22250,7 +22259,7 @@ function breakdown(candidates, definition, populationTargetKeys = selectedTarget
22250
22259
  mentionCoverage: metrics,
22251
22260
  citationCoverage: citations
22252
22261
  };
22253
- }).filter((group) => group.queryCount > 0).sort((left, right) => compareText14(left.label, right.label) || compareText14(left.id, right.id));
22262
+ }).sort((left, right) => compareText14(left.label, right.label) || compareText14(left.id, right.id));
22254
22263
  return { properties, groups };
22255
22264
  }
22256
22265
  function fingerprint(value) {
@@ -22611,16 +22620,20 @@ function v2Definition(plan, revision, manifest, run) {
22611
22620
  location: slot.context?.label ?? null
22612
22621
  };
22613
22622
  });
22623
+ const groupKeysForTarget = new Map(plan.targets.map((target) => [target.stableKey, []]));
22624
+ for (const group of plan.groups) {
22625
+ for (const targetKey of group.targetKeys) groupKeysForTarget.get(targetKey)?.push(group.stableKey);
22626
+ }
22614
22627
  const scopeOptions = [
22615
22628
  { id: "project", label: "Project", kind: "project", targetCount: plan.targets.length },
22616
- ...plan.groups.map((group) => ({ id: group.stableKey, label: group.label, kind: "group", targetCount: group.targetKeys.length })),
22629
+ ...plan.groups.map((group) => ({ id: group.stableKey, label: group.label, kind: "group", targetCount: group.targetKeys.length, ...group.parentGroupKey === void 0 ? {} : { parentGroupIds: [group.parentGroupKey] } })),
22617
22630
  ...plan.reportingScopes?.map((market) => ({
22618
22631
  id: market.stableKey,
22619
22632
  label: market.label,
22620
22633
  kind: "market",
22621
22634
  targetCount: new Set(market.usageEdges.map((edge) => edge.targetKey)).size
22622
22635
  })) ?? [],
22623
- ...plan.targets.map((target) => ({ id: target.stableKey, label: target.label, kind: "property", targetCount: 1 }))
22636
+ ...plan.targets.map((target) => ({ id: target.stableKey, label: target.label, kind: "property", targetCount: 1, parentGroupIds: [...new Set(groupKeysForTarget.get(target.stableKey) ?? [])].sort() }))
22624
22637
  ];
22625
22638
  return {
22626
22639
  revision,
@@ -23618,7 +23631,12 @@ function workspaceDto(db, state, opts) {
23618
23631
  active: activeDto2(state.active),
23619
23632
  defaultContexts: defaultContexts(state.project, opts, state.mode),
23620
23633
  targets: plan?.targets.map((target) => ({ stableKey: target.stableKey, label: target.label })) ?? [],
23621
- groups: plan?.groups.map((group) => ({ stableKey: group.stableKey, label: group.label, targetKeys: group.targetKeys })) ?? [],
23634
+ groups: plan?.groups.map((group) => ({
23635
+ stableKey: group.stableKey,
23636
+ label: group.label,
23637
+ targetKeys: group.targetKeys,
23638
+ ...group.parentGroupKey ? { parentGroupKey: group.parentGroupKey } : {}
23639
+ })) ?? [],
23622
23640
  markets: plan?.reportingScopes?.map((scope) => ({ stableKey: scope.stableKey, label: scope.label, usageEdges: scope.usageEdges })) ?? [],
23623
23641
  tracked: trackedRows(db, state, rows, plan, opts),
23624
23642
  savedSources: savedSources(db, state.project.id)
package/dist/cli.js CHANGED
@@ -28,11 +28,11 @@ import {
28
28
  trackCliCommandFinished,
29
29
  trackEvent,
30
30
  waitForServerRuntimeStartup
31
- } from "./chunk-6YJQGOR6.js";
31
+ } from "./chunk-H25PK25P.js";
32
32
  import {
33
33
  autoSyncSkills,
34
34
  formatAutoSyncNotice
35
- } from "./chunk-A47HAZDJ.js";
35
+ } from "./chunk-5NAOIDJM.js";
36
36
  import {
37
37
  CliError,
38
38
  EXIT_SYSTEM_ERROR,
@@ -58,7 +58,7 @@ import {
58
58
  saveConfigPatch,
59
59
  systemError,
60
60
  usageError
61
- } from "./chunk-QPYMAXLJ.js";
61
+ } from "./chunk-FUCEQ5C5.js";
62
62
  import {
63
63
  CLOUDFLARE_WORKER_BINDINGS,
64
64
  CLOUDFLARE_WORKER_GENERATED_MARKER,
@@ -72,7 +72,7 @@ import {
72
72
  projects,
73
73
  queries,
74
74
  renderReportHtml
75
- } from "./chunk-GPTEXYYL.js";
75
+ } from "./chunk-HBXA2APL.js";
76
76
  import {
77
77
  AdsDeliverySnapshotStatuses,
78
78
  AdsHistoricalCampaignRollupStatuses,
@@ -146,7 +146,7 @@ import {
146
146
  shareOfVoiceReason,
147
147
  visibilityReportRequestSchema,
148
148
  winnabilityClassSchema
149
- } from "./chunk-HIIOVQSH.js";
149
+ } from "./chunk-EBLUZCIX.js";
150
150
 
151
151
  // src/cli.ts
152
152
  import { pathToFileURL } from "url";
package/dist/index.js CHANGED
@@ -3,12 +3,12 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-6YJQGOR6.js";
6
+ } from "./chunk-H25PK25P.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-QPYMAXLJ.js";
10
- import "./chunk-GPTEXYYL.js";
11
- import "./chunk-HIIOVQSH.js";
9
+ } from "./chunk-FUCEQ5C5.js";
10
+ import "./chunk-HBXA2APL.js";
11
+ import "./chunk-EBLUZCIX.js";
12
12
  export {
13
13
  GoogleMarketingRuntimeError,
14
14
  createGoogleMarketingCredentialStore,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-GPTEXYYL.js";
4
- import "./chunk-HIIOVQSH.js";
3
+ } from "./chunk-HBXA2APL.js";
4
+ import "./chunk-EBLUZCIX.js";
5
5
  export {
6
6
  IntelligenceService
7
7
  };
package/dist/mcp.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  autoSyncSkills
3
- } from "./chunk-A47HAZDJ.js";
3
+ } from "./chunk-5NAOIDJM.js";
4
4
  import {
5
5
  createApiClient,
6
6
  createCanonryMcpServer
7
- } from "./chunk-QPYMAXLJ.js";
7
+ } from "./chunk-FUCEQ5C5.js";
8
8
  import {
9
9
  isReadOnlyKey
10
- } from "./chunk-HIIOVQSH.js";
10
+ } from "./chunk-EBLUZCIX.js";
11
11
 
12
12
  // src/mcp/cli.ts
13
13
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ainyc/canonry",
3
- "version": "4.188.1",
3
+ "version": "4.188.2",
4
4
  "type": "module",
5
5
  "description": "Self-hosted AI visibility (AEO) platform: track how ChatGPT, Claude, Gemini, and Perplexity cite your domain, join it with Search Console, GA4, server-side traffic, and paid media, and fix what you find through agent tools (CLI, REST, MCP). Local SQLite.",
6
6
  "license": "FSL-1.1-ALv2",
@@ -71,30 +71,30 @@
71
71
  "tsup": "^8.5.1",
72
72
  "tsx": "^4.19.0",
73
73
  "@ainyc/canonry-web": "0.0.0",
74
+ "@ainyc/canonry-config": "0.0.0",
74
75
  "@ainyc/canonry-contracts": "0.0.0",
75
- "@ainyc/canonry-api-client": "0.0.0",
76
76
  "@ainyc/canonry-api-routes": "0.0.0",
77
- "@ainyc/canonry-config": "0.0.0",
78
- "@ainyc/canonry-integration-bing": "0.0.0",
79
77
  "@ainyc/canonry-db": "0.0.0",
80
- "@ainyc/canonry-integration-cloud-run": "0.0.0",
78
+ "@ainyc/canonry-integration-bing": "0.0.0",
81
79
  "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
82
- "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
80
+ "@ainyc/canonry-integration-cloud-run": "0.0.0",
83
81
  "@ainyc/canonry-integration-google": "0.0.0",
84
82
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
85
83
  "@ainyc/canonry-integration-google-ads": "0.0.0",
86
84
  "@ainyc/canonry-integration-google-business-profile": "0.0.0",
87
85
  "@ainyc/canonry-integration-google-places": "0.0.0",
88
86
  "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
87
+ "@ainyc/canonry-api-client": "0.0.0",
88
+ "@ainyc/canonry-integration-openai-ads": "0.0.0",
89
+ "@ainyc/canonry-intelligence": "0.0.0",
89
90
  "@ainyc/canonry-integration-traffic": "0.0.0",
90
91
  "@ainyc/canonry-integration-wordpress": "0.0.0",
91
- "@ainyc/canonry-intelligence": "0.0.0",
92
+ "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
92
93
  "@ainyc/canonry-provider-claude": "0.0.0",
93
- "@ainyc/canonry-provider-local": "0.0.0",
94
- "@ainyc/canonry-integration-openai-ads": "0.0.0",
95
94
  "@ainyc/canonry-provider-cdp": "0.0.0",
96
95
  "@ainyc/canonry-provider-gemini": "0.0.0",
97
96
  "@ainyc/canonry-provider-openai": "0.0.0",
97
+ "@ainyc/canonry-provider-local": "0.0.0",
98
98
  "@ainyc/canonry-provider-perplexity": "0.0.0"
99
99
  },
100
100
  "scripts": {