mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-16 14:01:06 +00:00
Show pending bash executions in pending area, move to chat on user submit
This commit is contained in:
parent
2c014c1b95
commit
803d4b65ee
2 changed files with 33 additions and 6 deletions
|
|
@ -91,6 +91,9 @@ export class InteractiveMode {
|
|||
// Track current bash execution component
|
||||
private bashComponent: BashExecutionComponent | null = null;
|
||||
|
||||
// Track pending bash components (shown in pending area, moved to chat on submit)
|
||||
private pendingBashComponents: BashExecutionComponent[] = [];
|
||||
|
||||
// Convenience accessors
|
||||
private get agent() {
|
||||
return this.session.agent;
|
||||
|
|
@ -411,6 +414,9 @@ export class InteractiveMode {
|
|||
}
|
||||
|
||||
// Normal message submission
|
||||
// First, move any pending bash components to chat
|
||||
this.flushPendingBashComponents();
|
||||
|
||||
if (this.onInputCallback) {
|
||||
this.onInputCallback(text);
|
||||
}
|
||||
|
|
@ -826,6 +832,15 @@ export class InteractiveMode {
|
|||
}
|
||||
}
|
||||
|
||||
/** Move pending bash components from pending area to chat */
|
||||
private flushPendingBashComponents(): void {
|
||||
for (const component of this.pendingBashComponents) {
|
||||
this.pendingMessagesContainer.removeChild(component);
|
||||
this.chatContainer.addChild(component);
|
||||
}
|
||||
this.pendingBashComponents = [];
|
||||
}
|
||||
|
||||
// =========================================================================
|
||||
// Selectors
|
||||
// =========================================================================
|
||||
|
|
@ -1242,8 +1257,17 @@ export class InteractiveMode {
|
|||
}
|
||||
|
||||
private async handleBashCommand(command: string): Promise<void> {
|
||||
const isDeferred = this.session.isStreaming;
|
||||
this.bashComponent = new BashExecutionComponent(command, this.ui);
|
||||
this.chatContainer.addChild(this.bashComponent);
|
||||
|
||||
if (isDeferred) {
|
||||
// Show in pending area when agent is streaming
|
||||
this.pendingMessagesContainer.addChild(this.bashComponent);
|
||||
this.pendingBashComponents.push(this.bashComponent);
|
||||
} else {
|
||||
// Show in chat immediately when agent is idle
|
||||
this.chatContainer.addChild(this.bashComponent);
|
||||
}
|
||||
this.ui.requestRender();
|
||||
|
||||
try {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue