Commit graph

92 commits

Author SHA1 Message Date
Erik van der Boom
65207bd69f Refactor MCP tools to use "bindery_" prefix
- Updated test cases in index-contract.test.ts and integration-stdio.test.ts to reflect new tool names with "bindery_" prefix.
- Modified README.md and manifest.json to document and register new tool names.
- Adjusted check-tool-parity script to ensure consistency across all surfaces for the new tool naming convention.
- Updated VS Code extension documentation to reflect changes in available MCP tools.
2026-07-18 00:28:27 +02:00
Erik van der Boom
5d6b46f70d Remove chapter status tracking functionality from the project
- Deleted chapter status template function and related code from tools.ts.
- Removed chapter status update and get functions, including their tests.
- Updated README and manifest files to reflect the removal of chapter status features.
- Cleaned up related commands and interfaces in the VS Code extension.
2026-07-18 00:01:21 +02:00
copilot-swe-agent[bot]
fd84376a1f
Fix security vulnerabilities in mcp-ts and vscode-ext lockfiles
- mcp-ts: Update vite 8.0.9→8.1.4 (fixes server.fs.deny bypass CVE)
- mcp-ts: Update hono 4.12.14→4.12.30 (fixes CORS origin reflection CVE)
- vscode-ext: Update vite 8.0.10→8.1.4 (fixes server.fs.deny bypass CVE)
- vscode-ext: Update esbuild 0.28.0→0.28.1 (fixes withdrawn RCE advisory)
- Add overrides in mcp-ts/package.json to enforce hono>=4.12.25, vite>=8.0.16
- Add overrides in vscode-ext/package.json to enforce vite>=8.0.16
- Regenerate both standalone lockfiles with secure package versions
2026-07-16 04:34:22 +00:00
Erik van der Boom
355dea98a8 feat(ai-setup): generate .agents skills for agents target across hosts
- write .agents/skills/<skill>/SKILL.md when agents target is selected

- apply parity updates in MCP, VS Code extension, and Obsidian plugin

- add/extend ai-setup tests for agents skill generation
2026-07-16 00:38:32 +02:00
Erik van der Boom
6367d9563f
Merge pull request #124 from evdboom/chatgptwork-support
Chatgptwork support
2026-07-14 22:53:26 +02:00
Erik van der Boom
c835e5fbe1 feat(ai-setup): stop skill zip generation and return SKILL.md reupload hints 2026-07-14 22:39:06 +02:00
dependabot[bot]
aaac7c7baf
build(deps): bump the npm_and_yarn group across 2 directories with 2 updates
Bumps the npm_and_yarn group with 2 updates in the / directory: [esbuild](https://github.com/evanw/esbuild) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).
Bumps the npm_and_yarn group with 1 update in the /bindery-core directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `esbuild` from 0.28.0 to 0.28.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.28.0...v0.28.1)

Updates `vite` from 8.0.10 to 8.0.16
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.16/packages/vite)

Updates `vite` from 8.0.10 to 8.0.16
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.16/packages/vite)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: vite
  dependency-version: 8.0.16
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: vite
  dependency-version: 8.0.16
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 07:18:46 +00:00
copilot-swe-agent[bot]
c5abd13798
Preserve existing settings in init fallback path 2026-06-10 08:04:51 +00:00
Erik van der Boom
c3f907e108 default to existing 2026-05-29 23:23:49 +02:00
copilot-swe-agent[bot]
345b22aba8
fix: use argv-style git add in workspace init 2026-05-29 19:58:25 +00:00
Erik van der Boom
d0a25c267f feat: enhance workspace initialization with new session and preferences files 2026-05-29 21:48:08 +02:00
Erik van der Boom
b582f11aff feat: add inbox triage tools (inbox_process / inbox_resolve)
Add a confirmation-gated inbox triage workflow over Notes/Inbox.md:

- inbox_process (read-only): enumerates loose inbox items with stable
  numbers and returns a structured triage proposal plus the destination
  tools to route them. Never moves, deletes, or categorizes.
- inbox_resolve (destructive): removes already-routed items by their
  item numbers after the user confirms, preserving other items and the
  heading/intro.

A shared deterministic parser splits Inbox.md on `## ` headings, or on
blank-line blocks when there are no headings, so item numbers stay stable
between process and resolve.

- tools + registration (mcp-ts), VS Code + Obsidian commands, LM tools,
  MCPB manifest, and command/tool parity rows (44 tools, 38 commands)
- guidance update: rough/unsorted/pasted material routes to the Inbox and
  is triaged with inbox_process/inbox_resolve, not dumped into memory
  (memory skill, generated assistant templates, generated README, public
  docs); bumped touched template versions
- inbox scaffold intro references the triage tools
- tests for inbox_process / inbox_resolve incl. empty state, heading vs
  blank-line splitting, out-of-range rejection, and intro preservation

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 15:51:42 +02:00
Erik van der Boom
21d6e5768f feat: add session focus tools with SESSION/PREFERENCES split
Add session_focus_get and session_focus_update over an ephemeral
SESSION.md working-state file, and split durable user preferences into
a separate user-owned PREFERENCES.md. Drops the COWORK.md default, which
collided with Claude Cowork's own convention; the two fixed, role-named
files are harness-independent and let generated skills reference a stable
SESSION.md token.

session_focus_update is section-aware: it touches only the neutral
SESSION.md sections (Current Focus, Next Actions, Open Questions, Handoff
Notes) and preserves everything else. PREFERENCES.md is scaffolded once
and never tool-written.

- tools + registration (mcp-ts), settings defaults + getPreferencesFile
- init_workspace scaffolds both files and persists preferencesFile;
  existing workspaces keep their explicit sessionFile (no migration)
- VS Code + Obsidian commands, LM tools, MCPB manifest, parity rows
- updated skills, generated assistant templates, and public docs;
  bumped touched template versions
- tests for session_focus and the split scaffold

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 15:51:42 +02:00
copilot-swe-agent[bot]
fd0b593058
Fix review comments: CodeQL escapeTableCell, character-setup skill, promptOptional cancel, README boundary 2026-05-28 22:16:16 +00:00
Erik van der Boom
288b491cc4 feat: add authoring tools for notes, characters, and arcs
- Introduced commands for managing notes: list, get, create, and append.
- Added character management commands: list, get, create, and update.
- Implemented arc management commands: list, get, create, and update.
- Enhanced AI setup to include new character and arc functionalities.
- Updated package.json to reflect new commands and tools.
- Improved workspace settings handling for story, notes, and arc folders.
- Added input validation and prompts for user interactions in commands.
2026-05-29 00:03:54 +02:00
Erik van der Boom
ea11451258 feat: update ESLint configuration for mcp-ts and vscode-ext, add tsconfig.eslint.json 2026-05-15 23:06:20 +02:00
Erik van der Boom
a7049e1900 refactor: update descriptions for bindery_git_snapshot command in README and package.json 2026-05-12 23:43:22 +02:00
Erik van der Boom
a5c770f361 fix: improve error handling and type safety in various functions 2026-05-06 14:58:26 +02:00
Erik van der Boom
ac25b0b654
Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-06 12:19:10 +02:00
Erik van der Boom
87906e8e42 feat: update package.json to set module type and add eslint-plugin-obsidianmd as devDependency
fix: refactor lineBoundaryWrap function and improve startReviewMarkerCommand logic in extension.ts

refactor: simplify invoke functions in mcp.ts by removing async where unnecessary
2026-05-06 12:08:58 +02:00
Erik van der Boom
00b34c9551 refactor: update parameter names to improve clarity and consistency across the codebase
Co-authored-by: Copilot <copilot@github.com>
2026-05-06 09:24:57 +02:00
Erik van der Boom
2a691d248a Refactor mcp.ts and extension.ts to improve code clarity and performance
- Added descriptive comments to the require statements for loading mcp-ts tools.
- Changed the return type of writeMcpJson to void, removing unnecessary async/await.
- Updated the call to writeMcpJson in registerMcpCommand to reflect the new return type.
2026-05-05 17:19:29 +02:00
Erik van der Boom
e4e0003cb8 feat: add context menu and ribbon actions for quick access to common features
Co-authored-by: Copilot <copilot@github.com>
2026-05-04 00:14:18 +02:00
Erik van der Boom
e4773fdf28 feat: integrate @bindery/merge for book merging and tool location
- Added bindery-merge as a workspace in package.json.
- Updated vscode-ext to include @bindery/merge as a dependency.
- Refactored merge.ts to re-export merging functionalities from @bindery/merge, removing legacy code.
- Simplified tool-locate.ts by re-exporting tool location logic from @bindery/merge, enhancing code reuse and maintainability.

Co-authored-by: Copilot <copilot@github.com>
2026-05-03 23:50:11 +02:00
Erik van der Boom
d2ceecd255 feat: add review marker commands and enhance editor functionality in Obsidian plugin
Co-authored-by: Copilot <copilot@github.com>
2026-05-03 08:59:38 +02:00
Erik van der Boom
6cd7025e96 ci: add VSIX packaging smoke check and update package command 2026-05-02 00:00:25 +02:00
Erik van der Boom
cc8ec73550 fix: build:core in vscode:prepublish uses cd not workspace flag 2026-04-28 17:01:52 +02:00
Erik van der Boom
094c8d1314 fix: address PR #84 review feedback 2026-04-28 14:11:29 +02:00
copilot-swe-agent[bot]
c0495dc917
feat: extract bindery-core, refactor vscode-ext/mcp-ts to use @bindery/core
Agent-Logs-Url: https://github.com/evdboom/Bindery/sessions/09d0d68f-9f9f-41c5-a6bf-5dc0fc2ac79b

Co-authored-by: evdboom <18037882+evdboom@users.noreply.github.com>
2026-04-27 23:09:03 +00:00
Erik van der Boom
aa226c7ba8 fix: address PR #82 review feedback
- review-markers: case-insensitive scan filter (drop 'Bindery: Review' substring pre-check)

- review-markers: emit 'line N (empty region)' for empty regions instead of inverted 'lines N-(N-1)'

- get_review_text: detect non-zero git exit (e.g. outside a repo) as git-unavailable and emit explicit notice

- get_review_text: still consume markers when autoStage=true even if git is unavailable

- vscode: review marker commands require markdown languageId and snap markers to line boundaries

- aisetup: always force-overwrite the bindery capabilities README

- templates: drop duplicate git_snapshot row in bindery-readme; refresh get_review_text description in CLAUDE.md (versions: claude 10->11, bindery-readme 3->4)

- tests: add cases for case-insensitive scan, empty region, and marker consumption without git
2026-04-27 23:38:55 +02:00
Erik van der Boom
09cb85f3e5 fix(ci): use bash shell for template sync; exclude synced templates from vscode-ext coverage
Two regressions from the previous sync change:

1. The Sync templates step uses 'rm -rf' / 'cp -R', which the windows-latest runner executes under PowerShell where those flags don't exist. Pin the step to 'shell: bash' so it runs in Git Bash on Windows. The release workflow already targets ubuntu-only, so no change needed there.

2. The synced vscode-ext/src/templates/ folder is matched by the coverage 'src/**/*.ts' glob, inflating the function count without contributing any vscode-ext tests (those templates are exercised by mcp-ts/test/templates.test.ts). Exclude src/templates/** in vitest.config.ts the same way ai-setup-templates.ts already is.
2026-04-27 23:27:03 +02:00
Erik van der Boom
6f2a2b858e fix(tooling): prefer soffice.com on Windows to avoid LibreOffice popup
soffice.exe is GUI-subsystem on Windows and pops a console window with 'Press any key to continue' when probed for --version. soffice.com is the console-subsystem wrapper that ships alongside it. Lead with soffice.com in both pathCandidates and the libreoffice default command, and harden the spawnSync probe with stdio=['ignore','pipe','pipe'] + windowsHide=true.
2026-04-27 23:05:31 +02:00
Erik van der Boom
be9ace839c feat(review): marker-based review regions + default keybindings
Adds <!-- Bindery: Review start --> / <!-- Bindery: Review stop --> markers so committed work-in-progress can still be surfaced for review. get_review_text now returns a two-section payload (Git diff + Review markers); autoStage consumes the marker lines so the next pass starts clean.

Adds VS Code commands 'Insert Review Start Marker (or wrap selection)' and 'Insert Review Stop Marker', plus default keybindings (markdown editors only):

  Ctrl+K Ctrl+B : Format Typography
  Ctrl+K Ctrl+, : Insert Review Start Marker
  Ctrl+K Ctrl+. : Insert Review Stop Marker
2026-04-27 23:05:24 +02:00
Erik van der Boom
cbcd066588 feat: add translation-review skill and update related documentation 2026-04-26 22:04:19 +02:00
dependabot[bot]
607fbbbaa2
build(deps-dev): bump vitest from 4.1.4 to 4.1.5 in /mcp-ts (#78)
* build(deps-dev): bump vitest from 4.1.4 to 4.1.5 in /mcp-ts

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps-dev): bump vitest+coverage-v8 to 4.1.5 in mcp-ts and vscode-ext, restore typescript 6.0.3

Agent-Logs-Url: https://github.com/evdboom/Bindery/sessions/12955e9f-8905-4678-8784-e86e730a9d0c

Co-authored-by: evdboom <18037882+evdboom@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Erik van der Boom <evdboom@hotmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: evdboom <18037882+evdboom@users.noreply.github.com>
2026-04-25 11:50:42 +00:00
Erik van der Boom
39c42138da
Merge pull request #75 from evdboom/dependabot/npm_and_yarn/vscode-ext/typescript-6.0.3
build(deps-dev): bump typescript from 6.0.2 to 6.0.3 in /vscode-ext
2026-04-25 13:22:31 +02:00
dependabot[bot]
17f0a7bba5
build(deps-dev): bump typescript from 6.0.2 to 6.0.3 in /vscode-ext
Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/compare/v6.0.2...v6.0.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-22 16:48:10 +00:00
dependabot[bot]
9c57d893d7
build(deps-dev): bump @vitest/coverage-v8 in /vscode-ext
Bumps [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-22 16:48:02 +00:00
Erik van der Boom
55e753b988 feat: add workspace sync functionality and enhance git snapshot capabilities
- Implemented `toolUpdateWorkspace` to fetch and pull the current branch, with reporting on branch status against the remote default branch.
- Enhanced `toolGitSnapshot` to support optional push functionality and remember push defaults in `.bindery/settings.json`.
- Updated README and manifest files to reflect new features and commands.
- Added tests for `toolUpdateWorkspace` and improved existing tests for `toolGitSnapshot`.
- Refactored git-related utility functions for better error handling and clarity.
2026-04-21 13:00:55 +02:00
Erik van der Boom
026cabe936
Update vscode-ext/src/tool-locate.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-19 22:57:57 +02:00
Erik van der Boom
b4166021d7 readmy fix 2026-04-19 22:51:39 +02:00
Erik van der Boom
6bd864b95f fix: address PR review comments
- Remove unused checkPandocOutputSupport() in merge.ts
- Probe both 'libreoffice' and 'soffice' on PATH during auto-detect
- Fix check-tool-parity.mjs header: server registers unprefixed names
- Add tool-parity guard step to CI coverage job
- Fix BuildSemanticProgress.completed doc: 1-based count, not 0-based
- Bump McpServer version from 0.1.0 to 1.0.0 to match package.json
2026-04-19 22:50:43 +02:00
Erik van der Boom
651d0028ac docs: rewrite READMEs with complete tool tables and setup guides
Root README: expand feature list, add CI badge section, update
installation and development instructions.

vscode-ext README: full rewrite — add complete command table (12),
MCP tool table (25), dialect/translation workflow, autodetect docs,
and format-on-save configuration details.
2026-04-19 22:33:37 +02:00
Erik van der Boom
1c38716a67 test: add vitest coverage configs and raise test coverage to 80%+
Add vitest.config.ts to both packages with 80/65/90/80 thresholds for
statements/branches/functions/lines. Add @vitest/coverage-v8 devDep and
test:coverage npm script.

New test files:
- mcp-ts: registry (19 tests), docstore (11 tests)
- vscode-ext: merge-extended (14), merge-mocked (12),
  workspace-extended (10), format-on-save edge cases (+10)

Combined coverage: mcp-ts 89/75/94/91, vscode-ext 94/83/98/94.
2026-04-19 22:33:31 +02:00
Erik van der Boom
60eefee806 feat: cache Pandoc output-format probe and warn on missing formats
getPandocOutputFormats() now caches the result for the process lifetime.
Merge commands check format support up-front and surface a warning
instead of failing mid-export when a format is unavailable.
2026-04-19 22:33:10 +02:00
Erik van der Boom
f25e33a2e7 feat: auto-detect Pandoc and LibreOffice install paths
Add tool-locate.ts with a resolution chain: explicit setting → PATH
lookup → well-known OS install locations. Results are cached per-process
and cleared when settings change.

Wire into extension.ts via getEffectiveConfig() so pandocPath and
libreOfficePath are resolved automatically when left at defaults.

Includes 15 tests covering setting priority, cache behavior, and
fallback logic.
2026-04-19 22:31:27 +02:00
Erik van der Boom
312ab21e52 Refine staging file instructions and update .gitignore to include proof-read payload 2026-04-17 09:09:41 +02:00
Erik van der Boom
28c26392e2 Update package dependencies for VS Code compatibility 2026-04-16 23:46:35 +02:00
Erik van der Boom
3dd03d6616
Merge branch 'main' into review-update 2026-04-16 23:32:19 +02:00
Erik van der Boom
6b4cd470ab skill fix 2026-04-16 22:51:48 +02:00