@canonry/canonry 7.87.0 → 7.87.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/assets/agent-workspace/skills/canonry/references/canonry-cli.md +2 -1
- package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +10 -6
- package/dist/{backfill-LIMS34H6.js → backfill-PNHBAV5N.js} +3 -3
- package/dist/{chunk-ITOK75B6.js → chunk-2I22IUA3.js} +1 -1
- package/dist/{chunk-OJKWT6U6.js → chunk-BKZ6PQAE.js} +6 -6
- package/dist/{chunk-D5V6YQXA.js → chunk-CR54BCUP.js} +3 -3
- package/dist/{chunk-KOBOKZXF.js → chunk-ECZGTJIQ.js} +1 -1
- package/dist/{chunk-YKB67YKH.js → chunk-J7ITGXCS.js} +1 -1
- package/dist/{chunk-L5NMS7AU.js → chunk-RHOIR5QY.js} +1 -1
- package/dist/{chunk-EJZHL67Y.js → chunk-RSPOFH66.js} +1 -1
- package/dist/{chunk-JGGDENAA.js → chunk-UXSWQAVZ.js} +14 -14
- package/dist/{chunk-EQGCGZZY.js → chunk-W7DHXSXN.js} +20 -3
- package/dist/{cli-commands-J6KWSWIS.js → cli-commands-62QECRBV.js} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{dashboard-5QMYF4ZP.js → dashboard-4HOXCUQE.js} +1 -1
- package/dist/{demo-KGQL5EJM.js → demo-IY7Y7KR3.js} +1 -1
- package/dist/{demo-server-ERIR2T2N.js → demo-server-BLLSDILQ.js} +2 -2
- package/dist/index.js +6 -6
- package/dist/{init-HOBW5K2Q.js → init-JY76QAOC.js} +1 -1
- package/dist/{intelligence-service-2AH42Y4Q.js → intelligence-service-GJYBEHJE.js} +2 -2
- package/dist/{serve-WF5ZXWW6.js → serve-ZQXMTDE7.js} +7 -7
- package/dist/{session-HEDEP77R.js → session-MGOUDLXN.js} +3 -3
- package/dist/{tools-KYG67FBW.js → tools-ZWFLE5UR.js} +2 -2
- package/package.json +1 -1
|
@@ -1054,7 +1054,8 @@ more than 1,000 messages remain afterwards and names the cause. After
|
|
|
1054
1054
|
`deadline` or `batch-cap` the drain hit its limit: if the operator approves a
|
|
1055
1055
|
manual drain, run a manual sync, and if the backlog recurs, get approval to
|
|
1056
1056
|
shorten the schedule interval or raise the time limit. After `empty-pulls`
|
|
1057
|
-
Cloudflare still counted messages it would not return
|
|
1057
|
+
Cloudflare still counted messages it would not return, even after waiting
|
|
1058
|
+
between pulls; later syncs pull them.
|
|
1058
1059
|
|
|
1059
1060
|
Read the [server-side traffic guide](server-side-traffic.md) for token safety,
|
|
1060
1061
|
route checks, activation order, smoke tests, rollback, and troubleshooting.
|
|
@@ -947,10 +947,13 @@ usable value, receipts keep Cloudflare's 14-day maximum plus the margin.
|
|
|
947
947
|
Each Queue sync drains in batches of up to 100 messages for as long as
|
|
948
948
|
Cloudflare reports a backlog, up to a 4-minute time limit per sync
|
|
949
949
|
(`CANONRY_CLOUDFLARE_QUEUE_SYNC_DEADLINE_MS`, 30 seconds to 15 minutes) and a
|
|
950
|
-
300-pull safety cap. Cloudflare can return a partial or
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
950
|
+
300-pull safety cap. Cloudflare can return a partial or empty batch while a
|
|
951
|
+
backlog waits (on a busy Queue, about 3 pulls in 10 come back empty). While 100
|
|
952
|
+
or more messages wait, the sync waits after each empty pull, 0.5, 1, 2, 4 and
|
|
953
|
+
then 8 seconds, and pulls again. It stops when Cloudflare reports no backlog,
|
|
954
|
+
when every wait came back empty, when fewer than 100 messages wait and two
|
|
955
|
+
pulls in a row came back empty, or at the limit. If a pull fails after earlier
|
|
956
|
+
batches were saved, the run ends `partial` and keeps them.
|
|
954
957
|
|
|
955
958
|
Each sync run records what it did and why it stopped in `syncSummary`: pulls,
|
|
956
959
|
empty pulls, messages pulled and acknowledged, redelivered (duplicate) events,
|
|
@@ -964,8 +967,9 @@ the drain) and warns above that, with the cause taken from the last stop
|
|
|
964
967
|
reason. After `deadline` or `batch-cap` the drain hit its limit: shorten the
|
|
965
968
|
`traffic-sync` interval or raise the time limit, or messages will pass the
|
|
966
969
|
Queue's retention and be dropped. After `empty-pulls` or `unleased-only`
|
|
967
|
-
Cloudflare still counted messages it would not return
|
|
968
|
-
visible); later syncs pull them, and raising the time limit
|
|
970
|
+
Cloudflare still counted messages it would not return, even after the waits
|
|
971
|
+
(leased or not yet visible); later syncs pull them, and raising the time limit
|
|
972
|
+
does not help.
|
|
969
973
|
|
|
970
974
|
## Syncing data
|
|
971
975
|
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
backfillSnapshotAttributionCommand,
|
|
11
11
|
backfillTrafficClassificationCommand,
|
|
12
12
|
replayQueryAuditLog
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-CR54BCUP.js";
|
|
14
|
+
import "./chunk-RHOIR5QY.js";
|
|
15
15
|
import "./chunk-2FJB3CSS.js";
|
|
16
16
|
import "./chunk-HGMYEDAQ.js";
|
|
17
17
|
import "./chunk-JAYUWQAV.js";
|
|
@@ -19,7 +19,7 @@ import "./chunk-IBGZ6D6R.js";
|
|
|
19
19
|
import {
|
|
20
20
|
backfillProjectAnswerMentions,
|
|
21
21
|
backfillProjectAnswerMentionsInChunks
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-W7DHXSXN.js";
|
|
23
23
|
import "./chunk-VDYXB6SV.js";
|
|
24
24
|
import "./chunk-GBWCEOZR.js";
|
|
25
25
|
import "./chunk-O26FQ7RI.js";
|
|
@@ -27,14 +27,14 @@ import {
|
|
|
27
27
|
resolveConfiguredAgentProvider,
|
|
28
28
|
resolveSessionProviderAndModel,
|
|
29
29
|
setAeroSystemPrompt
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ECZGTJIQ.js";
|
|
31
31
|
import {
|
|
32
32
|
AeroToolProfiles,
|
|
33
33
|
AeroToolScopes,
|
|
34
34
|
buildAeroStateTools,
|
|
35
35
|
isAeroToolProfile,
|
|
36
36
|
truncateToolResult
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-RSPOFH66.js";
|
|
38
38
|
import {
|
|
39
39
|
getGoogleAuthConfig,
|
|
40
40
|
getGoogleConnection,
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
openrouterAdapter,
|
|
66
66
|
perplexityAdapter,
|
|
67
67
|
startTrafficReclassification
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-RHOIR5QY.js";
|
|
69
69
|
import {
|
|
70
70
|
classifyUsageSurface,
|
|
71
71
|
createApiUsageTelemetry,
|
|
@@ -162,7 +162,7 @@ import {
|
|
|
162
162
|
} from "./chunk-HGMYEDAQ.js";
|
|
163
163
|
import {
|
|
164
164
|
IntelligenceService
|
|
165
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-2I22IUA3.js";
|
|
166
166
|
import {
|
|
167
167
|
computeCitedCompetitorDomains,
|
|
168
168
|
determineCitationState
|
|
@@ -292,7 +292,7 @@ import {
|
|
|
292
292
|
webhookResponseReason,
|
|
293
293
|
webhookTargetRefusalReason,
|
|
294
294
|
writeAuditLog
|
|
295
|
-
} from "./chunk-
|
|
295
|
+
} from "./chunk-W7DHXSXN.js";
|
|
296
296
|
import {
|
|
297
297
|
OperationalLogStore,
|
|
298
298
|
SentimentIdempotencyConflict,
|
|
@@ -5940,7 +5940,7 @@ function nonBlank(value) {
|
|
|
5940
5940
|
return trimmed ? trimmed : void 0;
|
|
5941
5941
|
}
|
|
5942
5942
|
function resolveBuildCommit(env = process.env) {
|
|
5943
|
-
const embedded = true ? "
|
|
5943
|
+
const embedded = true ? "a044e59ea7224007b8c3e85cb1c037f6aff2c6c9" : void 0;
|
|
5944
5944
|
return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
|
|
5945
5945
|
}
|
|
5946
5946
|
function resolveInstanceIdentity(env = process.env) {
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
reparseStoredResult4,
|
|
9
9
|
reparseStoredResult5,
|
|
10
10
|
resolveStoredApiResponse
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-RHOIR5QY.js";
|
|
12
12
|
import {
|
|
13
13
|
loadConfig
|
|
14
14
|
} from "./chunk-2FJB3CSS.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
createRunCompetitorResolver,
|
|
25
25
|
readMarketCompetitorNames,
|
|
26
26
|
refreshSnapshotMentionIdentity
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-W7DHXSXN.js";
|
|
28
28
|
import {
|
|
29
29
|
RawEventSampleEventTypes,
|
|
30
30
|
auditLog,
|
|
@@ -429,7 +429,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
|
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
431
|
async function backfillInsightsCommand(project, opts) {
|
|
432
|
-
const { IntelligenceService } = await import("./intelligence-service-
|
|
432
|
+
const { IntelligenceService } = await import("./intelligence-service-GJYBEHJE.js");
|
|
433
433
|
const config = loadConfig();
|
|
434
434
|
const db = createClient(config.database);
|
|
435
435
|
migrate(db);
|
|
@@ -47,7 +47,7 @@ function queueServeHandoff() {
|
|
|
47
47
|
async function runPendingServeHandoff(format) {
|
|
48
48
|
if (!pendingServeHandoff) return;
|
|
49
49
|
pendingServeHandoff = false;
|
|
50
|
-
const { serveCommand } = await import("./serve-
|
|
50
|
+
const { serveCommand } = await import("./serve-ZQXMTDE7.js");
|
|
51
51
|
await serveCommand(format);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -728,7 +728,7 @@ var DEMO_CLI_COMMANDS = [{
|
|
|
728
728
|
options: { host: stringOption(), port: stringOption(), "trust-proxy": multiStringOption() },
|
|
729
729
|
allowPositionals: false,
|
|
730
730
|
run: async (input) => {
|
|
731
|
-
const { demoCommand } = await import("./demo-
|
|
731
|
+
const { demoCommand } = await import("./demo-IY7Y7KR3.js");
|
|
732
732
|
await demoCommand({
|
|
733
733
|
host: getString(input.values, "host"),
|
|
734
734
|
port: getString(input.values, "port"),
|
|
@@ -749,7 +749,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
749
749
|
allowPositionals: false,
|
|
750
750
|
supportsDryRun: true,
|
|
751
751
|
run: async (input) => {
|
|
752
|
-
const { backfillAnswerVisibilityCommand } = await import("./backfill-
|
|
752
|
+
const { backfillAnswerVisibilityCommand } = await import("./backfill-PNHBAV5N.js");
|
|
753
753
|
await backfillAnswerVisibilityCommand({
|
|
754
754
|
project: getString(input.values, "project"),
|
|
755
755
|
dryRun: input.dryRun,
|
|
@@ -766,7 +766,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
766
766
|
allowPositionals: false,
|
|
767
767
|
supportsDryRun: true,
|
|
768
768
|
run: async (input) => {
|
|
769
|
-
const { backfillAnswerMentionsCommand } = await import("./backfill-
|
|
769
|
+
const { backfillAnswerMentionsCommand } = await import("./backfill-PNHBAV5N.js");
|
|
770
770
|
await backfillAnswerMentionsCommand({
|
|
771
771
|
project: getString(input.values, "project"),
|
|
772
772
|
dryRun: input.dryRun,
|
|
@@ -784,7 +784,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
784
784
|
},
|
|
785
785
|
supportsDryRun: true,
|
|
786
786
|
run: async (input) => {
|
|
787
|
-
const { backfillInsightsCommand } = await import("./backfill-
|
|
787
|
+
const { backfillInsightsCommand } = await import("./backfill-PNHBAV5N.js");
|
|
788
788
|
const usage = "canonry backfill insights <project> [--from-run <id>] [--to-run <id>] [--since <date>] [--dry-run] [--format json]";
|
|
789
789
|
const project3 = requireProject(input, "backfill insights", usage);
|
|
790
790
|
await backfillInsightsCommand(project3, {
|
|
@@ -804,7 +804,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
804
804
|
},
|
|
805
805
|
allowPositionals: false,
|
|
806
806
|
run: async (input) => {
|
|
807
|
-
const { backfillNormalizedPathsCommand } = await import("./backfill-
|
|
807
|
+
const { backfillNormalizedPathsCommand } = await import("./backfill-PNHBAV5N.js");
|
|
808
808
|
await backfillNormalizedPathsCommand({
|
|
809
809
|
project: getString(input.values, "project"),
|
|
810
810
|
format: input.format
|
|
@@ -819,7 +819,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
819
819
|
},
|
|
820
820
|
allowPositionals: false,
|
|
821
821
|
run: async (input) => {
|
|
822
|
-
const { backfillAiReferralPathsCommand } = await import("./backfill-
|
|
822
|
+
const { backfillAiReferralPathsCommand } = await import("./backfill-PNHBAV5N.js");
|
|
823
823
|
await backfillAiReferralPathsCommand({
|
|
824
824
|
project: getString(input.values, "project"),
|
|
825
825
|
format: input.format
|
|
@@ -831,7 +831,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
831
831
|
usage: "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]",
|
|
832
832
|
supportsDryRun: true,
|
|
833
833
|
run: async (input) => {
|
|
834
|
-
const { backfillSnapshotAttributionCommand } = await import("./backfill-
|
|
834
|
+
const { backfillSnapshotAttributionCommand } = await import("./backfill-PNHBAV5N.js");
|
|
835
835
|
const usage = "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]";
|
|
836
836
|
const project3 = requireProject(input, "backfill snapshot-attribution", usage);
|
|
837
837
|
await backfillSnapshotAttributionCommand({
|
|
@@ -850,7 +850,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
850
850
|
allowPositionals: false,
|
|
851
851
|
supportsDryRun: true,
|
|
852
852
|
run: async (input) => {
|
|
853
|
-
const { backfillTrafficClassificationCommand } = await import("./backfill-
|
|
853
|
+
const { backfillTrafficClassificationCommand } = await import("./backfill-PNHBAV5N.js");
|
|
854
854
|
await backfillTrafficClassificationCommand({
|
|
855
855
|
project: getString(input.values, "project"),
|
|
856
856
|
dryRun: input.dryRun,
|
|
@@ -1292,7 +1292,7 @@ var DASHBOARD_CLI_COMMANDS = [
|
|
|
1292
1292
|
usage: "canonry dashboard reset-password [--format json]",
|
|
1293
1293
|
help: "Clears the dashboard password from config.yaml, so the dashboard asks for a new one after a restart.\nLocal only: it edits the config file under CANONRY_CONFIG_DIR and does not call the server.",
|
|
1294
1294
|
run: async (input) => {
|
|
1295
|
-
const { resetDashboardPassword } = await import("./dashboard-
|
|
1295
|
+
const { resetDashboardPassword } = await import("./dashboard-4HOXCUQE.js");
|
|
1296
1296
|
await resetDashboardPassword({ format: input.format });
|
|
1297
1297
|
}
|
|
1298
1298
|
},
|
|
@@ -6931,7 +6931,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
6931
6931
|
options: { access: stringOption() },
|
|
6932
6932
|
run: async (input) => {
|
|
6933
6933
|
if (input.positionals.length > 1) throw usageError("Expected at most one command group");
|
|
6934
|
-
const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-CBTM3JKP.js"), import("./cli-commands-
|
|
6934
|
+
const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-CBTM3JKP.js"), import("./cli-commands-62QECRBV.js")]);
|
|
6935
6935
|
printCliCatalog(REGISTERED_CLI_COMMANDS2, input.format, input.positionals[0], getString(input.values, "access"));
|
|
6936
6936
|
}
|
|
6937
6937
|
},
|
|
@@ -6980,7 +6980,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
6980
6980
|
},
|
|
6981
6981
|
allowPositionals: false,
|
|
6982
6982
|
run: async (input) => {
|
|
6983
|
-
const { initCommand } = await import("./init-
|
|
6983
|
+
const { initCommand } = await import("./init-JY76QAOC.js");
|
|
6984
6984
|
await initCommand({
|
|
6985
6985
|
force: getBoolean(input.values, "force"),
|
|
6986
6986
|
ref: getString(input.values, "ref"),
|
|
@@ -7035,7 +7035,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7035
7035
|
allowPositionals: false,
|
|
7036
7036
|
run: async (input) => {
|
|
7037
7037
|
applyServerEnv(input.values);
|
|
7038
|
-
const { serveCommand } = await import("./serve-
|
|
7038
|
+
const { serveCommand } = await import("./serve-ZQXMTDE7.js");
|
|
7039
7039
|
await serveCommand(input.format);
|
|
7040
7040
|
}
|
|
7041
7041
|
},
|
|
@@ -8404,8 +8404,8 @@ var AGENT_CLI_COMMANDS = [
|
|
|
8404
8404
|
"timeout-ms": stringOption()
|
|
8405
8405
|
},
|
|
8406
8406
|
run: async (input) => {
|
|
8407
|
-
const { coerceAgentProvider } = await import("./session-
|
|
8408
|
-
const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-
|
|
8407
|
+
const { coerceAgentProvider } = await import("./session-MGOUDLXN.js");
|
|
8408
|
+
const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-ZWFLE5UR.js");
|
|
8409
8409
|
const { agentAsk } = await import("./agent-ask-7VUPXTXL.js");
|
|
8410
8410
|
const usage = `canonry agent ask <project> "<prompt>" [--provider ${AGENT_PROVIDER_IDS.join("|")}] [--model <id>] [--scope all|read-only] [--profile default|ads-operator] [--context <json>] [--conversation <id>] [--max-tool-calls <n>] [--timeout-ms <ms>] [--format json]`;
|
|
8411
8411
|
const project3 = requireProject(input, "agent.ask", usage);
|
|
@@ -62587,6 +62587,7 @@ var DEFAULT_VERCEL_SYNC_DEADLINE_MS = 4 * 6e4;
|
|
|
62587
62587
|
var CLOUDFLARE_QUEUE_BATCH_SIZE = 100;
|
|
62588
62588
|
var DEFAULT_CLOUDFLARE_QUEUE_SYNC_DEADLINE_MS = 4 * 6e4;
|
|
62589
62589
|
var DEFAULT_CLOUDFLARE_QUEUE_MAX_BATCHES = 300;
|
|
62590
|
+
var DEFAULT_CLOUDFLARE_QUEUE_EMPTY_PULL_BACKOFF_MS = [500, 1e3, 2e3, 4e3, 8e3];
|
|
62590
62591
|
var CLOUDFLARE_QUEUE_RESIDUAL_WARN_COUNT = 1e3;
|
|
62591
62592
|
var MIN_VERCEL_SYNC_DEADLINE_MS = 3e4;
|
|
62592
62593
|
var MAX_VERCEL_SYNC_DEADLINE_MS = 15 * 6e4;
|
|
@@ -64816,9 +64817,13 @@ async function trafficRoutes(app, opts) {
|
|
|
64816
64817
|
const readQueueRetentionSeconds = opts.getCloudflareQueueRetentionSeconds ?? getCloudflareQueueRetentionSeconds;
|
|
64817
64818
|
const cloudflareQueueMaxBatches = opts.cloudflareQueueMaxBatches ?? DEFAULT_CLOUDFLARE_QUEUE_MAX_BATCHES;
|
|
64818
64819
|
const cloudflareQueueSyncDeadlineMs = opts.cloudflareQueueSyncDeadlineMs ?? DEFAULT_CLOUDFLARE_QUEUE_SYNC_DEADLINE_MS;
|
|
64820
|
+
const cloudflareQueueEmptyPullBackoffMs = opts.cloudflareQueueEmptyPullBackoffMs ?? DEFAULT_CLOUDFLARE_QUEUE_EMPTY_PULL_BACKOFF_MS;
|
|
64819
64821
|
if (!Number.isInteger(cloudflareQueueMaxBatches) || cloudflareQueueMaxBatches < 1 || cloudflareQueueMaxBatches > 1e3) {
|
|
64820
64822
|
throw new RangeError("cloudflareQueueMaxBatches must be an integer from 1 to 1000");
|
|
64821
64823
|
}
|
|
64824
|
+
if (cloudflareQueueEmptyPullBackoffMs.some((ms) => !Number.isFinite(ms) || ms < 0)) {
|
|
64825
|
+
throw new RangeError("cloudflareQueueEmptyPullBackoffMs must hold non-negative milliseconds");
|
|
64826
|
+
}
|
|
64822
64827
|
const allowLoopback = opts.allowLoopbackWebhooks === true;
|
|
64823
64828
|
let rawSampleRetentionTimer;
|
|
64824
64829
|
app.addHook("onReady", async () => {
|
|
@@ -66000,9 +66005,20 @@ async function trafficRoutes(app, opts) {
|
|
|
66000
66005
|
break;
|
|
66001
66006
|
}
|
|
66002
66007
|
consecutiveEmptyPulls = pulled.skippedUnleasedMessageCount === 0 ? consecutiveEmptyPulls + 1 : 0;
|
|
66003
|
-
if (consecutiveEmptyPulls
|
|
66004
|
-
|
|
66005
|
-
|
|
66008
|
+
if (consecutiveEmptyPulls > 0) {
|
|
66009
|
+
const waits = remainingBacklogCount >= CLOUDFLARE_QUEUE_BATCH_SIZE ? cloudflareQueueEmptyPullBackoffMs : [0];
|
|
66010
|
+
if (consecutiveEmptyPulls > waits.length) {
|
|
66011
|
+
stopReason = CloudflareQueueDrainStopReasons["empty-pulls"];
|
|
66012
|
+
break;
|
|
66013
|
+
}
|
|
66014
|
+
const waitMs = waits[consecutiveEmptyPulls - 1];
|
|
66015
|
+
if (waitMs > 0) {
|
|
66016
|
+
if (waitMs >= drainDeadlineMs - Date.now()) {
|
|
66017
|
+
stopReason = CloudflareQueueDrainStopReasons.deadline;
|
|
66018
|
+
break;
|
|
66019
|
+
}
|
|
66020
|
+
await new Promise((resolve) => setTimeout(resolve, waitMs));
|
|
66021
|
+
}
|
|
66006
66022
|
}
|
|
66007
66023
|
} else {
|
|
66008
66024
|
consecutiveEmptyPulls = 0;
|
|
@@ -76578,6 +76594,7 @@ async function apiRoutes(app, opts) {
|
|
|
76578
76594
|
getCloudflareQueueRetentionSeconds: opts.getCloudflareQueueRetentionSeconds,
|
|
76579
76595
|
cloudflareQueueMaxBatches: opts.cloudflareQueueMaxBatches,
|
|
76580
76596
|
cloudflareQueueSyncDeadlineMs: opts.cloudflareQueueSyncDeadlineMs,
|
|
76597
|
+
cloudflareQueueEmptyPullBackoffMs: opts.cloudflareQueueEmptyPullBackoffMs,
|
|
76581
76598
|
cloudflareTrafficIngestUrl: opts.cloudflareTrafficIngestUrl,
|
|
76582
76599
|
cloudflareIngestRateLimitMax: opts.cloudflareIngestRateLimitMax,
|
|
76583
76600
|
cloudflareIngestIpRateLimitMax: opts.cloudflareIngestIpRateLimitMax,
|
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node --import tsx
|
|
2
2
|
import {
|
|
3
3
|
REGISTERED_CLI_COMMANDS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-UXSWQAVZ.js";
|
|
5
5
|
import "./chunk-6GO5VVAC.js";
|
|
6
6
|
import {
|
|
7
7
|
buildSetupState,
|
|
8
8
|
runPendingServeHandoff
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-J7ITGXCS.js";
|
|
10
10
|
import "./chunk-VJWDBFSL.js";
|
|
11
11
|
import "./chunk-4LNZTL7M.js";
|
|
12
12
|
import "./chunk-TSENU4GG.js";
|
|
@@ -40,7 +40,7 @@ function parseDemoTrustedProxies(values) {
|
|
|
40
40
|
async function demoCommand(options) {
|
|
41
41
|
const { host, port } = parseDemoListenOptions(options);
|
|
42
42
|
const trustProxy = parseDemoTrustedProxies(options.trustProxy);
|
|
43
|
-
const { createDemoServer } = await import("./demo-server-
|
|
43
|
+
const { createDemoServer } = await import("./demo-server-BLLSDILQ.js");
|
|
44
44
|
const app = await createDemoServer({ trustProxy });
|
|
45
45
|
let stopping = false;
|
|
46
46
|
const stop = () => {
|
|
@@ -18,7 +18,7 @@ import "./chunk-HGMYEDAQ.js";
|
|
|
18
18
|
import {
|
|
19
19
|
HISTORY_WINDOW_RUNS,
|
|
20
20
|
IntelligenceService
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-2I22IUA3.js";
|
|
22
22
|
import {
|
|
23
23
|
determineCitationState
|
|
24
24
|
} from "./chunk-JAYUWQAV.js";
|
|
@@ -26,7 +26,7 @@ import "./chunk-IBGZ6D6R.js";
|
|
|
26
26
|
import {
|
|
27
27
|
apiRoutes,
|
|
28
28
|
assessConversionTrackingIntegrity
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-W7DHXSXN.js";
|
|
30
30
|
import "./chunk-VDYXB6SV.js";
|
|
31
31
|
import "./chunk-GBWCEOZR.js";
|
|
32
32
|
import {
|
package/dist/index.js
CHANGED
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
createGoogleMarketingCredentialStore,
|
|
4
4
|
createGoogleMarketingRuntime,
|
|
5
5
|
createServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BKZ6PQAE.js";
|
|
7
7
|
import "./chunk-IK7QEKKD.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-ECZGTJIQ.js";
|
|
9
|
+
import "./chunk-RSPOFH66.js";
|
|
10
10
|
import "./chunk-ELCLGWUT.js";
|
|
11
11
|
import "./chunk-XEBKF4N5.js";
|
|
12
12
|
import "./chunk-4FWDITQG.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-RHOIR5QY.js";
|
|
14
14
|
import "./chunk-6F5ULQDY.js";
|
|
15
15
|
import "./chunk-TSENU4GG.js";
|
|
16
16
|
import "./chunk-3KK6FWDF.js";
|
|
@@ -28,10 +28,10 @@ import "./chunk-GXTCDNX7.js";
|
|
|
28
28
|
import "./chunk-MNLAIB67.js";
|
|
29
29
|
import "./chunk-AOJU5LKX.js";
|
|
30
30
|
import "./chunk-HGMYEDAQ.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-2I22IUA3.js";
|
|
32
32
|
import "./chunk-JAYUWQAV.js";
|
|
33
33
|
import "./chunk-IBGZ6D6R.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-W7DHXSXN.js";
|
|
35
35
|
import "./chunk-VDYXB6SV.js";
|
|
36
36
|
import "./chunk-GBWCEOZR.js";
|
|
37
37
|
import "./chunk-O26FQ7RI.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HISTORY_WINDOW_RUNS,
|
|
3
3
|
IntelligenceService
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2I22IUA3.js";
|
|
5
5
|
import "./chunk-JAYUWQAV.js";
|
|
6
6
|
import "./chunk-IBGZ6D6R.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-W7DHXSXN.js";
|
|
8
8
|
import "./chunk-VDYXB6SV.js";
|
|
9
9
|
import "./chunk-GBWCEOZR.js";
|
|
10
10
|
import "./chunk-O26FQ7RI.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
backfillAiReferralPaths,
|
|
3
3
|
backfillNormalizedPaths
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CR54BCUP.js";
|
|
5
5
|
import {
|
|
6
6
|
operatorHttpUrl
|
|
7
7
|
} from "./chunk-6GO5VVAC.js";
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
allowsKeylessFirstRunSetup,
|
|
10
10
|
createServer,
|
|
11
11
|
waitForServerRuntimeStartup
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BKZ6PQAE.js";
|
|
13
13
|
import "./chunk-IK7QEKKD.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-ECZGTJIQ.js";
|
|
15
|
+
import "./chunk-RSPOFH66.js";
|
|
16
16
|
import "./chunk-ELCLGWUT.js";
|
|
17
17
|
import "./chunk-XEBKF4N5.js";
|
|
18
18
|
import "./chunk-4FWDITQG.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-RHOIR5QY.js";
|
|
20
20
|
import {
|
|
21
21
|
trackFeatureCompleted
|
|
22
22
|
} from "./chunk-6F5ULQDY.js";
|
|
@@ -57,13 +57,13 @@ import {
|
|
|
57
57
|
CliError,
|
|
58
58
|
isMachineFormat
|
|
59
59
|
} from "./chunk-HGMYEDAQ.js";
|
|
60
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-2I22IUA3.js";
|
|
61
61
|
import "./chunk-JAYUWQAV.js";
|
|
62
62
|
import "./chunk-IBGZ6D6R.js";
|
|
63
63
|
import {
|
|
64
64
|
refreshSnapshotMentionIdentity,
|
|
65
65
|
snapshotsWithSentimentResults
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-W7DHXSXN.js";
|
|
67
67
|
import "./chunk-VDYXB6SV.js";
|
|
68
68
|
import "./chunk-GBWCEOZR.js";
|
|
69
69
|
import {
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
resolveAeroModel,
|
|
10
10
|
resolveConfiguredAgentProvider,
|
|
11
11
|
resolveSessionProviderAndModel
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-ECZGTJIQ.js";
|
|
13
|
+
import "./chunk-RSPOFH66.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveAeroSkillDir
|
|
16
16
|
} from "./chunk-MTW37GXF.js";
|
|
@@ -26,7 +26,7 @@ import "./chunk-MNLAIB67.js";
|
|
|
26
26
|
import "./chunk-AOJU5LKX.js";
|
|
27
27
|
import "./chunk-HGMYEDAQ.js";
|
|
28
28
|
import "./chunk-IBGZ6D6R.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-W7DHXSXN.js";
|
|
30
30
|
import "./chunk-VDYXB6SV.js";
|
|
31
31
|
import "./chunk-GBWCEOZR.js";
|
|
32
32
|
import "./chunk-O26FQ7RI.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
buildAllTools,
|
|
12
12
|
buildReadTools,
|
|
13
13
|
isAeroToolProfile
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RSPOFH66.js";
|
|
15
15
|
import "./chunk-TEQF4ZJA.js";
|
|
16
16
|
import "./chunk-2FJB3CSS.js";
|
|
17
17
|
import "./chunk-TN53B5AB.js";
|
|
@@ -19,7 +19,7 @@ import "./chunk-GXTCDNX7.js";
|
|
|
19
19
|
import "./chunk-MNLAIB67.js";
|
|
20
20
|
import "./chunk-AOJU5LKX.js";
|
|
21
21
|
import "./chunk-HGMYEDAQ.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-W7DHXSXN.js";
|
|
23
23
|
import "./chunk-VDYXB6SV.js";
|
|
24
24
|
import "./chunk-GBWCEOZR.js";
|
|
25
25
|
import "./chunk-O26FQ7RI.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canonry/canonry",
|
|
3
|
-
"version": "7.87.
|
|
3
|
+
"version": "7.87.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
|
"keywords": [
|