@ainyc/canonry 4.76.0 → 4.76.2
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 +1 -1
- package/assets/assets/{BacklinksPage-Dvc3mk9A.js → BacklinksPage-GkTp8zLM.js} +1 -1
- package/assets/assets/{ChartPrimitives-DbjEIcrG.js → ChartPrimitives-0noLg9_T.js} +1 -1
- package/assets/assets/{ProjectPage-CeZYtdbm.js → ProjectPage-Bg5sKYhO.js} +2 -2
- package/assets/assets/{RunRow-CgojRiy8.js → RunRow-BEhaQDol.js} +1 -1
- package/assets/assets/{RunsPage-CWEcQv7p.js → RunsPage-CV2wKkaz.js} +1 -1
- package/assets/assets/{SettingsPage-CCT4jasH.js → SettingsPage-Ctij-T9F.js} +1 -1
- package/assets/assets/{TrafficPage-DtdlxDFZ.js → TrafficPage-TnIPaMcL.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-CPBuL-HQ.js → TrafficSourceDetailPage-BBmIwaee.js} +1 -1
- package/assets/assets/{extract-error-message--ubvhQzu.js → extract-error-message-BdLppivS.js} +1 -1
- package/assets/assets/{index-CKbfZ6rA.js → index-B-_Dwwhd.js} +3 -3
- package/assets/assets/{server-traffic-Dskh-6z1.js → server-traffic-ScU00kCP.js} +1 -1
- package/assets/assets/{trash-2-b62WCytM.js → trash-2-C65kNIO5.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-WFMEK34V.js → chunk-42TDEKKM.js} +1 -1
- package/dist/{chunk-JUWU2DV6.js → chunk-BIT3JPMW.js} +42 -8
- package/dist/{chunk-JNAKRK77.js → chunk-ETM5EPQH.js} +18 -0
- package/dist/{chunk-QY5WZWU4.js → chunk-ZUQK4TLL.js} +4 -4
- package/dist/cli.js +9 -8
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-L2A5MFB4.js → intelligence-service-QIGX7IVQ.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +10 -10
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
ContentActions,
|
|
12
12
|
DEFAULT_DISCOVERY_PROMOTE_BUCKETS,
|
|
13
13
|
DEFAULT_DISCOVERY_PROMOTE_COMPETITOR_TYPES,
|
|
14
|
+
DISCOVERY_DEFAULT_DEDUP_THRESHOLD,
|
|
14
15
|
DISCOVERY_PROMOTE_COMPETITOR_CAP,
|
|
15
16
|
DISCOVERY_PROMOTE_COMPETITOR_MIN_HITS,
|
|
16
17
|
DiscoveryBuckets,
|
|
@@ -186,6 +187,7 @@ import {
|
|
|
186
187
|
schedulableRunKindSchema,
|
|
187
188
|
scheduleDtoSchema,
|
|
188
189
|
scheduleUpsertRequestSchema,
|
|
190
|
+
seedCollapseWarning,
|
|
189
191
|
serializeRunError,
|
|
190
192
|
settingsDtoSchema,
|
|
191
193
|
siteAuditPagesResponseSchema,
|
|
@@ -230,7 +232,7 @@ import {
|
|
|
230
232
|
wordpressSchemaDeployResultDtoSchema,
|
|
231
233
|
wordpressSchemaStatusResultDtoSchema,
|
|
232
234
|
wordpressStatusDtoSchema
|
|
233
|
-
} from "./chunk-
|
|
235
|
+
} from "./chunk-ETM5EPQH.js";
|
|
234
236
|
|
|
235
237
|
// src/intelligence-service.ts
|
|
236
238
|
import { eq as eq33, desc as desc17, asc as asc4, and as and24, ne as ne5, or as or5, inArray as inArray12, gte as gte6, lte as lte3 } from "drizzle-orm";
|
|
@@ -1014,6 +1016,7 @@ var discoverySessions = sqliteTable("discovery_sessions", {
|
|
|
1014
1016
|
aspirationalCount: integer("aspirational_count"),
|
|
1015
1017
|
wastedCount: integer("wasted_count"),
|
|
1016
1018
|
competitorMap: text("competitor_map", { mode: "json" }).$type().notNull().default([]),
|
|
1019
|
+
warning: text("warning"),
|
|
1017
1020
|
error: text("error"),
|
|
1018
1021
|
startedAt: text("started_at"),
|
|
1019
1022
|
finishedAt: text("finished_at"),
|
|
@@ -2863,6 +2866,16 @@ var MIGRATION_VERSIONS = [
|
|
|
2863
2866
|
`CREATE INDEX IF NOT EXISTS idx_site_audit_pages_run ON site_audit_pages(run_id)`,
|
|
2864
2867
|
`CREATE INDEX IF NOT EXISTS idx_site_audit_pages_project_score ON site_audit_pages(project_id, overall_score)`
|
|
2865
2868
|
]
|
|
2869
|
+
},
|
|
2870
|
+
{
|
|
2871
|
+
// Non-fatal operator warning on a discovery session (e.g. the seed-dedup
|
|
2872
|
+
// degenerate-collapse guard). The session still completes; the warning
|
|
2873
|
+
// flags that its coverage may be misleading.
|
|
2874
|
+
version: 76,
|
|
2875
|
+
name: "discovery-session-warning",
|
|
2876
|
+
statements: [
|
|
2877
|
+
`ALTER TABLE discovery_sessions ADD COLUMN warning TEXT`
|
|
2878
|
+
]
|
|
2866
2879
|
}
|
|
2867
2880
|
];
|
|
2868
2881
|
function isDuplicateColumnError(err) {
|
|
@@ -16652,7 +16665,7 @@ var routeCatalog = [
|
|
|
16652
16665
|
method: "post",
|
|
16653
16666
|
path: "/api/v1/projects/{name}/discover/run",
|
|
16654
16667
|
summary: "Start a tracked-basket discovery session",
|
|
16655
|
-
description: 'Kicks off a discovery session for the project. The pipeline: ICP description \u2192 Gemini grounded seed prompt \u2192 embed + cluster (cosine \u2265 0.
|
|
16668
|
+
description: 'Kicks off a discovery session for the project. The pipeline: ICP description \u2192 Gemini grounded seed prompt \u2192 embed + cluster (cosine \u2265 0.95 by default) \u2192 pick canonical representatives \u2192 probe each canonical via Gemini grounding \u2192 classify into cited / aspirational / wasted-surface \u2192 aggregate competitor map. Returns immediately with `{ runId, sessionId, status: "running", consolidated }`; the actual work runs in the background. Poll `GET /projects/{name}/discover/sessions/{id}` until `status` is `completed` or `failed`. Concurrent/duplicate requests for the same (project, ICP) are consolidated onto a single in-flight session: the response carries `consolidated: true` and `200 OK` instead of `201`, and the request\'s `dedupThreshold` / `maxProbes` are ignored (the in-flight session keeps its original config).',
|
|
16656
16669
|
tags: ["discovery"],
|
|
16657
16670
|
parameters: [nameParameter],
|
|
16658
16671
|
requestBody: {
|
|
@@ -16663,7 +16676,7 @@ var routeCatalog = [
|
|
|
16663
16676
|
type: "object",
|
|
16664
16677
|
properties: {
|
|
16665
16678
|
icpDescription: { type: "string", description: "Free-text ICP. Required if the project does not have spec.icpDescription stored." },
|
|
16666
|
-
dedupThreshold: { type: "number", description: "Cosine similarity threshold for clustering. Defaults to 0.
|
|
16679
|
+
dedupThreshold: { type: "number", description: "Cosine similarity threshold for clustering. Defaults to 0.95." },
|
|
16667
16680
|
maxProbes: { type: "integer", description: "Max canonical queries to probe in this session. Default 100, hard cap 500." },
|
|
16668
16681
|
locations: {
|
|
16669
16682
|
type: "array",
|
|
@@ -27904,7 +27917,7 @@ async function drainVercelTrafficEvents(options) {
|
|
|
27904
27917
|
const events = [];
|
|
27905
27918
|
const seenEventIds = /* @__PURE__ */ new Set();
|
|
27906
27919
|
if (endMs <= startMs) {
|
|
27907
|
-
return { events, subWindowCount: 0, effectiveStartMs: startMs, retentionClamped: false, truncatedSliceCount: 0, truncatedSliceStartsMs: [], drainedThroughMs: startMs, deadlineReached: false };
|
|
27920
|
+
return { events, subWindowCount: 0, effectiveStartMs: startMs, retentionClamped: false, truncatedSliceCount: 0, truncatedSliceStartsMs: [], deadlineSkippedSliceCount: 0, deadlineSkippedSliceStartsMs: [], drainedThroughMs: startMs, deadlineReached: false };
|
|
27908
27921
|
}
|
|
27909
27922
|
let cursorMs = startMs;
|
|
27910
27923
|
let spanMs = Math.min(endMs - startMs, INITIAL_SUB_WINDOW_MS);
|
|
@@ -27917,9 +27930,14 @@ async function drainVercelTrafficEvents(options) {
|
|
|
27917
27930
|
let truncatedSliceCount = 0;
|
|
27918
27931
|
let deadlineReached = false;
|
|
27919
27932
|
const truncatedSliceStartsMs = [];
|
|
27933
|
+
const deadlineSkippedSliceStartsMs = [];
|
|
27920
27934
|
while (cursorMs < endMs) {
|
|
27921
27935
|
if (options.deadlineMs !== void 0 && now() >= options.deadlineMs) {
|
|
27922
27936
|
deadlineReached = true;
|
|
27937
|
+
if (cursorMs === effectiveStartMs && subWindowCount > 0 && cursorMs < endMs) {
|
|
27938
|
+
deadlineSkippedSliceStartsMs.push(cursorMs);
|
|
27939
|
+
cursorMs = Math.min(effectiveStartMs + INITIAL_SUB_WINDOW_MS, endMs);
|
|
27940
|
+
}
|
|
27923
27941
|
break;
|
|
27924
27942
|
}
|
|
27925
27943
|
if (subWindowCount >= options.maxSubWindows) {
|
|
@@ -28008,7 +28026,7 @@ async function drainVercelTrafficEvents(options) {
|
|
|
28008
28026
|
}
|
|
28009
28027
|
}
|
|
28010
28028
|
}
|
|
28011
|
-
return { events, subWindowCount, effectiveStartMs, retentionClamped, truncatedSliceCount, truncatedSliceStartsMs, drainedThroughMs: cursorMs, deadlineReached };
|
|
28029
|
+
return { events, subWindowCount, effectiveStartMs, retentionClamped, truncatedSliceCount, truncatedSliceStartsMs, deadlineSkippedSliceCount: deadlineSkippedSliceStartsMs.length, deadlineSkippedSliceStartsMs, drainedThroughMs: cursorMs, deadlineReached };
|
|
28012
28030
|
}
|
|
28013
28031
|
|
|
28014
28032
|
// ../api-routes/src/traffic.ts
|
|
@@ -28805,6 +28823,16 @@ async function trafficRoutes(app, opts) {
|
|
|
28805
28823
|
"Vercel drain truncated dense one-second slice(s); ingested a sample and advanced past them"
|
|
28806
28824
|
);
|
|
28807
28825
|
}
|
|
28826
|
+
if (drained.deadlineSkippedSliceCount > 0) {
|
|
28827
|
+
request.log.warn(
|
|
28828
|
+
{
|
|
28829
|
+
sourceId: sourceRow.id,
|
|
28830
|
+
skippedSlices: drained.deadlineSkippedSliceCount,
|
|
28831
|
+
sliceStarts: drained.deadlineSkippedSliceStartsMs.map((ms) => new Date(ms).toISOString())
|
|
28832
|
+
},
|
|
28833
|
+
"Vercel drain could not narrow a dense/slow head slice within its budget; skipped past it to guarantee progress"
|
|
28834
|
+
);
|
|
28835
|
+
}
|
|
28808
28836
|
allEvents = drained.events;
|
|
28809
28837
|
} catch (e) {
|
|
28810
28838
|
const msg = e instanceof Error ? e.message : String(e);
|
|
@@ -31640,6 +31668,7 @@ function serializeSession(row) {
|
|
|
31640
31668
|
aspirationalCount: row.aspirationalCount ?? null,
|
|
31641
31669
|
wastedCount: row.wastedCount ?? null,
|
|
31642
31670
|
competitorMap: parseCompetitorMap(row.competitorMap),
|
|
31671
|
+
warning: row.warning ?? null,
|
|
31643
31672
|
error: row.error ?? null,
|
|
31644
31673
|
startedAt: row.startedAt ?? null,
|
|
31645
31674
|
finishedAt: row.finishedAt ?? null,
|
|
@@ -31675,7 +31704,6 @@ function selectEligibleCompetitors(competitorMap, competitorTypes) {
|
|
|
31675
31704
|
// ../api-routes/src/discovery/orchestrate.ts
|
|
31676
31705
|
import crypto26 from "crypto";
|
|
31677
31706
|
import { eq as eq31 } from "drizzle-orm";
|
|
31678
|
-
var DEFAULT_DEDUP_THRESHOLD = 0.85;
|
|
31679
31707
|
var DEFAULT_MAX_PROBES = 100;
|
|
31680
31708
|
var ABSOLUTE_MAX_PROBES = 500;
|
|
31681
31709
|
function classifyProbeBucket(input) {
|
|
@@ -31721,7 +31749,7 @@ async function pickCanonicals(candidates, deps, dedupThreshold) {
|
|
|
31721
31749
|
return clusters.map(pickClusterRepresentative);
|
|
31722
31750
|
}
|
|
31723
31751
|
async function executeDiscovery(opts) {
|
|
31724
|
-
const dedupThreshold = opts.dedupThreshold ??
|
|
31752
|
+
const dedupThreshold = opts.dedupThreshold ?? DISCOVERY_DEFAULT_DEDUP_THRESHOLD;
|
|
31725
31753
|
const requestedMax = opts.maxProbes ?? DEFAULT_MAX_PROBES;
|
|
31726
31754
|
const maxProbes = Math.min(Math.max(1, requestedMax), ABSOLUTE_MAX_PROBES);
|
|
31727
31755
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -31742,13 +31770,19 @@ async function executeDiscovery(opts) {
|
|
|
31742
31770
|
{ embed: opts.deps.embed },
|
|
31743
31771
|
dedupThreshold
|
|
31744
31772
|
);
|
|
31773
|
+
const warning = seedCollapseWarning({
|
|
31774
|
+
seedCountRaw,
|
|
31775
|
+
canonicalCount: canonicals.length,
|
|
31776
|
+
dedupThreshold
|
|
31777
|
+
});
|
|
31745
31778
|
const probedCanonicals = canonicals.slice(0, maxProbes);
|
|
31746
31779
|
const seedCount = probedCanonicals.length;
|
|
31747
31780
|
opts.db.update(discoverySessions).set({
|
|
31748
31781
|
status: DiscoverySessionStatuses.probing,
|
|
31749
31782
|
seedProvider: seedResult.provider,
|
|
31750
31783
|
seedCountRaw,
|
|
31751
|
-
seedCount
|
|
31784
|
+
seedCount,
|
|
31785
|
+
warning
|
|
31752
31786
|
}).where(eq31(discoverySessions.id, opts.sessionId)).run();
|
|
31753
31787
|
const probeRows = [];
|
|
31754
31788
|
const buckets = { cited: 0, aspirational: 0, "wasted-surface": 0 };
|
|
@@ -1870,6 +1870,12 @@ var discoverySessionDtoSchema = z17.object({
|
|
|
1870
1870
|
aspirationalCount: z17.number().int().nullable().default(null),
|
|
1871
1871
|
wastedCount: z17.number().int().nullable().default(null),
|
|
1872
1872
|
competitorMap: z17.array(discoveryCompetitorMapEntrySchema).default([]),
|
|
1873
|
+
/**
|
|
1874
|
+
* Non-fatal operator warning recorded while the session ran (currently the
|
|
1875
|
+
* seed dedup collapse guard). The session still completes; the warning flags
|
|
1876
|
+
* that its coverage may be misleading.
|
|
1877
|
+
*/
|
|
1878
|
+
warning: z17.string().nullable().optional(),
|
|
1873
1879
|
error: z17.string().nullable().optional(),
|
|
1874
1880
|
startedAt: z17.string().nullable().optional(),
|
|
1875
1881
|
finishedAt: z17.string().nullable().optional(),
|
|
@@ -1879,6 +1885,16 @@ var discoverySessionDetailDtoSchema = discoverySessionDtoSchema.extend({
|
|
|
1879
1885
|
probes: z17.array(discoveryProbeDtoSchema).default([])
|
|
1880
1886
|
});
|
|
1881
1887
|
var DISCOVERY_MAX_PROBES_CAP = 500;
|
|
1888
|
+
var DISCOVERY_DEFAULT_DEDUP_THRESHOLD = 0.95;
|
|
1889
|
+
var DISCOVERY_SEED_COLLAPSE_RATIO = 0.2;
|
|
1890
|
+
var DISCOVERY_SEED_COLLAPSE_MIN_RAW = 10;
|
|
1891
|
+
function seedCollapseWarning(input) {
|
|
1892
|
+
const { seedCountRaw, canonicalCount, dedupThreshold } = input;
|
|
1893
|
+
if (seedCountRaw < DISCOVERY_SEED_COLLAPSE_MIN_RAW) return null;
|
|
1894
|
+
if (canonicalCount / seedCountRaw >= DISCOVERY_SEED_COLLAPSE_RATIO) return null;
|
|
1895
|
+
const noun = canonicalCount === 1 ? "query" : "queries";
|
|
1896
|
+
return `Seed dedup collapsed ${seedCountRaw} raw candidates into ${canonicalCount} canonical ${noun} at threshold ${dedupThreshold}. Distinct intents were likely merged into one cluster; re-run with a higher --dedup-threshold.`;
|
|
1897
|
+
}
|
|
1882
1898
|
var discoveryRunRequestSchema = z17.object({
|
|
1883
1899
|
icpDescription: z17.string().min(1).optional(),
|
|
1884
1900
|
dedupThreshold: z17.number().min(0).max(1).optional(),
|
|
@@ -4440,6 +4456,8 @@ export {
|
|
|
4440
4456
|
discoverySessionDtoSchema,
|
|
4441
4457
|
discoverySessionDetailDtoSchema,
|
|
4442
4458
|
DISCOVERY_MAX_PROBES_CAP,
|
|
4459
|
+
DISCOVERY_DEFAULT_DEDUP_THRESHOLD,
|
|
4460
|
+
seedCollapseWarning,
|
|
4443
4461
|
discoveryRunRequestSchema,
|
|
4444
4462
|
discoveryPromoteRequestSchema,
|
|
4445
4463
|
discoveryPromotePreviewSchema,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
loadConfig,
|
|
10
10
|
loadConfigRaw,
|
|
11
11
|
saveConfigPatch
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-42TDEKKM.js";
|
|
13
13
|
import {
|
|
14
14
|
CC_CACHE_DIR,
|
|
15
15
|
DUCKDB_SPEC,
|
|
@@ -97,7 +97,7 @@ import {
|
|
|
97
97
|
siteAuditPages,
|
|
98
98
|
siteAuditSnapshots,
|
|
99
99
|
usageCounters
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-BIT3JPMW.js";
|
|
101
101
|
import {
|
|
102
102
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
103
103
|
AGENT_PROVIDER_IDS,
|
|
@@ -149,7 +149,7 @@ import {
|
|
|
149
149
|
validationError,
|
|
150
150
|
winnabilityClassLabel,
|
|
151
151
|
withRetry
|
|
152
|
-
} from "./chunk-
|
|
152
|
+
} from "./chunk-ETM5EPQH.js";
|
|
153
153
|
|
|
154
154
|
// src/telemetry.ts
|
|
155
155
|
import crypto from "crypto";
|
|
@@ -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-
|
|
5764
|
+
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-QIGX7IVQ.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-
|
|
30
|
+
} from "./chunk-ZUQK4TLL.js";
|
|
31
31
|
import {
|
|
32
32
|
CliError,
|
|
33
33
|
EXIT_SYSTEM_ERROR,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
saveConfig,
|
|
45
45
|
saveConfigPatch,
|
|
46
46
|
usageError
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-42TDEKKM.js";
|
|
48
48
|
import {
|
|
49
49
|
apiKeys,
|
|
50
50
|
createClient,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
projects,
|
|
53
53
|
queries,
|
|
54
54
|
renderReportHtml
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-BIT3JPMW.js";
|
|
56
56
|
import {
|
|
57
57
|
CcReleaseSyncStatuses,
|
|
58
58
|
CheckScopes,
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
providerQuotaPolicySchema,
|
|
73
73
|
resolveProviderInput,
|
|
74
74
|
winnabilityClassSchema
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-ETM5EPQH.js";
|
|
76
76
|
|
|
77
77
|
// src/cli.ts
|
|
78
78
|
import { pathToFileURL } from "url";
|
|
@@ -1797,6 +1797,7 @@ function printSessionDetail(session) {
|
|
|
1797
1797
|
console.log(` - ${c.domain} (${c.hits} hits, ${c.competitorType})`);
|
|
1798
1798
|
}
|
|
1799
1799
|
}
|
|
1800
|
+
if (session.warning) console.log(` Warning: ${session.warning}`);
|
|
1800
1801
|
if (session.error) console.log(` Error: ${session.error}`);
|
|
1801
1802
|
if (session.startedAt) console.log(` Started: ${session.startedAt}`);
|
|
1802
1803
|
if (session.finishedAt) console.log(` Finished: ${session.finishedAt}`);
|
|
@@ -1920,7 +1921,7 @@ Usage: ${usage}`,
|
|
|
1920
1921
|
var DISCOVER_CLI_COMMANDS = [
|
|
1921
1922
|
{
|
|
1922
1923
|
path: ["discover", "run"],
|
|
1923
|
-
usage: 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.
|
|
1924
|
+
usage: 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]',
|
|
1924
1925
|
options: {
|
|
1925
1926
|
icp: stringOption(),
|
|
1926
1927
|
"icp-angle": multiStringOption(),
|
|
@@ -1930,7 +1931,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1930
1931
|
wait: { type: "boolean", default: false }
|
|
1931
1932
|
},
|
|
1932
1933
|
run: async (input) => {
|
|
1933
|
-
const usage = 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.
|
|
1934
|
+
const usage = 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]';
|
|
1934
1935
|
const project = requireProject(input, "discover.run", usage);
|
|
1935
1936
|
await discoverRun(project, {
|
|
1936
1937
|
icp: getString(input.values, "icp"),
|
|
@@ -1949,7 +1950,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1949
1950
|
},
|
|
1950
1951
|
{
|
|
1951
1952
|
path: ["discover", "seed"],
|
|
1952
|
-
usage: 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.
|
|
1953
|
+
usage: 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]',
|
|
1953
1954
|
options: {
|
|
1954
1955
|
icp: stringOption(),
|
|
1955
1956
|
"icp-angle": multiStringOption(),
|
|
@@ -1959,7 +1960,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1959
1960
|
wait: { type: "boolean", default: false }
|
|
1960
1961
|
},
|
|
1961
1962
|
run: async (input) => {
|
|
1962
|
-
const usage = 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.
|
|
1963
|
+
const usage = 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]';
|
|
1963
1964
|
const project = requireProject(input, "discover.seed", usage);
|
|
1964
1965
|
await discoverSeed(project, {
|
|
1965
1966
|
icp: getString(input.values, "icp"),
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZUQK4TLL.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-42TDEKKM.js";
|
|
7
|
+
import "./chunk-BIT3JPMW.js";
|
|
8
|
+
import "./chunk-ETM5EPQH.js";
|
|
9
9
|
export {
|
|
10
10
|
createServer,
|
|
11
11
|
loadConfig
|
package/dist/mcp.js
CHANGED
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
PACKAGE_VERSION,
|
|
4
4
|
canonryMcpTools,
|
|
5
5
|
createApiClient
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-42TDEKKM.js";
|
|
7
|
+
import "./chunk-ETM5EPQH.js";
|
|
8
8
|
|
|
9
9
|
// src/mcp/cli.ts
|
|
10
10
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ainyc/canonry",
|
|
3
|
-
"version": "4.76.
|
|
3
|
+
"version": "4.76.2",
|
|
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",
|
|
@@ -64,24 +64,24 @@
|
|
|
64
64
|
"tsx": "^4.19.0",
|
|
65
65
|
"@ainyc/canonry-api-client": "0.0.0",
|
|
66
66
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
67
|
-
"@ainyc/canonry-config": "0.0.0",
|
|
68
67
|
"@ainyc/canonry-contracts": "0.0.0",
|
|
69
|
-
"@ainyc/canonry-
|
|
68
|
+
"@ainyc/canonry-db": "0.0.0",
|
|
70
69
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
70
|
+
"@ainyc/canonry-config": "0.0.0",
|
|
71
|
+
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
71
72
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
72
73
|
"@ainyc/canonry-integration-google": "0.0.0",
|
|
73
|
-
"@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
74
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
77
75
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
78
|
-
"@ainyc/canonry-
|
|
76
|
+
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
79
77
|
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
80
|
-
"@ainyc/canonry-
|
|
78
|
+
"@ainyc/canonry-intelligence": "0.0.0",
|
|
79
|
+
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
81
80
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
82
|
-
"@ainyc/canonry-provider-
|
|
81
|
+
"@ainyc/canonry-provider-claude": "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-local": "0.0.0"
|
|
85
85
|
},
|
|
86
86
|
"scripts": {
|
|
87
87
|
"build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",
|