@canonry/canonry 7.99.0 → 7.100.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/README.md +18 -16
- package/assets/agent-workspace/AGENTS.md +13 -6
- package/assets/agent-workspace/skills/aero/SKILL.md +45 -26
- package/assets/agent-workspace/skills/aero/references/agent-operations.md +47 -12
- package/assets/agent-workspace/skills/aero/references/memory-patterns.md +1 -1
- package/assets/agent-workspace/skills/aero/references/orchestration.md +9 -9
- package/assets/agent-workspace/skills/aero/references/reporting.md +8 -4
- package/assets/agent-workspace/skills/aero/references/seo-analysis.md +2 -2
- package/assets/agent-workspace/skills/aero/references/site-health.md +23 -22
- package/assets/agent-workspace/skills/aero/soul.md +2 -2
- package/assets/agent-workspace/skills/canonry/SKILL.md +37 -7
- package/assets/agent-workspace/skills/canonry/references/aeo-analysis.md +14 -11
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +122 -53
- package/assets/assets/AccessControls-DzO5Y8v9.js +2 -0
- package/assets/assets/AgentSetupPage-DWWovaCw.js +36 -0
- package/assets/assets/AuditHistoryPanel-BG-n1i8c.js +1 -0
- package/assets/assets/BacklinksPage-D6wdOMXt.js +1 -0
- package/assets/assets/ChartPrimitives-CtKdkn64.js +3 -0
- package/assets/assets/Hint-3TTi0MgX.js +1 -0
- package/assets/assets/{HistoryPage-DNE76LNh.js → HistoryPage-B_ReWHbL.js} +1 -1
- package/assets/assets/InfoTooltip-D29JcNMW.js +1 -0
- package/assets/assets/MeasurementPropertyPage-zdyLL-kl.js +4 -0
- package/assets/assets/ProjectPage-KZNKXR4w.js +15 -0
- package/assets/assets/RunsPage-DxN0xXQh.js +1 -0
- package/assets/assets/ServerTrafficSection-CvISj5pf.js +40 -0
- package/assets/assets/SettingsPage-CpRpBlMV.js +1 -0
- package/assets/assets/ToneBadge-DcwPruHr.js +60 -0
- package/assets/assets/TrafficPage-zk6zMZyz.js +1 -0
- package/assets/assets/TrafficSourceDetailPage-DJtsI06Z.js +1 -0
- package/assets/assets/{account-context-j3asaevn.js → account-context-CoJVqEXZ.js} +1 -1
- package/assets/assets/{agent-trust-copy--U_DFYQE.js → agent-trust-copy-BIXDMtBm.js} +1 -1
- package/assets/assets/{card-CQAQ-c3g.js → card-Dwmc7Srx.js} +1 -1
- package/assets/assets/index-fh1T5JQY.css +1 -0
- package/assets/assets/index-mqc2mWUR.js +42 -0
- package/assets/assets/query-client-Tg1fZu4i.js +1 -0
- package/assets/assets/react-query-BqcEEfEO.js +1 -0
- package/assets/assets/{react-sigma_core.esm.min-BAq_-iP1.js → react-sigma_core.esm.min-D1q0DR_j.js} +3 -3
- package/assets/assets/{server-traffic-jKXLZyeC.js → server-traffic-Djnh_9f0.js} +1 -1
- package/assets/assets/service-BQjBdN4O.js +1 -0
- package/assets/assets/use-tooltip-position-BOzm-6Wy.js +1 -0
- package/assets/assets/vendor-lucide-iE5MEh2-.js +1 -0
- package/assets/assets/{vendor-markdown-BDQ1GKGP.js → vendor-markdown-BBGbNklj.js} +1 -1
- package/assets/assets/{vendor-radix-BGYlvS2l.js → vendor-radix-DKCt5Z_h.js} +1 -1
- package/assets/assets/{vendor-recharts-DhEHcK3G.js → vendor-recharts-D3MLFU3q.js} +1 -1
- package/assets/assets/{vendor-tanstack-BNuZ37rE.js → vendor-tanstack-B90HW50P.js} +2 -2
- package/assets/index.html +16 -15
- package/dist/{ads-EYDUTG4U.js → ads-FVPZ6R6Z.js} +3 -3
- package/dist/{agent-KTK2IDB3.js → agent-2LPU2E5I.js} +7 -7
- package/dist/{agent-ask-KPZOH6RY.js → agent-ask-5ODREK6D.js} +3 -3
- package/dist/{agent-conversations-BCWA4JJL.js → agent-conversations-SNLOOJEM.js} +3 -3
- package/dist/{agent-journeys-UBVLQ7JV.js → agent-journeys-XDXVL6PK.js} +3 -3
- package/dist/{agent-memory-24SYEGEX.js → agent-memory-NKAI2S3U.js} +3 -3
- package/dist/{agent-providers-E7EWFE5P.js → agent-providers-R5L7A72X.js} +3 -3
- package/dist/{agent-transcript-QGJ45NW5.js → agent-transcript-C5WAGYVC.js} +3 -3
- package/dist/{analytics-GHVG5CCT.js → analytics-EJVOLIQL.js} +33 -13
- package/dist/{apply-7YLB2DPH.js → apply-I6JOM247.js} +3 -3
- package/dist/{backfill-WNQ6O5WP.js → backfill-UVUR36IB.js} +10 -10
- package/dist/{backlinks-ZBZR4D27.js → backlinks-3VMVACWN.js} +3 -3
- package/dist/{bing-4VBSKPSX.js → bing-R5RL3PW2.js} +3 -3
- package/dist/{bootstrap-7ESCLP2G.js → bootstrap-GMMSDTNO.js} +12 -12
- package/dist/{cdp-WBL6FZTL.js → cdp-FJKUXHEY.js} +7 -7
- package/dist/{chunk-L53ZSQN5.js → chunk-2DV7F6XA.js} +91 -2
- package/dist/{chunk-MTW37GXF.js → chunk-2FWYWGIR.js} +2 -2
- package/dist/{chunk-DMPSA7ZS.js → chunk-56VVRWJM.js} +14 -5
- package/dist/{chunk-YACKJGY4.js → chunk-7BEGCVVB.js} +1 -1
- package/dist/{chunk-YMHN4UIT.js → chunk-7BH53MOB.js} +27 -2
- package/dist/{chunk-XPIMVXAI.js → chunk-7J2RIIYU.js} +1366 -1033
- package/dist/{chunk-UY6SKAKW.js → chunk-7SNMIXEQ.js} +2 -2
- package/dist/{chunk-C55P75G4.js → chunk-AMGM55CP.js} +2 -2
- package/dist/{chunk-ZN2TEBBX.js → chunk-AYKTVQF7.js} +13 -5
- package/dist/{chunk-74V5EPZH.js → chunk-BKDRT4VS.js} +7 -7
- package/dist/{chunk-O6RXNSNW.js → chunk-COHSL6KW.js} +1 -1
- package/dist/{chunk-3WDQ5GPO.js → chunk-DGDLLRS4.js} +1 -1
- package/dist/{chunk-VADVPARO.js → chunk-DHIB7EIA.js} +4 -4
- package/dist/{chunk-3MFYM2IS.js → chunk-EE3QTCLS.js} +18 -6
- package/dist/{chunk-DLOWRO5R.js → chunk-F46TBLXK.js} +204 -94
- package/dist/{chunk-P764TJKQ.js → chunk-FBO25TA3.js} +1 -1
- package/dist/{chunk-SY3CWJR4.js → chunk-FZ3MUTU3.js} +2 -2
- package/dist/{chunk-WA6APXI6.js → chunk-G6QN4VFS.js} +16 -10
- package/dist/{chunk-YBWATBX4.js → chunk-HBHLYWKE.js} +9 -6
- package/dist/{chunk-5ZOM5BJS.js → chunk-HL2LGRTI.js} +8 -6
- package/dist/chunk-J6536OL6.js +31 -0
- package/dist/{chunk-3MKJ4LP6.js → chunk-KVRX7YIH.js} +20 -10
- package/dist/{chunk-3VPBRGPN.js → chunk-LJO2BKWU.js} +1 -1
- package/dist/{chunk-YEUULP44.js → chunk-LNVFERI4.js} +1 -1
- package/dist/{chunk-WXAF7AMC.js → chunk-NQYJHKML.js} +39 -7
- package/dist/{chunk-UPHHKO3L.js → chunk-O5UFAXUI.js} +646 -588
- package/dist/{chunk-XQP3XHLJ.js → chunk-O6APBEJE.js} +2 -2
- package/dist/{chunk-47X24IJG.js → chunk-O7S7OHLE.js} +9393 -8394
- package/dist/{chunk-2RW5D55K.js → chunk-QS5DWJDI.js} +2 -2
- package/dist/{chunk-TVBOK4P2.js → chunk-RBG2QXQM.js} +4 -4
- package/dist/{chunk-LM7HTNUO.js → chunk-SWZXHHAG.js} +16 -8
- package/dist/{chunk-AY7SDX6G.js → chunk-T7UDY7W3.js} +26 -11
- package/dist/{chunk-AJD252SX.js → chunk-UGO2FO6V.js} +119 -55
- package/dist/{chunk-PT5HNVCM.js → chunk-VHULVUDL.js} +1 -1
- package/dist/{chunk-ZGBLNKFN.js → chunk-YGAQQSCL.js} +56303 -54933
- package/dist/{chunk-RRXLJPBN.js → chunk-YIIRS7V7.js} +98 -65
- package/dist/{chunk-VOVT2H25.js → chunk-YU2WX7RD.js} +3 -3
- package/dist/{citations-N5MGNKJN.js → citations-LOEQRDUB.js} +21 -10
- package/dist/{cli-catalog-FFU7PHW7.js → cli-catalog-5RXNUFBS.js} +3 -3
- package/dist/{cli-commands-AMIDEUO2.js → cli-commands-HE2BQY3Y.js} +7 -7
- package/dist/cli.js +22 -17
- package/dist/{competitor-GRA2GMZR.js → competitor-PIX2BHJW.js} +3 -3
- package/dist/{content-YVAPTIV4.js → content-PJGW4WZF.js} +3 -3
- package/dist/{dashboard-33ACBR5A.js → dashboard-7OKBD4MG.js} +6 -6
- package/dist/{demo-AGXWBMR6.js → demo-SCOFAWFM.js} +1 -1
- package/dist/{demo-server-W4YAC7GT.js → demo-server-SJPI6RSL.js} +38 -36
- package/dist/{discover-BH33TO4Z.js → discover-I3WL2QUN.js} +10 -8
- package/dist/{discover-eval-3CEA6DEE.js → discover-eval-YRECOIP5.js} +3 -3
- package/dist/{doctor-ZAYTD5PC.js → doctor-F4J6LILX.js} +3 -3
- package/dist/{evidence-247GL7UK.js → evidence-MYQTCY4V.js} +25 -10
- package/dist/{export-cmd-HLKWFI5Q.js → export-cmd-3SUFOJM6.js} +3 -3
- package/dist/{ga-BMING57Z.js → ga-VA6FYK4L.js} +3 -3
- package/dist/{gbp-MIB5CXSD.js → gbp-DI6ZVFHL.js} +3 -3
- package/dist/{google-5JP6RYAW.js → google-UVKWJCD2.js} +4 -4
- package/dist/{google-marketing-25OBMPS6.js → google-marketing-S63HN733.js} +1 -1
- package/dist/{health-cmd-D5XSEL7H.js → health-cmd-DOZXGI46.js} +16 -9
- package/dist/{history-6MDRFPQ3.js → history-UTJTUDYK.js} +3 -3
- package/dist/index.d.ts +211 -19
- package/dist/index.js +26 -26
- package/dist/{init-RDR75N2Y.js → init-IVJSS33J.js} +19 -19
- package/dist/{insights-QZVMBGVM.js → insights-UHCVCZ76.js} +3 -3
- package/dist/intelligence-service-3EENJ5DS.js +16 -0
- package/dist/{journeys-TABTZDFZ.js → journeys-XIT7WDM2.js} +3 -3
- package/dist/{keys-SL5YF7NQ.js → keys-MQKW4JUI.js} +3 -3
- package/dist/{keyword-OCDEXRSW.js → keyword-EASMKYZ3.js} +3 -3
- package/dist/{logs-CSC7O364.js → logs-ZHZ6XM55.js} +3 -3
- package/dist/{mcp-P725OHAJ.js → mcp-ECVT2YGU.js} +4 -4
- package/dist/mcp.js +10 -10
- package/dist/{measurement-plan-Z42GBJBO.js → measurement-plan-7FQKUOMR.js} +5 -5
- package/dist/{notify-E5JBES4I.js → notify-TC7ARC6W.js} +3 -3
- package/dist/{organic-evidence-CUA3T64O.js → organic-evidence-M34MWJXE.js} +7 -4
- package/dist/overview-P6BRMXJN.js +314 -0
- package/dist/{project-2ULM64TV.js → project-WZ2YXFPJ.js} +4 -4
- package/dist/project-setup-WV6SPGIV.js +176 -0
- package/dist/{query-Y47IEFKJ.js → query-WAFJKDHG.js} +3 -3
- package/dist/{research-DPFQZ3TE.js → research-B5ZPQX7R.js} +3 -3
- package/dist/{results-export-KBHOBQAH.js → results-export-NIZV6R3K.js} +3 -3
- package/dist/{run-4CYHVIIU.js → run-ICLPZ7QT.js} +7 -4
- package/dist/{schedule-GY4P3RON.js → schedule-4C44LQ7R.js} +22 -3
- package/dist/{search-AGVNZMJQ.js → search-UJM7KII3.js} +11 -4
- package/dist/{serve-5LFKIXNL.js → serve-A6UIO6WP.js} +30 -29
- package/dist/{session-YAYEDM3P.js → session-RTE22GQT.js} +14 -14
- package/dist/settings-BOF5Z7ML.js +211 -0
- package/dist/{sitemaps-APTY7U6H.js → sitemaps-BM7S76H2.js} +4 -4
- package/dist/{skills-4BUONEIZ.js → skills-X5SR4HRO.js} +2 -2
- package/dist/{snapshot-BXCWSF5P.js → snapshot-KLKE37VY.js} +4 -4
- package/dist/{src-R7XZUX3D.js → src-EKLG5A6O.js} +4 -2
- package/dist/{status-SB6HPBYJ.js → status-OYG57DWU.js} +6 -5
- package/dist/{technical-aeo-G7UEMWZD.js → technical-aeo-KWVWOOTI.js} +23 -23
- package/dist/{telemetry-H4S4Y7YV.js → telemetry-KGE6FF3Y.js} +4 -4
- package/dist/{tools-46XX6I4R.js → tools-4R33AZQ3.js} +11 -11
- package/dist/{traffic-I6WRJN3W.js → traffic-SVMOKCSS.js} +7 -11
- package/dist/{trends-AQK3GLWF.js → trends-RGAKGX3L.js} +4 -4
- package/dist/{users-SNTVY6OB.js → users-47WKA2TO.js} +3 -3
- package/dist/{visibility-stats-44QAD2XS.js → visibility-stats-DTGQJPNV.js} +9 -5
- package/dist/{wordpress-N7LTOW46.js → wordpress-2CNUX4UE.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/AgentSetupPage-yOqSVJ-e.js +0 -18
- package/assets/assets/AuditHistoryPanel-CiTzFgbw.js +0 -1
- package/assets/assets/BacklinksPage-DmRdQsFQ.js +0 -1
- package/assets/assets/ChartPrimitives-CvK6CQrj.js +0 -1
- package/assets/assets/Hint-c4a4W87X.js +0 -1
- package/assets/assets/InfoTooltip-Drnst4ML.js +0 -1
- package/assets/assets/MeasurementPropertyPage-Cx64Fnmz.js +0 -4
- package/assets/assets/ProjectPage-DNfgC82V.js +0 -11
- package/assets/assets/RunsPage-BmPKBKKr.js +0 -1
- package/assets/assets/SettingsPage-Dl0TNeVK.js +0 -1
- package/assets/assets/SiteHealthSection-DxQPaR--.js +0 -2
- package/assets/assets/ToneBadge-BhjTBHi-.js +0 -60
- package/assets/assets/TrafficPage-CJp0pS01.js +0 -40
- package/assets/assets/TrafficSourceDetailPage-DKE8tSw5.js +0 -1
- package/assets/assets/format-helpers-BPugHeIX.js +0 -3
- package/assets/assets/index-BAxHW-1G.css +0 -1
- package/assets/assets/index-xlDLvgRC.js +0 -60
- package/assets/assets/query-client-CwZpfiiD.js +0 -1
- package/assets/assets/react-query-CBpNFR4t.js +0 -1
- package/assets/assets/service-DFumlmXt.js +0 -1
- package/assets/assets/vendor-lucide-DuOM7wVi.js +0 -1
- package/dist/intelligence-service-KQE7RO5I.js +0 -16
- package/dist/overview-UKQ52I72.js +0 -213
- package/dist/settings-HUKMWRHY.js +0 -119
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
templateLinkRatio,
|
|
21
21
|
templateLinkUbiquityAvailable,
|
|
22
22
|
validationError
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-O7S7OHLE.js";
|
|
24
24
|
import {
|
|
25
25
|
__export
|
|
26
26
|
} from "./chunk-MLKGABMK.js";
|
|
@@ -146,6 +146,7 @@ __export(schema_exports, {
|
|
|
146
146
|
projects: () => projects,
|
|
147
147
|
providerBatchRequests: () => providerBatchRequests,
|
|
148
148
|
providerBatches: () => providerBatches,
|
|
149
|
+
providerConnectionTests: () => providerConnectionTests,
|
|
149
150
|
queries: () => queries,
|
|
150
151
|
queryBasketVersions: () => queryBasketVersions,
|
|
151
152
|
querySnapshots: () => querySnapshots,
|
|
@@ -574,6 +575,20 @@ var runs = sqliteTable2("runs", {
|
|
|
574
575
|
* (`providerAccountAdmission`). Null when it skips none.
|
|
575
576
|
*/
|
|
576
577
|
skippedProviders: text2("skipped_providers", { mode: "json" }).$type(),
|
|
578
|
+
/**
|
|
579
|
+
* Each engine's failures so far, written by a running sweep as they happen
|
|
580
|
+
* so a reader can see them before the run ends. Only meaningful while the
|
|
581
|
+
* run is active: once it finishes, `error` carries the failures. Null when
|
|
582
|
+
* no engine has failed.
|
|
583
|
+
*/
|
|
584
|
+
providerFailures: text2("provider_failures", { mode: "json" }).$type(),
|
|
585
|
+
/**
|
|
586
|
+
* Answers an answer-visibility sweep set out to collect, written when it
|
|
587
|
+
* starts from its actual work list: every query times every engine it calls,
|
|
588
|
+
* or a published plan's slots for those engines. Null until then, on runs
|
|
589
|
+
* from before it was recorded, and on other run kinds.
|
|
590
|
+
*/
|
|
591
|
+
plannedAnswers: integer2("planned_answers"),
|
|
577
592
|
/**
|
|
578
593
|
* What a sync run did and why it stopped (counts and stop reason), written
|
|
579
594
|
* when the run finishes. Only syncs that report one set it (a Cloudflare
|
|
@@ -641,7 +656,10 @@ var querySnapshots = sqliteTable2("query_snapshots", {
|
|
|
641
656
|
// rows and providers that disclose no model identity (CDP scrapes the web
|
|
642
657
|
// UI) legitimately have none.
|
|
643
658
|
servedModel: text2("served_model"),
|
|
644
|
-
|
|
659
|
+
// `cited`, `not-cited`, or `not-measured` (the engine returned no sources).
|
|
660
|
+
// Rows written before `not-measured` existed hold `not-cited` for those
|
|
661
|
+
// answers; read every row through `readCitationState` (contracts).
|
|
662
|
+
citationState: text2("citation_state").$type().notNull(),
|
|
645
663
|
answerMentioned: integer2("answer_mentioned", { mode: "boolean" }),
|
|
646
664
|
// Sentiment's identity verdict on a Simple answer, kept by
|
|
647
665
|
// `refreshSnapshotMentionIdentity` (api-routes) when a verdict is stored:
|
|
@@ -864,6 +882,15 @@ var dataRepairCompletions = sqliteTable2("data_repair_completions", {
|
|
|
864
882
|
version: integer2("version").notNull(),
|
|
865
883
|
completedAt: text2("completed_at").notNull()
|
|
866
884
|
});
|
|
885
|
+
var providerConnectionTests = sqliteTable2("provider_connection_tests", {
|
|
886
|
+
provider: text2("provider").primaryKey().notNull(),
|
|
887
|
+
fingerprint: text2("fingerprint").notNull(),
|
|
888
|
+
status: text2("status").notNull(),
|
|
889
|
+
message: text2("message").notNull(),
|
|
890
|
+
model: text2("model"),
|
|
891
|
+
checkedAt: text2("checked_at").notNull(),
|
|
892
|
+
durationMs: integer2("duration_ms").notNull()
|
|
893
|
+
});
|
|
867
894
|
var apiKeys = sqliteTable2("api_keys", {
|
|
868
895
|
id: text2("id").primaryKey(),
|
|
869
896
|
name: text2("name").notNull(),
|
|
@@ -2356,6 +2383,9 @@ var healthSnapshots = sqliteTable2("health_snapshots", {
|
|
|
2356
2383
|
id: text2("id").primaryKey(),
|
|
2357
2384
|
projectId: text2("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
|
|
2358
2385
|
runId: text2("run_id").references(() => runs.id, { onDelete: "cascade" }),
|
|
2386
|
+
// Over the pairs whose sources were checked. NOT NULL, so a run none of
|
|
2387
|
+
// whose pairs carried sources stores 0; readers return null for it, since
|
|
2388
|
+
// providerBreakdown's `citationNotMeasured` then covers every pair.
|
|
2359
2389
|
overallCitedRate: text2("overall_cited_rate").notNull(),
|
|
2360
2390
|
// Answer-text mention rate, independent of citation. Nullable because the
|
|
2361
2391
|
// column is added by migration v80 via ALTER TABLE ADD COLUMN — rows
|
|
@@ -2367,6 +2397,9 @@ var healthSnapshots = sqliteTable2("health_snapshots", {
|
|
|
2367
2397
|
// Count of pairs MENTIONED in the answer text. Nullable for the same
|
|
2368
2398
|
// legacy-row reason as overall_mention_rate; coalesced NULL→0 on read.
|
|
2369
2399
|
mentionedPairs: integer2("mentioned_pairs"),
|
|
2400
|
+
// `citedRate` is over the provider's pairs whose sources were checked, null
|
|
2401
|
+
// when none were; `citationNotMeasured` counts the rest. Rows written before
|
|
2402
|
+
// it existed have no key (read 0) and a rate computed over every pair.
|
|
2370
2403
|
providerBreakdown: text2("provider_breakdown", { mode: "json" }).$type().notNull().default({}),
|
|
2371
2404
|
createdAt: text2("created_at").notNull()
|
|
2372
2405
|
}, (table) => [
|
|
@@ -9101,6 +9134,61 @@ var MIGRATION_VERSIONS = [
|
|
|
9101
9134
|
notified_at TEXT
|
|
9102
9135
|
)`
|
|
9103
9136
|
]
|
|
9137
|
+
},
|
|
9138
|
+
{
|
|
9139
|
+
version: 215,
|
|
9140
|
+
name: "provider-connection-tests",
|
|
9141
|
+
// One row per connection: the latest test result and a keyed hash of the
|
|
9142
|
+
// registration it checked. No status CHECK, so a status a later release
|
|
9143
|
+
// adds needs no table rebuild; readers validate rows against the contract.
|
|
9144
|
+
statements: [
|
|
9145
|
+
`CREATE TABLE IF NOT EXISTS provider_connection_tests (
|
|
9146
|
+
provider TEXT PRIMARY KEY NOT NULL,
|
|
9147
|
+
fingerprint TEXT NOT NULL,
|
|
9148
|
+
status TEXT NOT NULL,
|
|
9149
|
+
message TEXT NOT NULL,
|
|
9150
|
+
model TEXT,
|
|
9151
|
+
checked_at TEXT NOT NULL,
|
|
9152
|
+
duration_ms INTEGER NOT NULL
|
|
9153
|
+
)`
|
|
9154
|
+
]
|
|
9155
|
+
},
|
|
9156
|
+
{
|
|
9157
|
+
version: 216,
|
|
9158
|
+
name: "run-provider-failures",
|
|
9159
|
+
// A running sweep's failures so far, so a reader sees them before the run
|
|
9160
|
+
// ends. Nullable: existing runs have none to report.
|
|
9161
|
+
statements: [
|
|
9162
|
+
`ALTER TABLE runs ADD COLUMN provider_failures TEXT`
|
|
9163
|
+
]
|
|
9164
|
+
},
|
|
9165
|
+
{
|
|
9166
|
+
version: 217,
|
|
9167
|
+
name: "run-planned-answers",
|
|
9168
|
+
// The answers a sweep set out to collect, written when it starts, so a
|
|
9169
|
+
// reader can show progress without remembering the launch. Nullable:
|
|
9170
|
+
// existing runs never recorded one.
|
|
9171
|
+
statements: [
|
|
9172
|
+
`ALTER TABLE runs ADD COLUMN planned_answers INTEGER`
|
|
9173
|
+
]
|
|
9174
|
+
},
|
|
9175
|
+
{
|
|
9176
|
+
version: 218,
|
|
9177
|
+
name: "site-health-notify-state-repair",
|
|
9178
|
+
// v214 again. Before this release merged the one that shipped v214, its
|
|
9179
|
+
// provider-connection-tests, run-provider-failures and run-planned-answers
|
|
9180
|
+
// migrations were numbered 214-216 (now 215-217). A database that applied
|
|
9181
|
+
// them under those numbers skipped v214, since only versions above the
|
|
9182
|
+
// highest applied one run. Everywhere else the table exists: a no-op.
|
|
9183
|
+
statements: [
|
|
9184
|
+
`CREATE TABLE IF NOT EXISTS site_health_notify_state (
|
|
9185
|
+
project_id TEXT PRIMARY KEY REFERENCES projects(id) ON DELETE CASCADE,
|
|
9186
|
+
reported_keys TEXT NOT NULL DEFAULT '[]',
|
|
9187
|
+
run_id TEXT NOT NULL,
|
|
9188
|
+
updated_at TEXT NOT NULL,
|
|
9189
|
+
notified_at TEXT
|
|
9190
|
+
)`
|
|
9191
|
+
]
|
|
9104
9192
|
}
|
|
9105
9193
|
];
|
|
9106
9194
|
var AERO_LEDGER_REBUILDS = [
|
|
@@ -10539,6 +10627,7 @@ export {
|
|
|
10539
10627
|
runtimeLogs,
|
|
10540
10628
|
runtimeLogMetadata,
|
|
10541
10629
|
dataRepairCompletions,
|
|
10630
|
+
providerConnectionTests,
|
|
10542
10631
|
apiKeys,
|
|
10543
10632
|
users,
|
|
10544
10633
|
userSessions,
|
|
@@ -62,8 +62,8 @@ var CANONRY_MCP_TOOLKITS = [
|
|
|
62
62
|
{
|
|
63
63
|
name: "monitoring",
|
|
64
64
|
title: "Measurement, runs, insights, health",
|
|
65
|
-
description: "Inspect portfolio and Property measurement, question results, experimental branded and non-brand sentiment and evidence, content opportunities and addressed-target records, run history, intelligence insights, health timelines, and bounded
|
|
66
|
-
whenToLoad: "Load when finding weak Properties, reviewing answers, sentiment and competitors, marking or restoring addressed content targets, checking data quality, tying
|
|
65
|
+
description: "Inspect portfolio and Property measurement, question results, experimental branded and non-brand sentiment and evidence, content opportunities and addressed-target records, run history, intelligence insights, health timelines, and bounded Agent Readiness reads (score, overview, issues, page audit evidence, focused subgraphs, paths, and scan changes).",
|
|
66
|
+
whenToLoad: "Load when finding weak Properties, reviewing answers, sentiment and competitors, marking or restoring addressed content targets, checking data quality, tying an Agent Readiness page score to concrete findings, investigating site architecture, comparing scans, or diagnosing regressions."
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
name: "setup",
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runWithUsageTags
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
4
|
import {
|
|
5
5
|
CanonryMcpToolNames,
|
|
6
|
+
DEPRECATED_MCP_TOOL_ALIAS_NAMES,
|
|
6
7
|
canonryMcpTools
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-F46TBLXK.js";
|
|
8
9
|
import {
|
|
9
10
|
CliError
|
|
10
11
|
} from "./chunk-HGMYEDAQ.js";
|
|
11
12
|
import {
|
|
12
13
|
buildOpenApiDocument
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YGAQQSCL.js";
|
|
14
15
|
import {
|
|
15
16
|
DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
|
|
16
17
|
MeasurementPortfolioLists,
|
|
@@ -23,7 +24,7 @@ import {
|
|
|
23
24
|
seoDatasetWithoutVendor,
|
|
24
25
|
seoProviderSchema,
|
|
25
26
|
truncateUtf16
|
|
26
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-O7S7OHLE.js";
|
|
27
28
|
|
|
28
29
|
// src/agent/tools.ts
|
|
29
30
|
import { Type as Type2 } from "@earendil-works/pi-ai";
|
|
@@ -777,6 +778,10 @@ var AERO_EXCLUDED_MCP_TOOLS = /* @__PURE__ */ new Set([
|
|
|
777
778
|
"canonry_seo_run_cancel",
|
|
778
779
|
// Reloading install-wide credentials remains an explicit operator action.
|
|
779
780
|
CanonryMcpToolNames.canonry_providers_reload,
|
|
781
|
+
CanonryMcpToolNames.canonry_provider_disconnect,
|
|
782
|
+
CanonryMcpToolNames.canonry_provider_settings_update,
|
|
783
|
+
// A connection test spends on the operator's provider account with the saved key.
|
|
784
|
+
CanonryMcpToolNames.canonry_provider_test,
|
|
780
785
|
// Aero reads stored sentiment. Configuration and backfill submission can
|
|
781
786
|
// start paid classifier work and remain operator actions.
|
|
782
787
|
"canonry_sentiment_configure",
|
|
@@ -791,7 +796,11 @@ var AERO_EXCLUDED_MCP_TOOLS = /* @__PURE__ */ new Set([
|
|
|
791
796
|
CanonryMcpToolNames.canonry_agent_conversations_new,
|
|
792
797
|
CanonryMcpToolNames.canonry_agent_conversations_resume,
|
|
793
798
|
CanonryMcpToolNames.canonry_agent_conversations_delete,
|
|
794
|
-
CanonryMcpToolNames.canonry_results_clear
|
|
799
|
+
CanonryMcpToolNames.canonry_results_clear,
|
|
800
|
+
// Deprecated names (canonry_technical_aeo_*, canonry_site_health_*) answer
|
|
801
|
+
// exactly like their canonry_agent_readiness_* tools. They exist only for
|
|
802
|
+
// existing external clients; Aero gets the canonical tools once.
|
|
803
|
+
...DEPRECATED_MCP_TOOL_ALIAS_NAMES
|
|
795
804
|
]);
|
|
796
805
|
var AERO_MANAGED_SWEEP_MCP_TOOLS = /* @__PURE__ */ new Set([
|
|
797
806
|
CanonryMcpToolNames.canonry_run_trigger,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
measurementDraftUpsertGroupRequestSchema,
|
|
24
24
|
measurementDraftUpsertMarketRequestSchema,
|
|
25
25
|
measurementDraftUpsertTargetRequestSchema
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-O7S7OHLE.js";
|
|
27
27
|
|
|
28
28
|
// src/measurement-draft-actions.ts
|
|
29
29
|
import { z } from "zod";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
AppError,
|
|
6
6
|
parseWindowIn,
|
|
7
7
|
resolveDateRange
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-O7S7OHLE.js";
|
|
9
9
|
|
|
10
10
|
// src/cli-access.ts
|
|
11
11
|
var CLI_ACCESS_BY_ID = Object.freeze({
|
|
@@ -57,6 +57,23 @@ var CLI_ACCESS_BY_ID = Object.freeze({
|
|
|
57
57
|
"agent.providers": "stored",
|
|
58
58
|
"agent.reset": "write",
|
|
59
59
|
"agent.transcript": "stored",
|
|
60
|
+
"agent-readiness.changes": "stored",
|
|
61
|
+
"agent-readiness.dead-links": "stored",
|
|
62
|
+
"agent-readiness.issue-pages": "stored",
|
|
63
|
+
"agent-readiness.issues": "stored",
|
|
64
|
+
"agent-readiness.links": "stored",
|
|
65
|
+
"agent-readiness.neighbors": "stored",
|
|
66
|
+
"agent-readiness.overview": "stored",
|
|
67
|
+
"agent-readiness.page-audit": "stored",
|
|
68
|
+
"agent-readiness.page-scores": "stored",
|
|
69
|
+
"agent-readiness.pages": "stored",
|
|
70
|
+
"agent-readiness.path": "stored",
|
|
71
|
+
"agent-readiness.progress": "stored",
|
|
72
|
+
"agent-readiness.run": "write",
|
|
73
|
+
"agent-readiness.score": "stored",
|
|
74
|
+
"agent-readiness.structure": "stored",
|
|
75
|
+
"agent-readiness.subgraph": "stored",
|
|
76
|
+
"agent-readiness.trend": "stored",
|
|
60
77
|
"analytics": "stored",
|
|
61
78
|
"apply": "write",
|
|
62
79
|
"backfill": "write",
|
|
@@ -294,6 +311,7 @@ var CLI_ACCESS_BY_ID = Object.freeze({
|
|
|
294
311
|
"project.locations": "stored",
|
|
295
312
|
"project.remove-location": "write",
|
|
296
313
|
"project.set-default-location": "write",
|
|
314
|
+
"project.setup": "stored",
|
|
297
315
|
"project.show": "stored",
|
|
298
316
|
"project.update": "write",
|
|
299
317
|
"query": "write",
|
|
@@ -315,6 +333,7 @@ var CLI_ACCESS_BY_ID = Object.freeze({
|
|
|
315
333
|
"run.completeness": "stored",
|
|
316
334
|
"run.fill": "write",
|
|
317
335
|
"run.list": "stored",
|
|
336
|
+
"run.preview": "stored",
|
|
318
337
|
"run.show": "stored",
|
|
319
338
|
"run.trigger": "write",
|
|
320
339
|
"runs": "stored",
|
|
@@ -322,10 +341,12 @@ var CLI_ACCESS_BY_ID = Object.freeze({
|
|
|
322
341
|
"schedule.disable": "write",
|
|
323
342
|
"schedule.enable": "write",
|
|
324
343
|
"schedule.list": "stored",
|
|
344
|
+
"schedule.preview": "stored",
|
|
325
345
|
"schedule.remove": "write",
|
|
326
346
|
"schedule.set": "write",
|
|
327
347
|
"schedule.show": "stored",
|
|
328
348
|
"search": "stored",
|
|
349
|
+
// Deprecated names keep the access of the agent-readiness command they run.
|
|
329
350
|
"site-health.overview": "stored",
|
|
330
351
|
"site-health.issues": "stored",
|
|
331
352
|
"site-health.issue-pages": "stored",
|
|
@@ -370,6 +391,9 @@ var CLI_ACCESS_BY_ID = Object.freeze({
|
|
|
370
391
|
"settings": "stored",
|
|
371
392
|
"settings.google": "write",
|
|
372
393
|
"settings.provider": "write",
|
|
394
|
+
"settings.provider.test": "live",
|
|
395
|
+
"settings.provider-info": "stored",
|
|
396
|
+
"settings.disconnect-provider": "write",
|
|
373
397
|
"settings.reload-providers": "write",
|
|
374
398
|
"skills": "write",
|
|
375
399
|
"skills.install": "write",
|
|
@@ -383,7 +407,8 @@ var CLI_ACCESS_BY_ID = Object.freeze({
|
|
|
383
407
|
"technical-aeo.changes": "stored",
|
|
384
408
|
"technical-aeo.issues": "stored",
|
|
385
409
|
"technical-aeo.issue-pages": "stored",
|
|
386
|
-
|
|
410
|
+
// A stored read of the crawl summary, like `agent-readiness overview`.
|
|
411
|
+
"technical-aeo.crawl": "stored",
|
|
387
412
|
"technical-aeo.crawl-pages": "stored",
|
|
388
413
|
"technical-aeo.dead-links": "stored",
|
|
389
414
|
"technical-aeo.links": "stored",
|