@ainyc/canonry 4.68.1 → 4.69.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.
@@ -1 +1 @@
1
- import{c as d,j as a,bU as S,bO as l,bV as v,av as m,l as t,bW as y,bP as i,bX as T,bY as h,bZ as p,b_ as b}from"./index-DFo2OL9c.js";import{u as s,r as C,n as c,o as u}from"./vendor-tanstack-Dq7p98wZ.js";const g=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],B=d("refresh-cw",g);function M(e){switch(e){case i.connected:return"positive";case i.paused:return"caution";case i.error:return"negative";case i.archived:return"neutral"}}function w(e){const r={};return e.kind&&e.kind!=="all"&&(r.kind=e.kind),e.sourceId&&(r.sourceId=e.sourceId),e.sinceMinutes!==void 0&&(r.since=new Date(Date.now()-e.sinceMinutes*6e4).toISOString()),e.limit!==void 0&&(r.limit=String(e.limit)),r}function o(e){e.invalidateQueries({predicate:r=>{const n=r.queryKey[0];return typeof n?._id=="string"&&n._id.startsWith("getApiV1ProjectsByNameTraffic")}})}function V(e){return s({...S({client:t,path:{name:e??""}}),enabled:!!e,staleTime:a})}function k(e){return s({...b({client:t,path:{name:e??""}}),enabled:!!e,staleTime:a})}function F(e,r){return s({...l({client:t,path:{name:e??"",id:r??""}}),enabled:!!(e&&r),staleTime:a})}function A(e,r){const n=C.useMemo(()=>w(r),[r.kind,r.sourceId,r.sinceMinutes,r.limit]);return s({...v({client:t,path:{name:e??""},query:n}),enabled:!!e,staleTime:a})}function E(e){const r=c();return u({mutationFn:n=>{if(!e)throw new Error("Project is required to connect a Cloud Run source");return p(e,n)},onSuccess:()=>{e&&o(r)}})}function I(e){const r=c();return u({mutationFn:n=>{if(!e)throw new Error("Project is required to connect a WordPress source");return T(e,n)},onSuccess:()=>{e&&o(r)}})}function Q(e){const r=c();return u({mutationFn:n=>{if(!e)throw new Error("Project is required to connect a Vercel source");return h(e,n)},onSuccess:()=>{e&&o(r)}})}function R(e,r){const n=c();return u({mutationFn:f=>{if(!e||!r)throw new Error("Project and sourceId are required to sync");return y(e,r,f??void 0)},onSuccess:()=>{e&&(o(n),n.invalidateQueries({queryKey:m({client:t})}))}})}export{B as R,I as a,Q as b,E as c,V as d,F as e,A as f,R as g,M as t,k as u};
1
+ import{c as d,j as a,bU as S,bO as l,bV as v,av as m,l as t,bW as y,bP as i,bX as T,bY as h,bZ as p,b_ as b}from"./index-DPO3uDWZ.js";import{u as s,r as C,n as c,o as u}from"./vendor-tanstack-Dq7p98wZ.js";const g=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],B=d("refresh-cw",g);function M(e){switch(e){case i.connected:return"positive";case i.paused:return"caution";case i.error:return"negative";case i.archived:return"neutral"}}function w(e){const r={};return e.kind&&e.kind!=="all"&&(r.kind=e.kind),e.sourceId&&(r.sourceId=e.sourceId),e.sinceMinutes!==void 0&&(r.since=new Date(Date.now()-e.sinceMinutes*6e4).toISOString()),e.limit!==void 0&&(r.limit=String(e.limit)),r}function o(e){e.invalidateQueries({predicate:r=>{const n=r.queryKey[0];return typeof n?._id=="string"&&n._id.startsWith("getApiV1ProjectsByNameTraffic")}})}function V(e){return s({...S({client:t,path:{name:e??""}}),enabled:!!e,staleTime:a})}function k(e){return s({...b({client:t,path:{name:e??""}}),enabled:!!e,staleTime:a})}function F(e,r){return s({...l({client:t,path:{name:e??"",id:r??""}}),enabled:!!(e&&r),staleTime:a})}function A(e,r){const n=C.useMemo(()=>w(r),[r.kind,r.sourceId,r.sinceMinutes,r.limit]);return s({...v({client:t,path:{name:e??""},query:n}),enabled:!!e,staleTime:a})}function E(e){const r=c();return u({mutationFn:n=>{if(!e)throw new Error("Project is required to connect a Cloud Run source");return p(e,n)},onSuccess:()=>{e&&o(r)}})}function I(e){const r=c();return u({mutationFn:n=>{if(!e)throw new Error("Project is required to connect a WordPress source");return T(e,n)},onSuccess:()=>{e&&o(r)}})}function Q(e){const r=c();return u({mutationFn:n=>{if(!e)throw new Error("Project is required to connect a Vercel source");return h(e,n)},onSuccess:()=>{e&&o(r)}})}function R(e,r){const n=c();return u({mutationFn:f=>{if(!e||!r)throw new Error("Project and sourceId are required to sync");return y(e,r,f??void 0)},onSuccess:()=>{e&&(o(n),n.invalidateQueries({queryKey:m({client:t})}))}})}export{B as R,I as a,Q as b,E as c,V as d,F as e,A as f,R as g,M as t,k as u};
@@ -1 +1 @@
1
- import{c}from"./index-DFo2OL9c.js";const a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],h=c("circle-check",a);const e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],n=c("circle-question-mark",e);const o=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],s=c("download",o);const t=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],r=c("trash-2",t);export{h as C,s as D,r as T,n as a};
1
+ import{c}from"./index-DPO3uDWZ.js";const a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],h=c("circle-check",a);const e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],n=c("circle-question-mark",e);const o=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],s=c("download",o);const t=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],r=c("trash-2",t);export{h as C,s as D,r as T,n as a};
package/assets/index.html CHANGED
@@ -12,12 +12,12 @@
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-DFo2OL9c.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-DPO3uDWZ.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-Dq7p98wZ.js">
17
17
  <link rel="modulepreload" crossorigin href="./assets/vendor-radix-B57xfQbP.js">
18
18
  <link rel="modulepreload" crossorigin href="./assets/vendor-recharts-ClRVR6aX.js">
19
19
  <link rel="modulepreload" crossorigin href="./assets/vendor-markdown-DK7fbRNb.js">
20
- <link rel="stylesheet" crossorigin href="./assets/index-BquJzH0t.css">
20
+ <link rel="stylesheet" crossorigin href="./assets/index-BUNCrWTe.css">
21
21
  </head>
22
22
  <body>
23
23
  <div id="root"></div>
@@ -12190,17 +12190,30 @@ function loadSnapshotsByRunIds(app, runIds) {
12190
12190
  }
12191
12191
  function summarizeFromSnapshots(snapshots) {
12192
12192
  const empty = {
12193
- queryCounts: { totalQueries: 0, citedQueries: 0, notCitedQueries: 0, citedRate: 0 },
12193
+ queryCounts: {
12194
+ totalQueries: 0,
12195
+ citedQueries: 0,
12196
+ notCitedQueries: 0,
12197
+ citedRate: 0,
12198
+ mentionedQueries: 0,
12199
+ notMentionedQueries: 0,
12200
+ mentionRate: 0
12201
+ },
12194
12202
  providers: []
12195
12203
  };
12196
12204
  if (snapshots.length === 0) return empty;
12197
12205
  const perQuery = /* @__PURE__ */ new Map();
12206
+ const perQueryMentioned = /* @__PURE__ */ new Map();
12198
12207
  const perProvider = /* @__PURE__ */ new Map();
12199
12208
  for (const snap of snapshots) {
12200
12209
  const cited = snap.citationState === CitationStates.cited;
12201
12210
  if (!perQuery.has(snap.queryId) || cited) {
12202
12211
  perQuery.set(snap.queryId, cited);
12203
12212
  }
12213
+ const mentioned = snap.answerMentioned === true;
12214
+ if (!perQueryMentioned.has(snap.queryId) || mentioned) {
12215
+ perQueryMentioned.set(snap.queryId, mentioned);
12216
+ }
12204
12217
  const bucket = perProvider.get(snap.provider) ?? { cited: 0, total: 0 };
12205
12218
  bucket.total += 1;
12206
12219
  if (cited) bucket.cited += 1;
@@ -12213,6 +12226,12 @@ function summarizeFromSnapshots(snapshots) {
12213
12226
  }
12214
12227
  const notCitedQueries = totalQueries - citedQueries;
12215
12228
  const citedRate = totalQueries === 0 ? 0 : Number((citedQueries / totalQueries).toFixed(4));
12229
+ let mentionedQueries = 0;
12230
+ for (const wasMentioned of perQueryMentioned.values()) {
12231
+ if (wasMentioned) mentionedQueries += 1;
12232
+ }
12233
+ const notMentionedQueries = totalQueries - mentionedQueries;
12234
+ const mentionRate = totalQueries === 0 ? 0 : Number((mentionedQueries / totalQueries).toFixed(4));
12216
12235
  const providers = [...perProvider.entries()].map(([provider, { cited, total }]) => ({
12217
12236
  provider,
12218
12237
  cited,
@@ -12220,7 +12239,15 @@ function summarizeFromSnapshots(snapshots) {
12220
12239
  citedRate: total === 0 ? 0 : Number((cited / total).toFixed(4))
12221
12240
  })).sort((a, b) => a.provider.localeCompare(b.provider));
12222
12241
  return {
12223
- queryCounts: { totalQueries, citedQueries, notCitedQueries, citedRate },
12242
+ queryCounts: {
12243
+ totalQueries,
12244
+ citedQueries,
12245
+ notCitedQueries,
12246
+ citedRate,
12247
+ mentionedQueries,
12248
+ notMentionedQueries,
12249
+ mentionRate
12250
+ },
12224
12251
  providers
12225
12252
  };
12226
12253
  }
@@ -95,7 +95,7 @@ import {
95
95
  runs,
96
96
  schedules,
97
97
  usageCounters
98
- } from "./chunk-Y24OE7R3.js";
98
+ } from "./chunk-B2CH7GBW.js";
99
99
  import {
100
100
  AGENT_MEMORY_VALUE_MAX_BYTES,
101
101
  AGENT_PROVIDER_IDS,
@@ -5618,7 +5618,7 @@ function readStoredGroundingSources(rawResponse) {
5618
5618
  return result;
5619
5619
  }
5620
5620
  async function backfillInsightsCommand(project, opts) {
5621
- const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-5V2JWQ6K.js");
5621
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-IUKD3PMZ.js");
5622
5622
  const config = loadConfig();
5623
5623
  const db = createClient(config.database);
5624
5624
  migrate(db);
package/dist/cli.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  setTelemetrySource,
28
28
  showFirstRunNotice,
29
29
  trackEvent
30
- } from "./chunk-GZYLAE6M.js";
30
+ } from "./chunk-WQ44ZXGQ.js";
31
31
  import {
32
32
  CliError,
33
33
  EXIT_SYSTEM_ERROR,
@@ -52,7 +52,7 @@ import {
52
52
  projects,
53
53
  queries,
54
54
  renderReportHtml
55
- } from "./chunk-Y24OE7R3.js";
55
+ } from "./chunk-B2CH7GBW.js";
56
56
  import {
57
57
  CcReleaseSyncStatuses,
58
58
  CheckScopes,
@@ -8815,7 +8815,8 @@ function renderHuman(overview) {
8815
8815
  printScore("Competitor press.", scores.competitorPressure);
8816
8816
  printScore("Run status ", scores.runStatus);
8817
8817
  console.log(`
8818
- Queries cited: ${queryCounts.citedQueries}/${queryCounts.totalQueries} (${pct(queryCounts.citedRate)})`);
8818
+ Queries cited: ${queryCounts.citedQueries}/${queryCounts.totalQueries} (${pct(queryCounts.citedRate)})`);
8819
+ console.log(` Queries mentioned: ${queryCounts.mentionedQueries}/${queryCounts.totalQueries} (${pct(queryCounts.mentionRate)})`);
8819
8820
  if (movementSummary.hasPreviousRun) {
8820
8821
  console.log(` Movement: +${movementSummary.gained} gained, -${movementSummary.lost} lost (${movementSummary.tone})`);
8821
8822
  } else if (movementSummary.gained > 0) {
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-GZYLAE6M.js";
3
+ } from "./chunk-WQ44ZXGQ.js";
4
4
  import {
5
5
  loadConfig
6
6
  } from "./chunk-YYFBMDLC.js";
7
- import "./chunk-Y24OE7R3.js";
7
+ import "./chunk-B2CH7GBW.js";
8
8
  import "./chunk-D75O5A27.js";
9
9
  export {
10
10
  createServer,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-Y24OE7R3.js";
3
+ } from "./chunk-B2CH7GBW.js";
4
4
  import "./chunk-D75O5A27.js";
5
5
  export {
6
6
  IntelligenceService
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ainyc/canonry",
3
- "version": "4.68.1",
3
+ "version": "4.69.0",
4
4
  "type": "module",
5
5
  "description": "Agent-first open-source AEO operating platform - track how answer engines cite your domain",
6
6
  "license": "FSL-1.1-ALv2",
@@ -65,23 +65,23 @@
65
65
  "@ainyc/canonry-api-client": "0.0.0",
66
66
  "@ainyc/canonry-api-routes": "0.0.0",
67
67
  "@ainyc/canonry-config": "0.0.0",
68
- "@ainyc/canonry-db": "0.0.0",
69
- "@ainyc/canonry-integration-bing": "0.0.0",
70
68
  "@ainyc/canonry-contracts": "0.0.0",
71
69
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
70
+ "@ainyc/canonry-integration-bing": "0.0.0",
72
71
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
73
- "@ainyc/canonry-integration-google": "0.0.0",
72
+ "@ainyc/canonry-db": "0.0.0",
73
+ "@ainyc/canonry-integration-traffic": "0.0.0",
74
74
  "@ainyc/canonry-integration-google-business-profile": "0.0.0",
75
75
  "@ainyc/canonry-integration-google-places": "0.0.0",
76
- "@ainyc/canonry-integration-traffic": "0.0.0",
77
- "@ainyc/canonry-integration-wordpress": "0.0.0",
78
- "@ainyc/canonry-provider-cdp": "0.0.0",
79
76
  "@ainyc/canonry-intelligence": "0.0.0",
80
- "@ainyc/canonry-provider-claude": "0.0.0",
77
+ "@ainyc/canonry-provider-cdp": "0.0.0",
78
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
79
+ "@ainyc/canonry-integration-google": "0.0.0",
81
80
  "@ainyc/canonry-provider-gemini": "0.0.0",
82
81
  "@ainyc/canonry-provider-local": "0.0.0",
83
82
  "@ainyc/canonry-provider-openai": "0.0.0",
84
- "@ainyc/canonry-provider-perplexity": "0.0.0"
83
+ "@ainyc/canonry-provider-perplexity": "0.0.0",
84
+ "@ainyc/canonry-provider-claude": "0.0.0"
85
85
  },
86
86
  "scripts": {
87
87
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",