# Worker 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 `WorkerPrompt` variant; missing or # extra keys cause a build-time error (see `crates/worker/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 }}\ """ worker_orchestration_guidance_section = "{% include \"$yoi/common/worker-orchestration\" %}" ticket_event_companion_notice = "{% include \"$yoi/worker/ticket_event_companion_notice\" %}" spawn_worker_tool_description = """\ Spawn a new Worker process to work on a delegated task. The spawner's write scope is reduced by the scope passed here; the spawned Worker receives its own socket and starts running `task` immediately. The spawned Worker 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 Worker, or set to one of the registry selectors below. Raw/path profile selectors are not accepted by SpawnWorker. `scope` is always the only delegated filesystem capability; profile scope is replaced by the explicit SpawnWorker scope. Default profile: {{ default_profile }} Special selector: inherit — derive reusable model/worker/tool policy from the spawner while replacing worker.name and scope. Available registry profiles: {{ available_profiles }}{% if profile_diagnostic %} Profile discovery diagnostic: {{ profile_diagnostic }}{% endif %}\ """