chore: delete BOT

RIP
diff --git a/erpnext/utilities/bot.py b/erpnext/utilities/bot.py
deleted file mode 100644
index 5c2e576..0000000
--- a/erpnext/utilities/bot.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-
-
-import frappe
-from frappe import _
-from frappe.utils.bot import BotParser
-
-
-class FindItemBot(BotParser):
-	def get_reply(self):
-		if self.startswith("where is", "find item", "locate"):
-			if not frappe.has_permission("Warehouse"):
-				raise frappe.PermissionError
-
-			item = "%{0}%".format(self.strip_words(self.query, "where is", "find item", "locate"))
-			items = frappe.db.sql(
-				"""select name from `tabItem` where item_code like %(txt)s
-				or item_name like %(txt)s or description like %(txt)s""",
-				dict(txt=item),
-			)
-
-			if items:
-				out = []
-				warehouses = frappe.get_all("Warehouse")
-				for item in items:
-					found = False
-					for warehouse in warehouses:
-						qty = frappe.db.get_value(
-							"Bin", {"item_code": item[0], "warehouse": warehouse.name}, "actual_qty"
-						)
-						if qty:
-							out.append(
-								_("{0} units of [{1}](/app/Form/Item/{1}) found in [{2}](/app/Form/Warehouse/{2})").format(
-									qty, item[0], warehouse.name
-								)
-							)
-							found = True
-
-					if not found:
-						out.append(_("[{0}](/app/Form/Item/{0}) is out of stock").format(item[0]))
-
-				return "\n\n".join(out)
-
-			else:
-				return _("Did not find any item called {0}").format(item)