@lumifai/harness-tool-pack-docling
v1.1.0
Published
Convert supported workspace files through a user-configured Docling Serve endpoint.
Readme
@lumifai/harness-tool-pack-docling
Convert supported workspace files through a user-configured Docling Serve endpoint.
import { createDoclingToolPack } from '@lumifai/harness-tool-pack-docling';
const doclingPack = createDoclingToolPack({
serviceUrl: process.env.DOCLING_SERVICE_URL!,
apiKey: process.env.DOCLING_API_KEY,
});Register the pack with the preset tools:
createPresetTools({ packs: [doclingPack] });The pack exposes process_file. It reads a file from the workspace, sends it to
POST /v1/convert/file, and writes the selected result to processed/.
Markdown is the default output format; JSON, HTML, text, and doctags are also
available. Docling automatically determines the input type from the uploaded file.
The pack is disabled by default and requires ask permission. Configure the
service URL and credentials when constructing the pack. Credentials are never
part of the model-visible tool input. Use headers for services that require
authentication other than Docling's X-Api-Key header.
For broker or parser integrations that already have file bytes, use the shared converter API. It sends one Docling request and can return every requested representation without writing through the workspace:
import { createDoclingConverter } from '@lumifai/harness-tool-pack-docling';
const converter = createDoclingConverter({
serviceUrl: process.env.DOCLING_SERVICE_URL!,
apiKey: process.env.DOCLING_API_KEY,
});
const result = await converter.convertFile({
bytes,
filename: 'report.pdf',
mimeType: 'application/pdf',
outputFormats: ['md', 'json', 'html', 'text', 'doctags'],
});The converter returns structured JSON content, status, processing time, and
errors. process_file remains the agent-facing wrapper for workspace paths and
writes one selected representation under processed/.
For reusable application integrations that need shared defaults, normalization, or workspace persistence, use the high-level processor:
import { createDoclingDocumentProcessor } from '@lumifai/harness-tool-pack-docling';
const processor = createDoclingDocumentProcessor({
serviceUrl: process.env.DOCLING_SERVICE_URL!,
apiKey: process.env.DOCLING_API_KEY,
});
const parsed = await processor.parse({
filename: 'report.pdf',
bytes,
mimeType: 'application/pdf',
});
const workspaceParsed = await processor.parseWorkspaceFile('/uploads/report.pdf', {
filesystem,
persistArtifacts: true,
});Programmatic parsing returns processorId: 'docling' and defaults to Markdown, JSON, HTML, text, and doctags with
OCR enabled, accurate tables, the standard pipeline, and placeholder images.
Callers can override these options per request. Workspace filesystems are
provided per call, so local, mounted, and object-backed filesystem providers can
use the same processor.
