Skip to content

FE-1448: Petrinaut hosts render their own interactive chat tools - #9249

Draft
lunelson wants to merge 2 commits into
mainfrom
ln/fe-1448-host-interactive-tools
Draft

FE-1448: Petrinaut hosts render their own interactive chat tools#9249
lunelson wants to merge 2 commits into
mainfrom
ln/fe-1448-host-interactive-tools

Conversation

@lunelson

@lunelson lunelson commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

🌟 What is the purpose of this PR?

Allow Petrinaut hosts to register typed interactive AI tools through the public aiAssistant configuration. Registered tools render inline, submit exactly one output through the existing AI SDK lifecycle, and remain retryable after rejected submissions; built-in tools are unchanged and unknown tools still fail loudly.

🔗 Related links

🚫 Blocked by

Nothing.

🔍 What does this change?

  • Exposes the host interactive-tool definition and registration API from @hashintel/petrinaut
  • Routes registered tools through the existing panel and addToolOutput follow-up path
  • Documents the public API and adds focused lifecycle, registry, and visible Storybook coverage

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • modifies an npm-publishable library and I have added a changeset file(s)

📜 Does this require a change to the docs?

The changes in this PR:

  • require changes to docs which are made as part of this PR

🕸️ Does this require a change to the Turbo Graph?

The changes in this PR:

  • do not affect the execution graph

⚠️ Known issues

None.

🐾 Next steps

FE-1449 will register brunch's current structured ask component and prove suspend/resume through the real Petrinaut panel.

🛡 What tests cover this?

  • Interactive tool registry and rendering tests
  • Real AiAssistantPanel submission/follow-up lifecycle tests, including duplicate and rejected submissions
  • Storybook build with a visible synthetic host tool

❓ How to test this?

  1. Run the @hashintel/petrinaut tests.
  2. Open the host interactive-tool story.
  3. Submit the synthetic tool once and confirm it transitions from awaiting to submitted with one follow-up request.

Exercise the real AiAssistantPanel and AI SDK addToolOutput path, including exactly one automatic follow-up after duplicate submits.

Keep rejected submissions retryable, use Panda styles in the visible story, and delimit the synthetic transport steps to prevent repeated follow-ups.
@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hash Ready Ready Preview Aug 19, 2026 12:59pm
petrinaut Ready Ready Preview Aug 19, 2026 12:59pm
petrinaut-docs Ready Ready Preview Aug 19, 2026 12:59pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
hashdotdesign-tokens Ignored Ignored Preview Aug 19, 2026 12:59pm

@github-actions github-actions Bot added area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team area/apps > hash.design Affects the `hash.design` design site (app) labels Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@lunelson lunelson changed the title FE-1448: add host interactive AI tools FE-1448: Petrinaut hosts render their own interactive chat tools Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/apps > hash.design Affects the `hash.design` design site (app) area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

1 participant