@tiwater/office-mcp 0.16.11 → 0.16.13
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.
|
@@ -17,6 +17,24 @@
|
|
|
17
17
|
"type": "string",
|
|
18
18
|
"pattern": "^docx-rev-v1-[0-9a-f]{64}$"
|
|
19
19
|
},
|
|
20
|
+
"kinds": {
|
|
21
|
+
"description": "Object kinds required by the next operation. The response returns only matching descendant identities; the artifact retains the complete object.",
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": [
|
|
26
|
+
"paragraph",
|
|
27
|
+
"table",
|
|
28
|
+
"gridColumn",
|
|
29
|
+
"row",
|
|
30
|
+
"cell",
|
|
31
|
+
"run",
|
|
32
|
+
"text",
|
|
33
|
+
"drawing"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"minItems": 1
|
|
37
|
+
},
|
|
20
38
|
"output": {
|
|
21
39
|
"type": "string",
|
|
22
40
|
"minLength": 1,
|
|
@@ -27,6 +45,7 @@
|
|
|
27
45
|
"required": [
|
|
28
46
|
"input",
|
|
29
47
|
"ref",
|
|
48
|
+
"kinds",
|
|
30
49
|
"output"
|
|
31
50
|
],
|
|
32
51
|
"additionalProperties": false,
|
|
@@ -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.16.
|
|
5
|
+
"version": "0.16.13"
|
|
6
6
|
},
|
|
7
7
|
"tools": [
|
|
8
8
|
{
|
|
@@ -119,11 +119,11 @@
|
|
|
119
119
|
"name": "docx_read_object",
|
|
120
120
|
"providerContract": {
|
|
121
121
|
"source": "packages/docx-cli/contracts/mcp-input/docx_read_object.schema.json",
|
|
122
|
-
"sha256": "
|
|
122
|
+
"sha256": "d75d81f6ec62ed40e6116beacc1860b692e0307dc0da09f05599511816aa38ab"
|
|
123
123
|
},
|
|
124
124
|
"inputContract": {
|
|
125
125
|
"path": "office/contracts/docx_read_object.schema.json",
|
|
126
|
-
"sha256": "
|
|
126
|
+
"sha256": "d75d81f6ec62ed40e6116beacc1860b692e0307dc0da09f05599511816aa38ab"
|
|
127
127
|
}
|
|
128
128
|
},
|
|
129
129
|
{
|
package/office/index.mjs
CHANGED
|
@@ -199,7 +199,7 @@ const tools = [
|
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
201
|
name: 'docx_read_object',
|
|
202
|
-
description: 'Read one selected native DOCX object.
|
|
202
|
+
description: 'Read one selected native DOCX object. Declare only the descendant kinds required by the next operation; the response returns those identities and the evidence artifact retains the complete object.',
|
|
203
203
|
inputSchema: inputContract('docx_read_object'),
|
|
204
204
|
outputSchema: docxReadObjectOutput,
|
|
205
205
|
annotations: { readOnlyHint: true, idempotentHint: true },
|
|
@@ -214,14 +214,14 @@ const tools = [
|
|
|
214
214
|
},
|
|
215
215
|
{
|
|
216
216
|
name: 'docx_copy_table_rows',
|
|
217
|
-
description: '
|
|
217
|
+
description: 'Populate existing target tables by replacing selected data-row ranges with selected source rows. Use this whenever the target table already exists; explicit header-cell mappings preserve target presentation and native source grouping even when source and target grid spans differ.',
|
|
218
218
|
inputSchema: inputContract('docx_copy_table_rows'),
|
|
219
219
|
outputSchema: fixedEditOutput('docx_copy_table_rows'),
|
|
220
220
|
handler: args => fixedEdit('docx_copy_table_rows', args),
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
name: 'docx_copy_object',
|
|
224
|
-
description: '
|
|
224
|
+
description: 'Insert selected objects only when the target needs a new object under an existing parent. Do not use this to populate or replace rows in an existing target table; use docx_copy_table_rows instead.',
|
|
225
225
|
inputSchema: inputContract('docx_copy_object'),
|
|
226
226
|
outputSchema: fixedEditOutput('docx_copy_object'),
|
|
227
227
|
handler: args => fixedEdit('docx_copy_object', args),
|
|
@@ -462,6 +462,7 @@ async function docxObservation(tool, args) {
|
|
|
462
462
|
async function docxReadObject(args) {
|
|
463
463
|
const input = path.resolve(requireString(args.input, 'input'));
|
|
464
464
|
const output = requireString(args.output, 'output');
|
|
465
|
+
const kinds = new Set(args.kinds);
|
|
465
466
|
const { output: _output, ...request } = args;
|
|
466
467
|
return withTempJsonFile(request, async requestPath => {
|
|
467
468
|
const result = await runJsonCandidateChain(docxCandidates, ['docx_read_object', requestPath]);
|
|
@@ -472,7 +473,9 @@ async function docxReadObject(args) {
|
|
|
472
473
|
artifact: await writeJsonArtifact(output, result.json),
|
|
473
474
|
revision: result.json.receipt.revision,
|
|
474
475
|
object: compactDocxObjectIdentity(result.json.observation.object),
|
|
475
|
-
descendants: result.json.observation.descendants
|
|
476
|
+
descendants: result.json.observation.descendants
|
|
477
|
+
.filter(identity => kinds.has(identity.kind))
|
|
478
|
+
.map(compactDocxObjectIdentity),
|
|
476
479
|
};
|
|
477
480
|
});
|
|
478
481
|
}
|