Commit graph

58 commits

Author SHA1 Message Date
Andrew Beal
3969825be6 chore: bump dependencies across multiple packages 2026-02-28 14:10:34 +00:00
Andrew Beal
723223fd29 chore: update dependencies to latest versions
Update @anthropic-ai/sdk from 0.74.0 to 0.78.0, @google/genai from 1.41.0 to 1.42.0, and dev dependencies @types/node, happy-dom, and svelte-check to their latest patch versions.
2026-02-19 21:10:54 +00:00
Andrew Beal
8c29f6ddd0 chore: update dependencies and add minimatch security override
Update Svelte from 5.51.2 to 5.53.0, upgrade various dependencies including @google/genai, @types/node, acorn, entities, and happy-dom. Add minimatch override to >=10.2.1 for security. Remove duplicate nested dependency declarations for brace-expansion, minimatch, and concat-map.
2026-02-19 21:00:39 +00:00
Andrew Beal
c044ebdf42 feat: add select-all checkbox and grid layout to conversation history modal
- Add toggleAll function to select/deselect all conversations
- Restructure layout using CSS grid for better alignment
- Add header row with column labels (Date, Title) and select-all checkbox
- Improve text overflow handling with min-width
- Update TypeScript ESLint packages to 8.56.0
2026-02-16 20:39:15 +00:00
Andrew Beal
8a8f3bce2e chore: update dependencies to latest versions
Update AI SDK packages (@anthropic-ai/sdk, @google/genai, openai), TypeScript tooling (@typescript-eslint packages), build tools (esbuild), testing dependencies (happy-dom), and Svelte packages to their latest compatible versions
2026-02-15 23:02:13 +00:00
Andrew Beal
6dd8e84efd Add Claude Opus 4.6 model support and update dependencies 2026-02-05 22:09:06 +00:00
Andrew Beal
3a42430fe7 Bump dependency versions 2026-02-01 14:00:51 +00:00
Andrew Beal
470c132967 chore: update dependencies 2026-01-30 22:13:31 +00:00
Andrew Beal
244ad2355d chore: update dependencies to latest versions
Update openai to 6.17.0, @types/node to 25.1.0, happy-dom to 20.4.0, and svelte to 5.49.0
2026-01-29 15:06:47 +00:00
Andrew Beal
cefc408b2e Add context passing between execution steps and enhance orchestration
- Add context_for_next_step parameter to CompleteStep for passing execution history
- Add context parameter to CompleteTask for preserving task completion state
- Update OrchestrationResult to handle context propagation between steps
- Add debug color differentiation for agent types (Main, Execution, Orchestration, Planning)
- Reorganize SearchTypes from Helpers to Types directory
- Add justification requirement for execution deviations
- Support reasonable deviations in orchestration plan validation
- Refactor dependency service with TryResolve utility
- Add whitespace cleanup to Semaphore class
2026-01-28 21:23:47 +00:00
Andrew Beal
789302ade4 fix: improve height calculation reliability in ChatPlanArea
Move step height measurements into updateHeight function to ensure fresh calculations on each update, preventing stale reactive declarations from causing incorrect collapsed height values
2026-01-07 20:40:16 +00:00
Andrew Beal
9cc4aca679 Update dependencies: diff2html, zod, TypeScript ESLint, and rollup 2026-01-05 22:30:08 +00:00
Andrew Beal
989fab565d feat: implement prompt caching for Claude API requests
Add cache control to system prompt, tools, and conversation messages to optimize API performance and reduce costs by caching frequently reused content.
Update GitHub link to point directly to project page.
Improve prompt for user suggestion during actions that require confirmation.
Update unit tests.
Bump dependency versions.
2025-12-27 19:52:59 +00:00
Andrew Beal
1e5f3a9a9b Bump dependency versions 2025-12-23 13:53:26 +00:00
Andrew Beal
cf952352d0 fix: optimize chat area layout updates and add fade gradients
- Add isObserver parameter to updateChatAreaLayout for instant ResizeObserver updates
- Wrap chat area in container with top and bottom fade gradients
- Improve scroll visual feedback with gradient overlays
- Update dependencies: openai 6.15.0, svelte-check 4.3.5, @testing-library/svelte 5.2.10
2025-12-20 11:20:43 +00:00
Andrew Beal
1af7895b83 Bump dependency versions. 2025-12-17 11:43:32 +00:00
Andrew Beal
b2856aa294 feat: add image and PDF support to ReadVaultFiles function
Add support for reading images (PNG, JPG, JPEG, WebP) and PDFs in ReadVaultFiles. Implement provider-specific formatting for binary content (Claude, OpenAI, Gemini). Update conversation structure to handle binary files separately from text responses. Add unpdf library for PDF text extraction in search.
2025-12-16 20:50:28 +00:00
Andrew Beal
5e7247d082 Bump plugin version to 1.0.9
Bump dependency versions.
2025-12-13 10:48:43 +00:00
Andrew Beal
a86d784888 refactor: remove unused backspace handling and element detection logic
Remove custom backspace key handler in ChatInput and unused getElementBeforeCursor method in InputService. Clean up unused imports and associated test cases.
2025-12-11 12:41:14 +00:00
Andrew Beal
58a0edcee8 chore: bump dependencies to latest versions 2025-12-06 16:43:53 +00:00
Andrew Beal
28772e7d0e feat: implement centralized abort controller with enhanced cancellation UX
Introduce a new AbortService to centralize cancellation logic across all async operations, replacing scattered AbortSignal parameters with a unified singleton service. This improves maintainability and provides consistent cancellation behavior throughout the application.

Key changes:
- Add AbortService for centralized abort signal management with automatic cleanup
- Refactor all AI providers (Claude, Gemini, OpenAI) to use AbortService instead of passing AbortSignal parameters
- Update streaming operations to use centralized abort handling
- Add CancellationIndicator component to show visual feedback during operation cancellation
- Rename ChatAreaThought to ThoughtIndicator for better semantic clarity
- Add Environment enum for consistent environment detection
- Enhance ChatService lifecycle with proper cancellation state management
- Remove scattered abort-related UI selectors and error messages in favor of dedicated indicator
- Add safeContinue() factory method to ConversationContent for internal continuations
- Update all tests to reflect new abort handling architecture

This change simplifies the API surface by removing AbortSignal parameters from method signatures while improving the user experience with clearer cancellation feedback.
2025-12-04 23:04:20 +00:00
Andrew Beal
2d5a1b52bf feat: add interactive diff viewer with user approval workflow
Implement a comprehensive diff viewing system that allows users to review and approve/reject file changes before they're applied. The system includes event-driven architecture for managing diff lifecycle and integrates diff2html for rich visual diffs.

Key changes:
- Add DiffService for managing diff approval workflow with accept/reject/suggest actions
- Create EventService for type-safe event handling (DiffOpened/DiffClosed)
- Add DiffView component with diff2html integration for visual diff rendering
- Modify VaultService to propose changes and require confirmation before file operations
- Update FileSystemService to support optional confirmation for write operations
- Add Event enum for centralized event type definitions
- Import custom styles and diff2html styles for proper diff rendering
- Update ConversationContent validation to support optional toolId field
- Remove FileManager from dependency injection (now accessed directly from app)
- Update .gitignore to track styles.css instead of main.css
2025-11-24 21:29:54 +00:00
Andrew Beal
2d0022008c chore: update dependencies to latest versions 2025-11-22 10:36:57 +00:00
Andrew Beal
7853384d6f Bump plugin version to 1.0.6 and update vitest to 4.0.9 2025-11-14 10:28:05 +00:00
Andrew Beal
a6adec6018 feat: add web search tool to Claude AI and update dependencies
- Enable web_search_20250305 tool for Claude with max 5 uses
- Remove unused VaultkeeperAIPlugin dependency from Gemini
- Update @google/genai to 1.29.1 and openai to 6.9.0
2025-11-13 22:17:25 +00:00
Andrew Beal
fc221912d4 Bump version to 1.0.5 and update dependencies 2025-11-12 22:06:52 +00:00
Andrew Beal
fbe5766d03 refactor: consolidate string utilities into StringTools class
Move isValidJson, dateToString, and escapeRegex from Helpers to new StringTools class. Add asRegex method for parsing regex literals with /pattern/flags format. Update all imports and usages across codebase.
2025-11-12 21:12:36 +00:00
Andrew Beal
0556ae984a Bump plugin version to 1.0.4 and update dependencies. 2025-11-11 23:50:20 +00:00
Andrew Beal
3a97b5b076 refactor: improve eslint disable comments with justifications
Add eslint-plugin-eslint-comments to require descriptions on all
disable directives. Replace generic eslint-disable comments with
specific explanations of why rules are disabled. Change `any` type
to `unknown` in DependencyService and add justification for remaining
`any` usage in StreamingMarkdownService.
2025-11-10 21:47:18 +00:00
Andrew Beal
37db1a8908 refactor: improve type safety and add Zod validation for function arguments
- Change function arguments type from `Record<string, object>` to `Record<string, unknown>`
- Add Zod schemas for all AI function arguments validation
- Improve TypeScript types across modals and services
- Add ESLint disable comments for intentional exceptions
- Fix async/await handling in modal and view lifecycle methods
- Update dependencies (@typescript-eslint 8.46.4, rollup 4.53.2, zod 4.1.12)
2025-11-10 19:41:17 +00:00
Andrew Beal
96a90452f8 refactor: replace custom type definitions with official SDK types
Remove custom interface definitions for Claude, OpenAI, and Gemini APIs in favor of importing types directly from official SDKs (@anthropic-ai/sdk, openai, @google/genai). Add openai package dependency and update StoredFunctionResponse interface to include name field.
2025-11-10 12:39:05 +00:00
Andrew Beal
d8c7672211 Add eslint to project to help address Obsidian eslint issues. 2025-11-10 10:25:49 +00:00
Andrew Beal
a217e84643 Rename plugin to Vaultkeeper AI 2025-11-10 08:03:27 +00:00
Andrew Beal
6214f4622d Cleanup dependencies. 2025-11-09 23:20:53 +00:00
Andrew Beal
ff111c69e6 Rename from AI Agent to Vault AI 2025-11-09 23:09:08 +00:00
Andrew Beal
f0564434fe chore: update package versions to latest 2025-11-09 21:01:45 +00:00
Andrew Beal
c36e30999c chore: update dependencies to latest versions 2025-11-08 14:16:33 +00:00
Andrew Beal
a0afcdd0d0 Replace Node.js path module with path-browserify for browser compatibility 2025-11-04 19:12:30 +00:00
Andrew Beal
7858ff7bfb Bump package versions 2025-11-03 22:11:45 +00:00
Andrew Beal
72ddbba72e feat: add ListVaultFiles function and improve search behavior
- Add new ListVaultFiles AI function for listing vault contents
- Remove auto-fallback to listing all files when search returns 0 results
- Improve SearchVaultFiles description to clarify it searches content
- Add listFoldersInDirectory and listDirectoryContents methods to VaultService
- Update SanitiserService to normalize empty strings to "/" (vault root)
- Add allowAccessToPluginRoot parameter to searchVaultFiles
- Update tests to reflect new search behavior and list operations
- Add DeregisterAllServices call in plugin onunload
- Update dependencies (@google/genai, svelte, vitest, eslint)
2025-11-01 11:43:32 +00:00
Andrew Beal
211b8905ca fix: prevent caching of excluded folders in VaultCacheService
Check VaultService exclusions before caching folders on create/rename events to prevent excluded directories (AI Agent root, user exclusions) from being added to the cache.
2025-10-29 22:06:22 +00:00
Andrew Beal
44cfa54e95 feat: add fuzzy search for tags, files, and folders in vault cache
Implement fuzzysort-based matching methods (matchTag, matchFile, matchFolder)
with automatic preparation of search targets. Add folder tracking alongside
existing file/tag caching. Update event handlers to maintain fuzzy search
indices on create/rename/delete operations.
2025-10-25 16:17:45 +01:00
Andrew Beal
a35269550d Bump package versions.
Setup Vitest.
Create unit and integration tests.
Co-authored by Claude.
2025-10-24 23:36:55 +01:00
Andrew Beal
ce2be8c16e Bump dependency versions. 2025-10-24 18:40:44 +01:00
Andrew Beal
8347ddbdf2 chore: upgrade TypeScript from 5.0.4 to 5.9.3 2025-10-22 10:11:28 +01:00
Andrew Beal
098c598c88 feat: add updated timestamp tracking to conversations
Track when conversations are last modified by adding an `updated` field to the Conversation model. Sort conversation history by last updated time instead of creation time for better user experience.
2025-10-22 10:06:32 +01:00
Andrew Beal
bf948a79b2 Add Claude and OpenAI provider support with token services
- Add Claude and OpenAI to AIProviderModel enum
- Implement ClaudeTokenService and OpenAITokenService
- Update service registration to handle new providers
- Install @anthropic-ai/sdk and gpt-tokenizer dependencies
- Add error handling for invalid provider selection
2025-10-19 00:35:26 +01:00
Andrew Beal
77037472cb Bump svelte version 2025-10-18 13:07:28 +01:00
Andrew Beal
db054744ba Add token counting service and refactor dependencies
- Implement ITokenService interface and GeminiTokenService for token counting
- Add StatusBarService for managing status bar messages
- Extract AIProviderModel enum to centralize model configuration
- Remove unused MessageService and AIThoughtMessage classes
- Update dependency registration to include new services
- Clean up main plugin initialization and status bar handling
2025-10-17 22:23:30 +01:00
Andrew Beal
6c55ae744f chore: update dependencies (@google/genai, core-js, katex, svelte) 2025-10-14 23:47:12 +01:00