@canonry/canonry 4.180.2 → 4.180.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.
Files changed (25) hide show
  1. package/assets/assets/{AuditHistoryPanel-Cf-jEEKZ.js → AuditHistoryPanel-CRtw07lK.js} +1 -1
  2. package/assets/assets/{BacklinksPage-oMcS6Hc_.js → BacklinksPage-DURChJhG.js} +1 -1
  3. package/assets/assets/{HistoryPage-CDQOpxi0.js → HistoryPage-DsSSJmOs.js} +1 -1
  4. package/assets/assets/{MeasurementPropertyPage-MoKFTmrS.js → MeasurementPropertyPage-DalkH9IT.js} +1 -1
  5. package/assets/assets/{ProjectPage-CtD1AwXE.js → ProjectPage-CXLK_E8n.js} +1 -1
  6. package/assets/assets/{RunRow-CPekiscK.js → RunRow-DDwwyIxg.js} +1 -1
  7. package/assets/assets/{RunsPage-hn05ImCv.js → RunsPage-DCgaTijO.js} +1 -1
  8. package/assets/assets/{SettingsPage-BOTYXtfF.js → SettingsPage-DwQqOC3_.js} +1 -1
  9. package/assets/assets/{SiteHealthSection-FwMZ11F8.js → SiteHealthSection-Fg2-UL0h.js} +3 -3
  10. package/assets/assets/{TrafficPage-f2v6A_uk.js → TrafficPage-CefISwhk.js} +1 -1
  11. package/assets/assets/{TrafficSourceDetailPage-nhWRLHiu.js → TrafficSourceDetailPage-Rotzu2tN.js} +1 -1
  12. package/assets/assets/{extract-error-message-Cp1YeVEr.js → extract-error-message-D6lzT2hr.js} +1 -1
  13. package/assets/assets/{index-VmxEHABq.js → index-BuZ_xmnc.js} +17 -17
  14. package/assets/assets/{react-sigma_core.esm.min-fnm2MkMi.js → react-sigma_core.esm.min-D-IM5qRE.js} +1 -1
  15. package/assets/index.html +1 -1
  16. package/dist/{chunk-4XHQ2GCN.js → chunk-CKGWOYPO.js} +2 -2
  17. package/dist/{chunk-6IR32MIH.js → chunk-JWPN6RU7.js} +9 -1
  18. package/dist/{chunk-44LVINXQ.js → chunk-OJDH2F6I.js} +164 -12
  19. package/dist/{chunk-665YENL2.js → chunk-W3YSGMYK.js} +23 -5
  20. package/dist/{chunk-DA25LOTW.js → chunk-YPDKZ73I.js} +1 -1
  21. package/dist/cli.js +5 -5
  22. package/dist/index.js +4 -4
  23. package/dist/{intelligence-service-RNBODYMZ.js → intelligence-service-DSYYBDR2.js} +2 -2
  24. package/dist/mcp.js +3 -3
  25. package/package.json +10 -10
@@ -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-FwMZ11F8.js";import"./index-VmxEHABq.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-DG35TyhH.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-Dock0eH1.js";import{e as Ht,G as Wt}from"./SiteHealthSection-Fg2-UL0h.js";import"./index-BuZ_xmnc.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-DG35TyhH.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-VmxEHABq.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-BuZ_xmnc.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">
@@ -5,11 +5,11 @@ import {
5
5
  installSkills,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-DA25LOTW.js";
8
+ } from "./chunk-YPDKZ73I.js";
9
9
  import {
10
10
  SKILL_MANIFEST_FILENAME,
11
11
  SkillsClients
12
- } from "./chunk-6IR32MIH.js";
12
+ } from "./chunk-JWPN6RU7.js";
13
13
 
14
14
  // src/skills-autosync.ts
15
15
  import fs from "fs";
@@ -15422,13 +15422,16 @@ var adsOperationKindSchema = z52.enum([
15422
15422
  "campaign_create",
15423
15423
  "campaign_update",
15424
15424
  "campaign_pause",
15425
+ "campaign_archive",
15425
15426
  "campaign_tree_activate",
15426
15427
  "ad_group_create",
15427
15428
  "ad_group_update",
15428
15429
  "ad_group_pause",
15430
+ "ad_group_archive",
15429
15431
  "ad_create",
15430
15432
  "ad_update",
15431
- "ad_pause"
15433
+ "ad_pause",
15434
+ "ad_archive"
15432
15435
  ]);
15433
15436
  var AdsOperationKinds = adsOperationKindSchema.enum;
15434
15437
  var adsOperationStateSchema = z52.enum(["pending", "reconciling", "succeeded", "failed", "unknown"]);
@@ -15638,6 +15641,10 @@ var adsAdUpdateRequestSchema = z52.object({
15638
15641
  var adsPauseRequestSchema = z52.object({
15639
15642
  operationKey: adsOperationKeySchema
15640
15643
  });
15644
+ var adsArchiveRequestSchema = z52.object({
15645
+ operationKey: adsOperationKeySchema,
15646
+ expectedUpdatedAt: z52.number().int().nonnegative()
15647
+ });
15641
15648
  var adsOperationDtoSchema = z52.object({
15642
15649
  id: z52.string(),
15643
15650
  adAccountId: z52.string().nullable(),
@@ -17042,6 +17049,7 @@ export {
17042
17049
  adsAdGroupUpdateRequestSchema,
17043
17050
  adsAdUpdateRequestSchema,
17044
17051
  adsPauseRequestSchema,
17052
+ adsArchiveRequestSchema,
17045
17053
  adsOperationResponseSchema,
17046
17054
  adsActivationGrantDtoSchema,
17047
17055
  adsOperationStepDtoSchema,
@@ -141,6 +141,7 @@ import {
141
141
  adsAdGroupCreateRequestSchema,
142
142
  adsAdGroupUpdateRequestSchema,
143
143
  adsAdUpdateRequestSchema,
144
+ adsArchiveRequestSchema,
144
145
  adsCampaignBiddingTypeSchema,
145
146
  adsCampaignCreateRequestSchema,
146
147
  adsCampaignListResponseSchema,
@@ -642,7 +643,7 @@ import {
642
643
  wordpressSchemaDeployResultDtoSchema,
643
644
  wordpressSchemaStatusResultDtoSchema,
644
645
  wordpressStatusDtoSchema
645
- } from "./chunk-6IR32MIH.js";
646
+ } from "./chunk-JWPN6RU7.js";
646
647
 
647
648
  // src/intelligence-service.ts
648
649
  import { eq as eq62, desc as desc27, asc as asc11, and as and51, ne as ne8, or as or14, inArray as inArray22, gte as gte14, lte as lte12, isNull as isNull9, sql as sql25, exists } from "drizzle-orm";
@@ -34649,6 +34650,69 @@ var routeCatalog = [
34649
34650
  502: errorResponse("Upstream outcome failed or is unknown.")
34650
34651
  }
34651
34652
  },
34653
+ {
34654
+ method: "post",
34655
+ path: "/api/v1/projects/{name}/ads/campaigns/{id}/archive",
34656
+ summary: "Archive an OpenAI Ads campaign (irreversible)",
34657
+ description: "IRREVERSIBLE. The entity must already be paused, and expectedUpdatedAt must match the live upstream revision, so an active entity is refused and a stale version is refused. There is no remediation: an unconfirmed archived state leaves the receipt unknown for reconciliation. The upstream archive path and its archived status transition were verified live against a Canonry-owned test advertiser account on 2026-09-02. The provider list endpoints are eventually consistent and can still report a freshly archived entity as paused, so the archived state is confirmed by a direct single-entity read, never by a list.",
34658
+ tags: ["ads"],
34659
+ parameters: [nameParameter, { name: "id", in: "path", required: true, description: "Campaign ID.", schema: stringSchema }],
34660
+ requestBody: { required: true, content: { "application/json": { schema: {
34661
+ type: "object",
34662
+ required: ["operationKey", "expectedUpdatedAt"],
34663
+ properties: { operationKey: adsOperationKeySchema, expectedUpdatedAt: integerSchema }
34664
+ } } } },
34665
+ responses: {
34666
+ 200: jsonResponse("Campaign archive receipt.", "AdsOperationResponse"),
34667
+ 400: errorResponse("Invalid request, active entity, stale expectedUpdatedAt, or ads connection unavailable."),
34668
+ 403: errorResponse("The key lacks ads.write."),
34669
+ 404: errorResponse("Project not found."),
34670
+ 409: errorResponse("Operation key was already used for a different request."),
34671
+ 502: errorResponse("Upstream outcome failed or is unknown.")
34672
+ }
34673
+ },
34674
+ {
34675
+ method: "post",
34676
+ path: "/api/v1/projects/{name}/ads/ad-groups/{id}/archive",
34677
+ summary: "Archive an OpenAI Ads ad group (irreversible)",
34678
+ description: "IRREVERSIBLE. The entity must already be paused, and expectedUpdatedAt must match the live upstream revision, so an active entity is refused and a stale version is refused. There is no remediation: an unconfirmed archived state leaves the receipt unknown for reconciliation. The upstream archive path and its archived status transition were verified live against a Canonry-owned test advertiser account on 2026-09-02. The provider list endpoints are eventually consistent and can still report a freshly archived entity as paused, so the archived state is confirmed by a direct single-entity read, never by a list.",
34679
+ tags: ["ads"],
34680
+ parameters: [nameParameter, { name: "id", in: "path", required: true, description: "Ad group ID.", schema: stringSchema }],
34681
+ requestBody: { required: true, content: { "application/json": { schema: {
34682
+ type: "object",
34683
+ required: ["operationKey", "expectedUpdatedAt"],
34684
+ properties: { operationKey: adsOperationKeySchema, expectedUpdatedAt: integerSchema }
34685
+ } } } },
34686
+ responses: {
34687
+ 200: jsonResponse("Ad-group archive receipt.", "AdsOperationResponse"),
34688
+ 400: errorResponse("Invalid request, active entity, stale expectedUpdatedAt, or ads connection unavailable."),
34689
+ 403: errorResponse("The key lacks ads.write."),
34690
+ 404: errorResponse("Project not found."),
34691
+ 409: errorResponse("Operation key was already used for a different request."),
34692
+ 502: errorResponse("Upstream outcome failed or is unknown.")
34693
+ }
34694
+ },
34695
+ {
34696
+ method: "post",
34697
+ path: "/api/v1/projects/{name}/ads/ads/{id}/archive",
34698
+ summary: "Archive an OpenAI Ads ad (irreversible)",
34699
+ description: "IRREVERSIBLE. The entity must already be paused, and expectedUpdatedAt must match the live upstream revision, so an active entity is refused and a stale version is refused. There is no remediation: an unconfirmed archived state leaves the receipt unknown for reconciliation. The upstream archive path and its archived status transition were verified live against a Canonry-owned test advertiser account on 2026-09-02. The provider list endpoints are eventually consistent and can still report a freshly archived entity as paused, so the archived state is confirmed by a direct single-entity read, never by a list.",
34700
+ tags: ["ads"],
34701
+ parameters: [nameParameter, { name: "id", in: "path", required: true, description: "Ad ID.", schema: stringSchema }],
34702
+ requestBody: { required: true, content: { "application/json": { schema: {
34703
+ type: "object",
34704
+ required: ["operationKey", "expectedUpdatedAt"],
34705
+ properties: { operationKey: adsOperationKeySchema, expectedUpdatedAt: integerSchema }
34706
+ } } } },
34707
+ responses: {
34708
+ 200: jsonResponse("Ad archive receipt.", "AdsOperationResponse"),
34709
+ 400: errorResponse("Invalid request, active entity, stale expectedUpdatedAt, or ads connection unavailable."),
34710
+ 403: errorResponse("The key lacks ads.write."),
34711
+ 404: errorResponse("Project not found."),
34712
+ 409: errorResponse("Operation key was already used for a different request."),
34713
+ 502: errorResponse("Upstream outcome failed or is unknown.")
34714
+ }
34715
+ },
34652
34716
  {
34653
34717
  method: "post",
34654
34718
  path: "/api/v1/projects/{name}/ads/sync",
@@ -45989,14 +46053,15 @@ var DEFAULT_RECONCILE_BATCH_SIZE = 10;
45989
46053
  var DEFAULT_RECONCILE_LEASE_MS = 3e4;
45990
46054
  var DEFAULT_ADS_ACCOUNT_VERIFICATION_CACHE_TTL_MS = 5 * 6e4;
45991
46055
  var ADS_RECONCILIATION_QUARANTINED = "ADS_RECONCILIATION_QUARANTINED";
45992
- var AdsPausedPostconditionError = class extends Error {
45993
- constructor(entityId) {
45994
- super("OpenAI Ads API did not confirm the required paused state");
46056
+ var AdsStatusPostconditionError = class extends Error {
46057
+ constructor(entityId, expectedStatus) {
46058
+ super(`OpenAI Ads API did not confirm the required ${expectedStatus} state`);
45995
46059
  this.entityId = entityId;
45996
- this.name = "AdsPausedPostconditionError";
46060
+ this.code = `ADS_${expectedStatus.toUpperCase()}_POSTCONDITION_FAILED`;
46061
+ this.name = "AdsStatusPostconditionError";
45997
46062
  }
45998
46063
  entityId;
45999
- code = "ADS_PAUSED_POSTCONDITION_FAILED";
46064
+ code;
46000
46065
  status = 502;
46001
46066
  };
46002
46067
  function statusDto(row) {
@@ -46448,7 +46513,7 @@ async function executeAdsOperation(app, request, input) {
46448
46513
  if (input.expectedStatus !== void 0 && result.status !== input.expectedStatus) {
46449
46514
  if (input.remediateStatus) result = await input.remediateStatus(result);
46450
46515
  if (result.status !== input.expectedStatus) {
46451
- throw new AdsPausedPostconditionError(result.id);
46516
+ throw new AdsStatusPostconditionError(result.id, input.expectedStatus);
46452
46517
  }
46453
46518
  }
46454
46519
  const succeededResult = result;
@@ -46979,9 +47044,9 @@ function assertExpectedUpdatedAt(entity, expected) {
46979
47044
  });
46980
47045
  }
46981
47046
  }
46982
- function assertPausedForUpdate(entity) {
47047
+ function assertPausedForWrite(entity, action = "updating") {
46983
47048
  if (entity.status !== AdsEntityStatuses.paused) {
46984
- throw validationError("Pause the upstream ad entity before updating it", {
47049
+ throw validationError(`Pause the upstream ad entity before ${action} it`, {
46985
47050
  actualStatus: entity.status
46986
47051
  });
46987
47052
  }
@@ -47449,7 +47514,7 @@ async function adsRoutes(app, opts) {
47449
47514
  run: async () => {
47450
47515
  const current = await operator.getCampaign(apiKey, request.params.id);
47451
47516
  assertExpectedUpdatedAt(current, expectedUpdatedAt);
47452
- assertPausedForUpdate(current);
47517
+ assertPausedForWrite(current);
47453
47518
  return operator.updateCampaign(apiKey, request.params.id, update);
47454
47519
  }
47455
47520
  });
@@ -47480,7 +47545,7 @@ async function adsRoutes(app, opts) {
47480
47545
  run: async () => {
47481
47546
  const current = await operator.getAdGroup(apiKey, request.params.id);
47482
47547
  assertExpectedUpdatedAt(current, expectedUpdatedAt);
47483
- assertPausedForUpdate(current);
47548
+ assertPausedForWrite(current);
47484
47549
  if (update.maxBidMicros === void 0) {
47485
47550
  return operator.updateAdGroup(apiKey, request.params.id, update);
47486
47551
  }
@@ -47522,7 +47587,7 @@ async function adsRoutes(app, opts) {
47522
47587
  run: async () => {
47523
47588
  const current = await operator.getAd(apiKey, request.params.id);
47524
47589
  assertExpectedUpdatedAt(current, expectedUpdatedAt);
47525
- assertPausedForUpdate(current);
47590
+ assertPausedForWrite(current);
47526
47591
  return operator.updateAd(apiKey, request.params.id, update);
47527
47592
  }
47528
47593
  });
@@ -47603,6 +47668,93 @@ async function adsRoutes(app, opts) {
47603
47668
  });
47604
47669
  }
47605
47670
  );
47671
+ app.post(
47672
+ "/projects/:name/ads/campaigns/:id/archive",
47673
+ async (request) => {
47674
+ requireScope(request, ADS_WRITE_SCOPE);
47675
+ const project = resolveProject(app.db, request.params.name);
47676
+ const body = parseBody4(adsArchiveRequestSchema, request.body);
47677
+ const { apiKey, adAccountId, operator } = await resolveOperatorForProject(project);
47678
+ return executeAdsOperation(app, request, {
47679
+ projectId: project.id,
47680
+ adAccountId,
47681
+ operationKey: body.operationKey,
47682
+ kind: AdsOperationKinds.campaign_archive,
47683
+ entityType: AdsEntityTypes.campaign,
47684
+ payload: { id: request.params.id, expectedUpdatedAt: body.expectedUpdatedAt },
47685
+ knownEntityId: request.params.id,
47686
+ reconciliation: {
47687
+ strategy: AdsReconcileStrategies.known_entity,
47688
+ fields: { status: AdsEntityStatuses.archived }
47689
+ },
47690
+ expectedStatus: AdsEntityStatuses.archived,
47691
+ run: async () => {
47692
+ const current = await operator.getCampaign(apiKey, request.params.id);
47693
+ assertExpectedUpdatedAt(current, body.expectedUpdatedAt);
47694
+ assertPausedForWrite(current, "archiving");
47695
+ return operator.archiveCampaign(apiKey, request.params.id);
47696
+ }
47697
+ });
47698
+ }
47699
+ );
47700
+ app.post(
47701
+ "/projects/:name/ads/ad-groups/:id/archive",
47702
+ async (request) => {
47703
+ requireScope(request, ADS_WRITE_SCOPE);
47704
+ const project = resolveProject(app.db, request.params.name);
47705
+ const body = parseBody4(adsArchiveRequestSchema, request.body);
47706
+ const { apiKey, adAccountId, operator } = await resolveOperatorForProject(project);
47707
+ return executeAdsOperation(app, request, {
47708
+ projectId: project.id,
47709
+ adAccountId,
47710
+ operationKey: body.operationKey,
47711
+ kind: AdsOperationKinds.ad_group_archive,
47712
+ entityType: AdsEntityTypes.ad_group,
47713
+ payload: { id: request.params.id, expectedUpdatedAt: body.expectedUpdatedAt },
47714
+ knownEntityId: request.params.id,
47715
+ reconciliation: {
47716
+ strategy: AdsReconcileStrategies.known_entity,
47717
+ fields: { status: AdsEntityStatuses.archived }
47718
+ },
47719
+ expectedStatus: AdsEntityStatuses.archived,
47720
+ run: async () => {
47721
+ const current = await operator.getAdGroup(apiKey, request.params.id);
47722
+ assertExpectedUpdatedAt(current, body.expectedUpdatedAt);
47723
+ assertPausedForWrite(current, "archiving");
47724
+ return operator.archiveAdGroup(apiKey, request.params.id);
47725
+ }
47726
+ });
47727
+ }
47728
+ );
47729
+ app.post(
47730
+ "/projects/:name/ads/ads/:id/archive",
47731
+ async (request) => {
47732
+ requireScope(request, ADS_WRITE_SCOPE);
47733
+ const project = resolveProject(app.db, request.params.name);
47734
+ const body = parseBody4(adsArchiveRequestSchema, request.body);
47735
+ const { apiKey, adAccountId, operator } = await resolveOperatorForProject(project);
47736
+ return executeAdsOperation(app, request, {
47737
+ projectId: project.id,
47738
+ adAccountId,
47739
+ operationKey: body.operationKey,
47740
+ kind: AdsOperationKinds.ad_archive,
47741
+ entityType: AdsEntityTypes.ad,
47742
+ payload: { id: request.params.id, expectedUpdatedAt: body.expectedUpdatedAt },
47743
+ knownEntityId: request.params.id,
47744
+ reconciliation: {
47745
+ strategy: AdsReconcileStrategies.known_entity,
47746
+ fields: { status: AdsEntityStatuses.archived }
47747
+ },
47748
+ expectedStatus: AdsEntityStatuses.archived,
47749
+ run: async () => {
47750
+ const current = await operator.getAd(apiKey, request.params.id);
47751
+ assertExpectedUpdatedAt(current, body.expectedUpdatedAt);
47752
+ assertPausedForWrite(current, "archiving");
47753
+ return operator.archiveAd(apiKey, request.params.id);
47754
+ }
47755
+ });
47756
+ }
47757
+ );
47606
47758
  app.post("/projects/:name/ads/sync", async (request) => {
47607
47759
  requireScope(request, ADS_WRITE_SCOPE);
47608
47760
  const project = resolveProject(app.db, request.params.name);
@@ -11,7 +11,7 @@ import {
11
11
  loadConfig,
12
12
  loadConfigRaw,
13
13
  saveConfigPatch
14
- } from "./chunk-DA25LOTW.js";
14
+ } from "./chunk-YPDKZ73I.js";
15
15
  import {
16
16
  CC_CACHE_DIR,
17
17
  DUCKDB_SPEC,
@@ -157,7 +157,7 @@ import {
157
157
  siteCrawlSnapshots,
158
158
  toAlertView,
159
159
  usageCounters
160
- } from "./chunk-44LVINXQ.js";
160
+ } from "./chunk-OJDH2F6I.js";
161
161
  import {
162
162
  AGENT_MEMORY_VALUE_MAX_BYTES,
163
163
  AGENT_PROVIDER_IDS,
@@ -295,7 +295,7 @@ import {
295
295
  validationError,
296
296
  winnabilityClassLabel,
297
297
  withRetry
298
- } from "./chunk-6IR32MIH.js";
298
+ } from "./chunk-JWPN6RU7.js";
299
299
 
300
300
  // src/telemetry.ts
301
301
  import crypto from "crypto";
@@ -8069,6 +8069,11 @@ async function pauseCampaign(apiKey, campaignId) {
8069
8069
  validateId(campaignId, "Campaign id");
8070
8070
  return adsFetch(apiKey, `campaigns/${encodeURIComponent(campaignId)}/pause`, [], "POST");
8071
8071
  }
8072
+ async function archiveCampaign(apiKey, campaignId) {
8073
+ validateApiKey(apiKey);
8074
+ validateId(campaignId, "Campaign id");
8075
+ return adsFetch(apiKey, `campaigns/${encodeURIComponent(campaignId)}/archive`, [], "POST");
8076
+ }
8072
8077
  async function listAdGroups(apiKey, campaignId) {
8073
8078
  validateApiKey(apiKey);
8074
8079
  validateId(campaignId, "Campaign id");
@@ -8102,6 +8107,11 @@ async function pauseAdGroup(apiKey, adGroupId) {
8102
8107
  validateId(adGroupId, "Ad group id");
8103
8108
  return adsFetch(apiKey, `ad_groups/${encodeURIComponent(adGroupId)}/pause`, [], "POST");
8104
8109
  }
8110
+ async function archiveAdGroup(apiKey, adGroupId) {
8111
+ validateApiKey(apiKey);
8112
+ validateId(adGroupId, "Ad group id");
8113
+ return adsFetch(apiKey, `ad_groups/${encodeURIComponent(adGroupId)}/archive`, [], "POST");
8114
+ }
8105
8115
  async function listAds(apiKey, adGroupId) {
8106
8116
  validateApiKey(apiKey);
8107
8117
  validateId(adGroupId, "Ad group id");
@@ -8135,6 +8145,11 @@ async function pauseAd(apiKey, adId) {
8135
8145
  validateId(adId, "Ad id");
8136
8146
  return adsFetch(apiKey, `ads/${encodeURIComponent(adId)}/pause`, [], "POST");
8137
8147
  }
8148
+ async function archiveAd(apiKey, adId) {
8149
+ validateApiKey(apiKey);
8150
+ validateId(adId, "Ad id");
8151
+ return adsFetch(apiKey, `ads/${encodeURIComponent(adId)}/archive`, [], "POST");
8152
+ }
8138
8153
  async function uploadImageFromUrl(apiKey, imageUrl) {
8139
8154
  validateApiKey(apiKey);
8140
8155
  validateHttpUrl(imageUrl, "Image URL");
@@ -11851,7 +11866,7 @@ function readStoredGroundingSources(rawResponse) {
11851
11866
  return result;
11852
11867
  }
11853
11868
  async function backfillInsightsCommand(project, opts) {
11854
- const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-RNBODYMZ.js");
11869
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-DSYYBDR2.js");
11855
11870
  const config = loadConfig();
11856
11871
  const db = createClient(config.database);
11857
11872
  migrate(db);
@@ -17498,6 +17513,7 @@ async function createServer(opts) {
17498
17513
  })),
17499
17514
  activateCampaign: async (apiKey, id) => adsCampaignEntityResult(await activateCampaign(apiKey, id)),
17500
17515
  pauseCampaign: async (apiKey, id) => adsCampaignEntityResult(await pauseCampaign(apiKey, id)),
17516
+ archiveCampaign: async (apiKey, id) => adsCampaignEntityResult(await archiveCampaign(apiKey, id)),
17501
17517
  getAdGroup: async (apiKey, id) => adsAdGroupEntityResult(await getAdGroup(apiKey, id)),
17502
17518
  listAdGroups: async (apiKey, campaignId) => (await listAdGroups(apiKey, campaignId)).map((entity) => adsAdGroupEntityResult(entity, campaignId)),
17503
17519
  createAdGroup: async (apiKey, input) => adsAdGroupEntityResult(await createAdGroup(apiKey, {
@@ -17531,6 +17547,7 @@ async function createServer(opts) {
17531
17547
  },
17532
17548
  activateAdGroup: async (apiKey, id) => adsAdGroupEntityResult(await activateAdGroup(apiKey, id)),
17533
17549
  pauseAdGroup: async (apiKey, id) => adsAdGroupEntityResult(await pauseAdGroup(apiKey, id)),
17550
+ archiveAdGroup: async (apiKey, id) => adsAdGroupEntityResult(await archiveAdGroup(apiKey, id)),
17534
17551
  getAd: async (apiKey, id) => adsAdEntityResult(await getAd(apiKey, id)),
17535
17552
  listAds: async (apiKey, adGroupId) => (await listAds(apiKey, adGroupId)).map((entity) => adsAdEntityResult(entity, adGroupId)),
17536
17553
  createAd: async (apiKey, input) => adsAdEntityResult(await createAd(apiKey, {
@@ -17556,7 +17573,8 @@ async function createServer(opts) {
17556
17573
  } : void 0
17557
17574
  })),
17558
17575
  activateAd: async (apiKey, id) => adsAdEntityResult(await activateAd(apiKey, id)),
17559
- pauseAd: async (apiKey, id) => adsAdEntityResult(await pauseAd(apiKey, id))
17576
+ pauseAd: async (apiKey, id) => adsAdEntityResult(await pauseAd(apiKey, id)),
17577
+ archiveAd: async (apiKey, id) => adsAdEntityResult(await archiveAd(apiKey, id))
17560
17578
  };
17561
17579
  const adsLiveEntity = (entity, extra) => ({
17562
17580
  id: entity.id,
@@ -92,7 +92,7 @@ import {
92
92
  trafficConnectWordpressRequestSchema,
93
93
  trafficEventKindSchema,
94
94
  trafficSeriesGranularitySchema
95
- } from "./chunk-6IR32MIH.js";
95
+ } from "./chunk-JWPN6RU7.js";
96
96
 
97
97
  // src/config.ts
98
98
  import fs from "fs";
package/dist/cli.js CHANGED
@@ -26,11 +26,11 @@ import {
26
26
  showFirstRunNotice,
27
27
  trackCliCommandFinished,
28
28
  trackEvent
29
- } from "./chunk-665YENL2.js";
29
+ } from "./chunk-W3YSGMYK.js";
30
30
  import {
31
31
  autoSyncSkills,
32
32
  formatAutoSyncNotice
33
- } from "./chunk-4XHQ2GCN.js";
33
+ } from "./chunk-CKGWOYPO.js";
34
34
  import {
35
35
  CliError,
36
36
  EXIT_SYSTEM_ERROR,
@@ -55,7 +55,7 @@ import {
55
55
  saveConfigPatch,
56
56
  systemError,
57
57
  usageError
58
- } from "./chunk-DA25LOTW.js";
58
+ } from "./chunk-YPDKZ73I.js";
59
59
  import {
60
60
  CLOUDFLARE_WORKER_BINDINGS,
61
61
  CLOUDFLARE_WORKER_GENERATED_MARKER,
@@ -69,7 +69,7 @@ import {
69
69
  projects,
70
70
  queries,
71
71
  renderReportHtml
72
- } from "./chunk-44LVINXQ.js";
72
+ } from "./chunk-OJDH2F6I.js";
73
73
  import {
74
74
  AdsDeliverySnapshotStatuses,
75
75
  AdsHistoricalCampaignRollupStatuses,
@@ -138,7 +138,7 @@ import {
138
138
  providerQuotaPolicySchema,
139
139
  resolveProviderInput,
140
140
  winnabilityClassSchema
141
- } from "./chunk-6IR32MIH.js";
141
+ } from "./chunk-JWPN6RU7.js";
142
142
 
143
143
  // src/cli.ts
144
144
  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-665YENL2.js";
6
+ } from "./chunk-W3YSGMYK.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-DA25LOTW.js";
10
- import "./chunk-44LVINXQ.js";
11
- import "./chunk-6IR32MIH.js";
9
+ } from "./chunk-YPDKZ73I.js";
10
+ import "./chunk-OJDH2F6I.js";
11
+ import "./chunk-JWPN6RU7.js";
12
12
  export {
13
13
  GoogleMarketingRuntimeError,
14
14
  createGoogleMarketingCredentialStore,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-44LVINXQ.js";
4
- import "./chunk-6IR32MIH.js";
3
+ } from "./chunk-OJDH2F6I.js";
4
+ import "./chunk-JWPN6RU7.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-4XHQ2GCN.js";
3
+ } from "./chunk-CKGWOYPO.js";
4
4
  import {
5
5
  createApiClient,
6
6
  createCanonryMcpServer
7
- } from "./chunk-DA25LOTW.js";
7
+ } from "./chunk-YPDKZ73I.js";
8
8
  import {
9
9
  isReadOnlyKey
10
- } from "./chunk-6IR32MIH.js";
10
+ } from "./chunk-JWPN6RU7.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": "@canonry/canonry",
3
- "version": "4.180.2",
3
+ "version": "4.180.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",
@@ -71,30 +71,30 @@
71
71
  "tsup": "^8.5.1",
72
72
  "tsx": "^4.19.0",
73
73
  "@ainyc/canonry-api-client": "0.0.0",
74
+ "@ainyc/canonry-contracts": "0.0.0",
74
75
  "@ainyc/canonry-api-routes": "0.0.0",
75
76
  "@ainyc/canonry-config": "0.0.0",
76
77
  "@ainyc/canonry-db": "0.0.0",
77
- "@ainyc/canonry-contracts": "0.0.0",
78
78
  "@ainyc/canonry-integration-bing": "0.0.0",
79
79
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
80
- "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
80
+ "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
81
81
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
82
+ "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
82
83
  "@ainyc/canonry-integration-google": "0.0.0",
83
- "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
84
84
  "@ainyc/canonry-integration-google-ads": "0.0.0",
85
85
  "@ainyc/canonry-integration-google-business-profile": "0.0.0",
86
- "@ainyc/canonry-integration-google-places": "0.0.0",
87
86
  "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
87
+ "@ainyc/canonry-integration-google-places": "0.0.0",
88
88
  "@ainyc/canonry-integration-traffic": "0.0.0",
89
89
  "@ainyc/canonry-integration-openai-ads": "0.0.0",
90
- "@ainyc/canonry-provider-claude": "0.0.0",
91
- "@ainyc/canonry-intelligence": "0.0.0",
90
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
92
91
  "@ainyc/canonry-provider-cdp": "0.0.0",
93
- "@ainyc/canonry-provider-gemini": "0.0.0",
92
+ "@ainyc/canonry-provider-claude": "0.0.0",
94
93
  "@ainyc/canonry-provider-local": "0.0.0",
95
- "@ainyc/canonry-provider-perplexity": "0.0.0",
94
+ "@ainyc/canonry-provider-gemini": "0.0.0",
95
+ "@ainyc/canonry-intelligence": "0.0.0",
96
96
  "@ainyc/canonry-provider-openai": "0.0.0",
97
- "@ainyc/canonry-integration-wordpress": "0.0.0"
97
+ "@ainyc/canonry-provider-perplexity": "0.0.0"
98
98
  },
99
99
  "scripts": {
100
100
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",