Files
deepseek-harness/docs/core-data-structures/system-prompt.md
T

1.5 KiB

System Prompt Assembly

The system-prompt package owns the data exchanged between prompt contributors and one assembly call. The package README documents registration, ordering, scoping, and rendering behavior; this page pins the literal cross-package shapes that plugins implement or pass.

Source: packages/core/system-prompt/src/index.ts.

Assembly context

AssembleContext identifies the scope layer one assembly resolves. It is merge-extensible: dsh-agent adds the optional live agent field, and assembleContextFor(agent) sets that field and scope together.

interface AssembleContext {
  scope?: ScopeKey
}

Tool-provider result

ToolProviderResult.schemas is the model-visible set for the current assembly. knownNames is the provider's pre-restriction name universe used to distinguish a configured-name typo from a known tool that is deliberately hidden in this scope.

interface ToolProviderResult {
  schemas: ToolSchema[]
  knownNames?: readonly string[]
}

Canonical contribution protection

PromptProtection names section and tool contributions whose canonical registry output remains authoritative after the assembly waterfall. Either field may be omitted, but a registration with no names is rejected.

interface PromptProtection {
  sections?: readonly string[]
  tools?: readonly string[]
}