Operand

engine, you in?

gram: docs

> ./packages/agents/CHANGELOG.md

# @eigenpal/docx-editor-agents
## 1.6.0
### Minor Changes
- a6a2dd0: Add an `insert_break` agent/MCP tool (and `bridge.insertBreak` / editor `insertBreak` ref method) so agents can insert a page break or a section break (next page / continuous) after a paragraph.
## 1.5.0
### Minor Changes
- c4fd221: `DocxReviewer` can now accept/reject tracked changes inside footnote and endnote bodies. Pass a `ReviewChange` from `getChanges` (it carries `noteId`/`noteType`) to `acceptChange`/`rejectChange` to resolve a change wherever it lives, or use `acceptAll`/`rejectAll` with `{ includeFootnotes, includeEndnotes }` to resolve note changes in bulk. The result persists through `toBuffer()`. Previously these methods operated on the document body only; the numeric `acceptChange(id)` form is unchanged.
## 1.4.0
## 1.3.3
## 1.3.2
## 1.3.1
## 1.3.0
### Minor Changes
- 1be9cf5: Edit and track-change footnote and endnote bodies.
Note bodies are now serialized on save, so edits and tracked changes (`w:ins` /
`w:del`) inside footnotes and endnotes persist instead of being dropped — the
run model preserves the separator markers and the in-body auto-number marks, and
`repackDocx` writes `word/footnotes.xml` / `word/endnotes.xml` from the model.
`DocxReviewer.getChanges()` gains `includeFootnotes` / `includeEndnotes` options;
when set, tracked changes inside note bodies are reported with `noteId` /
`noteType`.
## 1.2.1
### Patch Changes
- a0adf60: Headless agent bridge: paragraphs with no `w14:paraId` are now addressable. `read_document` already labels such paragraphs by their ordinal index, but the bridge only registered paragraphs that carried a paraId — so every paraId-anchored op (comments, tracked changes, and formatting/style) rejected the id the agent was given, and `find_text` skipped those paragraphs entirely. Documents without paraIds (common in Word output) were effectively read-only through the bridge. The bridge now keys those paragraphs by the same ordinal index it reports, and `find_text` surfaces them with that ordinal id — so a phrase it returns is anchorable by the mutate tools.
## 1.2.0
## 1.1.0
### Minor Changes
- 7a91813: Add headless reviewer formatting and paragraph style edits
- 42ea72d: Track structural edits as OOXML revisions in suggesting mode. Paragraph-break insert/delete, paragraph-property changes, and table row/cell insert/delete/merge are now recorded, round-tripped through DOCX, and shown in the tracked-changes sidebar (React and Vue, localized). Adds `acceptChangeById(id)` / `rejectChangeById(id)`, and `acceptAllChanges` / `rejectAllChanges` now resolve every revision type rather than inline marks only. Fixes #614.
## 1.0.3
## 1.0.2
## 1.0.1
## 1.0.0
### Major Changes
- 6272b32: # 1.0.0
First multi-package, multi-framework release. The monolithic `@eigenpal/docx-js-editor` is split into a framework-agnostic core and per-framework adapters, Vue 3 ships as a first-class adapter alongside React, and the license moves to Apache 2.0 across all packages.
## Package restructure (breaking)
| Old import | New import |
| ------------------------------------------ | ----------------------------------------- |
| `@eigenpal/docx-js-editor` | `@eigenpal/docx-editor-react` |
| `@eigenpal/docx-js-editor/react` | `@eigenpal/docx-editor-react` |
| `@eigenpal/docx-editor-react/core` | `@eigenpal/docx-editor-core` |
| `@eigenpal/docx-editor-react/headless` | `@eigenpal/docx-editor-core/headless` |
| `@eigenpal/docx-editor-react/core-plugins` | `@eigenpal/docx-editor-core/core-plugins` |
| `@eigenpal/docx-editor-react/mcp` | `@eigenpal/docx-editor-agents/mcp` |
| `@eigenpal/docx-editor-react/i18n/*.json` | `@eigenpal/docx-editor-i18n/*.json` |
The old `@eigenpal/docx-js-editor` package stays on 0.x for legacy maintenance — no 1.x compatibility shim ships. Framework-agnostic utilities (e.g. `createEmptyDocument`) move to core:
```diff
- import { DocxEditor, createEmptyDocument } from '@eigenpal/docx-js-editor';
+ import { DocxEditor } from '@eigenpal/docx-editor-react';
+ import { createEmptyDocument } from '@eigenpal/docx-editor-core';

Vue 3 adapter (@eigenpal/docx-editor-vue)

The Vue package becomes a real adapter (previously a stub). Public API mirrors React:

Parity gates cover insert-table, find/replace, page-setup, context menus, image overlay (resize/move/rotate/aspect-locked corners, dimension tooltip), advanced cell/row options (margins, height rule, text direction, no-wrap), menu-bar icons + shortcuts + carets, toolbar pickers, and the agent UI surface.

Shared i18n package (@eigenpal/docx-editor-i18n)

Locale strings move out of @eigenpal/docx-editor-react into a dedicated package consumed by both adapters from a single source.

- import de from '@eigenpal/docx-editor-react/i18n/de.json';
+ import de from '@eigenpal/docx-editor-i18n/de.json';

The defaultLocale value (English) is still re-exported from the adapter packages, unchanged.

Agent UI relocation (breaking)

AgentPanel, AgentChatLog, AgentComposer, AgentSuggestionChip, AgentTimeline no longer ship from @eigenpal/docx-editor-react. They live at:

- import { AgentPanel, AgentChatLog } from '@eigenpal/docx-editor-react';
+ import { AgentPanel, AgentChatLog } from '@eigenpal/docx-editor-agents/react';

The agent components no longer call useTranslation directly — pass localized *Label props instead. <DocxEditor>'s built-in agent panel slot still forwards localized strings automatically.

Accessibility polish on the agent surface: keyboard-operable resize handle, Escape-dismissable context menu, live-region chat log, WCAG AA contrast on response previews.

Toolbar naming unified (breaking)

The standalone formatting bar is Toolbar on both adapters. The old "classic" single-row Toolbar (with File/Format/Insert menus baked in) is removed — compose EditorToolbar.MenuBar + EditorToolbar.Toolbar for that layout.

Old (React) New (React + Vue)
FormattingBar Toolbar
Classic Toolbar (with menus) EditorToolbar
EditorToolbar.FormattingBar EditorToolbar.Toolbar

Vue: BasicToolbar / FormattingBar aliases removed; EditorToolbar's formatting-bar slot is now toolbar. Vue's table border-color and cell-fill pickers now use the advanced color picker matching React. Vue MenuDropdown's showChevron default flips from true to false — pass :show-chevron="true" explicitly to keep the caret.

showPrintButton prop removed (breaking)

Removed from <DocxEditor> and <Toolbar> on both adapters; the Vue <Toolbar> print event is gone with it. onPrint callback stays.

- <DocxEditor showPrintButton onPrint={handlePrint} />
+ <DocxEditor onPrint={handlePrint} />

To hide File > Print, omit onPrint. Programmatic print still works via ref.current.print() / editorRef.value.print().

License moves to Apache 2.0

All published packages relicense to Apache 2.0. Notably: @eigenpal/docx-editor-agents was AGPL-3.0-or-later — the relicense lifts copyleft obligations on agent embedders.

Patch Changes

0.5.1

0.5.0

0.4.3

0.4.2

0.4.1

0.4.0

0.3.1

0.3.0

0.2.0

Minor Changes

0.1.1

0.1.0

Minor Changes

Patch Changes

0.0.35

Patch Changes

0.0.34

Patch Changes

0.0.33

Patch Changes

0.0.32

Patch Changes

0.0.31

Patch Changes

0.0.30

Patch Changes

0.0.29

Patch Changes

0.0.28

Patch Changes