@ainyc/canonry 4.76.0 → 4.76.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.
@@ -27904,7 +27904,7 @@ async function drainVercelTrafficEvents(options) {
27904
27904
  const events = [];
27905
27905
  const seenEventIds = /* @__PURE__ */ new Set();
27906
27906
  if (endMs <= startMs) {
27907
- return { events, subWindowCount: 0, effectiveStartMs: startMs, retentionClamped: false, truncatedSliceCount: 0, truncatedSliceStartsMs: [], drainedThroughMs: startMs, deadlineReached: false };
27907
+ return { events, subWindowCount: 0, effectiveStartMs: startMs, retentionClamped: false, truncatedSliceCount: 0, truncatedSliceStartsMs: [], deadlineSkippedSliceCount: 0, deadlineSkippedSliceStartsMs: [], drainedThroughMs: startMs, deadlineReached: false };
27908
27908
  }
27909
27909
  let cursorMs = startMs;
27910
27910
  let spanMs = Math.min(endMs - startMs, INITIAL_SUB_WINDOW_MS);
@@ -27917,9 +27917,14 @@ async function drainVercelTrafficEvents(options) {
27917
27917
  let truncatedSliceCount = 0;
27918
27918
  let deadlineReached = false;
27919
27919
  const truncatedSliceStartsMs = [];
27920
+ const deadlineSkippedSliceStartsMs = [];
27920
27921
  while (cursorMs < endMs) {
27921
27922
  if (options.deadlineMs !== void 0 && now() >= options.deadlineMs) {
27922
27923
  deadlineReached = true;
27924
+ if (cursorMs === effectiveStartMs && subWindowCount > 0 && cursorMs < endMs) {
27925
+ deadlineSkippedSliceStartsMs.push(cursorMs);
27926
+ cursorMs = Math.min(effectiveStartMs + INITIAL_SUB_WINDOW_MS, endMs);
27927
+ }
27923
27928
  break;
27924
27929
  }
27925
27930
  if (subWindowCount >= options.maxSubWindows) {
@@ -28008,7 +28013,7 @@ async function drainVercelTrafficEvents(options) {
28008
28013
  }
28009
28014
  }
28010
28015
  }
28011
- return { events, subWindowCount, effectiveStartMs, retentionClamped, truncatedSliceCount, truncatedSliceStartsMs, drainedThroughMs: cursorMs, deadlineReached };
28016
+ return { events, subWindowCount, effectiveStartMs, retentionClamped, truncatedSliceCount, truncatedSliceStartsMs, deadlineSkippedSliceCount: deadlineSkippedSliceStartsMs.length, deadlineSkippedSliceStartsMs, drainedThroughMs: cursorMs, deadlineReached };
28012
28017
  }
28013
28018
 
28014
28019
  // ../api-routes/src/traffic.ts
@@ -28805,6 +28810,16 @@ async function trafficRoutes(app, opts) {
28805
28810
  "Vercel drain truncated dense one-second slice(s); ingested a sample and advanced past them"
28806
28811
  );
28807
28812
  }
28813
+ if (drained.deadlineSkippedSliceCount > 0) {
28814
+ request.log.warn(
28815
+ {
28816
+ sourceId: sourceRow.id,
28817
+ skippedSlices: drained.deadlineSkippedSliceCount,
28818
+ sliceStarts: drained.deadlineSkippedSliceStartsMs.map((ms) => new Date(ms).toISOString())
28819
+ },
28820
+ "Vercel drain could not narrow a dense/slow head slice within its budget; skipped past it to guarantee progress"
28821
+ );
28822
+ }
28808
28823
  allEvents = drained.events;
28809
28824
  } catch (e) {
28810
28825
  const msg = e instanceof Error ? e.message : String(e);
@@ -97,7 +97,7 @@ import {
97
97
  siteAuditPages,
98
98
  siteAuditSnapshots,
99
99
  usageCounters
100
- } from "./chunk-JUWU2DV6.js";
100
+ } from "./chunk-2FV5GIUB.js";
101
101
  import {
102
102
  AGENT_MEMORY_VALUE_MAX_BYTES,
103
103
  AGENT_PROVIDER_IDS,
@@ -5761,7 +5761,7 @@ function readStoredGroundingSources(rawResponse) {
5761
5761
  return result;
5762
5762
  }
5763
5763
  async function backfillInsightsCommand(project, opts) {
5764
- const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-L2A5MFB4.js");
5764
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-ITD2CTKH.js");
5765
5765
  const config = loadConfig();
5766
5766
  const db = createClient(config.database);
5767
5767
  migrate(db);
package/dist/cli.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  setTelemetrySource,
28
28
  showFirstRunNotice,
29
29
  trackEvent
30
- } from "./chunk-QY5WZWU4.js";
30
+ } from "./chunk-5QINOJ26.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-JUWU2DV6.js";
55
+ } from "./chunk-2FV5GIUB.js";
56
56
  import {
57
57
  CcReleaseSyncStatuses,
58
58
  CheckScopes,
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-QY5WZWU4.js";
3
+ } from "./chunk-5QINOJ26.js";
4
4
  import {
5
5
  loadConfig
6
6
  } from "./chunk-WFMEK34V.js";
7
- import "./chunk-JUWU2DV6.js";
7
+ import "./chunk-2FV5GIUB.js";
8
8
  import "./chunk-JNAKRK77.js";
9
9
  export {
10
10
  createServer,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-JUWU2DV6.js";
3
+ } from "./chunk-2FV5GIUB.js";
4
4
  import "./chunk-JNAKRK77.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.76.0",
3
+ "version": "4.76.1",
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",
@@ -62,26 +62,26 @@
62
62
  "@types/node-cron": "^3.0.11",
63
63
  "tsup": "^8.5.1",
64
64
  "tsx": "^4.19.0",
65
- "@ainyc/canonry-api-client": "0.0.0",
66
65
  "@ainyc/canonry-api-routes": "0.0.0",
66
+ "@ainyc/canonry-api-client": "0.0.0",
67
67
  "@ainyc/canonry-config": "0.0.0",
68
- "@ainyc/canonry-contracts": "0.0.0",
69
- "@ainyc/canonry-integration-cloud-run": "0.0.0",
70
68
  "@ainyc/canonry-integration-bing": "0.0.0",
69
+ "@ainyc/canonry-contracts": "0.0.0",
71
70
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
71
+ "@ainyc/canonry-integration-cloud-run": "0.0.0",
72
+ "@ainyc/canonry-db": "0.0.0",
72
73
  "@ainyc/canonry-integration-google": "0.0.0",
73
74
  "@ainyc/canonry-integration-google-business-profile": "0.0.0",
74
- "@ainyc/canonry-db": "0.0.0",
75
- "@ainyc/canonry-integration-wordpress": "0.0.0",
76
- "@ainyc/canonry-integration-google-places": "0.0.0",
77
75
  "@ainyc/canonry-integration-traffic": "0.0.0",
76
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
78
77
  "@ainyc/canonry-intelligence": "0.0.0",
79
- "@ainyc/canonry-provider-cdp": "0.0.0",
78
+ "@ainyc/canonry-integration-google-places": "0.0.0",
80
79
  "@ainyc/canonry-provider-claude": "0.0.0",
81
80
  "@ainyc/canonry-provider-gemini": "0.0.0",
82
81
  "@ainyc/canonry-provider-local": "0.0.0",
83
- "@ainyc/canonry-provider-openai": "0.0.0",
84
- "@ainyc/canonry-provider-perplexity": "0.0.0"
82
+ "@ainyc/canonry-provider-cdp": "0.0.0",
83
+ "@ainyc/canonry-provider-perplexity": "0.0.0",
84
+ "@ainyc/canonry-provider-openai": "0.0.0"
85
85
  },
86
86
  "scripts": {
87
87
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",