@loonylabs/llm-middleware 2.7.0 → 2.8.1

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
@@ -714,6 +714,104 @@ For detailed documentation about all parameters, value ranges, and preset config
714
714
 
715
715
  </details>
716
716
 
717
+ ---
718
+
719
+ ### 🔧 Response Processing Options (v2.8.0)
720
+
721
+ <details>
722
+ <summary><strong>📦 Configurable Response Processing</strong></summary>
723
+
724
+ Starting in v2.8.0, you can customize how responses are processed with `ResponseProcessingOptions`:
725
+
726
+ #### Available Options
727
+
728
+ ```typescript
729
+ interface ResponseProcessingOptions {
730
+ extractThinkTags?: boolean; // default: true
731
+ extractMarkdown?: boolean; // default: true
732
+ validateJson?: boolean; // default: true
733
+ cleanJson?: boolean; // default: true
734
+ recipeMode?: 'conservative' | 'aggressive' | 'adaptive';
735
+ }
736
+ ```
737
+
738
+ #### Usage in Use Cases
739
+
740
+ Override `getResponseProcessingOptions()` to customize processing:
741
+
742
+ ```typescript
743
+ // Plain text response (compression, summarization)
744
+ class CompressEntityUseCase extends BaseAIUseCase {
745
+ protected getResponseProcessingOptions(): ResponseProcessingOptions {
746
+ return {
747
+ extractThinkTags: true, // YES: Extract <think> tags
748
+ extractMarkdown: true, // YES: Extract markdown blocks
749
+ validateJson: false, // NO: Skip JSON validation
750
+ cleanJson: false // NO: Skip JSON cleaning
751
+ };
752
+ }
753
+ }
754
+
755
+ // Keep think tags in content
756
+ class DebugUseCase extends BaseAIUseCase {
757
+ protected getResponseProcessingOptions(): ResponseProcessingOptions {
758
+ return {
759
+ extractThinkTags: false // Keep <think> tags visible
760
+ };
761
+ }
762
+ }
763
+
764
+ // Conservative JSON cleaning
765
+ class StrictJsonUseCase extends BaseAIUseCase {
766
+ protected getResponseProcessingOptions(): ResponseProcessingOptions {
767
+ return {
768
+ recipeMode: 'conservative' // Minimal JSON fixes
769
+ };
770
+ }
771
+ }
772
+ ```
773
+
774
+ #### Direct Service Usage
775
+
776
+ You can also use `ResponseProcessorService` directly:
777
+
778
+ ```typescript
779
+ import { ResponseProcessorService, ResponseProcessingOptions } from '@loonylabs/llm-middleware';
780
+
781
+ // Plain text (no JSON processing)
782
+ const result = await ResponseProcessorService.processResponseAsync(response, {
783
+ validateJson: false,
784
+ cleanJson: false
785
+ });
786
+
787
+ // Extract markdown but skip JSON
788
+ const result2 = await ResponseProcessorService.processResponseAsync(response, {
789
+ extractMarkdown: true,
790
+ validateJson: false
791
+ });
792
+ ```
793
+
794
+ #### Use Cases
795
+
796
+ - ✅ **Plain text responses**: Compression, summarization, text generation
797
+ - ✅ **Pre-validated JSON**: Skip redundant validation
798
+ - ✅ **Debug/analysis**: Keep think tags in content
799
+ - ✅ **Performance**: Skip unnecessary processing steps
800
+ - ✅ **Custom workflows**: Mix and match extraction features
801
+
802
+ #### Backward Compatibility
803
+
804
+ All options are **optional** with sensible defaults. Existing code works without changes:
805
+
806
+ ```typescript
807
+ // Still works exactly as before
808
+ const result = await ResponseProcessorService.processResponseAsync(response);
809
+ ```
810
+
811
+ </details>
812
+
813
+ ---
814
+
717
815
  ## 🤝 Contributing
718
816
 
719
817
  We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.
@@ -2,6 +2,7 @@ export * from './llm';
2
2
  export * from './json-cleaner';
3
3
  export * from './request-formatter';
4
4
  export * from './response-processor.service';
5
+ export * from './response-processor/types';
5
6
  export * from './model-parameter-manager';
6
7
  export * from './token-estimator';
7
8
  export * from './flat-formatter';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/middleware/services/index.ts"],"names":[],"mappings":"AACA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/middleware/services/index.ts"],"names":[],"mappings":"AACA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
@@ -19,6 +19,7 @@ __exportStar(require("./llm"), exports);
19
19
  __exportStar(require("./json-cleaner"), exports);
20
20
  __exportStar(require("./request-formatter"), exports);
21
21
  __exportStar(require("./response-processor.service"), exports);
22
+ __exportStar(require("./response-processor/types"), exports);
22
23
  __exportStar(require("./model-parameter-manager"), exports);
23
24
  __exportStar(require("./token-estimator"), exports);
24
25
  __exportStar(require("./flat-formatter"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gBAAgB;AAChB,wCAAsB;AACtB,iDAA+B;AAC/B,sDAAoC;AACpC,+DAA6C;AAC7C,4DAA0C;AAC1C,oDAAkC;AAClC,mDAAiC;AAEjC,mBAAmB;AACnB,qDAAmC;AACnC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gBAAgB;AAChB,wCAAsB;AACtB,iDAA+B;AAC/B,sDAAoC;AACpC,+DAA6C;AAC7C,6DAA2C;AAC3C,4DAA0C;AAC1C,oDAAkC;AAClC,mDAAiC;AAEjC,mBAAmB;AACnB,qDAAmC;AACnC,4DAA0C"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Options for configuring response processing behavior
3
+ *
4
+ * @since 2.8.0
5
+ */
6
+ export interface ResponseProcessingOptions {
7
+ /**
8
+ * Whether to extract and remove <think> tags from the response
9
+ *
10
+ * @default true
11
+ * @example
12
+ * ```typescript
13
+ * // Extract thinking content
14
+ * const result = await processResponseAsync(response, { extractThinkTags: true });
15
+ * console.log(result.thinking); // Content from <think> tags
16
+ *
17
+ * // Keep thinking in main content
18
+ * const result = await processResponseAsync(response, { extractThinkTags: false });
19
+ * console.log(result.thinking); // Empty string
20
+ * ```
21
+ */
22
+ extractThinkTags?: boolean;
23
+ /**
24
+ * Whether to extract content from markdown code blocks (```json, ```text, etc.)
25
+ *
26
+ * @default true
27
+ * @example
28
+ * ```typescript
29
+ * // Extract from markdown blocks
30
+ * const result = await processResponseAsync('```json\n{"key": "value"}\n```', {
31
+ * extractMarkdown: true
32
+ * });
33
+ * console.log(result.cleanedJson); // '{"key": "value"}'
34
+ *
35
+ * // Keep markdown syntax
36
+ * const result = await processResponseAsync('```json\n{"key": "value"}\n```', {
37
+ * extractMarkdown: false
38
+ * });
39
+ * console.log(result.cleanedJson); // '```json\n{"key": "value"}\n```'
40
+ * ```
41
+ */
42
+ extractMarkdown?: boolean;
43
+ /**
44
+ * Whether to validate that the response is valid JSON
45
+ *
46
+ * Set to `false` for use cases that expect plain text responses
47
+ * (e.g., compression, summarization, plain text generation)
48
+ *
49
+ * @default true
50
+ * @example
51
+ * ```typescript
52
+ * // For plain text responses (no JSON validation)
53
+ * const result = await processResponseAsync('This is plain text', {
54
+ * validateJson: false
55
+ * });
56
+ * // No JSON validation errors
57
+ *
58
+ * // For JSON responses (with validation)
59
+ * const result = await processResponseAsync('{"key": "value"}', {
60
+ * validateJson: true
61
+ * });
62
+ * // Validates JSON structure
63
+ * ```
64
+ */
65
+ validateJson?: boolean;
66
+ /**
67
+ * Whether to apply JSON cleaning strategies to fix common issues
68
+ *
69
+ * Set to `false` for use cases that expect plain text or pre-validated JSON
70
+ * Has no effect if `validateJson` is `false`
71
+ *
72
+ * @default true
73
+ * @example
74
+ * ```typescript
75
+ * // For responses that might have JSON issues
76
+ * const result = await processResponseAsync('{"key": "value",}', {
77
+ * cleanJson: true
78
+ * });
79
+ * // Fixes trailing comma
80
+ *
81
+ * // For pre-validated or plain text responses
82
+ * const result = await processResponseAsync('Plain text response', {
83
+ * cleanJson: false,
84
+ * validateJson: false
85
+ * });
86
+ * // No cleaning applied
87
+ * ```
88
+ */
89
+ cleanJson?: boolean;
90
+ /**
91
+ * Recipe system mode for JSON cleaning (only used if cleanJson is true)
92
+ *
93
+ * - 'conservative': Minimal fixes, preserves original structure
94
+ * - 'aggressive': More fixes, may modify structure for valid JSON
95
+ * - 'adaptive': Automatically chooses strategy based on response
96
+ *
97
+ * @default 'adaptive'
98
+ */
99
+ recipeMode?: 'conservative' | 'aggressive' | 'adaptive';
100
+ }
101
+ /**
102
+ * Default options for response processing
103
+ * Ensures backward compatibility with existing behavior
104
+ */
105
+ export declare const DEFAULT_RESPONSE_PROCESSING_OPTIONS: Required<ResponseProcessingOptions>;
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/middleware/services/response-processor/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;CACzD;AAED;;;GAGG;AACH,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CAAC,yBAAyB,CAMnF,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_RESPONSE_PROCESSING_OPTIONS = void 0;
4
+ /**
5
+ * Default options for response processing
6
+ * Ensures backward compatibility with existing behavior
7
+ */
8
+ exports.DEFAULT_RESPONSE_PROCESSING_OPTIONS = {
9
+ extractThinkTags: true,
10
+ extractMarkdown: true,
11
+ validateJson: true,
12
+ cleanJson: true,
13
+ recipeMode: 'adaptive'
14
+ };
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/middleware/services/response-processor/types.ts"],"names":[],"mappings":";;;AAyGA;;;GAGG;AACU,QAAA,mCAAmC,GAAwC;IACtF,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,UAAU;CACvB,CAAC"}
@@ -1,16 +1,50 @@
1
1
  import { CleanedJsonResult } from './json-cleaner';
2
+ import { ResponseProcessingOptions } from './response-processor/types';
2
3
  /**
3
4
  * Service for processing AI model responses
4
5
  * Handles JSON cleaning, content extraction, and response validation
5
6
  */
6
7
  export declare class ResponseProcessorService {
7
8
  /**
8
- * Process the raw AI response by cleaning JSON and extracting thinking content
9
- * Uses the modern Recipe System for better results
9
+ * Process the raw AI response with configurable options
10
+ *
10
11
  * @param response The raw response from the AI model
12
+ * @param options Processing options to control extraction and validation behavior
11
13
  * @returns Processed content with thinking extracted
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // Default behavior (backward compatible)
18
+ * const result = await processResponseAsync(response);
19
+ *
20
+ * // Plain text response (skip JSON cleaning)
21
+ * const result = await processResponseAsync(response, {
22
+ * extractThinkTags: true,
23
+ * extractMarkdown: true,
24
+ * validateJson: false,
25
+ * cleanJson: false
26
+ * });
27
+ *
28
+ * // Custom processing
29
+ * const result = await processResponseAsync(response, {
30
+ * extractThinkTags: false, // Keep <think> in content
31
+ * cleanJson: true, // Clean JSON
32
+ * recipeMode: 'conservative'
33
+ * });
34
+ * ```
35
+ *
36
+ * @since 2.8.0
12
37
  */
13
- static processResponseAsync(response: string): Promise<CleanedJsonResult>;
38
+ static processResponseAsync(response: string, options?: ResponseProcessingOptions): Promise<CleanedJsonResult>;
39
+ /**
40
+ * Extract content from markdown code blocks
41
+ * Handles ```json, ```text, ``` blocks
42
+ *
43
+ * @param response The response potentially containing markdown
44
+ * @returns Content without markdown wrappers
45
+ * @private
46
+ */
47
+ private static extractMarkdownContent;
14
48
  /**
15
49
  * Extract only the thinking content from a response
16
50
  * @param response The raw response from the AI model
@@ -1 +1 @@
1
- {"version":3,"file":"response-processor.service.d.ts","sourceRoot":"","sources":["../../../src/middleware/services/response-processor.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvE;;;GAGG;AACH,qBAAa,wBAAwB;IAEnC;;;;;OAKG;WACiB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKtF;;;;OAIG;WACW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAKvD;;;;OAIG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAItD;;;;OAIG;WACW,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG;QACvD,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB;IASD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAM3B;;;;OAIG;WACW,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUrD;;;;OAIG;WACiB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAevE;;;;OAIG;WACiB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACrE,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,iBAAiB,CAAC;QAC3B,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC;QACvB,WAAW,EAAE,OAAO,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,KAAK,EAAE;YACL,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;IAuBF;;;;OAIG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAyBtD;;;;OAIG;WACW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG;QAC/C,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QACvC,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;KACnC;IAsCD;;;;OAIG;WACW,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;QAChD,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACnC,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;CAiDF"}
1
+ {"version":3,"file":"response-processor.service.d.ts","sourceRoot":"","sources":["../../../src/middleware/services/response-processor.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAuC,MAAM,4BAA4B,CAAC;AAE5G;;;GAGG;AACH,qBAAa,wBAAwB;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;WACiB,oBAAoB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,iBAAiB,CAAC;IAwC7B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IASrC;;;;OAIG;WACW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAKvD;;;;OAIG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAItD;;;;OAIG;WACW,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG;QACvD,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB;IASD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAM3B;;;;OAIG;WACW,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUrD;;;;OAIG;WACiB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAevE;;;;OAIG;WACiB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACrE,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,iBAAiB,CAAC;QAC3B,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC;QACvB,WAAW,EAAE,OAAO,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,KAAK,EAAE;YACL,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;IAuBF;;;;OAIG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAyBtD;;;;OAIG;WACW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG;QAC/C,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QACvC,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;KACnC;IAsCD;;;;OAIG;WACW,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;QAChD,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACnC,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;CAiDF"}
@@ -2,20 +2,91 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResponseProcessorService = void 0;
4
4
  const json_cleaner_1 = require("./json-cleaner");
5
+ const types_1 = require("./response-processor/types");
5
6
  /**
6
7
  * Service for processing AI model responses
7
8
  * Handles JSON cleaning, content extraction, and response validation
8
9
  */
9
10
  class ResponseProcessorService {
10
11
  /**
11
- * Process the raw AI response by cleaning JSON and extracting thinking content
12
- * Uses the modern Recipe System for better results
12
+ * Process the raw AI response with configurable options
13
+ *
13
14
  * @param response The raw response from the AI model
15
+ * @param options Processing options to control extraction and validation behavior
14
16
  * @returns Processed content with thinking extracted
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Default behavior (backward compatible)
21
+ * const result = await processResponseAsync(response);
22
+ *
23
+ * // Plain text response (skip JSON cleaning)
24
+ * const result = await processResponseAsync(response, {
25
+ * extractThinkTags: true,
26
+ * extractMarkdown: true,
27
+ * validateJson: false,
28
+ * cleanJson: false
29
+ * });
30
+ *
31
+ * // Custom processing
32
+ * const result = await processResponseAsync(response, {
33
+ * extractThinkTags: false, // Keep <think> in content
34
+ * cleanJson: true, // Clean JSON
35
+ * recipeMode: 'conservative'
36
+ * });
37
+ * ```
38
+ *
39
+ * @since 2.8.0
15
40
  */
16
- static async processResponseAsync(response) {
17
- // Delegate to JsonCleanerService's modern async method
18
- return json_cleaner_1.JsonCleanerService.processResponseAsync(response);
41
+ static async processResponseAsync(response, options = {}) {
42
+ // Merge with defaults for backward compatibility
43
+ const opts = {
44
+ ...types_1.DEFAULT_RESPONSE_PROCESSING_OPTIONS,
45
+ ...options
46
+ };
47
+ let thinking = '';
48
+ let content = response;
49
+ // Step 1: Extract thinking tags if enabled
50
+ if (opts.extractThinkTags) {
51
+ thinking = this.extractThinking(content);
52
+ content = this.extractContent(content);
53
+ }
54
+ // Step 2: Extract markdown if enabled
55
+ if (opts.extractMarkdown) {
56
+ content = this.extractMarkdownContent(content);
57
+ }
58
+ // Step 3: Clean/validate JSON if enabled
59
+ if (opts.validateJson || opts.cleanJson) {
60
+ // Only call JsonCleaner if content is not empty
61
+ if (content && content.trim().length > 0) {
62
+ const cleaned = await json_cleaner_1.JsonCleanerService.processResponseAsync(content);
63
+ content = cleaned.cleanedJson;
64
+ // Preserve thinking from JsonCleaner if we didn't extract it ourselves
65
+ if (!opts.extractThinkTags && cleaned.thinking) {
66
+ thinking = cleaned.thinking;
67
+ }
68
+ }
69
+ }
70
+ return {
71
+ cleanedJson: content,
72
+ thinking
73
+ };
74
+ }
75
+ /**
76
+ * Extract content from markdown code blocks
77
+ * Handles ```json, ```text, ``` blocks
78
+ *
79
+ * @param response The response potentially containing markdown
80
+ * @returns Content without markdown wrappers
81
+ * @private
82
+ */
83
+ static extractMarkdownContent(response) {
84
+ // Check for markdown code blocks
85
+ const markdownMatch = response.match(/```(?:json|text|)?\s*([\s\S]*?)\s*```/);
86
+ if (markdownMatch && markdownMatch[1]) {
87
+ return markdownMatch[1].trim();
88
+ }
89
+ return response;
19
90
  }
20
91
  /**
21
92
  * Extract only the thinking content from a response
@@ -1 +1 @@
1
- {"version":3,"file":"response-processor.service.js","sourceRoot":"","sources":["../../../src/middleware/services/response-processor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response-processor.service.js","sourceRoot":"","sources":["../../../src/middleware/services/response-processor.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { LLMProvider } from '../../services/llm';
2
2
  import { ModelConfigKey, ValidatedLLMModelConfig } from '../../shared/config/models.config';
3
+ import { ResponseProcessingOptions } from '../../services/response-processor/types';
3
4
  import { BaseAIRequest, BaseAIResult } from '../../shared/types/base-request.types';
4
5
  import { ModelParameterOverrides } from '../../services/model-parameter-manager/model-parameter-manager.service';
5
6
  /**
@@ -75,9 +76,40 @@ export declare abstract class BaseAIUseCase<TPrompt = string, TRequest extends B
75
76
  * @returns The result of the AI processing
76
77
  */
77
78
  execute(request: TRequest): Promise<TResult>;
79
+ /**
80
+ * Get response processing options for this use case
81
+ * Override in specific use cases to customize processing behavior
82
+ *
83
+ * @returns Options for response processing
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * // For plain text responses (compression, summarization)
88
+ * protected getResponseProcessingOptions(): ResponseProcessingOptions {
89
+ * return {
90
+ * extractThinkTags: true, // YES: Extract <think> tags
91
+ * extractMarkdown: true, // YES: Extract markdown blocks
92
+ * validateJson: false, // NO: Skip JSON validation
93
+ * cleanJson: false // NO: Skip JSON cleaning
94
+ * };
95
+ * }
96
+ *
97
+ * // For conservative JSON cleaning
98
+ * protected getResponseProcessingOptions(): ResponseProcessingOptions {
99
+ * return {
100
+ * recipeMode: 'conservative'
101
+ * };
102
+ * }
103
+ * ```
104
+ *
105
+ * @since 2.8.0
106
+ */
107
+ protected getResponseProcessingOptions(): ResponseProcessingOptions;
78
108
  /**
79
109
  * Process the raw AI response using the modern Recipe System
80
110
  * Can be overridden by specific use cases if special processing is needed
111
+ *
112
+ * @since 2.8.0 - Now uses getResponseProcessingOptions() for configurable processing
81
113
  */
82
114
  protected processResponse(response: string): Promise<{
83
115
  cleanedJson: string;
@@ -1 +1 @@
1
- {"version":3,"file":"base-ai.usecase.d.ts","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAkB,cAAc,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAEpF,OAAO,EAAgC,uBAAuB,EAAE,MAAM,wEAAwE,CAAC;AAG/I;;;;;;GAMG;AACH,8BAAsB,aAAa,CACjC,OAAO,GAAG,MAAM,EAChB,QAAQ,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAChE,OAAO,SAAS,YAAY,GAAG,YAAY;IAE3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAElD;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,cAAc,CAAY;IAE9E;;;OAGG;IACH,SAAS,KAAK,cAAc,IAAI,cAAc,CAE7C;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,uBAAuB;IAI9E;;;OAGG;IACH,SAAS,KAAK,WAAW,IAAI,uBAAuB,CAEnD;IAED;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAShD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAEzE;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,uBAAuB;IAI1D;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,WAAW;IAIpC;;;;OAIG;IACU,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA+HzD;;;OAGG;cACa,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAIrG;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;CACjG"}
1
+ {"version":3,"file":"base-ai.usecase.d.ts","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAkB,cAAc,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAEpF,OAAO,EAAgC,uBAAuB,EAAE,MAAM,wEAAwE,CAAC;AAG/I;;;;;;GAMG;AACH,8BAAsB,aAAa,CACjC,OAAO,GAAG,MAAM,EAChB,QAAQ,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAChE,OAAO,SAAS,YAAY,GAAG,YAAY;IAE3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAElD;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,cAAc,CAAY;IAE9E;;;OAGG;IACH,SAAS,KAAK,cAAc,IAAI,cAAc,CAE7C;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,uBAAuB;IAI9E;;;OAGG;IACH,SAAS,KAAK,WAAW,IAAI,uBAAuB,CAEnD;IAED;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAShD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAEzE;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,uBAAuB;IAI1D;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,WAAW;IAIpC;;;;OAIG;IACU,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA+HzD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAS,CAAC,4BAA4B,IAAI,yBAAyB;IAKnE;;;;;OAKG;cACa,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAKrG;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;CACjG"}
@@ -122,8 +122,8 @@ class BaseAIUseCase {
122
122
  if (!result || !result.message) {
123
123
  throw new Error('No response received from the LLM provider');
124
124
  }
125
- // Process the response using the ResponseProcessorService (async for Recipe System)
126
- const { cleanedJson: processedContent, thinking: extractedThinking } = await response_processor_service_1.ResponseProcessorService.processResponseAsync(result.message.content);
125
+ // Process the response using processResponse() method (uses getResponseProcessingOptions())
126
+ const { cleanedJson: processedContent, thinking: extractedThinking } = await this.processResponse(result.message.content);
127
127
  thinking = extractedThinking;
128
128
  success = true;
129
129
  // Extract actual token counts from provider response if available
@@ -152,12 +152,47 @@ class BaseAIUseCase {
152
152
  throw error;
153
153
  }
154
154
  }
155
+ /**
156
+ * Get response processing options for this use case
157
+ * Override in specific use cases to customize processing behavior
158
+ *
159
+ * @returns Options for response processing
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * // For plain text responses (compression, summarization)
164
+ * protected getResponseProcessingOptions(): ResponseProcessingOptions {
165
+ * return {
166
+ * extractThinkTags: true, // YES: Extract <think> tags
167
+ * extractMarkdown: true, // YES: Extract markdown blocks
168
+ * validateJson: false, // NO: Skip JSON validation
169
+ * cleanJson: false // NO: Skip JSON cleaning
170
+ * };
171
+ * }
172
+ *
173
+ * // For conservative JSON cleaning
174
+ * protected getResponseProcessingOptions(): ResponseProcessingOptions {
175
+ * return {
176
+ * recipeMode: 'conservative'
177
+ * };
178
+ * }
179
+ * ```
180
+ *
181
+ * @since 2.8.0
182
+ */
183
+ getResponseProcessingOptions() {
184
+ // Default: Use all features (backward compatible)
185
+ return {};
186
+ }
155
187
  /**
156
188
  * Process the raw AI response using the modern Recipe System
157
189
  * Can be overridden by specific use cases if special processing is needed
190
+ *
191
+ * @since 2.8.0 - Now uses getResponseProcessingOptions() for configurable processing
158
192
  */
159
193
  async processResponse(response) {
160
- return response_processor_service_1.ResponseProcessorService.processResponseAsync(response);
194
+ const options = this.getResponseProcessingOptions();
195
+ return response_processor_service_1.ResponseProcessorService.processResponseAsync(response, options);
161
196
  }
162
197
  }
163
198
  exports.BaseAIUseCase = BaseAIUseCase;
@@ -1 +1 @@
1
- {"version":3,"file":"base-ai.usecase.js","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-ai.usecase.js","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loonylabs/llm-middleware",
3
- "version": "2.7.0",
3
+ "version": "2.8.1",
4
4
  "description": "Complete middleware infrastructure for LLM-based backends with multi-provider support (Ollama, Anthropic, OpenAI, Google)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",