From be40d65982a4c3b01a744c4bd432d30af1f19c39 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 3 Apr 2026 18:54:58 +0300 Subject: [PATCH] feat(llm): format system prompt metadata as YAML --- apps/server/package.json | 2 ++ .../services/llm/providers/base_provider.ts | 4 +++- pnpm-lock.yaml | 18 ++++++++---------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/apps/server/package.json b/apps/server/package.json index f2f83024a3..d43f54516d 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -37,6 +37,7 @@ "ai": "6.0.142", "better-sqlite3": "12.8.0", "html-to-text": "9.0.5", + "js-yaml": "4.1.1", "node-html-parser": "7.1.0", "sucrase": "3.35.1", "unpdf": "1.4.0" @@ -61,6 +62,7 @@ "@types/fs-extra": "11.0.4", "@types/html": "1.0.4", "@types/ini": "4.1.1", + "@types/js-yaml": "4.0.9", "@types/mime-types": "3.0.1", "@types/multer": "2.1.0", "@types/safe-compare": "1.1.2", diff --git a/apps/server/src/services/llm/providers/base_provider.ts b/apps/server/src/services/llm/providers/base_provider.ts index 4e2ebb7255..0b1bc05372 100644 --- a/apps/server/src/services/llm/providers/base_provider.ts +++ b/apps/server/src/services/llm/providers/base_provider.ts @@ -7,6 +7,8 @@ import { generateText, streamText, stepCountIs, type ModelMessage, type ToolSet import type { LanguageModel } from "ai"; import type { LlmMessage } from "@triliumnext/commons"; +import yaml from "js-yaml"; + import becca from "../../../becca/becca.js"; import mappers from "../../../etapi/mappers.js"; import { getSkillsSummary } from "../skills/index.js"; @@ -33,7 +35,7 @@ function buildNoteHint(noteId: string): string | null { return null; } - const metadata = JSON.stringify(mappers.mapNoteToPojo(note), null, 2); + const metadata = yaml.dump(mappers.mapNoteToPojo(note), { lineWidth: -1 }); return `The user is currently viewing the following note:\n${metadata}`; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0d3a2b6ba..0ca218e4b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -577,6 +577,9 @@ importers: html-to-text: specifier: 9.0.5 version: 9.0.5 + js-yaml: + specifier: 4.1.1 + version: 4.1.1 node-html-parser: specifier: 7.1.0 version: 7.1.0 @@ -644,6 +647,9 @@ importers: '@types/ini': specifier: 4.1.1 version: 4.1.1 + '@types/js-yaml': + specifier: 4.0.9 + version: 4.0.9 '@types/mime-types': specifier: 3.0.1 version: 3.0.1 @@ -17190,6 +17196,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.6.1 '@ckeditor/ckeditor5-widget': 47.6.1 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-cloud-services@47.6.1': dependencies: @@ -17568,8 +17576,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.6.1 '@ckeditor/ckeditor5-utils': 47.6.1 ckeditor5: 47.6.1 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-highlight@47.6.1': dependencies: @@ -17579,8 +17585,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.6.1 '@ckeditor/ckeditor5-utils': 47.6.1 ckeditor5: 47.6.1 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-horizontal-line@47.6.1': dependencies: @@ -17590,8 +17594,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.6.1 '@ckeditor/ckeditor5-widget': 47.6.1 ckeditor5: 47.6.1 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-html-embed@47.6.1': dependencies: @@ -17635,8 +17637,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.6.1 ckeditor5: 47.6.1 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-import-word@47.6.1': dependencies: @@ -17660,8 +17660,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.6.1 '@ckeditor/ckeditor5-utils': 47.6.1 ckeditor5: 47.6.1 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-inspector@5.0.0': {}