feat: wait for human reply (waitIdentifier 👤)
- Add waitIdentifier config (default: 👤) to DirigentConfig and plugin schema - Prompt injection: tells agents to end with 👤 when they need a human reply, warns to use sparingly (only when human is actively participating) - Detection in before_message_write and message_sent hooks - Turn manager: new waitingForHuman state - checkTurn() blocks all agents when waiting - onNewMessage() clears state on human message - Non-human messages ignored while waiting - resetTurn() also clears waiting state - All agents routed to no-reply model during waiting state - Update docs (FEAT.md, CHANGELOG.md, TASKLIST.md, README.md)
This commit is contained in:
11
TASKLIST.md
11
TASKLIST.md
@@ -69,6 +69,17 @@
|
||||
- New helpers in `index.ts`: `buildUserIdToAccountIdMap()`, `extractMentionedUserIds()`.
|
||||
- **Done**: Override logic integrated in `message_received` handler.
|
||||
|
||||
## 8) Wait for Human Reply ✅
|
||||
- Added configurable `waitIdentifier` (default: `👤`) to config and config schema.
|
||||
- Prompt injection in group chats: tells agents to end with `👤` instead of end symbol when they need a human response. Warns to use sparingly — only when human is actively participating.
|
||||
- Detection in `before_message_write` and `message_sent`: if last char matches wait identifier → `setWaitingForHuman(channelId)`.
|
||||
- Turn manager `waitingForHuman` state:
|
||||
- `checkTurn()` blocks all agents (`reason: "waiting_for_human"`) → routed to no-reply model.
|
||||
- `onNewMessage()` clears `waitingForHuman` on human message → normal flow resumes.
|
||||
- Non-human messages ignored while waiting.
|
||||
- `resetTurn()` also clears waiting state.
|
||||
- **Done**: Full lifecycle implemented across turn-manager, rules, and index.
|
||||
|
||||
---
|
||||
|
||||
## Open Items / Notes
|
||||
|
||||
Reference in New Issue
Block a user