@ainyc/canonry 2.2.1 → 2.3.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-setup/SKILL.md +7 -7
- package/assets/assets/{index-J73csS93.js → index-C_pxQt0X.js} +139 -139
- package/assets/index.html +1 -1
- package/dist/{chunk-TAII35VC.js → chunk-CW6CAPBQ.js} +114 -1
- package/dist/{chunk-2QNWFP6R.js → chunk-JXOUZ6JH.js} +1601 -339
- package/dist/cli.js +576 -249
- package/dist/index.js +2 -2
- package/dist/{intelligence-service-C5LAYDFM.js → intelligence-service-232P7625.js} +1 -1
- package/package.json +6 -5
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-
|
|
15
|
+
<script type="module" crossorigin src="./assets/index-C_pxQt0X.js"></script>
|
|
16
16
|
<link rel="stylesheet" crossorigin href="./assets/index-yF1fs-OW.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
@@ -20,10 +20,13 @@ __export(schema_exports, {
|
|
|
20
20
|
agentSessions: () => agentSessions,
|
|
21
21
|
apiKeys: () => apiKeys,
|
|
22
22
|
auditLog: () => auditLog,
|
|
23
|
+
backlinkDomains: () => backlinkDomains,
|
|
24
|
+
backlinkSummaries: () => backlinkSummaries,
|
|
23
25
|
bingConnections: () => bingConnections,
|
|
24
26
|
bingCoverageSnapshots: () => bingCoverageSnapshots,
|
|
25
27
|
bingKeywordStats: () => bingKeywordStats,
|
|
26
28
|
bingUrlInspections: () => bingUrlInspections,
|
|
29
|
+
ccReleaseSyncs: () => ccReleaseSyncs,
|
|
27
30
|
competitors: () => competitors,
|
|
28
31
|
gaAiReferrals: () => gaAiReferrals,
|
|
29
32
|
gaConnections: () => gaConnections,
|
|
@@ -426,6 +429,60 @@ var agentSessions = sqliteTable("agent_sessions", {
|
|
|
426
429
|
index("idx_agent_sessions_project").on(table.projectId),
|
|
427
430
|
index("idx_agent_sessions_updated").on(table.updatedAt)
|
|
428
431
|
]);
|
|
432
|
+
var ccReleaseSyncs = sqliteTable("cc_release_syncs", {
|
|
433
|
+
id: text("id").primaryKey(),
|
|
434
|
+
release: text("release").notNull().unique(),
|
|
435
|
+
status: text("status").notNull(),
|
|
436
|
+
phaseDetail: text("phase_detail"),
|
|
437
|
+
vertexPath: text("vertex_path"),
|
|
438
|
+
edgesPath: text("edges_path"),
|
|
439
|
+
vertexSha256: text("vertex_sha256"),
|
|
440
|
+
edgesSha256: text("edges_sha256"),
|
|
441
|
+
vertexBytes: integer("vertex_bytes"),
|
|
442
|
+
edgesBytes: integer("edges_bytes"),
|
|
443
|
+
projectsProcessed: integer("projects_processed"),
|
|
444
|
+
domainsDiscovered: integer("domains_discovered"),
|
|
445
|
+
downloadStartedAt: text("download_started_at"),
|
|
446
|
+
downloadFinishedAt: text("download_finished_at"),
|
|
447
|
+
queryStartedAt: text("query_started_at"),
|
|
448
|
+
queryFinishedAt: text("query_finished_at"),
|
|
449
|
+
error: text("error"),
|
|
450
|
+
createdAt: text("created_at").notNull(),
|
|
451
|
+
updatedAt: text("updated_at").notNull()
|
|
452
|
+
}, (table) => [
|
|
453
|
+
index("idx_cc_release_syncs_status").on(table.status)
|
|
454
|
+
]);
|
|
455
|
+
var backlinkDomains = sqliteTable("backlink_domains", {
|
|
456
|
+
id: text("id").primaryKey(),
|
|
457
|
+
projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
|
|
458
|
+
releaseSyncId: text("release_sync_id").notNull().references(() => ccReleaseSyncs.id, { onDelete: "cascade" }),
|
|
459
|
+
release: text("release").notNull(),
|
|
460
|
+
targetDomain: text("target_domain").notNull(),
|
|
461
|
+
linkingDomain: text("linking_domain").notNull(),
|
|
462
|
+
numHosts: integer("num_hosts").notNull(),
|
|
463
|
+
createdAt: text("created_at").notNull()
|
|
464
|
+
}, (table) => [
|
|
465
|
+
index("idx_backlink_domains_project").on(table.projectId),
|
|
466
|
+
index("idx_backlink_domains_release_sync").on(table.releaseSyncId),
|
|
467
|
+
index("idx_backlink_domains_project_release").on(table.projectId, table.release),
|
|
468
|
+
index("idx_backlink_domains_hosts").on(table.numHosts),
|
|
469
|
+
uniqueIndex("idx_backlink_domains_unique").on(table.projectId, table.release, table.linkingDomain)
|
|
470
|
+
]);
|
|
471
|
+
var backlinkSummaries = sqliteTable("backlink_summaries", {
|
|
472
|
+
id: text("id").primaryKey(),
|
|
473
|
+
projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
|
|
474
|
+
releaseSyncId: text("release_sync_id").notNull().references(() => ccReleaseSyncs.id, { onDelete: "cascade" }),
|
|
475
|
+
release: text("release").notNull(),
|
|
476
|
+
targetDomain: text("target_domain").notNull(),
|
|
477
|
+
totalLinkingDomains: integer("total_linking_domains").notNull(),
|
|
478
|
+
totalHosts: integer("total_hosts").notNull(),
|
|
479
|
+
top10HostsShare: text("top_10_hosts_share").notNull(),
|
|
480
|
+
queriedAt: text("queried_at").notNull(),
|
|
481
|
+
createdAt: text("created_at").notNull()
|
|
482
|
+
}, (table) => [
|
|
483
|
+
uniqueIndex("idx_backlink_summaries_project_release").on(table.projectId, table.release),
|
|
484
|
+
index("idx_backlink_summaries_project").on(table.projectId)
|
|
485
|
+
]);
|
|
429
486
|
var agentMemory = sqliteTable("agent_memory", {
|
|
430
487
|
id: text("id").primaryKey(),
|
|
431
488
|
projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
|
|
@@ -921,7 +978,60 @@ var MIGRATIONS = [
|
|
|
921
978
|
`CREATE UNIQUE INDEX IF NOT EXISTS uniq_agent_memory_project_key
|
|
922
979
|
ON agent_memory(project_id, key)`,
|
|
923
980
|
`CREATE INDEX IF NOT EXISTS idx_agent_memory_project_updated
|
|
924
|
-
ON agent_memory(project_id, updated_at)
|
|
981
|
+
ON agent_memory(project_id, updated_at)`,
|
|
982
|
+
// v41: Common Crawl backlinks — workspace-level release syncs plus per-project
|
|
983
|
+
// backlink_domains and backlink_summaries populated in one DuckDB pass.
|
|
984
|
+
`CREATE TABLE IF NOT EXISTS cc_release_syncs (
|
|
985
|
+
id TEXT PRIMARY KEY,
|
|
986
|
+
release TEXT NOT NULL UNIQUE,
|
|
987
|
+
status TEXT NOT NULL,
|
|
988
|
+
phase_detail TEXT,
|
|
989
|
+
vertex_path TEXT,
|
|
990
|
+
edges_path TEXT,
|
|
991
|
+
vertex_sha256 TEXT,
|
|
992
|
+
edges_sha256 TEXT,
|
|
993
|
+
vertex_bytes INTEGER,
|
|
994
|
+
edges_bytes INTEGER,
|
|
995
|
+
projects_processed INTEGER,
|
|
996
|
+
domains_discovered INTEGER,
|
|
997
|
+
download_started_at TEXT,
|
|
998
|
+
download_finished_at TEXT,
|
|
999
|
+
query_started_at TEXT,
|
|
1000
|
+
query_finished_at TEXT,
|
|
1001
|
+
error TEXT,
|
|
1002
|
+
created_at TEXT NOT NULL,
|
|
1003
|
+
updated_at TEXT NOT NULL
|
|
1004
|
+
)`,
|
|
1005
|
+
`CREATE INDEX IF NOT EXISTS idx_cc_release_syncs_status ON cc_release_syncs(status)`,
|
|
1006
|
+
`CREATE TABLE IF NOT EXISTS backlink_domains (
|
|
1007
|
+
id TEXT PRIMARY KEY,
|
|
1008
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
1009
|
+
release_sync_id TEXT NOT NULL REFERENCES cc_release_syncs(id) ON DELETE CASCADE,
|
|
1010
|
+
release TEXT NOT NULL,
|
|
1011
|
+
target_domain TEXT NOT NULL,
|
|
1012
|
+
linking_domain TEXT NOT NULL,
|
|
1013
|
+
num_hosts INTEGER NOT NULL,
|
|
1014
|
+
created_at TEXT NOT NULL
|
|
1015
|
+
)`,
|
|
1016
|
+
`CREATE INDEX IF NOT EXISTS idx_backlink_domains_project ON backlink_domains(project_id)`,
|
|
1017
|
+
`CREATE INDEX IF NOT EXISTS idx_backlink_domains_release_sync ON backlink_domains(release_sync_id)`,
|
|
1018
|
+
`CREATE INDEX IF NOT EXISTS idx_backlink_domains_project_release ON backlink_domains(project_id, release)`,
|
|
1019
|
+
`CREATE INDEX IF NOT EXISTS idx_backlink_domains_hosts ON backlink_domains(num_hosts)`,
|
|
1020
|
+
`CREATE UNIQUE INDEX IF NOT EXISTS idx_backlink_domains_unique ON backlink_domains(project_id, release, linking_domain)`,
|
|
1021
|
+
`CREATE TABLE IF NOT EXISTS backlink_summaries (
|
|
1022
|
+
id TEXT PRIMARY KEY,
|
|
1023
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
1024
|
+
release_sync_id TEXT NOT NULL REFERENCES cc_release_syncs(id) ON DELETE CASCADE,
|
|
1025
|
+
release TEXT NOT NULL,
|
|
1026
|
+
target_domain TEXT NOT NULL,
|
|
1027
|
+
total_linking_domains INTEGER NOT NULL,
|
|
1028
|
+
total_hosts INTEGER NOT NULL,
|
|
1029
|
+
top_10_hosts_share TEXT NOT NULL,
|
|
1030
|
+
queried_at TEXT NOT NULL,
|
|
1031
|
+
created_at TEXT NOT NULL
|
|
1032
|
+
)`,
|
|
1033
|
+
`CREATE UNIQUE INDEX IF NOT EXISTS idx_backlink_summaries_project_release ON backlink_summaries(project_id, release)`,
|
|
1034
|
+
`CREATE INDEX IF NOT EXISTS idx_backlink_summaries_project ON backlink_summaries(project_id)`
|
|
925
1035
|
];
|
|
926
1036
|
function isDuplicateColumnError(err) {
|
|
927
1037
|
if (!(err instanceof Error)) return false;
|
|
@@ -1452,6 +1562,9 @@ export {
|
|
|
1452
1562
|
insights,
|
|
1453
1563
|
healthSnapshots,
|
|
1454
1564
|
agentSessions,
|
|
1565
|
+
ccReleaseSyncs,
|
|
1566
|
+
backlinkDomains,
|
|
1567
|
+
backlinkSummaries,
|
|
1455
1568
|
agentMemory,
|
|
1456
1569
|
createClient,
|
|
1457
1570
|
parseJsonColumn,
|