@helloxiaohu/plugin-mineru 0.1.4 → 0.1.6

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.
@@ -175,6 +175,31 @@ export declare class MinerUToolsetStrategy implements IToolsetStrategy<MinerUToo
175
175
  };
176
176
  };
177
177
  };
178
+ returnJson: {
179
+ type: string;
180
+ title: {
181
+ en_US: string;
182
+ zh_Hans: string;
183
+ };
184
+ description: {
185
+ en_US: string;
186
+ zh_Hans: string;
187
+ };
188
+ enum: string[];
189
+ default: string;
190
+ 'x-ui': {
191
+ enumLabels: {
192
+ true: {
193
+ en_US: string;
194
+ zh_Hans: string;
195
+ };
196
+ false: {
197
+ en_US: string;
198
+ zh_Hans: string;
199
+ };
200
+ };
201
+ };
202
+ };
178
203
  extraFormats: {
179
204
  type: string;
180
205
  title: {
@@ -1 +1 @@
1
- {"version":3,"file":"mineru-toolset.strategy.d.ts","sourceRoot":"","sources":["../../src/lib/mineru-toolset.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AASzE,qBAEa,qBAAsB,YAAW,gBAAgB,CAAC,mBAAmB,CAAC;IA6M/E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IA9M/B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4Ca,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoJjC;IAEF,QAAQ,CAAC,WAAW,yBAMlB;gBAIiB,aAAa,EAAE,aAAa,EAE5B,YAAY,EAAE,yBAAyB;IAG1D,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAwBlD,WAAW;;;;;;;;;;;;;;;;;;;;CAiBZ"}
1
+ {"version":3,"file":"mineru-toolset.strategy.d.ts","sourceRoot":"","sources":["../../src/lib/mineru-toolset.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AASzE,qBAEa,qBAAsB,YAAW,gBAAgB,CAAC,mBAAmB,CAAC;IAsO/E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAvO/B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4Ca,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6KjC;IAEF,QAAQ,CAAC,WAAW,yBAMlB;gBAIiB,aAAa,EAAE,aAAa,EAE5B,YAAY,EAAE,yBAAyB;IAG1D,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBlD,WAAW;;;;;;;;;;;;;;;;;;;;CAkBZ"}
@@ -187,6 +187,31 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
187
187
  },
188
188
  },
189
189
  },
190
+ returnJson: {
191
+ type: 'string',
192
+ title: {
193
+ en_US: 'Return JSON',
194
+ zh_Hans: '返回完整 JSON',
195
+ },
196
+ description: {
197
+ en_US: 'Return full JSON payload instead of plain text.',
198
+ zh_Hans: '返回完整 JSON 结构,而非纯文本。',
199
+ },
200
+ enum: ['true', 'false'],
201
+ default: 'false',
202
+ 'x-ui': {
203
+ enumLabels: {
204
+ 'true': {
205
+ en_US: 'Enabled',
206
+ zh_Hans: '启用',
207
+ },
208
+ 'false': {
209
+ en_US: 'Disabled',
210
+ zh_Hans: '禁用',
211
+ },
212
+ },
213
+ },
214
+ },
190
215
  extraFormats: {
191
216
  type: 'string',
192
217
  title: {
@@ -233,6 +258,7 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
233
258
  enableTable: creds.enableTable,
234
259
  language: creds.language,
235
260
  modelVersion: creds.modelVersion,
261
+ returnJson: creds.returnJson,
236
262
  configService: this.configService,
237
263
  resultParser: this.resultParser,
238
264
  };
@@ -246,6 +272,7 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
246
272
  enableTable: true,
247
273
  language: 'ch',
248
274
  modelVersion: 'pipeline',
275
+ returnJson: false,
249
276
  }),
250
277
  ];
251
278
  }
@@ -9,6 +9,7 @@ export interface MinerUToolDefaults {
9
9
  enableTable?: boolean | string;
10
10
  language?: 'en' | 'ch';
11
11
  modelVersion?: 'pipeline' | 'vlm';
12
+ returnJson?: boolean | string;
12
13
  }
13
14
  export declare function buildMinerUTool(configService: ConfigService, resultParser: MinerUResultParserService, options?: MinerUIntegrationOptions, fileSystem?: XpFileSystem, defaults?: MinerUToolDefaults): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
14
15
  doc_url: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"mineru.tool.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAU,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;CACnC;AAiBD,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,yBAAyB,EACvC,OAAO,CAAC,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;MAsM9B"}
1
+ {"version":3,"file":"mineru.tool.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAU,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AA+BD,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,yBAAyB,EACvC,OAAO,CAAC,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;MAsN9B"}
@@ -4,6 +4,21 @@ import { getErrorMessage } from '@xpert-ai/plugin-sdk';
4
4
  import { z } from 'zod';
5
5
  import { MinerUClient } from './mineru.client.js';
6
6
  import { MinerU } from './types.js';
7
+ import * as path from 'node:path';
8
+ import { mkdir, writeFile } from 'node:fs/promises';
9
+ function createLocalFileSystem(baseDir) {
10
+ return {
11
+ async writeFile(filePath, content) {
12
+ const resolvedPath = path.isAbsolute(filePath)
13
+ ? filePath
14
+ : path.join(baseDir, filePath);
15
+ await mkdir(path.dirname(resolvedPath), { recursive: true });
16
+ const buffer = typeof content === 'string' ? Buffer.from(content) : content;
17
+ await writeFile(resolvedPath, buffer);
18
+ return resolvedPath;
19
+ },
20
+ };
21
+ }
7
22
  function normalizeExtraFormats(value) {
8
23
  if (!value) {
9
24
  return undefined;
@@ -48,6 +63,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
48
63
  enableTable: defaults?.enableTable,
49
64
  language: defaults?.language,
50
65
  modelVersion: defaults?.modelVersion,
66
+ returnJson: defaults?.returnJson,
51
67
  },
52
68
  });
53
69
  const finalIsOcr = defaults?.isOcr === undefined
@@ -68,6 +84,11 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
68
84
  const finalLanguage = defaults?.language || 'ch';
69
85
  const finalModelVersion = defaults?.modelVersion || 'pipeline';
70
86
  const finalExtraFormats = normalizeExtraFormats(options?.extraFormats);
87
+ const returnJson = defaults?.returnJson === undefined
88
+ ? false
89
+ : typeof defaults.returnJson === 'string'
90
+ ? defaults.returnJson === 'true'
91
+ : defaults.returnJson === true;
71
92
  const effectiveOptions = {
72
93
  apiUrl: finalApiUrl,
73
94
  apiKey: finalApiKey,
@@ -101,6 +122,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
101
122
  extraFormats: finalExtraFormats,
102
123
  });
103
124
  let parsedResult;
125
+ const writeFileSystem = fileSystem ?? createLocalFileSystem(workspacePath);
104
126
  if (mineruClient.serverType === 'self-hosted') {
105
127
  const taskResult = mineruClient.getSelfHostedTask(taskId);
106
128
  if (!taskResult) {
@@ -110,7 +132,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
110
132
  fileUrl: doc_url,
111
133
  name: finalFileName,
112
134
  folder: workspacePath,
113
- }, fileSystem);
135
+ }, writeFileSystem);
114
136
  }
115
137
  else {
116
138
  const result = await mineruClient.waitForTask(taskId, 5 * 60 * 1000, 5000);
@@ -119,7 +141,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
119
141
  fileUrl: doc_url,
120
142
  name: finalFileName,
121
143
  folder: workspacePath,
122
- }, fileSystem);
144
+ }, writeFileSystem);
123
145
  if (fullZipUrl) {
124
146
  parsedResult.metadata = parsedResult.metadata ?? {};
125
147
  parsedResult.metadata.fullZipUrl = parsedResult.metadata.fullZipUrl ?? fullZipUrl;
@@ -152,13 +174,18 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
152
174
  }
153
175
  }
154
176
  const markdownContent = parsedResult.chunks?.map((chunk) => chunk.pageContent).join('\n\n') || '';
177
+ const artifact = {
178
+ files: fileArtifacts,
179
+ taskId,
180
+ metadata: parsedResult.metadata,
181
+ };
182
+ const fullPayload = {
183
+ output: markdownContent,
184
+ artifact,
185
+ };
155
186
  return [
156
- markdownContent,
157
- {
158
- files: fileArtifacts,
159
- taskId,
160
- metadata: parsedResult.metadata,
161
- },
187
+ returnJson ? JSON.stringify(fullPayload) : markdownContent,
188
+ artifact,
162
189
  ];
163
190
  }
164
191
  catch (error) {
@@ -14,6 +14,7 @@ export interface MinerUToolsetConfig {
14
14
  enableTable?: boolean | string;
15
15
  language?: 'en' | 'ch';
16
16
  modelVersion?: 'pipeline' | 'vlm';
17
+ returnJson?: boolean | string;
17
18
  }
18
19
  export declare class MinerUToolset extends BuiltinToolset<StructuredToolInterface, MinerUToolsetConfig> {
19
20
  private readonly config;
@@ -1 +1 @@
1
- {"version":3,"file":"mineru.toolset.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.toolset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;CACnC;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC7F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IACpC,KAAK,EAAE,GAAG,EAAE,CAAM;gBAEf,MAAM,EAAE,mBAAmB;IAiBxB,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CA+CzF"}
1
+ {"version":3,"file":"mineru.toolset.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.toolset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC7F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IACpC,KAAK,EAAE,GAAG,EAAE,CAAM;gBAEf,MAAM,EAAE,mBAAmB;IAiBxB,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAiDzF"}
@@ -20,7 +20,7 @@ export class MinerUToolset extends BuiltinToolset {
20
20
  // No validation during authorization phase.
21
21
  }
22
22
  async initTools() {
23
- const { configService, resultParser, apiUrl, apiKey, extraFormats, fileSystem, isOcr, enableFormula, enableTable, language, modelVersion, } = this.config;
23
+ const { configService, resultParser, apiUrl, apiKey, extraFormats, fileSystem, isOcr, enableFormula, enableTable, language, modelVersion, returnJson, } = this.config;
24
24
  if (!configService || !resultParser) {
25
25
  throw new Error('ConfigService and MinerUResultParserService are required');
26
26
  }
@@ -41,6 +41,7 @@ export class MinerUToolset extends BuiltinToolset {
41
41
  enableTable: finalEnableTable,
42
42
  language: finalLanguage,
43
43
  modelVersion: finalModelVersion,
44
+ returnJson,
44
45
  }),
45
46
  ];
46
47
  return this.tools;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helloxiaohu/plugin-mineru",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "MinerU document converter plugin for Xpert AI platform",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {