Extension model
A3S Office is modular without pretending that every editor has the same interaction model. Document and Markdown surfaces accept TipTap extensions; spreadsheet, presentation, and PDF currently expose typed host ports while their internal command contexts remain private.
TipTap extensions
Rules:
- Every extension needs a unique
name; collisions with built-in extensions fail explicitly. - Keep the extension array reference stable.
- Custom Nodes and Marks need matching DOCX or Markdown round-trip semantics.
- Do not import implementation modules from
@a3s-lab/office/internalpaths.
Host extension ports
The library never infers host behavior from localized labels or keyword matching. Selection-menu callbacks receive typed context and safe commands; the host owns prompts, model calls, authorization, and persistence.