@inerrata-corporation/errata 2.0.2-dev.169 → 2.0.2-dev.174
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/consolidate-worker.mjs +1 -1
- package/errata.mjs +20 -6
- package/package.json +1 -1
package/consolidate-worker.mjs
CHANGED
|
@@ -15415,7 +15415,7 @@ var init_canonicalize = __esm({
|
|
|
15415
15415
|
|
|
15416
15416
|
// ../../packages/shared/src/nlp/triage-canon.ts
|
|
15417
15417
|
function canonicalizeToken(t) {
|
|
15418
|
-
const base = t.trim().toLowerCase().replace(/
|
|
15418
|
+
const base = t.trim().toLowerCase().replace(/(?!^)@.*$|\s.*$/, "");
|
|
15419
15419
|
if (!base) return "";
|
|
15420
15420
|
return resolveCanonicalId(base) ?? base;
|
|
15421
15421
|
}
|
package/errata.mjs
CHANGED
|
@@ -15887,7 +15887,7 @@ var init_canonicalize = __esm({
|
|
|
15887
15887
|
|
|
15888
15888
|
// ../../packages/shared/src/nlp/triage-canon.ts
|
|
15889
15889
|
function canonicalizeToken(t) {
|
|
15890
|
-
const base = t.trim().toLowerCase().replace(/
|
|
15890
|
+
const base = t.trim().toLowerCase().replace(/(?!^)@.*$|\s.*$/, "");
|
|
15891
15891
|
if (!base) return "";
|
|
15892
15892
|
return resolveCanonicalId(base) ?? base;
|
|
15893
15893
|
}
|
|
@@ -50882,11 +50882,17 @@ function isSyncableRoute(edge2, shared, triage, ignorePatterns = []) {
|
|
|
50882
50882
|
].join(" ").toLowerCase();
|
|
50883
50883
|
return !ignorePatterns.some((p) => blob.includes(p));
|
|
50884
50884
|
}
|
|
50885
|
-
|
|
50885
|
+
var isScopedBucket = (bucket) => bucket.startsWith("stack:@");
|
|
50886
|
+
function filterScopedBucketKeys(rec, includeScopedBuckets) {
|
|
50887
|
+
if (includeScopedBuckets) return rec;
|
|
50888
|
+
return Object.fromEntries(Object.entries(rec).filter(([k]) => !isScopedBucket(k)));
|
|
50889
|
+
}
|
|
50890
|
+
function generalizeRouteForSync(edge2, level, includeScopedBuckets = false) {
|
|
50886
50891
|
const disc = edge2.attrs["discriminator"];
|
|
50887
50892
|
const local = edge2.attrs["perContext"] ?? {};
|
|
50888
50893
|
const perContext = {};
|
|
50889
50894
|
for (const [b, c] of Object.entries(local)) {
|
|
50895
|
+
if (!includeScopedBuckets && isScopedBucket(b)) continue;
|
|
50890
50896
|
const independent = c.independent ?? c.contributors?.length;
|
|
50891
50897
|
const inferredIndependent = c.inferredIndependent ?? c.inferredContributors?.length;
|
|
50892
50898
|
perContext[b] = {
|
|
@@ -50947,6 +50953,7 @@ function buildTriageIngest(shared, daemonVersion, ignorePatterns = [], level = 2
|
|
|
50947
50953
|
const lang = opts.primaryLanguage?.trim().toLowerCase();
|
|
50948
50954
|
const fallbackAnchor = lang ? `lang:${lang}` : void 0;
|
|
50949
50955
|
const tokenAnchors = opts.tokenAnchors ?? {};
|
|
50956
|
+
const includeScopedBuckets = opts.includeScopedBuckets === true;
|
|
50950
50957
|
const claimOf = (anchor) => anchor ? { anchorVisibility: "public", anchor } : {};
|
|
50951
50958
|
const nodes = [];
|
|
50952
50959
|
const edges = [];
|
|
@@ -50977,7 +50984,12 @@ function buildTriageIngest(shared, daemonVersion, ignorePatterns = [], level = 2
|
|
|
50977
50984
|
embedding: [],
|
|
50978
50985
|
attrs: {
|
|
50979
50986
|
...statement ? { statement: generalize(statement, { level }).text } : {},
|
|
50980
|
-
...tri.attrs["perContextSeen"] ? {
|
|
50987
|
+
...tri.attrs["perContextSeen"] ? {
|
|
50988
|
+
perContextSeen: filterScopedBucketKeys(
|
|
50989
|
+
tri.attrs["perContextSeen"],
|
|
50990
|
+
includeScopedBuckets
|
|
50991
|
+
)
|
|
50992
|
+
} : {}
|
|
50981
50993
|
},
|
|
50982
50994
|
...claimOf(triAnchor ?? fallbackAnchor)
|
|
50983
50995
|
});
|
|
@@ -50991,7 +51003,7 @@ function buildTriageIngest(shared, daemonVersion, ignorePatterns = [], level = 2
|
|
|
50991
51003
|
throw new Error(`buildTriageIngest: refusing to sync non-router route ${e.id} \u2014 C7 invariant violated`);
|
|
50992
51004
|
}
|
|
50993
51005
|
shareEndpoint(e.to, witnessedAnchor([e], tokenAnchors));
|
|
50994
|
-
edges.push(generalizeRouteForSync(e, level));
|
|
51006
|
+
edges.push(generalizeRouteForSync(e, level, includeScopedBuckets));
|
|
50995
51007
|
}
|
|
50996
51008
|
}
|
|
50997
51009
|
if (edges.length === 0) return null;
|
|
@@ -52039,7 +52051,7 @@ function startLoopLagMonitor(thresholdMs = 1e3) {
|
|
|
52039
52051
|
}
|
|
52040
52052
|
|
|
52041
52053
|
// src/engine.ts
|
|
52042
|
-
var DAEMON_VERSION = true ? "2.0.2-dev.
|
|
52054
|
+
var DAEMON_VERSION = true ? "2.0.2-dev.174" : "2.0.0-alpha.0";
|
|
52043
52055
|
var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
|
|
52044
52056
|
var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
|
|
52045
52057
|
var GIT_OP_MUTE_MS = 4e3;
|
|
@@ -55087,7 +55099,9 @@ async function startMultiDaemon(opts = {}) {
|
|
|
55087
55099
|
const tokenAnchors = buildBucketTokenAnchors(languages, packages);
|
|
55088
55100
|
const payload = buildTriageIngest(sharedStore, DAEMON_VERSION, ignore, 2, {
|
|
55089
55101
|
...primaryLanguage ? { primaryLanguage } : {},
|
|
55090
|
-
tokenAnchors
|
|
55102
|
+
tokenAnchors,
|
|
55103
|
+
// Scoped bucket keys carry package names — same consent as the purls.
|
|
55104
|
+
includeScopedBuckets: cfg2.consent.contributePackages
|
|
55091
55105
|
});
|
|
55092
55106
|
if (!payload) return { uploaded: 0 };
|
|
55093
55107
|
const res = await cloudNow().ingest(payload);
|