diff options
| author | Adam Malczewski <[email protected]> | 2026-06-24 00:08:47 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-24 00:08:47 +0900 |
| commit | d225ea4bd5f95d39a910704fe45acdf847c953fa (patch) | |
| tree | ec0a33665087bb34844b19955ab6fa74c39e3656 /packages/system-prompt/src | |
| parent | 674853d87d54dba1cd83c4e51fce5411602f4d5d (diff) | |
| download | dispatch-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.ts | 9 | ||||
| -rw-r--r-- | packages/system-prompt/src/types.ts | 6 |
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>; } /** |
