@nxuss/lemma 1.33.0 → 1.35.0

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 (88) hide show
  1. package/README.md +39 -0
  2. package/bin/brain-ingest.js +28 -0
  3. package/bin/checkpoint.js +6 -0
  4. package/dashboard/README.md +28 -332
  5. package/dashboard/dist/assets/{index-Dh-whqJ7.js → index-euG1IvQ7.js} +82 -82
  6. package/dashboard/dist/index.html +1 -1
  7. package/dist/cjs/cli/hostHooks.d.ts +3 -1
  8. package/dist/cjs/cli/hostHooks.d.ts.map +1 -1
  9. package/dist/cjs/cli/hostHooks.js +31 -13
  10. package/dist/cjs/cli/hostHooks.js.map +1 -1
  11. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  12. package/dist/cjs/cli/lemma-proxy.js +20 -1
  13. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  14. package/dist/cjs/mcp/index.js +2 -0
  15. package/dist/cjs/mcp/index.js.map +1 -1
  16. package/dist/cjs/mcp/staleBuild.d.ts +19 -0
  17. package/dist/cjs/mcp/staleBuild.d.ts.map +1 -1
  18. package/dist/cjs/mcp/staleBuild.js +73 -0
  19. package/dist/cjs/mcp/staleBuild.js.map +1 -1
  20. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  21. package/dist/cjs/mcp/tools/memory.js +84 -13
  22. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  23. package/dist/cjs/proxy/DebuggerState.d.ts +3 -0
  24. package/dist/cjs/proxy/DebuggerState.d.ts.map +1 -0
  25. package/dist/cjs/proxy/DebuggerState.js +18 -0
  26. package/dist/cjs/proxy/DebuggerState.js.map +1 -0
  27. package/dist/cjs/subconscious/ExternalRefs.d.ts +47 -0
  28. package/dist/cjs/subconscious/ExternalRefs.d.ts.map +1 -0
  29. package/dist/cjs/subconscious/ExternalRefs.js +131 -0
  30. package/dist/cjs/subconscious/ExternalRefs.js.map +1 -0
  31. package/dist/cjs/subconscious/HostRecall.d.ts +22 -0
  32. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
  33. package/dist/cjs/subconscious/HostRecall.js +96 -0
  34. package/dist/cjs/subconscious/HostRecall.js.map +1 -1
  35. package/dist/cjs/subconscious/TheBrainV2.d.ts +16 -0
  36. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  37. package/dist/cjs/subconscious/TheBrainV2.js +17 -0
  38. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  39. package/dist/cjs/utils/StoreDraft.d.ts +26 -0
  40. package/dist/cjs/utils/StoreDraft.d.ts.map +1 -0
  41. package/dist/cjs/utils/StoreDraft.js +81 -0
  42. package/dist/cjs/utils/StoreDraft.js.map +1 -0
  43. package/dist/cjs/utils/ageLabel.d.ts +3 -0
  44. package/dist/cjs/utils/ageLabel.d.ts.map +1 -0
  45. package/dist/cjs/utils/ageLabel.js +17 -0
  46. package/dist/cjs/utils/ageLabel.js.map +1 -0
  47. package/dist/esm/cli/hostHooks.d.ts +3 -1
  48. package/dist/esm/cli/hostHooks.d.ts.map +1 -1
  49. package/dist/esm/cli/hostHooks.js +30 -12
  50. package/dist/esm/cli/hostHooks.js.map +1 -1
  51. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  52. package/dist/esm/cli/lemma-proxy.js +20 -1
  53. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  54. package/dist/esm/mcp/index.js +2 -0
  55. package/dist/esm/mcp/index.js.map +1 -1
  56. package/dist/esm/mcp/staleBuild.d.ts +19 -0
  57. package/dist/esm/mcp/staleBuild.d.ts.map +1 -1
  58. package/dist/esm/mcp/staleBuild.js +70 -0
  59. package/dist/esm/mcp/staleBuild.js.map +1 -1
  60. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  61. package/dist/esm/mcp/tools/memory.js +84 -13
  62. package/dist/esm/mcp/tools/memory.js.map +1 -1
  63. package/dist/esm/proxy/DebuggerState.d.ts +3 -0
  64. package/dist/esm/proxy/DebuggerState.d.ts.map +1 -0
  65. package/dist/esm/proxy/DebuggerState.js +14 -0
  66. package/dist/esm/proxy/DebuggerState.js.map +1 -0
  67. package/dist/esm/subconscious/ExternalRefs.d.ts +47 -0
  68. package/dist/esm/subconscious/ExternalRefs.d.ts.map +1 -0
  69. package/dist/esm/subconscious/ExternalRefs.js +124 -0
  70. package/dist/esm/subconscious/ExternalRefs.js.map +1 -0
  71. package/dist/esm/subconscious/HostRecall.d.ts +22 -0
  72. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
  73. package/dist/esm/subconscious/HostRecall.js +93 -0
  74. package/dist/esm/subconscious/HostRecall.js.map +1 -1
  75. package/dist/esm/subconscious/TheBrainV2.d.ts +16 -0
  76. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  77. package/dist/esm/subconscious/TheBrainV2.js +17 -0
  78. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  79. package/dist/esm/utils/StoreDraft.d.ts +26 -0
  80. package/dist/esm/utils/StoreDraft.d.ts.map +1 -0
  81. package/dist/esm/utils/StoreDraft.js +74 -0
  82. package/dist/esm/utils/StoreDraft.js.map +1 -0
  83. package/dist/esm/utils/ageLabel.d.ts +3 -0
  84. package/dist/esm/utils/ageLabel.d.ts.map +1 -0
  85. package/dist/esm/utils/ageLabel.js +14 -0
  86. package/dist/esm/utils/ageLabel.js.map +1 -0
  87. package/package.json +4 -2
  88. package/dashboard/dist/assets/index-Dh-whqJ7.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":";;;;;AAAA,wEAAmE;AACnE,wEAAiF;AACjF,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,kDAA0B;AAC1B,iDAAsC;AACtC,+BAAoC;AAEpC,uCAAgG;AAChG,2CAA2E;AAC3E,mCAA8E;AAC9E,0DAAoD;AACpD,2DAAsD;AACtD,mCAAsE;AAEtE,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,SAAS,WAAW;IAClB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,IAAI,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxF,WAAW,GAAG,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;QACtC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,OAAO;YAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,cAAc,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,eAAe,EAAE,UAAU;YAAE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5E,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACH,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACH,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,cAAc;IAGlB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACtB;YACE,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,cAAc;SACxB,EACD;YACE,YAAY,EAAE;gBACZ,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;gBAC9B,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,4EAA4E;gBAC5E,sEAAsE;gBACtE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;aAC7C;YACD,YAAY,EAAE,gCAAsB;SACrC,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,aAAa;QACnB,IAAA,8BAAoB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAA,iCAAuB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAA,kCAAsB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,0BAAkB,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAEnD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,oFAAoF;QACpF,gFAAgF;QAChF,iFAAiF;QACjF,yEAAyE;QACzE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACK,qBAAqB;QAC3B,IAAI,CAAC;YACH,IAAA,0BAAU,EAAC;gBACT,MAAM,EAAE,iBAAiB;gBACzB,KAAK,EAAE,gCAAsB,CAAC,MAAM,GAAG,IAAA,0BAAkB,GAAE;aAC5D,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IAED,qEAAqE;IAE7D,uBAAuB;QAC7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpC,YAAE,CAAC,aAAa,CACd,eAAe,EACf,0EAA0E,EAC1E,MAAM,CACP,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,YAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,EAAE;gBACtD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC3B,IAAA,iCAAqB,EAAC,IAAI,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,cAAc,EAAE,6DAA6D,CAAC,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,eAAO,EAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO;YAErC,MAAM,OAAO,GAAG,YAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;gBACzD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBAC9B,IAAA,iCAAqB,EAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,eAAe,EAAE,sDAAsD,CAAC,CAAC,CAAC;QAC9G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,eAAO,EAAC,eAAe,EAAE,gCAAgC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,qEAAqE;IAErE;;;;OAIG;IACH,IAAY,aAAa;QACvB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC;YACH,gFAAgF;YAChF,mFAAmF;YACnF,iFAAiF;YACjF,oFAAoF;YACpF,MAAM,IAAI,GAAG,IAAA,oBAAY,GAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClF,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI;oBAAE,OAAO;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;YAED,MAAM,aAAa,GAAG;gBACpB,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC;gBACnD,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC;gBACnD,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBACtC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC;gBACxD,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC;aACjE,CAAC;YAEF,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEnE,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,GAAG,EAAE,IAAI,EAAE;oBAC5B,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,IAAI;oBACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;iBACxB,CAAC,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAC,CAAC;gBAC3F,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,eAAO,EAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,qEAAqE;IAE7D,KAAK,CAAC,cAAc,CAAC,KAAoB;QAC/C,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAA,oBAAY,GAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAClC,eAAK;iBACF,IAAI,CAAC,oBAAoB,IAAI,gBAAgB,EAAE;gBAC9C,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,IAAA,8BAAsB,EAAC,KAAK,CAAC,IAAI,CAAC;gBACxC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;gBACrC,WAAW;gBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,qEAAqE;IAE7D,KAAK,CAAC,iBAAiB;QAC7B,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAA,oBAAY,GAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;gBAC5B,MAAM,eAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,gBAAgB,EAAE;oBACzD,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,UAAU,EAAE,cAAc;iBAC3B,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAA,eAAO,EAAC,UAAU,EAAE,+CAA+C,CAAC,CAAC;IACvE,CAAC;IAED,qEAAqE;IACrE,EAAE;IACF,2FAA2F;IAC3F,4FAA4F;IAC5F,2FAA2F;IAC3F,6FAA6F;IAC7F,+DAA+D;IACvD,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,eAAe,SAAS,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC;YACjE,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC9B,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAI,GAAG,EAAE;qBAChE;iBACF;gBACD,wDAAwD;gBACxD,cAAc,EAAE;oBACd,YAAY,EAAE;wBACZ,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,SAAS;qBACV;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,IAAA,eAAO,EAAC,UAAU,EAAE,oDAAoD,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,qEAAqE;IAE7D,kBAAkB;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,8EAA8E;QAC9E,iFAAiF;QACjF,qDAAqD;QACrD,iFAAiF;QACjF,mFAAmF;QACnF,gFAAgF;QAChF,iEAAiE;QACjE,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC;gBACH,IAAA,qBAAQ,GAAE,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,+EAA+E;YACjF,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,cAAc,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YAC3B,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;AACpC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,23 @@ export interface StaleBuildOptions {
10
10
  export declare function staleBuildNote(options?: StaleBuildOptions): string | null;
11
11
  /** Test hook: forget what was already warned about. */
12
12
  export declare function resetStaleBuildWarning(): void;
13
+ /**
14
+ * staleBuildNote only speaks as a suffix on a tool result, so a user (or agent) who never calls
15
+ * Lemma never learns the running process lacks recent fixes. These two functions let something
16
+ * else — the UserPromptSubmit hook, a fresh process on every prompt — ask the question: each MCP
17
+ * process records which build it loaded, and the hook compares that with dist as it is now.
18
+ */
19
+ export declare function mcpProcessDir(home?: string): string;
20
+ export interface McpProcessOptions {
21
+ entryFile?: string | null;
22
+ dir?: string;
23
+ pid?: number;
24
+ }
25
+ /** Records the build this process loaded. Never throws. */
26
+ export declare function registerMcpProcess(options?: McpProcessOptions): void;
27
+ /**
28
+ * A one-line warning when a live MCP process was started from `entryFile` before its latest
29
+ * build, else null. Prunes records of dead processes on the way. Never throws.
30
+ */
31
+ export declare function staleMcpProcessNote(entryFile: string, dir?: string, isAlive?: (pid: number) => boolean): string | null;
13
32
  //# sourceMappingURL=staleBuild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"staleBuild.d.ts","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,GAAG,IAAI,CAa7E;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
1
+ {"version":3,"file":"staleBuild.d.ts","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,GAAG,IAAI,CAa7E;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAqB,GAAG,MAAM,CAEjE;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAcxE;AAWD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAwB,EAC7B,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAkB,GAC3C,MAAM,GAAG,IAAI,CA0Bf"}
@@ -5,8 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.staleBuildNote = staleBuildNote;
7
7
  exports.resetStaleBuildWarning = resetStaleBuildWarning;
8
+ exports.mcpProcessDir = mcpProcessDir;
9
+ exports.registerMcpProcess = registerMcpProcess;
10
+ exports.staleMcpProcessNote = staleMcpProcessNote;
8
11
  const fs_1 = __importDefault(require("fs"));
9
12
  const path_1 = __importDefault(require("path"));
13
+ const os_1 = __importDefault(require("os"));
10
14
  /**
11
15
  * A running MCP process keeps the code it loaded at startup. `npm run build` rewrites dist, but
12
16
  * the host keeps talking to the old process until it reconnects, so fixes look broken (or look
@@ -52,4 +56,73 @@ function staleBuildNote(options = {}) {
52
56
  function resetStaleBuildWarning() {
53
57
  lastWarnedMtime = 0;
54
58
  }
59
+ /**
60
+ * staleBuildNote only speaks as a suffix on a tool result, so a user (or agent) who never calls
61
+ * Lemma never learns the running process lacks recent fixes. These two functions let something
62
+ * else — the UserPromptSubmit hook, a fresh process on every prompt — ask the question: each MCP
63
+ * process records which build it loaded, and the hook compares that with dist as it is now.
64
+ */
65
+ function mcpProcessDir(home = os_1.default.homedir()) {
66
+ return path_1.default.join(home, ".lemma", "mcp", "processes");
67
+ }
68
+ /** Records the build this process loaded. Never throws. */
69
+ function registerMcpProcess(options = {}) {
70
+ try {
71
+ const entry = options.entryFile === undefined ? defaultEntryFile() : options.entryFile;
72
+ if (!entry || !fs_1.default.existsSync(entry))
73
+ return;
74
+ const dir = options.dir ?? mcpProcessDir();
75
+ fs_1.default.mkdirSync(dir, { recursive: true });
76
+ const pid = options.pid ?? process.pid;
77
+ fs_1.default.writeFileSync(path_1.default.join(dir, `${pid}.json`), JSON.stringify({ pid, entry: fs_1.default.realpathSync(entry), startedAt: STARTED_AT, loadedMtime: fs_1.default.statSync(entry).mtimeMs }));
78
+ }
79
+ catch {
80
+ /* a diagnostic must never be the reason the server fails to start */
81
+ }
82
+ }
83
+ function pidAlive(pid) {
84
+ try {
85
+ process.kill(pid, 0);
86
+ return true;
87
+ }
88
+ catch (e) {
89
+ return e?.code === "EPERM"; // exists, just not ours
90
+ }
91
+ }
92
+ /**
93
+ * A one-line warning when a live MCP process was started from `entryFile` before its latest
94
+ * build, else null. Prunes records of dead processes on the way. Never throws.
95
+ */
96
+ function staleMcpProcessNote(entryFile, dir = mcpProcessDir(), isAlive = pidAlive) {
97
+ try {
98
+ if (!fs_1.default.existsSync(dir) || !fs_1.default.existsSync(entryFile))
99
+ return null;
100
+ const real = fs_1.default.realpathSync(entryFile);
101
+ const current = fs_1.default.statSync(real).mtimeMs;
102
+ let stale = 0;
103
+ for (const f of fs_1.default.readdirSync(dir)) {
104
+ if (!f.endsWith(".json"))
105
+ continue;
106
+ const file = path_1.default.join(dir, f);
107
+ try {
108
+ const rec = JSON.parse(fs_1.default.readFileSync(file, "utf8"));
109
+ if (!rec || typeof rec.pid !== "number" || !isAlive(rec.pid)) {
110
+ fs_1.default.unlinkSync(file);
111
+ continue;
112
+ }
113
+ if (rec.entry === real && current > Number(rec.loadedMtime) + 2000)
114
+ stale++;
115
+ }
116
+ catch {
117
+ /* unreadable record: ignore it */
118
+ }
119
+ }
120
+ return stale > 0
121
+ ? `⚠️ Lemma: ${stale === 1 ? "the running MCP process was" : `${stale} running MCP processes were`} started before the latest build, so recent fixes are NOT active. Reconnect the server (in Claude Code: /mcp → lemma).`
122
+ : null;
123
+ }
124
+ catch {
125
+ return null;
126
+ }
127
+ }
55
128
  //# sourceMappingURL=staleBuild.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"staleBuild.js","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":";;;;;AAgCA,wCAaC;AAGD,wDAEC;AAlDD,4CAAoB;AACpB,gDAAwB;AAExB;;;;GAIG;AACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC9B,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,yFAAyF;AACzF,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD;;;;GAIG;AACH,SAAgB,cAAc,CAAC,UAA6B,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACvF,IAAI,CAAC,KAAK,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC;QAClD,oFAAoF;QACpF,IAAI,KAAK,IAAI,SAAS,GAAG,IAAI,IAAI,KAAK,IAAI,eAAe;YAAE,OAAO,IAAI,CAAC;QACvE,eAAe,GAAG,KAAK,CAAC;QACxB,OAAO,mLAAmL,CAAC;IAC7L,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,SAAgB,sBAAsB;IACpC,eAAe,GAAG,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"staleBuild.js","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE,eAAO,MAAM,uBAAuB,EAAE,cAAc,EAmVnD,CAAC;AAw1BF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiB5D,CAAC"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAShE,eAAO,MAAM,uBAAuB,EAAE,cAAc,EAqVnD,CAAC;AAu5BF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiB5D,CAAC"}
@@ -20,7 +20,14 @@ const utils_1 = require("../utils");
20
20
  const cognitiveMap_1 = require("../cognitiveMap");
21
21
  const SessionEvidence_1 = require("../../utils/SessionEvidence");
22
22
  const NearMiss_1 = require("../../subconscious/NearMiss");
23
+ const ageLabel_1 = require("../../utils/ageLabel");
24
+ const ExternalRefs_1 = require("../../subconscious/ExternalRefs");
23
25
  const TeamBrain_1 = require("../../subconscious/TeamBrain");
26
+ const REFS_SCHEMA = {
27
+ type: "array",
28
+ items: { type: "object" },
29
+ description: "Non-file state it depends on: {kind:'commit',sha} or {kind:mr|issue,provider:github|gitlab,id,state:open|merged|closed} (state it asserts now); verify_memory flags a change.",
30
+ };
24
31
  exports.MEMORY_TOOL_DEFINITIONS = [
25
32
  {
26
33
  name: "list_memories",
@@ -129,6 +136,7 @@ exports.MEMORY_TOOL_DEFINITIONS = [
129
136
  },
130
137
  description: "Split `response` into sub-claims, each with its own evidence, so one going stale doesn't discard the rest. Skip for a single-fact response.",
131
138
  },
139
+ refs: REFS_SCHEMA,
132
140
  domain: {
133
141
  type: "string",
134
142
  description: "Domain tag (e.g. 'auth') for domain-scoped search. Omitted with filePaths set: derived from the first file.",
@@ -186,6 +194,7 @@ exports.MEMORY_TOOL_DEFINITIONS = [
186
194
  description: "Replacement sub-claims (store_memory shape); replaces the set, omit to keep.",
187
195
  },
188
196
  outcome: { type: "string", enum: ["confirmed", "failed"], description: "'confirmed' or 'failed' (dead end)." },
197
+ refs: { type: "array", items: { type: "object" }, description: "Replacement refs (store_memory shape); [] clears." },
189
198
  domain: { type: "string", description: "Replacement domain; '' clears." },
190
199
  derivedFrom: { type: "array", items: { type: "string" }, description: "Replacement upstream ids; [] clears." },
191
200
  supersededBy: { type: "string", description: "Id of the memory that replaces this one; excludes it from search_memory (get_memory still works and points to the successor). Use when two memories contradict. '' un-supersedes." },
@@ -195,8 +204,8 @@ exports.MEMORY_TOOL_DEFINITIONS = [
195
204
  },
196
205
  {
197
206
  name: "verify_memory",
198
- annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
199
- description: "Cheaply revalidate ids from a prior search_memory/store_memory result — batch hash-compare, no BM25/re-search. Each id comes back 'fresh' (every tracked file/symbol still matches), 'stale' (something changed), 'untracked' (the memory tracks nothing, so nothing was checked — this is NOT a clean bill of health), 'unverified' (evidence could not be read) or 'unknown' (purged/renamed, never reported as fresh). Accepts entry ids and claim ids together.",
207
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
208
+ description: "Cheaply revalidate ids from a prior search_memory/store_memory result — batch hash-compare, no BM25/re-search. Each id comes back 'fresh' (every tracked file/symbol still matches), 'stale' (something changed), 'untracked' (the memory tracks nothing, so nothing was checked — this is NOT a clean bill of health), 'unverified' (evidence could not be read) or 'unknown' (purged/renamed, never reported as fresh). Accepts entry ids and claim ids together. Memories stored with external refs (commit / MR / issue) are also checked against git and gh/glab (timeout-bounded; an unreadable state is 'unverified', never 'fresh'). 'fresh' says nothing about MR/issue state for a memory without refs.",
200
209
  inputSchema: {
201
210
  type: "object",
202
211
  properties: {
@@ -384,12 +393,20 @@ async function handleSearchMemory(args) {
384
393
  // searchHybrid already filtered anything below minSimilarity out of `results`, so the
385
394
  // near-miss check needs its own uncapped lookup — countStats:false, this must not
386
395
  // register as a second miss on top of the one searchHybrid just counted.
387
- const uncapped = brain.search(query, 1, 0, { projectId: (0, TheBrainV2_1.deriveProjectId)(), domain, countStats: false });
396
+ const uncapped = brain.search(query, ORIENTATION_LIMIT, 0, { projectId: (0, TheBrainV2_1.deriveProjectId)(), domain, countStats: false });
388
397
  const nearMiss = (0, NearMiss_1.bucketNearMiss)(uncapped[0] ? { id: uncapped[0].id, query: uncapped[0].query, similarity: uncapped[0].similarity } : undefined, minSimilarity);
398
+ // A miss that says nothing cannot tell "nothing related" from "something related at 60%".
399
+ // These are for orientation only: below the floor, never reusable, never credited.
400
+ const related = uncapped
401
+ .filter((r) => r.similarity >= ORIENTATION_MIN)
402
+ .map((r) => ` - ${r.id} (${(r.similarity * 100).toFixed(0)}%, stored ${(0, ageLabel_1.ageLabel)(r.timestamp)}): ${r.query.substring(0, 100)}`);
403
+ const orientation = related.length > 0
404
+ ? `\n\nBelow the reuse floor, for orientation only (not cache hits — get_memory to read, then verify against current state before relying on any):\n${related.join("\n")}`
405
+ : "";
389
406
  return {
390
407
  content: [{
391
408
  type: "text",
392
- text: `No memory in Lemma's Brain scored at or above the ${(minSimilarity * 100).toFixed(0)}% similarity floor for this query. Investigate from scratch — there is nothing safe to reuse.${nearMiss.hint ? ` ${nearMiss.hint}` : ""}`,
409
+ text: `No memory in Lemma's Brain scored at or above the ${(minSimilarity * 100).toFixed(0)}% similarity floor for this query. Investigate from scratch — there is nothing safe to reuse.${nearMiss.hint ? ` ${nearMiss.hint}` : ""}${orientation}`,
393
410
  }],
394
411
  };
395
412
  }
@@ -408,7 +425,7 @@ async function handleSearchMemory(args) {
408
425
  const staleCount = r.claims.filter((c) => !c.fresh).length;
409
426
  return `\nClaims (${r.claims.length - staleCount}/${r.claims.length} still fresh — trust only the ✓ ones):\n${lines.join("\n")}`;
410
427
  };
411
- const formatResult = (r, i) => `Result ${i + 1} (id: ${r.id}, Similarity: ${(r.similarity * 100).toFixed(1)}%)${r.outcome === "failed" ? "\n⚠️ TAGGED AS A FAILED ATTEMPT — this was tried before and did NOT work. Do not repeat it; treat this as a warning, not a suggestion." : ""}${typeof r.tokensSaved === "number" && r.tokensSaved > 0
428
+ const formatResult = (r, i) => `Result ${i + 1} (id: ${r.id}, Similarity: ${(r.similarity * 100).toFixed(1)}%, stored ${(0, ageLabel_1.ageLabel)(r.timestamp)})${r.outcome === "failed" ? "\n⚠️ TAGGED AS A FAILED ATTEMPT — this was tried before and did NOT work. Do not repeat it; treat this as a warning, not a suggestion." : ""}${typeof r.tokensSaved === "number" && r.tokensSaved > 0
412
429
  ? `\n💰 This memory has saved ${r.tokensSaved} tokens across ${r.hits || "?"} reuse(s) — prefer it over re-deriving.`
413
430
  : ""}\nPrompt: ${r.query.substring(0, 300)}...\nResponse: ${typeof r.response === "string" ? r.response : JSON.stringify(r.response, null, 2)}${formatClaims(r)}${Array.isArray(r.evidence) && r.evidence.length > 0
414
431
  ? `\nEvidence: ${r.evidence.map((e) => {
@@ -485,6 +502,14 @@ function relLabel(abs) {
485
502
  const rel = path_1.default.relative(process.cwd(), abs);
486
503
  return rel.startsWith("..") ? abs : rel;
487
504
  }
505
+ /** How many below-floor candidates a miss lists, and the weakest one still worth naming. */
506
+ const ORIENTATION_LIMIT = 3;
507
+ const ORIENTATION_MIN = 0.3;
508
+ /** External refs (commit / MR / issue) an entry carries, as one readable line; "" if none. */
509
+ function refsLine(entry) {
510
+ const refs = Array.isArray(entry.refs) ? entry.refs : [];
511
+ return refs.length > 0 ? `\nExternal refs: ${refs.map(ExternalRefs_1.describeRef).join(", ")} (checked by verify_memory)` : "";
512
+ }
488
513
  /** The files/symbols an entry is judged against, as one readable line. */
489
514
  function trackedLine(entry) {
490
515
  const files = Object.keys(entry.fileHashes || {}).map(relLabel);
@@ -493,7 +518,15 @@ function trackedLine(entry) {
493
518
  return `${relLabel(key.substring(0, sep))}::${key.substring(sep + 2)}`;
494
519
  });
495
520
  const derived = (entry.derivedFrom || []).map((id) => `derived:${id}`);
496
- const all = [...files, ...symbols, ...derived];
521
+ // verify_memory judges each claim by its own evidence (trackedArtifactCount counts it), so
522
+ // this line has to name it too — otherwise an entry whose evidence lives only on its claims
523
+ // reads "tracks nothing" here while verify_memory reports it fresh.
524
+ const claimFiles = (entry.claims || []).flatMap((c) => Object.keys(c.fileHashes || {}).map(relLabel));
525
+ const claimSymbols = (entry.claims || []).flatMap((c) => Object.keys(c.symbolHashes || {}).map((key) => {
526
+ const sep = key.lastIndexOf("::");
527
+ return `${relLabel(key.substring(0, sep))}::${key.substring(sep + 2)}`;
528
+ }));
529
+ const all = [...new Set([...files, ...symbols, ...claimFiles, ...claimSymbols]), ...derived];
497
530
  return all.length > 0
498
531
  ? `Tracks: ${all.join(", ")}`
499
532
  : "Tracks: nothing — freshness cannot be checked for this memory, and verify_memory reports it as 'untracked' rather than 'fresh'.";
@@ -544,7 +577,7 @@ async function handleGetMemory(args) {
544
577
  return {
545
578
  content: [{
546
579
  type: "text",
547
- text: `Memory ${entry.id} — ${status?.status ?? "unknown"}${status?.staleFiles?.length ? ` (changed: ${status.staleFiles.join(", ")})` : ""}\n${facts.join(" · ")}\n${trackedLine(entry)}${claimsBlock}${supersededNote}\n\nQuery: ${entry.query}${body}`,
580
+ text: `Memory ${entry.id} — ${status?.status ?? "unknown"}${status?.staleFiles?.length ? ` (changed: ${status.staleFiles.join(", ")})` : ""}\n${facts.join(" · ")}\n${trackedLine(entry)}${refsLine(entry)}${claimsBlock}${supersededNote}\n\nQuery: ${entry.query}${body}`,
548
581
  }],
549
582
  };
550
583
  }
@@ -572,9 +605,10 @@ async function handleUpdateMemory(args) {
572
605
  ? args.derivedFrom.filter((d) => typeof d === "string" && d)
573
606
  : undefined;
574
607
  const supersededBy = typeof args?.supersededBy === "string" ? args.supersededBy : undefined;
608
+ const refs = Array.isArray(args?.refs) ? (0, ExternalRefs_1.sanitizeRefs)(args.refs) : undefined;
575
609
  if (query === undefined && response === undefined && filePaths === undefined && symbols === undefined &&
576
610
  claims === undefined && outcome === undefined && domain === undefined && derivedFrom === undefined &&
577
- supersededBy === undefined) {
611
+ supersededBy === undefined && refs === undefined) {
578
612
  return {
579
613
  content: [{
580
614
  type: "text",
@@ -583,7 +617,16 @@ async function handleUpdateMemory(args) {
583
617
  };
584
618
  }
585
619
  try {
586
- const result = (0, TheBrainV2_1.getBrain)().update(id, { query, response, filePaths, symbols, claims, outcome, domain, derivedFrom, supersededBy });
620
+ // Refs alone must not re-anchor the entry's file hashes (update() would): attaching "also
621
+ // depends on MR !1061" is not an assertion that the tracked code was re-checked.
622
+ const refsOnly = refs !== undefined && query === undefined && response === undefined && filePaths === undefined &&
623
+ symbols === undefined && claims === undefined && outcome === undefined && domain === undefined &&
624
+ derivedFrom === undefined && supersededBy === undefined;
625
+ if (refsOnly) {
626
+ const ok = (0, TheBrainV2_1.getBrain)().setRefs(id, refs);
627
+ return { content: [{ type: "text", text: ok ? `External refs on "${id}" ${refs.length > 0 ? `set to: ${refs.map(ExternalRefs_1.describeRef).join(", ")}` : "cleared"}. Nothing else was changed.` : `No entry with id "${id}" in the Brain.` }] };
628
+ }
629
+ const result = (0, TheBrainV2_1.getBrain)().update(id, { query, response, filePaths, symbols, claims, outcome, domain, derivedFrom, supersededBy, refs });
587
630
  if (!result.ok)
588
631
  return { content: [{ type: "text", text: result.message }] };
589
632
  (0, TokenReceipt_1.recordReceiptEvent)("tool_call", `update_memory: ${id}`, {
@@ -641,11 +684,14 @@ async function handleStoreMemory(args) {
641
684
  const derivedFrom = Array.isArray(args?.derivedFrom)
642
685
  ? args.derivedFrom.filter((id) => typeof id === "string" && id)
643
686
  : undefined;
687
+ const refs = Array.isArray(args?.refs) ? (0, ExternalRefs_1.sanitizeRefs)(args.refs) : [];
644
688
  if (!query || !responseText)
645
689
  throw new Error("Query and response are required");
646
690
  try {
647
691
  const brain = (0, TheBrainV2_1.getBrain)();
648
692
  const storeRes = brain.store(query, responseText, provider, 0.92, filePaths, undefined, outcome, symbols, claims, domain, derivedFrom, { source: "manual" });
693
+ if (refs.length > 0 && storeRes.id)
694
+ brain.setRefs(storeRes.id, refs);
649
695
  // Storing a memory saves nothing — it only creates the chance of a saving later.
650
696
  // Crediting tokens here inflated the ledger on write and then credited the same
651
697
  // answer again on every read. The saving is booked by search_memory on a fresh hit.
@@ -664,6 +710,7 @@ async function handleStoreMemory(args) {
664
710
  const domainNote = domain
665
711
  ? ` Tagged with domain '${domain}'${explicitDomain ? "" : " (auto-derived from filePaths)"} — domain-scoped searches will prefer it.`
666
712
  : "";
713
+ const refsNote = refs.length > 0 ? ` Also tracking external state: ${refs.map(ExternalRefs_1.describeRef).join(", ")} — verify_memory marks this stale when that changes.` : "";
667
714
  const derivedFromNote = derivedFrom && derivedFrom.length > 0
668
715
  ? ` Derived from ${derivedFrom.length} prior memor${derivedFrom.length === 1 ? "y" : "ies"} — this one goes stale too if any of those do.`
669
716
  : "";
@@ -682,7 +729,7 @@ async function handleStoreMemory(args) {
682
729
  const scrubNote = storeRes.redactions > 0
683
730
  ? ` 🛡 ${storeRes.redactions} secret(s) redacted before storage — credentials are never persisted, only their placeholders.`
684
731
  : "";
685
- return { content: [{ type: "text", text: `Success: Memory stored${idNote}. ${storeRes.reason}${trackingNote}${symbolNote}${autoEvidenceNote}${outcomeNote}${claimsNote}${domainNote}${derivedFromNote}${conflictsNote}${textConflictsNote}${scrubNote}` }] };
732
+ return { content: [{ type: "text", text: `Success: Memory stored${idNote}. ${storeRes.reason}${trackingNote}${symbolNote}${autoEvidenceNote}${outcomeNote}${claimsNote}${domainNote}${refsNote}${derivedFromNote}${conflictsNote}${textConflictsNote}${scrubNote}` }] };
686
733
  }
687
734
  catch (e) {
688
735
  (0, utils_1.logError)("store_memory", e);
@@ -1106,7 +1153,25 @@ async function handleVerifyMemory(args) {
1106
1153
  if (ids.length === 0)
1107
1154
  throw new Error("ids is required and must be a non-empty array");
1108
1155
  try {
1109
- const results = (0, TheBrainV2_1.getBrain)().verifyByIds(ids, { semanticDiff });
1156
+ const brain = (0, TheBrainV2_1.getBrain)();
1157
+ // External refs (commit / MR / issue) are checked here rather than inside the Brain's
1158
+ // freshness walk: they can shell out, and search must stay local and instant.
1159
+ const refNotes = new Map();
1160
+ const results = brain.verifyByIds(ids, { semanticDiff }).map((r) => {
1161
+ const refs = (brain.getEntry(r.id)?.refs || []);
1162
+ if (refs.length === 0 || r.status === "unknown")
1163
+ return r;
1164
+ const verdicts = (0, ExternalRefs_1.checkExternalRefs)(refs, process.cwd());
1165
+ refNotes.set(r.id, verdicts.map((v) => `${v.status === "fresh" ? "✓" : v.status === "stale" ? "✗" : "?"} ${v.detail}`));
1166
+ if (r.status === "stale")
1167
+ return r; // already stale on files; the notes still explain
1168
+ if (verdicts.some((v) => v.status === "stale"))
1169
+ return { ...r, status: "stale" };
1170
+ // Fail closed: an external state that could not be read is not a pass.
1171
+ if (verdicts.some((v) => v.status === "unknown"))
1172
+ return { ...r, status: "unverified" };
1173
+ return { ...r, status: "fresh" };
1174
+ });
1110
1175
  const fresh = results.filter((r) => r.status === "fresh");
1111
1176
  const stale = results.filter((r) => r.status === "stale");
1112
1177
  const unknown = results.filter((r) => r.status === "unknown");
@@ -1123,12 +1188,18 @@ async function handleVerifyMemory(args) {
1123
1188
  const untrackedNote = r.status === "untracked"
1124
1189
  ? " — tracks no files or symbols, so nothing was verified. Not a clean bill of health: check it against the code yourself, then refresh_memory (or update_memory with filePaths/symbols) so it can be verified next time."
1125
1190
  : "";
1126
- return `${r.id}: ${r.status}${untrackedNote}${staleNote}${cosmeticNote}${claimsNote}`;
1191
+ const refNote = refNotes.has(r.id) ? `\n External: ${refNotes.get(r.id).join(" | ")}` : "";
1192
+ return `${r.id}: ${r.status}${untrackedNote}${staleNote}${cosmeticNote}${claimsNote}${refNote}`;
1127
1193
  };
1128
1194
  const summary = `${fresh.length} fresh, ${stale.length} stale, ${untracked.length} untracked, ` +
1129
1195
  `${unverified.length} unverified, ${unknown.length} unknown (of ${results.length} checked).`;
1130
1196
  const lines = results.map(formatOne).join("\n");
1131
- return { content: [{ type: "text", text: `${summary}\n${lines}` }] };
1197
+ // "fresh" is about tracked files and symbols. For a status question ("is X still pending?")
1198
+ // that is not the thing that changes, so say what the verdict does not cover.
1199
+ const scopeNote = fresh.some((r) => !refNotes.has(r.id))
1200
+ ? "\nNote: 'fresh' means the tracked files/symbols are unchanged. It does not cover MR/issue/branch state unless the memory carries external refs — for a status question, check that live (git / gh / glab) before answering."
1201
+ : "";
1202
+ return { content: [{ type: "text", text: `${summary}\n${lines}${scopeNote}` }] };
1132
1203
  }
1133
1204
  catch (e) {
1134
1205
  (0, utils_1.logError)("verify_memory", e);