diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..9227b32 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +include=dev diff --git a/esbuild.config.mjs b/esbuild.config.mjs index b58c6de..80a8bd8 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -1,9 +1,21 @@ import esbuild from "esbuild"; import process from "process"; -import builtins from "builtin-modules"; const prod = process.argv[2] === "production"; +const nodeBuiltins = [ + "fs", + "fs/promises", + "path", + "os", + "crypto", + "events", + "stream", + "util", + "http", + "https", +]; + const context = await esbuild.context({ entryPoints: ["src/main.ts"], bundle: true, @@ -21,7 +33,7 @@ const context = await esbuild.context({ "@lezer/common", "@lezer/highlight", "@lezer/lr", - ...builtins, + ...nodeBuiltins, ], format: "cjs", target: "es2022", diff --git a/manifest.json b/manifest.json index 4684879..a82c6af 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "ai-vault", "name": "AI-Vault", - "version": "1.0.2", + "version": "1.0.4", "minAppVersion": "1.7.2", "description": "Chat with GPT and Claude directly inside your notes — RAG from your vault, history, projects and smart modes.", "author": "JamJan05", diff --git a/package.json b/package.json index 8db5700..f9965e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ai-vault", - "version": "1.0.2", + "version": "1.0.4", "description": "AI-Vault — chat with GPT & Claude inside Obsidian, powered by your vault", "main": "main.js", "scripts": { @@ -13,7 +13,6 @@ "license": "MIT", "devDependencies": { "@types/node": "^22.19.18", - "builtin-modules": "^3.3.0", "esbuild": "^0.21.5", "obsidian": "^1.12.3", "tslib": "^2.6.3", diff --git a/styles.css b/styles.css index 9bb66e9..94d659b 100644 --- a/styles.css +++ b/styles.css @@ -142,10 +142,10 @@ cursor: pointer; transition: all .2s; white-space: nowrap; } .gpt-mode-btn:hover { background: var(--background-modifier-hover); color: var(--text-normal); } -.gpt-mode-btn--active { - background: var(--interactive-accent) !important; - color: #fff !important; - border-color: var(--interactive-accent) !important; +.gpt-mode-btn.gpt-mode-btn--active { + background: var(--interactive-accent); + color: #fff; + border-color: var(--interactive-accent); font-weight: 600; } @@ -179,7 +179,9 @@ text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 600; } -.gpt-ctx-hidden { display: none !important; } +.gpt-chat-root .gpt-ctx-hidden, +.gpt-history-root .gpt-ctx-hidden, +.gpt-projects-root .gpt-ctx-hidden { display: none; } .gpt-ctx-list { color: var(--text-muted); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; } .gpt-ctx-clear { background: none; border: none; cursor: pointer; color: var(--text-muted); padding: 0 2px; font-size: 13px; line-height: 1; } @@ -237,7 +239,7 @@ .gpt-msg-interrupted { font-size: 10px; color: var(--text-faint); margin-top: 6px; font-style: italic; } .gpt-msg-error-line { color: var(--gpt-color-error); font-weight: 600; } .gpt-msg-error-detail { font-size: 10px; color: var(--text-faint); margin-top: 6px; } -.gpt-error { color: var(--gpt-color-error) !important; } +.gpt-bubble .gpt-error { color: var(--gpt-color-error); } /* ─── Loading dots ───────────────────────────────────────────────────────────── */ .gpt-loading .gpt-msg-content { display: none; } @@ -286,10 +288,10 @@ font-family: var(--font-interface); margin-left: auto; line-height: 1; } .gpt-code-copy:hover { background: var(--background-modifier-hover); color: var(--text-normal); } -.gpt-code-copy--ok { - color: var(--gpt-color-openai) !important; - border-color: var(--gpt-color-openai) !important; - background: color-mix(in srgb, var(--gpt-color-openai) 10%, var(--background-secondary)) !important; +.gpt-code-copy.gpt-code-copy--ok { + color: var(--gpt-color-openai); + border-color: var(--gpt-color-openai); + background: color-mix(in srgb, var(--gpt-color-openai) 10%, var(--background-secondary)); } .gpt-bubble pre { background: var(--background-primary); border-radius: 0; padding: 10px 12px; overflow-x: auto; margin: 0; font-size: 12px; } .gpt-bubble code { font-family: var(--font-monospace); font-size: 12px; } @@ -332,28 +334,28 @@ .gpt-tool-btn:hover { background: var(--background-modifier-hover); color: var(--text-normal); } /* Active states for tool buttons */ -.gpt-rag-btn--active { - background: color-mix(in srgb, var(--gpt-color-openai) 15%, var(--background-secondary)) !important; - color: var(--gpt-color-openai) !important; - border-color: var(--gpt-color-openai) !important; +.gpt-tool-btn.gpt-rag-btn--active { + background: color-mix(in srgb, var(--gpt-color-openai) 15%, var(--background-secondary)); + color: var(--gpt-color-openai); + border-color: var(--gpt-color-openai); font-weight: 600; } -.gpt-websearch-btn--active { - background: color-mix(in srgb, var(--gpt-color-web) 15%, var(--background-secondary)) !important; - color: var(--gpt-color-web) !important; - border-color: var(--gpt-color-web) !important; +.gpt-tool-btn.gpt-websearch-btn--active { + background: color-mix(in srgb, var(--gpt-color-web) 15%, var(--background-secondary)); + color: var(--gpt-color-web); + border-color: var(--gpt-color-web); font-weight: 600; } -.gpt-learn-btn--active { - background: color-mix(in srgb, var(--gpt-color-learn) 15%, var(--background-secondary)) !important; - color: #b45309 !important; - border-color: var(--gpt-color-learn) !important; +.gpt-tool-btn.gpt-learn-btn--active { + background: color-mix(in srgb, var(--gpt-color-learn) 15%, var(--background-secondary)); + color: #b45309; + border-color: var(--gpt-color-learn); font-weight: 600; } -.gpt-code-btn--active { - background: color-mix(in srgb, var(--gpt-color-claude) 15%, var(--background-secondary)) !important; - color: var(--gpt-color-claude) !important; - border-color: var(--gpt-color-claude) !important; +.gpt-tool-btn.gpt-code-btn--active { + background: color-mix(in srgb, var(--gpt-color-claude) 15%, var(--background-secondary)); + color: var(--gpt-color-claude); + border-color: var(--gpt-color-claude); font-weight: 600; } @@ -473,15 +475,15 @@ border-color: var(--interactive-accent); background: color-mix(in srgb, var(--interactive-accent) 8%, var(--background-primary)); } -.gpt-quiz-opt--correct { - border-color: var(--gpt-color-openai) !important; - background: color-mix(in srgb, var(--gpt-color-openai) 12%, var(--background-primary)) !important; - color: var(--gpt-color-ok-text) !important; font-weight: 600; +.gpt-quiz-opt.gpt-quiz-opt--correct { + border-color: var(--gpt-color-openai); + background: color-mix(in srgb, var(--gpt-color-openai) 12%, var(--background-primary)); + color: var(--gpt-color-ok-text); font-weight: 600; } -.gpt-quiz-opt--wrong { - border-color: var(--gpt-color-error) !important; - background: color-mix(in srgb, var(--gpt-color-error) 10%, var(--background-primary)) !important; - color: var(--gpt-color-err-text) !important; +.gpt-quiz-opt.gpt-quiz-opt--wrong { + border-color: var(--gpt-color-error); + background: color-mix(in srgb, var(--gpt-color-error) 10%, var(--background-primary)); + color: var(--gpt-color-err-text); } .gpt-quiz-opt:disabled { cursor: default; } .gpt-quiz-fb { margin-top: 10px; padding: 9px 12px; border-radius: 8px; font-size: 12px; line-height: 1.5; } diff --git a/versions.json b/versions.json index 84bdfe3..c8a1760 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,5 @@ { "1.0.0": "1.4.0", - "1.0.2": "1.7.2" + "1.0.2": "1.7.2", + "1.0.4": "1.7.2" }