diff --git a/.gitignore b/.gitignore
index 8a6192a26..492258919 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,50 +1,5 @@
-node_modules/
-dist/
-!extension/dist/
-*.tsbuildinfo
-hosted-contract.json
-plugin-command-manifest.json
-.webcmd/
-.superpowers/
-.worktrees/
-.agents/*
-!.agents/plugins/
-.agents/plugins/*
-!.agents/plugins/marketplace.json
-.mcp.json
-*.log
+node_modules/
+package-lock.json
+debug.html
.DS_Store
-
-# Local-only research, examples, and agent planning artifacts
-autoresearch/
-cases/
-designs/
-docs/superpowers/
-instagram-test/
-llms.txt
-sitemaps/
-
-# Extensions & Secrets
-*.pem
-*.crx
-*.zip
-.envrc
-.windsurf
-.claude
-.cortex
-
-# Database files
-*.db
-autoresearch-results.tsv
-
-# webcmd benchmarks (dataset comparison harness)
-benchmarks/results/
-benchmarks/.venv/
-benchmarks/node_modules/
-benchmarks/**/__pycache__/
-benchmarks/.pytest_cache/
-benchmarks/pytest-cache-files-*
-benchmarks/datasets/*.json
-!benchmarks/datasets/Stealth_Webcmd.json
-benchmarks/.playwright-cli/
-benchmarks/.playwright/
+*.log
diff --git a/README.md b/README.md
index e7f2c266c..c930dc8ad 100644
--- a/README.md
+++ b/README.md
@@ -1,160 +1,38 @@
-
+# DealPulse v2.0
+**Autonomous Shopping & Market Spread Analyzer**
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Learning stays quiet and selective: the live browser is always truth, Webcmd
-never explores just to learn, and a memory failure never blocks the task. First
-access may use a Webcmd Cloud seed; subsequent learning stays local.
-
-For local, multi-step browser exploration, agents can send one sandboxed
-Playwright-style program to an explicit browser session:
-
-```bash
-webcmd --profile work session create "Work Project" -f json
-# id: work-project-k7
-webcmd --profile work --session work-project-k7 browser tabs
-webcmd --profile work --session work-project-k7 browser run --file explore.js
-printf 'return await page.title();' \
- | webcmd --profile work --session work-project-k7 browser run --stdin
-webcmd --profile work session close work-project-k7
-```
-
-Profiles are cookie jars; Sessions are independent browser windows within a
-profile, so Session IDs are immutable, Profile-scoped, and safe to reuse for
-that Session's lifetime. Parallel agents should create separate Sessions.
-Raw browser commands require an explicit readable Session ID.
-
-## Benchmarks
-
-On [BU Bench V1](https://github.com/browser-use/benchmark#bu-bench-v1), a
-100-task browser automation benchmark, Webcmd recorded the highest accuracy and
-lowest estimated controller cost per completed task, and fewest agent turns per
-completed task in this comparison.
-
-
-
-All tools used the same Pi controller, controller model, Codex `gpt-5.4` judge,
-and CloakBrowser engine. This is a stronger judge than the original BU Bench
-setup, whose [current runner uses Gemini 2.5 Flash](https://github.com/browser-use/benchmark/blob/main/run_eval.py#L37-L38).
-Accuracy is passed tasks out of 100. Cost and agent turns are averaged over
-completed tasks; cost excludes judge usage. See the
-[benchmark report](./benchmarks/README.md) for category results, methodology,
-architectural analysis, and reproduction steps.
-
-## Learn More
-
-Webcmd Cloud can run supported commands and browser sessions on hosted infrastructure. It is in active development and is not yet stable.
-
-- [Prompt Cookbook](https://webcmd.dev/docs/agent-prompts)
-- [How Webcmd Works](https://webcmd.dev/docs/concepts)
-- [Local or Cloud](https://webcmd.dev/docs/local-or-cloud)
-- [Command Surface](https://webcmd.dev/docs/cli-reference)
-
-## Contributing
-
-See [CONTRIBUTING.md](./CONTRIBUTING.md).
-
-## License
-
-Released under the terms in [`LICENSE`](./LICENSE).
+* **`.gitignore`**: Specifies files and directories that Git should not track, such as the `node_modules/` directory, `debug.html`, and `package-lock.json`.
diff --git a/analyzer.js b/analyzer.js
new file mode 100644
index 000000000..a38b4b581
--- /dev/null
+++ b/analyzer.js
@@ -0,0 +1,109 @@
+import { execSync } from 'child_process';
+import * as cheerio from 'cheerio';
+
+async function analyzeProduct(query) {
+ console.log(`\n🔍 Searching web for: "${query}"...`);
+
+ // Target DuckDuckGo HTML endpoint (no JS execution or CAPTCHA walls required)
+ const searchUrl = `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query + ' price buy online india')}`;
+
+ let html = '';
+ try {
+ console.log(`[1/1] Fetching live shopping results via webcmd...`);
+ html = execSync(
+ `webcmd web fetch --url "${searchUrl}" --raw`,
+ { encoding: 'utf-8', maxBuffer: 1024 * 1024 * 25 }
+ );
+ } catch (err) {
+ console.error("❌ Failed to fetch via webcmd.");
+ return;
+ }
+
+ const $ = cheerio.load(html);
+ const items = [];
+
+ // Parse DuckDuckGo search result blocks
+ $('.result').each((_, el) => {
+ const title = $(el).find('.result__title a').text().trim();
+ const snippet = $(el).find('.result__snippet').text().trim();
+ let link = $(el).find('.result__url').attr('href') || $(el).find('.result__title a').attr('href') || '';
+
+ // Unpack direct URL if redirected
+ if (link.includes('uddg=')) {
+ const match = link.match(/uddg=([^&]+)/);
+ if (match) link = decodeURIComponent(match[1]);
+ }
+
+ const fullText = `${title} ${snippet}`;
+
+ // Identify store from link domain
+ let store = 'Online Retailer';
+ if (link.includes('amazon.')) store = 'Amazon India';
+ else if (link.includes('flipkart.')) store = 'Flipkart';
+ else if (link.includes('croma.')) store = 'Croma';
+ else if (link.includes('reliancedigital.')) store = 'Reliance Digital';
+ else if (link.includes('tatacliq.')) store = 'Tata CLiQ';
+ else if (link.includes('vijaysales.')) store = 'Vijay Sales';
+ else {
+ try {
+ const domain = new URL(link.startsWith('http') ? link : `https://${link}`).hostname;
+ store = domain.replace('www.', '');
+ } catch {}
+ }
+
+ // Match INR price patterns: ₹ 24,990 or Rs. 26,990
+ const priceMatch = fullText.match(/(?:₹|Rs\.?|INR)\s*([\d,]+(?:\.\d{2})?)/i);
+
+ if (priceMatch && title) {
+ const num = parseFloat(priceMatch[1].replace(/,/g, ''));
+ // Filter out irrelevant low-priced accessories (< ₹1,000) or erroneous values
+ if (num >= 1000 && num <= 500000) {
+ items.push({
+ title,
+ store,
+ price: num,
+ link: link.startsWith('http') ? link : 'https://' + link
+ });
+ }
+ }
+ });
+
+ // Filter out accessories (cases, ear pads, covers)
+ const keywords = query.toLowerCase().split(' ');
+ const relevant = items.filter(item => {
+ const t = item.title.toLowerCase();
+ const isAccessory = t.includes('case only') || t.includes('cover') || t.includes('cushion') || t.includes('earpad');
+ return keywords.every(kw => t.includes(kw)) && !isAccessory;
+ });
+
+ const finalPool = relevant.length > 0 ? relevant : items;
+
+ if (finalPool.length === 0) {
+ console.log("\n❌ Could not find exact listings with clear prices. Try searching: 'Sony WH-1000XM5'");
+ return;
+ }
+
+ // Sort by price ascending
+ finalPool.sort((a, b) => a.price - b.price);
+
+ const lowest = finalPool[0];
+ const highest = finalPool[finalPool.length - 1];
+
+ console.log("\n=======================================================");
+ console.log(` PRICING ANALYSIS REPORT `);
+ console.log("=======================================================");
+ console.log(`Product: ${query}`);
+ console.log(`Sources Found: ${finalPool.length} verified sellers`);
+ console.log("-------------------------------------------------------");
+ console.log(`🟢 LOWEST PRICE: ₹ ${lowest.price.toLocaleString('en-IN')}`);
+ console.log(` Seller: ${lowest.store}`);
+ console.log(` Title: ${lowest.title}`);
+ console.log(` Product Link: ${lowest.link}`);
+ console.log("-------------------------------------------------------");
+ console.log(`🔴 HIGHEST PRICE: ₹ ${highest.price.toLocaleString('en-IN')}`);
+ console.log(` Seller: ${highest.store}`);
+ console.log("=======================================================\n");
+}
+
+const userQuery = process.argv.slice(2).join(' ') || 'Sony WH-1000XM5';
+analyzeProduct(userQuery);
diff --git a/debug.html b/debug.html
new file mode 100644
index 000000000..03a588e25
--- /dev/null
+++ b/debug.html
@@ -0,0 +1,19 @@
+# Fetched content
+
+Source: https://www.google.com/search?tbm=shop&q=Sony+WH-1000XM5&hl=en
+Final URL: https://www.google.com/search?q=Sony+WH-1000XM5&hl=en&udm=28
+Content type: text/html; charset=UTF-8
+Extraction: raw
+Bytes: 92537
+Truncated: true
+
+