# SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
#
# SPDX-License-Identifier: CC0-1.0

# plan rendering
[plan]
no_goal = "No goal set yet"
legend_label = "Legend:"
no_tasks = "No tasks yet."

# status labels
[status]
pending = "pending"
in_progress = "in progress"
completed = "completed"
failed = "failed"
cancelled = "cancelled"

# shared helpers
[session]
none_active = "No active session. Start one with `np s`."

# start command (cmd/s.go)
[session.start]
already_active = "Session %s is already active for %s.\n"
already_active_guidance = "Ask your operator whether they want to resume (`np r`) or archive (`np a`) it."
now_active = "Session %s is now active for %s.\n\n"
guidance = """If you haven't already, read any provided issue/ticket/file/webpage/commit/etc. references and thoroughly mull them over. If you already see the contents above, don't re-read them. If there were no referenced files or you don't have a clear picture of the issue, you may selectively read additional relevant files until you do have a clear picture.
Set the goal with `np g s -t "goal title" -d "goal description"`.
Capture the most concise form of the overarching goal using no more than 20 words in the title. Elaborate _usefully_ in the description; don't just repeat the title in more flowery language. In case we're interrupted and need to pick up from this plan later, include:
- Summaries of only the relevant portions of the referenced content. Include their URLs/IDs/hashes. Copy the user's language around the references: if they say 'look at bug REF', use 'Bug: REF' near the summary. If 'issue NUM', then 'Issue: NUM.'
- Paths to the relevant files, and if there are particularly relevant symbols from those files, include them too. DO NOT summarise the files or symbols. Only list them if they're relevant
- An 'Immediate thoughts:' line at the bottom. You should have enough files to have some idea of the issue and its resolution; briefly capture your immediate thoughts in this line, couching with appropriate uncertainty.
Add single tasks with `np t a -t "task" -d "details"`, but prefer batching. For multi-line descriptions, use literal newlines:
    np t a -t "first task" -d "step 1 details" -t "second task" -d "step 2 with
    more details" -t "third task" -d "step three"
Keep task statuses up to date as you work:
  Single update:  `np t u -i task-id -s in_progress|completed|failed|cancelled`
  But prefer batching:  `np t u -i abc123 -s completed -i def456 -s in_progress`
Use `np p` if you need to review the full plan."""

# resume command (cmd/r.go)
[session.resume]
header = "\nResuming session. To continue:"
guidance = """1. Thoroughly consider the goal and its description.
2. Read the referenced files and symbols, especially in the pending tasks, to understand what work remains.
3. Add more tasks if needed. For multi-line descriptions, use literal newlines:
       # Single
       np t a -t "task title" -d "details"

       # Batch (preferred for multiple additions)
       np t a -t "first" -d "step 1 details" -t "second" -d "step 2 with
       more details" -t "third" -d "step three"`
4. Update task status as you work:
     Single: `np t u -i <task-id> -s <status>`
     Batch:  `np t u -i <id1> -s <status1> -i <id2> -s <status2>`
   Statuses: pending, in_progress, completed, failed, cancelled"""
in_progress_count = "\n%d task(s) are in progress.\n"
pending_count = "%d task(s) are pending.\n"

# archive command (cmd/a.go)
[session.archive]
success = "Session %s archived.\n"
none_active = "No active session. Start one with `np s`."

# goal set command (cmd/g/s.go)
[goal.set]
title_required = "Goal title is required."
description_required = "Goal description is required."
already_set = "Goal already set. Use 'np g u' to update it (requires -r/--reason flag)."
guidance = "Study everything above carefully, the reference content, the source code, the documentation, etc. Once you've a solid understanding of how to approach resolving the request, fill out your task list. Prefer adding/updating in batch."

# goal update command (cmd/g/u.go)
[goal.update]
not_set = "No goal set yet. Use 'np g s' first."
reason_required = "Reason is required for goal updates."
title_empty = "Goal title cannot be empty."
no_changes_provided = "Provide at least one of --title or --description to update the goal."
no_changes_made = "Goal already matches the provided values; no changes made."
guidance = "Goal updated. Ensure pending tasks still align with the goal and adjust them and/or add new tasks if necessary."

# task add command (cmd/t/a.go)
[task.add]
count_mismatch = "Number of titles and descriptions must match."
none_provided = "Provide at least one task with -t title -d description."
title_empty_at = "Task title at position %d cannot be empty.\n"
title_empty = "Task title cannot be empty."
success = "Added %d task(s).\n"
guidance = """Update task statuses as you work:
  Single: `np t u -i task-id -s in_progress|completed|failed|cancelled`.
  Batch:  `np t u -i abc123 -s completed -i def456 -s in_progress`."""

# task list command (cmd/t/t.go)
[task.list]
invalid_status = "Invalid status %q. Valid: pending, in_progress, completed, failed, cancelled, all.\n"

# task update command (cmd/t/u.go)
[task.update]
no_ids = "Provide at least one task ID with -i/--id."
title_desc_single_only = "Title and description updates are only supported for single task updates."
status_count_mismatch = "Multiple task IDs provided but status count doesn't match. For batch updates, provide equal -i and -s flags."
invalid_status = "Invalid status %q for task %s. Valid: pending, in_progress, completed, failed, cancelled.\n"
reason_required_status = "Reason (-r/--reason) is required when changing status to cancelled or failed."
not_found = "Task %q not found in current session.\n"
no_updates = "No tasks were updated (all tasks either not found or already at target status)."
success = "Updated %d task(s).\n"
none_pending_archive = "No pending tasks remaining. If you've completed the goal, escalate to the operator and ask whether to archive the session (`np a`)."
continue_working = "Continue working through remaining tasks. Use `np t u -i <id1> -s <status1> -i <id2> -s <status2>` to update multiple tasks at once."
title_empty = "Task title cannot be empty."
invalid_status_single = "Invalid status %q. Valid: pending, in_progress, completed, failed, cancelled.\n"
no_changes_provided = "Provide at least one of --title, --description, or --status to update the task."
reason_required = "Reason (-r/--reason) is required for title/description updates or when changing status to cancelled/failed."
completed_continue = "Task marked completed. Continue working through remaining tasks. Use `np t u -i <id1> -s <status1> -i <id2> -s <status2>` to update multiple at once."
updated_review = "Task updated. Use `np p` to review the full plan."
