From 61dfd74134f63cf307c89803e659b2951187636d Mon Sep 17 00:00:00 2001
From: Marcus Schiesser <mail@marcusschiesser.de>
Date: Fri, 24 Nov 2023 18:01:54 +0700
Subject: [PATCH] feat: removed non-streaming for nextjs

---
 packages/create-llama/create-app.ts           |  16 +--
 packages/create-llama/index.ts                |  62 ++++++------
 .../types/simple/nextjs/.env.example          |   3 -
 .../types/simple/nextjs/README-template.md    |  30 ------
 .../nextjs/app/api/chat/engine/index.ts       |   7 --
 .../types/simple/nextjs/app/api/chat/route.ts |  47 ---------
 .../nextjs/app/components/chat-section.tsx    |  80 ---------------
 .../simple/nextjs/app/components/header.tsx   |  28 ------
 .../app/components/ui/chat/chat-avatar.tsx    |  34 -------
 .../app/components/ui/chat/chat-input.tsx     |  42 --------
 .../app/components/ui/chat/chat-item.tsx      |  13 ---
 .../app/components/ui/chat/chat-messages.tsx  |  38 -------
 .../nextjs/app/components/ui/chat/index.ts    |   6 --
 .../types/simple/nextjs/app/favicon.ico       | Bin 15406 -> 0 bytes
 .../types/simple/nextjs/app/globals.css       |  94 ------------------
 .../types/simple/nextjs/app/layout.tsx        |  22 ----
 .../types/simple/nextjs/app/page.tsx          |  11 --
 .../types/simple/nextjs/eslintrc.json         |   3 -
 .../templates/types/simple/nextjs/gitignore   |  35 -------
 .../types/simple/nextjs/next-env.d.ts         |   5 -
 .../types/simple/nextjs/next.config.app.js    |  21 ----
 .../types/simple/nextjs/next.config.static.js |  23 -----
 .../types/simple/nextjs/package.json          |  29 ------
 .../types/simple/nextjs/postcss.config.js     |   6 --
 .../types/simple/nextjs/public/llama.png      | Bin 36985 -> 0 bytes
 .../types/simple/nextjs/tailwind.config.ts    |  78 ---------------
 .../types/simple/nextjs/tsconfig.json         |  41 --------
 27 files changed, 42 insertions(+), 732 deletions(-)
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/.env.example
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/README-template.md
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/api/chat/engine/index.ts
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/api/chat/route.ts
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/components/chat-section.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/components/header.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-avatar.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-input.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-item.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-messages.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/index.ts
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/favicon.ico
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/globals.css
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/layout.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/app/page.tsx
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/eslintrc.json
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/gitignore
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/next-env.d.ts
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/next.config.app.js
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/next.config.static.js
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/package.json
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/postcss.config.js
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/public/llama.png
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/tailwind.config.ts
 delete mode 100644 packages/create-llama/templates/types/simple/nextjs/tsconfig.json

diff --git a/packages/create-llama/create-app.ts b/packages/create-llama/create-app.ts
index a6be4dd31..05186ed41 100644
--- a/packages/create-llama/create-app.ts
+++ b/packages/create-llama/create-app.ts
@@ -12,6 +12,14 @@ import terminalLink from "terminal-link";
 import type { InstallTemplateArgs } from "./templates";
 import { installTemplate } from "./templates";
 
+export type InstallAppArgs = Omit<
+  InstallTemplateArgs,
+  "appName" | "root" | "isOnline" | "customApiPath"
+> & {
+  appPath: string;
+  frontend: boolean;
+};
+
 export async function createApp({
   template,
   framework,
@@ -23,13 +31,7 @@ export async function createApp({
   frontend,
   openAIKey,
   model,
-}: Omit<
-  InstallTemplateArgs,
-  "appName" | "root" | "isOnline" | "customApiPath"
-> & {
-  appPath: string;
-  frontend: boolean;
-}): Promise<void> {
+}: InstallAppArgs): Promise<void> {
   const root = path.resolve(appPath);
 
   if (!(await isWriteable(path.dirname(root)))) {
diff --git a/packages/create-llama/index.ts b/packages/create-llama/index.ts
index e051f595f..67a0f53ce 100644
--- a/packages/create-llama/index.ts
+++ b/packages/create-llama/index.ts
@@ -8,7 +8,7 @@ import path from "path";
 import { blue, bold, cyan, green, red, yellow } from "picocolors";
 import prompts from "prompts";
 import checkForUpdate from "update-check";
-import { createApp } from "./create-app";
+import { InstallAppArgs, createApp } from "./create-app";
 import { getPkgManager } from "./helpers/get-pkg-manager";
 import { isFolderEmpty } from "./helpers/is-folder-empty";
 import { validateNpmName } from "./helpers/validate-pkg";
@@ -155,21 +155,22 @@ async function run(): Promise<void> {
     process.exit(1);
   }
 
-  const preferences = (conf.get("preferences") || {}) as Record<
-    string,
-    boolean | string
-  >;
+  // TODO: use Args also for program
+  type Args = Omit<InstallAppArgs, "appPath" | "packageManager">;
 
-  const defaults: typeof preferences = {
-    template: "simple",
+  const preferences = (conf.get("preferences") || {}) as Args;
+
+  const defaults: Args = {
+    template: "streaming",
     framework: "nextjs",
     engine: "simple",
     ui: "html",
     eslint: true,
     frontend: false,
     openAIKey: "",
+    model: "gpt-3.5-turbo",
   };
-  const getPrefOrDefault = (field: string) =>
+  const getPrefOrDefault = (field: keyof Args) =>
     preferences[field] ?? defaults[field];
 
   const handlers = {
@@ -179,48 +180,51 @@ async function run(): Promise<void> {
     },
   };
 
-  if (!program.template) {
+  if (!program.framework) {
     if (ciInfo.isCI) {
-      program.template = getPrefOrDefault("template");
+      program.framework = getPrefOrDefault("framework");
     } else {
-      const { template } = await prompts(
+      const { framework } = await prompts(
         {
           type: "select",
-          name: "template",
-          message: "Which template would you like to use?",
+          name: "framework",
+          message: "Which framework would you like to use?",
           choices: [
-            { title: "Chat without streaming", value: "simple" },
-            { title: "Chat with streaming", value: "streaming" },
+            { title: "NextJS", value: "nextjs" },
+            { title: "Express", value: "express" },
+            { title: "FastAPI (Python)", value: "fastapi" },
           ],
-          initial: 1,
+          initial: 0,
         },
         handlers,
       );
-      program.template = template;
-      preferences.template = template;
+      program.framework = framework;
+      preferences.framework = framework;
     }
   }
 
-  if (!program.framework) {
+  if (program.framework === "nextjs") {
+    program.template = "streaming";
+  }
+  if (!program.template) {
     if (ciInfo.isCI) {
-      program.framework = getPrefOrDefault("framework");
+      program.template = getPrefOrDefault("template");
     } else {
-      const { framework } = await prompts(
+      const { template } = await prompts(
         {
           type: "select",
-          name: "framework",
-          message: "Which framework would you like to use?",
+          name: "template",
+          message: "Which template would you like to use?",
           choices: [
-            { title: "NextJS", value: "nextjs" },
-            { title: "Express", value: "express" },
-            { title: "FastAPI (Python)", value: "fastapi" },
+            { title: "Chat without streaming", value: "simple" },
+            { title: "Chat with streaming", value: "streaming" },
           ],
-          initial: 0,
+          initial: 1,
         },
         handlers,
       );
-      program.framework = framework;
-      preferences.framework = framework;
+      program.template = template;
+      preferences.template = template;
     }
   }
 
diff --git a/packages/create-llama/templates/types/simple/nextjs/.env.example b/packages/create-llama/templates/types/simple/nextjs/.env.example
deleted file mode 100644
index 7ac0a0155..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/.env.example
+++ /dev/null
@@ -1,3 +0,0 @@
-# Rename this file to `.env.local` to use environment variables locally with `next dev`
-# https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables
-MY_HOST="example.com"
diff --git a/packages/create-llama/templates/types/simple/nextjs/README-template.md b/packages/create-llama/templates/types/simple/nextjs/README-template.md
deleted file mode 100644
index 1509ded7c..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/README-template.md
+++ /dev/null
@@ -1,30 +0,0 @@
-This is a [LlamaIndex](https://www.llamaindex.ai/) project using [Next.js](https://nextjs.org/) bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
-
-## Getting Started
-
-First, install the dependencies:
-
-```
-npm install
-```
-
-Second, run the development server:
-
-```
-npm run dev
-```
-
-Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
-
-You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
-
-This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
-
-## Learn More
-
-To learn more about LlamaIndex, take a look at the following resources:
-
-- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex (Python features).
-- [LlamaIndexTS Documentation](https://ts.llamaindex.ai) - learn about LlamaIndex (Typescript features).
-
-You can check out [the LlamaIndexTS GitHub repository](https://github.com/run-llama/LlamaIndexTS) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/api/chat/engine/index.ts b/packages/create-llama/templates/types/simple/nextjs/app/api/chat/engine/index.ts
deleted file mode 100644
index abb02e90c..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/api/chat/engine/index.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { LLM, SimpleChatEngine } from "llamaindex";
-
-export async function createChatEngine(llm: LLM) {
-  return new SimpleChatEngine({
-    llm,
-  });
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/api/chat/route.ts b/packages/create-llama/templates/types/simple/nextjs/app/api/chat/route.ts
deleted file mode 100644
index 097341ab4..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/api/chat/route.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { ChatMessage, OpenAI } from "llamaindex";
-import { NextRequest, NextResponse } from "next/server";
-import { createChatEngine } from "./engine";
-
-export const runtime = "nodejs";
-export const dynamic = "force-dynamic";
-
-export async function POST(request: NextRequest) {
-  try {
-    const body = await request.json();
-    const { messages }: { messages: ChatMessage[] } = body;
-    const lastMessage = messages.pop();
-    if (!messages || !lastMessage || lastMessage.role !== "user") {
-      return NextResponse.json(
-        {
-          error:
-            "messages are required in the request body and the last message must be from the user",
-        },
-        { status: 400 },
-      );
-    }
-
-    const llm = new OpenAI({
-      model: "gpt-3.5-turbo",
-    });
-
-    const chatEngine = await createChatEngine(llm);
-
-    const response = await chatEngine.chat(lastMessage.content, messages);
-    const result: ChatMessage = {
-      role: "assistant",
-      content: response.response,
-    };
-
-    return NextResponse.json({ result });
-  } catch (error) {
-    console.error("[LlamaIndex]", error);
-    return NextResponse.json(
-      {
-        error: (error as Error).message,
-      },
-      {
-        status: 500,
-      },
-    );
-  }
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/chat-section.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/chat-section.tsx
deleted file mode 100644
index 133a0a884..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/components/chat-section.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client";
-
-import { nanoid } from "nanoid";
-import { useState } from "react";
-import { ChatInput, ChatInputProps, ChatMessages, Message } from "./ui/chat";
-
-function useChat(): ChatInputProps & { messages: Message[] } {
-  const [messages, setMessages] = useState<Message[]>([]);
-  const [isLoading, setIsLoading] = useState(false);
-  const [input, setInput] = useState("");
-
-  const getAssistantMessage = async (messages: Message[]) => {
-    const response = await fetch(
-      process.env.NEXT_PUBLIC_CHAT_API ?? "/api/chat",
-      {
-        method: "POST",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        body: JSON.stringify({
-          messages,
-        }),
-      },
-    );
-    const data = await response.json();
-    const assistantMessage = data.result as Message;
-    return assistantMessage;
-  };
-
-  const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {
-    e.preventDefault();
-    if (!input) return;
-
-    setIsLoading(true);
-
-    try {
-      const newMessages = [
-        ...messages,
-        { id: nanoid(), content: input, role: "user" },
-      ];
-      setMessages(newMessages);
-      setInput("");
-      const assistantMessage = await getAssistantMessage(newMessages);
-      setMessages([...newMessages, { ...assistantMessage, id: nanoid() }]);
-    } catch (error: any) {
-      console.log(error);
-      alert(error.message);
-    } finally {
-      setIsLoading(false);
-    }
-  };
-
-  const handleInputChange = (e: any): void => {
-    setInput(e.target.value);
-  };
-
-  return {
-    messages,
-    isLoading,
-    input,
-    handleSubmit,
-    handleInputChange,
-  };
-}
-
-export default function ChatSection() {
-  const { messages, isLoading, input, handleSubmit, handleInputChange } =
-    useChat();
-  return (
-    <div className="space-y-4 max-w-5xl w-full">
-      <ChatMessages messages={messages} />
-      <ChatInput
-        handleSubmit={handleSubmit}
-        isLoading={isLoading}
-        input={input}
-        handleInputChange={handleInputChange}
-      />
-    </div>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/header.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/header.tsx
deleted file mode 100644
index 2b0e488f7..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/components/header.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import Image from "next/image";
-
-export default function Header() {
-  return (
-    <div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
-      <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto  lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
-        Get started by editing&nbsp;
-        <code className="font-mono font-bold">app/page.tsx</code>
-      </p>
-      <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
-        <a
-          href="https://www.llamaindex.ai/"
-          className="flex items-center justify-center font-nunito text-lg font-bold gap-2"
-        >
-          <span>Built by LlamaIndex</span>
-          <Image
-            className="rounded-xl"
-            src="/llama.png"
-            alt="Llama Logo"
-            width={40}
-            height={40}
-            priority
-          />
-        </a>
-      </div>
-    </div>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-avatar.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-avatar.tsx
deleted file mode 100644
index cd241104e..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-avatar.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-"use client";
-
-import Image from "next/image";
-import { Message } from "./chat-messages";
-
-export default function ChatAvatar(message: Message) {
-  if (message.role === "user") {
-    return (
-      <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow bg-background">
-        <svg
-          xmlns="http://www.w3.org/2000/svg"
-          viewBox="0 0 256 256"
-          fill="currentColor"
-          className="h-4 w-4"
-        >
-          <path d="M230.92 212c-15.23-26.33-38.7-45.21-66.09-54.16a72 72 0 1 0-73.66 0c-27.39 8.94-50.86 27.82-66.09 54.16a8 8 0 1 0 13.85 8c18.84-32.56 52.14-52 89.07-52s70.23 19.44 89.07 52a8 8 0 1 0 13.85-8ZM72 96a56 56 0 1 1 56 56 56.06 56.06 0 0 1-56-56Z"></path>
-        </svg>
-      </div>
-    );
-  }
-
-  return (
-    <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border  bg-black text-white">
-      <Image
-        className="rounded-md"
-        src="/llama.png"
-        alt="Llama Logo"
-        width={24}
-        height={24}
-        priority
-      />
-    </div>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-input.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-input.tsx
deleted file mode 100644
index 3eb979b02..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-input.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-"use client";
-
-export interface ChatInputProps {
-  /** The current value of the input */
-  input?: string;
-  /** An input/textarea-ready onChange handler to control the value of the input */
-  handleInputChange?: (
-    e:
-      | React.ChangeEvent<HTMLInputElement>
-      | React.ChangeEvent<HTMLTextAreaElement>,
-  ) => void;
-  /** Form submission handler to automatically reset input and append a user message  */
-  handleSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
-  isLoading: boolean;
-}
-
-export default function ChatInput(props: ChatInputProps) {
-  return (
-    <>
-      <form
-        onSubmit={props.handleSubmit}
-        className="flex items-start justify-between w-full max-w-5xl p-4 bg-white rounded-xl shadow-xl gap-4"
-      >
-        <input
-          autoFocus
-          name="message"
-          placeholder="Type a message"
-          className="w-full p-4 rounded-xl shadow-inner flex-1"
-          value={props.input}
-          onChange={props.handleInputChange}
-        />
-        <button
-          disabled={props.isLoading}
-          type="submit"
-          className="p-4 text-white rounded-xl shadow-xl bg-gradient-to-r from-cyan-500 to-sky-500 disabled:opacity-50 disabled:cursor-not-allowed"
-        >
-          Send message
-        </button>
-      </form>
-    </>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-item.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-item.tsx
deleted file mode 100644
index 2244f729a..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-item.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-"use client";
-
-import ChatAvatar from "./chat-avatar";
-import { Message } from "./chat-messages";
-
-export default function ChatItem(message: Message) {
-  return (
-    <div className="flex items-start gap-4 pt-5">
-      <ChatAvatar {...message} />
-      <p className="break-words">{message.content}</p>
-    </div>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-messages.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-messages.tsx
deleted file mode 100644
index 65eacabbf..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-messages.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-"use client";
-
-import { useEffect, useRef } from "react";
-import ChatItem from "./chat-item";
-
-export interface Message {
-  id: string;
-  content: string;
-  role: string;
-}
-
-export default function ChatMessages({ messages }: { messages: Message[] }) {
-  const scrollableChatContainerRef = useRef<HTMLDivElement>(null);
-
-  const scrollToBottom = () => {
-    if (scrollableChatContainerRef.current) {
-      scrollableChatContainerRef.current.scrollTop =
-        scrollableChatContainerRef.current.scrollHeight;
-    }
-  };
-
-  useEffect(() => {
-    scrollToBottom();
-  }, [messages.length]);
-
-  return (
-    <div className="w-full max-w-5xl p-4 bg-white rounded-xl shadow-xl">
-      <div
-        className="flex flex-col gap-5 divide-y h-[50vh] overflow-auto"
-        ref={scrollableChatContainerRef}
-      >
-        {messages.map((m: Message) => (
-          <ChatItem key={m.id} {...m} />
-        ))}
-      </div>
-    </div>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/index.ts b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/index.ts
deleted file mode 100644
index 5de7dce47..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/index.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import ChatInput from "./chat-input";
-import ChatMessages from "./chat-messages";
-
-export type { ChatInputProps } from "./chat-input";
-export type { Message } from "./chat-messages";
-export { ChatInput, ChatMessages };
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/favicon.ico b/packages/create-llama/templates/types/simple/nextjs/app/favicon.ico
deleted file mode 100644
index a1eaef62f2dfa895f1bbffc6595bb53d9604963e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 15406
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

diff --git a/packages/create-llama/templates/types/simple/nextjs/app/globals.css b/packages/create-llama/templates/types/simple/nextjs/app/globals.css
deleted file mode 100644
index 09b85ed2c..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/globals.css
+++ /dev/null
@@ -1,94 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@layer base {
-  :root {
-    --background: 0 0% 100%;
-    --foreground: 222.2 47.4% 11.2%;
-
-    --muted: 210 40% 96.1%;
-    --muted-foreground: 215.4 16.3% 46.9%;
-
-    --popover: 0 0% 100%;
-    --popover-foreground: 222.2 47.4% 11.2%;
-
-    --border: 214.3 31.8% 91.4%;
-    --input: 214.3 31.8% 91.4%;
-
-    --card: 0 0% 100%;
-    --card-foreground: 222.2 47.4% 11.2%;
-
-    --primary: 222.2 47.4% 11.2%;
-    --primary-foreground: 210 40% 98%;
-
-    --secondary: 210 40% 96.1%;
-    --secondary-foreground: 222.2 47.4% 11.2%;
-
-    --accent: 210 40% 96.1%;
-    --accent-foreground: 222.2 47.4% 11.2%;
-
-    --destructive: 0 100% 50%;
-    --destructive-foreground: 210 40% 98%;
-
-    --ring: 215 20.2% 65.1%;
-
-    --radius: 0.5rem;
-  }
-
-  .dark {
-    --background: 224 71% 4%;
-    --foreground: 213 31% 91%;
-
-    --muted: 223 47% 11%;
-    --muted-foreground: 215.4 16.3% 56.9%;
-
-    --accent: 216 34% 17%;
-    --accent-foreground: 210 40% 98%;
-
-    --popover: 224 71% 4%;
-    --popover-foreground: 215 20.2% 65.1%;
-
-    --border: 216 34% 17%;
-    --input: 216 34% 17%;
-
-    --card: 224 71% 4%;
-    --card-foreground: 213 31% 91%;
-
-    --primary: 210 40% 98%;
-    --primary-foreground: 222.2 47.4% 1.2%;
-
-    --secondary: 222.2 47.4% 11.2%;
-    --secondary-foreground: 210 40% 98%;
-
-    --destructive: 0 63% 31%;
-    --destructive-foreground: 210 40% 98%;
-
-    --ring: 216 34% 17%;
-
-    --radius: 0.5rem;
-  }
-}
-
-@layer base {
-  * {
-    @apply border-border;
-  }
-  body {
-    @apply bg-background text-foreground;
-    font-feature-settings:
-      "rlig" 1,
-      "calt" 1;
-  }
-  .background-gradient {
-    background-color: #fff;
-    background-image: radial-gradient(
-        at 21% 11%,
-        rgba(186, 186, 233, 0.53) 0,
-        transparent 50%
-      ),
-      radial-gradient(at 85% 0, hsla(46, 57%, 78%, 0.52) 0, transparent 50%),
-      radial-gradient(at 91% 36%, rgba(194, 213, 255, 0.68) 0, transparent 50%),
-      radial-gradient(at 8% 40%, rgba(251, 218, 239, 0.46) 0, transparent 50%);
-  }
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/layout.tsx b/packages/create-llama/templates/types/simple/nextjs/app/layout.tsx
deleted file mode 100644
index fb0977062..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/layout.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import type { Metadata } from "next";
-import { Inter } from "next/font/google";
-import "./globals.css";
-
-const inter = Inter({ subsets: ["latin"] });
-
-export const metadata: Metadata = {
-  title: "Create Llama App",
-  description: "Generated by create-llama",
-};
-
-export default function RootLayout({
-  children,
-}: {
-  children: React.ReactNode;
-}) {
-  return (
-    <html lang="en">
-      <body className={inter.className}>{children}</body>
-    </html>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/page.tsx b/packages/create-llama/templates/types/simple/nextjs/app/page.tsx
deleted file mode 100644
index 31f51facb..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/app/page.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import ChatSection from "@/app/components/chat-section";
-import Header from "@/app/components/header";
-
-export default function Home() {
-  return (
-    <main className="flex min-h-screen flex-col items-center gap-10 p-24 background-gradient">
-      <Header />
-      <ChatSection />
-    </main>
-  );
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/eslintrc.json b/packages/create-llama/templates/types/simple/nextjs/eslintrc.json
deleted file mode 100644
index bffb357a7..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/eslintrc.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "extends": "next/core-web-vitals"
-}
diff --git a/packages/create-llama/templates/types/simple/nextjs/gitignore b/packages/create-llama/templates/types/simple/nextjs/gitignore
deleted file mode 100644
index 8f322f0d8..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/gitignore
+++ /dev/null
@@ -1,35 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-
-# testing
-/coverage
-
-# next.js
-/.next/
-/out/
-
-# production
-/build
-
-# misc
-.DS_Store
-*.pem
-
-# debug
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# local env files
-.env*.local
-
-# vercel
-.vercel
-
-# typescript
-*.tsbuildinfo
-next-env.d.ts
diff --git a/packages/create-llama/templates/types/simple/nextjs/next-env.d.ts b/packages/create-llama/templates/types/simple/nextjs/next-env.d.ts
deleted file mode 100644
index 4f11a03dc..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/next-env.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-/// <reference types="next" />
-/// <reference types="next/image-types/global" />
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/packages/create-llama/templates/types/simple/nextjs/next.config.app.js b/packages/create-llama/templates/types/simple/nextjs/next.config.app.js
deleted file mode 100644
index 0ff949691..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/next.config.app.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/** @type {import('next').NextConfig} */
-const nextConfig = {
-  webpack: (config) => {
-    // See https://webpack.js.org/configuration/resolve/#resolvealias
-    config.resolve.alias = {
-      ...config.resolve.alias,
-      sharp$: false,
-      "onnxruntime-node$": false,
-      mongodb$: false,
-    };
-    return config;
-  },
-  experimental: {
-    serverComponentsExternalPackages: ["llamaindex"],
-    outputFileTracingIncludes: {
-      "/*": ["./cache/**/*"],
-    },
-  },
-};
-
-module.exports = nextConfig;
diff --git a/packages/create-llama/templates/types/simple/nextjs/next.config.static.js b/packages/create-llama/templates/types/simple/nextjs/next.config.static.js
deleted file mode 100644
index c5e9ab41f..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/next.config.static.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/** @type {import('next').NextConfig} */
-const nextConfig = {
-  output: "export",
-  images: { unoptimized: true },
-  webpack: (config) => {
-    // See https://webpack.js.org/configuration/resolve/#resolvealias
-    config.resolve.alias = {
-      ...config.resolve.alias,
-      sharp$: false,
-      "onnxruntime-node$": false,
-      mongodb$: false,
-    };
-    return config;
-  },
-  experimental: {
-    serverComponentsExternalPackages: ["llamaindex"],
-    outputFileTracingIncludes: {
-      "/*": ["./cache/**/*"],
-    },
-  },
-};
-
-module.exports = nextConfig;
diff --git a/packages/create-llama/templates/types/simple/nextjs/package.json b/packages/create-llama/templates/types/simple/nextjs/package.json
deleted file mode 100644
index 5faf066d6..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "name": "llama-index-nextjs",
-  "version": "1.0.0",
-  "scripts": {
-    "dev": "next dev",
-    "build": "next build",
-    "start": "next start",
-    "lint": "next lint"
-  },
-  "dependencies": {
-    "llamaindex": "0.0.31",
-    "dotenv": "^16.3.1",
-    "nanoid": "^5",
-    "next": "^13",
-    "react": "^18",
-    "react-dom": "^18"
-  },
-  "devDependencies": {
-    "@types/node": "^20",
-    "@types/react": "^18",
-    "@types/react-dom": "^18",
-    "autoprefixer": "^10.1",
-    "eslint": "^8",
-    "eslint-config-next": "^13",
-    "postcss": "^8",
-    "tailwindcss": "^3.3",
-    "typescript": "^5"
-  }
-}
\ No newline at end of file
diff --git a/packages/create-llama/templates/types/simple/nextjs/postcss.config.js b/packages/create-llama/templates/types/simple/nextjs/postcss.config.js
deleted file mode 100644
index 12a703d90..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/postcss.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
-  plugins: {
-    tailwindcss: {},
-    autoprefixer: {},
-  },
-};
diff --git a/packages/create-llama/templates/types/simple/nextjs/public/llama.png b/packages/create-llama/templates/types/simple/nextjs/public/llama.png
deleted file mode 100644
index d4efba3b816bf765439c6d01b322b02684e946c3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 36985
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
Z1<z_U4-`xNVPIfj@O1TaS?83{1OS^n$>{(9

diff --git a/packages/create-llama/templates/types/simple/nextjs/tailwind.config.ts b/packages/create-llama/templates/types/simple/nextjs/tailwind.config.ts
deleted file mode 100644
index aa5580aff..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/tailwind.config.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import type { Config } from "tailwindcss";
-import { fontFamily } from "tailwindcss/defaultTheme";
-
-const config: Config = {
-  darkMode: ["class"],
-  content: ["app/**/*.{ts,tsx}", "components/**/*.{ts,tsx}"],
-  theme: {
-    container: {
-      center: true,
-      padding: "2rem",
-      screens: {
-        "2xl": "1400px",
-      },
-    },
-    extend: {
-      colors: {
-        border: "hsl(var(--border))",
-        input: "hsl(var(--input))",
-        ring: "hsl(var(--ring))",
-        background: "hsl(var(--background))",
-        foreground: "hsl(var(--foreground))",
-        primary: {
-          DEFAULT: "hsl(var(--primary))",
-          foreground: "hsl(var(--primary-foreground))",
-        },
-        secondary: {
-          DEFAULT: "hsl(var(--secondary))",
-          foreground: "hsl(var(--secondary-foreground))",
-        },
-        destructive: {
-          DEFAULT: "hsl(var(--destructive) / <alpha-value>)",
-          foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
-        },
-        muted: {
-          DEFAULT: "hsl(var(--muted))",
-          foreground: "hsl(var(--muted-foreground))",
-        },
-        accent: {
-          DEFAULT: "hsl(var(--accent))",
-          foreground: "hsl(var(--accent-foreground))",
-        },
-        popover: {
-          DEFAULT: "hsl(var(--popover))",
-          foreground: "hsl(var(--popover-foreground))",
-        },
-        card: {
-          DEFAULT: "hsl(var(--card))",
-          foreground: "hsl(var(--card-foreground))",
-        },
-      },
-      borderRadius: {
-        xl: `calc(var(--radius) + 4px)`,
-        lg: `var(--radius)`,
-        md: `calc(var(--radius) - 2px)`,
-        sm: "calc(var(--radius) - 4px)",
-      },
-      fontFamily: {
-        sans: ["var(--font-sans)", ...fontFamily.sans],
-      },
-      keyframes: {
-        "accordion-down": {
-          from: { height: "0" },
-          to: { height: "var(--radix-accordion-content-height)" },
-        },
-        "accordion-up": {
-          from: { height: "var(--radix-accordion-content-height)" },
-          to: { height: "0" },
-        },
-      },
-      animation: {
-        "accordion-down": "accordion-down 0.2s ease-out",
-        "accordion-up": "accordion-up 0.2s ease-out",
-      },
-    },
-  },
-  plugins: [],
-};
-export default config;
diff --git a/packages/create-llama/templates/types/simple/nextjs/tsconfig.json b/packages/create-llama/templates/types/simple/nextjs/tsconfig.json
deleted file mode 100644
index e779aa667..000000000
--- a/packages/create-llama/templates/types/simple/nextjs/tsconfig.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "compilerOptions": {
-    "target": "es5",
-    "lib": [
-      "dom",
-      "dom.iterable",
-      "esnext"
-    ],
-    "allowJs": true,
-    "skipLibCheck": true,
-    "strict": true,
-    "noEmit": true,
-    "esModuleInterop": true,
-    "module": "esnext",
-    "moduleResolution": "bundler",
-    "resolveJsonModule": true,
-    "isolatedModules": true,
-    "jsx": "preserve",
-    "incremental": true,
-    "plugins": [
-      {
-        "name": "next"
-      }
-    ],
-    "paths": {
-      "@/*": [
-        "./*"
-      ]
-    },
-    "forceConsistentCasingInFileNames": true,
-  },
-  "include": [
-    "next-env.d.ts",
-    "**/*.ts",
-    "**/*.tsx",
-    ".next/types/**/*.ts"
-  ],
-  "exclude": [
-    "node_modules"
-  ]
-}
\ No newline at end of file
-- 
GitLab