Search by

kraenzle-ritter / ai-cataloging

ottosmops

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.

Package info

github.com/kraenzle-ritter/ai-cataloging

pkg:composer/kraenzle-ritter/ai-cataloging

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-10-29 15:36 UTC

This package is auto-updated.

Last update: 2026-10-29 15:36:42 UTC


README

A raven, drawn in the style of a wood engraving

CI License PHP Version

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 the ProfileLoader contract
  • JSON-schema builder that narrows the import-format RecordEntry shape per profile field selection
  • Agent builder around the chosen laravel/ai driver
  • 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 ResolverBridge contract 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 ResolverBridge interface.

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 the RecordEntry / Note.tracks shape)

Install

composer require kraenzle-ritter/ai-cataloging

Run tests + static analysis:

composer test
composer phpstan

License

MIT.