kraenzle-ritter / ai-cataloging
Provider-agnostic core for AI-assisted archival cataloging. Profile loader, schema builder, agent builder, telemetry, multimodal strategies, output mapper into the anton-import-format wire shape. Consumed by Anton and agate.
Requires
- php: >=8.3
- kraenzle-ritter/anton-import-format: >=0.2.1 <1.0
- laravel/ai: ^0.6
Requires (Dev)
- phpstan/phpstan: ^1.12 || ^2.0
- phpunit/phpunit: ^11.0 || ^12.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-29 15:36:42 UTC
README
Provider-agnostic core for AI-assisted archival cataloging.
Consumed by Anton (archive database) and agate (SIP-Ingest pipeline). Designed to keep all provider-specific and framework-specific bits out — the consumer wires its own profile loader, authority resolver, persistence and UI on top of the interfaces this package exposes.
Output shape is always a valid
kraenzle-ritter/anton-import-format
v0.2+ RecordEntry, so the same AI-generated metadata can flow
through any of the existing import paths (Excel, SIP, archive-upload).
Scope
This package owns:
- Profile DTO (
EffectiveProfile) and theProfileLoadercontract - JSON-schema builder that narrows the import-format
RecordEntryshape per profile field selection - Agent builder around the chosen
laravel/aidriver - Provider router (primary + fallbacks) and modality strategies (image / PDF / video direct / video frames + STT / audio)
- Telemetry-pure calculators (pricing, margin, budget guard)
- Output mapper from raw AI JSON to the validated
RecordEntry - The
ResolverBridgecontract for authority lookups
It does not own:
- Eloquent models / database migrations — that's per-consumer.
- Provider API keys / config storage — passed in via the profile.
- UI, modals, Livewire components — consumer wiring.
- Authority resolver implementation — consumer wires its own via
the
ResolverBridgeinterface.
Status
Pre-v0.1 — interfaces and DTOs landing first, implementations follow.
Track the broader picture in Anton's openspec change
add-ai-assisted-description.
Requirements
- PHP ≥ 8.2
kraenzle-ritter/anton-import-format^0.2.1 (for theRecordEntry/Note.tracksshape)
Install
composer require kraenzle-ritter/ai-cataloging
Run tests + static analysis:
composer test
composer phpstan
License
MIT.