bilig-workpaper 0.159.0 → 0.160.0

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.
package/AGENTS.md CHANGED
@@ -37,6 +37,7 @@ npm exec --yes --package bilig-workpaper@latest -- bilig-evaluate --door agent-m
37
37
  npm exec --yes --package bilig-workpaper@latest -- bilig-evaluate --door agent-mcp --scenario provider-backed --json
38
38
  npm exec --package bilig-workpaper@latest -- bilig-mcp-challenge --json
39
39
  npm exec --package bilig-workpaper@latest -- bilig-workpaper-mcp --workpaper ./pricing.workpaper.json --init-demo-workpaper --writable
40
+ npm exec --package bilig-workpaper@latest -- bilig-workpaper-mcp --from-xlsx ./pricing.xlsx --workpaper ./.bilig/pricing.workpaper.json --writable
40
41
 
41
42
  For Node or TypeScript, import bilig-workpaper directly. Check the edit by
42
43
  reading the relevant range, writing one small input or formula, reading the
@@ -85,6 +86,12 @@ WorkPaper JSON only when the file is missing. Use `--writable` only when the
85
86
  task should persist `set_cell_contents` edits back to the same WorkPaper JSON
86
87
  file.
87
88
 
89
+ When the server is started through `bilig-workpaper@latest` with
90
+ `--from-xlsx ./pricing.xlsx --workpaper ./.bilig/pricing.workpaper.json`,
91
+ `tools/list` also includes `analyze_workbook_risk`. That tool is fixed to
92
+ the source XLSX passed at startup and reports workbook risk indicators before an
93
+ agent trusts the imported WorkPaper. It does not certify Excel compatibility.
94
+
88
95
  Claude Desktop users can skip manual JSON config by installing the released
89
96
  MCPB bundle:
90
97
 
package/SKILL.md CHANGED
@@ -111,6 +111,12 @@ treat its returned `tools` array as the source of truth for the currently publis
111
111
  - `export_workpaper_document`
112
112
  - `validate_formula`
113
113
 
114
+ When the server is started through `bilig-workpaper@latest` with
115
+ `--from-xlsx ./pricing.xlsx --workpaper ./.bilig/pricing.workpaper.json`,
116
+ `tools/list` also includes `analyze_workbook_risk`. That tool is fixed to
117
+ the source XLSX passed at startup and reports workbook risk indicators before an
118
+ agent trusts the imported WorkPaper. It does not certify Excel compatibility.
119
+
114
120
  After a write, always read the dependent output cell and export the WorkPaper
115
121
  document. If the listed tool set includes `set_cell_contents_and_readback`,
116
122
  prefer it for stateless clients because the edit and dependent readback happen
package/dist/mcp.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from '@bilig/headless/mcp';
2
+ export { withXlsxWorkbookRiskTool } from './work-paper-mcp-xlsx-risk-tool.js';
package/dist/mcp.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from '@bilig/headless/mcp';
2
+ export { withXlsxWorkbookRiskTool } from './work-paper-mcp-xlsx-risk-tool.js';
2
3
  //# sourceMappingURL=mcp.js.map
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { buildDemoWorkPaper, createFileBackedWorkPaperMcpToolServer, createFileBackedWorkPaperMcpToolServerFromFile, parseWorkPaperMcpStdioCliArgs, runDemoWorkPaperMcpStdioServer, workPaperMcpStdioHelpText, } from '@bilig/headless/mcp';
2
+ import { buildDemoWorkPaper, createFileBackedWorkPaperMcpToolServer, createFileBackedWorkPaperMcpToolServerFromFile, createFileBackedWorkPaperMcpToolServerFromXlsxFile, parseWorkPaperMcpStdioCliArgs, runDemoWorkPaperMcpStdioServer, workPaperMcpStdioHelpText, } from '@bilig/headless/mcp';
3
+ import { withXlsxWorkbookRiskTool } from './work-paper-mcp-xlsx-risk-tool.js';
3
4
  const cliOptions = parseWorkPaperMcpStdioCliArgs(process.argv.slice(2));
4
5
  if (cliOptions.help) {
5
6
  process.stdout.write(workPaperMcpStdioHelpText());
@@ -17,6 +18,16 @@ if (cliOptions.demoWorkPaperTools) {
17
18
  else if (cliOptions.workpaperPath === undefined) {
18
19
  runDemoWorkPaperMcpStdioServer();
19
20
  }
21
+ else if (cliOptions.fromXlsxPath !== undefined) {
22
+ runDemoWorkPaperMcpStdioServer({
23
+ server: withXlsxWorkbookRiskTool(createFileBackedWorkPaperMcpToolServerFromXlsxFile({
24
+ fromXlsxPath: cliOptions.fromXlsxPath,
25
+ overwriteWorkPaper: cliOptions.overwriteWorkPaper,
26
+ workpaperPath: cliOptions.workpaperPath,
27
+ writable: cliOptions.writable,
28
+ }), { xlsxPath: cliOptions.fromXlsxPath }),
29
+ });
30
+ }
20
31
  else {
21
32
  runDemoWorkPaperMcpStdioServer({
22
33
  server: createFileBackedWorkPaperMcpToolServerFromFile({
@@ -1 +1 @@
1
- {"version":3,"file":"work-paper-mcp-stdio-bin.js","sourceRoot":"","sources":["../src/work-paper-mcp-stdio-bin.ts"],"names":[],"mappings":";AACA,OAAO,EACL,kBAAkB,EAClB,sCAAsC,EACtC,8CAA8C,EAC9C,6BAA6B,EAC7B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACvE,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAClC,8BAA8B,CAAC;QAC7B,MAAM,EAAE,sCAAsC,CAAC;YAC7C,QAAQ,EAAE,kBAAkB,EAAE;YAC9B,UAAU,EAAE,wBAAwB;YACpC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC;KAAM,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;IAClD,8BAA8B,EAAE,CAAA;AAClC,CAAC;KAAM,CAAC;IACN,8BAA8B,CAAC;QAC7B,MAAM,EAAE,8CAA8C,CAAC;YACrD,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC;KACH,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"work-paper-mcp-stdio-bin.js","sourceRoot":"","sources":["../src/work-paper-mcp-stdio-bin.ts"],"names":[],"mappings":";AACA,OAAO,EACL,kBAAkB,EAClB,sCAAsC,EACtC,8CAA8C,EAC9C,kDAAkD,EAClD,6BAA6B,EAC7B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAE7E,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACvE,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAClC,8BAA8B,CAAC;QAC7B,MAAM,EAAE,sCAAsC,CAAC;YAC7C,QAAQ,EAAE,kBAAkB,EAAE;YAC9B,UAAU,EAAE,wBAAwB;YACpC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC;KAAM,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;IAClD,8BAA8B,EAAE,CAAA;AAClC,CAAC;KAAM,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;IACjD,8BAA8B,CAAC;QAC7B,MAAM,EAAE,wBAAwB,CAC9B,kDAAkD,CAAC;YACjD,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC,EACF,EAAE,QAAQ,EAAE,UAAU,CAAC,YAAY,EAAE,CACtC;KACF,CAAC,CAAA;AACJ,CAAC;KAAM,CAAC;IACN,8BAA8B,CAAC;QAC7B,MAAM,EAAE,8CAA8C,CAAC;YACrD,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC;KACH,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { WorkPaperMcpToolServer } from '@bilig/headless/mcp';
2
+ declare function withXlsxWorkbookRiskTool(server: WorkPaperMcpToolServer, input: {
3
+ readonly xlsxPath: string;
4
+ }): WorkPaperMcpToolServer;
5
+ export { withXlsxWorkbookRiskTool };
@@ -0,0 +1,151 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { basename, resolve } from 'node:path';
3
+ import { buildWorkbookCompatibilityReport, } from '@bilig/xlsx-formula-recalc/workbook-compatibility-report';
4
+ const xlsxWorkbookRiskToolDefinition = {
5
+ name: 'analyze_workbook_risk',
6
+ title: 'Analyze XLSX Workbook Risk',
7
+ description: 'Analyze the XLSX file that started this MCP server and return workbook risk indicators before an agent trusts the imported WorkPaper. This diagnostic does not certify Excel compatibility.',
8
+ inputSchema: {
9
+ type: 'object',
10
+ properties: {
11
+ inspectLimit: {
12
+ type: 'string',
13
+ default: 'all',
14
+ description: 'Formula cells to recompute during inspection. Use all or a positive integer string.',
15
+ },
16
+ },
17
+ additionalProperties: false,
18
+ },
19
+ outputSchema: {
20
+ type: 'object',
21
+ required: ['schemaVersion', 'verified', 'input', 'workbook', 'findings', 'risk', 'excelParity', 'limitations'],
22
+ properties: {
23
+ schemaVersion: {
24
+ type: 'string',
25
+ },
26
+ verified: {
27
+ type: 'boolean',
28
+ },
29
+ input: {
30
+ type: 'object',
31
+ },
32
+ workbook: {
33
+ type: 'object',
34
+ },
35
+ findings: {
36
+ type: 'object',
37
+ },
38
+ risk: {
39
+ type: 'object',
40
+ },
41
+ excelParity: {
42
+ const: 'not_proven',
43
+ },
44
+ limitations: {
45
+ type: 'array',
46
+ },
47
+ },
48
+ additionalProperties: true,
49
+ },
50
+ annotations: {
51
+ title: 'Analyze XLSX Workbook Risk',
52
+ readOnlyHint: true,
53
+ destructiveHint: false,
54
+ idempotentHint: true,
55
+ openWorldHint: false,
56
+ },
57
+ };
58
+ function withXlsxWorkbookRiskTool(server, input) {
59
+ const xlsxPath = resolve(input.xlsxPath);
60
+ return {
61
+ capabilities: server.capabilities,
62
+ handleJsonRpc(request) {
63
+ const parsedRequest = parseJsonRpcRequest(request);
64
+ if (parsedRequest?.method === 'tools/list') {
65
+ return appendRiskTool(server.handleJsonRpc(request));
66
+ }
67
+ if (parsedRequest?.method === 'tools/call') {
68
+ const params = isRecord(parsedRequest.params) ? parsedRequest.params : {};
69
+ if (params['name'] === xlsxWorkbookRiskToolDefinition.name) {
70
+ const args = isRecord(params['arguments']) ? params['arguments'] : {};
71
+ const report = buildWorkbookCompatibilityReport(readFileSync(xlsxPath), {
72
+ fileName: basename(xlsxPath),
73
+ inspectLimit: parseInspectLimit(args['inspectLimit'] ?? 'all'),
74
+ });
75
+ return {
76
+ jsonrpc: '2.0',
77
+ id: parsedRequest.id,
78
+ result: {
79
+ content: [
80
+ {
81
+ type: 'text',
82
+ text: renderWorkbookRiskSummary(report),
83
+ },
84
+ ],
85
+ structuredContent: report,
86
+ isError: false,
87
+ },
88
+ };
89
+ }
90
+ }
91
+ return server.handleJsonRpc(request);
92
+ },
93
+ };
94
+ }
95
+ function appendRiskTool(response) {
96
+ const result = response.result;
97
+ if (!isRecord(result) || !Array.isArray(result['tools'])) {
98
+ return response;
99
+ }
100
+ return {
101
+ ...response,
102
+ result: {
103
+ ...result,
104
+ tools: [...result['tools'], xlsxWorkbookRiskToolDefinition],
105
+ },
106
+ };
107
+ }
108
+ function renderWorkbookRiskSummary(report) {
109
+ return [
110
+ `Workbook risk level: ${report.risk.level.toUpperCase()}`,
111
+ `Formula cells: ${report.workbook.formulaCellCount.toString()}`,
112
+ `Unsupported functions: ${report.findings.unsupportedFunctions.length.toString()}`,
113
+ `External links: ${report.findings.externalLinks.count.toString()}`,
114
+ 'This is a preflight diagnostic, not an Excel compatibility certification.',
115
+ ].join('\n');
116
+ }
117
+ function parseJsonRpcRequest(value) {
118
+ if (!isRecord(value) || value['jsonrpc'] !== '2.0' || typeof value['method'] !== 'string') {
119
+ return undefined;
120
+ }
121
+ const id = value['id'];
122
+ return {
123
+ id: id === undefined || id === null || typeof id === 'string' || typeof id === 'number' ? id : undefined,
124
+ method: value['method'],
125
+ params: value['params'],
126
+ };
127
+ }
128
+ function parseInspectLimit(value) {
129
+ if (value === 'all') {
130
+ return value;
131
+ }
132
+ if (typeof value === 'number' && Number.isInteger(value) && value > 0) {
133
+ return value;
134
+ }
135
+ if (typeof value === 'string') {
136
+ const trimmed = value.trim();
137
+ if (trimmed === 'all') {
138
+ return trimmed;
139
+ }
140
+ const numberValue = Number(trimmed);
141
+ if (Number.isInteger(numberValue) && numberValue > 0) {
142
+ return numberValue;
143
+ }
144
+ }
145
+ throw new Error(`Expected analyze_workbook_risk inspectLimit to be "all" or a positive integer, received: ${String(value)}`);
146
+ }
147
+ function isRecord(value) {
148
+ return typeof value === 'object' && value !== null;
149
+ }
150
+ export { withXlsxWorkbookRiskTool };
151
+ //# sourceMappingURL=work-paper-mcp-xlsx-risk-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-paper-mcp-xlsx-risk-tool.js","sourceRoot":"","sources":["../src/work-paper-mcp-xlsx-risk-tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bilig-workpaper",
3
- "version": "0.159.0",
3
+ "version": "0.160.0",
4
4
  "description": "Bilig WorkPaper runtime for Node.js services, agent tools, and server-side spreadsheet formulas.",
5
5
  "keywords": [
6
6
  "agent-tools",
@@ -80,11 +80,11 @@
80
80
  "access": "public"
81
81
  },
82
82
  "scripts": {
83
- "build": "pnpm --dir ../.. --filter @bilig/headless build && rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json"
83
+ "build": "pnpm --dir ../.. --filter @bilig/xlsx-formula-recalc build && pnpm --dir ../.. --filter @bilig/headless build && rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json"
84
84
  },
85
85
  "dependencies": {
86
- "@bilig/headless": "0.159.0",
87
- "@bilig/xlsx-formula-recalc": "0.159.0"
86
+ "@bilig/headless": "0.160.0",
87
+ "@bilig/xlsx-formula-recalc": "0.160.0"
88
88
  },
89
89
  "engines": {
90
90
  "node": ">=22.0.0"