@inerrata-corporation/errata 2.0.2-dev.714 → 2.0.2-dev.720
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/errata.mjs +63 -8
- package/package.json +1 -1
package/errata.mjs
CHANGED
|
@@ -15479,15 +15479,18 @@ function summaryRejectionReason(summary, isKnownToken) {
|
|
|
15479
15479
|
return null;
|
|
15480
15480
|
}
|
|
15481
15481
|
function substituteSymbolSummaries(text, summaryByToken) {
|
|
15482
|
-
if (summaryByToken.size === 0) return text;
|
|
15482
|
+
if (summaryByToken.size === 0) return { text, substituted: 0, offered: 0 };
|
|
15483
15483
|
const present = extractIdentifierTokens(text).filter((t) => summaryByToken.has(t));
|
|
15484
15484
|
present.sort((a, b) => b.length - a.length);
|
|
15485
15485
|
let out2 = text;
|
|
15486
|
+
let substituted = 0;
|
|
15486
15487
|
for (const key of present) {
|
|
15487
15488
|
const re = new RegExp(`(?<![A-Za-z0-9_$.])${escapeRe2(key)}(?![A-Za-z0-9_$])`, "g");
|
|
15489
|
+
const before = out2;
|
|
15488
15490
|
out2 = out2.replace(re, summaryByToken.get(key));
|
|
15491
|
+
if (out2 !== before) substituted++;
|
|
15489
15492
|
}
|
|
15490
|
-
return out2;
|
|
15493
|
+
return { text: out2, substituted, offered: summaryByToken.size };
|
|
15491
15494
|
}
|
|
15492
15495
|
function vetSidecarSummaries(sidecar) {
|
|
15493
15496
|
if (!sidecar) return null;
|
|
@@ -27844,8 +27847,15 @@ function fileRolePhrase(relPath, level = 1) {
|
|
|
27844
27847
|
if (/\.(json|ya?ml|toml|env)$/i.test(relPath)) return "a config file";
|
|
27845
27848
|
return "a source file";
|
|
27846
27849
|
}
|
|
27850
|
+
function isSourceFileToken(token) {
|
|
27851
|
+
const basename5 = token.split(/[/\\]/).pop() ?? token;
|
|
27852
|
+
if (CONVENTION_FILENAMES.has(basename5)) return false;
|
|
27853
|
+
const ext = basename5.split(".").pop();
|
|
27854
|
+
return ext !== void 0 && SOURCE_EXTENSIONS.has(ext.toLowerCase());
|
|
27855
|
+
}
|
|
27847
27856
|
function generalizeFileRefs(text, fileLexicon, level = 1) {
|
|
27848
27857
|
let out2 = text;
|
|
27858
|
+
let lexiconMisses = 0;
|
|
27849
27859
|
const files = [];
|
|
27850
27860
|
const seenFiles = /* @__PURE__ */ new Set();
|
|
27851
27861
|
for (const m of out2.matchAll(FILE_TOKEN_RE)) {
|
|
@@ -27854,6 +27864,7 @@ function generalizeFileRefs(text, fileLexicon, level = 1) {
|
|
|
27854
27864
|
seenFiles.add(tok);
|
|
27855
27865
|
const entry = resolveFileToken(tok, fileLexicon);
|
|
27856
27866
|
if (entry) files.push([tok, entry]);
|
|
27867
|
+
else if (isSourceFileToken(tok)) lexiconMisses++;
|
|
27857
27868
|
}
|
|
27858
27869
|
files.sort((a, b) => b[0].length - a[0].length);
|
|
27859
27870
|
for (const [tok, entry] of files) {
|
|
@@ -27874,10 +27885,10 @@ function generalizeFileRefs(text, fileLexicon, level = 1) {
|
|
|
27874
27885
|
const re = new RegExp(`(?<![\\w$/\\\\.-])${escapeRe4(tok)}(?![\\w$/\\\\.-])`, "g");
|
|
27875
27886
|
out2 = out2.replace(re, fileRolePhrase(entry.relPath, level));
|
|
27876
27887
|
}
|
|
27877
|
-
return out2;
|
|
27888
|
+
return { text: out2, substitutions: files.length + stems.length, lexiconMisses };
|
|
27878
27889
|
}
|
|
27879
27890
|
function generalizeSymbols(text, lexicon, level = 1, fileLexicon) {
|
|
27880
|
-
let out2 = fileLexicon ? generalizeFileRefs(text, fileLexicon, level) : text;
|
|
27891
|
+
let out2 = fileLexicon ? generalizeFileRefs(text, fileLexicon, level).text : text;
|
|
27881
27892
|
const present = [];
|
|
27882
27893
|
const seen = /* @__PURE__ */ new Set();
|
|
27883
27894
|
for (const m of out2.matchAll(TOKEN_RE3)) {
|
|
@@ -27896,7 +27907,7 @@ function generalizeSymbols(text, lexicon, level = 1, fileLexicon) {
|
|
|
27896
27907
|
}
|
|
27897
27908
|
return generalize(out2, { level }).text;
|
|
27898
27909
|
}
|
|
27899
|
-
var SYMBOL_LABELS2, KIND_PHRASE, RE_RESERVED2, escapeRe4, CONVENTION_FILENAMES, CONVENTION_BASENAME_MIN_FILES, CONVENTION_STEMS, FILE_TOKEN_RE, STEM_TOKEN_RE, TOKEN_RE3;
|
|
27910
|
+
var SYMBOL_LABELS2, KIND_PHRASE, RE_RESERVED2, escapeRe4, CONVENTION_FILENAMES, CONVENTION_BASENAME_MIN_FILES, CONVENTION_STEMS, FILE_TOKEN_RE, STEM_TOKEN_RE, SOURCE_EXTENSIONS, TOKEN_RE3;
|
|
27900
27911
|
var init_generalize_graph = __esm({
|
|
27901
27912
|
"src/generalize-graph.ts"() {
|
|
27902
27913
|
"use strict";
|
|
@@ -27966,6 +27977,45 @@ var init_generalize_graph = __esm({
|
|
|
27966
27977
|
]);
|
|
27967
27978
|
FILE_TOKEN_RE = /(?:[A-Za-z0-9_.-]+\/)*[A-Za-z0-9_-][A-Za-z0-9_.-]*\.[A-Za-z0-9]+/g;
|
|
27968
27979
|
STEM_TOKEN_RE = /[A-Za-z0-9]+(?:[-_][A-Za-z0-9]+)+/g;
|
|
27980
|
+
SOURCE_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
27981
|
+
"ts",
|
|
27982
|
+
"tsx",
|
|
27983
|
+
"js",
|
|
27984
|
+
"jsx",
|
|
27985
|
+
"mjs",
|
|
27986
|
+
"cjs",
|
|
27987
|
+
"py",
|
|
27988
|
+
"go",
|
|
27989
|
+
"rs",
|
|
27990
|
+
"java",
|
|
27991
|
+
"kt",
|
|
27992
|
+
"rb",
|
|
27993
|
+
"c",
|
|
27994
|
+
"h",
|
|
27995
|
+
"cc",
|
|
27996
|
+
"cpp",
|
|
27997
|
+
"hpp",
|
|
27998
|
+
"cs",
|
|
27999
|
+
"php",
|
|
28000
|
+
"swift",
|
|
28001
|
+
"scala",
|
|
28002
|
+
"sh",
|
|
28003
|
+
"ps1",
|
|
28004
|
+
"sql",
|
|
28005
|
+
"css",
|
|
28006
|
+
"scss",
|
|
28007
|
+
"html",
|
|
28008
|
+
"vue",
|
|
28009
|
+
"svelte",
|
|
28010
|
+
"md",
|
|
28011
|
+
"json",
|
|
28012
|
+
"yaml",
|
|
28013
|
+
"yml",
|
|
28014
|
+
"toml",
|
|
28015
|
+
"ini",
|
|
28016
|
+
"env",
|
|
28017
|
+
"cypher"
|
|
28018
|
+
]);
|
|
27969
28019
|
TOKEN_RE3 = /[A-Za-z_$][A-Za-z0-9_$]*(?:\.[A-Za-z_$][A-Za-z0-9_$]*)*/g;
|
|
27970
28020
|
}
|
|
27971
28021
|
});
|
|
@@ -55561,7 +55611,7 @@ function startLoopLagMonitor(thresholdMs = 1e3) {
|
|
|
55561
55611
|
}
|
|
55562
55612
|
|
|
55563
55613
|
// src/engine.ts
|
|
55564
|
-
var DAEMON_VERSION = true ? "2.0.2-dev.
|
|
55614
|
+
var DAEMON_VERSION = true ? "2.0.2-dev.720" : "2.0.0-alpha.0";
|
|
55565
55615
|
var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
|
|
55566
55616
|
var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
|
|
55567
55617
|
var GIT_OP_MUTE_MS = 4e3;
|
|
@@ -58029,7 +58079,10 @@ function buildInstanceIngest(store, profile, daemonVersion, ignorePatterns = [],
|
|
|
58029
58079
|
const fileLexicon = buildFileLexicon(store);
|
|
58030
58080
|
const shareable = (n) => {
|
|
58031
58081
|
const preserved = symbolIndex ? preservedSymbolsFor(n.description, symbolIndex) : [];
|
|
58032
|
-
const
|
|
58082
|
+
const fileRefs = generalizeFileRefs(n.description, fileLexicon, level);
|
|
58083
|
+
const fileScrubbed = fileRefs.text;
|
|
58084
|
+
composition.fileRefsSubstituted += fileRefs.substitutions;
|
|
58085
|
+
composition.fileRefLexiconMisses += fileRefs.lexiconMisses;
|
|
58033
58086
|
const generalized = generalize(fileScrubbed, { level, project: projectIdentity });
|
|
58034
58087
|
const shippedText = generalized.text;
|
|
58035
58088
|
if (generalized.report.classes.length > 0) composition.privacyRewritten++;
|
|
@@ -58073,7 +58126,9 @@ function buildInstanceIngest(store, profile, daemonVersion, ignorePatterns = [],
|
|
|
58073
58126
|
privacyRewritten: 0,
|
|
58074
58127
|
sidecarDropped: 0,
|
|
58075
58128
|
sidecarDropReasons: {},
|
|
58076
|
-
sidecarTruncatedAtCap: 0
|
|
58129
|
+
sidecarTruncatedAtCap: 0,
|
|
58130
|
+
fileRefsSubstituted: 0,
|
|
58131
|
+
fileRefLexiconMisses: 0
|
|
58077
58132
|
};
|
|
58078
58133
|
for (const label of INSTANCE_LABELS) {
|
|
58079
58134
|
const ref = [];
|