mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 18:01:22 +00:00
Rename immediate -> allowDuringStreaming for hook commands
This commit is contained in:
parent
454dd919be
commit
f8352bb7d7
4 changed files with 15 additions and 7 deletions
|
|
@ -309,7 +309,7 @@ const SNAKE_SAVE_TYPE = "snake-save";
|
|||
export default function (pi: HookAPI) {
|
||||
pi.registerCommand("snake", {
|
||||
description: "Play Snake!",
|
||||
immediate: true, // Run immediately, even during streaming
|
||||
allowDuringStreaming: true, // Run even during streaming, not queued
|
||||
handler: async (ctx) => {
|
||||
if (!ctx.hasUI) {
|
||||
ctx.ui.notify("Snake requires interactive mode", "error");
|
||||
|
|
|
|||
|
|
@ -442,8 +442,8 @@ export interface HookCommandContext {
|
|||
export interface RegisteredCommand {
|
||||
name: string;
|
||||
description?: string;
|
||||
/** If true, command runs immediately even during streaming (doesn't get queued) */
|
||||
immediate?: boolean;
|
||||
/** If true, command runs during streaming instead of being queued */
|
||||
allowDuringStreaming?: boolean;
|
||||
handler: (ctx: HookCommandContext) => Promise<void>;
|
||||
}
|
||||
|
||||
|
|
@ -529,7 +529,7 @@ export interface HookAPI {
|
|||
*/
|
||||
registerCommand(
|
||||
name: string,
|
||||
options: { description?: string; immediate?: boolean; handler: RegisteredCommand["handler"] },
|
||||
options: { description?: string; allowDuringStreaming?: boolean; handler: RegisteredCommand["handler"] },
|
||||
): void;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -744,13 +744,13 @@ export class InteractiveMode {
|
|||
return;
|
||||
}
|
||||
|
||||
// Check if this is an immediate hook command (runs even during streaming)
|
||||
// Check if this hook command can run during streaming (not queued)
|
||||
if (text.startsWith("/") && this.session.hookRunner && this.session.isStreaming) {
|
||||
const spaceIndex = text.indexOf(" ");
|
||||
const commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);
|
||||
const command = this.session.hookRunner.getCommand(commandName);
|
||||
if (command?.immediate) {
|
||||
// Execute immediate hook command right away
|
||||
if (command?.allowDuringStreaming) {
|
||||
// Execute hook command right away
|
||||
this.editor.addToHistory(text);
|
||||
this.editor.setText("");
|
||||
await this.session.prompt(text);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue