Commit graph

365 commits

Author SHA1 Message Date
Andrew Beal
dc8bc1583a chore: update dependencies to latest versions
Update multiple packages including AI SDKs, build tools, and dev dependencies to their latest minor/patch versions
2026-03-21 23:24:09 +00:00
Andrew Beal
9a6bfdffa0 refactor: centralize file attachment message using Copy enum
Replace hardcoded "The contents of the file" strings across all AI provider classes (Claude, Gemini, Mistral, OpenAI) with centralized Copy.AttachedFile enum value. Update SystemPrompt to document attached file behavior and clarify files are not in vault. Fix officeparser import to use named export and add esbuild plugin to handle browser bundle's IIFE format for mobile compatibility.
2026-03-21 17:20:31 +00:00
Andrew Beal
fed0287ba0 fix: use officeparser browser bundle for Obsidian mobile compatibility
Alias officeparser to its browser bundle to avoid Node.js "fs" module dependency that crashes on Obsidian mobile. The browser bundle provides identical functionality using web APIs.
2026-03-15 20:47:43 +00:00
Andrew Beal
6ea5981644 Bump plugin version to 1.2.6 2026-03-15 20:11:04 +00:00
Andrew Beal
7c1af608f2 docs: update file format support to include Office/ODF documents
Update documentation across README and Copy.ts to reflect expanded file
format support beyond PDFs to include Office (DOCX, PPTX, XLSX) and ODF
(ODT, ODP, ODS) documents. Update acknowledgments to credit officeparser
and unpdf libraries instead of pdf-parse.
2026-03-15 20:10:44 +00:00
Andrew Beal
54fd754b24 Bump dependency versions. 2026-03-15 20:03:08 +00:00
Andrew Beal
a4c65f16c2 Update file attachment messaging and add document file support
Add support for DOCX, PPTX, XLSX, ODT, ODP, and ODS document formats by converting them to plain text. Standardize attachment introduction messages across all AI providers from "Binary data for X follows" to "The contents of the file 'X' are provided below."
2026-03-15 19:48:28 +00:00
Andrew Beal
562ab8d036 fix: add scrolling to user messages and validate file uploads
- Limit user message height to 15vh with hidden scrollbar
- Show notice for unsupported file types instead of silently failing
- Extract file type check to prevent invalid MIME type lookups
2026-03-15 12:21:41 +00:00
Andrew Beal
47ce3e5c88 Add Obsidian Bases documentation to AI prompts
Extend ExecutionPrompt, OrchestrationPrompt, and PlanningPrompt with comprehensive Bases plugin reference covering file structure, property namespaces, filter/formula syntax, view configuration, and context resolution rules.
2026-03-08 11:35:21 +00:00
Andrew Beal
b0fe1663bb Bump plugin version to 1.2.5 2026-03-08 11:30:10 +00:00
Andrew Beal
0a49abed20 docs: add Obsidian Bases plugin documentation to system prompt
Add comprehensive documentation for the Obsidian Bases core plugin including file structure, property namespaces, filter syntax, formula syntax, view configuration, and usage guidelines.
2026-03-08 11:29:07 +00:00
Andrew Beal
581c7f1686 refactor: standardize background colors to use primary variant
Update Spinner and ThoughtIndicator components to use --background-primary instead of --background-secondary and --background-primary-alt for visual consistency across the UI.
2026-03-05 23:14:43 +00:00
Andrew Beal
199133d59e fix: add missing parameter to vaultService.create call 2026-03-02 22:04:53 +00:00
Andrew Beal
167f67c3a6 refactor: rename userInstructionActive to userInstructionAreaActive
Separate UI state (userInstructionAreaActive) from content state
(userInstructionActive). Add dynamic check for non-empty user instruction
to update button highlight indicator based on actual content.
2026-03-01 12:37:18 +00:00
Andrew Beal
26ea06cbbe docs: add Mistral AI support documentation throughout README 2026-02-28 14:49:46 +00:00
Andrew Beal
3ea42e9437 refactor: simplify Mistral model enum naming conventions
Remove version numbers from Mistral model enum names (MistralLarge_3 → MistralLarge, MistralMedium_3_1 → MistralMedium, MistralSmall_3_2 → MistralSmall) and update display text to indicate "latest" versions. This aligns naming with the underlying "latest" API endpoints and improves maintainability.
2026-02-28 14:43:12 +00:00
Andrew Beal
6864dc04d3 Bump plugin version to 1.2.4 2026-02-28 14:36:53 +00:00
Andrew Beal
8f90177e97 test: use AITool enum for tool name in Mistral test 2026-02-28 14:35:22 +00:00
Andrew Beal
f8eef3798e refactor: ensure invalid provider models always result in a valid model combination. 2026-02-28 14:33:37 +00:00
Andrew Beal
8e9718ba01 Add comprehensive Mistral AI provider integration with cross-provider tests
Implement complete Mistral AI support including message formatting, tool calls with ID validation (9-char alphanumeric), streaming, file attachments, and conversation naming service. Add extensive cross-provider integration tests covering Mistral interactions with Claude, OpenAI, and Gemini, including round-trip conversions, ID validation, and mixed conversation handling. Update all test fixtures to include Mistral API keys.
2026-02-28 14:29:26 +00:00
Andrew Beal
f5c85fecf4 docs: add wiki-link format rules and examples to system prompt
Expand wiki-link documentation with format rules for subdirectories, headings, and aliases. Include a comparison table showing common mistakes and correct usage to prevent folder path errors and improve link readability.
2026-02-28 14:26:16 +00:00
Andrew Beal
04926f84b9 feat: add Mistral AI provider support with file handling and conversation naming 2026-02-28 14:12:30 +00:00
Andrew Beal
3969825be6 chore: bump dependencies across multiple packages 2026-02-28 14:10:34 +00:00
Andrew Beal
de224445be Bump plugin version to 1.2.3 2026-02-20 16:22:10 +00:00
Andrew Beal
0fd231b3b6 test: update mock model to GPT_5_Nano in naming service test 2026-02-20 16:21:40 +00:00
Andrew Beal
256ea568a8 Add invalid model recovery on settings load (can happen if a model has been retired but was in use).
Reinforce faithful plan request in ExecuteWorkflow tool.
2026-02-20 01:27:16 +00:00
Andrew Beal
d3b461efc7 Add new models for Gemini and Claude. Remove older models for OpenAI and Sonnet 3.7. 2026-02-20 00:56:18 +00:00
Andrew Beal
984ed9eb82 feat: add multi-patch support with whitespace-flexible matching
Enable PatchVaultFile to apply multiple patches in a single operation by converting oldContent and newContent from strings to arrays. Add whitespace-flexible regex matching as fallback when exact string matching fails, improving robustness for code with varying indentation. Update schemas, tool definitions, and all tests to reflect the new array-based API.
2026-02-20 00:32:44 +00:00
Andrew Beal
f5ae83edaf refactor: improve multi-agent planning workflow with per-file batch tasks
- Add execution agent context retention across plan steps
- Require atomic per-file enumeration for batch operations
- Pass user intent faithfully without pre-filtering
- Persist execution agent instance across orchestration steps
- Remove user instruction from planning/orchestration agents
- Add anti-pattern documentation for vague goal steps
- Clarify when to use read steps vs inline context
2026-02-19 23:48:13 +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
d18f5ef655 refactor: replace Replan with granular orchestration tools
Replace the single Replan tool with three targeted alternatives:
ReviseStep, RevisePlan, and SkipStep. This gives the orchestration
agent more precise control over plan recovery — revising only the
current step, replacing all remaining steps, or skipping a step
entirely — rather than triggering a full replan each time.

Also give the orchestration agent read access to vault files so it
can resolve execution failures without routing back to the planning
agent, and update the execution agent prompt to stop it from
attempting self-recovery (gap resolution is now the orchestrator's
responsibility).
2026-02-19 20:48:59 +00:00
Andrew Beal
9901dfb06b fix: add top margin to conversation history list on mobile devices 2026-02-16 22:16:58 +00:00
Andrew Beal
50f14aa594 Bump plugin version to 1.2.2 2026-02-16 22:04:43 +00:00
Andrew Beal
5e3858416e test: refactor callback mocks to reduce duplication in tests
Move repeated callback mock definitions to shared test setup level,
adding missing onToolCallStarted callback to agent test suites.
2026-02-16 22:01:59 +00:00
Andrew Beal
13e9030b4b fix: correct scroll positioning and spinner layout in chat plan area
- Calculate step position relative to scroll container for accurate centering
- Add flex-shrink: 0 to spinner to prevent unwanted shrinking
- Pass alternateBackground prop to active step spinner
2026-02-16 21:56:31 +00:00
Andrew Beal
9b40f397c4 refactor: improve planning/execution context flow and reduce redundant discovery
Enhance AI agent prompts to pass exploration findings as step context rather than creating redundant discovery steps. Add recovery guidelines for execution agent to handle minor gaps without replanning. Clarify replan context requirements for orchestration layer.
2026-02-16 21:29:09 +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
2bc12691d3 feat: add early tool call feedback for improved UI responsiveness
Emit tool call start events immediately when tools begin execution,
allowing UI to display contextual "thinking" messages (e.g., "Generating
note contents..." for WriteVaultFile) before tool completion. Add
Spinner to ThoughtIndicator component for visual feedback during tool
operations.
2026-02-16 17:40:14 +00:00
Andrew Beal
89fa8b809c Rename remaining references to functioncall to toolcall 2026-02-15 23:27:14 +00:00
Andrew Beal
df424eee68 Rename functions folder to tools. 2026-02-15 23:07:39 +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
d26140491c test: add getMimeType mock to Attachment test fixtures
Add getMimeType method mock to all Attachment test objects across AI service tests (Claude, Gemini, OpenAI) and mock StringTools.resizeB64Image in BaseAIFileService tests to prevent browser environment issues.
2026-02-15 22:55:39 +00:00
Andrew Beal
a4800bd6da refactor: convert attachments to file-based storage with lazy loading.
Migrate attachment storage from base64-in-JSON to separate binary files with SHA-256 naming, add automatic garbage collection, implement lazy loading via getBase64() and getMimeType() methods, normalize text MIME types, add image resizing, and update all AI provider integrations. Fix small issue that caused the chat area to scroll down on message streaming end even when scrolled up.
2026-02-15 22:46:25 +00:00
Andrew Beal
e2f2ebac24 Bump plugin version to 1.2.1 2026-02-05 22:09:32 +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
19948bcc2e docs: update Planning Mode to describe three-agent workflow
Replace two-agent description with three-agent architecture
(planning, orchestration, execution). Document the orchestration
agent's role in monitoring progress, replanning, and passing
context between steps.
2026-02-03 17:29:22 +00:00
Andrew Beal
95e08a4fad Bump plugin version to 1.2.0 2026-02-01 14:01:17 +00:00
Andrew Beal
3a42430fe7 Bump dependency versions 2026-02-01 14:00:51 +00:00
Andrew Beal
bf9aa7abf6 fix: exit orchestration when replan is triggered
Previously the orchestration would continue after requesting a replan, now it correctly exits to allow the replan to occur.
2026-02-01 13:59:13 +00:00