@inerrata-corporation/errata 2.0.13-dev.2998 → 2.0.13-dev.3043
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 +141 -1
- package/errata.mjs +992 -224
- package/package.json +1 -1
- package/pass-worker.mjs +180 -3
package/package.json
CHANGED
package/pass-worker.mjs
CHANGED
|
@@ -15017,6 +15017,79 @@ var init_zod = __esm({
|
|
|
15017
15017
|
}
|
|
15018
15018
|
});
|
|
15019
15019
|
|
|
15020
|
+
// ../../packages/shared/src/history-text.ts
|
|
15021
|
+
var init_history_text = __esm({
|
|
15022
|
+
"../../packages/shared/src/history-text.ts"() {
|
|
15023
|
+
"use strict";
|
|
15024
|
+
}
|
|
15025
|
+
});
|
|
15026
|
+
|
|
15027
|
+
// ../../packages/shared/src/history-evidence.ts
|
|
15028
|
+
var HistoryAnchorSourceSchema, HistorySymbolAnchorSchema, HistoryEvidenceSelectionSchema, HistoryCandidateSchema, HistoryRelationCandidateSchema, HistoryCandidateBatchSchema, HistoryEvidenceRefSchema;
|
|
15029
|
+
var init_history_evidence = __esm({
|
|
15030
|
+
"../../packages/shared/src/history-evidence.ts"() {
|
|
15031
|
+
"use strict";
|
|
15032
|
+
init_zod();
|
|
15033
|
+
init_history_text();
|
|
15034
|
+
HistoryAnchorSourceSchema = external_exports.strictObject({
|
|
15035
|
+
sourceCommitSha: external_exports.string().regex(/^[a-f0-9]{40,64}$/),
|
|
15036
|
+
commitSha: external_exports.string().regex(/^[a-f0-9]{40,64}$/),
|
|
15037
|
+
side: external_exports.enum(["before", "after"]),
|
|
15038
|
+
blockDigest: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
15039
|
+
startByte: external_exports.number().int().nonnegative(),
|
|
15040
|
+
endByte: external_exports.number().int().positive(),
|
|
15041
|
+
bodyHash: external_exports.string().regex(/^[a-f0-9]{8,64}$/).optional()
|
|
15042
|
+
}).refine((v) => v.endByte > v.startByte);
|
|
15043
|
+
HistorySymbolAnchorSchema = external_exports.object({
|
|
15044
|
+
symbolId: external_exports.string().regex(/^sym_[a-f0-9]{8,64}$/),
|
|
15045
|
+
kind: external_exports.string().max(40),
|
|
15046
|
+
/** Legacy association, never a source-revision or live validation. */
|
|
15047
|
+
contentHash: external_exports.string().regex(/^[a-f0-9]{8,64}$/).optional(),
|
|
15048
|
+
historical: HistoryAnchorSourceSchema.optional()
|
|
15049
|
+
});
|
|
15050
|
+
HistoryEvidenceSelectionSchema = external_exports.strictObject({
|
|
15051
|
+
blockId: external_exports.string().min(1).max(80),
|
|
15052
|
+
quote: external_exports.string().min(3).max(1600),
|
|
15053
|
+
supports: external_exports.enum(["statement", "condition", "rationale", "relation"]),
|
|
15054
|
+
conditionIndex: external_exports.number().int().min(0).max(7).nullable(),
|
|
15055
|
+
/** Optional exact location disambiguates repeated source lines. */
|
|
15056
|
+
startByte: external_exports.number().int().nonnegative().optional()
|
|
15057
|
+
});
|
|
15058
|
+
HistoryCandidateSchema = external_exports.strictObject({
|
|
15059
|
+
tempId: external_exports.string().regex(/^a[0-9]{1,3}$/),
|
|
15060
|
+
label: external_exports.enum(["Problem", "Solution", "RootCause", "Claim"]),
|
|
15061
|
+
statement: external_exports.string().min(10).max(2e3),
|
|
15062
|
+
claimKind: external_exports.enum(["snapshot", "decision", "constraint"]).nullable(),
|
|
15063
|
+
qualifier: external_exports.enum(["instance", "project"]),
|
|
15064
|
+
conditions: external_exports.array(external_exports.string().min(1).max(300)).max(8),
|
|
15065
|
+
rationale: external_exports.string().min(1).max(1e3).nullable(),
|
|
15066
|
+
evidence: external_exports.array(HistoryEvidenceSelectionSchema).min(1).max(12),
|
|
15067
|
+
anchorTokens: external_exports.array(external_exports.string().regex(/^p[0-9]+$/)).max(8)
|
|
15068
|
+
});
|
|
15069
|
+
HistoryRelationCandidateSchema = external_exports.strictObject({
|
|
15070
|
+
tempId: external_exports.string().regex(/^r[0-9]{1,3}$/),
|
|
15071
|
+
fromTempId: external_exports.string().regex(/^a[0-9]{1,3}$/),
|
|
15072
|
+
toTempId: external_exports.string().regex(/^a[0-9]{1,3}$/),
|
|
15073
|
+
meaning: external_exports.enum(["resolves", "mitigates", "caused-by"]),
|
|
15074
|
+
evidence: external_exports.array(HistoryEvidenceSelectionSchema).min(1).max(8)
|
|
15075
|
+
});
|
|
15076
|
+
HistoryCandidateBatchSchema = external_exports.strictObject({
|
|
15077
|
+
atoms: external_exports.array(HistoryCandidateSchema).max(32),
|
|
15078
|
+
relations: external_exports.array(HistoryRelationCandidateSchema).max(32)
|
|
15079
|
+
});
|
|
15080
|
+
HistoryEvidenceRefSchema = HistoryEvidenceSelectionSchema.extend({
|
|
15081
|
+
blockDigest: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
15082
|
+
startByte: external_exports.number().int().nonnegative(),
|
|
15083
|
+
endByte: external_exports.number().int().nonnegative(),
|
|
15084
|
+
sourceKind: external_exports.enum(["narrative", "diff"]),
|
|
15085
|
+
commitSha: external_exports.string().regex(/^[a-f0-9]{40,64}$/).nullable(),
|
|
15086
|
+
pathToken: external_exports.string().regex(/^p[0-9]+$/).nullable(),
|
|
15087
|
+
scrubberVersion: external_exports.string().max(80),
|
|
15088
|
+
side: external_exports.enum(["before", "after", "context", "mixed", "narrative"])
|
|
15089
|
+
});
|
|
15090
|
+
}
|
|
15091
|
+
});
|
|
15092
|
+
|
|
15020
15093
|
// ../../packages/shared/src/edge-rules.ts
|
|
15021
15094
|
function isValidEdge(from, type, to) {
|
|
15022
15095
|
const rule = EDGE_RULES[type];
|
|
@@ -15055,7 +15128,9 @@ var init_edge_rules = __esm({
|
|
|
15055
15128
|
// ── Security spine (v1 taxonomy.ts SECURITY_FORWARD_ONLY commentary) ──
|
|
15056
15129
|
TARGETS: { from: ["Exploit"], to: ["Vulnerability"] },
|
|
15057
15130
|
ENABLES: { from: ["AntiPattern"], to: ["Vulnerability"] },
|
|
15058
|
-
|
|
15131
|
+
// Partial remedies also apply to project Problems/RootCauses. Direction stays
|
|
15132
|
+
// remedy -> ailment; a mitigation must never claim complete SOLVED_BY status.
|
|
15133
|
+
MITIGATES: { from: ["Solution"], to: ["Vulnerability", "Problem", "RootCause"] },
|
|
15059
15134
|
PRESENTS: { from: ["Solution"], to: ["Problem", "Vulnerability"] },
|
|
15060
15135
|
// SOLVED_BY sources: Vulnerability (v1 comment) + Problem/RootCause
|
|
15061
15136
|
// (upstream design-problem.ts + triage.ts mint both).
|
|
@@ -15145,6 +15220,7 @@ var init_wire = __esm({
|
|
|
15145
15220
|
"../../packages/shared/src/wire.ts"() {
|
|
15146
15221
|
"use strict";
|
|
15147
15222
|
init_zod();
|
|
15223
|
+
init_history_evidence();
|
|
15148
15224
|
init_castalia();
|
|
15149
15225
|
init_edge_rules();
|
|
15150
15226
|
init_symbol_intent();
|
|
@@ -15266,6 +15342,12 @@ var init_wire = __esm({
|
|
|
15266
15342
|
attrs: external_exports.object({
|
|
15267
15343
|
confidence: external_exports.number().min(0).max(1).optional(),
|
|
15268
15344
|
extractedBy: external_exports.enum(INGEST_EXTRACTION_SOURCES).optional(),
|
|
15345
|
+
sourceSupport: external_exports.literal("supported").optional(),
|
|
15346
|
+
historicalAnchors: external_exports.array(HistoryAnchorSourceSchema).max(160).optional(),
|
|
15347
|
+
evidence: external_exports.array(HistoryEvidenceRefSchema).max(12).optional(),
|
|
15348
|
+
verificationEvidence: external_exports.array(HistoryEvidenceRefSchema).max(12).optional(),
|
|
15349
|
+
verifierBuild: external_exports.string().max(80).optional(),
|
|
15350
|
+
unitDigest: external_exports.string().regex(/^[a-f0-9]{64}$/).optional(),
|
|
15269
15351
|
/** Triage route per-context counts (T3 induction). Carried as structured data
|
|
15270
15352
|
* here; stored JSON-encoded on the Neo4j rel (`perContextJson`). */
|
|
15271
15353
|
perContext: external_exports.record(external_exports.string(), RouteContextCountWireSchema).optional(),
|
|
@@ -15362,6 +15444,84 @@ var init_manifests = __esm({
|
|
|
15362
15444
|
}
|
|
15363
15445
|
});
|
|
15364
15446
|
|
|
15447
|
+
// ../../packages/shared/src/history-quality.ts
|
|
15448
|
+
var init_history_quality = __esm({
|
|
15449
|
+
"../../packages/shared/src/history-quality.ts"() {
|
|
15450
|
+
"use strict";
|
|
15451
|
+
}
|
|
15452
|
+
});
|
|
15453
|
+
|
|
15454
|
+
// ../../packages/shared/src/history-read.ts
|
|
15455
|
+
function unpackHistoryAttrs(attrs = {}) {
|
|
15456
|
+
let nested = {};
|
|
15457
|
+
if (typeof attrs["attrsJson"] === "string") {
|
|
15458
|
+
try {
|
|
15459
|
+
const parsed = JSON.parse(attrs["attrsJson"]);
|
|
15460
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) nested = parsed;
|
|
15461
|
+
} catch {
|
|
15462
|
+
}
|
|
15463
|
+
}
|
|
15464
|
+
return { ...nested, ...attrs };
|
|
15465
|
+
}
|
|
15466
|
+
function historyReadPolicy(node, options = {}) {
|
|
15467
|
+
const attrs = unpackHistoryAttrs(node.attrs);
|
|
15468
|
+
if (attrs["source"] === "cloud" && typeof attrs["extractionSource"] !== "string" && attrs["historyQuality"] == null) {
|
|
15469
|
+
return { allow: options.mode !== "passive", history: false, notice: "Cloud provenance is missing; refresh this cached result before using it as a standing prior." };
|
|
15470
|
+
}
|
|
15471
|
+
const isHistory = node.extractionSource === "history-mined" || attrs["extractionSource"] === "history-mined" || attrs["historyQuality"] != null;
|
|
15472
|
+
if (!isHistory) return { allow: true, history: false, notice: null };
|
|
15473
|
+
const raw = attrs["historyQuality"];
|
|
15474
|
+
const q = raw && typeof raw === "object" ? raw : {};
|
|
15475
|
+
const source = q["sourceSupport"] ?? "unreviewed";
|
|
15476
|
+
const applicability = q["applicability"] ?? "unknown";
|
|
15477
|
+
const current = options.atCommit !== void 0 && q["evaluatedAtCommit"] === options.atCommit;
|
|
15478
|
+
const invalid = source === "contradicted" || source === "quarantined";
|
|
15479
|
+
const passive = options.mode === "passive";
|
|
15480
|
+
const validation = node.validationSource ?? attrs["validationSource"];
|
|
15481
|
+
const independentlyValidated = validation === "human-explicit" || validation === "human-implicit" || validation === "agent-observed";
|
|
15482
|
+
const allow = !invalid && (!passive || source === "supported" && current && applicability === "applicable" && independentlyValidated);
|
|
15483
|
+
const at = typeof attrs["commitSha"] === "string" ? ` at ${attrs["commitSha"].slice(0, 12)}` : "";
|
|
15484
|
+
return {
|
|
15485
|
+
allow,
|
|
15486
|
+
history: true,
|
|
15487
|
+
notice: `History-derived${at}; source ${String(source)}; applicability ${current ? String(applicability) : "unknown at this checkout"}; ${independentlyValidated ? "separate validation recorded" : "not independently validated"}.`
|
|
15488
|
+
};
|
|
15489
|
+
}
|
|
15490
|
+
var init_history_read = __esm({
|
|
15491
|
+
"../../packages/shared/src/history-read.ts"() {
|
|
15492
|
+
"use strict";
|
|
15493
|
+
}
|
|
15494
|
+
});
|
|
15495
|
+
|
|
15496
|
+
// ../../packages/shared/src/history-temporal.ts
|
|
15497
|
+
var init_history_temporal = __esm({
|
|
15498
|
+
"../../packages/shared/src/history-temporal.ts"() {
|
|
15499
|
+
"use strict";
|
|
15500
|
+
}
|
|
15501
|
+
});
|
|
15502
|
+
|
|
15503
|
+
// ../../packages/shared/src/history-revision.ts
|
|
15504
|
+
var Sha, HistoryRevisionRequestSchema;
|
|
15505
|
+
var init_history_revision = __esm({
|
|
15506
|
+
"../../packages/shared/src/history-revision.ts"() {
|
|
15507
|
+
"use strict";
|
|
15508
|
+
init_zod();
|
|
15509
|
+
init_hash();
|
|
15510
|
+
init_history_evidence();
|
|
15511
|
+
Sha = external_exports.string().regex(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);
|
|
15512
|
+
HistoryRevisionRequestSchema = external_exports.strictObject({
|
|
15513
|
+
atCommit: Sha,
|
|
15514
|
+
parents: external_exports.array(external_exports.strictObject({ commit: Sha, parents: external_exports.array(Sha).max(32) })).max(8192),
|
|
15515
|
+
observations: external_exports.array(external_exports.strictObject({
|
|
15516
|
+
occurrenceId: external_exports.string().min(1).max(100),
|
|
15517
|
+
symbols: external_exports.array(external_exports.strictObject({ symbolId: external_exports.string().regex(/^sym_[a-f0-9]{8,64}$/), bodyHash: external_exports.string().regex(/^[a-f0-9]{8,64}$/) })).max(32),
|
|
15518
|
+
/** Scrubbed, tokenized net change from this occurrence's source to atCommit. */
|
|
15519
|
+
diff: external_exports.string().max(16e3).optional()
|
|
15520
|
+
})).max(50)
|
|
15521
|
+
});
|
|
15522
|
+
}
|
|
15523
|
+
});
|
|
15524
|
+
|
|
15365
15525
|
// ../../packages/shared/src/nlp/canonicalize.ts
|
|
15366
15526
|
var init_canonicalize = __esm({
|
|
15367
15527
|
"../../packages/shared/src/nlp/canonicalize.ts"() {
|
|
@@ -15391,6 +15551,11 @@ var init_src = __esm({
|
|
|
15391
15551
|
init_project_symbol();
|
|
15392
15552
|
init_lockfile();
|
|
15393
15553
|
init_manifests();
|
|
15554
|
+
init_history_quality();
|
|
15555
|
+
init_history_read();
|
|
15556
|
+
init_history_temporal();
|
|
15557
|
+
init_history_revision();
|
|
15558
|
+
init_history_evidence();
|
|
15394
15559
|
init_hash();
|
|
15395
15560
|
init_error_signature();
|
|
15396
15561
|
init_canonicalize();
|
|
@@ -15400,6 +15565,7 @@ var init_src = __esm({
|
|
|
15400
15565
|
init_predicate();
|
|
15401
15566
|
init_taxonomy();
|
|
15402
15567
|
init_triage_canon();
|
|
15568
|
+
init_history_text();
|
|
15403
15569
|
}
|
|
15404
15570
|
});
|
|
15405
15571
|
|
|
@@ -27323,8 +27489,9 @@ var AGENTS_POINTER_BODY = [
|
|
|
27323
27489
|
|
|
27324
27490
|
// ../../packages/context-writer/src/render.ts
|
|
27325
27491
|
init_src2();
|
|
27492
|
+
init_src();
|
|
27326
27493
|
function buildSnapshot(opts) {
|
|
27327
|
-
const problems = opts.store.findNodesByLabel("Problem").filter((p) => p.attrs["mergedInto"] === void 0);
|
|
27494
|
+
const problems = opts.store.findNodesByLabel("Problem").filter((p) => p.attrs["mergedInto"] === void 0 && historyReadPolicy(p, { mode: "passive" }).allow);
|
|
27328
27495
|
const stillOpen = problems.filter((p) => p.attrs["resolvedAt"] == null);
|
|
27329
27496
|
const allProblems = stillOpen.filter((p) => !isConstraintProblem(p));
|
|
27330
27497
|
allProblems.sort((a, b) => b.lastUpdatedAt - a.lastUpdatedAt);
|
|
@@ -27354,10 +27521,11 @@ function buildSnapshot(opts) {
|
|
|
27354
27521
|
...opts.store.findNodesByLabel("Pattern"),
|
|
27355
27522
|
...opts.store.findNodesByLabel("Technique"),
|
|
27356
27523
|
...opts.store.findNodesByLabel("AntiPattern")
|
|
27357
|
-
].sort((a, b) => b.pageRank - a.pageRank).slice(0, 10);
|
|
27524
|
+
].filter((n) => historyReadPolicy(n, { mode: "passive" }).allow).sort((a, b) => b.pageRank - a.pageRank).slice(0, 10);
|
|
27358
27525
|
const workingFile = opts.workingFile ? sliceForFile(opts.store, opts.workingFile) : void 0;
|
|
27359
27526
|
const byEpisode = /* @__PURE__ */ new Map();
|
|
27360
27527
|
for (const sol of opts.store.findNodesByLabel("Solution")) {
|
|
27528
|
+
if (!historyReadPolicy(sol, { mode: "passive" }).allow) continue;
|
|
27361
27529
|
if (sol.attrs["enrichmentPending"] !== true) continue;
|
|
27362
27530
|
const ep = sol.attrs["episodeId"] ?? sol.id;
|
|
27363
27531
|
const list = byEpisode.get(ep) ?? [];
|
|
@@ -27467,6 +27635,14 @@ function sliceForFile(store2, relPath) {
|
|
|
27467
27635
|
if (externalRefs.length >= 20) break;
|
|
27468
27636
|
}
|
|
27469
27637
|
const fp = priorsForFile(store2, relPath);
|
|
27638
|
+
if (fp) {
|
|
27639
|
+
const allowed = (n) => historyReadPolicy(n, { mode: "passive" }).allow;
|
|
27640
|
+
fp.openProblems = fp.openProblems.filter(allowed);
|
|
27641
|
+
fp.constraints = fp.constraints.filter(allowed);
|
|
27642
|
+
fp.resolvedProblems = fp.resolvedProblems.filter(allowed);
|
|
27643
|
+
fp.related = fp.related.filter(allowed);
|
|
27644
|
+
for (const [id, solutions] of fp.solutionsByProblem) fp.solutionsByProblem.set(id, solutions.filter(allowed));
|
|
27645
|
+
}
|
|
27470
27646
|
const priors = fp ? {
|
|
27471
27647
|
openProblems: fp.openProblems.slice(0, 3).map((p) => ({
|
|
27472
27648
|
id: p.id,
|
|
@@ -27507,6 +27683,7 @@ ${RECALL_FIRST_BODY}`;
|
|
|
27507
27683
|
|
|
27508
27684
|
// ../../packages/context-writer/src/select-durable-memory.ts
|
|
27509
27685
|
init_src2();
|
|
27686
|
+
init_src();
|
|
27510
27687
|
|
|
27511
27688
|
// src/pass-worker.ts
|
|
27512
27689
|
init_src3();
|