@ainyc/canonry 4.188.2 → 4.188.3
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.
- package/assets/assets/{AuditHistoryPanel-BB7rr4vG.js → AuditHistoryPanel-C58OHinE.js} +1 -1
- package/assets/assets/{BacklinksPage-8dDuc28f.js → BacklinksPage-BXHARmkv.js} +1 -1
- package/assets/assets/{HistoryPage-CCvbnLuu.js → HistoryPage-DGHy5AST.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-BrrQ6PvC.js → MeasurementPropertyPage-Dhzw05Kj.js} +1 -1
- package/assets/assets/{ProjectPage-DNT9kgFA.js → ProjectPage-BkXYHYxW.js} +1 -1
- package/assets/assets/{RunRow-CmgxzVdi.js → RunRow-DWVXPbMq.js} +1 -1
- package/assets/assets/{RunsPage-C45l2Esz.js → RunsPage-Bs-wYMIK.js} +1 -1
- package/assets/assets/{SettingsPage-CpYnUN8n.js → SettingsPage-wP-BxKXV.js} +1 -1
- package/assets/assets/{SiteHealthSection-D0WRI8jf.js → SiteHealthSection-weOW2a99.js} +3 -3
- package/assets/assets/{TrafficPage-D632bq2a.js → TrafficPage-BKPq62Do.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-DPBUcLs4.js → TrafficSourceDetailPage-BfzMTwYB.js} +1 -1
- package/assets/assets/{extract-error-message-DFIwOwb8.js → extract-error-message-BoqECTcn.js} +1 -1
- package/assets/assets/index-KTeRanN1.css +1 -0
- package/assets/assets/{index-D_ut_IJW.js → index-gmvpT868.js} +30 -30
- package/assets/assets/{react-sigma_core.esm.min-BtdnOf_z.js → react-sigma_core.esm.min-Gf0WvNYq.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-EBLUZCIX.js → chunk-3HZELBZZ.js} +27 -13
- package/dist/{chunk-H25PK25P.js → chunk-7NMMQ7QO.js} +4 -4
- package/dist/{chunk-HBXA2APL.js → chunk-AC3ZIRHR.js} +61 -25
- package/dist/{chunk-FUCEQ5C5.js → chunk-OXYM6VCJ.js} +1 -1
- package/dist/{chunk-5NAOIDJM.js → chunk-VJRQTKUB.js} +2 -2
- package/dist/cli.js +5 -5
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-SLL5HWV6.js → intelligence-service-GMG2S55U.js} +2 -2
- package/dist/mcp.js +3 -3
- package/package.json +13 -13
- package/assets/assets/index-DLB5x_Yh.css +0 -1
package/assets/assets/{react-sigma_core.esm.min-BtdnOf_z.js → react-sigma_core.esm.min-Gf0WvNYq.js}
RENAMED
|
@@ -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-
|
|
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-weOW2a99.js";import"./index-gmvpT868.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
|
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-
|
|
15
|
+
<script type="module" crossorigin src="./assets/index-gmvpT868.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
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-
|
|
22
|
+
<link rel="stylesheet" crossorigin href="./assets/index-KTeRanN1.css">
|
|
23
23
|
</head>
|
|
24
24
|
<body>
|
|
25
25
|
<div id="root"></div>
|
|
@@ -3403,6 +3403,19 @@ function brandWords(value) {
|
|
|
3403
3403
|
function brandKeyFromText(value) {
|
|
3404
3404
|
return brandWords(value).join("");
|
|
3405
3405
|
}
|
|
3406
|
+
var wordsByPreparedText = /* @__PURE__ */ new WeakMap();
|
|
3407
|
+
function prepareBrandMatchText(text) {
|
|
3408
|
+
if (!text) return null;
|
|
3409
|
+
const normalized = normalizeForMatch(text);
|
|
3410
|
+
return { normalized, stripped: normalized.replace(NON_WORD, "") };
|
|
3411
|
+
}
|
|
3412
|
+
function wordsOfPreparedText(prepared) {
|
|
3413
|
+
const cached = wordsByPreparedText.get(prepared);
|
|
3414
|
+
if (cached) return cached;
|
|
3415
|
+
const words = wordsOfNormalized(prepared.normalized);
|
|
3416
|
+
wordsByPreparedText.set(prepared, words);
|
|
3417
|
+
return words;
|
|
3418
|
+
}
|
|
3406
3419
|
function compileBrandAliases(aliases) {
|
|
3407
3420
|
const keys = /* @__PURE__ */ new Set();
|
|
3408
3421
|
let longest = 0;
|
|
@@ -3417,17 +3430,17 @@ function compileBrandAliases(aliases) {
|
|
|
3417
3430
|
}
|
|
3418
3431
|
function matcherMatchesText(matcher, text) {
|
|
3419
3432
|
if (!text || matcher.keys.size === 0) return false;
|
|
3420
|
-
const
|
|
3421
|
-
|
|
3433
|
+
const prepared = typeof text === "string" ? prepareBrandMatchText(text) : text;
|
|
3434
|
+
if (!prepared) return false;
|
|
3422
3435
|
let possible = false;
|
|
3423
3436
|
for (const key of matcher.keys) {
|
|
3424
|
-
if (stripped.includes(key)) {
|
|
3437
|
+
if (prepared.stripped.includes(key)) {
|
|
3425
3438
|
possible = true;
|
|
3426
3439
|
break;
|
|
3427
3440
|
}
|
|
3428
3441
|
}
|
|
3429
3442
|
if (!possible) return false;
|
|
3430
|
-
const words =
|
|
3443
|
+
const words = wordsOfPreparedText(prepared);
|
|
3431
3444
|
for (let start = 0; start < words.length; start++) {
|
|
3432
3445
|
let candidate = "";
|
|
3433
3446
|
for (let end = start; end < words.length; end++) {
|
|
@@ -3441,11 +3454,11 @@ function matcherMatchesText(matcher, text) {
|
|
|
3441
3454
|
function matchedAliasKeys(matcher, text) {
|
|
3442
3455
|
const found = /* @__PURE__ */ new Set();
|
|
3443
3456
|
if (!text || matcher.keys.size === 0) return found;
|
|
3444
|
-
const
|
|
3445
|
-
|
|
3446
|
-
const reachable = [...matcher.keys].filter((key) => stripped.includes(key));
|
|
3457
|
+
const prepared = typeof text === "string" ? prepareBrandMatchText(text) : text;
|
|
3458
|
+
if (!prepared) return found;
|
|
3459
|
+
const reachable = [...matcher.keys].filter((key) => prepared.stripped.includes(key));
|
|
3447
3460
|
if (reachable.length === 0) return found;
|
|
3448
|
-
const words =
|
|
3461
|
+
const words = wordsOfPreparedText(prepared);
|
|
3449
3462
|
for (let start = 0; start < words.length; start++) {
|
|
3450
3463
|
let candidate = "";
|
|
3451
3464
|
for (let end = start; end < words.length; end++) {
|
|
@@ -3467,15 +3480,15 @@ function textContainsAnyBrandAlias(text, aliases) {
|
|
|
3467
3480
|
|
|
3468
3481
|
// ../contracts/src/answer-visibility.ts
|
|
3469
3482
|
var MIN_DOMAIN_BRAND_KEY_LENGTH = 4;
|
|
3470
|
-
function extractAnswerMentions(answerText, brandNames, domains) {
|
|
3483
|
+
function extractAnswerMentions(answerText, brandNames, domains, answerDomains) {
|
|
3471
3484
|
if (!answerText) return { mentioned: false, matchedTerms: [] };
|
|
3472
3485
|
const matchedTerms = [];
|
|
3473
3486
|
const matchedDomainTerms = /* @__PURE__ */ new Set();
|
|
3474
|
-
const
|
|
3487
|
+
const extractedAnswerDomains = answerDomains ?? extractDomainsFromText(answerText);
|
|
3475
3488
|
for (const domain of domains) {
|
|
3476
3489
|
const normalizedDomain = hostOf(domain);
|
|
3477
3490
|
if (!normalizedDomain || !normalizedDomain.includes(".")) continue;
|
|
3478
|
-
if (
|
|
3491
|
+
if (extractedAnswerDomains.some((candidate) => hostMatchesDomain(candidate, normalizedDomain))) {
|
|
3479
3492
|
matchedTerms.push(normalizedDomain);
|
|
3480
3493
|
matchedDomainTerms.add(normalizedDomain);
|
|
3481
3494
|
}
|
|
@@ -3510,8 +3523,8 @@ function extractAnswerMentions(answerText, brandNames, domains) {
|
|
|
3510
3523
|
});
|
|
3511
3524
|
return { mentioned: dedupedFinal.length > 0, matchedTerms: dedupedFinal };
|
|
3512
3525
|
}
|
|
3513
|
-
function determineAnswerMentioned(answerText, brandNames, domains) {
|
|
3514
|
-
return extractAnswerMentions(answerText, brandNames, domains).mentioned;
|
|
3526
|
+
function determineAnswerMentioned(answerText, brandNames, domains, answerDomains) {
|
|
3527
|
+
return extractAnswerMentions(answerText, brandNames, domains, answerDomains).mentioned;
|
|
3515
3528
|
}
|
|
3516
3529
|
function visibilityStateFromAnswerMentioned(answerMentioned) {
|
|
3517
3530
|
return answerMentioned ? "visible" : "not-visible";
|
|
@@ -17548,6 +17561,7 @@ export {
|
|
|
17548
17561
|
textContainsDomain,
|
|
17549
17562
|
normalizeUrlPath,
|
|
17550
17563
|
brandKeyFromText,
|
|
17564
|
+
prepareBrandMatchText,
|
|
17551
17565
|
compileBrandAliases,
|
|
17552
17566
|
matcherMatchesText,
|
|
17553
17567
|
matchedAliasKeys,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
loadConfig,
|
|
14
14
|
loadConfigRaw,
|
|
15
15
|
saveConfigPatch
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-OXYM6VCJ.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-
|
|
163
|
+
} from "./chunk-AC3ZIRHR.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-
|
|
305
|
+
} from "./chunk-3HZELBZZ.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-
|
|
11927
|
+
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-GMG2S55U.js");
|
|
11928
11928
|
const config = loadConfig();
|
|
11929
11929
|
const db = createClient(config.database);
|
|
11930
11930
|
migrate(db);
|
|
@@ -524,6 +524,7 @@ import {
|
|
|
524
524
|
parseStoredMeasurementPlanAnyVersion,
|
|
525
525
|
parseWindow,
|
|
526
526
|
pickClusterRepresentative,
|
|
527
|
+
prepareBrandMatchText,
|
|
527
528
|
projectConfigSchema,
|
|
528
529
|
projectCreateRequestSchema,
|
|
529
530
|
projectDtoSchema,
|
|
@@ -670,7 +671,7 @@ import {
|
|
|
670
671
|
wordpressSchemaDeployResultDtoSchema,
|
|
671
672
|
wordpressSchemaStatusResultDtoSchema,
|
|
672
673
|
wordpressStatusDtoSchema
|
|
673
|
-
} from "./chunk-
|
|
674
|
+
} from "./chunk-3HZELBZZ.js";
|
|
674
675
|
|
|
675
676
|
// src/intelligence-service.ts
|
|
676
677
|
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";
|
|
@@ -8486,7 +8487,7 @@ function compileCompetitiveSignalResolver(competitorDomains) {
|
|
|
8486
8487
|
...evidence.citedDomains ?? [],
|
|
8487
8488
|
...(evidence.groundingSources ?? []).map((source) => source.uri)
|
|
8488
8489
|
];
|
|
8489
|
-
const answerDomains = extractDomainsFromText(evidence.answerText);
|
|
8490
|
+
const answerDomains = evidence.answerDomains ?? extractDomainsFromText(evidence.answerText);
|
|
8490
8491
|
const mentionedBrandKeys = matchedAliasKeys(domainBrandMatcher, evidence.answerText);
|
|
8491
8492
|
const citedCompetitorDomains = [];
|
|
8492
8493
|
const mentionedCompetitorDomains = [];
|
|
@@ -13091,11 +13092,16 @@ function buildMentionShareInputs(opts) {
|
|
|
13091
13092
|
competitors: mentionShareCompetitorsFromDomains(opts.competitorDomains),
|
|
13092
13093
|
snapshots: opts.snapshots.map((snap) => {
|
|
13093
13094
|
const queryText = (snap.queryId ? opts.queryTextById?.get(snap.queryId) : void 0) ?? snap.queryText ?? null;
|
|
13095
|
+
const cachedAnswerDomains = !snap.answerText || !opts.answerDomainsByText ? void 0 : opts.answerDomainsByText.get(snap.answerText) ?? (() => {
|
|
13096
|
+
const domains = extractDomainsFromText(snap.answerText);
|
|
13097
|
+
opts.answerDomainsByText.set(snap.answerText, domains);
|
|
13098
|
+
return domains;
|
|
13099
|
+
})();
|
|
13094
13100
|
return {
|
|
13095
13101
|
// Mention share is a current-identity metric. Recompute stored answer
|
|
13096
13102
|
// text after an alias/domain rename; only text-less legacy rows need
|
|
13097
13103
|
// the persisted run-time boolean as a fallback.
|
|
13098
|
-
projectMentioned: snap.answerText ? determineAnswerMentioned(snap.answerText, projectBrandNames, projectDomains) : snap.answerMentioned === true,
|
|
13104
|
+
projectMentioned: snap.answerText ? determineAnswerMentioned(snap.answerText, projectBrandNames, projectDomains, cachedAnswerDomains) : snap.answerMentioned === true,
|
|
13099
13105
|
answerText: snap.answerText,
|
|
13100
13106
|
queryClass: classify ? classify(queryText) : null
|
|
13101
13107
|
};
|
|
@@ -13173,32 +13179,41 @@ function parseSourceUrl(value) {
|
|
|
13173
13179
|
function ownedBy(host, roots) {
|
|
13174
13180
|
return roots.some((root) => host === root || host.endsWith(`.${root}`));
|
|
13175
13181
|
}
|
|
13176
|
-
function
|
|
13177
|
-
|
|
13178
|
-
|
|
13179
|
-
|
|
13182
|
+
function compiledTargetRoutes(targets) {
|
|
13183
|
+
const routes = /* @__PURE__ */ new Map();
|
|
13184
|
+
for (const target of targets) {
|
|
13185
|
+
for (const url of target.urls) {
|
|
13186
|
+
const host = normalizedHost(url.host);
|
|
13187
|
+
const path8 = url.mode === "host" ? "" : normalizedPath(url.path);
|
|
13188
|
+
const rows = routes.get(host) ?? [];
|
|
13189
|
+
rows.push({ targetId: target.id, url, path: url.pathCase === "insensitive" ? path8.toLocaleLowerCase("en") : path8 });
|
|
13190
|
+
routes.set(host, rows);
|
|
13191
|
+
}
|
|
13192
|
+
}
|
|
13193
|
+
return routes;
|
|
13194
|
+
}
|
|
13195
|
+
function routeClaim(source, route) {
|
|
13196
|
+
const { targetId, url, path: matcherPath } = route;
|
|
13197
|
+
if (url.mode === "host") return { targetId, urlId: url.id, modeRank: 1, pathLength: 0 };
|
|
13180
13198
|
const sourcePath = url.pathCase === "insensitive" ? source.path.toLocaleLowerCase("en") : source.path;
|
|
13181
|
-
const matcherPath = url.pathCase === "insensitive" ? configuredPath.toLocaleLowerCase("en") : configuredPath;
|
|
13182
13199
|
const matches = url.mode === "exact" ? sourcePath === matcherPath : matcherPath === "/" || sourcePath === matcherPath || sourcePath.startsWith(`${matcherPath}/`);
|
|
13183
13200
|
if (!matches) return null;
|
|
13184
13201
|
return {
|
|
13185
|
-
targetId
|
|
13202
|
+
targetId,
|
|
13186
13203
|
urlId: url.id,
|
|
13187
13204
|
modeRank: url.mode === "exact" ? 3 : 2,
|
|
13188
13205
|
pathLength: matcherPath.length
|
|
13189
13206
|
};
|
|
13190
13207
|
}
|
|
13191
|
-
function classifySourceAttribution(value,
|
|
13208
|
+
function classifySourceAttribution(value, routes, normalizedOwnedHosts) {
|
|
13192
13209
|
const source = parseSourceUrl(value);
|
|
13193
13210
|
if (!source) {
|
|
13194
13211
|
return { classification: "invalid", normalizedUrl: null, matchedTargetIds: [], matchedUrlIds: [] };
|
|
13195
13212
|
}
|
|
13196
13213
|
const claims = [];
|
|
13197
|
-
for (const
|
|
13198
|
-
|
|
13199
|
-
|
|
13200
|
-
if (claim) claims.push(claim);
|
|
13201
|
-
}
|
|
13214
|
+
for (const route of routes.get(source.host) ?? []) {
|
|
13215
|
+
const claim = routeClaim(source, route);
|
|
13216
|
+
if (claim) claims.push(claim);
|
|
13202
13217
|
}
|
|
13203
13218
|
claims.sort((left, right) => right.modeRank - left.modeRank || right.pathLength - left.pathLength || compareText2(left.targetId, right.targetId) || compareText2(left.urlId, right.urlId));
|
|
13204
13219
|
const best = claims.at(0);
|
|
@@ -13268,12 +13283,22 @@ function containsAnyAlias(answerText, aliases) {
|
|
|
13268
13283
|
function compiledMentionAliases(targets) {
|
|
13269
13284
|
return targets.flatMap((target) => target.aliases.map((alias2) => ({ targetId: target.id, words: words(alias2) }))).filter((alias2) => alias2.words.length > 0);
|
|
13270
13285
|
}
|
|
13286
|
+
function indexMentionAliases(aliases) {
|
|
13287
|
+
const byFirstWord = /* @__PURE__ */ new Map();
|
|
13288
|
+
for (const alias2 of aliases) {
|
|
13289
|
+
const firstWord = alias2.words[0];
|
|
13290
|
+
const rows = byFirstWord.get(firstWord) ?? [];
|
|
13291
|
+
rows.push(alias2);
|
|
13292
|
+
byFirstWord.set(firstWord, rows);
|
|
13293
|
+
}
|
|
13294
|
+
return byFirstWord;
|
|
13295
|
+
}
|
|
13271
13296
|
function mentionedTargetsForAliases(answerText, aliases) {
|
|
13272
13297
|
const result = /* @__PURE__ */ new Set();
|
|
13273
13298
|
if (answerText === null) return result;
|
|
13274
13299
|
const textWords = words(answerText);
|
|
13275
13300
|
for (let start = 0; start < textWords.length; ) {
|
|
13276
|
-
const matches = aliases.filter((alias2) => aliasMatchesAt(textWords, alias2.words, start));
|
|
13301
|
+
const matches = (aliases.get(textWords[start]) ?? []).filter((alias2) => aliasMatchesAt(textWords, alias2.words, start));
|
|
13277
13302
|
if (matches.length === 0) {
|
|
13278
13303
|
start++;
|
|
13279
13304
|
continue;
|
|
@@ -13286,7 +13311,7 @@ function mentionedTargetsForAliases(answerText, aliases) {
|
|
|
13286
13311
|
return result;
|
|
13287
13312
|
}
|
|
13288
13313
|
function mentionedTargets(answerText, targets) {
|
|
13289
|
-
return mentionedTargetsForAliases(answerText, compiledMentionAliases(targets));
|
|
13314
|
+
return mentionedTargetsForAliases(answerText, indexMentionAliases(compiledMentionAliases(targets)));
|
|
13290
13315
|
}
|
|
13291
13316
|
function targetMentionedInAnswer(answerText, targetId, targets) {
|
|
13292
13317
|
if (answerText === null) return null;
|
|
@@ -13312,6 +13337,7 @@ function prepareReport(input, options = {}) {
|
|
|
13312
13337
|
const bridged = /* @__PURE__ */ new Set();
|
|
13313
13338
|
const candidates = /* @__PURE__ */ new Map();
|
|
13314
13339
|
const mentionAliases = compiledMentionAliases(input.targets);
|
|
13340
|
+
const aliasesByFirstWord = indexMentionAliases(mentionAliases);
|
|
13315
13341
|
for (const observation of input.observations) {
|
|
13316
13342
|
const slots = observation.executionId !== null ? input.expectedSlots.filter((slot2) => slot2.executionId === observation.executionId && slot2.provider === observation.provider) : input.expectedSlots.filter((slot2) => slot2.queryText === observation.queryText && slot2.provider === observation.provider && normalizeMeasurementLocation(slot2.location) === normalizeMeasurementLocation(observation.location));
|
|
13317
13343
|
if (slots.length === 0) {
|
|
@@ -13350,7 +13376,7 @@ function prepareReport(input, options = {}) {
|
|
|
13350
13376
|
historical: source.historical,
|
|
13351
13377
|
sourceComplete: source.complete,
|
|
13352
13378
|
sourceUrls: source.urls,
|
|
13353
|
-
mentionedTargetIds: mentionedTargetsForAliases(observation.answerText,
|
|
13379
|
+
mentionedTargetIds: mentionedTargetsForAliases(observation.answerText, aliasesByFirstWord)
|
|
13354
13380
|
});
|
|
13355
13381
|
}
|
|
13356
13382
|
const edgesByExecution = /* @__PURE__ */ new Map();
|
|
@@ -13361,11 +13387,12 @@ function prepareReport(input, options = {}) {
|
|
|
13361
13387
|
}
|
|
13362
13388
|
const answers = [];
|
|
13363
13389
|
const normalizedOwnedHosts = input.ownedHosts.map(normalizedHost);
|
|
13390
|
+
const targetRoutes = compiledTargetRoutes(input.targets);
|
|
13364
13391
|
const sourceAttributions = /* @__PURE__ */ new Map();
|
|
13365
13392
|
const sourceAttribution = (sourceUrl) => {
|
|
13366
13393
|
const cached = sourceAttributions.get(sourceUrl);
|
|
13367
13394
|
if (cached !== void 0) return cached;
|
|
13368
|
-
const resolved = classifySourceAttribution(sourceUrl,
|
|
13395
|
+
const resolved = classifySourceAttribution(sourceUrl, targetRoutes, normalizedOwnedHosts);
|
|
13369
13396
|
sourceAttributions.set(sourceUrl, resolved);
|
|
13370
13397
|
return resolved;
|
|
13371
13398
|
};
|
|
@@ -22542,8 +22569,8 @@ function frozenCompetitorMatchers(competitors2) {
|
|
|
22542
22569
|
function exactCompetitorMatchers(plan) {
|
|
22543
22570
|
return frozenCompetitorMatchers(plan.groups.flatMap((group) => group.competitors));
|
|
22544
22571
|
}
|
|
22545
|
-
function competitorSignals(snapshot, matchers) {
|
|
22546
|
-
const mentioned =
|
|
22572
|
+
function competitorSignals(snapshot, matchers, preparedAnswerText = prepareBrandMatchText(snapshot.answerText)) {
|
|
22573
|
+
const mentioned = preparedAnswerText === null ? [] : [...matchers].filter(([, matcher]) => matcherMatchesText(matcher, preparedAnswerText)).map(([domain]) => domain);
|
|
22547
22574
|
const citedDomains = new Set(snapshot.citedDomains.map((value) => {
|
|
22548
22575
|
try {
|
|
22549
22576
|
return normalizeMeasurementHost(value);
|
|
@@ -22784,8 +22811,9 @@ function frozenSimpleRun(run, definition, snapshots) {
|
|
|
22784
22811
|
}
|
|
22785
22812
|
const slotId = `slot:simple:${query.queryId}:${provider}`;
|
|
22786
22813
|
if (!slotKeys.has(slotId)) throw new Error(`Frozen simple definition has no slot for stored snapshot ${snapshot.id}`);
|
|
22787
|
-
const
|
|
22788
|
-
const
|
|
22814
|
+
const preparedAnswerText = prepareBrandMatchText(snapshot.answerText);
|
|
22815
|
+
const mentioned = snapshot.answerText !== null ? matcherMatchesText(matcher, preparedAnswerText) : snapshot.answerMentioned === true;
|
|
22816
|
+
const competitorSignalsForSnapshot = competitors2 === null ? { mentioned: [], cited: [] } : competitorSignals(snapshot, competitors2, preparedAnswerText);
|
|
22789
22817
|
observations.push({
|
|
22790
22818
|
slotId,
|
|
22791
22819
|
answerId: snapshot.id,
|
|
@@ -33574,11 +33602,18 @@ async function compositeRoutes(app) {
|
|
|
33574
33602
|
}
|
|
33575
33603
|
}
|
|
33576
33604
|
const configuredApiProviders = project.providers.filter((p) => !p.startsWith("cdp:"));
|
|
33605
|
+
const answerDomainsByText = /* @__PURE__ */ new Map();
|
|
33606
|
+
for (const snapshot of trackedLatest) {
|
|
33607
|
+
if (snapshot.answerText && !answerDomainsByText.has(snapshot.answerText)) {
|
|
33608
|
+
answerDomainsByText.set(snapshot.answerText, extractDomainsFromText(snapshot.answerText));
|
|
33609
|
+
}
|
|
33610
|
+
}
|
|
33577
33611
|
const mentionShareInputs = buildMentionShareInputs({
|
|
33578
33612
|
project,
|
|
33579
33613
|
competitorDomains: competitorRows2.map((c) => c.domain),
|
|
33580
33614
|
snapshots: trackedLatest,
|
|
33581
|
-
queryTextById: queryLookup.byId
|
|
33615
|
+
queryTextById: queryLookup.byId,
|
|
33616
|
+
answerDomainsByText
|
|
33582
33617
|
});
|
|
33583
33618
|
const competitiveSignalResolver = compileCompetitiveSignalResolver(
|
|
33584
33619
|
competitorRows2.map((c) => c.domain)
|
|
@@ -33588,7 +33623,8 @@ async function compositeRoutes(app) {
|
|
|
33588
33623
|
...competitiveSignalResolver.resolve({
|
|
33589
33624
|
citedDomains: snapshot.citedDomains,
|
|
33590
33625
|
groundingSources: snapshot.groundingSources,
|
|
33591
|
-
answerText: snapshot.answerText
|
|
33626
|
+
answerText: snapshot.answerText,
|
|
33627
|
+
answerDomains: snapshot.answerText ? answerDomainsByText.get(snapshot.answerText) : void 0
|
|
33592
33628
|
})
|
|
33593
33629
|
}));
|
|
33594
33630
|
const scores = {
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
installSkills,
|
|
6
6
|
loadConfigRaw,
|
|
7
7
|
saveConfigPatch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OXYM6VCJ.js";
|
|
9
9
|
import {
|
|
10
10
|
SKILL_MANIFEST_FILENAME,
|
|
11
11
|
SkillsClients
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3HZELBZZ.js";
|
|
13
13
|
|
|
14
14
|
// src/skills-autosync.ts
|
|
15
15
|
import fs from "fs";
|
package/dist/cli.js
CHANGED
|
@@ -28,11 +28,11 @@ import {
|
|
|
28
28
|
trackCliCommandFinished,
|
|
29
29
|
trackEvent,
|
|
30
30
|
waitForServerRuntimeStartup
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-7NMMQ7QO.js";
|
|
32
32
|
import {
|
|
33
33
|
autoSyncSkills,
|
|
34
34
|
formatAutoSyncNotice
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-VJRQTKUB.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-
|
|
61
|
+
} from "./chunk-OXYM6VCJ.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-
|
|
75
|
+
} from "./chunk-AC3ZIRHR.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-
|
|
149
|
+
} from "./chunk-3HZELBZZ.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-
|
|
6
|
+
} from "./chunk-7NMMQ7QO.js";
|
|
7
7
|
import {
|
|
8
8
|
loadConfig
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-OXYM6VCJ.js";
|
|
10
|
+
import "./chunk-AC3ZIRHR.js";
|
|
11
|
+
import "./chunk-3HZELBZZ.js";
|
|
12
12
|
export {
|
|
13
13
|
GoogleMarketingRuntimeError,
|
|
14
14
|
createGoogleMarketingCredentialStore,
|
package/dist/mcp.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
autoSyncSkills
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VJRQTKUB.js";
|
|
4
4
|
import {
|
|
5
5
|
createApiClient,
|
|
6
6
|
createCanonryMcpServer
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OXYM6VCJ.js";
|
|
8
8
|
import {
|
|
9
9
|
isReadOnlyKey
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3HZELBZZ.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.
|
|
3
|
+
"version": "4.188.3",
|
|
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",
|
|
@@ -70,31 +70,31 @@
|
|
|
70
70
|
"@types/node-cron": "^3.0.11",
|
|
71
71
|
"tsup": "^8.5.1",
|
|
72
72
|
"tsx": "^4.19.0",
|
|
73
|
-
"@ainyc/canonry-
|
|
74
|
-
"@ainyc/canonry-config": "0.0.0",
|
|
75
|
-
"@ainyc/canonry-contracts": "0.0.0",
|
|
73
|
+
"@ainyc/canonry-api-client": "0.0.0",
|
|
76
74
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
75
|
+
"@ainyc/canonry-config": "0.0.0",
|
|
77
76
|
"@ainyc/canonry-db": "0.0.0",
|
|
77
|
+
"@ainyc/canonry-contracts": "0.0.0",
|
|
78
78
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
79
|
-
"@ainyc/canonry-
|
|
79
|
+
"@ainyc/canonry-web": "0.0.0",
|
|
80
80
|
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
81
|
-
"@ainyc/canonry-integration-
|
|
81
|
+
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
82
82
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
83
83
|
"@ainyc/canonry-integration-google-ads": "0.0.0",
|
|
84
84
|
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
85
|
+
"@ainyc/canonry-integration-google": "0.0.0",
|
|
86
|
+
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
85
87
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
86
|
-
"@ainyc/canonry-integration-google-tag-manager": "0.0.0",
|
|
87
|
-
"@ainyc/canonry-api-client": "0.0.0",
|
|
88
88
|
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
89
|
-
"@ainyc/canonry-intelligence": "0.0.0",
|
|
90
|
-
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
91
89
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
92
|
-
"@ainyc/canonry-integration-
|
|
93
|
-
"@ainyc/canonry-
|
|
90
|
+
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
91
|
+
"@ainyc/canonry-integration-google-tag-manager": "0.0.0",
|
|
94
92
|
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
93
|
+
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
95
94
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
96
|
-
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
97
95
|
"@ainyc/canonry-provider-local": "0.0.0",
|
|
96
|
+
"@ainyc/canonry-intelligence": "0.0.0",
|
|
97
|
+
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
98
98
|
"@ainyc/canonry-provider-perplexity": "0.0.0"
|
|
99
99
|
},
|
|
100
100
|
"scripts": {
|