From d29a2e0222e54b75e3731f75ed2892463fd5ba02 Mon Sep 17 00:00:00 2001 From: thatonevikash Date: Sat, 27 Jun 2026 17:40:12 +0530 Subject: [PATCH 1/5] chore: add CI workflow and dev mode (development branch only) --- .github/workflows/dev-tests.yml | 189 ++++++++++++++++++++++++++++++++ src/dev.js | 32 ++++-- 2 files changed, 209 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/dev-tests.yml diff --git a/.github/workflows/dev-tests.yml b/.github/workflows/dev-tests.yml new file mode 100644 index 0000000..04ab2df --- /dev/null +++ b/.github/workflows/dev-tests.yml @@ -0,0 +1,189 @@ +# ───────────────────────────────────────────────────────────────────────────── +# NOVA — Development Action Tests +# +# BRANCH STRATEGY +# This file lives ONLY on the `development` branch. +# main → clean production code (no dev.js, no workflow) +# development → owns dev.js + this workflow +# +# TRIGGERS +# • Push to `development` — test every dev commit +# • Push to `feat/**` / `fix/**` — test feature/fix branches +# (those branches must be created from `development` so this file exists) +# • Pull request → `main` — gate before any code reaches production +# • Pull request → `development` — gate before merging into dev +# +# COVERAGE +# One job per action in dev.js so failures are pinpointed by action name. +# Action 8 (run dev server) is excluded — it is a long-running process +# and has no deterministic exit condition suitable for CI. +# +# npx scaffolding commands receive --yes to skip interactive prompts. +# No build commands (npm run build / npm run dev) are added after +# scaffolding — the test validates the scaffold succeeded, nothing more. +# ───────────────────────────────────────────────────────────────────────────── + +name: NOVA — Dev Action Tests + +on: + push: + branches: + - development + - "feat/**" + - "fix/**" + pull_request: + branches: + - main + - development + +env: + NODE_VERSION: "20" + +# ── Action 1 ───────────────────────────────────────────────────────────────── + +jobs: + action-folder-creation: + name: "① folder creation" + runs-on: ubuntu-latest + steps: + - name: "mkdir new-folder" + run: mkdir new-folder + + - name: "verify folder exists" + run: test -d new-folder && echo "✓ new-folder created" + + # ── Action 2 ───────────────────────────────────────────────────────────────── + + action-navigate-within-folder: + name: "② navigate within folder" + runs-on: ubuntu-latest + steps: + - name: "mkdir open-folder" + run: mkdir open-folder + + - name: "cd open-folder" + working-directory: open-folder + run: | + echo "✓ navigated into $(pwd)" + + # ── Action 3 ───────────────────────────────────────────────────────────────── + + action-nodejs-init: + name: "③ nodejs project init" + runs-on: ubuntu-latest + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: "mkdir server" + run: mkdir server + + - name: "npm init -y" + working-directory: server + run: npm init -y + + - name: "verify package.json created" + working-directory: server + run: test -f package.json && echo "✓ package.json present" + + # ── Action 4 ───────────────────────────────────────────────────────────────── + + action-package-install: + name: "④ package installation" + runs-on: ubuntu-latest + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: "setup — npm init -y" + run: npm init -y + + - name: "npm install dotenv express" + run: npm install dotenv express + + - name: "verify packages installed" + run: | + test -d node_modules/dotenv && echo "✓ dotenv installed" + test -d node_modules/express && echo "✓ express installed" + + # ── Action 5 ───────────────────────────────────────────────────────────────── + + action-package-uninstall: + name: "⑤ package uninstallation" + runs-on: ubuntu-latest + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: "setup — npm init -y && npm install express" + run: | + npm init -y + npm install express + + - name: "npm uninstall express" + run: npm uninstall express + + - name: "verify express removed" + run: | + if [ -d node_modules/express ]; then + echo "✗ express still present" && exit 1 + else + echo "✓ express uninstalled" + fi + + # ── Action 6 ───────────────────────────────────────────────────────────────── + + action-vite-react: + name: "⑥ react + vite setup" + runs-on: ubuntu-latest + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: "npx create-vite@latest todo-app --template react" + # create-vite is non-interactive when --template is provided + run: npx create-vite@latest todo-app --template react + + - name: "npm install" + # runs inside todo-app — mirrors the cd + npm install in dev.js + working-directory: todo-app + run: npm install + + - name: "verify scaffold structure" + working-directory: todo-app + run: | + test -f package.json && echo "✓ package.json" + test -f index.html && echo "✓ index.html" + test -d src && echo "✓ src/" + test -d node_modules && echo "✓ node_modules/" + + # ── Action 7 ───────────────────────────────────────────────────────────────── + + action-nextjs: + name: "⑦ nextjs setup" + runs-on: ubuntu-latest + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: "npx create-next-app@latest next-todo-app" + # --yes accepts all defaults (TypeScript, ESLint, App Router, etc.) + # Required in CI — create-next-app is interactive by default + run: npx create-next-app@latest next-todo-app --yes + + - name: "verify scaffold structure" + working-directory: next-todo-app + run: | + test -f package.json && echo "✓ package.json" + test -f next.config.ts && echo "✓ next.config.ts" + test -d app && echo "✓ app/" + test -d node_modules && echo "✓ node_modules/" + +# ── Action 8 — excluded ─────────────────────────────────────────────────────── +# run dev server (npm run dev) is a long-running process with no deterministic +# exit. It cannot be validated in CI without a timeout hack. Tested manually. diff --git a/src/dev.js b/src/dev.js index c72ca46..3fe5db1 100644 --- a/src/dev.js +++ b/src/dev.js @@ -4,8 +4,8 @@ import { executeCommands } from "./executor.js"; import { printCommand, printError, printFinished, sep } from "./ui.js"; // ── action definitions ──────────────────────────────────────────────── -// Each action mirrors the shape of an AI response plan so the same -// executor path is exercised end-to-end. +// Each entry mirrors the shape of an AI response so the real executor +// path is exercised end-to-end with no mocking. const ACTIONS = [ { @@ -72,13 +72,11 @@ const ACTIONS = [ // ── helpers ─────────────────────────────────────────────────────────── -// command preview shown in the menu (joins with →, truncates if long) -function preview(commands) { - const joined = commands.join(" → "); +const preview = (cmds) => { + const joined = cmds.join(" → "); return joined.length > 52 ? joined.slice(0, 49) + "…" : joined; -} +}; -// pad a string to a fixed width const pad = (str, n) => str + " ".repeat(Math.max(0, n - str.length)); // ── menu renderer ───────────────────────────────────────────────────── @@ -152,7 +150,9 @@ export async function devMode() { } if (input === "exit" || input === "quit") { - console.log(`\n ${chalk.gray(">")} ${chalk.gray("Goodbye.")}\n`); + console.log( + `\n ${chalk.gray(">")} ${chalk.gray("Exiting dev mode.")}\n`, + ); rl.close(); process.exit(0); } @@ -162,15 +162,23 @@ export async function devMode() { if (!action) { console.log( - `\n ${chalk.red("✗")} ${chalk.red(`Invalid choice: "${input}". Enter 1–8 or exit.`)}`, + `\n ${chalk.red("✗")} ${chalk.red(`"${input}" is not valid — enter 1–8 or exit.`)}`, ); ask(); return; } - rl.pause(); // release stdin before any command runs - await runAction(action); // npx now has full raw TTY access - rl.resume(); // reclaim stdin for the next prompt + // ── hand stdin back to the child process ────────────────────── + // readline holds process.stdin and keeps it in line-buffered mode. + // Interactive tools like create-next-app need raw TTY access for + // arrow keys and keyboard navigation. pause() releases that hold + // so the spawned process gets full control of the terminal. + rl.pause(); + + await runAction(action); + + // ── reclaim stdin for the next menu prompt ──────────────────── + rl.resume(); ask(); }, ); From f609bd29726dbc8f3c037ec302b3f471f446626f Mon Sep 17 00:00:00 2001 From: thatonevikash Date: Mon, 29 Jun 2026 23:18:12 +0530 Subject: [PATCH 2/5] add(command): npx create-next-mui added on dev-tests.yml --- .github/workflows/dev-tests.yml | 28 ++++++++++++++++++++++++++-- src/dev.js | 15 +++++++++++++-- src/sdk/anthropic-ai.js | 28 ++++++++++++++++++++++++---- src/sdk/google-genai.js | 28 +++++++++++++++++++++++++--- 4 files changed, 88 insertions(+), 11 deletions(-) diff --git a/.github/workflows/dev-tests.yml b/.github/workflows/dev-tests.yml index 04ab2df..d07f83c 100644 --- a/.github/workflows/dev-tests.yml +++ b/.github/workflows/dev-tests.yml @@ -15,7 +15,7 @@ # # COVERAGE # One job per action in dev.js so failures are pinpointed by action name. -# Action 8 (run dev server) is excluded — it is a long-running process +# Action 9 (run dev server) is excluded — it is a long-running process # and has no deterministic exit condition suitable for CI. # # npx scaffolding commands receive --yes to skip interactive prompts. @@ -184,6 +184,30 @@ jobs: test -d app && echo "✓ app/" test -d node_modules && echo "✓ node_modules/" -# ── Action 8 — excluded ─────────────────────────────────────────────────────── + # ── Action 8 ───────────────────────────────────────────────────────────────── + + action-nextjs-mui: + name: "⑧ nextjs + mui setup" + runs-on: ubuntu-latest + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: "npx create-next-mui@latest todo-mui" + run: npx create-next-mui@latest todo-mui + + - name: "npm install" + # runs inside todo-mui — mirrors the cd + npm install in dev.js + working-directory: todo-mui + run: npm install + + - name: "verify scaffold structure" + working-directory: todo-mui + run: | + test -f package.json && echo "✓ package.json" + test -d node_modules && echo "✓ node_modules/" + +# ── Action 9 — excluded ─────────────────────────────────────────────────────── # run dev server (npm run dev) is a long-running process with no deterministic # exit. It cannot be validated in CI without a timeout hack. Tested manually. diff --git a/src/dev.js b/src/dev.js index 3fe5db1..aa09e15 100644 --- a/src/dev.js +++ b/src/dev.js @@ -63,6 +63,17 @@ const ACTIONS = [ }, { id: 8, + label: "nextjs + mui setup", + description: "Scaffolding Next.js + MUI app: todo-mui", + category: "next_mui_project", + commands: [ + "npx create-next-mui@latest todo-mui", + "cd todo-mui", + "npm install", + ], + }, + { + id: 9, label: "run dev server", description: "Starting dev server (npm run dev)", category: "script_execution", @@ -140,7 +151,7 @@ export async function devMode() { printMenu(); rl.question( - ` ${chalk.white(">")} ${chalk.gray("pick action [1-8] or exit: ")}`, + ` ${chalk.white(">")} ${chalk.gray("pick action [1-9] or exit: ")}`, async (raw) => { const input = raw.trim().toLowerCase(); @@ -162,7 +173,7 @@ export async function devMode() { if (!action) { console.log( - `\n ${chalk.red("✗")} ${chalk.red(`"${input}" is not valid — enter 1–8 or exit.`)}`, + `\n ${chalk.red("✗")} ${chalk.red(`"${input}" is not valid — enter 1–9 or exit.`)}`, ); ask(); return; diff --git a/src/sdk/anthropic-ai.js b/src/sdk/anthropic-ai.js index 3b2e90b..0092fd4 100644 --- a/src/sdk/anthropic-ai.js +++ b/src/sdk/anthropic-ai.js @@ -8,7 +8,7 @@ Analyze the user's task and respond ONLY with a raw JSON object. No markdown, no Schema: { "analysis": "what the user wants in plain language", - "category": "directory_creation" | "node_init" | "npx_command" | "package_install" | "script_execution" | "mixed", + "category": "directory_creation" | "node_init" | "npx_command" | "next_mui_project" | "codebase_rename" | "package_install" | "script_execution" | "mixed", "commands": ["shell command 1", "shell command 2"], "description": "one short sentence describing what will be done" } @@ -37,6 +37,19 @@ Framework scaffolding (category: npx_command): create-vite does NOT install — add "npm install" after cd. create-next-app installs automatically — do NOT add "npm install". +Next.js + MUI scaffolding (category: next_mui_project): + npx create-next-mui@latest -> Next.js + MUI + Use this when the user asks for a Next.js project with MUI, Material UI, or Material Design. + Always add "cd " or "npm install" after this command. + +Codebase rename (category: codebase_rename): + npx caselyjs --case kebab --full -> rename directories and files to kebab-case + npx caselyjs --case pascal --full -> rename directories and files to PascalCase + npx caselyjs --case camel --full -> rename directories and files to camelCase + Supported --case values are kebab, pascal, and camel. + Always include --full when the user wants to rename the codebase, files, and directories. + If no source path is given, use ".". + Package management (category: package_install): npm install pkg1 pkg2 → install runtime deps npm install -D pkg → install dev dependency @@ -51,8 +64,9 @@ Scripts (category: script_execution): 1. Extract the project name from the user's prompt. If none given, use a sensible default. 2. node_init always produces exactly: [mkdir , cd , npm init -y] 3. npx scaffolding always includes cd after, and npm install where needed. -4. Use category "mixed" only when the task spans multiple unrelated categories. -5. If the task is ambiguous, pick the most common/sensible interpretation. +4. codebase_rename always produces exactly one caselyjs command with --case and --full. +5. Use category "mixed" only when the task spans multiple unrelated categories. +6. If the task is ambiguous, pick the most common/sensible interpretation. ── Examples ───────────────────────────────────────────────────────── @@ -68,11 +82,17 @@ User: "set up a react app called dashboard using vite" User: "make a nextjs app called blog" {"analysis":"User wants a Next.js project named blog","category":"npx_command","commands":["npx create-next-app@latest blog"],"description":"Scaffolding a Next.js app called blog"} +User: "create a nextjs project with mui called admin-panel" +{"analysis":"User wants a Next.js + MUI project named admin-panel","category":"next_mui_project","commands":["npx create-next-mui@latest admin-panel"],"description":"Scaffolding a Next.js + MUI app called admin-panel"} + User: "install axios and dotenv" {"analysis":"User wants to install axios and dotenv in the current project","category":"package_install","commands":["npm install axios dotenv"],"description":"Installing axios and dotenv"} User: "create a folder called utils inside src" -{"analysis":"User wants to create a nested directory src/utils","category":"directory_creation","commands":["mkdir -p src/utils"],"description":"Creating directory src/utils"}`; +{"analysis":"User wants to create a nested directory src/utils","category":"directory_creation","commands":["mkdir -p src/utils"],"description":"Creating directory src/utils"} + +User: "rename the codebase in src to kebab case" +{"analysis":"User wants to rename files and directories under src to kebab-case","category":"codebase_rename","commands":["npx caselyjs src --case kebab --full"],"description":"Renaming the src codebase to kebab-case"}`; // ── evaluate ────────────────────────────────────────────────────────── diff --git a/src/sdk/google-genai.js b/src/sdk/google-genai.js index 9e59e4b..ba7d535 100644 --- a/src/sdk/google-genai.js +++ b/src/sdk/google-genai.js @@ -29,6 +29,19 @@ Framework scaffolding (category: npx_command): create-vite does NOT install — add "npm install" after cd. create-next-app installs automatically — do NOT add "npm install". +Next.js + MUI scaffolding (category: next_mui_project): + npx create-next-mui@latest -> Next.js + MUI + Use this when the user asks for a Next.js project with MUI, Material UI, or Material Design. + Always add "cd " or "npm install" after this command. + +Codebase rename (category: codebase_rename): + npx caselyjs --case kebab --full -> rename directories and files to kebab-case + npx caselyjs --case pascal --full -> rename directories and files to PascalCase + npx caselyjs --case camel --full -> rename directories and files to camelCase + Supported --case values are kebab, pascal, and camel. + Always include --full when the user wants to rename the codebase, files, and directories. + If no source path is given, use ".". + Package management (category: package_install): npm install pkg1 pkg2 → install runtime deps npm install -D pkg → install dev dependency @@ -43,8 +56,9 @@ Scripts (category: script_execution): 1. Extract the project name from the user's prompt. If none given, use a sensible default. 2. node_init always produces exactly: [mkdir , cd , npm init -y] 3. npx scaffolding always includes cd after, and npm install where needed. -4. Use category "mixed" only when the task spans multiple unrelated categories. -5. If the task is ambiguous, pick the most common/sensible interpretation. +4. codebase_rename always produces exactly one caselyjs command with --case and --full. +5. Use category "mixed" only when the task spans multiple unrelated categories. +6. If the task is ambiguous, pick the most common/sensible interpretation. ── Examples ───────────────────────────────────────────────────────── @@ -60,11 +74,17 @@ User: "set up a react app called dashboard using vite" User: "make a nextjs app called blog" {"analysis":"User wants a Next.js project named blog","category":"npx_command","commands":["npx create-next-app@latest blog"],"description":"Scaffolding a Next.js app called blog"} +User: "create a nextjs project with mui called admin-panel" +{"analysis":"User wants a Next.js + MUI project named admin-panel","category":"next_mui_project","commands":["npx create-next-mui@latest admin-panel"],"description":"Scaffolding a Next.js + MUI app called admin-panel"} + User: "install axios and dotenv" {"analysis":"User wants to install axios and dotenv in the current project","category":"package_install","commands":["npm install axios dotenv"],"description":"Installing axios and dotenv"} User: "create a folder called utils inside src" -{"analysis":"User wants to create a nested directory src/utils","category":"directory_creation","commands":["mkdir -p src/utils"],"description":"Creating directory src/utils"}`; +{"analysis":"User wants to create a nested directory src/utils","category":"directory_creation","commands":["mkdir -p src/utils"],"description":"Creating directory src/utils"} + +User: "rename the codebase in src to kebab case" +{"analysis":"User wants to rename files and directories under src to kebab-case","category":"codebase_rename","commands":["npx caselyjs src --case kebab --full"],"description":"Renaming the src codebase to kebab-case"}`; // ── structured output schema ────────────────────────────────────────── @@ -81,6 +101,8 @@ const SCHEMA = { "directory_creation", "node_init", "npx_command", + "next_mui_project", + "codebase_rename", "package_install", "script_execution", "mixed", From ed43f4c8bb8146367669d26c8bd91ed3934ce20c Mon Sep 17 00:00:00 2001 From: thatonevikash Date: Tue, 30 Jun 2026 13:55:26 +0530 Subject: [PATCH 3/5] fix(workflow): testing.yml file fixed for nextjs-mui setup --- .github/workflows/{dev-tests.yml => testing.yml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{dev-tests.yml => testing.yml} (99%) diff --git a/.github/workflows/dev-tests.yml b/.github/workflows/testing.yml similarity index 99% rename from .github/workflows/dev-tests.yml rename to .github/workflows/testing.yml index d07f83c..ffe3fd6 100644 --- a/.github/workflows/dev-tests.yml +++ b/.github/workflows/testing.yml @@ -23,7 +23,7 @@ # scaffolding — the test validates the scaffold succeeded, nothing more. # ───────────────────────────────────────────────────────────────────────────── -name: NOVA — Dev Action Tests +name: NOVA on: push: @@ -195,7 +195,7 @@ jobs: node-version: ${{ env.NODE_VERSION }} - name: "npx create-next-mui@latest todo-mui" - run: npx create-next-mui@latest todo-mui + run: npx create-next-mui@latest todo-mui --yes - name: "npm install" # runs inside todo-mui — mirrors the cd + npm install in dev.js From 3b0bf64771f889a1a4499a67a4aa32bfd74f0daa Mon Sep 17 00:00:00 2001 From: thatonevikash Date: Tue, 30 Jun 2026 13:59:12 +0530 Subject: [PATCH 4/5] fix: test names --- .github/workflows/testing.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index ffe3fd6..db76449 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -43,7 +43,7 @@ env: jobs: action-folder-creation: - name: "① folder creation" + name: "[1] folder creation" runs-on: ubuntu-latest steps: - name: "mkdir new-folder" @@ -55,7 +55,7 @@ jobs: # ── Action 2 ───────────────────────────────────────────────────────────────── action-navigate-within-folder: - name: "② navigate within folder" + name: "[2] navigate within folder" runs-on: ubuntu-latest steps: - name: "mkdir open-folder" @@ -69,7 +69,7 @@ jobs: # ── Action 3 ───────────────────────────────────────────────────────────────── action-nodejs-init: - name: "③ nodejs project init" + name: "[3] nodejs project init" runs-on: ubuntu-latest steps: - uses: actions/setup-node@v4 @@ -90,7 +90,7 @@ jobs: # ── Action 4 ───────────────────────────────────────────────────────────────── action-package-install: - name: "④ package installation" + name: "[4] package installation" runs-on: ubuntu-latest steps: - uses: actions/setup-node@v4 @@ -111,7 +111,7 @@ jobs: # ── Action 5 ───────────────────────────────────────────────────────────────── action-package-uninstall: - name: "⑤ package uninstallation" + name: "[5] package uninstallation" runs-on: ubuntu-latest steps: - uses: actions/setup-node@v4 @@ -137,7 +137,7 @@ jobs: # ── Action 6 ───────────────────────────────────────────────────────────────── action-vite-react: - name: "⑥ react + vite setup" + name: "[6] react + vite setup" runs-on: ubuntu-latest steps: - uses: actions/setup-node@v4 @@ -164,7 +164,7 @@ jobs: # ── Action 7 ───────────────────────────────────────────────────────────────── action-nextjs: - name: "⑦ nextjs setup" + name: "[7] nextjs setup" runs-on: ubuntu-latest steps: - uses: actions/setup-node@v4 @@ -187,7 +187,7 @@ jobs: # ── Action 8 ───────────────────────────────────────────────────────────────── action-nextjs-mui: - name: "⑧ nextjs + mui setup" + name: "[8] nextjs + mui setup" runs-on: ubuntu-latest steps: - uses: actions/setup-node@v4 From ddf1a39c8b06d105da8a831cde1287ab4a4bdf2c Mon Sep 17 00:00:00 2001 From: thatonevikash Date: Fri, 11 Sep 2026 13:24:18 +0530 Subject: [PATCH 5/5] chore(development): consollidate development env into main --- src/dev.js => .development/index.js | 4 +-- .gitignore | 4 +-- PLAN.md | 52 ----------------------------- 3 files changed, 4 insertions(+), 56 deletions(-) rename src/dev.js => .development/index.js (97%) delete mode 100644 PLAN.md diff --git a/src/dev.js b/.development/index.js similarity index 97% rename from src/dev.js rename to .development/index.js index aa09e15..410fd7d 100644 --- a/src/dev.js +++ b/.development/index.js @@ -1,7 +1,7 @@ import chalk from "chalk"; import { createInterface } from "readline"; -import { executeCommands } from "./executor.js"; -import { printCommand, printError, printFinished, sep } from "./ui.js"; +import { executeCommands } from "../src/executor.js"; +import { printCommand, printError, printFinished, sep } from "../src/ui.js"; // ── action definitions ──────────────────────────────────────────────── // Each entry mirrors the shape of an AI response so the real executor diff --git a/.gitignore b/.gitignore index 576ed7c..5c7a797 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -node_modules +# ignore -.development +node_modules \ No newline at end of file diff --git a/PLAN.md b/PLAN.md deleted file mode 100644 index bae11ac..0000000 --- a/PLAN.md +++ /dev/null @@ -1,52 +0,0 @@ -# NOVA - -An assistant who lives on terminal commands. - -## CONTROLS - -- Capable to create folder ( eg. for spinning up a new react project using any tool vite, nextjs, backend setup ) -- Capable to run commands within any folder ( eg. npm init ) -- Capable to navigate within created folder ( directory ) -- Capable to start dev server in the active terminal. -- Capable to install further dependencies. ( axios, swr ). - -## FORM - -Lives in local system that can be downloadable. ( I will make it publically available ) - -## ACTIVATION - -To activate it will require to run a command on terminal - -```bash -nova --activate -``` - -### ACTIVATION LOOK ON TERMINAL - -```bash -$ nova --activate -- -> Hello, {$username}. I'm 'NOVA' -- -> describe your task! -- -◕ thinking... ( 2.1 seconds ) -◕ generating... ( 3.5 seconds ) -- -◓ finished. -- -> describe your task! -``` - -- `$username` is desktop username -- `describe your task!` is a placeholder text - -## PROMPTING ENGINE WORK - -- described task evalution ( what is the task? ) -- categorized the task: - 1. directory creation - 2. npx command execution ( scaffolding a new project using vite, nextjs or any other library ) - 3. package installation/uninstallation ( adding a new dependency/removing dependency ) - 4. script execution ( package.json )