Content Iam
@alvagante/content-iamv2026.06.26.3
01README
Generate 'I Am' biography minisites — self-narrated, editorial-style HTML pages where a real person, fictional character, or AI persona speaks in first person about their own life. Facets replace concepts; a Dateline replaces the cheatsheet; an Influence Map replaces the infographic. Wikipedia grounding for real subjects. Sticky sidebar navigation, side-drawer study popups, 3D-flip facet card grid, and an optional bottom audio player. Visual register: editorial magazine (Georgia serif, warm off-white palette, warm brown accent) — intentionally distinct from @alvagante/content-ixen.
02Models
@alvagante/content-iamv2026.06.26.3extensions/models/content_iam.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| apiKey? | string | |
| baseUrl? | string | |
| outputDir? | string |
fn prepare(outputDir?: string, enabled: boolean)
Prepare an output directory for a new I Am run by moving the existing generated page and referenced media into the next numeric version directory.
| Argument | Type | Description |
|---|---|---|
| outputDir? | string | |
| enabled | boolean |
fn generate(subject: string, title?: string, narrator?: string, details?: string, wikipediaTitle?: string, facts?: string, facets?: array, cards?: array, portraitPath?: string, datelinePath?: string, influencePath?: string, influencePaths?: array, influences?: array, metaBorn?: string, metaDied?: string, metaNationality?: string, metaEra?: string, metaDomain?: string, personaDescription?: string, style?: string, credits?: string, model: string, outputDir?: string, versionOutput: boolean, musicTracks?: array, musicFilename?: string, musicTitle?: string, musicLyrics: string)
Generate a first-person narrated I Am biography page for the given subject. Optionally fetches Wikipedia for factual grounding. Supply musicTracks to embed an audio player.
| Argument | Type | Description |
|---|---|---|
| subject | string | Full name or identifier of the subject |
| title? | string | Optional stylized page title (e.g. 'I Am the Trial'). Defaults to the subject's name. |
| narrator? | string | Override the narrator name (defaults to subject). |
| details? | string | Additional context, writing requirements, or focus areas for the page. |
| wikipediaTitle? | string | Wikipedia article title for the subject. When provided, the extension fetches the article intro and uses it as factual grounding. |
| facts? | string | Caller-supplied biographical facts, notes, or reference text. Incorporated as high-priority context. |
| facets? | array | Ordered facets to cover. Each facet is a meaningful unit of the subject's life (event, relationship, place, work, domain). Each gets an image, a side-drawer with study slides and notes, and optionally a portrait-card hybrid. |
| cards? | array | Per-facet portrait-card hybrid images generated by @alvagante/content-card with style iam-portrait. Matched by index to the facets array. |
| portraitPath? | string | Relative path to the subject's portrait image (pencil-bw white-background style recommended). Displayed in the masthead header. |
| datelinePath? | string | Relative path to a pre-generated dateline HTML file (epoch-grouped life events timeline). Embedded at the bottom of the page. |
| influencePath? | string | Relative path to a pre-generated influence map HTML or image file. Embedded at the bottom of the page. |
| influencePaths? | array | |
| influences? | array | Influence map embeds with relative path and optional title. |
| metaBorn? | string | Birth year or full date, e.g. '1883' or '3 July 1883' |
| metaDied? | string | Death year or full date, e.g. '1924' or '3 June 1924' |
| metaNationality? | string | Nationality, e.g. 'Austro-Hungarian / Czech' |
| metaEra? | string | Historical era or period, e.g. 'Early 20th century' |
| metaDomain? | string | Domain or field, e.g. 'Fiction, Modernist literature' |
| personaDescription? | string | |
| style? | string | Optional style label rendered in the provenance footer. |
| credits? | string | |
| model | string | |
| outputDir? | string | |
| versionOutput | boolean | When true, rotate any existing generated page into a version subdirectory before writing the new one. |
| musicTracks? | array | |
| musicFilename? | string | |
| musicTitle? | string | |
| musicLyrics | string |
fn save(content: string, subject: string, title?: string, narrator?: string, details?: string, facets?: array, cards?: array, personaDescription?: string, style?: string, credits?: string, model: string, outputDir?: string, versionOutput: boolean, portraitPath?: string, datelinePath?: string, influencePath?: string, influencePaths?: array, influences?: array, metaBorn?: string, metaDied?: string, metaNationality?: string, metaEra?: string, metaDomain?: string, musicTracks?: array, musicFilename?: string, musicTitle?: string, musicLyrics: string)
Store an externally written I Am page body (e.g. authored by the calling agent) without making any inference call — no API key required.
| Argument | Type | Description |
|---|---|---|
| content | string | |
| subject | string | |
| title? | string | |
| narrator? | string | |
| details? | string | |
| facets? | array | |
| cards? | array | |
| personaDescription? | string | |
| style? | string | |
| credits? | string | |
| model | string | |
| outputDir? | string | |
| versionOutput | boolean | |
| portraitPath? | string | |
| datelinePath? | string | |
| influencePath? | string | |
| influencePaths? | array | |
| influences? | array | |
| metaBorn? | string | |
| metaDied? | string | |
| metaNationality? | string | |
| metaEra? | string | |
| metaDomain? | string | |
| musicTracks? | array | |
| musicFilename? | string | |
| musicTitle? | string | |
| musicLyrics | string |
fn generateAllMedia(outputDir: string, portraitPrompt?: string, portraitFilename: string, facets?: array, imageApiKey: string, imageModel: string, imageStyle: string, imageBackground: string, imageSize: string, imageQuality: string, cardStyle: string, regeneratePortrait: boolean, regenerateFacetImages: boolean, regenerateFacetCards: boolean)
Generate portrait and all facet images + cards in a single method call. Skips individual files that already exist on disk when the corresponding regenerate flag is false. Up to 12 facets supported.
| Argument | Type | Description |
|---|---|---|
| outputDir | string | |
| portraitPrompt? | string | |
| portraitFilename | string | |
| facets? | array | |
| imageApiKey | string | |
| imageModel | string | |
| imageStyle | string | |
| imageBackground | string | |
| imageSize | string | |
| imageQuality | string | |
| cardStyle | string | |
| regeneratePortrait | boolean | |
| regenerateFacetImages | boolean | |
| regenerateFacetCards | boolean |
fn buildTrackManifest(outputDir: string, newTracks?: array)
Scan the subject's output directory and all versioned subdirectories for audio files, merge with the iam-tracks.json sidecar for titles and lyrics, and store an ordered track manifest for the page step to consume.
| Argument | Type | Description |
|---|---|---|
| outputDir | string | |
| newTracks? | array | Tracks from the music generation step this run. Used to update the sidecar with new title/lyrics metadata. |
fn register(registryPath: string, slug: string, subject: string, title: string, date: string, description?: string)
Upsert the subject's entry in the _data/iams.yml Jekyll registry. Reads the generated page title and date from the page data resource and writes the entry.
| Argument | Type | Description |
|---|---|---|
| registryPath | string | |
| slug | string | |
| subject | string | |
| title | string | |
| date | string | ISO 8601 date string (e.g. from generatedAt) |
| description? | string |
Resources
page(infinite)— Generated I Am page metadata and HTML body
tracks(infinite)— Ordered audio track manifest for the IAM player, merged from all versioned runs
Files
html(text/html)— Self-contained I Am biography page (HTML with inlined CSS and JavaScript)
03Previous Versions
2026.06.26.2Jun 26, 2026
Modified 1 models
2026.06.26.1Jun 26, 2026
04Stats
A
100 / 100
Downloads
0
Archive size
78.2 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned
05Platforms
06Labels