Skip to content

feat(admin): introduce agent-core turn loop + relocate persistence to client#2742

Open
Innei wants to merge 1 commit into
masterfrom
feat/admin-agent-core
Open

feat(admin): introduce agent-core turn loop + relocate persistence to client#2742
Innei wants to merge 1 commit into
masterfrom
feat/admin-agent-core

Conversation

@Innei
Copy link
Copy Markdown
Member

@Innei Innei commented Jun 1, 2026

Summary

  • Extract a self-contained agent-core feature module on the admin client: turn loop, approval gating, message normalizer, persistence queue, system prompt, general tools, and the new workbench route under (intelligence)/ai/agent.
  • Drop the server-side assistant-message persistence from apps/core AiAgentChatService; the core now only streams SSE events. Admin owns the loop, tool execution, and conversation persistence end-to-end.
  • Update the design spec (docs/superpowers/specs/2026-05-31-admin-agent-core-design.md) to match the new architecture, plus i18n keys and supporting transport/provider wiring.

Test plan

  • pnpm -C apps/admin lint
  • pnpm -C apps/core lint
  • pnpm -C apps/core test -- ai-agent (covers updated faux e2e)
  • pnpm -C apps/admin test -- agent-core (turn-loop / approval / normalizer / persistence-queue / system-prompt unit tests)
  • Manual: start admin, run a conversation in the new (intelligence)/ai/agent workbench, exercise tool approval and persistence on disconnect.

… client

Refactor admin AI agent runtime: extract a self-contained agent-core feature
module on the client (turn loop, approval gating, message normalizer,
persistence queue, system prompt, general tools) and drop the server-side
assistant-message persistence from core's chat service. The core now only
streams SSE events; admin owns the loop, tool execution, and conversation
persistence.

Also wires the new admin workbench route under (intelligence)/ai/agent and
updates the design spec to match the new architecture.
@safedep
Copy link
Copy Markdown

safedep Bot commented Jun 1, 2026

SafeDep Report Summary

Green Malicious Packages Badge Green Vulnerable Packages Badge Green Risky License Badge

Package Details
Package Malware Vulnerability Risky License Report
@haklex/cm-editor @ 0.18.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-agent-core @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-compose @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-diff @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-diff-core @ 0.18.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-editor @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-editor-ui @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-ai-agent @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-chat @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-code-snippet @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-embed @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-excalidraw @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-gallery @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-nested-doc @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-ext-poll @ 0.18.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-headless @ 0.18.0
npm apps/core/package.json packages/cli/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-litexml @ 0.18.0
npm packages/cli/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-litexml-cli @ 0.18.0
npm packages/cli/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-block-handle @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-floating-toolbar @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-link-edit @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-litexml-paste @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-mention @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-slash-menu @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-table @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-plugin-toolbar @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-alert @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-banner @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-codeblock @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-image @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-katex @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-linkcard @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-mention @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-mermaid @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-ruby @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-renderer-video @ 0.18.0
npm apps/admin/package.json pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗
@haklex/rich-style-token @ 0.18.0
npm pnpm-lock.yaml
✔️ ✔️ ✔️ 🔗

View complete scan results →

This report is generated by SafeDep Github App

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant