Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
2311c1d
Add preview document extraction provider packages
luisquintanilla Nov 1, 2026
a5b38d0
Simplify preview provider native inspection contracts
luisquintanilla Nov 2, 2026
de2ee76
Migrate extraction providers to abstract client and preserve mixed cells
luisquintanilla Nov 4, 2026
db67441
Align extraction bootstrap with locked Documents and abstract client
luisquintanilla Nov 4, 2026
068010f
docs: write consumer-focused extraction provider guides
luisquintanilla Nov 5, 2026
d2669c5
feat: add optional ONNX layout extraction and uniform provider names
luisquintanilla Nov 5, 2026
cd6917d
feat: support direct and Foundry Mistral OCR in one client
luisquintanilla Nov 5, 2026
caf5ac4
refactor: configure extraction clients and select native runtime expl…
luisquintanilla Nov 5, 2026
069e9bd
Replace PDFium rendering and streamline Azure extraction adapters
luisquintanilla Nov 5, 2026
5e38e58
Forward original PDF inputs through Vision chat adapters
luisquintanilla Nov 5, 2026
e483fe6
Narrow extraction provider review to five independent packages
luisquintanilla Nov 6, 2026
c496328
Add portable extraction assets and explicit experimental API opt-in
luisquintanilla Nov 6, 2026
52932a3
Bundle provider-specific document extraction skills
luisquintanilla Nov 6, 2026
9f18729
Add task-specific official references to provider skills
luisquintanilla Nov 6, 2026
8edcb9c
Rename Vision provider to VisionLanguageModel
luisquintanilla Nov 6, 2026
fac9188
Fix extraction provider reading order, figure text and image mapping
luisquintanilla Nov 7, 2026
2939447
Remove dedicated .NET 8 extraction provider support
luisquintanilla Nov 7, 2026
1c71a32
Build extraction dependencies from pinned canonical upstream
luisquintanilla Nov 7, 2026
c30c817
Match selected provider archives without package-prefix collisions
luisquintanilla Nov 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 112 additions & 0 deletions .github/workflows/document-extraction.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Document extraction

on:
push:
branches: [main]
paths:
- 'DocumentExtraction/**'
- 'Directory.Build.props'
- 'Directory.Build.targets'
- 'Directory.Packages.props'
- 'CommunityToolkit.AI.slnx'
- 'global.json'
- 'eng/Bootstrap-DocumentExtractionCore.ps1'
- 'eng/New-DocumentExtractionNuGetConfig.ps1'
- 'eng/Test-DocumentExtractionPackages.ps1'
- 'eng/DocumentExtraction.PackageSmoke/**'
- 'eng/LegacySupport.props'
- 'Shared/**'
- 'nuget.config'
- '.github/workflows/document-extraction.yml'
pull_request:
branches: [main, 'copilot/*']
paths:
- 'DocumentExtraction/**'
- 'Directory.Build.props'
- 'Directory.Build.targets'
- 'Directory.Packages.props'
- 'CommunityToolkit.AI.slnx'
- 'global.json'
- 'eng/Bootstrap-DocumentExtractionCore.ps1'
- 'eng/New-DocumentExtractionNuGetConfig.ps1'
- 'eng/Test-DocumentExtractionPackages.ps1'
- 'eng/DocumentExtraction.PackageSmoke/**'
- 'eng/LegacySupport.props'
- 'Shared/**'
- 'nuget.config'
- '.github/workflows/document-extraction.yml'
workflow_dispatch:

permissions:
contents: read

env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true

jobs:
bootstrap-core:
name: Pack pinned public upstream core
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-dotnet@v5
env:
DOTNET_INSTALL_DIR: ${{ runner.temp }}/document-extraction-sdk
with:
dotnet-version: 11.0.100-rc.3.26522.148
- name: Pack original owning upstream projects
shell: pwsh
env:
# Match the verified ordinary owning-project recipe rather than
# enabling upstream CI-only build defaults.
CI: 'false'
run: ./eng/Bootstrap-DocumentExtractionCore.ps1 -OutputDirectory "${{ runner.temp }}/document-extraction-core" -DotnetPath "${{ runner.temp }}/document-extraction-sdk/dotnet.exe"
- uses: actions/upload-artifact@v6
with:
name: document-extraction-core-source-packages
path: |
${{ runner.temp }}/document-extraction-core/*.11.0.0-review.20261106.1.nupkg
${{ runner.temp }}/document-extraction-core/core-bootstrap.json
if-no-files-found: error

build-test-pack:
name: Offline acceptance (${{ matrix.os }})
runs-on: ${{ matrix.os }}
needs: bootstrap-core
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
- uses: actions/download-artifact@v7
with:
name: document-extraction-core-source-packages
path: ${{ runner.temp }}/document-extraction-core
- name: Configure isolated source-built core feed
shell: pwsh
run: ./eng/New-DocumentExtractionNuGetConfig.ps1 -CorePackageDirectory "${{ runner.temp }}/document-extraction-core" -OutputPath "${{ runner.temp }}/document-extraction-nuget.config"
- name: Restore exact dependencies
run: dotnet restore DocumentExtraction/DocumentExtraction.slnf --configfile "${{ runner.temp }}/document-extraction-nuget.config"
- name: Build
run: dotnet build DocumentExtraction/DocumentExtraction.slnf --no-restore -c Release
- name: Offline tests
run: dotnet test DocumentExtraction/DocumentExtraction.slnf --no-build --no-restore -c Release
- name: Restore portable test dependency closure
run: dotnet restore DocumentExtraction/DocumentExtraction.slnf -p:DocumentExtractionTestAsset=netstandard2.0 --configfile "${{ runner.temp }}/document-extraction-nuget.config"
- name: Offline tests using actual netstandard assets
run: dotnet test DocumentExtraction/DocumentExtraction.slnf --no-restore -c Release -p:DocumentExtractionTestAsset=netstandard2.0
- name: Pack preview artifacts
run: dotnet pack DocumentExtraction/DocumentExtraction.slnf --no-build --no-restore -c Release --output artifacts/document-extraction
- name: Verify packaged assets and experimental opt-in
shell: pwsh
run: ./eng/Test-DocumentExtractionPackages.ps1 -PackageDirectory artifacts/document-extraction -CorePackageDirectory "${{ runner.temp }}/document-extraction-core" -NuGetConfig "${{ runner.temp }}/document-extraction-nuget.config" -OutputDirectory "${{ runner.temp }}/document-extraction-package-checks"
- uses: actions/upload-artifact@v6
with:
name: document-extraction-preview-packages-${{ matrix.os }}
path: artifacts/document-extraction/*.nupkg
if-no-files-found: error
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,7 @@ examples/perl/**/local/*
**cpanfile.snapshot
**/.modules/
**/*.AppHost.TypeScript/nuget.config

# Private review inputs and local test-generation reports.
/.review-inputs/
/.testagent/
16 changes: 16 additions & 0 deletions CommunityToolkit.AI.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,22 @@
<Project Path="MEVD/src/SqlServer/SqlServer.csproj" />
<Project Path="MEVD/src/Weaviate/Weaviate.csproj" />
</Folder>
<Folder Name="/DocumentExtraction/src/">
<File Path="DocumentExtraction/src/Directory.Build.props" />
<Project Path="DocumentExtraction/src/PdfPig/PdfPig.csproj" />
<Project Path="DocumentExtraction/src/AzureContentUnderstanding/AzureContentUnderstanding.csproj" />
<Project Path="DocumentExtraction/src/AzureDocumentIntelligence/AzureDocumentIntelligence.csproj" />
<Project Path="DocumentExtraction/src/Mistral/Mistral.csproj" />
<Project Path="DocumentExtraction/src/VisionLanguageModel/VisionLanguageModel.csproj" />
</Folder>
<Folder Name="/DocumentExtraction/test/">
<File Path="DocumentExtraction/test/Directory.Build.props" />
<Project Path="DocumentExtraction/test/PdfPig.UnitTests/PdfPig.UnitTests.csproj" />
<Project Path="DocumentExtraction/test/AzureContentUnderstanding.UnitTests/AzureContentUnderstanding.UnitTests.csproj" />
<Project Path="DocumentExtraction/test/AzureDocumentIntelligence.UnitTests/AzureDocumentIntelligence.UnitTests.csproj" />
<Project Path="DocumentExtraction/test/Mistral.UnitTests/Mistral.UnitTests.csproj" />
<Project Path="DocumentExtraction/test/VisionLanguageModel.UnitTests/VisionLanguageModel.UnitTests.csproj" />
</Folder>
<Folder Name="/MEVD/test/">
<File Path="MEVD/test/Directory.Build.props" />
<Project Path="MEVD/test/AzureAISearch.UnitTests/AzureAISearch.UnitTests.csproj" />
Expand Down
11 changes: 11 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,17 @@
<PackageVersion Include="sqlite-vec" Version="0.1.7-alpha.2.1" />
</ItemGroup>

<ItemGroup Label="DocumentExtraction">
<PackageVersion Update="Microsoft.Extensions.AI.Abstractions" Version="11.0.0-review.20261106.1" Condition="'$(DocumentExtractionBuild)' == 'true'" />
<PackageVersion Update="System.Text.Json" Version="11.0.0-rc.3.26522.148" Condition="'$(DocumentExtractionBuild)' == 'true'" />
<PackageVersion Include="Microsoft.Extensions.Documents.Abstractions" Version="11.0.0-review.20261106.1" />
<PackageVersion Include="Microsoft.Extensions.DocumentExtraction.Abstractions" Version="11.0.0-review.20261106.1" />
<PackageVersion Include="Azure.AI.ContentUnderstanding" Version="1.1.0" />
<PackageVersion Include="Azure.AI.DocumentIntelligence" Version="1.0.0" />
<PackageVersion Include="Azure.Core" Version="1.53.0" />
<PackageVersion Include="PdfPig" Version="0.1.15" />
</ItemGroup>

<ItemGroup Label="Build">
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="10.0.401" />
</ItemGroup>
Expand Down
17 changes: 17 additions & 0 deletions DocumentExtraction/DocumentExtraction.slnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"solution": {
"path": "../CommunityToolkit.AI.slnx",
"projects": [
"DocumentExtraction/src/PdfPig/PdfPig.csproj",
"DocumentExtraction/src/AzureContentUnderstanding/AzureContentUnderstanding.csproj",
"DocumentExtraction/src/AzureDocumentIntelligence/AzureDocumentIntelligence.csproj",
"DocumentExtraction/src/Mistral/Mistral.csproj",
"DocumentExtraction/src/VisionLanguageModel/VisionLanguageModel.csproj",
"DocumentExtraction/test/PdfPig.UnitTests/PdfPig.UnitTests.csproj",
"DocumentExtraction/test/AzureContentUnderstanding.UnitTests/AzureContentUnderstanding.UnitTests.csproj",
"DocumentExtraction/test/AzureDocumentIntelligence.UnitTests/AzureDocumentIntelligence.UnitTests.csproj",
"DocumentExtraction/test/Mistral.UnitTests/Mistral.UnitTests.csproj",
"DocumentExtraction/test/VisionLanguageModel.UnitTests/VisionLanguageModel.UnitTests.csproj"
]
}
}
Loading
Loading