@ainyc/canonry 4.190.0 → 4.190.1
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/README.md +1 -1
- package/assets/assets/{AuditHistoryPanel-wWLs088f.js → AuditHistoryPanel-Dob_85ay.js} +1 -1
- package/assets/assets/{BacklinksPage-DJEO5o9c.js → BacklinksPage-BDm4gQsa.js} +1 -1
- package/assets/assets/{HistoryPage-CV5bTBU6.js → HistoryPage-BUGJKNWJ.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-C7KLIAad.js → MeasurementPropertyPage-H2g4VdcA.js} +1 -1
- package/assets/assets/{ProjectPage-DIW1h05b.js → ProjectPage-d7iOSkrd.js} +7 -7
- package/assets/assets/{RunRow-C3Ryj_9u.js → RunRow-Cja3vahD.js} +1 -1
- package/assets/assets/{RunsPage-BxoEkZu3.js → RunsPage-BdVfLW9Z.js} +1 -1
- package/assets/assets/{SettingsPage-D_mB1JUZ.js → SettingsPage-Xw9rdDPd.js} +1 -1
- package/assets/assets/{SiteHealthSection-Dgqtz9J2.js → SiteHealthSection-CjioXMWy.js} +3 -3
- package/assets/assets/{TrafficPage-DgsWuDtv.js → TrafficPage-D5ZqJrJm.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-BLWlQ8aT.js → TrafficSourceDetailPage-DB5V8cdH.js} +1 -1
- package/assets/assets/{extract-error-message-DHIHApUf.js → extract-error-message-lzuarNEg.js} +1 -1
- package/assets/assets/{index-nb8QHq99.js → index-YVHujfy1.js} +26 -26
- package/assets/assets/{react-sigma_core.esm.min-DzTADS1A.js → react-sigma_core.esm.min-Ddu-c40B.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-4NIQ3GMO.js → chunk-BE366UCM.js} +2 -2
- package/dist/{chunk-6POEZ7GT.js → chunk-ECPN4OUR.js} +74 -66
- package/dist/cli.js +2 -2
- package/dist/index.js +2 -2
- package/dist/{intelligence-service-WNASQFN4.js → intelligence-service-QCKX2W4G.js} +1 -1
- package/package.json +10 -10
package/assets/assets/{react-sigma_core.esm.min-DzTADS1A.js → react-sigma_core.esm.min-Ddu-c40B.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-CjioXMWy.js";import"./index-YVHujfy1.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,7 +12,7 @@
|
|
|
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-YVHujfy1.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">
|
|
@@ -162,7 +162,7 @@ import {
|
|
|
162
162
|
siteCrawlSnapshots,
|
|
163
163
|
toAlertView,
|
|
164
164
|
usageCounters
|
|
165
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-ECPN4OUR.js";
|
|
166
166
|
import {
|
|
167
167
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
168
168
|
AGENT_PROVIDER_IDS,
|
|
@@ -12041,7 +12041,7 @@ function readStoredGroundingSources(rawResponse) {
|
|
|
12041
12041
|
return result;
|
|
12042
12042
|
}
|
|
12043
12043
|
async function backfillInsightsCommand(project, opts) {
|
|
12044
|
-
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-
|
|
12044
|
+
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-QCKX2W4G.js");
|
|
12045
12045
|
const config = loadConfig();
|
|
12046
12046
|
const db = createClient(config.database);
|
|
12047
12047
|
migrate(db);
|
|
@@ -13805,54 +13805,61 @@ function scopeNamedShareOfVoice(identities, answered2, prepared) {
|
|
|
13805
13805
|
entries: credited.map((row) => ({ ...row, share: row.credits / denominator }))
|
|
13806
13806
|
};
|
|
13807
13807
|
}
|
|
13808
|
-
function
|
|
13808
|
+
function createMeasurementOverviewEvaluator(input, options = {}) {
|
|
13809
13809
|
const prepared = prepareReport(input, options);
|
|
13810
13810
|
const indexes = buildMeasurementOverviewIndexes(input, prepared, options.onEvidenceIndexed);
|
|
13811
|
-
|
|
13812
|
-
|
|
13813
|
-
|
|
13814
|
-
|
|
13815
|
-
|
|
13816
|
-
|
|
13817
|
-
|
|
13818
|
-
|
|
13819
|
-
|
|
13820
|
-
|
|
13821
|
-
|
|
13822
|
-
mentionCoverage: targetMentionRate(ownTargets, ownSlots, ownAnswered, indexes),
|
|
13823
|
-
citationCoverage: indexedScopeCitationRate(ownSlots, ownEdges, indexes),
|
|
13824
|
-
// Each engine is measured over the slots it owns, using exactly the
|
|
13825
|
-
// functions the Property total uses. A per-engine reading is therefore
|
|
13826
|
-
// withheld for the same reasons the total is, never rounded down to zero.
|
|
13827
|
-
providers: providersFor(ownSlots).map((provider) => {
|
|
13828
|
-
const providerSlots = ownSlots.filter((slot) => slot.provider === provider);
|
|
13811
|
+
return {
|
|
13812
|
+
evaluate(scopeTargetIds, namedIdentities = input.namedIdentities) {
|
|
13813
|
+
const targetIds = new Set(scopeTargetIds);
|
|
13814
|
+
const edges = indexedScopeEdges(indexes, targetIds);
|
|
13815
|
+
const slots = indexedSlotsForEdges(edges, indexes);
|
|
13816
|
+
const answered2 = indexedAnsweredSlots(slots, indexes);
|
|
13817
|
+
const properties = sortedUnique([...targetIds]).map((targetId) => {
|
|
13818
|
+
const ownEdges = indexes.targetEdgesByTargetId.get(targetId) ?? [];
|
|
13819
|
+
const ownSlots = indexedSlotsForEdges(ownEdges, indexes);
|
|
13820
|
+
const ownAnswered = indexedAnsweredSlots(ownSlots, indexes);
|
|
13821
|
+
const ownTargets = indexes.targetsById.get(targetId);
|
|
13829
13822
|
return {
|
|
13830
|
-
|
|
13831
|
-
mentionCoverage: targetMentionRate(
|
|
13832
|
-
|
|
13833
|
-
|
|
13834
|
-
|
|
13835
|
-
|
|
13836
|
-
)
|
|
13837
|
-
|
|
13823
|
+
targetId,
|
|
13824
|
+
mentionCoverage: targetMentionRate(ownTargets, ownSlots, ownAnswered, indexes),
|
|
13825
|
+
citationCoverage: indexedScopeCitationRate(ownSlots, ownEdges, indexes),
|
|
13826
|
+
// Each engine is measured over the slots it owns, using exactly the
|
|
13827
|
+
// functions the Property total uses. A per-engine reading is therefore
|
|
13828
|
+
// withheld for the same reasons the total is, never rounded down to zero.
|
|
13829
|
+
providers: providersFor(ownSlots).map((provider) => {
|
|
13830
|
+
const providerSlots = ownSlots.filter((slot) => slot.provider === provider);
|
|
13831
|
+
return {
|
|
13832
|
+
provider,
|
|
13833
|
+
mentionCoverage: targetMentionRate(
|
|
13834
|
+
ownTargets,
|
|
13835
|
+
providerSlots,
|
|
13836
|
+
indexedAnsweredSlots(providerSlots, indexes),
|
|
13837
|
+
indexes
|
|
13838
|
+
),
|
|
13839
|
+
citationCoverage: indexedScopeCitationRate(providerSlots, ownEdges, indexes)
|
|
13840
|
+
};
|
|
13841
|
+
}),
|
|
13842
|
+
flags: indexes.ambiguousEvidenceKeysByTargetId.get(targetId)?.size ?? 0
|
|
13838
13843
|
};
|
|
13839
|
-
})
|
|
13840
|
-
|
|
13841
|
-
|
|
13842
|
-
|
|
13843
|
-
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
flags: properties.reduce((total, row) => total + row.flags, 0)
|
|
13844
|
+
});
|
|
13845
|
+
return {
|
|
13846
|
+
eligibleSlots: slots.length,
|
|
13847
|
+
answeredSlots: answered2.length,
|
|
13848
|
+
includesHistoricalData: prepared.diagnostics.bridgedObservationIds.length > 0 || prepared.diagnostics.historicalObservationIds.length > 0,
|
|
13849
|
+
propertiesMentioned: scopePropertiesMentioned(input, targetIds, slots, answered2, prepared),
|
|
13850
|
+
mentionCoverage: scopeMentionRate(input, targetIds, slots, answered2, prepared),
|
|
13851
|
+
citationCoverage: indexedScopeCitationRate(slots, edges, indexes),
|
|
13852
|
+
brandPresence: scopeBrandPresence(input, slots, answered2, prepared),
|
|
13853
|
+
namedShareOfVoice: scopeNamedShareOfVoice(namedIdentities ?? [], answered2, prepared),
|
|
13854
|
+
properties,
|
|
13855
|
+
flags: properties.reduce((total, row) => total + row.flags, 0)
|
|
13856
|
+
};
|
|
13857
|
+
}
|
|
13854
13858
|
};
|
|
13855
13859
|
}
|
|
13860
|
+
function buildMeasurementOverview(input, options = {}) {
|
|
13861
|
+
return createMeasurementOverviewEvaluator(input, options).evaluate(input.scopeTargetIds, input.namedIdentities);
|
|
13862
|
+
}
|
|
13856
13863
|
function buildMeasurementEvidence(input, options = {}) {
|
|
13857
13864
|
const prepared = prepareReport(input, options);
|
|
13858
13865
|
return { answers: prepared.answers, evidence: prepared.evidence, diagnostics: prepared.diagnostics };
|
|
@@ -21408,16 +21415,16 @@ function filteredOverviewWithDb(db, active, plan, run, filters, targetKeys) {
|
|
|
21408
21415
|
const location = filters.location === void 0 ? void 0 : normalizeMeasurementLocation(filters.location);
|
|
21409
21416
|
const expectedSlots = materialized.input.expectedSlots.filter((slot) => (provider === void 0 || normalizeText2(slot.provider) === provider) && (location === void 0 || normalizeMeasurementLocation(slot.location) === location));
|
|
21410
21417
|
const usageEdges = materialized.input.usageEdges.filter((edge) => filters.queryClass === "all" || materialized.edgeQueryClass.get(edge.id) === filters.queryClass);
|
|
21411
|
-
|
|
21412
|
-
materialized,
|
|
21418
|
+
const evaluator = createMeasurementOverviewEvaluator({
|
|
21419
|
+
...materialized.input,
|
|
21413
21420
|
expectedSlots,
|
|
21414
21421
|
usageEdges,
|
|
21415
|
-
|
|
21416
|
-
|
|
21417
|
-
|
|
21418
|
-
|
|
21419
|
-
|
|
21420
|
-
|
|
21422
|
+
scopeTargetIds: [...targetKeys]
|
|
21423
|
+
});
|
|
21424
|
+
return {
|
|
21425
|
+
materialized,
|
|
21426
|
+
evaluator,
|
|
21427
|
+
overview: evaluator.evaluate(targetKeys)
|
|
21421
21428
|
};
|
|
21422
21429
|
}
|
|
21423
21430
|
function targetAnswers(plan, target, materialized, filters) {
|
|
@@ -21537,16 +21544,11 @@ function targetKeysForRun(plan, run, requested, requireEntireScope) {
|
|
|
21537
21544
|
}
|
|
21538
21545
|
return selected;
|
|
21539
21546
|
}
|
|
21540
|
-
function marketRollup(plan, run,
|
|
21547
|
+
function marketRollup(plan, run, evaluator, scopedToOneGroup) {
|
|
21541
21548
|
if (scopedToOneGroup) return [];
|
|
21542
21549
|
return plan.groups.map((group) => {
|
|
21543
21550
|
const targetKeys = targetKeysForRun(plan, run, group.targetKeys, false);
|
|
21544
|
-
const overview =
|
|
21545
|
-
...materialized.input,
|
|
21546
|
-
expectedSlots,
|
|
21547
|
-
usageEdges,
|
|
21548
|
-
scopeTargetIds: targetKeys
|
|
21549
|
-
});
|
|
21551
|
+
const overview = evaluator.evaluate(targetKeys);
|
|
21550
21552
|
return {
|
|
21551
21553
|
groupKey: group.stableKey,
|
|
21552
21554
|
label: group.label,
|
|
@@ -21618,22 +21620,28 @@ function portfolioResponse(db, active, plan, query) {
|
|
|
21618
21620
|
truncated: rows2.length > limit2
|
|
21619
21621
|
});
|
|
21620
21622
|
}
|
|
21621
|
-
const { materialized, overview,
|
|
21623
|
+
const { materialized, overview, evaluator } = filteredOverviewWithDb(db, active, plan, run, filters, targetKeys);
|
|
21622
21624
|
const measured = new Map(overview.properties.map((row) => [row.targetId, row]));
|
|
21623
|
-
const
|
|
21625
|
+
const ranked = targets.map((target) => {
|
|
21624
21626
|
const row = measured.get(target.stableKey);
|
|
21625
|
-
const recommendations = recommendationRows(target, targetAnswers(plan, target, materialized, filters));
|
|
21626
21627
|
return {
|
|
21628
|
+
target,
|
|
21627
21629
|
...propertyDto2(target),
|
|
21628
21630
|
mentionCoverage: row ? coverageMetric2(row.mentionCoverage) : unavailable3("no_population"),
|
|
21629
21631
|
citationCoverage: row ? coverageMetric2(row.citationCoverage) : unavailable3("no_population"),
|
|
21630
|
-
flags: row?.flags ?? 0
|
|
21632
|
+
flags: row?.flags ?? 0
|
|
21633
|
+
};
|
|
21634
|
+
}).sort(compareWeakest);
|
|
21635
|
+
const limit = query.limit ?? DEFAULT_LIMIT3;
|
|
21636
|
+
const rows = ranked.slice(0, limit).map(({ target, ...row }) => {
|
|
21637
|
+
const recommendations = recommendationRows(target, targetAnswers(plan, target, materialized, filters));
|
|
21638
|
+
return {
|
|
21639
|
+
...row,
|
|
21631
21640
|
recommendedInstead: recommendations.slice(0, 5).map(({ name, occurrences }) => ({ name, occurrences })),
|
|
21632
21641
|
recommendedInsteadTotal: recommendations.length,
|
|
21633
21642
|
recommendedInsteadTruncated: recommendations.length > 5
|
|
21634
21643
|
};
|
|
21635
|
-
})
|
|
21636
|
-
const limit = query.limit ?? DEFAULT_LIMIT3;
|
|
21644
|
+
});
|
|
21637
21645
|
return measurementPortfolioSummaryResponseSchema.parse({
|
|
21638
21646
|
portfolio: {
|
|
21639
21647
|
groupKey: group?.stableKey ?? null,
|
|
@@ -21648,9 +21656,9 @@ function portfolioResponse(db, active, plan, query) {
|
|
|
21648
21656
|
citationCoverage: coverageMetric2(overview.citationCoverage)
|
|
21649
21657
|
},
|
|
21650
21658
|
weakestProperties: rows.slice(0, limit),
|
|
21651
|
-
markets: marketRollup(plan, run,
|
|
21652
|
-
totalProperties:
|
|
21653
|
-
truncated:
|
|
21659
|
+
markets: marketRollup(plan, run, evaluator, group !== void 0),
|
|
21660
|
+
totalProperties: ranked.length,
|
|
21661
|
+
truncated: ranked.length > limit
|
|
21654
21662
|
});
|
|
21655
21663
|
}
|
|
21656
21664
|
function propertyCompetitorsResponse(db, active, plan, query) {
|
package/dist/cli.js
CHANGED
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
trackCliCommandFinished,
|
|
29
29
|
trackEvent,
|
|
30
30
|
waitForServerRuntimeStartup
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-BE366UCM.js";
|
|
32
32
|
import {
|
|
33
33
|
autoSyncSkills,
|
|
34
34
|
formatAutoSyncNotice
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
projects,
|
|
73
73
|
queries,
|
|
74
74
|
renderReportHtml
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-ECPN4OUR.js";
|
|
76
76
|
import {
|
|
77
77
|
AdsDeliverySnapshotStatuses,
|
|
78
78
|
AdsHistoricalCampaignRollupStatuses,
|
package/dist/index.js
CHANGED
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
createGoogleMarketingCredentialStore,
|
|
4
4
|
createGoogleMarketingRuntime,
|
|
5
5
|
createServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BE366UCM.js";
|
|
7
7
|
import {
|
|
8
8
|
loadConfig
|
|
9
9
|
} from "./chunk-32QBVRMN.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-ECPN4OUR.js";
|
|
11
11
|
import "./chunk-ROPJUNQN.js";
|
|
12
12
|
export {
|
|
13
13
|
GoogleMarketingRuntimeError,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ainyc/canonry",
|
|
3
|
-
"version": "4.190.
|
|
3
|
+
"version": "4.190.1",
|
|
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-api-client": "0.0.0",
|
|
75
|
+
"@ainyc/canonry-config": "0.0.0",
|
|
74
76
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
75
77
|
"@ainyc/canonry-contracts": "0.0.0",
|
|
76
|
-
"@ainyc/canonry-
|
|
77
|
-
"@ainyc/canonry-api-client": "0.0.0",
|
|
78
|
+
"@ainyc/canonry-db": "0.0.0",
|
|
78
79
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
79
80
|
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
80
81
|
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
81
|
-
"@ainyc/canonry-db": "0.0.0",
|
|
82
|
-
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
83
82
|
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
84
|
-
"@ainyc/canonry-integration-
|
|
83
|
+
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
85
84
|
"@ainyc/canonry-integration-google": "0.0.0",
|
|
85
|
+
"@ainyc/canonry-integration-google-ads": "0.0.0",
|
|
86
|
+
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
86
87
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
87
88
|
"@ainyc/canonry-integration-google-tag-manager": "0.0.0",
|
|
88
|
-
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
89
89
|
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
90
90
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
91
|
-
"@ainyc/canonry-intelligence": "0.0.0",
|
|
92
91
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
93
|
-
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
94
92
|
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
93
|
+
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
94
|
+
"@ainyc/canonry-intelligence": "0.0.0",
|
|
95
95
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
96
|
-
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
97
96
|
"@ainyc/canonry-provider-local": "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": {
|