n8n-nodes-lenz 0.1.3 → 0.1.4

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/README.md CHANGED
@@ -11,6 +11,7 @@ This is an n8n community node. It lets you use **Lenz** in your n8n workflows.
11
11
  [Credentials](#credentials)
12
12
  [Compatibility](#compatibility)
13
13
  [Usage](#usage)
14
+ [Example workflow](#example-workflow)
14
15
  [Resources](#resources)
15
16
  [Version history](#version-history)
16
17
 
@@ -50,6 +51,24 @@ Built against `n8n-workflow` (n8n API version 1) and tested against n8n v2.29.x.
50
51
 
51
52
  New to n8n? See the [Try it out](https://docs.n8n.io/try-it-out/) documentation to get started with the basics first.
52
53
 
54
+ ## Example workflow
55
+
56
+ A simple "fact-check gate" pattern — verify an LLM's output before acting on it:
57
+
58
+ ```
59
+ [LLM node] ──▶ [Lenz node] ──▶ [IF node] ──┬─▶ (true) continue normally
60
+ generates Operation: checks └─▶ (false) route to human review
61
+ an answer Verify (Deep) {{ $json.passed }}
62
+ Claim: {{ $json.text }}
63
+ ```
64
+
65
+ 1. Add an **LLM node** (or any node producing text) upstream.
66
+ 2. Add the **Lenz node**, set Operation to **Verify (Deep)**, and set the Claim field to an expression referencing the upstream output, e.g. `{{ $json.text }}`.
67
+ 3. Add an **IF node** after Lenz with the condition `{{ $json.passed }}` **is true**.
68
+ 4. Wire the true branch to continue the workflow normally, and the false branch to whatever your "needs review" path is (Slack alert, email, a manual-approval step, etc.).
69
+
70
+ For a lighter check on lower-stakes content, swap the Lenz operation to **Assess (Fast)** instead — same wiring, ~5-10s instead of ~90s.
71
+
53
72
  ## Resources
54
73
 
55
74
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
@@ -59,3 +78,5 @@ New to n8n? See the [Try it out](https://docs.n8n.io/try-it-out/) documentation
59
78
  ## Version history
60
79
 
61
80
  * **0.1.0** — Initial release. Verify (Deep), Assess (Fast), Extract Claims, Ask Follow-Up, and Check Usage operations; API-key credential with live test endpoint.
81
+ * **0.1.1 - 0.1.3** — Publishing pipeline fixes (GitHub Actions provenance, npm trusted publishing).
82
+ * **0.1.4** — Bundled `lenz-io` at build time (zero runtime dependencies, required for n8n Cloud verification); added a Jest test suite; fixed an error-message bug in the `NodeApiError` wrapping; replaced the placeholder icon with the real Lenz brand mark.
@@ -1008,6 +1008,8 @@ var Lenz = class {
1008
1008
  } else if (err instanceof lenz_io_1.LenzError) {
1009
1009
  throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: err.message, description: err.toString() }, {
1010
1010
  itemIndex,
1011
+ message: err.message,
1012
+ description: err.toString(),
1011
1013
  httpCode: err.statusCode ? String(err.statusCode) : void 0
1012
1014
  });
1013
1015
  } else {
@@ -1087,6 +1089,8 @@ var Lenz = class {
1087
1089
  if (error instanceof lenz_io_1.LenzError) {
1088
1090
  throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: error.message, description: error.toString() }, {
1089
1091
  itemIndex,
1092
+ message: error.message,
1093
+ description: error.toString(),
1090
1094
  httpCode: error.statusCode ? String(error.statusCode) : void 0
1091
1095
  });
1092
1096
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Lenz.node.js","sourceRoot":"","sources":["../../../nodes/Lenz/Lenz.node.ts"],"names":[],"mappings":";;;AAOA,+CAAqF;AAErF,qCAMiB;AAEjB,SAAS,gBAAgB,CAAC,OAAgB;IACzC,OAAO,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,aAAa,CAAC;AACxD,CAAC;AAED,MAAa,IAAI;IAAjB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE;YAC5D,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,CAAC;YACZ,QAAQ,EAAE,8BAA8B;YACxC,WAAW,EAAE,kFAAkF;YAC/F,QAAQ,EAAE;gBACT,IAAI,EAAE,MAAM;aACZ;YACD,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,KAAK;4BACZ,WAAW,EAAE,0EAA0E;4BACvF,MAAM,EAAE,0BAA0B;yBAClC;wBACD;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,QAAQ;4BACf,WAAW,EAAE,4EAA4E;4BACzF,MAAM,EAAE,wCAAwC;yBAChD;wBACD;4BACC,IAAI,EAAE,aAAa;4BACnB,KAAK,EAAE,OAAO;4BACd,WAAW,EAAE,+CAA+C;4BAC5D,MAAM,EAAE,uBAAuB;yBAC/B;wBACD;4BACC,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,SAAS;4BAChB,WAAW,EAAE,2CAA2C;4BACxD,MAAM,EAAE,0BAA0B;yBAClC;wBACD;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,QAAQ;4BACf,WAAW,EAAE,sFAAsF;4BACnG,MAAM,EAAE,uBAAuB;yBAC/B;qBACD;oBACD,OAAO,EAAE,QAAQ;iBACjB;gBACD;oBACC,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;oBACxB,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;qBAC/B;oBACD,WAAW,EAAE,+GAA+G;iBAC5H;gBACD;oBACC,WAAW,EAAE,MAAM;oBACnB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;oBACxB,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;qBAC1C;oBACD,WAAW,EAAE,+EAA+E;iBAC5F;gBACD;oBACC,WAAW,EAAE,iBAAiB;oBAC9B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE;qBAC5B;oBACD,WAAW,EAAE,2EAA2E;iBACxF;gBACD;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE;qBAC5B;oBACD,WAAW,EAAE,mFAAmF;iBAChG;gBACD;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,iEAAiE;oBAC9E,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;qBAC3D;iBACD;aACD;SACD,CAAC;IAwKH,CAAC;IAtKA,KAAK,CAAC,OAAO;;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,cAAU,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAgB,EAAE,CAAC,CAAC;QAExE,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;gBAC1E,MAAM,QAAQ,GAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAY,IAAI,SAAS,CAAC;gBAE3F,IAAI,YAAyB,CAAC;gBAE9B,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAY,CAAC,IAAI,EAAE,CAAC;oBAC3E,IAAI,CAAC,KAAK,EAAE,CAAC;wBACZ,UAAU,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;4BAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC/B,CAAC,CAAC;wBACH,SAAS;oBACV,CAAC;oBAED,IAAI,CAAC;wBACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAC/D,YAAY,GAAG;4BACd,MAAM,EAAE,WAAW;4BACnB,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;4BACxC,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,IAAI;4BAC/B,UAAU,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI;4BACrC,UAAU,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI;4BACrC,iBAAiB,EAAE,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE;4BACjD,SAAS,EAAE,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;iCAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;iCACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,EAAE,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE,EAAE,GAAG,EAAE,MAAA,CAAC,CAAC,GAAG,mCAAI,EAAE,EAAE,CAAC,CAAA,EAAA,CAAC;4BAC1D,eAAe,EAAE,MAAA,MAAM,CAAC,eAAe,mCAAI,IAAI;yBAC/C,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACd,IAAI,GAAG,YAAY,6BAAmB,EAAE,CAAC;4BACxC,YAAY,GAAG;gCACd,MAAM,EAAE,aAAa;gCACrB,MAAM,EAAE,GAAG,CAAC,IAAI;gCAChB,OAAO,EAAE,GAAG,CAAC,MAAM;gCACnB,OAAO,EAAE,sGAAsG;6BAC/G,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,YAAY,0BAAgB,EAAE,CAAC;4BAC5C,YAAY,GAAG;gCACd,MAAM,EAAE,SAAS;gCACjB,OAAO,EAAE,GAAG,CAAC,MAAM;gCACnB,OAAO,EAAE,sDAAsD,GAAG,GAAG,CAAC,MAAM,GAAG,yCAAyC;6BACxH,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,YAAY,2BAAiB,EAAE,CAAC;4BAC7C,YAAY,GAAG;gCACd,MAAM,EAAE,QAAQ;gCAChB,OAAO,EAAE,GAAG,CAAC,MAAM;gCACnB,OAAO,EAAE,GAAG,CAAC,OAAO;6BACpB,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,YAAY,mBAAS,EAAE,CAAC;4BACrC,MAAM,IAAI,2BAAY,CACrB,IAAI,CAAC,OAAO,EAAE,EACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EACrD;gCACC,SAAS;gCACT,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;6BAC7D,CACD,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACP,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;wBAC5F,CAAC;oBACF,CAAC;gBACF,CAAC;qBAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAY,CAAC,IAAI,EAAE,CAAC;oBACzE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,UAAU,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;4BAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC/B,CAAC,CAAC;wBACH,SAAS;oBACV,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC3B,YAAY,GAAG;4BACd,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;4BACpE,OAAO,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,2CAA2C;4BACpE,gBAAgB,EAAE,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE;yBAC/C,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACP,YAAY,GAAG;4BACd,MAAM,EAAE,IAAI;4BACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;gCAAC,OAAA,CAAC;oCACjC,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE;oCACpB,OAAO,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,IAAI;oCAC1B,UAAU,EAAE,MAAA,CAAC,CAAC,UAAU,mCAAI,IAAI;oCAChC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;oCACnC,gBAAgB,EAAE,MAAA,CAAC,CAAC,gBAAgB,mCAAI,IAAI;iCAC5C,CAAC,CAAA;6BAAA,CAAC;yBACH,CAAC;oBACH,CAAC;gBACF,CAAC;qBAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAY,CAAC,IAAI,EAAE,CAAC;oBACzE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,UAAU,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;4BAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC/B,CAAC,CAAC;wBACH,SAAS;oBACV,CAAC;oBAED,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAA2B,CAAC;gBACrF,CAAC;qBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oBAChC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAW,CAAC;oBACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;oBAExE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACrF,YAAY,GAAG;wBACd,MAAM,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE;qBAC3B,CAAC;gBACH,CAAC;qBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;oBAClC,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAA2B,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,GAAG,SAAS,EAAE;wBAC/E,SAAS;qBACT,CAAC,CAAC;gBACJ,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC/B,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE;wBACzC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC/B,CAAC,CAAC;oBACH,SAAS;gBACV,CAAC;gBAED,IAAI,KAAK,YAAY,iCAAkB,EAAE,CAAC;oBAEzC,MAAM,KAAK,CAAC;gBACb,CAAC;gBAED,IAAI,KAAK,YAAY,mBAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,2BAAY,CACrB,IAAI,CAAC,OAAO,EAAE,EACd,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EACzD;wBACC,SAAS;wBACT,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;qBACjE,CACD,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,2BAAY,CACrB,IAAI,CAAC,OAAO,EAAE,EACd,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EACrC,EAAE,SAAS,EAAE,CACb,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;CACD;AA/RD,oBA+RC"}
1
+ {"version":3,"file":"Lenz.node.js","sourceRoot":"","sources":["../../../nodes/Lenz/Lenz.node.ts"],"names":[],"mappings":";;;AAOA,+CAAqF;AAErF,qCAMiB;AAEjB,SAAS,gBAAgB,CAAC,OAAgB;IACzC,OAAO,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,aAAa,CAAC;AACxD,CAAC;AAED,MAAa,IAAI;IAAjB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE;YAC5D,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,CAAC;YACZ,QAAQ,EAAE,8BAA8B;YACxC,WAAW,EAAE,kFAAkF;YAC/F,QAAQ,EAAE;gBACT,IAAI,EAAE,MAAM;aACZ;YACD,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,KAAK;4BACZ,WAAW,EAAE,0EAA0E;4BACvF,MAAM,EAAE,0BAA0B;yBAClC;wBACD;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,QAAQ;4BACf,WAAW,EAAE,4EAA4E;4BACzF,MAAM,EAAE,wCAAwC;yBAChD;wBACD;4BACC,IAAI,EAAE,aAAa;4BACnB,KAAK,EAAE,OAAO;4BACd,WAAW,EAAE,+CAA+C;4BAC5D,MAAM,EAAE,uBAAuB;yBAC/B;wBACD;4BACC,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,SAAS;4BAChB,WAAW,EAAE,2CAA2C;4BACxD,MAAM,EAAE,0BAA0B;yBAClC;wBACD;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,QAAQ;4BACf,WAAW,EAAE,sFAAsF;4BACnG,MAAM,EAAE,uBAAuB;yBAC/B;qBACD;oBACD,OAAO,EAAE,QAAQ;iBACjB;gBACD;oBACC,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;oBACxB,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;qBAC/B;oBACD,WAAW,EAAE,+GAA+G;iBAC5H;gBACD;oBACC,WAAW,EAAE,MAAM;oBACnB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;oBACxB,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;qBAC1C;oBACD,WAAW,EAAE,+EAA+E;iBAC5F;gBACD;oBACC,WAAW,EAAE,iBAAiB;oBAC9B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE;qBAC5B;oBACD,WAAW,EAAE,2EAA2E;iBACxF;gBACD;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE;qBAC5B;oBACD,WAAW,EAAE,mFAAmF;iBAChG;gBACD;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,iEAAiE;oBAC9E,cAAc,EAAE;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;qBAC3D;iBACD;aACD;SACD,CAAC;IA4KH,CAAC;IA1KA,KAAK,CAAC,OAAO;;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,cAAU,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAgB,EAAE,CAAC,CAAC;QAExE,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;gBAC1E,MAAM,QAAQ,GAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAY,IAAI,SAAS,CAAC;gBAE3F,IAAI,YAAyB,CAAC;gBAE9B,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAY,CAAC,IAAI,EAAE,CAAC;oBAC3E,IAAI,CAAC,KAAK,EAAE,CAAC;wBACZ,UAAU,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;4BAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC/B,CAAC,CAAC;wBACH,SAAS;oBACV,CAAC;oBAED,IAAI,CAAC;wBACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAC/D,YAAY,GAAG;4BACd,MAAM,EAAE,WAAW;4BACnB,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;4BACxC,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,IAAI;4BAC/B,UAAU,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI;4BACrC,UAAU,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI;4BACrC,iBAAiB,EAAE,MAAA,MAAM,CAAC,iBAAiB,mCAAI,EAAE;4BACjD,SAAS,EAAE,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;iCAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;iCACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,EAAE,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE,EAAE,GAAG,EAAE,MAAA,CAAC,CAAC,GAAG,mCAAI,EAAE,EAAE,CAAC,CAAA,EAAA,CAAC;4BAC1D,eAAe,EAAE,MAAA,MAAM,CAAC,eAAe,mCAAI,IAAI;yBAC/C,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACd,IAAI,GAAG,YAAY,6BAAmB,EAAE,CAAC;4BACxC,YAAY,GAAG;gCACd,MAAM,EAAE,aAAa;gCACrB,MAAM,EAAE,GAAG,CAAC,IAAI;gCAChB,OAAO,EAAE,GAAG,CAAC,MAAM;gCACnB,OAAO,EAAE,sGAAsG;6BAC/G,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,YAAY,0BAAgB,EAAE,CAAC;4BAC5C,YAAY,GAAG;gCACd,MAAM,EAAE,SAAS;gCACjB,OAAO,EAAE,GAAG,CAAC,MAAM;gCACnB,OAAO,EAAE,sDAAsD,GAAG,GAAG,CAAC,MAAM,GAAG,yCAAyC;6BACxH,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,YAAY,2BAAiB,EAAE,CAAC;4BAC7C,YAAY,GAAG;gCACd,MAAM,EAAE,QAAQ;gCAChB,OAAO,EAAE,GAAG,CAAC,MAAM;gCACnB,OAAO,EAAE,GAAG,CAAC,OAAO;6BACpB,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,YAAY,mBAAS,EAAE,CAAC;4BACrC,MAAM,IAAI,2BAAY,CACrB,IAAI,CAAC,OAAO,EAAE,EACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EACrD;gCACC,SAAS;gCACT,OAAO,EAAE,GAAG,CAAC,OAAO;gCACpB,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE;gCAC3B,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;6BAC7D,CACD,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACP,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;wBAC5F,CAAC;oBACF,CAAC;gBACF,CAAC;qBAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAY,CAAC,IAAI,EAAE,CAAC;oBACzE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,UAAU,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;4BAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC/B,CAAC,CAAC;wBACH,SAAS;oBACV,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC3B,YAAY,GAAG;4BACd,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;4BACpE,OAAO,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,2CAA2C;4BACpE,gBAAgB,EAAE,MAAA,MAAM,CAAC,gBAAgB,mCAAI,EAAE;yBAC/C,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACP,YAAY,GAAG;4BACd,MAAM,EAAE,IAAI;4BACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;gCAAC,OAAA,CAAC;oCACjC,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE;oCACpB,OAAO,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,IAAI;oCAC1B,UAAU,EAAE,MAAA,CAAC,CAAC,UAAU,mCAAI,IAAI;oCAChC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;oCACnC,gBAAgB,EAAE,MAAA,CAAC,CAAC,gBAAgB,mCAAI,IAAI;iCAC5C,CAAC,CAAA;6BAAA,CAAC;yBACH,CAAC;oBACH,CAAC;gBACF,CAAC;qBAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAY,CAAC,IAAI,EAAE,CAAC;oBACzE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,UAAU,CAAC,IAAI,CAAC;4BACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;4BAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC/B,CAAC,CAAC;wBACH,SAAS;oBACV,CAAC;oBAED,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAA2B,CAAC;gBACrF,CAAC;qBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oBAChC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAW,CAAC;oBACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;oBAExE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACrF,YAAY,GAAG;wBACd,MAAM,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE;qBAC3B,CAAC;gBACH,CAAC;qBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;oBAClC,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAA2B,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,GAAG,SAAS,EAAE;wBAC/E,SAAS;qBACT,CAAC,CAAC;gBACJ,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC/B,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE;wBACzC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC/B,CAAC,CAAC;oBACH,SAAS;gBACV,CAAC;gBAED,IAAI,KAAK,YAAY,iCAAkB,EAAE,CAAC;oBAEzC,MAAM,KAAK,CAAC;gBACb,CAAC;gBAED,IAAI,KAAK,YAAY,mBAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,2BAAY,CACrB,IAAI,CAAC,OAAO,EAAE,EACd,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EACzD;wBACC,SAAS;wBACT,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE;wBAC7B,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;qBACjE,CACD,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,2BAAY,CACrB,IAAI,CAAC,OAAO,EAAE,EACd,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EACrC,EAAE,SAAS,EAAE,CACb,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;CACD;AAnSD,oBAmSC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const n8n_workflow_1 = require("n8n-workflow");
4
+ jest.mock('lenz-io', () => {
5
+ const actual = jest.requireActual('lenz-io');
6
+ return {
7
+ ...actual,
8
+ Lenz: jest.fn(),
9
+ };
10
+ });
11
+ const lenz_io_1 = require("lenz-io");
12
+ const Lenz_node_1 = require("../Lenz.node");
13
+ function mockClientImpl(overrides = {}) {
14
+ return {
15
+ assess: jest.fn(),
16
+ verifyAndWait: jest.fn(),
17
+ extract: jest.fn(),
18
+ usage: jest.fn(),
19
+ ask: { send: jest.fn() },
20
+ ...overrides,
21
+ };
22
+ }
23
+ function createContext(params, continueOnFail = false) {
24
+ const items = [{ json: {} }];
25
+ return {
26
+ getInputData: jest.fn(() => items),
27
+ getNodeParameter: jest.fn((name, _itemIndex, fallback) => {
28
+ if (name in params)
29
+ return params[name];
30
+ return fallback;
31
+ }),
32
+ getCredentials: jest.fn(async () => ({ apiKey: 'lenz_test123' })),
33
+ getNode: jest.fn(() => ({ name: 'Lenz', type: 'lenz', typeVersion: 1, position: [0, 0] })),
34
+ continueOnFail: jest.fn(() => continueOnFail),
35
+ };
36
+ }
37
+ async function runNode(params, client, continueOnFail = false) {
38
+ lenz_io_1.Lenz.mockImplementation(() => client);
39
+ const node = new Lenz_node_1.Lenz();
40
+ const ctx = createContext(params, continueOnFail);
41
+ const result = await node.execute.call(ctx);
42
+ return result[0];
43
+ }
44
+ describe('Lenz node - Assess (Fast)', () => {
45
+ it('derives passed=true for a True verdict and passed=false for a False verdict', async () => {
46
+ const client = mockClientImpl({
47
+ assess: jest.fn().mockResolvedValue({
48
+ claims: [
49
+ { claim: 'A', verdict: 'True', confidence: 'high', verification_url: null },
50
+ { claim: 'B', verdict: 'False', confidence: 'high', verification_url: null },
51
+ { claim: 'C', verdict: 'Mostly True', confidence: 'medium', verification_url: null },
52
+ { claim: 'D', verdict: 'Mostly False', confidence: 'medium', verification_url: null },
53
+ { claim: 'E', verdict: 'Mixed', confidence: 'low', verification_url: null },
54
+ ],
55
+ }),
56
+ });
57
+ const output = await runNode({ operation: 'assess', text: 'some text' }, client);
58
+ expect(output[0].json.status).toBe('ok');
59
+ const claims = output[0].json.claims;
60
+ expect(claims[0].passed).toBe(true);
61
+ expect(claims[1].passed).toBe(false);
62
+ expect(claims[2].passed).toBe(true);
63
+ expect(claims[3].passed).toBe(false);
64
+ expect(claims[4].passed).toBe(false);
65
+ });
66
+ it('skips empty text input instead of failing the batch', async () => {
67
+ const client = mockClientImpl();
68
+ const output = await runNode({ operation: 'assess', text: ' ' }, client);
69
+ expect(output[0].json).toEqual({ skipped: true, reason: 'empty_input' });
70
+ expect(client.assess).not.toHaveBeenCalled();
71
+ });
72
+ it('returns status "ambiguous" with candidate claims when framing cannot pick one', async () => {
73
+ const client = mockClientImpl({
74
+ assess: jest.fn().mockResolvedValue({
75
+ claims: [],
76
+ error: 'Ambiguous input',
77
+ error_code: 'ambiguous',
78
+ candidate_claims: ['Reading A', 'Reading B'],
79
+ }),
80
+ });
81
+ const output = await runNode({ operation: 'assess', text: 'vague text' }, client);
82
+ expect(output[0].json.status).toBe('ambiguous');
83
+ expect(output[0].json.candidate_claims).toEqual(['Reading A', 'Reading B']);
84
+ });
85
+ it('returns status "no_claim" when no verifiable claim is found', async () => {
86
+ const client = mockClientImpl({
87
+ assess: jest.fn().mockResolvedValue({ claims: [], error: 'No claim found' }),
88
+ });
89
+ const output = await runNode({ operation: 'assess', text: 'just chatting' }, client);
90
+ expect(output[0].json.status).toBe('no_claim');
91
+ });
92
+ });
93
+ describe('Lenz node - Verify (Deep)', () => {
94
+ it('returns the full branch-ready object on a completed verification', async () => {
95
+ const client = mockClientImpl({
96
+ verifyAndWait: jest.fn().mockResolvedValue({
97
+ verification_id: 'ver_123',
98
+ verdict: 'False',
99
+ confidence: 'high',
100
+ lenz_score: 2,
101
+ executive_summary: 'This claim is false.',
102
+ sources: [
103
+ { title: 'Source A', url: 'https://a.example' },
104
+ { title: 'No URL source', url: '' },
105
+ { title: 'Source B', url: 'https://b.example' },
106
+ ],
107
+ }),
108
+ });
109
+ const output = await runNode({ operation: 'verify', claim: 'Some claim' }, client);
110
+ const json = output[0].json;
111
+ expect(json.status).toBe('completed');
112
+ expect(json.passed).toBe(false);
113
+ expect(json.verdict).toBe('False');
114
+ expect(json.lenz_score).toBe(2);
115
+ expect(json.verification_id).toBe('ver_123');
116
+ expect(json.citations).toEqual([
117
+ { title: 'Source A', url: 'https://a.example' },
118
+ { title: 'Source B', url: 'https://b.example' },
119
+ ]);
120
+ });
121
+ it('skips empty claim input instead of failing the batch', async () => {
122
+ const client = mockClientImpl();
123
+ const output = await runNode({ operation: 'verify', claim: '' }, client);
124
+ expect(output[0].json).toEqual({ skipped: true, reason: 'empty_input' });
125
+ expect(client.verifyAndWait).not.toHaveBeenCalled();
126
+ });
127
+ it('maps LenzNeedsInputError to a status: needs_input result, not a thrown error', async () => {
128
+ const err = new lenz_io_1.LenzNeedsInputError({ message: 'needs input' });
129
+ err.taskId = 'task_1';
130
+ err.kind = 'multi_claim';
131
+ const client = mockClientImpl({ verifyAndWait: jest.fn().mockRejectedValue(err) });
132
+ const output = await runNode({ operation: 'verify', claim: 'ambiguous claim' }, client);
133
+ const json = output[0].json;
134
+ expect(json.status).toBe('needs_input');
135
+ expect(json.task_id).toBe('task_1');
136
+ expect(json.reason).toBe('multi_claim');
137
+ });
138
+ it('maps LenzTimeoutError to a status: timeout result, not a thrown error', async () => {
139
+ const err = new lenz_io_1.LenzTimeoutError({ message: 'timed out' });
140
+ err.taskId = 'task_2';
141
+ const client = mockClientImpl({ verifyAndWait: jest.fn().mockRejectedValue(err) });
142
+ const output = await runNode({ operation: 'verify', claim: 'slow claim' }, client);
143
+ const json = output[0].json;
144
+ expect(json.status).toBe('timeout');
145
+ expect(json.task_id).toBe('task_2');
146
+ });
147
+ it('maps LenzPipelineError to a status: failed result, not a thrown error', async () => {
148
+ const err = new lenz_io_1.LenzPipelineError({ message: 'Pipeline failed: bad input' });
149
+ err.taskId = 'task_3';
150
+ const client = mockClientImpl({ verifyAndWait: jest.fn().mockRejectedValue(err) });
151
+ const output = await runNode({ operation: 'verify', claim: 'broken claim' }, client);
152
+ const json = output[0].json;
153
+ expect(json.status).toBe('failed');
154
+ expect(json.task_id).toBe('task_3');
155
+ });
156
+ it('wraps an auth error from verifyAndWait in NodeApiError rather than swallowing it', async () => {
157
+ const err = new lenz_io_1.LenzAuthError({ message: 'Unauthorized', statusCode: 401 });
158
+ const client = mockClientImpl({ verifyAndWait: jest.fn().mockRejectedValue(err) });
159
+ lenz_io_1.Lenz.mockImplementation(() => client);
160
+ const node = new Lenz_node_1.Lenz();
161
+ const ctx = createContext({ operation: 'verify', claim: 'claim' });
162
+ await expect(node.execute.call(ctx)).rejects.toThrow(n8n_workflow_1.NodeApiError);
163
+ });
164
+ });
165
+ describe('Lenz node - Extract Claims', () => {
166
+ it('skips empty text input instead of failing the batch', async () => {
167
+ const client = mockClientImpl();
168
+ const output = await runNode({ operation: 'extract', text: ' ' }, client);
169
+ expect(output[0].json).toEqual({ skipped: true, reason: 'empty_input' });
170
+ expect(client.extract).not.toHaveBeenCalled();
171
+ });
172
+ it('passes through the raw extract response', async () => {
173
+ const client = mockClientImpl({
174
+ extract: jest.fn().mockResolvedValue({
175
+ status: 'ready',
176
+ identified_claims: ['Claim A', 'Claim B'],
177
+ domain: 'General',
178
+ }),
179
+ });
180
+ const output = await runNode({ operation: 'extract', text: 'Claim A. Claim B.' }, client);
181
+ expect(output[0].json).toEqual({
182
+ status: 'ready',
183
+ identified_claims: ['Claim A', 'Claim B'],
184
+ domain: 'General',
185
+ });
186
+ });
187
+ });
188
+ describe('Lenz node - Ask Follow-Up', () => {
189
+ it('returns the answer text from a completed verification', async () => {
190
+ const client = mockClientImpl({
191
+ ask: { send: jest.fn().mockResolvedValue({ role: 'expert', content: 'Source X is strongest.' }) },
192
+ });
193
+ const output = await runNode({ operation: 'ask', verificationId: 'ver_123', question: 'Which source is strongest?' }, client);
194
+ expect(output[0].json).toEqual({ answer: 'Source X is strongest.' });
195
+ expect(client.ask.send).toHaveBeenCalledWith('ver_123', {
196
+ message: 'Which source is strongest?',
197
+ language: undefined,
198
+ });
199
+ });
200
+ });
201
+ describe('Lenz node - Check Usage', () => {
202
+ it('passes through the raw usage response', async () => {
203
+ const client = mockClientImpl({
204
+ usage: jest.fn().mockResolvedValue({ plan: 'free', verify: { remaining: 9 } }),
205
+ });
206
+ const output = await runNode({ operation: 'usage' }, client);
207
+ expect(output[0].json).toEqual({ plan: 'free', verify: { remaining: 9 } });
208
+ });
209
+ });
210
+ describe('Lenz node - error handling', () => {
211
+ it('throws NodeOperationError for an unrecognized operation value', async () => {
212
+ const client = mockClientImpl();
213
+ lenz_io_1.Lenz.mockImplementation(() => client);
214
+ const node = new Lenz_node_1.Lenz();
215
+ const ctx = createContext({ operation: 'not_a_real_operation' });
216
+ await expect(node.execute.call(ctx)).rejects.toThrow(n8n_workflow_1.NodeOperationError);
217
+ });
218
+ it('routes a failure to an {error} item instead of throwing when continueOnFail is set', async () => {
219
+ const err = new lenz_io_1.LenzAuthError({ message: 'Unauthorized', statusCode: 401 });
220
+ const client = mockClientImpl({ verifyAndWait: jest.fn().mockRejectedValue(err) });
221
+ const output = await runNode({ operation: 'verify', claim: 'claim' }, client, true);
222
+ expect(output[0].json).toEqual({ error: 'Unauthorized' });
223
+ });
224
+ it('does not double-wrap an already-thrown NodeOperationError', async () => {
225
+ const client = mockClientImpl();
226
+ lenz_io_1.Lenz.mockImplementation(() => client);
227
+ const node = new Lenz_node_1.Lenz();
228
+ const ctx = createContext({ operation: 'bogus' });
229
+ try {
230
+ await node.execute.call(ctx);
231
+ fail('expected execute() to throw');
232
+ }
233
+ catch (e) {
234
+ expect(e).toBeInstanceOf(n8n_workflow_1.NodeOperationError);
235
+ expect(e).not.toBeInstanceOf(n8n_workflow_1.NodeApiError);
236
+ }
237
+ });
238
+ });
239
+ //# sourceMappingURL=Lenz.node.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lenz.node.test.js","sourceRoot":"","sources":["../../../../nodes/Lenz/__tests__/Lenz.node.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="30" cy="30" r="28" fill="#F0F0F5"/>
3
- <path d="M18 30.5L26 38.5L42 20.5" stroke="#1A1A2E" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4540 1512" role="img" aria-label="Lenz">
2
+ <path fill="#E8E4DD" transform="translate(0,1490) scale(1,-1)" d="M428 1490V0H128V1490Z"/>
3
+ <path fill="#E8E4DD" transform="translate(500,1490) scale(1,-1)" d="M633 -22Q462 -22 338.0 48.0Q214 118 147.5 247.0Q81 376 81 553Q81 726 147.5 856.0Q214 986 334.5 1059.0Q455 1132 618 1132Q764 1132 883.0 1070.0Q1002 1008 1072.5 882.0Q1143 756 1143 565V481H378Q383 344 454.0 274.0Q525 204 638 204Q717 204 773.5 237.5Q830 271 854 336L1126 285Q1085 146 956.5 62.0Q828 -22 633 -22ZM380 669H854Q843 778 784.0 842.0Q725 906 621 906Q513 906 451.0 839.5Q389 773 380 669Z"/>
4
+ <path fill="#E8E4DD" transform="translate(1665,1490) scale(1,-1)" d="M428 647V0H128V1118H411L415 887Q462 1004 548.0 1068.0Q634 1132 763 1132Q937 1132 1042.0 1020.0Q1147 908 1147 711V0H847V659Q847 763 793.5 822.0Q740 881 645 881Q549 881 488.5 819.5Q428 758 428 647Z"/>
5
+ <path fill="#E8E4DD" transform="translate(2885,1490) scale(1,-1)" d="M120 0V182L671 868V876H137V1118H1034V919L514 250V242H1053V0Z"/>
6
+ <circle fill="#4B7BE5" cx="4345" cy="1337" r="173"/>
4
7
  </svg>
@@ -1,4 +1,7 @@
1
- <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="30" cy="30" r="28" fill="#1A1A2E"/>
3
- <path d="M18 30.5L26 38.5L42 20.5" stroke="#5EEAD4" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4540 1512" role="img" aria-label="Lenz">
2
+ <path fill="#3D3935" transform="translate(0,1490) scale(1,-1)" d="M428 1490V0H128V1490Z"/>
3
+ <path fill="#3D3935" transform="translate(500,1490) scale(1,-1)" d="M633 -22Q462 -22 338.0 48.0Q214 118 147.5 247.0Q81 376 81 553Q81 726 147.5 856.0Q214 986 334.5 1059.0Q455 1132 618 1132Q764 1132 883.0 1070.0Q1002 1008 1072.5 882.0Q1143 756 1143 565V481H378Q383 344 454.0 274.0Q525 204 638 204Q717 204 773.5 237.5Q830 271 854 336L1126 285Q1085 146 956.5 62.0Q828 -22 633 -22ZM380 669H854Q843 778 784.0 842.0Q725 906 621 906Q513 906 451.0 839.5Q389 773 380 669Z"/>
4
+ <path fill="#3D3935" transform="translate(1665,1490) scale(1,-1)" d="M428 647V0H128V1118H411L415 887Q462 1004 548.0 1068.0Q634 1132 763 1132Q937 1132 1042.0 1020.0Q1147 908 1147 711V0H847V659Q847 763 793.5 822.0Q740 881 645 881Q549 881 488.5 819.5Q428 758 428 647Z"/>
5
+ <path fill="#3D3935" transform="translate(2885,1490) scale(1,-1)" d="M120 0V182L671 868V876H137V1118H1034V919L514 250V242H1053V0Z"/>
6
+ <circle fill="#4B7BE5" cx="4345" cy="1337" r="173"/>
4
7
  </svg>
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-lenz",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Fact-check claims and catch AI hallucinations with Lenz - verified, sourced verdicts inside your n8n workflows.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://lenz.io",
@@ -8,8 +8,8 @@
8
8
  "n8n-community-node-package"
9
9
  ],
10
10
  "author": {
11
- "name": "David Yordanov",
12
- "email": "yordanovdavid@gmail.com"
11
+ "name": "Lenz",
12
+ "email": "kosta.jordanov@lenz.io"
13
13
  },
14
14
  "repository": {
15
15
  "type": "git",
@@ -23,7 +23,8 @@
23
23
  "lint:fix": "n8n-node lint --fix",
24
24
  "release": "n8n-node release",
25
25
  "prepublishOnly": "n8n-node prerelease",
26
- "postbuild": "node scripts/bundle-deps.mjs"
26
+ "postbuild": "node scripts/bundle-deps.mjs",
27
+ "test": "jest"
27
28
  },
28
29
  "files": [
29
30
  "dist"
@@ -43,11 +44,14 @@
43
44
  },
44
45
  "devDependencies": {
45
46
  "@n8n/node-cli": "*",
47
+ "@types/jest": "^30.0.0",
46
48
  "esbuild": "^0.28.1",
47
49
  "eslint": "9.32.0",
50
+ "jest": "^30.4.2",
48
51
  "lenz-io": "^2.3.0",
49
52
  "prettier": "3.6.2",
50
53
  "release-it": "^19.0.4",
54
+ "ts-jest": "^29.4.11",
51
55
  "typescript": "5.9.2"
52
56
  },
53
57
  "peerDependencies": {