@defai.digital/iterate-domain 13.4.4 → 13.4.7
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/controller.d.ts.map +1 -1
- package/dist/controller.js +5 -6
- package/dist/controller.js.map +1 -1
- package/dist/safety.d.ts +6 -0
- package/dist/safety.d.ts.map +1 -1
- package/dist/safety.js +11 -1
- package/dist/safety.js.map +1 -1
- package/package.json +2 -2
- package/src/controller.ts +6 -7
- package/src/safety.ts +13 -1
package/dist/controller.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAG3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAuBrD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;;IAOjC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY;IAmCjD;;OAEG;IACH,cAAc,CACZ,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,MAAM,GACf,qBAAqB;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAG3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAuBrD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;;IAOjC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY;IAmCjD;;OAEG;IACH,cAAc,CACZ,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,MAAM,GACf,qBAAqB;IA6DxB;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAI9C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,cAAc;CAsCvB;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,kBAAkB,CAE5D"}
|
package/dist/controller.js
CHANGED
|
@@ -99,17 +99,18 @@ export class IterateController {
|
|
|
99
99
|
}, 'paused', now, content);
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
+
// INV-ITER-001: Calculate consecutive errors once at the top to avoid duplicate calculations
|
|
103
|
+
const newConsecutiveErrors = intent === 'error' ? state.consecutiveErrors + 1 : 0;
|
|
102
104
|
// Check consecutive errors
|
|
103
105
|
if (intent === 'error') {
|
|
104
|
-
const
|
|
105
|
-
const errorResult = this.safetyGuard.checkErrors(newErrorCount);
|
|
106
|
+
const errorResult = this.safetyGuard.checkErrors(newConsecutiveErrors);
|
|
106
107
|
if (!errorResult.safe) {
|
|
107
108
|
return this.createResponse(state, intent, {
|
|
108
109
|
type: 'PAUSE',
|
|
109
110
|
reason: errorResult.reason ?? 'Too many consecutive errors',
|
|
110
111
|
requiresInput: true,
|
|
111
112
|
suggestedInput: 'Review the errors and decide how to proceed.',
|
|
112
|
-
}, 'paused', now, content,
|
|
113
|
+
}, 'paused', now, content, newConsecutiveErrors);
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
// Map intent to action
|
|
@@ -125,9 +126,7 @@ export class IterateController {
|
|
|
125
126
|
else {
|
|
126
127
|
newStatus = 'running';
|
|
127
128
|
}
|
|
128
|
-
|
|
129
|
-
const consecutiveErrors = intent === 'error' ? state.consecutiveErrors + 1 : 0;
|
|
130
|
-
return this.createResponse(state, intent, action, newStatus, now, content, consecutiveErrors);
|
|
129
|
+
return this.createResponse(state, intent, action, newStatus, now, content, newConsecutiveErrors);
|
|
131
130
|
}
|
|
132
131
|
/**
|
|
133
132
|
* Get auto-response for CONTINUE action
|
package/dist/controller.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAML,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,cAAc,GAAkC;IACpD,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,EAAE,EAAE,0BAA0B;IACxC,OAAO,EAAE,EAAE,EAAE,0BAA0B;IACvC,QAAQ,EAAE,EAAE,EAAE,0BAA0B;IACxC,KAAK,EAAE,EAAE,EAAE,0BAA0B;CACtC,CAAC;AAEF,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,aAAa,CAAgB;IAC7B,WAAW,CAAc;IAEjC;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAA4B;QAChC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,4BAA4B;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE3B,0BAA0B;QAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,OAAO;YACL,SAAS;YACT,MAAM,EAAE,UAAU,EAAE;YACpB,MAAM,EAAE;gBACN,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,IAAI,sBAAsB;gBACtE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,mBAAmB;gBAC3D,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS;aACrC;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;aACV;YACD,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,GAAG;YACd,cAAc,EAAE,GAAG;YACnB,MAAM,EAAE,SAAS;YACjB,iBAAiB,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,KAAmB,EACnB,MAAqB,EACrB,OAAgB;QAEhB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,qCAAqC;QACrC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAErC,qBAAqB;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;gBACxC,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,iBAAiB;gBAChD,aAAa,EAAE,KAAK;aACrB,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;oBACxC,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,qBAAqB;oBACpD,aAAa,EAAE,IAAI;oBACnB,cAAc,EAAE,sDAAsD;iBACvE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"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"}
|
package/dist/safety.d.ts
CHANGED
|
@@ -19,8 +19,14 @@ export declare class SafetyGuard implements ISafetyGuard {
|
|
|
19
19
|
* Compile all patterns into RegExp objects
|
|
20
20
|
*/
|
|
21
21
|
private compilePatterns;
|
|
22
|
+
/**
|
|
23
|
+
* Maximum content length to check (prevents ReDoS attacks)
|
|
24
|
+
* INV-SAFE-001: Content length is bounded to prevent catastrophic regex backtracking
|
|
25
|
+
*/
|
|
26
|
+
private static readonly MAX_CONTENT_LENGTH;
|
|
22
27
|
/**
|
|
23
28
|
* Check content for dangerous patterns
|
|
29
|
+
* INV-SAFE-001: Truncates content to prevent ReDoS
|
|
24
30
|
*/
|
|
25
31
|
checkContent(content: string): SafetyCheckResult;
|
|
26
32
|
/**
|
package/dist/safety.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../src/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA2C/C;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,gBAAgB,CAAW;gBAEvB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAYjD;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB
|
|
1
|
+
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../src/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA2C/C;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,gBAAgB,CAAW;gBAEvB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAYjD;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAW;IAErD;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB;IA2BhD;;OAEG;IACH,WAAW,CAAC,iBAAiB,EAAE,MAAM,GAAG,iBAAiB;IAYzD;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;OAEG;IACH,OAAO,CAAC,WAAW;CAgCpB;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAErF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGtD"}
|
package/dist/safety.js
CHANGED
|
@@ -80,15 +80,25 @@ export class SafetyGuard {
|
|
|
80
80
|
}
|
|
81
81
|
}).filter((p) => p !== null);
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Maximum content length to check (prevents ReDoS attacks)
|
|
85
|
+
* INV-SAFE-001: Content length is bounded to prevent catastrophic regex backtracking
|
|
86
|
+
*/
|
|
87
|
+
static MAX_CONTENT_LENGTH = 100_000;
|
|
83
88
|
/**
|
|
84
89
|
* Check content for dangerous patterns
|
|
90
|
+
* INV-SAFE-001: Truncates content to prevent ReDoS
|
|
85
91
|
*/
|
|
86
92
|
checkContent(content) {
|
|
87
93
|
if (!this.config.enableDangerousPatternDetection) {
|
|
88
94
|
return { safe: true };
|
|
89
95
|
}
|
|
96
|
+
// INV-SAFE-001: Limit content length to prevent ReDoS attacks
|
|
97
|
+
const truncatedContent = content.length > SafetyGuard.MAX_CONTENT_LENGTH
|
|
98
|
+
? content.slice(0, SafetyGuard.MAX_CONTENT_LENGTH)
|
|
99
|
+
: content;
|
|
90
100
|
for (const pattern of this.compiledPatterns) {
|
|
91
|
-
if (pattern.test(
|
|
101
|
+
if (pattern.test(truncatedContent)) {
|
|
92
102
|
// Determine severity based on pattern
|
|
93
103
|
const severity = this.getSeverity(pattern.source);
|
|
94
104
|
return {
|
package/dist/safety.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../src/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,8BAA8B,GAG/B,MAAM,0BAA0B,CAAC;AAGlC,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,0BAA0B,GAAG;IACjC,0BAA0B;IAC1B,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,6BAA6B;IAC7B,cAAc;IACd,SAAS;IACT,iBAAiB;IACjB,WAAW;IACX,YAAY;IACZ,6BAA6B;IAC7B,YAAY;IACZ,0BAA0B;IAC1B,kCAAkC;IAClC,kBAAkB;IAClB,UAAU;IACV,QAAQ;IACR,WAAW;IACX,uBAAuB;IACvB,uBAAuB;IACvB,0BAA0B;IAC1B,4BAA4B;CAC7B,CAAC;AAEF,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAsB;IAC5B,gBAAgB,CAAW;IAEnC,YAAY,MAAqC;QAC/C,IAAI,CAAC,MAAM,GAAG;YACZ,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,8BAA8B;YACpF,+BAA+B,EAAE,MAAM,EAAE,+BAA+B,IAAI,IAAI;YAChF,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,IAAI,0BAA0B;YAC1E,uBAAuB,EAAE,MAAM,EAAE,uBAAuB;SACzD,CAAC;QAEF,mCAAmC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,QAAQ,GAAG;YACf,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAChC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,IAAI,EAAE,CAAC;SAC/C,CAAC;QAEF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACH,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;gBAC5B,OAAO,CAAC,IAAI,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../src/safety.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/iterate-domain",
|
|
3
|
-
"version": "13.4.
|
|
3
|
+
"version": "13.4.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Iterate mode for AutomatosX - autonomous execution with structured intent and safety controls",
|
|
6
6
|
"license": "BUSL-1.1",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@defai.digital/contracts": "13.4.
|
|
36
|
+
"@defai.digital/contracts": "13.4.7"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"typescript": "^5.7.2"
|
package/src/controller.ts
CHANGED
|
@@ -127,17 +127,19 @@ export class IterateController implements IIterateController {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
+
// INV-ITER-001: Calculate consecutive errors once at the top to avoid duplicate calculations
|
|
131
|
+
const newConsecutiveErrors = intent === 'error' ? state.consecutiveErrors + 1 : 0;
|
|
132
|
+
|
|
130
133
|
// Check consecutive errors
|
|
131
134
|
if (intent === 'error') {
|
|
132
|
-
const
|
|
133
|
-
const errorResult = this.safetyGuard.checkErrors(newErrorCount);
|
|
135
|
+
const errorResult = this.safetyGuard.checkErrors(newConsecutiveErrors);
|
|
134
136
|
if (!errorResult.safe) {
|
|
135
137
|
return this.createResponse(state, intent, {
|
|
136
138
|
type: 'PAUSE',
|
|
137
139
|
reason: errorResult.reason ?? 'Too many consecutive errors',
|
|
138
140
|
requiresInput: true,
|
|
139
141
|
suggestedInput: 'Review the errors and decide how to proceed.',
|
|
140
|
-
}, 'paused', now, content,
|
|
142
|
+
}, 'paused', now, content, newConsecutiveErrors);
|
|
141
143
|
}
|
|
142
144
|
}
|
|
143
145
|
|
|
@@ -154,10 +156,7 @@ export class IterateController implements IIterateController {
|
|
|
154
156
|
newStatus = 'running';
|
|
155
157
|
}
|
|
156
158
|
|
|
157
|
-
|
|
158
|
-
const consecutiveErrors = intent === 'error' ? state.consecutiveErrors + 1 : 0;
|
|
159
|
-
|
|
160
|
-
return this.createResponse(state, intent, action, newStatus, now, content, consecutiveErrors);
|
|
159
|
+
return this.createResponse(state, intent, action, newStatus, now, content, newConsecutiveErrors);
|
|
161
160
|
}
|
|
162
161
|
|
|
163
162
|
/**
|
package/src/safety.ts
CHANGED
|
@@ -94,16 +94,28 @@ export class SafetyGuard implements ISafetyGuard {
|
|
|
94
94
|
}).filter((p): p is RegExp => p !== null);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Maximum content length to check (prevents ReDoS attacks)
|
|
99
|
+
* INV-SAFE-001: Content length is bounded to prevent catastrophic regex backtracking
|
|
100
|
+
*/
|
|
101
|
+
private static readonly MAX_CONTENT_LENGTH = 100_000;
|
|
102
|
+
|
|
97
103
|
/**
|
|
98
104
|
* Check content for dangerous patterns
|
|
105
|
+
* INV-SAFE-001: Truncates content to prevent ReDoS
|
|
99
106
|
*/
|
|
100
107
|
checkContent(content: string): SafetyCheckResult {
|
|
101
108
|
if (!this.config.enableDangerousPatternDetection) {
|
|
102
109
|
return { safe: true };
|
|
103
110
|
}
|
|
104
111
|
|
|
112
|
+
// INV-SAFE-001: Limit content length to prevent ReDoS attacks
|
|
113
|
+
const truncatedContent = content.length > SafetyGuard.MAX_CONTENT_LENGTH
|
|
114
|
+
? content.slice(0, SafetyGuard.MAX_CONTENT_LENGTH)
|
|
115
|
+
: content;
|
|
116
|
+
|
|
105
117
|
for (const pattern of this.compiledPatterns) {
|
|
106
|
-
if (pattern.test(
|
|
118
|
+
if (pattern.test(truncatedContent)) {
|
|
107
119
|
// Determine severity based on pattern
|
|
108
120
|
const severity = this.getSeverity(pattern.source);
|
|
109
121
|
|