@mneme-ai/core 3.90.0 → 3.92.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.
- package/dist/boot/index.js +1 -1
- package/dist/boot/index.js.map +1 -1
- package/dist/change_gate/change_gate.test.d.ts +2 -0
- package/dist/change_gate/change_gate.test.d.ts.map +1 -0
- package/dist/change_gate/change_gate.test.js +22 -0
- package/dist/change_gate/change_gate.test.js.map +1 -0
- package/dist/change_gate/index.d.ts +49 -0
- package/dist/change_gate/index.d.ts.map +1 -0
- package/dist/change_gate/index.js +57 -0
- package/dist/change_gate/index.js.map +1 -0
- package/dist/equiv_receipt/equiv_receipt.test.d.ts +2 -0
- package/dist/equiv_receipt/equiv_receipt.test.d.ts.map +1 -0
- package/dist/equiv_receipt/equiv_receipt.test.js +45 -0
- package/dist/equiv_receipt/equiv_receipt.test.js.map +1 -0
- package/dist/equiv_receipt/index.d.ts +73 -0
- package/dist/equiv_receipt/index.d.ts.map +1 -0
- package/dist/equiv_receipt/index.js +137 -0
- package/dist/equiv_receipt/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/intent_gateway/index.d.ts.map +1 -1
- package/dist/intent_gateway/index.js +3 -0
- package/dist/intent_gateway/index.js.map +1 -1
- package/dist/scar_vaccine/index.d.ts +75 -0
- package/dist/scar_vaccine/index.d.ts.map +1 -0
- package/dist/scar_vaccine/index.js +85 -0
- package/dist/scar_vaccine/index.js.map +1 -0
- package/dist/scar_vaccine/scar_vaccine.test.d.ts +2 -0
- package/dist/scar_vaccine/scar_vaccine.test.d.ts.map +1 -0
- package/dist/scar_vaccine/scar_vaccine.test.js +36 -0
- package/dist/scar_vaccine/scar_vaccine.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { checkChange, vaccinate, scarVaccineGauntlet, BUILTIN_SCARS } from "./index.js";
|
|
3
|
+
const S = BUILTIN_SCARS;
|
|
4
|
+
describe("scar_vaccine", () => {
|
|
5
|
+
it("gauntlet is 100", () => expect(scarVaccineGauntlet().score).toBe(100));
|
|
6
|
+
it("FIRES on a past-mistake shape (retry around charge, no idempotency key)", () => {
|
|
7
|
+
const v = vaccinate({ files: ["payments/retry.ts"], code: "async function chargeWithRetry(req){ for(let i=0;i<3;i++){ await charge(req); } }" }, S);
|
|
8
|
+
expect(v.fires).toBe(true);
|
|
9
|
+
expect(v.firing.some((h) => h.scar.id === "SCAR-double-charge")).toBe(true);
|
|
10
|
+
});
|
|
11
|
+
it("STAYS QUIET when the antibody is present (same shape + idempotency key)", () => {
|
|
12
|
+
const v = vaccinate({ files: ["payments/retry.ts"], code: "async function chargeWithRetry(req){ const idempotencyKey=req.id; for(let i=0;i<3;i++){ await charge({...req,idempotencyKey}); } }" }, S);
|
|
13
|
+
expect(v.fires).toBe(false);
|
|
14
|
+
expect(v.immune.some((h) => h.scar.id === "SCAR-double-charge")).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
it("fires the N+1 scar on a per-row loop query", () => {
|
|
17
|
+
const v = vaccinate({ files: ["api/orders.ts"], code: "for (const o of orders) { await prisma.user.findUnique({where:{id:o.userId}}); }" }, S);
|
|
18
|
+
expect(v.firing.some((h) => h.scar.id === "SCAR-n-plus-1")).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it("is silent on a novel, unrelated change", () => {
|
|
21
|
+
const v = vaccinate({ files: ["ui/Button.tsx"], code: "const color = theme.primary; return color;" }, S);
|
|
22
|
+
expect(v.fires).toBe(false);
|
|
23
|
+
expect(v.immune.length).toBe(0);
|
|
24
|
+
});
|
|
25
|
+
it("respects a custom corpus + the antibody asymmetry", () => {
|
|
26
|
+
const scar = [{ id: "X", severity: "high", title: "t", files: ["mod"], triggers: ["dangerousCall"], antibodies: ["safeGuard"], lesson: "use safeGuard" }];
|
|
27
|
+
expect(vaccinate({ files: ["mod/a.ts"], code: "dangerousCall()" }, scar).fires).toBe(true);
|
|
28
|
+
expect(vaccinate({ files: ["mod/a.ts"], code: "safeGuard(); dangerousCall()" }, scar).fires).toBe(false);
|
|
29
|
+
});
|
|
30
|
+
it("never throws on garbage", () => {
|
|
31
|
+
expect(() => checkChange(null, null)).not.toThrow();
|
|
32
|
+
expect(() => vaccinate(null, null)).not.toThrow();
|
|
33
|
+
expect(vaccinate({}, []).fires).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=scar_vaccine.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scar_vaccine.test.js","sourceRoot":"","sources":["../../src/scar_vaccine/scar_vaccine.test.ts"],"names":[],"mappings":"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"}
|