Extensions: add pi.sendUserMessage() for sending user messages
Adds sendUserMessage() to the extension API, allowing extensions to send actual user messages (role: user) rather than custom messages. Unlike sendMessage(), this always triggers a turn and behaves as if the user typed the message. - Add SendUserMessageHandler type and sendUserMessage() to ExtensionAPI - Wire handler through loader, runner, and all modes - Implement via prompt() with expandPromptTemplates: false - Add send-user-message.ts example with /ask, /steer, /followup commands - Document in extensions.md fixes #483
This commit is contained in:
@@ -83,6 +83,7 @@ describe.skipIf(!API_KEY)("Compaction extensions", () => {
|
||||
flagValues: new Map(),
|
||||
shortcuts: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setSendUserMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setGetActiveToolsHandler: () => {},
|
||||
setGetAllToolsHandler: () => {},
|
||||
@@ -111,6 +112,7 @@ describe.skipIf(!API_KEY)("Compaction extensions", () => {
|
||||
extensionRunner.initialize({
|
||||
getModel: () => session.model,
|
||||
sendMessageHandler: async () => {},
|
||||
sendUserMessageHandler: async () => {},
|
||||
appendEntryHandler: async () => {},
|
||||
getActiveToolsHandler: () => [],
|
||||
getAllToolsHandler: () => [],
|
||||
@@ -284,6 +286,7 @@ describe.skipIf(!API_KEY)("Compaction extensions", () => {
|
||||
flagValues: new Map(),
|
||||
shortcuts: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setSendUserMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setGetActiveToolsHandler: () => {},
|
||||
setGetAllToolsHandler: () => {},
|
||||
@@ -339,6 +342,7 @@ describe.skipIf(!API_KEY)("Compaction extensions", () => {
|
||||
flagValues: new Map(),
|
||||
shortcuts: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setSendUserMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setGetActiveToolsHandler: () => {},
|
||||
setGetAllToolsHandler: () => {},
|
||||
@@ -376,6 +380,7 @@ describe.skipIf(!API_KEY)("Compaction extensions", () => {
|
||||
flagValues: new Map(),
|
||||
shortcuts: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setSendUserMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setGetActiveToolsHandler: () => {},
|
||||
setGetAllToolsHandler: () => {},
|
||||
|
||||
Reference in New Issue
Block a user