@n8n/ai-utilities 0.30.0 → 0.31.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 (55) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.js +4 -2
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/model-discovery/chat-model-errors.d.ts +2 -0
  5. package/dist/cjs/model-discovery/chat-model-errors.js +34 -0
  6. package/dist/cjs/model-discovery/chat-model-errors.js.map +1 -0
  7. package/dist/cjs/model-discovery/index.d.ts +5 -0
  8. package/dist/cjs/model-discovery/index.js +17 -1
  9. package/dist/cjs/model-discovery/index.js.map +1 -1
  10. package/dist/cjs/model-discovery/providers/alibaba.d.ts +2 -0
  11. package/dist/cjs/model-discovery/providers/alibaba.js +13 -0
  12. package/dist/cjs/model-discovery/providers/alibaba.js.map +1 -0
  13. package/dist/cjs/model-discovery/providers/minimax.d.ts +1 -0
  14. package/dist/cjs/model-discovery/providers/minimax.js +6 -0
  15. package/dist/cjs/model-discovery/providers/minimax.js.map +1 -0
  16. package/dist/cjs/model-discovery/providers/moonshotai.d.ts +1 -0
  17. package/dist/cjs/model-discovery/providers/moonshotai.js +6 -0
  18. package/dist/cjs/model-discovery/providers/moonshotai.js.map +1 -0
  19. package/dist/cjs/model-discovery/request.d.ts +3 -0
  20. package/dist/cjs/model-discovery/request.js +12 -0
  21. package/dist/cjs/model-discovery/request.js.map +1 -1
  22. package/dist/cjs/typecheck.tsbuildinfo +1 -1
  23. package/dist/cjs/utils/log-ai-event.js +3 -1
  24. package/dist/cjs/utils/log-ai-event.js.map +1 -1
  25. package/dist/cjs/utils/redact-secrets.d.ts +2 -0
  26. package/dist/cjs/utils/redact-secrets.js +99 -0
  27. package/dist/cjs/utils/redact-secrets.js.map +1 -0
  28. package/dist/esm/index.d.ts +1 -0
  29. package/dist/esm/index.js +4 -2
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/model-discovery/chat-model-errors.d.ts +2 -0
  32. package/dist/esm/model-discovery/chat-model-errors.js +34 -0
  33. package/dist/esm/model-discovery/chat-model-errors.js.map +1 -0
  34. package/dist/esm/model-discovery/index.d.ts +5 -0
  35. package/dist/esm/model-discovery/index.js +17 -1
  36. package/dist/esm/model-discovery/index.js.map +1 -1
  37. package/dist/esm/model-discovery/providers/alibaba.d.ts +2 -0
  38. package/dist/esm/model-discovery/providers/alibaba.js +13 -0
  39. package/dist/esm/model-discovery/providers/alibaba.js.map +1 -0
  40. package/dist/esm/model-discovery/providers/minimax.d.ts +1 -0
  41. package/dist/esm/model-discovery/providers/minimax.js +6 -0
  42. package/dist/esm/model-discovery/providers/minimax.js.map +1 -0
  43. package/dist/esm/model-discovery/providers/moonshotai.d.ts +1 -0
  44. package/dist/esm/model-discovery/providers/moonshotai.js +6 -0
  45. package/dist/esm/model-discovery/providers/moonshotai.js.map +1 -0
  46. package/dist/esm/model-discovery/request.d.ts +3 -0
  47. package/dist/esm/model-discovery/request.js +12 -0
  48. package/dist/esm/model-discovery/request.js.map +1 -1
  49. package/dist/esm/typecheck.tsbuildinfo +1 -1
  50. package/dist/esm/utils/log-ai-event.js +3 -1
  51. package/dist/esm/utils/log-ai-event.js.map +1 -1
  52. package/dist/esm/utils/redact-secrets.d.ts +2 -0
  53. package/dist/esm/utils/redact-secrets.js +99 -0
  54. package/dist/esm/utils/redact-secrets.js.map +1 -0
  55. package/package.json +7 -7
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logAiEvent = logAiEvent;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
+ const redact_secrets_1 = require("./redact-secrets");
5
6
  function logAiEvent(executeFunctions, event, data) {
6
7
  try {
7
- executeFunctions.logAiEvent(event, data ? (0, n8n_workflow_1.jsonStringify)(data) : undefined);
8
+ const payload = event === 'ai-tool-called' && data ? (0, redact_secrets_1.sanitizeCredentialShapedValues)(data) : data;
9
+ executeFunctions.logAiEvent(event, payload ? (0, n8n_workflow_1.jsonStringify)(payload) : undefined);
8
10
  }
9
11
  catch (error) {
10
12
  executeFunctions.logger.debug(`Error logging AI event: ${event}`);
@@ -1 +1 @@
1
- {"version":3,"file":"log-ai-event.js","sourceRoot":"","sources":["../../../src/utils/log-ai-event.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAE7C,oBACC,gBAA0D,EAC1D,KAAc,EACd,IAAkB;IAElB,IAAI,CAAC;QACJ,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"log-ai-event.js","sourceRoot":"","sources":["../../../src/utils/log-ai-event.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAE7C,qDAAkE;AAElE,oBACC,gBAA0D,EAC1D,KAAc,EACd,IAAkB;IAElB,IAAI,CAAC;QACJ,MAAM,OAAO,GACZ,KAAK,KAAK,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAA,+CAA8B,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const redactSecrets: (content: string) => string;
2
+ export declare function sanitizeCredentialShapedValues(value: unknown): unknown;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redactSecrets = void 0;
4
+ exports.sanitizeCredentialShapedValues = sanitizeCredentialShapedValues;
5
+ const redact_text_1 = require("@n8n/utils/redaction/redact-text");
6
+ const n8n_workflow_1 = require("n8n-workflow");
7
+ const OPTIONS = { secrets: true, redactSensitiveKeys: true };
8
+ function isPlainObject(value) {
9
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
10
+ }
11
+ function parseJsonObject(value) {
12
+ try {
13
+ const parsed = JSON.parse(value);
14
+ if (parsed !== null && typeof parsed === 'object') {
15
+ return parsed;
16
+ }
17
+ }
18
+ catch {
19
+ return undefined;
20
+ }
21
+ return undefined;
22
+ }
23
+ function serializeJson(original, parsed, redacted) {
24
+ if ((0, n8n_workflow_1.jsonStringify)(redacted) === (0, n8n_workflow_1.jsonStringify)(parsed)) {
25
+ return original;
26
+ }
27
+ return original.includes('\n') ? JSON.stringify(redacted, null, 2) : (0, n8n_workflow_1.jsonStringify)(redacted);
28
+ }
29
+ function parseNestedJson(value) {
30
+ if (typeof value === 'string') {
31
+ const parsed = parseJsonObject(value);
32
+ return parsed === undefined ? value : parseNestedJson(parsed);
33
+ }
34
+ if (Array.isArray(value)) {
35
+ return value.map(parseNestedJson);
36
+ }
37
+ if (isPlainObject(value)) {
38
+ const walked = {};
39
+ for (const [key, child] of Object.entries(value)) {
40
+ walked[key] = parseNestedJson(child);
41
+ }
42
+ return walked;
43
+ }
44
+ return value;
45
+ }
46
+ function restoreJsonStrings(original, redacted) {
47
+ if (typeof original === 'string') {
48
+ const parsed = parseJsonObject(original);
49
+ if (parsed !== undefined) {
50
+ return serializeJson(original, parsed, restoreJsonStrings(parsed, redacted));
51
+ }
52
+ return redacted;
53
+ }
54
+ if (Array.isArray(original) && Array.isArray(redacted)) {
55
+ return original.map((item, index) => restoreJsonStrings(item, redacted[index]));
56
+ }
57
+ if (isPlainObject(original) && isPlainObject(redacted)) {
58
+ const restored = {};
59
+ for (const [key, child] of Object.entries(original)) {
60
+ restored[key] = restoreJsonStrings(child, redacted[key]);
61
+ }
62
+ return restored;
63
+ }
64
+ return redacted;
65
+ }
66
+ function redactJsonValue(value) {
67
+ return restoreJsonStrings(value, (0, redact_text_1.redactDeep)(parseNestedJson(value), OPTIONS).value);
68
+ }
69
+ const redactSecrets = (content) => {
70
+ const parsed = parseJsonObject(content);
71
+ if (parsed !== undefined) {
72
+ return serializeJson(content, parsed, redactJsonValue(parsed));
73
+ }
74
+ const start = content.indexOf('{');
75
+ const end = content.lastIndexOf('}');
76
+ if (start !== -1 && end > start) {
77
+ const slice = content.slice(start, end + 1);
78
+ const nested = parseJsonObject(slice);
79
+ if (nested !== undefined) {
80
+ content =
81
+ content.slice(0, start) +
82
+ serializeJson(slice, nested, redactJsonValue(nested)) +
83
+ content.slice(end + 1);
84
+ }
85
+ }
86
+ return (0, redact_text_1.redactText)(content, OPTIONS).text;
87
+ };
88
+ exports.redactSecrets = redactSecrets;
89
+ function sanitizeCredentialShapedValues(value) {
90
+ if (value !== null && typeof value === 'object') {
91
+ const parsed = (0, n8n_workflow_1.jsonParse)((0, n8n_workflow_1.jsonStringify)(value), { fallbackValue: undefined });
92
+ if (parsed === undefined) {
93
+ throw new Error('Unable to sanitize tool-called payload');
94
+ }
95
+ return redactJsonValue(parsed);
96
+ }
97
+ return redactJsonValue(value);
98
+ }
99
+ //# sourceMappingURL=redact-secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-secrets.js","sourceRoot":"","sources":["../../../src/utils/redact-secrets.ts"],"names":[],"mappings":";;;;AAAA,kEAA0E;AAC1E,+CAAwD;AAExD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AAE7D,SAAS,aAAa,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACrC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAGD,SAAS,aAAa,CAAC,QAAgB,EAAE,MAAe,EAAE,QAAiB;IAC1E,IAAI,IAAA,4BAAa,EAAC,QAAQ,CAAC,KAAK,IAAA,4BAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,QAAQ,CAAC,CAAC;AAC9F,CAAC;AAGD,SAAS,eAAe,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAGD,SAAS,kBAAkB,CAAC,QAAiB,EAAE,QAAiB;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACtC,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAA,wBAAU,EAAC,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAMM,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;gBACN,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;oBACvB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBACrD,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO,IAAA,wBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC,CAAC;AApBW,QAAA,aAAa,GAAb,aAAa,CAoBxB;AAOF,wCAA+C,KAAc;IAC5D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,MAAM,GAAY,IAAA,wBAAS,EAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/ai-utilities",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "Utilities for building AI nodes in n8n",
5
5
  "types": "dist/esm/index.d.ts",
6
6
  "module": "dist/esm/index.js",
@@ -133,12 +133,12 @@
133
133
  "@thednp/dommatrix": "^3.1.1",
134
134
  "pdf-parse": "2.4.5",
135
135
  "undici": "^7.29.0",
136
- "@n8n/api-types": "1.37.0",
137
- "@n8n/backend-network": "1.11.0",
138
- "@n8n/typescript-config": "1.10.0",
139
- "@n8n/utils": "1.45.0",
140
- "@n8n/config": "2.35.0",
141
- "n8n-workflow": "2.37.0"
136
+ "@n8n/api-types": "1.38.0",
137
+ "@n8n/backend-network": "1.12.0",
138
+ "@n8n/typescript-config": "1.11.0",
139
+ "@n8n/config": "2.36.0",
140
+ "n8n-workflow": "2.38.0",
141
+ "@n8n/utils": "1.46.0"
142
142
  },
143
143
  "license": "SEE LICENSE IN LICENSE.md",
144
144
  "homepage": "https://n8n.io",