@agimon-ai/po-user-feedback

Structured user questions with interactive and autonomous Voice handoff for Pi agents.

Packages

Package details

extension

Install @agimon-ai/po-user-feedback from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@agimon-ai/po-user-feedback
Package
@agimon-ai/po-user-feedback
Version
0.0.0-alpha.40
Published
Oct 21, 2026
Downloads
3,587/mo · 3,587/wk
Author
agiflow-ai
License
BUSL-1.1
Types
extension
Size
289.8 KB
Dependencies
6 dependencies · 4 peers

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@agimon-ai/po-user-feedback

Ask structured questions through native Po clients, including sessions using autonomous Voice.

Part of the Po distribution.

The ask_user_question tool presents concrete options and waits for a choice or custom-text answer.

Alpha: tool contracts may change between releases.

Requirements

  • Node.js 24 or newer
  • A Po session client capable of answering select and input requests

Install

Define a layer in .po/modes.yaml, then include it in a major mode:

layers:
  feedback:
    packages: ['@agimon-ai/po-user-feedback']

majorMode:
  minimal:
    description: Interactive questions without the full default composition.
    layers: [feedback]

The native server plugin owns questionnaire coordination and cancellation. Disposing the plugin aborts pending requests and waits for presenters to finish.

Ask a question

{
  "questions": [
    {
      "header": "Storage",
      "question": "Where should session results be stored?",
      "options": [
        {
          "label": "Project files",
          "description": "Easy to inspect and commit, but visible in the repository."
        },
        {
          "label": "User state",
          "description": "Keeps generated state outside the repository."
        }
      ],
      "multiSelect": false
    }
  ]
}

A call accepts 1 to 4 questions. Each question requires 2 to 4 options. Headers are at most 16 characters; option labels are at most 60 characters. Use multiSelect: true when several choices are valid. An option can include a Markdown preview for meaningful visual comparison.

The tool result contains readable answer text plus structured details.answers; cancellation sets cancelled: true. Pressing Escape declines the questionnaire. Do not add an Other option because the UI supplies a custom-text row.

Client behavior

The native tool requests choices and custom text through the session client. Questionnaires run one at a time. Cancellation or disposal aborts active requests and settles queued work.

Autonomous Voice

While autonomous Voice mode is active, ask_user_question leaves the active tool set. Voice already speaks its own question through narrate and then waits for the spoken reply, so keeping a questionnaire tool alongside it asks the same thing twice. The agent asks by narrating, and the answer arrives as an ordinary user message.

The native tool restriction composes with other restrictions and restores questionnaire availability when autonomous Voice deactivates.