# Pod internal prompts (builtin pack). # # Values are minijinja template strings. Use `{% include "$prefix/..." %}` # to pull in long text from the $yoi / $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 \"$yoi/internal/compact_system\" %}" memory_extract_system = "{% include \"$yoi/internal/memory_extract_system\" %}" memory_consolidation_system = "{% include \"$yoi/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 /; you cannot invoke any of them yourself. {{ entries }}\ """ pod_orchestration_guidance_section = "{% include \"$yoi/common/pod-orchestration\" %}" ticket_event_companion_notice = "{% include \"$yoi/pod/ticket_event_companion_notice\" %}" 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. Optional `cwd`: when provided, it is the child process/tool default working directory only. It must be an absolute existing directory covered by the child's delegated readable scope, and it does not change workspace/Profile/memory/Ticket roots or grant authority. 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 %}\ """