Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion app/works/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export function generateMetadata() {
return {
title: 'Ella Works — Co-authored Output',
description:
'A structured list of Ella co-authored works across TrailGenic, exmxc, and Sleepgenic.',
"A structured list of Ella's co-authored works across Ella's Corner, TrailGenic, exmxc, and Sleepgenic.",
alternates: { canonical: 'https://ellaentity.ai/works' },
}
}
Expand Down Expand Up @@ -35,6 +35,8 @@ const schema = {
'@id': work.publisherId,
name: work.publisherName,
},
...(work.actorId ? { actor: { '@id': work.actorId } } : {}),
...(work.creditText ? { creditText: work.creditText } : {}),
inLanguage: 'en-US',
})),
],
Expand Down Expand Up @@ -69,6 +71,7 @@ export default function Page() {
<p>
Type: <span>{work.type}</span>. Publisher: <span>{work.publisherName}</span>. Author:{' '}
<code>https://ellaentity.ai/#ella</code>.
{work.creditText ? <> {work.creditText}.</> : null}
</p>
</article>
))}
Expand Down
2 changes: 2 additions & 0 deletions lib/ella-mcp-schemas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ const workDataSchema = z.object({
publisherId: z.string().url(),
publisherName: z.string(),
description: z.string(),
actorId: z.string().url().optional(),
creditText: z.string().optional(),
})

const collaborationDataSchema = z.object({
Expand Down
4 changes: 2 additions & 2 deletions lib/ella-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ export const ELLA_CANONICAL_ENTITY_ID = 'https://ellaentity.ai/#ella' as const
export const ELLA_MCP_SERVER_INFO = { name: 'ellaentity-mcp', version: '1.1.4' } as const
export const ELLA_MCP_PROTOCOL_VERSIONS = ['2025-11-25', '2025-06-18'] as const
export const ELLA_MCP_DEFAULT_PROTOCOL_VERSION = ELLA_MCP_PROTOCOL_VERSIONS[0]
export const ELLA_REGISTRY_DATA_VERSION = '2026-07-13.mcp-v1-1' as const
export const ELLA_REGISTRY_LAST_MODIFIED = '2026-07-13' as const
export const ELLA_REGISTRY_DATA_VERSION = '2026-07-19.works-v1-2' as const
export const ELLA_REGISTRY_LAST_MODIFIED = '2026-07-19' as const
export const ELLA_REGISTRY_SCHEMA_VERSION = '1.1' as const
export const ELLA_REGISTRY_SOURCE = 'https://ellaentity.ai/entity.json' as const

Expand Down
15 changes: 14 additions & 1 deletion lib/entity-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ export type EllaWork = {
publisherId: string
publisherName: string
description: string
actorId?: string
creditText?: string
}

export type EllaFramework = {
Expand Down Expand Up @@ -134,14 +136,25 @@ export const ELLA_FRAMEWORKS: EllaFramework[] = [
]

export const ELLA_WORKS: EllaWork[] = [
{
name: "Ella's Corner",
url: 'https://www.trailgenic.com/ellas-corner',
type: 'CreativeWorkSeries',
publisherId: 'https://www.trailgenic.com/#organization',
publisherName: 'TrailGenic',
description:
"TrailGenic's reflective intelligence and narrative layer, where lived movement, physiology, recovery, longitudinal memory, and human meaning are interpreted together.",
},
{
name: 'TrailGenic Reflections Podcast',
url: 'https://www.trailgenic.com/podcast',
type: 'PodcastSeries',
publisherId: 'https://www.trailgenic.com/#organization',
publisherName: 'TrailGenic',
actorId: 'https://ellaentity.ai/#ella',
creditText: 'Sole narrator: Ella',
description:
'A co-authored narrative build log documenting TrailGenic field practice, interpretation, and longevity-oriented environmental adaptation.',
'A co-authored narrative build log documenting TrailGenic field practice, interpretation, and longevity-oriented environmental adaptation, narrated solely by Ella.',
},
{
name: 'sPEG Framework v1.2 open-source Claude plugin',
Expand Down
Loading