@canonry/canonry 4.176.0 → 4.177.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +15 -0
- package/assets/assets/{AuditHistoryPanel-aEUCJheK.js → AuditHistoryPanel-YZvGU1la.js} +1 -1
- package/assets/assets/{BacklinksPage-BcWequGL.js → BacklinksPage-CB2uJWWy.js} +1 -1
- package/assets/assets/{HistoryPage-D0BWQK0c.js → HistoryPage-D9IxxbQ9.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-D96eQnYJ.js → MeasurementPropertyPage-CxgnnPdp.js} +1 -1
- package/assets/assets/{ProjectPage-CoRkwGec.js → ProjectPage-CPmaXzhL.js} +8 -8
- package/assets/assets/{RunRow--3y-0dSr.js → RunRow-2KxOta8F.js} +1 -1
- package/assets/assets/{RunsPage-7wdCl_J3.js → RunsPage-ya8vTkyd.js} +1 -1
- package/assets/assets/{SettingsPage-D37dV5-m.js → SettingsPage-lTy3o2bo.js} +1 -1
- package/assets/assets/{SiteHealthSection-B9WF97sJ.js → SiteHealthSection-Cyu7MIv2.js} +3 -3
- package/assets/assets/TrafficPage-DjhKfw57.js +1 -0
- package/assets/assets/TrafficSourceDetailPage-Pwi-Dl9Q.js +1 -0
- package/assets/assets/{extract-error-message-DlPqK0mV.js → extract-error-message-I1FVWHLH.js} +1 -1
- package/assets/assets/{index-CiQNKNMG.js → index-BeLVKN3H.js} +3 -3
- package/assets/assets/{react-sigma_core.esm.min-Dc7_SFjo.js → react-sigma_core.esm.min-BX6mOEq5.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-TIEHKR6K.js → chunk-F4ZZKGAC.js} +1 -1
- package/dist/{chunk-OSMUOPBR.js → chunk-UXXXKDW4.js} +70 -6
- package/dist/{chunk-HYKZOCBT.js → chunk-WW7TDVLV.js} +2 -2
- package/dist/{chunk-J3RVQCCQ.js → chunk-X776E66Z.js} +680 -634
- package/dist/{chunk-DSGX2IAI.js → chunk-YWFNRDLK.js} +4 -4
- package/dist/cli.js +7 -7
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-RSZTVVX2.js → intelligence-service-QLLGPZOC.js} +2 -2
- package/dist/mcp.js +3 -3
- package/package.json +9 -9
- package/assets/assets/TrafficPage-Bn1yDSRr.js +0 -1
- package/assets/assets/TrafficSourceDetailPage-CURlB_yO.js +0 -1
package/assets/assets/{react-sigma_core.esm.min-Dc7_SFjo.js → react-sigma_core.esm.min-BX6mOEq5.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as Bt,t as S,r as C}from"./vendor-tanstack-Dock0eH1.js";import{e as Ht,G as Wt}from"./SiteHealthSection-
|
|
1
|
+
import{g as Bt,t as S,r as C}from"./vendor-tanstack-Dock0eH1.js";import{e as Ht,G as Wt}from"./SiteHealthSection-Cyu7MIv2.js";import"./index-BeLVKN3H.js";import"./vendor-radix-4UOaVWza.js";import"./vendor-recharts-D8rt5lKn.js";import"./vendor-lucide-nYKv-BB7.js";import"./vendor-markdown-Bn7fRwrx.js";import"./vendor-yaml-GWJz5H2G.js";import"./ChartPrimitives-BoYe2M-i.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-BeLVKN3H.js"></script>
|
|
16
16
|
<link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-Dock0eH1.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="./assets/vendor-radix-4UOaVWza.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="./assets/vendor-recharts-D8rt5lKn.js">
|
|
@@ -13655,8 +13655,22 @@ var serverActivitySectionSchema = z47.object({
|
|
|
13655
13655
|
* not "is this a confirmed bot identity?"
|
|
13656
13656
|
*/
|
|
13657
13657
|
aiUserFetchHits: z47.object({ current: z47.number(), prior: z47.number(), deltaPct: z47.number().nullable() }),
|
|
13658
|
-
/**
|
|
13658
|
+
/**
|
|
13659
|
+
* Last-7d AI-referral sessions (sessionized from server-side request
|
|
13660
|
+
* evidence). Paid + organic + unclassified. Excludes subresource fetches and
|
|
13661
|
+
* requests answered with a Location redirect (301/302/303/307/308): a hop is
|
|
13662
|
+
* not an arrival, and its destination raises its own row. Redirect-answered
|
|
13663
|
+
* requests are reported separately in `referralRedirects`.
|
|
13664
|
+
*/
|
|
13659
13665
|
referralArrivals: z47.object({ current: z47.number(), prior: z47.number(), deltaPct: z47.number().nullable() }),
|
|
13666
|
+
/**
|
|
13667
|
+
* AI-referred requests in the current window that were answered with a
|
|
13668
|
+
* Location redirect instead of a page. Not arrivals — but a site where this
|
|
13669
|
+
* dominates has its AI traffic bouncing off a redirect before landing, which
|
|
13670
|
+
* is exactly the thing to fix, so the report must be able to say it rather
|
|
13671
|
+
* than render an empty section.
|
|
13672
|
+
*/
|
|
13673
|
+
referralRedirects: z47.number().int().nonnegative(),
|
|
13660
13674
|
/**
|
|
13661
13675
|
* `referralArrivals` split by traffic class. The three buckets sum to it.
|
|
13662
13676
|
*
|
|
@@ -14567,7 +14581,31 @@ var trafficSourceTotalsSchema = z50.object({
|
|
|
14567
14581
|
/** Full per-class crawler-hit breakdown; the five buckets sum to `crawlerHits`. */
|
|
14568
14582
|
crawlerSegments: trafficCrawlerSegmentsSchema,
|
|
14569
14583
|
aiUserFetchHits: z50.number().int().nonnegative(),
|
|
14584
|
+
/**
|
|
14585
|
+
* Every request carrying AI-origin evidence. UNCHANGED contract — still the
|
|
14586
|
+
* full count across every status. Use `aiReferralLandedHits` for the
|
|
14587
|
+
* "someone actually arrived" signal.
|
|
14588
|
+
*/
|
|
14570
14589
|
aiReferralHits: z50.number().int().nonnegative(),
|
|
14590
|
+
/**
|
|
14591
|
+
* Countable referral SESSIONS: excludes requests answered with a proven
|
|
14592
|
+
* Location redirect (301/302/303/307/308) AND static subresource fetches,
|
|
14593
|
+
* matching the report's predicate exactly. This is the figure to present as
|
|
14594
|
+
* visits, visitors, sessions or arrivals. "Not proven" on the redirect half:
|
|
14595
|
+
* a source that never observed a status stores 0, and an unobserved status
|
|
14596
|
+
* is not a hop, so those rows count — the benefit-of-the-doubt default.
|
|
14597
|
+
* `landed + redirected <= total`; the gap is subresource noise, which is
|
|
14598
|
+
* neither a session nor a hop.
|
|
14599
|
+
*/
|
|
14600
|
+
aiReferralLandedHits: z50.number().int().nonnegative(),
|
|
14601
|
+
/**
|
|
14602
|
+
* Referral hits answered with a Location redirect. The visitor got no
|
|
14603
|
+
* content here; the destination raises its own row when it carries the same
|
|
14604
|
+
* evidence, so counting these as arrivals double-counts one person. A site
|
|
14605
|
+
* where this is most of the total is a finding in itself: its AI arrivals
|
|
14606
|
+
* all bounce off a redirect.
|
|
14607
|
+
*/
|
|
14608
|
+
aiReferralRedirectedHits: z50.number().int().nonnegative(),
|
|
14571
14609
|
sampleCount: z50.number().int().nonnegative()
|
|
14572
14610
|
});
|
|
14573
14611
|
var trafficSourceListResponseSchema = z50.object({
|
|
@@ -14598,7 +14636,12 @@ var trafficSeriesPointSchema = z50.object({
|
|
|
14598
14636
|
bucket: z50.string(),
|
|
14599
14637
|
crawlerHits: z50.number().int().nonnegative(),
|
|
14600
14638
|
aiUserFetchHits: z50.number().int().nonnegative(),
|
|
14601
|
-
aiReferralHits: z50.number().int().nonnegative()
|
|
14639
|
+
aiReferralHits: z50.number().int().nonnegative(),
|
|
14640
|
+
/**
|
|
14641
|
+
* The part of `aiReferralHits` not answered with a Location redirect — the
|
|
14642
|
+
* series to chart under any label that says sessions or visits.
|
|
14643
|
+
*/
|
|
14644
|
+
aiReferralLandedHits: z50.number().int().nonnegative()
|
|
14602
14645
|
});
|
|
14603
14646
|
var trafficCrawlerEventEntrySchema = z50.object({
|
|
14604
14647
|
kind: z50.literal(TrafficEventKinds.crawler),
|
|
@@ -14677,13 +14720,26 @@ var trafficEventsResponseSchema = z50.object({
|
|
|
14677
14720
|
/** Full per-class crawler-hit breakdown; the five buckets sum to `crawlerHits`. */
|
|
14678
14721
|
crawlerSegments: trafficCrawlerSegmentsSchema,
|
|
14679
14722
|
aiUserFetchHits: z50.number().int().nonnegative(),
|
|
14680
|
-
/**
|
|
14723
|
+
/**
|
|
14724
|
+
* Every AI-referral request in the window, whatever the server answered.
|
|
14725
|
+
* NOT a session count: use `aiReferralLandedHits` for anything presented
|
|
14726
|
+
* as sessions or visits. The three class buckets sum to the LANDED figure,
|
|
14727
|
+
* because a redirect hop's paid tags are not a paid session.
|
|
14728
|
+
*/
|
|
14681
14729
|
aiReferralHits: z50.number().int().nonnegative(),
|
|
14682
|
-
/**
|
|
14730
|
+
/**
|
|
14731
|
+
* Countable referral SESSIONS: no redirect hops, no static subresource
|
|
14732
|
+
* fetches — the same predicate the report uses, so windowed totals here
|
|
14733
|
+
* and report arrivals cannot disagree.
|
|
14734
|
+
*/
|
|
14735
|
+
aiReferralLandedHits: z50.number().int().nonnegative(),
|
|
14736
|
+
/** Referral hits answered with a Location redirect — hops, not arrivals. */
|
|
14737
|
+
aiReferralRedirectedHits: z50.number().int().nonnegative(),
|
|
14738
|
+
/** LANDED sessions carrying paid-attribution UTM evidence. */
|
|
14683
14739
|
aiReferralPaidHits: z50.number().int().nonnegative(),
|
|
14684
|
-
/**
|
|
14740
|
+
/** LANDED sessions with no paid-attribution evidence. */
|
|
14685
14741
|
aiReferralOrganicHits: z50.number().int().nonnegative(),
|
|
14686
|
-
/**
|
|
14742
|
+
/** LANDED sessions ingested before the classifier shipped; unresolvable, never organic. */
|
|
14687
14743
|
aiReferralUnknownHits: z50.number().int().nonnegative()
|
|
14688
14744
|
}),
|
|
14689
14745
|
eventRows: z50.object({
|
|
@@ -15822,6 +15878,12 @@ function formatMicros(micros, currencyCode = "USD") {
|
|
|
15822
15878
|
}).format(micros / MICROS_PER_UNIT);
|
|
15823
15879
|
}
|
|
15824
15880
|
|
|
15881
|
+
// ../contracts/src/http-status.ts
|
|
15882
|
+
var LOCATION_REDIRECT_STATUSES = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
|
|
15883
|
+
function isLocationRedirectStatus(status) {
|
|
15884
|
+
return LOCATION_REDIRECT_STATUSES.has(status);
|
|
15885
|
+
}
|
|
15886
|
+
|
|
15825
15887
|
// ../contracts/src/sql-like.ts
|
|
15826
15888
|
function escapeLikePattern(value) {
|
|
15827
15889
|
return value.replace(/[\\%_]/g, (match) => `\\${match}`);
|
|
@@ -16759,6 +16821,8 @@ export {
|
|
|
16759
16821
|
adsCpcMicros,
|
|
16760
16822
|
dollarsToMicros,
|
|
16761
16823
|
formatMicros,
|
|
16824
|
+
LOCATION_REDIRECT_STATUSES,
|
|
16825
|
+
isLocationRedirectStatus,
|
|
16762
16826
|
escapeLikePattern,
|
|
16763
16827
|
READ_ONLY_SCOPE,
|
|
16764
16828
|
WILDCARD_SCOPE,
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
installSkills,
|
|
6
6
|
loadConfigRaw,
|
|
7
7
|
saveConfigPatch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-F4ZZKGAC.js";
|
|
9
9
|
import {
|
|
10
10
|
SKILL_MANIFEST_FILENAME,
|
|
11
11
|
SkillsClients
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UXXXKDW4.js";
|
|
13
13
|
|
|
14
14
|
// src/skills-autosync.ts
|
|
15
15
|
import fs from "fs";
|