@@ -157,16 +157,20 @@ func (app *App) RunNonInteractive(ctx context.Context, prompt string, quiet bool
158 if result.Error != nil {
158 if result.Error != nil {
159 if errors.Is(result.Error, context.Canceled) || errors.Is(result.Error, agent.ErrRequestCancelled) {
159 if errors.Is(result.Error, context.Canceled) || errors.Is(result.Error, agent.ErrRequestCancelled) {
160− slog.Info("Agent processing cancelled", "session_id", sess.ID)
160+ slog.Info("Non-interactive: agent processing cancelled", "session_id", sess.ID)
161 return nil
161 return nil
163 return fmt.Errorf("agent processing failed: %w", result.Error)
163 return fmt.Errorf("agent processing failed: %w", result.Error)
166− part := result.Message.Content().String()[readBts:]
166+ msgContent := result.Message.Content().String()
167− fmt.Println(part)
167+ if len(msgContent) < readBts {
168+ slog.Error("Non-interactive: message content is shorter than read bytes", "message_length", len(msgContent), "read_bytes", readBts)
169+ return fmt.Errorf("message content is shorter than read bytes: %d < %d", len(msgContent), readBts)
171+ fmt.Println(msgContent[readBts:])
169− slog.Info("Non-interactive run completed", "session_id", sess.ID)
173+ slog.Info("Non-interactive: run completed", "session_id", sess.ID)
170 return nil
174 return nil
172 case event := <-messageEvents:
176 case event := <-messageEvents: