@tiwater/office-mcp 0.21.3 → 0.21.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
  "schema": "tiwater.office-provider-contract-manifest/v1",
3
3
  "provider": {
4
4
  "id": "@tiwater/office-mcp",
5
- "version": "0.21.3"
5
+ "version": "0.21.4"
6
6
  },
7
7
  "tools": [
8
8
  {
package/office/index.mjs CHANGED
@@ -316,7 +316,7 @@ const docxTableReadOutput = docxObservationOutput('docx_read_table').extend({
316
316
  totalRowCount: z.number().int().nonnegative(),
317
317
  returnedRowCount: z.number().int().nonnegative(),
318
318
  remaining: z.number().int().nonnegative(),
319
- nextOffset: z.number().int().nonnegative().nullable(),
319
+ nextOffset: z.number().int().nonnegative().optional(),
320
320
  detailPageRetained: z.boolean(),
321
321
  narrowingRequired: z.boolean(),
322
322
  }).strict(),
@@ -401,7 +401,7 @@ const tools = [
401
401
  },
402
402
  {
403
403
  name: 'docx_read_table',
404
- description: 'Read an explicit row range from exactly one table selected by native OpenXML address; it never builds another whole-table data object. Set returnContent true to return a byte-bounded compact row page. Provide output to store full paragraph and text-node detail for the selected row page and return its artifact receipt. These channels are independent and may be used together; at least one is required. Request only rows needed for the current decision; receipt.remaining is navigation information, not an obligation to read unused rows, and blank template rows need not be paged through. Each returned row and cell keeps its reusable native address, zero-based logical gridColumnStart, gridSpan, vertical-merge owner, physical text, and logical text. Match columns across rows by gridColumnStart; a tc[n] path or array position is only that row\'s physical cell ordinal and is not a column identity when gridSpan or gridBefore is present. In a vertical merge, restart begins one logical cell and a continue cell is not an independent row value: logicalText resolves the restart cell value while text remains the physical cell value. Use docx_read_object when one exact object needs a narrower descendant view. The provider reports physical structure only; the Agent decides template and business meaning.',
404
+ description: 'Read an explicit row range from exactly one table selected by native OpenXML address; it never builds another whole-table data object. Set returnContent true to return a byte-bounded compact row page. Provide output to store full paragraph and text-node detail for the selected row page and return its artifact receipt. These channels are independent and may be used together; at least one is required. Request only rows needed for the current decision; receipt.remaining is navigation information, not an obligation to read unused rows, and blank template rows need not be paged through. receipt.nextOffset is present only when another row page exists. Each returned row and cell keeps its reusable native address, zero-based logical gridColumnStart, gridSpan, vertical-merge owner, physical text, and logical text. Match columns across rows by gridColumnStart; a tc[n] path or array position is only that row\'s physical cell ordinal and is not a column identity when gridSpan or gridBefore is present. In a vertical merge, restart begins one logical cell and a continue cell is not an independent row value: logicalText resolves the restart cell value while text remains the physical cell value. Use docx_read_object when one exact object needs a narrower descendant view. The provider reports physical structure only; the Agent decides template and business meaning.',
405
405
  inputSchema: inputContract('docx_read_table'),
406
406
  outputSchema: docxTableReadOutput,
407
407
  annotations: { readOnlyHint: true, idempotentHint: true },
@@ -857,7 +857,7 @@ async function docxObservation(tool, args) {
857
857
  totalRowCount,
858
858
  returnedRowCount: selectedRows.length,
859
859
  remaining: totalRowCount - offset - selectedRows.length,
860
- nextOffset: selectedNextOffset,
860
+ ...(selectedNextOffset === null ? {} : { nextOffset: selectedNextOffset }),
861
861
  };
862
862
  const detailPage = {
863
863
  schema: 'tiwater.docx-table-detail-page/v1',
@@ -925,7 +925,7 @@ async function docxObservation(tool, args) {
925
925
  totalRowCount,
926
926
  returnedRowCount: rows.length,
927
927
  remaining: totalRowCount - offset - rows.length,
928
- nextOffset,
928
+ ...(nextOffset === null ? {} : { nextOffset }),
929
929
  };
930
930
  return {
931
931
  ...withArtifact,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiwater/office-mcp",
3
- "version": "0.21.3",
3
+ "version": "0.21.4",
4
4
  "description": "Published MCP server for Tiwater Office document capabilities",
5
5
  "type": "module",
6
6
  "license": "MIT",