fullbleed 2.2.5__tar.gz → 2.3.1__tar.gz
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.
- {fullbleed-2.2.5 → fullbleed-2.3.1}/Cargo.lock +1 -1
- {fullbleed-2.2.5 → fullbleed-2.3.1}/Cargo.toml +1 -1
- fullbleed-2.2.5/README.md → fullbleed-2.3.1/PKG-INFO +93 -6
- fullbleed-2.2.5/PKG-INFO → fullbleed-2.3.1/README.md +50 -43
- fullbleed-2.3.1/fullbleed-agent-contract.json +6094 -0
- fullbleed-2.3.1/llms.txt +66 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/pyproject.toml +36 -3
- fullbleed-2.3.1/python/fullbleed_cli/agent.py +161 -0
- fullbleed-2.3.1/python/fullbleed_cli/agent_acceptance.py +499 -0
- fullbleed-2.3.1/python/fullbleed_cli/agent_contract.py +1101 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/cli.py +464 -34
- fullbleed-2.3.1/python/fullbleed_cli/mcp.py +579 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold.py +82 -1
- fullbleed-2.3.1/python/fullbleed_cli/scaffold_templates/init/AGENTS.md +14 -0
- fullbleed-2.3.1/skills/fullbleed/SKILL.md +37 -0
- fullbleed-2.3.1/skills/fullbleed/agents/openai.yaml +4 -0
- fullbleed-2.3.1/skills/fullbleed/references/compliance.md +31 -0
- fullbleed-2.3.1/skills/fullbleed/references/selection.md +21 -0
- fullbleed-2.3.1/skills/fullbleed/references/workflows.md +66 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/flowable.rs +12 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/lib.rs +57 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/pdf.rs +150 -25
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/pdf_raster.rs +199 -12
- {fullbleed-2.2.5 → fullbleed-2.3.1}/COPYRIGHT +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/FONT_LICENSE_AUDIT.json +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/FONT_LICENSE_AUDIT.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/LICENSE +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/LICENSING.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/THIRD_PARTY_LICENSES.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/build.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/build_backend/fullbleed_build_backend.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/Cargo.lock +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/Cargo.toml +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/LICENSE +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/README.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/specs/fullbleed.audit_registry.v1.yaml +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/specs/section508_html_registry.v1.yaml +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/specs/wcag20aa_registry.v1.yaml +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/src/json.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/src/lib.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/crates/fullbleed_audit_contract/src/sha256.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/docs/specs/fullbleed.a11y.verify.v1.schema.json +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/docs/specs/fullbleed.audit_registry.v1.yaml +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/docs/specs/fullbleed.pmr.v1.schema.json +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/docs/specs/section508_html_registry.v1.yaml +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/docs/specs/wcag20aa_registry.v1.yaml +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/__main__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/_abi.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/accessibility/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/accessibility/engine.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/accessibility/runtime.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/accessibility/types.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/audit_prototype.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/audit_section508.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/audit_wcag.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/accessibility.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/_core.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/agency_letter.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/court_motion_form.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/declaration_form.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/instruction_sheet.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/investment_portfolio_report.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/marriage_record.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/profiles.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/recorded_plat.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/redaction_request_form.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/cav/warranty_deed.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/core.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/primitives.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed/ui/style.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/bootstrap.min.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/fonts/Inter-Variable.ttf +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/fonts/NotoSans-Regular.ttf +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/fonts/NotoSansMath-Regular.ttf +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/fonts/NotoSansSymbols-Regular.ttf +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/fonts/NotoSansSymbols2-Regular.ttf +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_assets/icons/bootstrap-icons.svg +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/__main__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/assets.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/cache.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/finalize.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/.gitignore +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/COMPLIANCE.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/SCAFFOLDING.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/body.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/fb_ui.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/footer.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/header.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/primitives.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/styles/body.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/styles/footer.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/styles/header.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/components/styles/primitives.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/report.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/styles/report.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/init/styles/tokens.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/accessible/README.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/accessible/output/.gitignore +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/accessible/output/.gitkeep +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/accessible/report.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/accessible/styles/report.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/accessible/vendor/fonts/Inter-Variable.ttf +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/invoice/output/.gitignore +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/invoice/output/.gitkeep +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/invoice/report.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/invoice/templates/invoice.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/invoice/templates/invoice.html +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/COMPLIANCE.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/README.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/SCAFFOLDING.md +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/assets/brand-mark.svg +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/assets/reference-pattern.svg +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/__init__.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/appendix.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/architecture.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/cover.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/data_pages.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/fb_ui.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/primitives.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/styles/appendix.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/styles/architecture.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/styles/cover.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/styles/data.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/styles/primitives.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/styles/visuals.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/components/visuals.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/data/reference.json +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/output/.gitignore +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/report.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/styles/report.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/reference/styles/tokens.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/statement/output/.gitignore +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/statement/output/.gitkeep +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/statement/report.py +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/statement/templates/statement.css +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/python/fullbleed_cli/scaffold_templates/new/statement/templates/statement.html +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/assets.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/base64.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/canvas.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/css_native.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/css_queries.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/debug.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/doc_context.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/doc_template.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/error.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/finalize.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/flate_native.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/font.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/font_subset.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/frame.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/glyph_report.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_dom.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_entities.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_entities_0.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_entities_1.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_entities_2.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_entities_3.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_entities_4.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/html_entities_5.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/image_native.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/jit.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/jpeg_native.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/math.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/metrics.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/native_shape.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/page_data.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/page_template.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/parallel.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/pdf_encodings.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/pdf_native.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/pdfinspect.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/perf.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/plan.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/python/abi_exports.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/python.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/python_abi.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/raster.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/raster_native.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/sfnt.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/sfnt_cff.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/sfnt_outline.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/spill.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/style.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/svg.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/text_shape.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/types.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/unicode_data.rs +0 -0
- {fullbleed-2.2.5 → fullbleed-2.3.1}/src/xml.rs +0 -0
|
@@ -1,7 +1,52 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fullbleed
|
|
3
|
+
Version: 2.3.1
|
|
4
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
5
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
6
|
+
Classifier: Operating System :: MacOS
|
|
7
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
8
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
9
|
+
Classifier: Programming Language :: Rust
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
18
|
+
Classifier: Topic :: Office/Business
|
|
19
|
+
Classifier: Topic :: Office/Business :: Financial
|
|
20
|
+
Classifier: Topic :: Printing
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Topic :: Text Processing :: Markup :: HTML
|
|
23
|
+
Provides-Extra: api
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
License-File: COPYRIGHT
|
|
26
|
+
License-File: LICENSING.md
|
|
27
|
+
License-File: THIRD_PARTY_LICENSES.md
|
|
28
|
+
License-File: FONT_LICENSE_AUDIT.md
|
|
29
|
+
License-File: FONT_LICENSE_AUDIT.json
|
|
30
|
+
Summary: Deterministic Python PDF engine for reports, invoices, accessible documents, print-ready output, and compiled VDP
|
|
31
|
+
Keywords: pdf-generation,document-generation,html-to-pdf,python-pdf-engine,deterministic-pdf,reports,invoices,statements,forms,transactional-documents,vdp,variable-data-printing,accessible-pdf,pdf-ua,pdf-a,pdf-x,ai-agents,agentic-document-generation,mcp
|
|
32
|
+
Home-Page: https://fullbleed.dev
|
|
33
|
+
License-Expression: MIT
|
|
34
|
+
Requires-Python: >=3.10
|
|
35
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
36
|
+
Project-URL: Agent-Contract, https://github.com/fullbleed-engine/fullbleed-official/blob/master/fullbleed-agent-contract.json
|
|
37
|
+
Project-URL: Agent-Skill, https://github.com/fullbleed-engine/fullbleed-official/tree/master/skills/fullbleed
|
|
38
|
+
Project-URL: Documentation, https://github.com/fullbleed-engine/fullbleed-official#readme
|
|
39
|
+
Project-URL: Homepage, https://fullbleed.dev
|
|
40
|
+
Project-URL: Issues, https://github.com/fullbleed-engine/fullbleed-official/issues
|
|
41
|
+
Project-URL: MCP, https://github.com/fullbleed-engine/fullbleed-official/tree/master/packages/fullbleed-mcp
|
|
42
|
+
Project-URL: Repository, https://github.com/fullbleed-engine/fullbleed-official
|
|
43
|
+
|
|
1
44
|
<!-- SPDX-License-Identifier: MIT -->
|
|
2
|
-
# Fullbleed
|
|
45
|
+
# Fullbleed PDF Engine
|
|
46
|
+
|
|
47
|
+
Fullbleed PDF Engine is a deterministic, self-contained document-generation runtime for Python and Rust. It turns structured data plus static HTML/CSS into reports, invoices, statements, letters, forms, certificates, accessible PDFs, print-ready documents, and high-volume compiled VDP output—without a browser or system PDF stack.
|
|
3
48
|
|
|
4
|
-
|
|
49
|
+
It is designed for human developers, automation, and AI agents alike: the installed runtime exposes its exact version, capabilities, commands, schemas, compliance profiles, examples, limitations, and tool-selection boundary as a generated machine contract.
|
|
5
50
|
|
|
6
51
|
|
|
7
52
|
License: MIT.
|
|
@@ -10,16 +55,49 @@ License: MIT.
|
|
|
10
55
|
|
|
11
56
|
- **Install:** `pip install fullbleed`
|
|
12
57
|
- **Try:** `fullbleed init . && python report.py`
|
|
58
|
+
- **Discover:** `fullbleed agent-contract --format json`
|
|
13
59
|
- **Outputs:** `output/report.pdf`
|
|
14
60
|
- Deterministic + reproducible (`--repro-record` / `--repro-check`)
|
|
15
61
|
- Agent-safe JSON schemas (`--json-only`, `--schema`)
|
|
16
62
|
|
|
17
63
|
## Positioning
|
|
18
64
|
|
|
19
|
-
Fullbleed is a deterministic, offline-first document rendering engine for transactional/VDP pipelines (not a browser, not a hosted web-to-print SaaS).
|
|
65
|
+
Fullbleed is a deterministic, offline-first document rendering engine for structured print-document and transactional/VDP pipelines (not a browser, not a hosted web-to-print SaaS, and not a general editor for arbitrary existing PDF content).
|
|
20
66
|
|
|
21
67
|
HTML and CSS are used as a familiar DSL for layout, styling, and data placement in transactional documents.
|
|
22
68
|
|
|
69
|
+
## Agent discovery and integrations
|
|
70
|
+
|
|
71
|
+
An agent does not need release-specific Fullbleed knowledge. The installed binary generates one canonical contract containing its actual version, selection boundary, capabilities, parser-derived CLI surface, result schemas, PDF profiles, examples, limitations, Agent Skill metadata, MCP tools, and acceptance tasks:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
fullbleed agent-manifest --json
|
|
75
|
+
# Equivalent canonical form:
|
|
76
|
+
fullbleed agent-contract --format json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The committed [`fullbleed-agent-contract.json`](fullbleed-agent-contract.json), [`cli_schema.md`](cli_schema.md), and [`llms.txt`](llms.txt) are generated from the built wheel. CI rejects version, command, schema, profile, or capability drift. Runtime introspection remains authoritative.
|
|
80
|
+
|
|
81
|
+
The first-party, versionless [`skills/fullbleed/SKILL.md`](skills/fullbleed/SKILL.md) teaches tool selection and the render/preview/diagnose/verify loop without duplicating the manual. It is bundled in the wheel and can be exported into any absent or empty agent-skill directory:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
fullbleed agent skill-path --json
|
|
85
|
+
fullbleed agent export-skill .agents/skills/fullbleed --json
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For tool-calling agents, install the separately versioned adapter so the core package remains dependency-free:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
python -m pip install fullbleed-mcp
|
|
92
|
+
fullbleed-mcp --root .
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The stdio server confines document paths to the selected workspace and delegates every engine operation to the installed Fullbleed runtime. It exposes semantic discovery, project creation, render/preview, inspect, verify, assets, and fixed/reflow compiled VDP tools. The dependency-free core also provides `fullbleed mcp --root .`.
|
|
96
|
+
|
|
97
|
+
Use Fullbleed when the requested artifact is a deterministic print document built from structured content. Use a browser when the requested artifact is a screenshot or interactive state of an arbitrary live website. Use a general PDF editor when existing page content itself must be rewritten.
|
|
98
|
+
|
|
99
|
+
Cold-agent testing is available through `fullbleed agent-acceptance`; compact copyable workflows live in [`examples/agent_workflows`](examples/agent_workflows), and the approach-neutral benchmark scaffold lives in [`agentdocbench`](agentdocbench).
|
|
100
|
+
|
|
23
101
|
|
|
24
102
|
This README is the canonical usage guide for:
|
|
25
103
|
|
|
@@ -92,6 +170,11 @@ Fixed-geometry slots may remain inside immutable page-space transforms and clips
|
|
|
92
170
|
captures that active coordinate-state program once and replays it in each compact record overlay;
|
|
93
171
|
it does not rerun layout or clone the complete page display list.
|
|
94
172
|
|
|
173
|
+
Base-14/WinAnsi slot paint keeps the measured byte-patch linker. Registered embedded fonts use a
|
|
174
|
+
command-level overlay program so each bound value is shaped and included in the font subset while
|
|
175
|
+
the compiled layout, pagination, and static page stream remain shared. The throughput figures above
|
|
176
|
+
describe the Base-14 fast lane; they are not claims for registered-font shaping.
|
|
177
|
+
|
|
95
178
|
The fixed-copy result remains scoped to identical content; the variable-data result is scoped to
|
|
96
179
|
paint-only text whose geometry does not reflow. Neither is a claim that arbitrary new HTML or
|
|
97
180
|
size-changing records render 200x faster. See
|
|
@@ -130,7 +213,7 @@ python -m pip install fullbleed
|
|
|
130
213
|
From a local wheel:
|
|
131
214
|
|
|
132
215
|
```bash
|
|
133
|
-
python -m pip install C:\path\to\fullbleed-2.
|
|
216
|
+
python -m pip install C:\path\to\fullbleed-2.3.1-cp310-abi3-win_amd64.whl
|
|
134
217
|
```
|
|
135
218
|
|
|
136
219
|
From a source checkout with Rust installed, no Python build package is needed:
|
|
@@ -188,6 +271,9 @@ Scaffolded components now include `components/primitives.py` with reusable
|
|
|
188
271
|
layout/content helpers (`Stack`, `Row`, `Text`, table/list helpers, key/value rows, etc.).
|
|
189
272
|
Each scaffolded project also includes `SCAFFOLDING.md`, which should be your
|
|
190
273
|
first read before restructuring components.
|
|
274
|
+
It also includes `AGENTS.md`, which preserves the installed-runtime-first
|
|
275
|
+
document workflow across future coding-agent sessions without making other
|
|
276
|
+
document tools categorically forbidden.
|
|
191
277
|
|
|
192
278
|
Install additional project assets (defaults to `./vendor/...` in project context):
|
|
193
279
|
|
|
@@ -998,8 +1084,9 @@ Module exports:
|
|
|
998
1084
|
The compiled lane runs parsing/layout once. `render_pdf_batch` virtualizes identical untagged page
|
|
999
1085
|
content. The fixed binding methods accept columnar `dict[str, list[str]]` data and emit distinct
|
|
1000
1086
|
fixed-geometry text overlays per record while sharing static paint. They require exact slot keys,
|
|
1001
|
-
equal non-zero column lengths, page-local
|
|
1002
|
-
|
|
1087
|
+
equal non-zero column lengths, page-local text, and an untagged profile. Base-14 text uses the
|
|
1088
|
+
direct byte-patch lane; registered fonts are shaped into a command-level overlay. Bound values do
|
|
1089
|
+
not trigger layout or reflow.
|
|
1003
1090
|
|
|
1004
1091
|
The reflow binding methods use the same exact-column contract but execute the compiled parsed-DOM
|
|
1005
1092
|
program. `{{slot}}` values are literal text and may reshape, wrap, resize blocks, and change page
|
|
@@ -1,44 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: fullbleed
|
|
3
|
-
Version: 2.2.5
|
|
4
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
5
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
6
|
-
Classifier: Operating System :: MacOS
|
|
7
|
-
Classifier: Operating System :: Microsoft :: Windows
|
|
8
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
9
|
-
Classifier: Programming Language :: Rust
|
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
-
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
18
|
-
Classifier: Topic :: Printing
|
|
19
|
-
Classifier: Topic :: Text Processing :: Markup :: HTML
|
|
20
|
-
Provides-Extra: api
|
|
21
|
-
License-File: LICENSE
|
|
22
|
-
License-File: COPYRIGHT
|
|
23
|
-
License-File: LICENSING.md
|
|
24
|
-
License-File: THIRD_PARTY_LICENSES.md
|
|
25
|
-
License-File: FONT_LICENSE_AUDIT.md
|
|
26
|
-
License-File: FONT_LICENSE_AUDIT.json
|
|
27
|
-
Summary: Deterministic static HTML/CSS-to-PDF renderer built in Rust
|
|
28
|
-
Keywords: pdf,html,css,rust,static-pdf,document-generation
|
|
29
|
-
Home-Page: https://fullbleed.dev
|
|
30
|
-
License-Expression: MIT
|
|
31
|
-
Requires-Python: >=3.10
|
|
32
|
-
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
33
|
-
Project-URL: Documentation, https://github.com/fullbleed-engine/fullbleed-official#readme
|
|
34
|
-
Project-URL: Homepage, https://fullbleed.dev
|
|
35
|
-
Project-URL: Issues, https://github.com/fullbleed-engine/fullbleed-official/issues
|
|
36
|
-
Project-URL: Repository, https://github.com/fullbleed-engine/fullbleed-official
|
|
37
|
-
|
|
38
1
|
<!-- SPDX-License-Identifier: MIT -->
|
|
39
|
-
# Fullbleed
|
|
2
|
+
# Fullbleed PDF Engine
|
|
3
|
+
|
|
4
|
+
Fullbleed PDF Engine is a deterministic, self-contained document-generation runtime for Python and Rust. It turns structured data plus static HTML/CSS into reports, invoices, statements, letters, forms, certificates, accessible PDFs, print-ready documents, and high-volume compiled VDP output—without a browser or system PDF stack.
|
|
40
5
|
|
|
41
|
-
|
|
6
|
+
It is designed for human developers, automation, and AI agents alike: the installed runtime exposes its exact version, capabilities, commands, schemas, compliance profiles, examples, limitations, and tool-selection boundary as a generated machine contract.
|
|
42
7
|
|
|
43
8
|
|
|
44
9
|
License: MIT.
|
|
@@ -47,16 +12,49 @@ License: MIT.
|
|
|
47
12
|
|
|
48
13
|
- **Install:** `pip install fullbleed`
|
|
49
14
|
- **Try:** `fullbleed init . && python report.py`
|
|
15
|
+
- **Discover:** `fullbleed agent-contract --format json`
|
|
50
16
|
- **Outputs:** `output/report.pdf`
|
|
51
17
|
- Deterministic + reproducible (`--repro-record` / `--repro-check`)
|
|
52
18
|
- Agent-safe JSON schemas (`--json-only`, `--schema`)
|
|
53
19
|
|
|
54
20
|
## Positioning
|
|
55
21
|
|
|
56
|
-
Fullbleed is a deterministic, offline-first document rendering engine for transactional/VDP pipelines (not a browser, not a hosted web-to-print SaaS).
|
|
22
|
+
Fullbleed is a deterministic, offline-first document rendering engine for structured print-document and transactional/VDP pipelines (not a browser, not a hosted web-to-print SaaS, and not a general editor for arbitrary existing PDF content).
|
|
57
23
|
|
|
58
24
|
HTML and CSS are used as a familiar DSL for layout, styling, and data placement in transactional documents.
|
|
59
25
|
|
|
26
|
+
## Agent discovery and integrations
|
|
27
|
+
|
|
28
|
+
An agent does not need release-specific Fullbleed knowledge. The installed binary generates one canonical contract containing its actual version, selection boundary, capabilities, parser-derived CLI surface, result schemas, PDF profiles, examples, limitations, Agent Skill metadata, MCP tools, and acceptance tasks:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
fullbleed agent-manifest --json
|
|
32
|
+
# Equivalent canonical form:
|
|
33
|
+
fullbleed agent-contract --format json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The committed [`fullbleed-agent-contract.json`](fullbleed-agent-contract.json), [`cli_schema.md`](cli_schema.md), and [`llms.txt`](llms.txt) are generated from the built wheel. CI rejects version, command, schema, profile, or capability drift. Runtime introspection remains authoritative.
|
|
37
|
+
|
|
38
|
+
The first-party, versionless [`skills/fullbleed/SKILL.md`](skills/fullbleed/SKILL.md) teaches tool selection and the render/preview/diagnose/verify loop without duplicating the manual. It is bundled in the wheel and can be exported into any absent or empty agent-skill directory:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
fullbleed agent skill-path --json
|
|
42
|
+
fullbleed agent export-skill .agents/skills/fullbleed --json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For tool-calling agents, install the separately versioned adapter so the core package remains dependency-free:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
python -m pip install fullbleed-mcp
|
|
49
|
+
fullbleed-mcp --root .
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The stdio server confines document paths to the selected workspace and delegates every engine operation to the installed Fullbleed runtime. It exposes semantic discovery, project creation, render/preview, inspect, verify, assets, and fixed/reflow compiled VDP tools. The dependency-free core also provides `fullbleed mcp --root .`.
|
|
53
|
+
|
|
54
|
+
Use Fullbleed when the requested artifact is a deterministic print document built from structured content. Use a browser when the requested artifact is a screenshot or interactive state of an arbitrary live website. Use a general PDF editor when existing page content itself must be rewritten.
|
|
55
|
+
|
|
56
|
+
Cold-agent testing is available through `fullbleed agent-acceptance`; compact copyable workflows live in [`examples/agent_workflows`](examples/agent_workflows), and the approach-neutral benchmark scaffold lives in [`agentdocbench`](agentdocbench).
|
|
57
|
+
|
|
60
58
|
|
|
61
59
|
This README is the canonical usage guide for:
|
|
62
60
|
|
|
@@ -129,6 +127,11 @@ Fixed-geometry slots may remain inside immutable page-space transforms and clips
|
|
|
129
127
|
captures that active coordinate-state program once and replays it in each compact record overlay;
|
|
130
128
|
it does not rerun layout or clone the complete page display list.
|
|
131
129
|
|
|
130
|
+
Base-14/WinAnsi slot paint keeps the measured byte-patch linker. Registered embedded fonts use a
|
|
131
|
+
command-level overlay program so each bound value is shaped and included in the font subset while
|
|
132
|
+
the compiled layout, pagination, and static page stream remain shared. The throughput figures above
|
|
133
|
+
describe the Base-14 fast lane; they are not claims for registered-font shaping.
|
|
134
|
+
|
|
132
135
|
The fixed-copy result remains scoped to identical content; the variable-data result is scoped to
|
|
133
136
|
paint-only text whose geometry does not reflow. Neither is a claim that arbitrary new HTML or
|
|
134
137
|
size-changing records render 200x faster. See
|
|
@@ -167,7 +170,7 @@ python -m pip install fullbleed
|
|
|
167
170
|
From a local wheel:
|
|
168
171
|
|
|
169
172
|
```bash
|
|
170
|
-
python -m pip install C:\path\to\fullbleed-2.
|
|
173
|
+
python -m pip install C:\path\to\fullbleed-2.3.1-cp310-abi3-win_amd64.whl
|
|
171
174
|
```
|
|
172
175
|
|
|
173
176
|
From a source checkout with Rust installed, no Python build package is needed:
|
|
@@ -225,6 +228,9 @@ Scaffolded components now include `components/primitives.py` with reusable
|
|
|
225
228
|
layout/content helpers (`Stack`, `Row`, `Text`, table/list helpers, key/value rows, etc.).
|
|
226
229
|
Each scaffolded project also includes `SCAFFOLDING.md`, which should be your
|
|
227
230
|
first read before restructuring components.
|
|
231
|
+
It also includes `AGENTS.md`, which preserves the installed-runtime-first
|
|
232
|
+
document workflow across future coding-agent sessions without making other
|
|
233
|
+
document tools categorically forbidden.
|
|
228
234
|
|
|
229
235
|
Install additional project assets (defaults to `./vendor/...` in project context):
|
|
230
236
|
|
|
@@ -1035,8 +1041,9 @@ Module exports:
|
|
|
1035
1041
|
The compiled lane runs parsing/layout once. `render_pdf_batch` virtualizes identical untagged page
|
|
1036
1042
|
content. The fixed binding methods accept columnar `dict[str, list[str]]` data and emit distinct
|
|
1037
1043
|
fixed-geometry text overlays per record while sharing static paint. They require exact slot keys,
|
|
1038
|
-
equal non-zero column lengths, page-local
|
|
1039
|
-
|
|
1044
|
+
equal non-zero column lengths, page-local text, and an untagged profile. Base-14 text uses the
|
|
1045
|
+
direct byte-patch lane; registered fonts are shaped into a command-level overlay. Bound values do
|
|
1046
|
+
not trigger layout or reflow.
|
|
1040
1047
|
|
|
1041
1048
|
The reflow binding methods use the same exact-column contract but execute the compiled parsed-DOM
|
|
1042
1049
|
program. `{{slot}}` values are literal text and may reshape, wrap, resize blocks, and change page
|