summaryrefslogtreecommitdiffhomepage
path: root/packages/system-prompt/src
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-24 00:08:47 +0900
committerAdam Malczewski <[email protected]>2026-06-24 00:08:47 +0900
commitd225ea4bd5f95d39a910704fe45acdf847c953fa (patch)
treeec0a33665087bb34844b19955ab6fa74c39e3656 /packages/system-prompt/src
parent674853d87d54dba1cd83c4e51fce5411602f4d5d (diff)
downloaddispatch-d225ea4bd5f95d39a910704fe45acdf847c953fa.tar.gz
dispatch-d225ea4bd5f95d39a910704fe45acdf847c953fa.zip
feat(system-prompt): wire into turn flow + compaction + API routes
session-orchestrator: - Wire systemPromptService as optional dep (lazy via host.getService) - Regular turn: construct on first turn (new conversation), get on subsequent turns, set on providerOpts.systemPrompt (cache-safe) - Compaction: construct (fresh resolve) + append COMPACTION_SYSTEM_PROMPT - 12 new tests (construct/get/service-unavailable/compaction) transport-http: - GET /system-prompt (returns template or DEFAULT_TEMPLATE) - PUT /system-prompt (validate + setTemplate, 503 when unavailable) - GET /system-prompt/variables (static catalog, always available) - 6 new tests system-prompt service: added getTemplate/setTemplate to interface + impl. 1396 vitest pass. typecheck + biome clean.
Diffstat (limited to 'packages/system-prompt/src')
-rw-r--r--packages/system-prompt/src/service.ts9
-rw-r--r--packages/system-prompt/src/types.ts6
2 files changed, 15 insertions, 0 deletions
diff --git a/packages/system-prompt/src/service.ts b/packages/system-prompt/src/service.ts
index 45645b9..4b4436f 100644
--- a/packages/system-prompt/src/service.ts
+++ b/packages/system-prompt/src/service.ts
@@ -63,5 +63,14 @@ export function createSystemPromptService(deps: SystemPromptServiceDeps): System
async get(conversationId) {
return deps.storage.get(resolvedKey(conversationId));
},
+
+ async getTemplate() {
+ const stored = await deps.storage.get(TEMPLATE_KEY);
+ return stored ?? DEFAULT_TEMPLATE;
+ },
+
+ async setTemplate(template) {
+ await deps.storage.set(TEMPLATE_KEY, template);
+ },
};
}
diff --git a/packages/system-prompt/src/types.ts b/packages/system-prompt/src/types.ts
index 9e87512..dd6aa69 100644
--- a/packages/system-prompt/src/types.ts
+++ b/packages/system-prompt/src/types.ts
@@ -29,6 +29,12 @@ export interface SystemPromptService {
/** Read the persisted resolved system prompt, or `null` if never constructed. */
get(conversationId: string): Promise<string | null>;
+
+ /** Read the global template (or `DEFAULT_TEMPLATE` when none is stored). */
+ getTemplate(): Promise<string>;
+
+ /** Set (upsert) the global template. An empty string means "no system prompt". */
+ setTemplate(template: string): Promise<void>;
}
/**