refactor!: rewrite bot core; add AI (Ollama, Gemini), DB, new commands

This commit is contained in:
2026-01-12 15:32:50 +03:00
parent 9d74ad9861
commit df9471a7e4
137 changed files with 11341 additions and 2025 deletions
+212 -178
View File
@@ -19,34 +19,140 @@
<select />
</component>
<component name="ChangeListManager">
<list default="true" id="4570b3ba-8ca9-473b-b662-8e4acc119298" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/dictionaries/meloda_main.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/answers.json" afterDir="false" />
<change afterPath="$PROJECT_DIR$/base/base.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/base/db.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/base/net.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/base/package.json" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/ae.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/base/command.d.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/base/commands.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/base/stats.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/dad.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/fuckYou.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/help.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/mom.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/mute.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/ping.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/q.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/randomString.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/systemSpecs.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/test.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/commands/unmute.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/data.json" afterDir="false" />
<change afterPath="$PROJECT_DIR$/debug_data.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.name" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.vscode/launch.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/index.ts" afterDir="false" />
<list default="true" id="4570b3ba-8ca9-473b-b662-8e4acc119298" name="Default Changelist" comment="refactor!: rewrite bot core; add AI (Ollama, Gemini), DB, new commands">
<change afterPath="$PROJECT_DIR$/.eslintrc.json" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.github/dependabot.yml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.github/workflows/docker-publish.yml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Dockerfile-bun" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-Black.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-Bold.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-ExtraBold.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-ExtraLight.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-Light.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-Medium.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-Regular.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-SemiBold.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/assets/Inter_18pt-Thin.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bun.lock" afterDir="false" />
<change afterPath="$PROJECT_DIR$/drizzle.config.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/base/callback-command.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/base/chat-command.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/base/dao.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/base/requirement.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/base/requirements.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/admins-add.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/admins-remove.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/ae.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/ban.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/cache-clear.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/cache-size.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/choice.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/coin.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/dice.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/distort.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/gemini-chat.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/help.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/id.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/leave.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/mute.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/ollama-chat.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/ollama-kill.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/ollama-prompt.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/ollama-search.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/ping.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/prefix-response.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/qr.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/quote.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/random-int.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/random-string.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/shutdown.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/start.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/system-specs.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/test.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/title.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/unban.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/unmute.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/uptime.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/what-better.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/commands/when.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/common/environment.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/common/message-part.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/common/message-store.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/common/user-store.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/db/database-manager.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/db/database.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/db/message-dao.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/db/schema.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/db/user-dao.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/model/stored-message.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/model/stored-user.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/model/web-search-response.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/util/utils.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/tg-ts-bot.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/tg-chat-bot.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/answers.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/base.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/base.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/base.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/db.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/db.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/db.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/net.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/net.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/net.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/base/package.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/ae.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/ae.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/ae.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/base/command.d.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/base/commands.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/base/commands.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/base/commands.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/base/stats.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/base/stats.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/base/stats.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/dad.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/dad.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/dad.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/fuckYou.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/fuckYou.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/fuckYou.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/help.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/help.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/help.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/mom.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/mom.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/mom.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/mute.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/mute.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/mute.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/ping.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/ping.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/ping.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/q.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/q.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/q.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/randomString.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/randomString.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/randomString.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/systemSpecs.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/systemSpecs.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/systemSpecs.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/test.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/test.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/test.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/unmute.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/unmute.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/commands/unmute.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/data.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/debug.bat" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/debug_data.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/index.js" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/index.js.map" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/index.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/tsconfig.json" beforeDir="false" afterPath="$PROJECT_DIR$/tsconfig.json" afterDir="false" />
@@ -60,44 +166,92 @@
<option name="RECENT_TEMPLATES">
<list>
<option value="tsconfig.json" />
<option value="TypeScript File" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GitHubPullRequestSearchHistory">{
&quot;lastFilter&quot;: {
&quot;state&quot;: &quot;OPEN&quot;,
&quot;assignee&quot;: &quot;melod1n&quot;
}
}</component>
<component name="GithubPullRequestsUISettings">{
&quot;selectedUrlAndAccountId&quot;: {
&quot;url&quot;: &quot;https://github.com/melod1n/tg-ts-bot.git&quot;,
&quot;accountId&quot;: &quot;85bd8cb8-d2dc-4f79-8786-c6a525656547&quot;
}
}</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/node_modules/typescript-telegram-bot-api/dist/types/Message.d.ts" root0="SKIP_INSPECTION" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 8
}</component>
<component name="ProjectId" id="1pGFr81roZw9V4CxjwjI3wk7PBj" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="autoscrollFromSource" value="true" />
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="restartRequiresConfirmation" value="false" />
<property name="settings.editor.selected.configurable" value="preferences.sourceCode.TypeScript" />
<property name="ts.external.directory.path" value="C:\Program Files\JetBrains\WebStorm 2020.1\plugins\JavaScriptLanguage\jsLanguageServicesImpl\external" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Node.js.index.ts.executor": "Debug",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
"RunOnceActivity.git.unshallow": "true",
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
"git-widget-placeholder": "main",
"ignore.virus.scanning.warn.message": "true",
"javascript.preferred.runtime.type.id": "node",
"last_opened_file_path": "C:/Users/meloda/WebstormProjects/tg-chat-bot/.github",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.standard": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.standard": "",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "settings.sync",
"ts.external.directory.path": "C:\\Users\\meloda\\WebstormProjects\\tg-chat-bot\\node_modules\\typescript\\lib",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\meloda\WebstormProjects\tg-chat-bot\.github" />
<recent name="C:\Users\meloda\WebstormProjects\tg-chat-bot\assets" />
<recent name="C:\Users\meloda\WebstormProjects\tg-chat-bot\src" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\meloda\WebstormProjects\tg-chat-bot\data" />
<recent name="C:\Users\meloda\WebstormProjects\tg-chat-bot\assets" />
<recent name="C:\Users\meloda\WebstormProjects\tg-chat-bot\src\database" />
<recent name="C:\Users\meloda\WebstormProjects\tg-chat-bot\src" />
<recent name="C:\Users\meloda-main\Workspace\Development\JavaScript\tg-ts-bot\commands\base" />
<recent name="C:\Users\meloda-main\Workspace\Development\JavaScript\tg-ts-bot\commands" />
<recent name="C:\Users\meloda-main\Workspace\Development\JavaScript\tg-ts-bot\commands\lib" />
</key>
</component>
<component name="RunManager">
<configuration name="index.js" type="NodeJSConfigurationType" nameIsGenerated="true" path-to-js-file="index.js" working-dir="$PROJECT_DIR$">
<configuration name="index.ts" type="NodeJSConfigurationType" nameIsGenerated="true" path-to-js-file="src/index.ts" typescript-loader="bundled" working-dir="$PROJECT_DIR$">
<EXTENSION ID="com.intellij.javascript.debugger.execution.StartBrowserRunConfigurationExtension">
<browser with-js-debugger="true" />
</EXTENSION>
<method v="2">
<option name="TypeScript.Before.Run" enabled="true" FAIL_ON_ERROR="true" CONFIG_PATH="$PROJECT_DIR$/tsconfig.json" />
</method>
</configuration>
</component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-js-predefined-d6986cc7102b-9b0f141eb926-JavaScript-WS-253.29346.242" />
</set>
</attachedChunks>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
@@ -110,45 +264,24 @@
<updated>1614801715917</updated>
<workItem from="1614801717620" duration="6690000" />
<workItem from="1614808420471" duration="9549000" />
<workItem from="1766000401591" duration="41000" />
<workItem from="1766000469449" duration="52000" />
<workItem from="1766000541009" duration="278000" />
<workItem from="1766000835462" duration="346000" />
<workItem from="1766001193400" duration="4438000" />
<workItem from="1766005687149" duration="10990000" />
<workItem from="1766049114851" duration="5467000" />
<workItem from="1766166140465" duration="591000" />
<workItem from="1766866014900" duration="51837000" />
<workItem from="1767317604283" duration="47747000" />
<workItem from="1767820881693" duration="9661000" />
<workItem from="1768205148374" duration="3000" />
<workItem from="1768205636411" duration="10493000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="2" />
<option name="exactExcludedFiles">
<list>
<option value="$PROJECT_DIR$/index.js" />
<option value="$PROJECT_DIR$/base/base.js.map" />
<option value="$PROJECT_DIR$/base/base.js" />
<option value="$PROJECT_DIR$/base/net.js" />
<option value="$PROJECT_DIR$/base/net.js.map" />
<option value="$PROJECT_DIR$/base/db.js" />
<option value="$PROJECT_DIR$/base/db.js.map" />
<option value="$PROJECT_DIR$/index.js.map" />
<option value="$PROJECT_DIR$/commands/base/stats.js" />
<option value="$PROJECT_DIR$/commands/base/stats.js.map" />
<option value="$PROJECT_DIR$/commands/dad.js" />
<option value="$PROJECT_DIR$/commands/randomString.js.map" />
<option value="$PROJECT_DIR$/commands/ping.js" />
<option value="$PROJECT_DIR$/commands/unmute.js.map" />
<option value="$PROJECT_DIR$/commands/unmute.js" />
<option value="$PROJECT_DIR$/commands/mom.js" />
<option value="$PROJECT_DIR$/commands/dad.js.map" />
<option value="$PROJECT_DIR$/commands/mute.js.map" />
<option value="$PROJECT_DIR$/commands/ae.js.map" />
<option value="$PROJECT_DIR$/commands/q.js.map" />
<option value="$PROJECT_DIR$/commands/randomString.js" />
<option value="$PROJECT_DIR$/commands/ping.js.map" />
<option value="$PROJECT_DIR$/commands/mom.js.map" />
<option value="$PROJECT_DIR$/commands/fuckYou.js.map" />
<option value="$PROJECT_DIR$/commands/systemSpecs.js" />
<option value="$PROJECT_DIR$/commands/q.js" />
<option value="$PROJECT_DIR$/commands/mute.js" />
<option value="$PROJECT_DIR$/commands/systemSpecs.js.map" />
<option value="$PROJECT_DIR$/commands/fuckYou.js" />
<option value="$PROJECT_DIR$/commands/ae.js" />
</list>
</option>
<option name="version" value="3" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
@@ -160,108 +293,9 @@
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="WindowStateProjectService">
<state x="414" y="175" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1614802857330">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="414" y="175" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614802857330" />
<state x="723" y="322" key="#com.intellij.fileTypes.FileTypeChooser" timestamp="1614817166437">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="723" y="322" key="#com.intellij.fileTypes.FileTypeChooser/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817166437" />
<state x="765" y="236" key="#com.intellij.ide.util.MemberChooser" timestamp="1614817064818">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="765" y="236" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817064818" />
<state x="644" y="214" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog" timestamp="1614816552557">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="644" y="214" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614816552557" />
<state x="690" y="267" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1614813087174">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="690" y="267" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614813087174" />
<state x="669" y="178" key="#index.js" timestamp="1614814039183">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="669" y="178" key="#index.js/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614814039183" />
<state width="1899" height="399" key="GridCell.Tab.0.bottom" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.0.bottom/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.0.center" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.0.center/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.0.left" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.0.left/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.0.right" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.0.right/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.1.bottom" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.1.bottom/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.1.center" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.1.center/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.1.left" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.1.left/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.1.right" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.1.right/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.2.bottom" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.2.bottom/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.2.center" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.2.center/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.2.left" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.2.left/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.2.right" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.2.right/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.3.bottom" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.3.bottom/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.3.center" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.3.center/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.3.left" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.3.left/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state width="1899" height="399" key="GridCell.Tab.3.right" timestamp="1614817972274">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1899" height="399" key="GridCell.Tab.3.right/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817972274" />
<state x="461" y="165" key="SettingsEditor" timestamp="1614803101448">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="461" y="165" key="SettingsEditor/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614803101448" />
<state x="-1280" y="54" width="1296" height="1027" maximized="true" key="dock-window-1" timestamp="1614817285117">
<screen x="-1280" y="54" width="1280" height="984" />
</state>
<state x="-1280" y="54" width="1296" height="1027" maximized="true" key="dock-window-1/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614817285117" />
<state x="-1280" y="54" width="1296" height="1027" maximized="true" key="dock-window-2" timestamp="1614808260833">
<screen x="-1280" y="54" width="1280" height="984" />
</state>
<state x="-1280" y="54" width="1296" height="1027" maximized="true" key="dock-window-2/0.0.1920.1040/-1280.54.1280.984@0.0.1920.1040" timestamp="1614808260833" />
<component name="VcsManagerConfiguration">
<MESSAGE value="refactor!: rewrite bot core; add AI (Ollama, Gemini), DB, new commands" />
<option name="LAST_COMMIT_MESSAGE" value="refactor!: rewrite bot core; add AI (Ollama, Gemini), DB, new commands" />
</component>
</project>