npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pi-goal-pro

v1.3.1

Published

Persistent autonomous goals for Pi — with no-progress detection, evidence-based completion, token budgets, and auto-continuation

Downloads

939

Readme

pi-goal-pro 🎯

Персистентные автономные цели для Pi — с детекцией отсутствия прогресса, завершением на основе доказательств, бюджетом токенов и автопродолжением.

Задай долгоживущую цель — и агент будет работать автономно, пока не закончит, не будет приостановлен или не упрётся в ограничение. Без необходимости повторять промпт каждый turn.

/goal Переписать auth модуль на JWT с нормальной обработкой ошибок

Можно отойти от клавиатуры. Агент продолжает сам. Когда закончит — отчитается с доказательствами.


Установка

pi install npm:pi-goal-pro

Или вручную:

mkdir -p ~/.pi/agent/extensions/pi-goal-pro
cp ./index.ts ~/.pi/agent/extensions/pi-goal-pro/

Перезагрузить Pi:

/reload

Проверить что загрузилось:

/goal status

Быстрый старт

Задай цель — агент начнёт работать:

/goal Добавить retry логику в API клиент с экспоненциальной задержкой

Агент начинает немедленно. Статус в футере:

🎯 goal active (1.2K/50K)    ← статус в футере

Управление жизненным циклом:

/goal status        # Показать текущее состояние
/goal pause         # Приостановить активную цель
/goal resume        # Возобновить приостановленную
/goal clear         # Удалить все цели

Возможности

🎯 Установка цели

/goal Переписать auth модуль

# С бюджетом токенов (автопауза при превышении):
/goal Переписать auth модуль --tokens 100k

# С лимитом авто-продолжений:
/goal Переписать auth модуль --max-turns 10

🤖 Инструменты агента

Когда цель активна, агент получает два инструмента:

get_goal — прочитать состояние цели:

{
  "active": {
    "objective": "Переписать auth модуль на JWT",
    "status": "active",
    "tokens_used": 12400,
    "token_budget": 50000,
    "remaining_tokens": 37600,
    "time_used_seconds": 89,
    "auto_turns": 3,
    "max_auto_turns": 25
  }
}

update_goal — завершить цель или признать недостижимой:

// Завершено — нужно подтверждение
update_goal({
  status: "complete",
  evidence: "JWT middleware реализован, 12 тестов проходят, CI без регрессий"
})

// Недостижимо — нужно объяснение
update_goal({
  status: "unmet",
  blocker: "Заблокировано решением по JWT библиотеке — ожидание security review"
})

🔄 Автопродолжение

После каждого turn агента расширение автоматически отправляет continuation prompt, если:

  • Цель всё ещё active
  • Предыдущий turn был goal-driven
  • Пользователь ничего не вводил (ввод приостанавливает автопродолжение)
  • Не достигнуты лимиты

🛡️ Детекция отсутствия прогресса

Если агент генерирует очень мало выходных токенов (по умолчанию <50) 2 раза подряд, цель автоматически приостанавливается:

⏸ Goal paused (no progress for 2 turns). Use /goal resume to continue.

Это предотвращает бесконечные циклы, когда агент просто подтверждает получение без реального прогресса.

💰 Бюджет токенов

Установи бюджет с --tokens:

/goal Написать документацию для всех API эндпоинтов --tokens 100k

Когда бюджет исчерпан, цель приостанавливается с wrap-up промптом — агент подводит итог.

📋 Завершение с доказательствами

Агент обязан предоставить конкретные доказательства перед отметкой цели как выполненной. Это предотвращает преждевременные "done" и гарантирует верификацию по реальным файлам, тестам и выводам команд.


Команды

| Команда | Описание | |---------|----------| | /goal <objective> | Установить новую цель | | /goal <text> --tokens N | Цель с бюджетом токенов | | /goal <text> --max-turns N | Цель с лимитом авто-продолжений | | /goal status | Показать состояние | | /goal pause | Приостановить | | /goal resume | Возобновить | | /goal clear | Удалить все | | /goal help | Справка |


Как это работает

/goal Переписать auth модуль
        │
        ▼
  ✓ Цель создана, сохранена в session entry
  ✓ Агент получил get_goal + update_goal
  ✓ Первое продолжение запущено немедленно
        │
        ▼
  ┌── Цикл автопродолжения ───────────────────┐
  │                                           │
  │  turn_start → turn_end → agent_end        │
  │                              │            │
  │                    ┌─────────┴─────────┐  │
  │                    │ Цель активна?     │  │
  │                    │ Нет прогресса?    │  │
  │                    │ Пользователь ввёл?│  │
  │                    │ Бюджет исчерпан?  │  │
  │                    │ Лимит turn-ов?    │  │
  │                    └─────────┬─────────┘  │
  │                              │            │
  │                    ┌─────────┴──────────┐ │
  │                    │ Да → continuation  │ │
  │                    │ Нет → stop/pause   │ │
  │                    └────────────────────┘ │
  │                                           │
  └───────────────────────────────────────────┘
        │
        ▼
  Агент вызывает update_goal({ status: "complete", evidence })
  → Цель архивирована, агент остановлен

Сохранение состояния

Состояние цели хранится в session entry (custom type pi-goal-pro). Оно переживает:

  • Перезагрузку сессии (/reload)
  • Компактизацию (compaction)
  • Навигацию по дереву сессии (/tree)
  • Возобновление сессии

Состояние привязано к ветке — при переходе на другую ветку восстанавливается состояние целей для этой ветки.


Философия дизайна

  1. Пользователь владеет целью — Агент не может молча изменить objective.
  2. Доказательства перед завершением — Агент должен верифицировать по реальным артефактам.
  3. Никаких бесконечных циклов — Детекция отсутствия прогресса, лимит turn-ов и бюджет токенов.
  4. Ввод пользователя приостанавливает — Когда ты печатаешь, автопродолжение ставится на паузу.
  5. Состояние привязано к ветке/tree в другую точку восстанавливает цели этой точки.

Разработка

Расширение в одном файле — не требует сборки. Правишь index.ts, затем /reload.

Запуск без установки:

pi -e ~/.pi/agent/extensions/pi-goal-pro/index.ts

Тесты:

node --test tests/

Лицензия

MIT