fix: preserve structured attachment outputs (#17)
This commit is contained in:
@@ -18,6 +18,7 @@ export type RunnerOutputVerdict =
|
||||
| 'done'
|
||||
| 'done_with_concerns'
|
||||
| 'blocked'
|
||||
| 'in_progress'
|
||||
| 'silent';
|
||||
|
||||
export type RunnerOutputVisibility = 'public' | 'silent';
|
||||
@@ -93,10 +94,20 @@ function isVisibleVerdict(
|
||||
value: unknown,
|
||||
): value is Exclude<RunnerOutputVerdict, 'silent'> {
|
||||
return (
|
||||
value === 'done' || value === 'done_with_concerns' || value === 'blocked'
|
||||
value === 'done' ||
|
||||
value === 'done_with_concerns' ||
|
||||
value === 'blocked' ||
|
||||
value === 'in_progress'
|
||||
);
|
||||
}
|
||||
|
||||
const LEADING_STRUCTURED_OUTPUT_CONTROL_RE =
|
||||
/^[\u0000-\u001F\u007F\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFEFF]+/u;
|
||||
|
||||
function stripLeadingStructuredOutputControls(value: string): string {
|
||||
return value.replace(LEADING_STRUCTURED_OUTPUT_CONTROL_RE, '').trimStart();
|
||||
}
|
||||
|
||||
function normalizeAttachments(value: unknown): RunnerOutputAttachment[] {
|
||||
if (!Array.isArray(value)) return [];
|
||||
|
||||
@@ -138,7 +149,7 @@ export function normalizeEjclawStructuredOutput(
|
||||
return { result };
|
||||
}
|
||||
|
||||
const trimmed = result.trim();
|
||||
const trimmed = stripLeadingStructuredOutputControls(result.trim());
|
||||
const jsonCandidate = extractStructuredJsonCandidate(trimmed);
|
||||
try {
|
||||
const parsed = JSON.parse(jsonCandidate) as {
|
||||
|
||||
Reference in New Issue
Block a user