pulseed 0.1.0 → 0.1.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 +9 -62
- package/dist/cli/commands/suggest-normalizer.d.ts.map +1 -1
- package/dist/cli/commands/suggest-normalizer.js +5 -0
- package/dist/cli/commands/suggest-normalizer.js.map +1 -1
- package/dist/cli/commands/suggest.js +1 -1
- package/dist/cli/commands/task-read.d.ts +4 -0
- package/dist/cli/commands/task-read.d.ts.map +1 -0
- package/dist/cli/commands/task-read.js +195 -0
- package/dist/cli/commands/task-read.js.map +1 -0
- package/dist/cli/setup.js +1 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli-runner.d.ts.map +1 -1
- package/dist/cli-runner.js +19 -0
- package/dist/cli-runner.js.map +1 -1
- package/dist/execution/reflection-generator.d.ts +1 -1
- package/dist/execution/reflection-generator.d.ts.map +1 -1
- package/dist/execution/reflection-generator.js +3 -3
- package/dist/execution/reflection-generator.js.map +1 -1
- package/dist/execution/task-executor.d.ts.map +1 -1
- package/dist/execution/task-executor.js +1 -0
- package/dist/execution/task-executor.js.map +1 -1
- package/dist/execution/task-generation.js +1 -1
- package/dist/execution/task-generation.js.map +1 -1
- package/dist/execution/task-lifecycle.js +1 -1
- package/dist/execution/task-lifecycle.js.map +1 -1
- package/dist/execution/task-verifier.d.ts.map +1 -1
- package/dist/execution/task-verifier.js +11 -2
- package/dist/execution/task-verifier.js.map +1 -1
- package/dist/goal/goal-dependency-graph.d.ts +6 -1
- package/dist/goal/goal-dependency-graph.d.ts.map +1 -1
- package/dist/goal/goal-dependency-graph.js +6 -3
- package/dist/goal/goal-dependency-graph.js.map +1 -1
- package/dist/goal/goal-negotiator.d.ts.map +1 -1
- package/dist/goal/goal-negotiator.js +57 -22
- package/dist/goal/goal-negotiator.js.map +1 -1
- package/dist/goal/goal-refiner.d.ts.map +1 -1
- package/dist/goal/goal-refiner.js +6 -8
- package/dist/goal/goal-refiner.js.map +1 -1
- package/dist/goal/goal-suggest.d.ts +2 -2
- package/dist/goal/goal-suggest.d.ts.map +1 -1
- package/dist/goal/goal-suggest.js +26 -9
- package/dist/goal/goal-suggest.js.map +1 -1
- package/dist/goal/goal-tree-manager.d.ts.map +1 -1
- package/dist/goal/goal-tree-manager.js +8 -10
- package/dist/goal/goal-tree-manager.js.map +1 -1
- package/dist/goal/negotiator-steps.d.ts.map +1 -1
- package/dist/goal/negotiator-steps.js +5 -6
- package/dist/goal/negotiator-steps.js.map +1 -1
- package/dist/goal/refiner-prompts.d.ts +1 -17
- package/dist/goal/refiner-prompts.d.ts.map +1 -1
- package/dist/goal/refiner-prompts.js +1 -65
- package/dist/goal/refiner-prompts.js.map +1 -1
- package/dist/llm/base-llm-client.d.ts +38 -6
- package/dist/llm/base-llm-client.d.ts.map +1 -1
- package/dist/llm/base-llm-client.js +120 -14
- package/dist/llm/base-llm-client.js.map +1 -1
- package/dist/llm/json-sanitizer.d.ts +34 -0
- package/dist/llm/json-sanitizer.d.ts.map +1 -0
- package/dist/llm/json-sanitizer.js +110 -0
- package/dist/llm/json-sanitizer.js.map +1 -0
- package/dist/llm/llm-client.d.ts +8 -1
- package/dist/llm/llm-client.d.ts.map +1 -1
- package/dist/llm/llm-client.js +15 -0
- package/dist/llm/llm-client.js.map +1 -1
- package/dist/observation/capability-detector.d.ts.map +1 -1
- package/dist/observation/capability-detector.js +2 -1
- package/dist/observation/capability-detector.js.map +1 -1
- package/dist/observation/observation-llm.d.ts.map +1 -1
- package/dist/observation/observation-llm.js +3 -1
- package/dist/observation/observation-llm.js.map +1 -1
- package/dist/runtime/daemon-runner.d.ts.map +1 -1
- package/dist/runtime/daemon-runner.js +8 -4
- package/dist/runtime/daemon-runner.js.map +1 -1
- package/dist/tui/entry.js +1 -1
- package/dist/tui/entry.js.map +1 -1
- package/dist/types/task-group.d.ts +15 -0
- package/dist/types/task-group.d.ts.map +1 -1
- package/dist/types/task.d.ts +9 -0
- package/dist/types/task.d.ts.map +1 -1
- package/dist/types/task.js +4 -0
- package/dist/types/task.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"negotiator-steps.js","sourceRoot":"","sources":["../../src/goal/negotiator-steps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"negotiator-steps.js","sourceRoot":"","sources":["../../src/goal/negotiator-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,5 @@
|
|
|
1
1
|
import type { Goal } from "../types/goal.js";
|
|
2
|
-
|
|
3
|
-
* Sanitizes LLM-returned threshold_type strings to valid enum values.
|
|
4
|
-
* Handles the union of all known non-standard values from both
|
|
5
|
-
* GoalRefiner (leaf test) and GoalTreeManager (subgoal decomposition).
|
|
6
|
-
*
|
|
7
|
-
* Uses regex replacement so it works on raw JSON strings before parsing.
|
|
8
|
-
*/
|
|
9
|
-
export declare function sanitizeThresholdTypes(raw: string): string;
|
|
10
|
-
/**
|
|
11
|
-
* Sanitizes LLM-returned threshold_value when threshold_type is "present".
|
|
12
|
-
* When the LLM returns an object (e.g. `{"type":"present"}`) as the value for
|
|
13
|
-
* a present threshold, replace it with null so downstream Zod schemas accept it.
|
|
14
|
-
*
|
|
15
|
-
* Operates on the raw JSON string before parsing to avoid any type-safety issues
|
|
16
|
-
* with the un-parsed LLM output.
|
|
17
|
-
*/
|
|
18
|
-
export declare function sanitizeThresholdValues(raw: string): string;
|
|
2
|
+
export { sanitizeThresholdTypes, sanitizeThresholdValues } from "../llm/json-sanitizer.js";
|
|
19
3
|
/**
|
|
20
4
|
* Builds the leaf test prompt for the GoalRefiner.
|
|
21
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refiner-prompts.d.ts","sourceRoot":"","sources":["../../src/goal/refiner-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"refiner-prompts.d.ts","sourceRoot":"","sources":["../../src/goal/refiner-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAE3F;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,oBAAoB,EAAE,MAAM,EAAE,GAC7B,MAAM,CAkDR"}
|
|
@@ -1,68 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
const THRESHOLD_TYPE_MAP = {
|
|
3
|
-
exact: "match",
|
|
4
|
-
scale: "min",
|
|
5
|
-
qualitative: "min",
|
|
6
|
-
boolean: "present",
|
|
7
|
-
percentage: "min",
|
|
8
|
-
count: "min",
|
|
9
|
-
};
|
|
10
|
-
const VALID_THRESHOLD_TYPES = new Set(["min", "max", "range", "present", "match"]);
|
|
11
|
-
/**
|
|
12
|
-
* Sanitizes LLM-returned threshold_type strings to valid enum values.
|
|
13
|
-
* Handles the union of all known non-standard values from both
|
|
14
|
-
* GoalRefiner (leaf test) and GoalTreeManager (subgoal decomposition).
|
|
15
|
-
*
|
|
16
|
-
* Uses regex replacement so it works on raw JSON strings before parsing.
|
|
17
|
-
*/
|
|
18
|
-
export function sanitizeThresholdTypes(raw) {
|
|
19
|
-
return raw.replace(/"threshold_type"\s*:\s*"([^"]+)"/g, (_match, val) => {
|
|
20
|
-
if (VALID_THRESHOLD_TYPES.has(val))
|
|
21
|
-
return `"threshold_type": "${val}"`;
|
|
22
|
-
const mapped = THRESHOLD_TYPE_MAP[val] ?? "min";
|
|
23
|
-
return `"threshold_type": "${mapped}"`;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Sanitizes LLM-returned threshold_value when threshold_type is "present".
|
|
28
|
-
* When the LLM returns an object (e.g. `{"type":"present"}`) as the value for
|
|
29
|
-
* a present threshold, replace it with null so downstream Zod schemas accept it.
|
|
30
|
-
*
|
|
31
|
-
* Operates on the raw JSON string before parsing to avoid any type-safety issues
|
|
32
|
-
* with the un-parsed LLM output.
|
|
33
|
-
*/
|
|
34
|
-
export function sanitizeThresholdValues(raw) {
|
|
35
|
-
// Find any "threshold_value": <object> that immediately follows a "present" threshold_type.
|
|
36
|
-
// Strategy: parse and re-serialize only the threshold_value fields for present dimensions.
|
|
37
|
-
// We use a two-pass approach on the raw string to avoid fragile regex on nested JSON.
|
|
38
|
-
try {
|
|
39
|
-
const parsed = JSON.parse(raw);
|
|
40
|
-
const sanitized = sanitizePresentThresholdValues(parsed);
|
|
41
|
-
return JSON.stringify(sanitized);
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
// If JSON parsing fails, return as-is and let downstream parsers handle it.
|
|
45
|
-
return raw;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function sanitizePresentThresholdValues(value) {
|
|
49
|
-
if (Array.isArray(value)) {
|
|
50
|
-
return value.map(sanitizePresentThresholdValues);
|
|
51
|
-
}
|
|
52
|
-
if (value !== null && typeof value === "object") {
|
|
53
|
-
const record = value;
|
|
54
|
-
const result = {};
|
|
55
|
-
for (const [k, v] of Object.entries(record)) {
|
|
56
|
-
result[k] = sanitizePresentThresholdValues(v);
|
|
57
|
-
}
|
|
58
|
-
// If this object has threshold_type === "present" and threshold_value is an object, null it out.
|
|
59
|
-
if (result["threshold_type"] === "present" && typeof result["threshold_value"] === "object" && result["threshold_value"] !== null) {
|
|
60
|
-
result["threshold_value"] = null;
|
|
61
|
-
}
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
return value;
|
|
65
|
-
}
|
|
1
|
+
export { sanitizeThresholdTypes, sanitizeThresholdValues } from "../llm/json-sanitizer.js";
|
|
66
2
|
/**
|
|
67
3
|
* Builds the leaf test prompt for the GoalRefiner.
|
|
68
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refiner-prompts.js","sourceRoot":"","sources":["../../src/goal/refiner-prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"refiner-prompts.js","sourceRoot":"","sources":["../../src/goal/refiner-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAU,EACV,oBAA8B;IAE9B,MAAM,kBAAkB,GACtB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/C,CAAC,CAAC,mBAAmB,CAAC;IAE1B,MAAM,kBAAkB,GACtB,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAC7B,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,CAAC,CAAC,uBAAuB,CAAC;IAE9B,OAAO;;SAEA,IAAI,CAAC,WAAW;EACvB,kBAAkB;0BACM,kBAAkB;SACnC,IAAI,CAAC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEAiCmC,CAAC;AACrE,CAAC"}
|
|
@@ -9,10 +9,27 @@ export declare const MAX_RETRY_ATTEMPTS = 3;
|
|
|
9
9
|
/** Exponential backoff delays in milliseconds: 1s, 2s, 4s */
|
|
10
10
|
export declare const RETRY_DELAYS_MS: number[];
|
|
11
11
|
/**
|
|
12
|
-
* Extract JSON from a string that may contain markdown code blocks.
|
|
13
|
-
*
|
|
12
|
+
* Extract JSON from a string that may contain markdown code blocks or prose.
|
|
13
|
+
*
|
|
14
|
+
* Strategies (first match wins):
|
|
15
|
+
* 1. Fast path — already valid JSON, return as-is
|
|
16
|
+
* 2. Code fence extraction — ```json ... ``` or ``` ... ```
|
|
17
|
+
* 3. Brace matching — find first { or [ and last matching } or ]
|
|
14
18
|
*/
|
|
15
19
|
export declare function extractJSON(text: string): string;
|
|
20
|
+
export interface ParseJSONMessage {
|
|
21
|
+
role: string;
|
|
22
|
+
content: string;
|
|
23
|
+
}
|
|
24
|
+
/** Options for parseJSON(). Pass `retry` to enable a single re-prompt on failure. */
|
|
25
|
+
export interface ParseJSONOptions {
|
|
26
|
+
retry?: {
|
|
27
|
+
/** Original messages used to produce the first LLM response. */
|
|
28
|
+
messages: ParseJSONMessage[];
|
|
29
|
+
/** Optional system prompt for the retry call. */
|
|
30
|
+
systemPrompt?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
16
33
|
/**
|
|
17
34
|
* Abstract base for all LLM clients.
|
|
18
35
|
* Provides a shared parseJSON() implementation with safeParse-based validation,
|
|
@@ -29,10 +46,25 @@ export declare abstract class BaseLLMClient {
|
|
|
29
46
|
*/
|
|
30
47
|
protected resolveEffectiveModel(defaultModel: string, tier?: ModelTier): string;
|
|
31
48
|
/**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
49
|
+
* Send messages to the LLM and return the response text.
|
|
50
|
+
* Used internally by parseJSON retry logic.
|
|
51
|
+
* Subclasses that support retry must override this method.
|
|
52
|
+
*/
|
|
53
|
+
protected callLLMRaw(_messages: ParseJSONMessage[], _systemPrompt?: string): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Attempt to parse and validate a single content string against the schema.
|
|
56
|
+
* Returns the parsed value on success, or throws LLMError on failure.
|
|
57
|
+
*/
|
|
58
|
+
private attemptParse;
|
|
59
|
+
/**
|
|
60
|
+
* Extract JSON from LLM response text (handles markdown code blocks)
|
|
61
|
+
* and validate against the given Zod schema.
|
|
62
|
+
* Throws on parse failure or schema validation failure with detailed messages.
|
|
63
|
+
*
|
|
64
|
+
* When `options.retry` is provided, a single retry is attempted on first failure:
|
|
65
|
+
* the original messages are re-sent with an error feedback message appended.
|
|
66
|
+
*/
|
|
67
|
+
parseJSON<T>(content: string, schema: ZodSchema<T>, options?: ParseJSONOptions): Promise<T>;
|
|
36
68
|
parseJSON<T>(content: string, schema: ZodSchema<T>): T;
|
|
37
69
|
}
|
|
38
70
|
//# sourceMappingURL=base-llm-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-llm-client.d.ts","sourceRoot":"","sources":["../../src/llm/base-llm-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"base-llm-client.d.ts","sourceRoot":"","sources":["../../src/llm/base-llm-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAMrC,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAIzC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,6DAA6D;AAC7D,eAAO,MAAM,eAAe,UAAqB,CAAC;AAIlD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2DhD;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE;QACN,gEAAgE;QAChE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAC7B,iDAAiD;QACjD,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAID;;;;GAIG;AACH,8BAAsB,aAAa;IACjC,iFAAiF;IACjF,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAO/E;;;;OAIG;cAEa,UAAU,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlG;;;OAGG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;OAOG;IACG,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IACjG,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;CAmCvD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LLMError } from "../utils/errors.js";
|
|
2
|
+
import { sanitizeLLMJson } from "./json-sanitizer.js";
|
|
2
3
|
// ─── Shared constants ───
|
|
3
4
|
export const DEFAULT_MAX_TOKENS = 4096;
|
|
4
5
|
/** Default LLM request timeout in milliseconds */
|
|
@@ -9,19 +10,81 @@ export const MAX_RETRY_ATTEMPTS = 3;
|
|
|
9
10
|
export const RETRY_DELAYS_MS = [1000, 2000, 4000];
|
|
10
11
|
// ─── JSON extraction utility ───
|
|
11
12
|
/**
|
|
12
|
-
* Extract JSON from a string that may contain markdown code blocks.
|
|
13
|
-
*
|
|
13
|
+
* Extract JSON from a string that may contain markdown code blocks or prose.
|
|
14
|
+
*
|
|
15
|
+
* Strategies (first match wins):
|
|
16
|
+
* 1. Fast path — already valid JSON, return as-is
|
|
17
|
+
* 2. Code fence extraction — ```json ... ``` or ``` ... ```
|
|
18
|
+
* 3. Brace matching — find first { or [ and last matching } or ]
|
|
14
19
|
*/
|
|
15
20
|
export function extractJSON(text) {
|
|
16
|
-
const
|
|
21
|
+
const trimmed = text.trim();
|
|
22
|
+
// 1. Fast path: already valid JSON
|
|
23
|
+
try {
|
|
24
|
+
JSON.parse(trimmed);
|
|
25
|
+
return trimmed;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// not bare JSON, continue
|
|
29
|
+
}
|
|
30
|
+
// 2. Code fence extraction
|
|
31
|
+
const jsonBlock = trimmed.match(/```json\s*([\s\S]*?)```/);
|
|
17
32
|
if (jsonBlock) {
|
|
18
33
|
return jsonBlock[1].trim();
|
|
19
34
|
}
|
|
20
|
-
const genericBlock =
|
|
35
|
+
const genericBlock = trimmed.match(/```\s*([\s\S]*?)```/);
|
|
21
36
|
if (genericBlock) {
|
|
22
37
|
return genericBlock[1].trim();
|
|
23
38
|
}
|
|
24
|
-
|
|
39
|
+
// 3. Depth-aware brace matching: scan from first { or [ to its matching close
|
|
40
|
+
const firstBrace = trimmed.indexOf("{");
|
|
41
|
+
const firstBracket = trimmed.indexOf("[");
|
|
42
|
+
let start = -1;
|
|
43
|
+
let openChar;
|
|
44
|
+
let closeChar;
|
|
45
|
+
if (firstBrace === -1 && firstBracket === -1) {
|
|
46
|
+
return trimmed;
|
|
47
|
+
}
|
|
48
|
+
else if (firstBrace === -1 || (firstBracket !== -1 && firstBracket < firstBrace)) {
|
|
49
|
+
start = firstBracket;
|
|
50
|
+
openChar = "[";
|
|
51
|
+
closeChar = "]";
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
start = firstBrace;
|
|
55
|
+
openChar = "{";
|
|
56
|
+
closeChar = "}";
|
|
57
|
+
}
|
|
58
|
+
let depth = 0;
|
|
59
|
+
let inString = false;
|
|
60
|
+
let escape = false;
|
|
61
|
+
for (let i = start; i < trimmed.length; i++) {
|
|
62
|
+
const ch = trimmed[i];
|
|
63
|
+
if (escape) {
|
|
64
|
+
escape = false;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (ch === "\\" && inString) {
|
|
68
|
+
escape = true;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (ch === '"') {
|
|
72
|
+
inString = !inString;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (inString)
|
|
76
|
+
continue;
|
|
77
|
+
if (ch === openChar) {
|
|
78
|
+
depth++;
|
|
79
|
+
}
|
|
80
|
+
else if (ch === closeChar) {
|
|
81
|
+
depth--;
|
|
82
|
+
if (depth === 0) {
|
|
83
|
+
return trimmed.slice(start, i + 1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return trimmed;
|
|
25
88
|
}
|
|
26
89
|
// ─── BaseLLMClient ───
|
|
27
90
|
/**
|
|
@@ -45,25 +108,68 @@ export class BaseLLMClient {
|
|
|
45
108
|
return effectiveModel;
|
|
46
109
|
}
|
|
47
110
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
111
|
+
* Send messages to the LLM and return the response text.
|
|
112
|
+
* Used internally by parseJSON retry logic.
|
|
113
|
+
* Subclasses that support retry must override this method.
|
|
114
|
+
*/
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
116
|
+
async callLLMRaw(_messages, _systemPrompt) {
|
|
117
|
+
throw new LLMError("callLLMRaw not implemented — override in subclass to enable parseJSON retry");
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Attempt to parse and validate a single content string against the schema.
|
|
121
|
+
* Returns the parsed value on success, or throws LLMError on failure.
|
|
122
|
+
*/
|
|
123
|
+
attemptParse(content, schema) {
|
|
124
|
+
const jsonText = sanitizeLLMJson(extractJSON(content));
|
|
54
125
|
let raw;
|
|
55
126
|
try {
|
|
56
127
|
raw = JSON.parse(jsonText);
|
|
57
128
|
}
|
|
58
129
|
catch (err) {
|
|
59
|
-
|
|
130
|
+
const msg = `LLM response JSON parse failed — ${String(err)}`;
|
|
131
|
+
console.warn(`[parseJSON] ${msg} | raw(200): ${content.slice(0, 200)}`);
|
|
132
|
+
throw new LLMError(`${msg}\nContent: ${content}`);
|
|
60
133
|
}
|
|
61
134
|
const result = schema.safeParse(raw);
|
|
62
135
|
if (!result.success) {
|
|
63
|
-
|
|
64
|
-
|
|
136
|
+
const issues = result.error.issues.map((i) => i.message).join(", ");
|
|
137
|
+
const msg = `LLM response validation failed: ${issues}`;
|
|
138
|
+
console.warn(`[parseJSON] ${msg} | raw(200): ${JSON.stringify(raw).slice(0, 200)}`);
|
|
139
|
+
throw new LLMError(`${msg}. Raw: ${JSON.stringify(raw).slice(0, 200)}`);
|
|
65
140
|
}
|
|
66
141
|
return result.data;
|
|
67
142
|
}
|
|
143
|
+
parseJSON(content, schema, options) {
|
|
144
|
+
if (!options?.retry) {
|
|
145
|
+
return this.attemptParse(content, schema);
|
|
146
|
+
}
|
|
147
|
+
// Async path: retry enabled
|
|
148
|
+
return (async () => {
|
|
149
|
+
let firstError;
|
|
150
|
+
try {
|
|
151
|
+
return this.attemptParse(content, schema);
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
firstError = err;
|
|
155
|
+
}
|
|
156
|
+
console.warn(`[parseJSON] first attempt failed, retrying... Error: ${firstError.message}`);
|
|
157
|
+
const retryMessages = [
|
|
158
|
+
...options.retry.messages,
|
|
159
|
+
{
|
|
160
|
+
role: "user",
|
|
161
|
+
content: `Your previous response was not valid JSON. Error: ${firstError.message}. Please respond with ONLY valid JSON matching the required schema, no other text.`,
|
|
162
|
+
},
|
|
163
|
+
];
|
|
164
|
+
const retryContent = await this.callLLMRaw(retryMessages, options.retry.systemPrompt);
|
|
165
|
+
try {
|
|
166
|
+
return this.attemptParse(retryContent, schema);
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
console.warn(`[parseJSON] retry also failed`);
|
|
170
|
+
throw err;
|
|
171
|
+
}
|
|
172
|
+
})();
|
|
173
|
+
}
|
|
68
174
|
}
|
|
69
175
|
//# sourceMappingURL=base-llm-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-llm-client.js","sourceRoot":"","sources":["../../src/llm/base-llm-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-llm-client.js","sourceRoot":"","sources":["../../src/llm/base-llm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* json-sanitizer.ts — Shared LLM JSON response sanitization utilities.
|
|
3
|
+
*
|
|
4
|
+
* Centralizes all sanitization logic so it can be applied consistently
|
|
5
|
+
* before JSON.parse() and Zod validation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Sanitizes LLM-returned threshold_type strings to valid enum values.
|
|
9
|
+
* Handles the union of all known non-standard values from both
|
|
10
|
+
* GoalRefiner (leaf test) and GoalTreeManager (subgoal decomposition).
|
|
11
|
+
*
|
|
12
|
+
* Uses regex replacement so it works on raw JSON strings before parsing.
|
|
13
|
+
*/
|
|
14
|
+
export declare function sanitizeThresholdTypes(raw: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Sanitizes LLM-returned threshold_value when threshold_type is "present".
|
|
17
|
+
* When the LLM returns an object (e.g. `{"type":"present"}`) as the value for
|
|
18
|
+
* a present threshold, replace it with null so downstream Zod schemas accept it.
|
|
19
|
+
*
|
|
20
|
+
* Operates on the raw JSON string before parsing to avoid any type-safety issues
|
|
21
|
+
* with the un-parsed LLM output.
|
|
22
|
+
*/
|
|
23
|
+
export declare function sanitizeThresholdValues(raw: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Applies all LLM JSON sanitizers in sequence.
|
|
26
|
+
*
|
|
27
|
+
* Order:
|
|
28
|
+
* 1. Remove trailing commas (syntactic fix — must come before JSON.parse attempts)
|
|
29
|
+
* 2. Replace NaN/Infinity with null (syntactic fix)
|
|
30
|
+
* 3. Sanitize threshold_type enum values (domain-specific string replacement)
|
|
31
|
+
* 4. Sanitize threshold_value for "present" thresholds (requires parse+reserialize)
|
|
32
|
+
*/
|
|
33
|
+
export declare function sanitizeLLMJson(raw: string): string;
|
|
34
|
+
//# sourceMappingURL=json-sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-sanitizer.d.ts","sourceRoot":"","sources":["../../src/llm/json-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAY3D;AAgDD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOnD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* json-sanitizer.ts — Shared LLM JSON response sanitization utilities.
|
|
3
|
+
*
|
|
4
|
+
* Centralizes all sanitization logic so it can be applied consistently
|
|
5
|
+
* before JSON.parse() and Zod validation.
|
|
6
|
+
*/
|
|
7
|
+
// ─── Threshold type sanitizer ───
|
|
8
|
+
const THRESHOLD_TYPE_MAP = {
|
|
9
|
+
exact: "match",
|
|
10
|
+
scale: "min",
|
|
11
|
+
qualitative: "min",
|
|
12
|
+
boolean: "present",
|
|
13
|
+
percentage: "min",
|
|
14
|
+
count: "min",
|
|
15
|
+
};
|
|
16
|
+
const VALID_THRESHOLD_TYPES = new Set(["min", "max", "range", "present", "match"]);
|
|
17
|
+
/**
|
|
18
|
+
* Sanitizes LLM-returned threshold_type strings to valid enum values.
|
|
19
|
+
* Handles the union of all known non-standard values from both
|
|
20
|
+
* GoalRefiner (leaf test) and GoalTreeManager (subgoal decomposition).
|
|
21
|
+
*
|
|
22
|
+
* Uses regex replacement so it works on raw JSON strings before parsing.
|
|
23
|
+
*/
|
|
24
|
+
export function sanitizeThresholdTypes(raw) {
|
|
25
|
+
return raw.replace(/"threshold_type"\s*:\s*"([^"]+)"/g, (_match, val) => {
|
|
26
|
+
if (VALID_THRESHOLD_TYPES.has(val))
|
|
27
|
+
return `"threshold_type": "${val}"`;
|
|
28
|
+
const mapped = THRESHOLD_TYPE_MAP[val] ?? "min";
|
|
29
|
+
return `"threshold_type": "${mapped}"`;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sanitizes LLM-returned threshold_value when threshold_type is "present".
|
|
34
|
+
* When the LLM returns an object (e.g. `{"type":"present"}`) as the value for
|
|
35
|
+
* a present threshold, replace it with null so downstream Zod schemas accept it.
|
|
36
|
+
*
|
|
37
|
+
* Operates on the raw JSON string before parsing to avoid any type-safety issues
|
|
38
|
+
* with the un-parsed LLM output.
|
|
39
|
+
*/
|
|
40
|
+
export function sanitizeThresholdValues(raw) {
|
|
41
|
+
try {
|
|
42
|
+
const parsed = JSON.parse(raw);
|
|
43
|
+
const sanitized = sanitizePresentThresholdValues(parsed);
|
|
44
|
+
return JSON.stringify(sanitized);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
// JSON is not yet valid — syntactic fixups haven't fully resolved. This is expected
|
|
48
|
+
// when sanitizeThresholdValues runs as part of the sanitizeLLMJson pipeline.
|
|
49
|
+
console.debug("[sanitizeThresholdValues] JSON not yet parseable, skipping threshold cleanup");
|
|
50
|
+
void err;
|
|
51
|
+
return raw;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function sanitizePresentThresholdValues(value) {
|
|
55
|
+
if (Array.isArray(value)) {
|
|
56
|
+
return value.map(sanitizePresentThresholdValues);
|
|
57
|
+
}
|
|
58
|
+
if (value !== null && typeof value === "object") {
|
|
59
|
+
const record = value;
|
|
60
|
+
const result = {};
|
|
61
|
+
for (const [k, v] of Object.entries(record)) {
|
|
62
|
+
result[k] = sanitizePresentThresholdValues(v);
|
|
63
|
+
}
|
|
64
|
+
// If this object has threshold_type === "present" and threshold_value is an object, null it out.
|
|
65
|
+
if (result["threshold_type"] === "present" &&
|
|
66
|
+
typeof result["threshold_value"] === "object" &&
|
|
67
|
+
result["threshold_value"] !== null) {
|
|
68
|
+
result["threshold_value"] = null;
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
// ─── Common LLM drift pattern sanitizers ───
|
|
75
|
+
/**
|
|
76
|
+
* Removes trailing commas before `}` or `]` — a common LLM formatting mistake.
|
|
77
|
+
* e.g. `{"a": 1,}` → `{"a": 1}`
|
|
78
|
+
*/
|
|
79
|
+
function removeTrailingCommas(raw) {
|
|
80
|
+
return raw.replace(/,\s*([}\]])/g, "$1");
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Replaces JSON-invalid numeric literals produced by LLMs with null.
|
|
84
|
+
* Handles: NaN, Infinity, -Infinity (all unquoted).
|
|
85
|
+
*/
|
|
86
|
+
function replaceInvalidNumbers(raw) {
|
|
87
|
+
return raw
|
|
88
|
+
.replace(/\bNaN\b/g, "null")
|
|
89
|
+
.replace(/-Infinity\b/g, "null")
|
|
90
|
+
.replace(/\bInfinity\b/g, "null");
|
|
91
|
+
}
|
|
92
|
+
// ─── Main entry point ───
|
|
93
|
+
/**
|
|
94
|
+
* Applies all LLM JSON sanitizers in sequence.
|
|
95
|
+
*
|
|
96
|
+
* Order:
|
|
97
|
+
* 1. Remove trailing commas (syntactic fix — must come before JSON.parse attempts)
|
|
98
|
+
* 2. Replace NaN/Infinity with null (syntactic fix)
|
|
99
|
+
* 3. Sanitize threshold_type enum values (domain-specific string replacement)
|
|
100
|
+
* 4. Sanitize threshold_value for "present" thresholds (requires parse+reserialize)
|
|
101
|
+
*/
|
|
102
|
+
export function sanitizeLLMJson(raw) {
|
|
103
|
+
let result = raw;
|
|
104
|
+
result = removeTrailingCommas(result);
|
|
105
|
+
result = replaceInvalidNumbers(result);
|
|
106
|
+
result = sanitizeThresholdTypes(result);
|
|
107
|
+
result = sanitizeThresholdValues(result);
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=json-sanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-sanitizer.js","sourceRoot":"","sources":["../../src/llm/json-sanitizer.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/llm-client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ZodSchema } from "zod";
|
|
2
2
|
import { BaseLLMClient, DEFAULT_MAX_TOKENS, extractJSON } from "./base-llm-client.js";
|
|
3
|
-
import type { ModelTier } from "./base-llm-client.js";
|
|
3
|
+
import type { ModelTier, ParseJSONMessage, ParseJSONOptions } from "./base-llm-client.js";
|
|
4
4
|
import { GuardrailRunner } from "../guardrail-runner.js";
|
|
5
5
|
export interface LLMMessage {
|
|
6
6
|
role: "user" | "assistant";
|
|
@@ -26,6 +26,7 @@ export interface LLMResponse {
|
|
|
26
26
|
export interface ILLMClient {
|
|
27
27
|
sendMessage(messages: LLMMessage[], options?: LLMRequestOptions): Promise<LLMResponse>;
|
|
28
28
|
parseJSON<T>(content: string, schema: ZodSchema<T>): T;
|
|
29
|
+
parseJSON<T>(content: string, schema: ZodSchema<T>, options: ParseJSONOptions): Promise<T>;
|
|
29
30
|
}
|
|
30
31
|
export { extractJSON, DEFAULT_MAX_TOKENS };
|
|
31
32
|
/**
|
|
@@ -43,6 +44,11 @@ export declare class LLMClient extends BaseLLMClient implements ILLMClient {
|
|
|
43
44
|
* Retries up to MAX_RETRY_ATTEMPTS times with exponential backoff.
|
|
44
45
|
*/
|
|
45
46
|
sendMessage(messages: LLMMessage[], options?: LLMRequestOptions): Promise<LLMResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Low-level LLM call used by parseJSON retry logic.
|
|
49
|
+
* Sends messages and returns the raw response text.
|
|
50
|
+
*/
|
|
51
|
+
protected callLLMRaw(messages: ParseJSONMessage[], systemPrompt?: string): Promise<string>;
|
|
46
52
|
}
|
|
47
53
|
/**
|
|
48
54
|
* Mock implementation for testing.
|
|
@@ -54,5 +60,6 @@ export declare class MockLLMClient extends BaseLLMClient implements ILLMClient {
|
|
|
54
60
|
constructor(responses: string[]);
|
|
55
61
|
get callCount(): number;
|
|
56
62
|
sendMessage(_messages: LLMMessage[], _options?: LLMRequestOptions): Promise<LLMResponse>;
|
|
63
|
+
protected callLLMRaw(_messages: ParseJSONMessage[], _systemPrompt?: string): Promise<string>;
|
|
57
64
|
}
|
|
58
65
|
//# sourceMappingURL=llm-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/llm/llm-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAA+D,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnJ,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/llm/llm-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAA+D,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnJ,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,UAAU;IACzB,WAAW,CACT,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5F;AAQD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;AAI3C;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,aAAc,YAAW,UAAU;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,eAAe,CAAC,CAAkB;gBAE9B,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM;IAYlF;;;OAGG;IACG,WAAW,CACf,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,WAAW,CAAC;IAkGvB;;;OAGG;cACa,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOjG;AAID;;;GAGG;AACH,qBAAa,aAAc,SAAQ,aAAc,YAAW,UAAU;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,UAAU,CAAa;gBAEnB,SAAS,EAAE,MAAM,EAAE;IAK/B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAEK,WAAW,CACf,SAAS,EAAE,UAAU,EAAE,EACvB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,WAAW,CAAC;cAsBP,UAAU,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAInG"}
|
package/dist/llm/llm-client.js
CHANGED
|
@@ -114,6 +114,17 @@ export class LLMClient extends BaseLLMClient {
|
|
|
114
114
|
}
|
|
115
115
|
return result;
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Low-level LLM call used by parseJSON retry logic.
|
|
119
|
+
* Sends messages and returns the raw response text.
|
|
120
|
+
*/
|
|
121
|
+
async callLLMRaw(messages, systemPrompt) {
|
|
122
|
+
const llmMessages = messages
|
|
123
|
+
.filter((m) => m.role === "user" || m.role === "assistant")
|
|
124
|
+
.map((m) => ({ role: m.role, content: m.content }));
|
|
125
|
+
const response = await this.sendMessage(llmMessages, systemPrompt ? { system: systemPrompt } : undefined);
|
|
126
|
+
return response.content;
|
|
127
|
+
}
|
|
117
128
|
}
|
|
118
129
|
// ─── MockLLMClient ───
|
|
119
130
|
/**
|
|
@@ -146,5 +157,9 @@ export class MockLLMClient extends BaseLLMClient {
|
|
|
146
157
|
stop_reason: "end_turn",
|
|
147
158
|
};
|
|
148
159
|
}
|
|
160
|
+
async callLLMRaw(_messages, _systemPrompt) {
|
|
161
|
+
const response = await this.sendMessage([]);
|
|
162
|
+
return response.content;
|
|
163
|
+
}
|
|
149
164
|
}
|
|
150
165
|
//# sourceMappingURL=llm-client.js.map
|