openmerit 0.1.3 → 0.1.5

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.
Files changed (77) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +83 -312
  3. package/dist/core/src/index.d.ts +90 -0
  4. package/dist/core/src/index.js +1137 -0
  5. package/dist/core/src/store.d.ts +35 -0
  6. package/dist/core/src/store.js +102 -0
  7. package/dist/pi/src/index.d.ts +15 -0
  8. package/dist/pi/src/index.js +423 -0
  9. package/dist/protocol/src/index.d.ts +402 -0
  10. package/dist/protocol/src/index.js +47 -0
  11. package/dist/protocol/src/schemas.d.ts +450 -0
  12. package/dist/protocol/src/schemas.js +224 -0
  13. package/docs/adapter-guide.md +172 -0
  14. package/docs/architecture.md +55 -0
  15. package/docs/automation.md +66 -0
  16. package/docs/getting-started.md +55 -0
  17. package/docs/lifecycle.md +30 -0
  18. package/docs/metrics-and-evidence.md +40 -0
  19. package/docs/operations.md +31 -0
  20. package/docs/pareto-spec.md +76 -0
  21. package/docs/pi-extension.md +44 -0
  22. package/docs/roadmap.md +26 -0
  23. package/docs/security.md +23 -0
  24. package/docs/testing.md +36 -0
  25. package/docs/ux-reference.md +32 -0
  26. package/package.json +45 -54
  27. package/benchmark/invoice_ocr/data/invoice_01_ground_truth.json +0 -38
  28. package/benchmark/invoice_ocr/data/invoice_01_row_2.jpg +0 -0
  29. package/benchmark/invoice_ocr/data/invoice_02_ground_truth.json +0 -32
  30. package/benchmark/invoice_ocr/data/invoice_02_row_5.jpg +0 -0
  31. package/benchmark/invoice_ocr/data/invoice_03_ground_truth.json +0 -26
  32. package/benchmark/invoice_ocr/data/invoice_03_row_6.jpg +0 -0
  33. package/benchmark/invoice_ocr/data/invoice_04_ground_truth.json +0 -26
  34. package/benchmark/invoice_ocr/data/invoice_04_row_7.jpg +0 -0
  35. package/benchmark/invoice_ocr/data/invoice_05_ground_truth.json +0 -38
  36. package/benchmark/invoice_ocr/data/invoice_05_row_947.jpg +0 -0
  37. package/benchmark/invoice_ocr/data/invoice_06_ground_truth.json +0 -38
  38. package/benchmark/invoice_ocr/data/invoice_06_row_948.jpg +0 -0
  39. package/benchmark/invoice_ocr/data/invoice_07_ground_truth.json +0 -20
  40. package/benchmark/invoice_ocr/data/invoice_07_row_949.jpg +0 -0
  41. package/benchmark/invoice_ocr/data/invoice_08_ground_truth.json +0 -38
  42. package/benchmark/invoice_ocr/data/invoice_08_row_1888.jpg +0 -0
  43. package/benchmark/invoice_ocr/data/invoice_09_ground_truth.json +0 -26
  44. package/benchmark/invoice_ocr/data/invoice_09_row_1890.jpg +0 -0
  45. package/benchmark/invoice_ocr/data/invoice_10_ground_truth.json +0 -20
  46. package/benchmark/invoice_ocr/data/invoice_10_row_1892.jpg +0 -0
  47. package/benchmark/invoice_ocr/data/manifest.json +0 -97
  48. package/dist/benchmarks.js +0 -98
  49. package/dist/catalog.js +0 -61
  50. package/dist/cli.js +0 -188
  51. package/dist/daemon.js +0 -388
  52. package/dist/diagnostics.js +0 -194
  53. package/dist/frontier.js +0 -56
  54. package/dist/harness.js +0 -1
  55. package/dist/integrations.js +0 -19
  56. package/dist/invoice-eval.js +0 -33
  57. package/dist/invoice-score.js +0 -124
  58. package/dist/judge.js +0 -43
  59. package/dist/llm.js +0 -203
  60. package/dist/pi-trials.js +0 -366
  61. package/dist/policy.js +0 -115
  62. package/dist/providers.js +0 -1
  63. package/dist/recommend.js +0 -76
  64. package/dist/routes.js +0 -59
  65. package/dist/standalone.js +0 -220
  66. package/dist/store.js +0 -89
  67. package/dist/strategist.js +0 -68
  68. package/dist/task-input.js +0 -54
  69. package/dist/traces.js +0 -127
  70. package/dist/trials.js +0 -140
  71. package/dist/types.js +0 -2
  72. package/examples/invoice-prompt.txt +0 -19
  73. package/examples/task.example.json +0 -7
  74. package/extension/openmerit.ts +0 -820
  75. package/instructions/OPENMERIT.md +0 -54
  76. package/instructions/openmerit.policy.json +0 -33
  77. package/rules.md +0 -39
@@ -0,0 +1,36 @@
1
+ # Testing
2
+
3
+ ## Standard verification
4
+
5
+ ```sh
6
+ npm install
7
+ npm test
8
+ npm run check
9
+ npm run verify
10
+ npm pack --dry-run
11
+ ```
12
+
13
+ Tests cover protocol contracts, lifecycle decisions, baseline sufficiency, candidate/frontier/swap sequencing, conservative Pareto verification, persistence, audit events, safe evidence identifiers, Pi commands, private intent delivery, evidence requirements, and mutation boundaries.
14
+
15
+ Automation tests additionally cover task and elapsed cadence, idempotent signal delivery, durable pending work, catalogue changes, metric regression thresholds, native wakeup requests, unsupported-scheduler fallbacks, delayed post-swap verification, and Pi conversion of settled work into a due assessment.
16
+
17
+ ## Pi load smoke test
18
+
19
+ ```sh
20
+ ./node_modules/.bin/pi --no-session -e ./packages/pi/src/index.ts --list-models
21
+ ```
22
+
23
+ This proves the real Pi runtime loads the extension and enumerates its available catalogue. It does not prove a provider can complete an end-to-end product intent.
24
+
25
+ CI also packs `openmerit`, installs the tarball in a temporary directory,
26
+ imports its public core and protocol entry points, and loads the installed Pi
27
+ extension. This checks the published artifact rather than only the workspace.
28
+
29
+ ## Evidence levels
30
+
31
+ - **Unit verified** — deterministic behavior has automated coverage.
32
+ - **Runtime smoke verified** — the actual Pi runtime loads the extension.
33
+ - **Product trial verified** — Pi creates evals and observability in a real product and completes an intent with evidence.
34
+ - **Production verified** — representative repeated runs support reliability and distribution claims.
35
+
36
+ The current repository is unit- and runtime-smoke-verified. Product and production claims require target-product evidence.
@@ -0,0 +1,32 @@
1
+ # Pi UX behavioral reference
2
+
3
+ This document records user-visible behaviors from the earlier OpenMerit implementation. It is not an implementation specification; the current implementation carries forward only the behaviors listed below, rather than its source code, storage schema, or internal contracts.
4
+
5
+ ## Behaviors worth preserving
6
+
7
+ - A single `/openmerit` command is the primary in-harness entry point.
8
+ - Running the command without arguments gives a concise operational summary.
9
+ - Long-running work produces short progress notifications instead of appearing silent.
10
+ - Users can pause and resume proactive work without uninstalling the extension.
11
+ - Users can request work explicitly even when proactive behavior is paused.
12
+ - Diagnostics are available from the same command surface.
13
+ - Skipped work explains why it was skipped and how the user can proceed.
14
+ - Failures are visible, actionable, and do not masquerade as successful evidence.
15
+ - The extension behaves sensibly in TUI, RPC, JSON, and print modes; prompts are not attempted when no interactive UI exists.
16
+
17
+ ## Staged behavior
18
+
19
+ The command shell can carry a proposal through an authorized model change, but only after baseline evidence, budgeted challenger trials, a harness-calculated and OpenMerit-verified frontier, policy approval, and post-swap verification.
20
+
21
+ ## Current direction
22
+
23
+ The command surface centers on evidence readiness. Its status view should answer:
24
+
25
+ 1. What task profile is active?
26
+ 2. Which required metrics are observable?
27
+ 3. Which evaluations exist and have been verified?
28
+ 4. What intelligent work is Pi currently performing for OpenMerit?
29
+ 5. What evidence is still missing or insufficient?
30
+ 6. When is the next assessment due?
31
+
32
+ The approved command surface is documented in [Pi extension](pi-extension.md).
package/package.json CHANGED
@@ -1,35 +1,32 @@
1
1
  {
2
2
  "name": "openmerit",
3
- "version": "0.1.3",
4
- "description": "Find better models for each pi task by comparing quality, cost, and latency.",
3
+ "version": "0.1.5",
4
+ "description": "Evidence-driven model decisions for coding harnesses.",
5
5
  "type": "module",
6
- "keywords": [
7
- "pi-package",
8
- "pi-extension",
9
- "pi-coding-agent",
10
- "model-routing",
11
- "llm",
12
- "openrouter",
13
- "evaluation"
14
- ],
15
- "files": [
16
- "dist/",
17
- "extension/openmerit.ts",
18
- "instructions/",
19
- "examples/",
20
- "rules.md",
21
- "benchmark/invoice_ocr/data/"
22
- ],
23
- "pi": {
24
- "extensions": [
25
- "./extension/openmerit.ts"
26
- ]
27
- },
28
- "bin": {
29
- "openmerit": "dist/cli.js"
6
+ "license": "MIT",
7
+ "keywords": ["pi-package", "pi-extension", "model-routing", "evaluation", "pareto-frontier"],
8
+ "files": ["dist/", "docs/", "CHANGELOG.md", "LICENSE", "README.md"],
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/core/src/index.d.ts",
12
+ "default": "./dist/core/src/index.js"
13
+ },
14
+ "./core": {
15
+ "types": "./dist/core/src/index.d.ts",
16
+ "default": "./dist/core/src/index.js"
17
+ },
18
+ "./protocol": {
19
+ "types": "./dist/protocol/src/index.d.ts",
20
+ "default": "./dist/protocol/src/index.js"
21
+ },
22
+ "./pi": {
23
+ "types": "./dist/pi/src/index.d.ts",
24
+ "default": "./dist/pi/src/index.js"
25
+ },
26
+ "./package.json": "./package.json"
30
27
  },
31
- "engines": {
32
- "node": ">=22.18.0"
28
+ "pi": {
29
+ "extensions": ["./dist/pi/src/index.js"]
33
30
  },
34
31
  "repository": {
35
32
  "type": "git",
@@ -42,39 +39,33 @@
42
39
  "publishConfig": {
43
40
  "access": "public"
44
41
  },
42
+ "workspaces": [
43
+ "packages/*"
44
+ ],
45
+ "engines": {
46
+ "node": ">=22.19.0"
47
+ },
45
48
  "scripts": {
49
+ "check": "npm run check --workspaces --if-present",
50
+ "test": "npm run test --workspaces --if-present",
51
+ "typecheck": "tsc -p tsconfig.json",
52
+ "build": "node scripts/build.mjs",
46
53
  "prepare": "npm run build",
47
- "build": "tsc -p tsconfig.json",
48
- "typecheck": "tsc --noEmit && tsc -p benchmark/tsconfig.json",
49
- "typecheck:extension": "tsc --noEmit --strict --target ES2022 --module NodeNext --moduleResolution NodeNext --skipLibCheck extension/openmerit.ts",
50
- "test": "vitest run",
51
- "check": "npm run typecheck && npm run typecheck:extension && npm test && npm run build && npm run benchmark:verify-recorded",
52
- "prepublishOnly": "npm run check",
53
- "benchmark:invoice:prepare": "node benchmark/invoice_ocr/prepare_data.ts",
54
- "benchmark:invoice": "node benchmark/invoice_ocr/benchmark.ts",
55
- "benchmark:invoice:audit": "node benchmark/invoice_ocr/audit_results.ts",
56
- "benchmark:invoice:round2": "node benchmark/invoice_ocr/benchmark_round2.ts",
57
- "benchmark:invoice:round2:audit": "node benchmark/invoice_ocr/audit_round2.ts",
58
- "benchmark:text-to-sql": "node benchmark/text_to_sql/benchmark.ts",
59
- "benchmark:text-to-sql:audit": "node benchmark/text_to_sql/audit_results.ts",
60
- "benchmark:policy": "node benchmark/policy_adjudication/benchmark.ts",
61
- "benchmark:policy:audit": "node benchmark/policy_adjudication/audit_results.ts",
62
- "benchmark:policy:validate": "node benchmark/policy_adjudication/validate_eval.ts",
63
- "benchmark:verify-recorded": "node benchmark/verify_recorded.ts"
54
+ "verify": "npm test && npm run check && npm run typecheck && npm run build && git diff --check",
55
+ "prepublishOnly": "npm run verify"
56
+ },
57
+ "dependencies": {
58
+ "@earendil-works/pi-ai": "0.87.0",
59
+ "typebox": "1.3.27"
64
60
  },
65
- "license": "MIT",
66
61
  "peerDependencies": {
67
- "@earendil-works/pi-coding-agent": "*"
62
+ "@earendil-works/pi-coding-agent": ">=0.87.0 <0.88.0"
68
63
  },
69
64
  "peerDependenciesMeta": {
70
- "@earendil-works/pi-coding-agent": {
71
- "optional": true
72
- }
65
+ "@earendil-works/pi-coding-agent": { "optional": true }
73
66
  },
74
67
  "devDependencies": {
75
- "@earendil-works/pi-coding-agent": "^0.85.1",
76
- "@types/node": "^22.10.0",
77
- "typescript": "^5.7.0",
78
- "vitest": "^2.1.0"
68
+ "@types/node": "^22.18.6",
69
+ "typescript": "^5.9.3"
79
70
  }
80
71
  }
@@ -1,38 +0,0 @@
1
- {
2
- "supplier_name": "PixelWave Solutions Inc.",
3
- "customer_name": "Greenfield Marketing Ltd.",
4
- "invoice_number": "INV-2023-0098",
5
- "po_number": "PO-5678",
6
- "document_date": "2023-07-15",
7
- "due_date": "2023-08-14",
8
- "document_currency": "CAD",
9
- "document_total_net": 2220.0,
10
- "document_total_tax": 111.0,
11
- "document_total_amount": 2331.0,
12
- "line_items": [
13
- {
14
- "description": "Website design services",
15
- "quantity": 1.0,
16
- "unit_price": 1200.0,
17
- "amount": 1200.0
18
- },
19
- {
20
- "description": "Content writing package",
21
- "quantity": 10.0,
22
- "unit_price": 50.0,
23
- "amount": 500.0
24
- },
25
- {
26
- "description": "SEO optimization",
27
- "quantity": 5.0,
28
- "unit_price": 80.0,
29
- "amount": 400.0
30
- },
31
- {
32
- "description": "Hosting subscription",
33
- "quantity": 12.0,
34
- "unit_price": 10.0,
35
- "amount": 120.0
36
- }
37
- ]
38
- }
@@ -1,32 +0,0 @@
1
- {
2
- "supplier_name": "TechSolutions Ltd",
3
- "customer_name": null,
4
- "invoice_number": "IE-INV-2024-000123",
5
- "po_number": null,
6
- "document_date": "2024-03-15",
7
- "due_date": null,
8
- "document_currency": "EUR",
9
- "document_total_net": 6200.0,
10
- "document_total_tax": 1143.0,
11
- "document_total_amount": 7343.0,
12
- "line_items": [
13
- {
14
- "description": "Consulting services for project X",
15
- "quantity": 3.0,
16
- "unit_price": 1500.0,
17
- "amount": 4500.0
18
- },
19
- {
20
- "description": "High-performance laptop (Model Y)",
21
- "quantity": 1.0,
22
- "unit_price": 1200.0,
23
- "amount": 1200.0
24
- },
25
- {
26
- "description": "International shipping to Germany",
27
- "quantity": 1.0,
28
- "unit_price": 500.0,
29
- "amount": 500.0
30
- }
31
- ]
32
- }
@@ -1,26 +0,0 @@
1
- {
2
- "supplier_name": "CloudCompute Solutions Inc.",
3
- "customer_name": "Acme Corp.",
4
- "invoice_number": "INV-20230815-001",
5
- "po_number": "PO-987654",
6
- "document_date": "2023-08-15",
7
- "due_date": "2023-09-14",
8
- "document_currency": "USD",
9
- "document_total_net": 110.0,
10
- "document_total_tax": 9.07,
11
- "document_total_amount": 119.07,
12
- "line_items": [
13
- {
14
- "description": "Enterprise Cloud Storage Subscription",
15
- "quantity": 1.0,
16
- "unit_price": 50.0,
17
- "amount": 50.0
18
- },
19
- {
20
- "description": "Premium Support Add-On",
21
- "quantity": 2.0,
22
- "unit_price": 30.0,
23
- "amount": 60.0
24
- }
25
- ]
26
- }
@@ -1,26 +0,0 @@
1
- {
2
- "supplier_name": "Tech Solutions Ltd",
3
- "customer_name": "Acme Construction Ltd",
4
- "invoice_number": "INV-20230815-001",
5
- "po_number": "PO-7654321",
6
- "document_date": "2023-08-15",
7
- "due_date": "2023-09-14",
8
- "document_currency": "GBP",
9
- "document_total_net": 1500.0,
10
- "document_total_tax": 240.0,
11
- "document_total_amount": 1740.0,
12
- "line_items": [
13
- {
14
- "description": "High-performance laptop",
15
- "quantity": 1.0,
16
- "unit_price": 1200.0,
17
- "amount": 1200.0
18
- },
19
- {
20
- "description": "Office desk chair",
21
- "quantity": 2.0,
22
- "unit_price": 150.0,
23
- "amount": 300.0
24
- }
25
- ]
26
- }
@@ -1,38 +0,0 @@
1
- {
2
- "supplier_name": "Celtic Code Solutions",
3
- "customer_name": "North Star Consulting Ltd.",
4
- "invoice_number": "INV-2023-0075",
5
- "po_number": null,
6
- "document_date": "2023-07-15",
7
- "due_date": "2023-08-14",
8
- "document_currency": "EUR",
9
- "document_total_net": 4600.0,
10
- "document_total_tax": 1058.0,
11
- "document_total_amount": 5658.0,
12
- "line_items": [
13
- {
14
- "description": "UI Development Consulting",
15
- "quantity": 20.0,
16
- "unit_price": 80.0,
17
- "amount": 1600.0
18
- },
19
- {
20
- "description": "UX Research",
21
- "quantity": 10.0,
22
- "unit_price": 90.0,
23
- "amount": 900.0
24
- },
25
- {
26
- "description": "Custom API Integration",
27
- "quantity": 15.0,
28
- "unit_price": 100.0,
29
- "amount": 1500.0
30
- },
31
- {
32
- "description": "Project Management Support",
33
- "quantity": 5.0,
34
- "unit_price": 120.0,
35
- "amount": 600.0
36
- }
37
- ]
38
- }
@@ -1,38 +0,0 @@
1
- {
2
- "supplier_name": "Oak Property Management Ltd",
3
- "customer_name": "John Doe",
4
- "invoice_number": "RENT-2023-001",
5
- "po_number": null,
6
- "document_date": "2023-05-01",
7
- "due_date": "2023-05-15",
8
- "document_currency": "EUR",
9
- "document_total_net": 1650.0,
10
- "document_total_tax": 103.5,
11
- "document_total_amount": 1753.5,
12
- "line_items": [
13
- {
14
- "description": "Monthly Base Rent",
15
- "quantity": 1.0,
16
- "unit_price": 1200.0,
17
- "amount": 1200.0
18
- },
19
- {
20
- "description": "Utilities (Electricity/Gas)",
21
- "quantity": 1.0,
22
- "unit_price": 200.0,
23
- "amount": 200.0
24
- },
25
- {
26
- "description": "Property Tax",
27
- "quantity": 1.0,
28
- "unit_price": 150.0,
29
- "amount": 150.0
30
- },
31
- {
32
- "description": "Cleaning Service",
33
- "quantity": 1.0,
34
- "unit_price": 100.0,
35
- "amount": 100.0
36
- }
37
- ]
38
- }
@@ -1,20 +0,0 @@
1
- {
2
- "supplier_name": "Acme Office Supplies Inc.",
3
- "customer_name": "Global Tech Corp.",
4
- "invoice_number": "INV-2023-0001",
5
- "po_number": null,
6
- "document_date": "2023-07-15",
7
- "due_date": "2023-08-15",
8
- "document_currency": "USD",
9
- "document_total_net": 600.0,
10
- "document_total_tax": 42.0,
11
- "document_total_amount": 642.0,
12
- "line_items": [
13
- {
14
- "description": "Office chairs",
15
- "quantity": 5.0,
16
- "unit_price": 120.0,
17
- "amount": 600.0
18
- }
19
- ]
20
- }
@@ -1,38 +0,0 @@
1
- {
2
- "supplier_name": "Digital Solutions Pty Ltd",
3
- "customer_name": "Global Tech Industries Ltd",
4
- "invoice_number": "INV-2024-005",
5
- "po_number": null,
6
- "document_date": "2024-06-15",
7
- "due_date": "2024-07-15",
8
- "document_currency": "AUD",
9
- "document_total_net": 3840.0,
10
- "document_total_tax": 384.0,
11
- "document_total_amount": 4224.0,
12
- "line_items": [
13
- {
14
- "description": "Cloud hosting services",
15
- "quantity": 12.0,
16
- "unit_price": 120.0,
17
- "amount": 1440.0
18
- },
19
- {
20
- "description": "Software license renewal",
21
- "quantity": 1.0,
22
- "unit_price": 1200.0,
23
- "amount": 1200.0
24
- },
25
- {
26
- "description": "Subscription data analytics package",
27
- "quantity": 1.0,
28
- "unit_price": 800.0,
29
- "amount": 800.0
30
- },
31
- {
32
- "description": "Technical support",
33
- "quantity": 1.0,
34
- "unit_price": 400.0,
35
- "amount": 400.0
36
- }
37
- ]
38
- }
@@ -1,26 +0,0 @@
1
- {
2
- "supplier_name": "Acme Consulting Group",
3
- "customer_name": null,
4
- "invoice_number": "INV-2023-0789",
5
- "po_number": "PO-2023-4567",
6
- "document_date": "2023-07-15",
7
- "due_date": "2023-08-14",
8
- "document_currency": "USD",
9
- "document_total_net": 3250.0,
10
- "document_total_tax": 268.12,
11
- "document_total_amount": 3518.12,
12
- "line_items": [
13
- {
14
- "description": "Business Strategy Consultation",
15
- "quantity": 10.0,
16
- "unit_price": 200.0,
17
- "amount": 2000.0
18
- },
19
- {
20
- "description": "Technology Roadmap Development",
21
- "quantity": 5.0,
22
- "unit_price": 250.0,
23
- "amount": 1250.0
24
- }
25
- ]
26
- }
@@ -1,20 +0,0 @@
1
- {
2
- "supplier_name": "VirtualCo Solutions",
3
- "customer_name": "John Doe",
4
- "invoice_number": "INV-2023-000123",
5
- "po_number": null,
6
- "document_date": "2023-07-15",
7
- "due_date": "2023-08-14",
8
- "document_currency": "USD",
9
- "document_total_net": 1200.0,
10
- "document_total_tax": 96.0,
11
- "document_total_amount": 1296.0,
12
- "line_items": [
13
- {
14
- "description": "Enterprise SaaS Subscription for Q3 2023",
15
- "quantity": 1.0,
16
- "unit_price": 1200.0,
17
- "amount": 1200.0
18
- }
19
- ]
20
- }
@@ -1,97 +0,0 @@
1
- {
2
- "dataset": "alamgirqazi/invoice-ocr-synthetic",
3
- "dataset_revision": "44ddfd3c0c373b69f377910f83c4164a1e52d52c",
4
- "license": "CC BY 4.0",
5
- "rows": [
6
- {
7
- "invoice_id": "invoice_01",
8
- "row_idx": 2,
9
- "file_name": "synth_0002_8f01361b.png",
10
- "quality": "clean",
11
- "template": "freelancer_invoice",
12
- "image": "invoice_01_row_2.jpg",
13
- "ground_truth": "invoice_01_ground_truth.json"
14
- },
15
- {
16
- "invoice_id": "invoice_02",
17
- "row_idx": 5,
18
- "file_name": "synth_0005_553deef3.png",
19
- "quality": "clean",
20
- "template": "formal_corporate",
21
- "image": "invoice_02_row_5.jpg",
22
- "ground_truth": "invoice_02_ground_truth.json"
23
- },
24
- {
25
- "invoice_id": "invoice_03",
26
- "row_idx": 6,
27
- "file_name": "synth_0006_474081ca.png",
28
- "quality": "clean",
29
- "template": "modern_minimal",
30
- "image": "invoice_03_row_6.jpg",
31
- "ground_truth": "invoice_03_ground_truth.json"
32
- },
33
- {
34
- "invoice_id": "invoice_04",
35
- "row_idx": 7,
36
- "file_name": "synth_0007_7292e354.png",
37
- "quality": "clean",
38
- "template": "utility_bill",
39
- "image": "invoice_04_row_7.jpg",
40
- "ground_truth": "invoice_04_ground_truth.json"
41
- },
42
- {
43
- "invoice_id": "invoice_05",
44
- "row_idx": 947,
45
- "file_name": "synth_0009_8f6b430f.png",
46
- "quality": "faded",
47
- "template": "freelancer_invoice",
48
- "image": "invoice_05_row_947.jpg",
49
- "ground_truth": "invoice_05_ground_truth.json"
50
- },
51
- {
52
- "invoice_id": "invoice_06",
53
- "row_idx": 948,
54
- "file_name": "synth_0010_73bd8d75.png",
55
- "quality": "faded",
56
- "template": "formal_corporate",
57
- "image": "invoice_06_row_948.jpg",
58
- "ground_truth": "invoice_06_ground_truth.json"
59
- },
60
- {
61
- "invoice_id": "invoice_07",
62
- "row_idx": 949,
63
- "file_name": "synth_0011_8888d5c6.png",
64
- "quality": "faded",
65
- "template": "utility_bill",
66
- "image": "invoice_07_row_949.jpg",
67
- "ground_truth": "invoice_07_ground_truth.json"
68
- },
69
- {
70
- "invoice_id": "invoice_08",
71
- "row_idx": 1888,
72
- "file_name": "synth_0012_72cf2460.png",
73
- "quality": "bad_scan",
74
- "template": "modern_minimal",
75
- "image": "invoice_08_row_1888.jpg",
76
- "ground_truth": "invoice_08_ground_truth.json"
77
- },
78
- {
79
- "invoice_id": "invoice_09",
80
- "row_idx": 1890,
81
- "file_name": "synth_0014_d3972e7f.png",
82
- "quality": "bad_scan",
83
- "template": "freelancer_invoice",
84
- "image": "invoice_09_row_1890.jpg",
85
- "ground_truth": "invoice_09_ground_truth.json"
86
- },
87
- {
88
- "invoice_id": "invoice_10",
89
- "row_idx": 1892,
90
- "file_name": "synth_0016_223f5434.png",
91
- "quality": "bad_scan",
92
- "template": "modern_minimal",
93
- "image": "invoice_10_row_1892.jpg",
94
- "ground_truth": "invoice_10_ground_truth.json"
95
- }
96
- ]
97
- }