@bilig/core now implements the documented range-mutation, undo/redo, selection, and sync-state surface.SelectionState is additive: existing callers can keep using sheetName and address, while newer callers can use anchorAddress, range, and editMode.connectSyncClient is live. apps/web is already worker-first by default, but the remote sync service is not a closed durable worksheet backend yet.@bilig/binary-protocol is already a real wire protocol for sync frames, but the authoritative replicated workbook op family is still narrower than the full local engine surface.@bilig/agent-api is currently a binary envelope around JSON payloads, not yet a fully typed binary request/response/event schema.@bilig/headless is the current external npm adoption path. The other package
surfaces listed here are stable repository package boundaries; not every package
name is provisioned on npm yet. In particular, @bilig/excel-import is still a
repository package until its npm package name is configured.
@bilig/core@bilig/headless@bilig/excel-import@bilig/formula@bilig/wasm-kernel@bilig/workbook-domain@bilig/renderer@bilig/grid@bilig/binary-protocol@bilig/worker-transport@bilig/agent-api@bilig/storage-browser@bilig/storage-server@bilig/excel-fixtures@bilig/renderer keeps the declarative workbook DSL unchanged:
<Workbook><Sheet name="..."><Cell addr="..." value={...} /><Cell addr="..." formula="..." /><Cell addr="..." format="..." />The canonical engine surface includes:
createSheetdeleteSheetsetCellValuesetCellFormulasetCellFormatclearCellsetRangeValuessetRangeFormulasclearRangefillRangecopyRangepasteRangesetSelectionundoredogetCellgetDependenciesgetDependentsexplainCellexportSnapshotimportSnapshotexportReplicaSnapshotimportReplicaSnapshotapplyRemoteBatchsubscribesubscribeBatchesconnectSyncClientdisconnectSyncClientgetSyncState@bilig/headless exposes WorkPaper, a HyperFormula-style headless workbook API on top
of @bilig/core:
WorkPaper.buildEmptyWorkPaper.buildFromArrayWorkPaper.buildFromSheetsWorkPaper.buildFromSnapshotbatch, suspendEvaluation, resumeEvaluation, undo, and redoon, once, and offonDetailed, onceDetailed, and offDetailedgraph, rangeMapping, arrayMapping,
sheetMapping, addressMapping, dependencyGraph, evaluator,
columnSearch, and lazilyTransformingAstServiceWorkPaper is the canonical top-level contract.
@bilig/excel-import exposes the repository CSV/XLSX boundary for WorkPaper
consumers. It is not yet published as an npm package:
importXlsx(bytes, fileName)importCsv(text, fileName)importWorkbookFile({ bytes, fileName, contentType })exportXlsx(snapshot)CSV_CONTENT_TYPEXLSX_CONTENT_TYPEUse importXlsx(...).snapshot with WorkPaper.buildFromSnapshot() when a
consumer needs Excel workbook metadata such as defined names, tables, and
translated structured references. WorkPaper.buildFromSheets() remains a
metadata-free array/sheet constructor.
CellRangeRefSelectionRangeSelectionEditModeSyncState@bilig/binary-protocol exposes:
PROTOCOL_VERSIONencodeFrame(frame): Uint8ArraydecodeFrame(bytes): ProtocolFrameThe current frame families are:
helloappendBatchacksnapshotChunkcursorWatermarkheartbeaterrorThe protocol surface is already real for sync and snapshot traffic. The remaining architecture gap is not “do we have binary frames?” but “does the authoritative workbook mutation language fully match what the local engine can represent?”
@bilig/worker-transport exposes:
createWorkerEngineHost(engine, port)createWorkerEngineClient({ port })The first tranche already supports:
@bilig/agent-api exposes:
AgentRequestAgentResponseAgentEventencodeAgentFramedecodeAgentFrameencodeStdioMessagedecodeStdioMessagesToday the package defines typed TypeScript request/response/event unions, but the transport payload is still serialized with JSON.stringify(...) inside the binary frame envelope. The target state is a true typed binary schema shared by stdio and remote network usage.