@inerrata-corporation/errata 2.0.2-dev.1196 → 2.0.2-dev.1203

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.
Files changed (2) hide show
  1. package/errata.mjs +28 -6
  2. package/package.json +1 -1
package/errata.mjs CHANGED
@@ -40068,6 +40068,8 @@ var init_reconcile = __esm({
40068
40068
  var mcp_exports = {};
40069
40069
  __export(mcp_exports, {
40070
40070
  INSTRUCTIONS: () => INSTRUCTIONS,
40071
+ RG_REFUTED_DAMP: () => RG_REFUTED_DAMP,
40072
+ RG_SUSPECT_BOOST: () => RG_SUSPECT_BOOST,
40071
40073
  createMcpHandler: () => createMcpHandler,
40072
40074
  runMcpServer: () => runMcpServer,
40073
40075
  runTool: () => runTool,
@@ -40139,6 +40141,22 @@ function takeDiscriminatorNudge(path2) {
40139
40141
  shared.close();
40140
40142
  }
40141
40143
  }
40144
+ function hitState(n) {
40145
+ const reasons = n.attrs["refuteReasons"];
40146
+ if (n.attrs["resolutionSuspect"] === true && n.attrs["resolvedAt"] != null) {
40147
+ return { state: "regression-suspect", factor: RG_SUSPECT_BOOST };
40148
+ }
40149
+ if (n.attrs["refutedAt"] != null) {
40150
+ return { state: "refuted", ...reasons?.[0] ? { refutedWhy: reasons[0] } : {}, factor: RG_REFUTED_DAMP };
40151
+ }
40152
+ if (n.attrs["reopenedFrom"] === "regression") {
40153
+ return { state: "reopened-regression", factor: RG_SUSPECT_BOOST };
40154
+ }
40155
+ if (n.attrs["resolvedAt"] != null && n.attrs["resolvedAs"] == null) {
40156
+ return { state: "resolved", factor: 1 };
40157
+ }
40158
+ return { factor: 1 };
40159
+ }
40142
40160
  function commentAnchorId(store, commentId) {
40143
40161
  const out2 = store.outEdges(commentId, ["EXPLAINS", "ANNOTATES"]);
40144
40162
  if (out2.length > 0) return out2[0].to;
@@ -40203,14 +40221,16 @@ function searchGraph(store, query, limit) {
40203
40221
  }
40204
40222
  add(node2, matched);
40205
40223
  }
40206
- return [...merged.values()].sort(
40207
- (a, b) => rankTier(a.node) - rankTier(b.node) || b.matched - a.matched || b.node.pageRank - a.node.pageRank
40208
- ).slice(0, limit).map(({ node: node2, via }) => ({
40224
+ return [...merged.values()].map((e) => ({ ...e, rg: hitState(e.node) })).sort(
40225
+ (a, b) => rankTier(a.node) - rankTier(b.node) || b.matched - a.matched || b.node.pageRank * b.rg.factor - a.node.pageRank * a.rg.factor
40226
+ ).slice(0, limit).map(({ node: node2, via, rg }) => ({
40209
40227
  id: node2.id,
40210
40228
  label: node2.label,
40211
40229
  description: node2.description,
40212
40230
  pageRank: node2.pageRank,
40213
- ...via ? { via } : {}
40231
+ ...via ? { via } : {},
40232
+ ...rg.state ? { state: rg.state } : {},
40233
+ ...rg.refutedWhy ? { refutedWhy: rg.refutedWhy } : {}
40214
40234
  }));
40215
40235
  }
40216
40236
  function runTool(name2, args2, store, ctx = {}) {
@@ -40503,7 +40523,7 @@ async function runMcpServer(workspaceRoot) {
40503
40523
  if (resp) process.stdout.write(JSON.stringify(resp) + "\n");
40504
40524
  }
40505
40525
  }
40506
- var INSTRUCTIONS, AUDIT_RUN_THRESHOLD, AUDIT_NUDGE_COOLDOWN, DISCRIMINATOR_NUDGE_COOLDOWN, AUDIT_FLAG_NUDGE, TOOLS;
40526
+ var INSTRUCTIONS, AUDIT_RUN_THRESHOLD, AUDIT_NUDGE_COOLDOWN, DISCRIMINATOR_NUDGE_COOLDOWN, AUDIT_FLAG_NUDGE, RG_REFUTED_DAMP, RG_SUSPECT_BOOST, TOOLS;
40507
40527
  var init_mcp = __esm({
40508
40528
  "src/mcp.ts"() {
40509
40529
  "use strict";
@@ -40567,6 +40587,8 @@ var init_mcp = __esm({
40567
40587
  AUDIT_NUDGE_COOLDOWN = 12;
40568
40588
  DISCRIMINATOR_NUDGE_COOLDOWN = 40;
40569
40589
  AUDIT_FLAG_NUDGE = "\u26A1 errata \u2014 reading/auditing? anything you notice that's off, flag it inline as `[!one line]` (`[?\u2026]` = TODO) \u2014 no tool call, we harvest it.";
40590
+ RG_REFUTED_DAMP = 0.75;
40591
+ RG_SUSPECT_BOOST = 1.25;
40570
40592
  TOOLS = [
40571
40593
  {
40572
40594
  name: "errata.switch_context",
@@ -57043,7 +57065,7 @@ function createWatchBreaker(deps) {
57043
57065
  }
57044
57066
 
57045
57067
  // src/engine.ts
57046
- var DAEMON_VERSION = true ? "2.0.2-dev.1196" : "2.0.0-alpha.0";
57068
+ var DAEMON_VERSION = true ? "2.0.2-dev.1203" : "2.0.0-alpha.0";
57047
57069
  var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
57048
57070
  var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
57049
57071
  var GIT_OP_MUTE_MS = 4e3;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inerrata-corporation/errata",
3
- "version": "2.0.2-dev.1196",
3
+ "version": "2.0.2-dev.1203",
4
4
  "description": "errata - local-first observation engine for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {