yoi/resources/prompts/internal.toml

83 lines
3.3 KiB
TOML

# Pod internal prompts (builtin pack).
#
# Values are minijinja template strings. Use `{% include "$prefix/..." %}`
# to pull in long text from the $insomnia / $user / $workspace prompt
# libraries.
#
# Every key here MUST correspond to a `PodPrompt` variant; missing or
# extra keys cause a build-time error (see `crates/pod/build.rs`).
[prompt]
compact_system = "{% include \"$insomnia/internal/compact_system\" %}"
memory_extract_system = "{% include \"$insomnia/internal/memory_extract_system\" %}"
memory_consolidation_system = "{% include \"$insomnia/internal/memory_consolidation_system\" %}"
notify_wrapper = """\
[Notification]
{{ message }}
This is a notification, not a blocking request. If you are in the middle of a task, continue your current work and address this at a natural stopping point.\
"""
interrupt_tool_result_summary = "[Interrupted by user]"
interrupt_system_note = "[The previous turn was interrupted by the user. The user's next request follows.]"
working_boundaries_section = """\
---
## Working boundaries
{{ scope_summary }}\
"""
agents_md_section = """\
---
## Project instructions (AGENTS.md)
{{ agents_md }}\
"""
resident_memory_summary_section = """\
---
## Resident memory summary
The following is the current durable session/workspace summary. Treat it as background context; it is not a user request.
{{ summary }}\
"""
resident_knowledge_section = """\
---
## Resident knowledge
The following knowledge records are advertised resident.{% if knowledge_query_available and memory_read_available %} Use the KnowledgeQuery / MemoryRead tools to fetch the full body when relevant.{% elif knowledge_query_available %} Use KnowledgeQuery to search related knowledge records when relevant.{% elif memory_read_available %} Use MemoryRead on a known knowledge slug when the full body is required.{% endif %}
{{ entries }}\
"""
resident_workflows_section = """\
---
## Resident workflows
The following workflows are advertised resident. When a user request matches one, follow its procedure as authoritative instead of improvising. User-invocable workflows can additionally be triggered by the user typing /<slug>; you cannot invoke any of them yourself.
{{ entries }}\
"""
pod_orchestration_guidance_section = "{% include \"$insomnia/common/pod-orchestration\" %}"
spawn_pod_tool_description = """\
Spawn a new Pod process to work on a delegated task. The spawner's write scope is reduced by the scope passed here; the spawned Pod receives its own socket and starts running `task` immediately. The spawned Pod outlives the spawner's current turn and can be contacted again through its socket path.
Profile selection: `profile` may be omitted or set to `default` to use the effective child default profile, set to `inherit` to derive reusable child configuration from this Pod, or set to one of the registry selectors below. Raw/path profile selectors are not accepted by SpawnPod. `scope` is always the only delegated filesystem capability; profile scope is replaced by the explicit SpawnPod scope.
Default profile: {{ default_profile }}
Special selector: inherit — derive reusable model/worker/tool policy from the spawner while replacing pod.name and scope.
Available registry profiles:
{{ available_profiles }}{% if profile_diagnostic %}
Profile discovery diagnostic: {{ profile_diagnostic }}{% endif %}\
"""