@almadar/std 3.10.0 → 3.12.0

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.
Files changed (41) hide show
  1. package/dist/behaviors/exports-reader.d.ts +4 -31
  2. package/dist/behaviors/exports-reader.js +21267 -40
  3. package/dist/behaviors/exports-reader.js.map +1 -1
  4. package/dist/behaviors/functions/index.js.map +1 -1
  5. package/dist/behaviors/index.js +1042 -617
  6. package/dist/behaviors/index.js.map +1 -1
  7. package/dist/behaviors/query.d.ts +6 -5
  8. package/dist/behaviors/query.js +21293 -29
  9. package/dist/behaviors/query.js.map +1 -1
  10. package/dist/behaviors/types.d.ts +7 -14
  11. package/dist/behaviors/types.js.map +1 -1
  12. package/dist/index.d.ts +2 -2
  13. package/dist/index.js +1367 -616
  14. package/dist/index.js.map +1 -1
  15. package/dist/modules/agent.d.ts +21 -0
  16. package/dist/modules/agent.js +322 -0
  17. package/dist/modules/agent.js.map +1 -0
  18. package/dist/modules/array.d.ts +1 -1
  19. package/dist/modules/async.d.ts +1 -1
  20. package/dist/modules/contract.d.ts +1 -1
  21. package/dist/modules/data.d.ts +1 -1
  22. package/dist/modules/format.d.ts +1 -1
  23. package/dist/modules/graph.d.ts +1 -1
  24. package/dist/modules/index.d.ts +2 -1
  25. package/dist/modules/index.js +320 -1
  26. package/dist/modules/index.js.map +1 -1
  27. package/dist/modules/math.d.ts +1 -1
  28. package/dist/modules/nn.d.ts +1 -1
  29. package/dist/modules/object.d.ts +1 -1
  30. package/dist/modules/os.d.ts +1 -1
  31. package/dist/modules/prob.d.ts +1 -1
  32. package/dist/modules/str.d.ts +1 -1
  33. package/dist/modules/tensor.d.ts +1 -1
  34. package/dist/modules/time.d.ts +1 -1
  35. package/dist/modules/train.d.ts +1 -1
  36. package/dist/modules/validate.d.ts +1 -1
  37. package/dist/registry.d.ts +1 -1
  38. package/dist/registry.js +321 -2
  39. package/dist/registry.js.map +1 -1
  40. package/dist/{types-DOeGXRCm.d.ts → types-BjP5nVQd.d.ts} +3 -3
  41. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../behaviors/exports-reader.ts","../../behaviors/query.ts"],"names":["__dirname","dirname","fileURLToPath","resolve","readFileSync"],"mappings":"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","file":"query.js","sourcesContent":["/**\n * Exports Reader\n *\n * Provides programmatic access to the golden .orb files in behaviors/exports/.\n * Other packages import these functions instead of reading the filesystem directly.\n *\n * Directory structure mirrors functions/:\n * exports/atoms/*.orb\n * exports/molecules/*.orb\n * exports/organisms/*.orb\n *\n * @packageDocumentation\n */\n\nimport { readdirSync, readFileSync, existsSync } from 'fs';\nimport { resolve, dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport type { BehaviorSchema } from './types.js';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst EXPORTS_DIR = resolve(__dirname, 'exports');\nconst LEVEL_DIRS = ['atoms', 'molecules', 'organisms'] as const;\n\nexport type BehaviorLevel = typeof LEVEL_DIRS[number];\n\n/** Read all .orb files from a single directory. */\nfunction readOrbDir(dir: string): Array<{ name: string; path: string }> {\n try {\n return readdirSync(dir)\n .filter((f: string) => f.endsWith('.orb'))\n .map((f: string) => ({ name: f.replace('.orb', ''), path: resolve(dir, f) }));\n } catch {\n return [];\n }\n}\n\n/** Read all .orb entries across atoms/molecules/organisms. */\nfunction readAllOrbEntries(): Array<{ name: string; path: string; level: BehaviorLevel }> {\n const entries: Array<{ name: string; path: string; level: BehaviorLevel }> = [];\n for (const level of LEVEL_DIRS) {\n for (const entry of readOrbDir(resolve(EXPORTS_DIR, level))) {\n entries.push({ ...entry, level });\n }\n }\n return entries;\n}\n\n/**\n * List all available golden behavior names (without .orb extension).\n */\nexport function getAllBehaviorNames(): string[] {\n return readAllOrbEntries().map(e => e.name);\n}\n\n/**\n * Load all golden .orb files as BehaviorSchema objects.\n * Sets `.name` to the behavior identifier (e.g., \"std-list\") from the filename,\n * overriding the orbital name inside the .orb file.\n */\nexport function getAllBehaviors(): BehaviorSchema[] {\n return readAllOrbEntries().map(e => {\n const schema = JSON.parse(readFileSync(e.path, 'utf-8')) as BehaviorSchema;\n schema.name = e.name;\n return schema;\n });\n}\n\n/**\n * Load all golden .orb files for a specific level (atoms, molecules, organisms).\n */\nexport function getBehaviorsByLevel(level: BehaviorLevel): BehaviorSchema[] {\n return readOrbDir(resolve(EXPORTS_DIR, level)).map(e =>\n JSON.parse(readFileSync(e.path, 'utf-8')) as BehaviorSchema\n );\n}\n\n/**\n * Load a single golden .orb file by behavior name.\n * Searches across all levels. Returns null if not found.\n */\nexport function loadGoldenOrb(behaviorName: string): BehaviorSchema | null {\n for (const level of LEVEL_DIRS) {\n const orbPath = resolve(EXPORTS_DIR, level, `${behaviorName}.orb`);\n if (existsSync(orbPath)) {\n try {\n return JSON.parse(readFileSync(orbPath, 'utf-8')) as BehaviorSchema;\n } catch {\n return null;\n }\n }\n }\n return null;\n}\n\n/**\n * Check if a golden .orb file exists for the given behavior name.\n */\nexport function hasGoldenOrb(behaviorName: string): boolean {\n return LEVEL_DIRS.some(level =>\n existsSync(resolve(EXPORTS_DIR, level, `${behaviorName}.orb`))\n );\n}\n\n/**\n * Get a single behavior by name.\n * Alias for loadGoldenOrb for compatibility.\n */\nexport function getBehavior(behaviorName: string): BehaviorSchema | null {\n return loadGoldenOrb(behaviorName);\n}\n","/**\n * Behavior Registry Query Helpers\n *\n * Programmatic access to behaviors-registry.json for filtering,\n * searching, and summarizing behaviors. Used by @almadar/skills\n * to compose agent prompts dynamically.\n *\n * @packageDocumentation\n */\n\nimport { readFileSync } from 'fs';\nimport { resolve, dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport { loadGoldenOrb } from './exports-reader.js';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst REGISTRY_PATH = resolve(__dirname, 'behaviors-registry.json');\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface RegistryEntry {\n name: string;\n level: 'atom' | 'molecule' | 'organism';\n family: string;\n layer: string;\n description: string;\n statePattern: string;\n complexity: { states: number; events: number; transitions: number };\n defaultEntity: {\n name: string;\n persistence: string;\n fields: Array<{ name: string; type: string; default?: string }>;\n };\n defaultLabels: {\n title: string;\n entitySingular: string;\n entityPlural: string;\n };\n composableWith: string[];\n connectableEvents: string[];\n eventPayloads: Record<string, Array<{ name: string; type: string; required: boolean }>>;\n}\n\nexport interface BehaviorSummary {\n name: string;\n level: string;\n description: string;\n states: string[];\n events: string[];\n slots: string[];\n patterns: string[];\n complexity: { states: number; events: number; transitions: number };\n composableWith: string[];\n}\n\n// ============================================================================\n// Registry Cache\n// ============================================================================\n\nlet registryCache: Record<string, RegistryEntry> | null = null;\n\n/**\n * Read and cache the behavior registry.\n */\nexport function getBehaviorRegistry(): Record<string, RegistryEntry> {\n if (registryCache) return registryCache;\n try {\n const raw = JSON.parse(readFileSync(REGISTRY_PATH, 'utf-8')) as {\n behaviors: Record<string, RegistryEntry>;\n };\n registryCache = raw.behaviors;\n return registryCache;\n } catch {\n return {};\n }\n}\n\n// ============================================================================\n// Query Functions\n// ============================================================================\n\n/**\n * Filter behaviors by domain. Matches against layer (primary) and family (fallback).\n */\nexport function getBehaviorsByDomain(domain: string): RegistryEntry[] {\n const registry = getBehaviorRegistry();\n const lower = domain.toLowerCase();\n return Object.values(registry).filter((b) => {\n return b.layer.toLowerCase() === lower ||\n b.layer.toLowerCase().includes(lower) ||\n b.family.toLowerCase() === lower ||\n b.family.toLowerCase().includes(lower);\n });\n}\n\n/**\n * Filter behaviors by connectable operations (events).\n * Returns behaviors sorted by match count (most matching ops first).\n */\nexport function getBehaviorsByOperations(ops: string[]): RegistryEntry[] {\n const registry = getBehaviorRegistry();\n const upperOps = ops.map(o => o.toUpperCase());\n\n const scored = Object.values(registry).map((b) => {\n const matches = upperOps.filter(op =>\n b.connectableEvents.some(e => e.toUpperCase() === op || e.toUpperCase().includes(op))\n );\n return { entry: b, score: matches.length };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Fuzzy search across name, description, family, layer, and entity name.\n */\nexport function searchBehaviors(query: string): RegistryEntry[] {\n const registry = getBehaviorRegistry();\n const tokens = query.toLowerCase().split(/\\s+/).filter(Boolean);\n\n const scored = Object.values(registry).map((b) => {\n const searchText = [\n b.name,\n b.description,\n b.family,\n b.layer,\n b.defaultEntity.name,\n b.statePattern,\n ].join(' ').toLowerCase();\n\n const score = tokens.filter(t => searchText.includes(t)).length;\n return { entry: b, score };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Get a compact summary of a behavior including slots and patterns from the .orb file.\n */\nexport function getBehaviorSummary(name: string): BehaviorSummary | null {\n const registry = getBehaviorRegistry();\n const entry = registry[name];\n if (!entry) return null;\n\n // Base data from registry\n const summary: BehaviorSummary = {\n name: entry.name,\n level: entry.level,\n description: entry.description,\n states: entry.statePattern.split(', ').filter(Boolean),\n events: entry.connectableEvents,\n slots: [],\n patterns: [],\n complexity: entry.complexity,\n composableWith: entry.composableWith.slice(0, 10),\n };\n\n // Enrich with slots and patterns from the actual .orb file\n try {\n const orb = loadGoldenOrb(name);\n if (orb) {\n const slots = new Set<string>();\n const patterns = new Set<string>();\n extractSlotsAndPatterns(orb, slots, patterns);\n summary.slots = Array.from(slots);\n summary.patterns = Array.from(patterns);\n }\n } catch {\n // .orb load failed, return registry-only data\n }\n\n return summary;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Walk an object recursively to extract render-ui slots and pattern types.\n */\nfunction extractSlotsAndPatterns(\n obj: unknown,\n slots: Set<string>,\n patterns: Set<string>,\n): void {\n if (Array.isArray(obj)) {\n // Check for render-ui effect: [\"render-ui\", slotName, uiTree]\n if (obj.length >= 3 && obj[0] === 'render-ui' && typeof obj[1] === 'string') {\n slots.add(obj[1]);\n if (obj[2] && typeof obj[2] === 'object') {\n extractPatternTypes(obj[2], patterns);\n }\n }\n for (const item of obj) {\n extractSlotsAndPatterns(item, slots, patterns);\n }\n } else if (obj && typeof obj === 'object') {\n for (const value of Object.values(obj)) {\n extractSlotsAndPatterns(value, slots, patterns);\n }\n }\n}\n\n/**\n * Walk a render-ui tree to collect all pattern type values.\n */\nfunction extractPatternTypes(node: unknown, patterns: Set<string>): void {\n if (!node || typeof node !== 'object') return;\n const obj = node as Record<string, unknown>;\n if (typeof obj.type === 'string') {\n patterns.add(obj.type);\n }\n if (Array.isArray(obj.children)) {\n for (const child of obj.children) {\n extractPatternTypes(child, patterns);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../behaviors/functions/index.ts","../../behaviors/functions/utils.ts","../../behaviors/functions/atoms/std-browse.ts","../../behaviors/functions/atoms/std-modal.ts","../../behaviors/functions/atoms/std-confirmation.ts","../../behaviors/functions/atoms/std-search.ts","../../behaviors/functions/atoms/std-filter.ts","../../behaviors/functions/atoms/std-sort.ts","../../behaviors/functions/atoms/std-pagination.ts","../../behaviors/functions/atoms/std-drawer.ts","../../behaviors/functions/atoms/std-notification.ts","../../behaviors/functions/atoms/std-timer.ts","../../behaviors/functions/atoms/std-tabs.ts","../../behaviors/functions/atoms/std-loading.ts","../../behaviors/functions/atoms/std-selection.ts","../../behaviors/functions/atoms/std-undo.ts","../../behaviors/functions/atoms/std-input.ts","../../behaviors/functions/atoms/std-wizard.ts","../../behaviors/functions/atoms/std-display.ts","../../behaviors/functions/atoms/std-async.ts","../../behaviors/functions/atoms/std-combat.ts","../../behaviors/functions/atoms/std-gameflow.ts","../../behaviors/functions/atoms/std-movement.ts","../../behaviors/functions/atoms/std-quest.ts","../../behaviors/functions/atoms/std-overworld.ts","../../behaviors/functions/atoms/std-circuit-breaker.ts","../../behaviors/functions/atoms/std-cache-aside.ts","../../behaviors/functions/atoms/std-score.ts","../../behaviors/functions/atoms/std-calendar.ts","../../behaviors/functions/atoms/std-gallery.ts","../../behaviors/functions/atoms/std-flip-card.ts","../../behaviors/functions/atoms/std-rating.ts","../../behaviors/functions/atoms/std-upload.ts","../../behaviors/functions/atoms/std-theme.ts","../../behaviors/functions/atoms/std-text-effects.ts","../../behaviors/functions/atoms/std-collision.ts","../../behaviors/functions/atoms/std-physics2d.ts","../../behaviors/functions/atoms/std-rate-limiter.ts","../../behaviors/functions/atoms/std-game-hud.ts","../../behaviors/functions/atoms/std-score-board.ts","../../behaviors/functions/atoms/std-game-menu.ts","../../behaviors/functions/atoms/std-game-over-screen.ts","../../behaviors/functions/atoms/std-dialogue-box.ts","../../behaviors/functions/atoms/std-inventory-panel.ts","../../behaviors/functions/atoms/std-combat-log.ts","../../behaviors/functions/atoms/std-sprite.ts","../../behaviors/functions/atoms/std-game-audio.ts","../../behaviors/functions/atoms/std-isometric-canvas.ts","../../behaviors/functions/atoms/std-platformer-canvas.ts","../../behaviors/functions/atoms/std-simulation-canvas.ts","../../behaviors/functions/atoms/std-game-canvas-2d.ts","../../behaviors/functions/atoms/std-game-canvas-3d.ts","../../behaviors/functions/molecules/std-list.ts","../../behaviors/functions/molecules/std-cart.ts","../../behaviors/functions/molecules/std-detail.ts","../../behaviors/functions/molecules/std-inventory.ts","../../behaviors/functions/molecules/std-messaging.ts","../../behaviors/functions/molecules/std-geospatial.ts","../../behaviors/functions/molecules/std-quiz.ts","../../behaviors/functions/molecules/std-form-advanced.ts","../../behaviors/functions/molecules/std-turn-based-battle.ts","../../behaviors/functions/molecules/std-platformer-game.ts","../../behaviors/functions/molecules/std-puzzle-game.ts","../../behaviors/functions/molecules/std-builder-game.ts","../../behaviors/functions/molecules/std-classifier-game.ts","../../behaviors/functions/molecules/std-sequencer-game.ts","../../behaviors/functions/molecules/std-debugger-game.ts","../../behaviors/functions/molecules/std-negotiator-game.ts","../../behaviors/functions/molecules/std-simulator-game.ts","../../behaviors/functions/molecules/std-event-handler-game.ts","../../behaviors/functions/ml/molecules/std-classifier.ts","../../behaviors/functions/ml/molecules/std-trainer.ts","../../behaviors/functions/ml/molecules/std-rl-agent.ts","../../behaviors/functions/ml/molecules/std-graph-classifier.ts","../../behaviors/functions/ml/molecules/std-text-classifier.ts","../../behaviors/functions/ml/molecules/std-autoregressive.ts","../../behaviors/functions/molecules/std-service-payment-flow.ts","../../behaviors/functions/molecules/std-service-notification-hub.ts","../../behaviors/functions/molecules/std-service-content-pipeline.ts","../../behaviors/functions/molecules/std-service-devops-toolkit.ts","../../behaviors/functions/molecules/std-service-custom-api-tester.ts","../../behaviors/functions/views/domain-views.ts","../../behaviors/functions/layout.ts","../../behaviors/functions/organisms/std-social-feed.ts","../../behaviors/functions/organisms/std-lms.ts","../../behaviors/functions/organisms/std-crm.ts","../../behaviors/functions/organisms/std-hr-portal.ts","../../behaviors/functions/organisms/std-helpdesk.ts","../../behaviors/functions/organisms/std-ecommerce.ts","../../behaviors/functions/organisms/std-healthcare.ts","../../behaviors/functions/organisms/std-cms.ts","../../behaviors/functions/organisms/std-project-manager.ts","../../behaviors/functions/organisms/std-booking-system.ts","../../behaviors/functions/organisms/std-devops-dashboard.ts","../../behaviors/functions/organisms/std-cicd-pipeline.ts","../../behaviors/functions/organisms/std-api-gateway.ts","../../behaviors/functions/organisms/std-rpg-game.ts","../../behaviors/functions/organisms/std-platformer-app.ts","../../behaviors/functions/organisms/std-puzzle-app.ts","../../behaviors/functions/organisms/std-strategy-game.ts","../../behaviors/functions/organisms/std-arcade-game.ts","../../behaviors/functions/organisms/std-coding-academy.ts","../../behaviors/functions/organisms/std-stem-lab.ts","../../behaviors/functions/organisms/std-logic-training.ts","../../behaviors/functions/atoms/std-service-oauth.ts","../../behaviors/functions/organisms/std-service-marketplace.ts","../../behaviors/functions/atoms/std-service-redis.ts","../../behaviors/functions/atoms/std-service-storage.ts","../../behaviors/functions/atoms/std-service-custom-bearer.ts","../../behaviors/functions/organisms/std-service-research-assistant.ts","../../behaviors/functions/organisms/std-iot-dashboard.ts","../../behaviors/functions/organisms/std-realtime-chat.ts","../../behaviors/functions/organisms/std-finance-tracker.ts","../../behaviors/functions/organisms/std-trading-dashboard.ts","../../behaviors/functions/atoms/std-validate-on-save.ts","../../behaviors/functions/atoms/std-service-email.ts","../../behaviors/functions/atoms/std-service-stripe.ts","../../behaviors/functions/atoms/std-service-twilio.ts","../../behaviors/functions/atoms/std-service-github.ts","../../behaviors/functions/atoms/std-service-youtube.ts","../../behaviors/functions/atoms/std-service-llm.ts","../../behaviors/functions/atoms/std-service-custom-header.ts","../../behaviors/functions/atoms/std-service-custom-query.ts","../../behaviors/functions/atoms/std-service-custom-noauth.ts","../../behaviors/exports-reader.ts","../../behaviors/query.ts"],"names":["compose","ensureIdField","extractTrait","makeEntity","makeOrbital","makePage","plural","resolve","buildEntity","buildTrait","buildPage","resultsView","ef","errorView","completeView","detailContent","DEFAULT_APPOINTMENT_FIELDS","DEFAULT_PRODUCT_FIELDS","DEFAULT_ORDER_FIELDS"],"mappings":"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","file":"query.js","sourcesContent":["/**\n * Behavior Functions\n *\n * Pure functions that return OrbitalDefinitions.\n * Atoms: self-contained, irreducible state machines.\n * Molecules: compose atoms via extractTrait + shared event bus.\n * Organisms: compose atoms/molecules via connect/compose/pipe.\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Atoms: UI building blocks (used by molecules)\n// ============================================================================\n\nexport { stdBrowse, stdBrowseEntity, stdBrowseTrait, stdBrowsePage, type StdBrowseParams } from './atoms/std-browse.js';\nexport { stdModal, stdModalEntity, stdModalTrait, stdModalPage, type StdModalParams } from './atoms/std-modal.js';\nexport { stdConfirmation, stdConfirmationEntity, stdConfirmationTrait, stdConfirmationPage, type StdConfirmationParams } from './atoms/std-confirmation.js';\nexport { stdSearch, stdSearchEntity, stdSearchTrait, stdSearchPage, type StdSearchParams } from './atoms/std-search.js';\nexport { stdFilter, stdFilterEntity, stdFilterTrait, stdFilterPage, type StdFilterParams } from './atoms/std-filter.js';\nexport { stdSort, stdSortEntity, stdSortTrait, stdSortPage, type StdSortParams } from './atoms/std-sort.js';\nexport { stdPagination, stdPaginationEntity, stdPaginationTrait, stdPaginationPage, type StdPaginationParams } from './atoms/std-pagination.js';\nexport { stdDrawer, stdDrawerEntity, stdDrawerTrait, stdDrawerPage, type StdDrawerParams } from './atoms/std-drawer.js';\nexport { stdNotification, stdNotificationEntity, stdNotificationTrait, stdNotificationPage, type StdNotificationParams } from './atoms/std-notification.js';\nexport { stdTimer, stdTimerEntity, stdTimerTrait, stdTimerPage, type StdTimerParams } from './atoms/std-timer.js';\nexport { stdTabs, stdTabsEntity, stdTabsTrait, stdTabsPage, type StdTabsParams } from './atoms/std-tabs.js';\nexport { stdLoading, stdLoadingEntity, stdLoadingTrait, stdLoadingPage, type StdLoadingParams } from './atoms/std-loading.js';\nexport { stdSelection, stdSelectionEntity, stdSelectionTrait, stdSelectionPage, type StdSelectionParams } from './atoms/std-selection.js';\nexport { stdUndo, stdUndoEntity, stdUndoTrait, stdUndoPage, type StdUndoParams } from './atoms/std-undo.js';\nexport { stdInput, stdInputEntity, stdInputTrait, stdInputPage, type StdInputParams } from './atoms/std-input.js';\n\n// ============================================================================\n// Atoms: Domain-specific (self-contained, not decomposable)\n// ============================================================================\n\nexport { stdWizard, stdWizardEntity, stdWizardTrait, stdWizardPage, type StdWizardParams } from './atoms/std-wizard.js';\nexport { stdDisplay, stdDisplayEntity, stdDisplayTrait, stdDisplayPage, type StdDisplayParams } from './atoms/std-display.js';\nexport { stdAsync, stdAsyncEntity, stdAsyncTrait, stdAsyncPage, type StdAsyncParams } from './atoms/std-async.js';\nexport { stdCombat, stdCombatEntity, stdCombatTrait, stdCombatPage, type StdCombatParams } from './atoms/std-combat.js';\nexport { stdGameflow, stdGameflowEntity, stdGameflowTrait, stdGameflowPage, type StdGameflowParams } from './atoms/std-gameflow.js';\nexport { stdMovement, stdMovementEntity, stdMovementTrait, stdMovementPage, type StdMovementParams } from './atoms/std-movement.js';\nexport { stdQuest, stdQuestEntity, stdQuestTrait, stdQuestPage, type StdQuestParams } from './atoms/std-quest.js';\nexport { stdOverworld, stdOverworldEntity, stdOverworldTrait, stdOverworldPage, type StdOverworldParams } from './atoms/std-overworld.js';\nexport { stdCircuitBreaker, stdCircuitBreakerEntity, stdCircuitBreakerTrait, stdCircuitBreakerPage, type StdCircuitBreakerParams } from './atoms/std-circuit-breaker.js';\nexport { stdCacheAside, stdCacheAsideEntity, stdCacheAsideTrait, stdCacheAsidePage, type StdCacheAsideParams } from './atoms/std-cache-aside.js';\nexport { stdScore, stdScoreEntity, stdScoreTrait, stdScorePage, type StdScoreParams } from './atoms/std-score.js';\nexport { stdCalendar, stdCalendarEntity, stdCalendarTrait, stdCalendarPage, type StdCalendarParams } from './atoms/std-calendar.js';\nexport { stdGallery, stdGalleryEntity, stdGalleryTrait, stdGalleryPage, type StdGalleryParams } from './atoms/std-gallery.js';\nexport { stdFlipCard, stdFlipCardEntity, stdFlipCardTrait, stdFlipCardPage, type StdFlipCardParams } from './atoms/std-flip-card.js';\nexport { stdRating, stdRatingEntity, stdRatingTrait, stdRatingPage, type StdRatingParams } from './atoms/std-rating.js';\nexport { stdUpload, stdUploadEntity, stdUploadTrait, stdUploadPage, type StdUploadParams } from './atoms/std-upload.js';\nexport { stdTheme, stdThemeEntity, stdThemeTrait, stdThemePage, type StdThemeParams } from './atoms/std-theme.js';\nexport { stdTextEffects, stdTextEffectsEntity, stdTextEffectsTrait, stdTextEffectsPage, type StdTextEffectsParams } from './atoms/std-text-effects.js';\nexport { stdCollision, stdCollisionEntity, stdCollisionTrait, stdCollisionPage, type StdCollisionParams } from './atoms/std-collision.js';\nexport { stdPhysics2d, stdPhysics2dEntity, stdPhysics2dTrait, stdPhysics2dPage, type StdPhysics2dParams } from './atoms/std-physics2d.js';\nexport { stdRateLimiter, stdRateLimiterEntity, stdRateLimiterTrait, stdRateLimiterPage, type StdRateLimiterParams } from './atoms/std-rate-limiter.js';\n\n// ============================================================================\n// Atoms: Game UI patterns\n// ============================================================================\n\nexport { stdGameHud, stdGameHudEntity, stdGameHudTrait, stdGameHudPage, type StdGameHudParams } from './atoms/std-game-hud.js';\nexport { stdScoreBoard, stdScoreBoardEntity, stdScoreBoardTrait, stdScoreBoardPage, type StdScoreBoardParams } from './atoms/std-score-board.js';\nexport { stdGameMenu, stdGameMenuEntity, stdGameMenuTrait, stdGameMenuPage, type StdGameMenuParams } from './atoms/std-game-menu.js';\nexport { stdGameOverScreen, stdGameOverScreenEntity, stdGameOverScreenTrait, stdGameOverScreenPage, type StdGameOverScreenParams } from './atoms/std-game-over-screen.js';\nexport { stdDialogueBox, stdDialogueBoxEntity, stdDialogueBoxTrait, stdDialogueBoxPage, type StdDialogueBoxParams } from './atoms/std-dialogue-box.js';\nexport { stdInventoryPanel, stdInventoryPanelEntity, stdInventoryPanelTrait, stdInventoryPanelPage, type StdInventoryPanelParams } from './atoms/std-inventory-panel.js';\nexport { stdCombatLog, stdCombatLogEntity, stdCombatLogTrait, stdCombatLogPage, type StdCombatLogParams } from './atoms/std-combat-log.js';\nexport { stdSprite, stdSpriteEntity, stdSpriteTrait, stdSpritePage, type StdSpriteParams } from './atoms/std-sprite.js';\nexport { stdGameAudio, stdGameAudioEntity, stdGameAudioTrait, stdGameAudioPage, type StdGameAudioParams } from './atoms/std-game-audio.js';\n\n// ============================================================================\n// Atoms: Game canvas patterns\n// ============================================================================\n\nexport { stdIsometricCanvas, stdIsometricCanvasEntity, stdIsometricCanvasTrait, stdIsometricCanvasPage, type StdIsometricCanvasParams } from './atoms/std-isometric-canvas.js';\nexport { stdPlatformerCanvas, stdPlatformerCanvasEntity, stdPlatformerCanvasTrait, stdPlatformerCanvasPage, type StdPlatformerCanvasParams } from './atoms/std-platformer-canvas.js';\nexport { stdSimulationCanvas, stdSimulationCanvasEntity, stdSimulationCanvasTrait, stdSimulationCanvasPage, type StdSimulationCanvasParams } from './atoms/std-simulation-canvas.js';\nexport { stdGameCanvas2d, stdGameCanvas2dEntity, stdGameCanvas2dTrait, stdGameCanvas2dPage, type StdGameCanvas2dParams } from './atoms/std-game-canvas-2d.js';\nexport { stdGameCanvas3d, stdGameCanvas3dEntity, stdGameCanvas3dTrait, stdGameCanvas3dPage, type StdGameCanvas3dParams } from './atoms/std-game-canvas-3d.js';\n\n// ============================================================================\n// Molecules (compose atoms)\n// ============================================================================\n\nexport { stdList, stdListEntity, stdListTrait, stdListPage, type StdListParams } from './molecules/std-list.js';\nexport { stdCart, stdCartEntity, stdCartTrait, stdCartPage, type StdCartParams } from './molecules/std-cart.js';\nexport { stdDetail, stdDetailEntity, stdDetailTrait, stdDetailPage, type StdDetailParams } from './molecules/std-detail.js';\nexport { stdInventory, stdInventoryEntity, stdInventoryTrait, stdInventoryPage, type StdInventoryParams } from './molecules/std-inventory.js';\nexport { stdMessaging, stdMessagingEntity, stdMessagingTrait, stdMessagingPage, type StdMessagingParams } from './molecules/std-messaging.js';\nexport { stdGeospatial, stdGeospatialEntity, stdGeospatialTrait, stdGeospatialPage, type StdGeospatialParams } from './molecules/std-geospatial.js';\nexport { stdQuiz, stdQuizEntity, stdQuizTrait, stdQuizPage, type StdQuizParams } from './molecules/std-quiz.js';\nexport { stdFormAdvanced, stdFormAdvancedEntity, stdFormAdvancedTrait, stdFormAdvancedPage, type StdFormAdvancedParams } from './molecules/std-form-advanced.js';\n\n// Molecules: Game genres\nexport { stdTurnBasedBattle, stdTurnBasedBattleEntity, stdTurnBasedBattleTrait, stdTurnBasedBattlePage, type StdTurnBasedBattleParams } from './molecules/std-turn-based-battle.js';\nexport { stdPlatformerGame, stdPlatformerGameEntity, stdPlatformerGameTrait, stdPlatformerGamePage, type StdPlatformerGameParams } from './molecules/std-platformer-game.js';\nexport { stdPuzzleGame, stdPuzzleGameEntity, stdPuzzleGameTrait, stdPuzzleGamePage, type StdPuzzleGameParams } from './molecules/std-puzzle-game.js';\n\n// Molecules: Educational games (board-based)\nexport { stdBuilderGame, stdBuilderGameEntity, stdBuilderGameTrait, stdBuilderGamePage, type StdBuilderGameParams } from './molecules/std-builder-game.js';\nexport { stdClassifierGame, stdClassifierGameEntity, stdClassifierGameTrait, stdClassifierGamePage, type StdClassifierGameParams } from './molecules/std-classifier-game.js';\nexport { stdSequencerGame, stdSequencerGameEntity, stdSequencerGameTrait, stdSequencerGamePage, type StdSequencerGameParams } from './molecules/std-sequencer-game.js';\nexport { stdDebuggerGame, stdDebuggerGameEntity, stdDebuggerGameTrait, stdDebuggerGamePage, type StdDebuggerGameParams } from './molecules/std-debugger-game.js';\nexport { stdNegotiatorGame, stdNegotiatorGameEntity, stdNegotiatorGameTrait, stdNegotiatorGamePage, type StdNegotiatorGameParams } from './molecules/std-negotiator-game.js';\nexport { stdSimulatorGame, stdSimulatorGameEntity, stdSimulatorGameTrait, stdSimulatorGamePage, type StdSimulatorGameParams } from './molecules/std-simulator-game.js';\nexport { stdEventHandlerGame, stdEventHandlerGameEntity, stdEventHandlerGameTrait, stdEventHandlerGamePage, type StdEventHandlerGameParams } from './molecules/std-event-handler-game.js';\n\n// Molecules: ML pipelines\nexport { stdClassifier, stdClassifierEntity, stdClassifierTrait, stdClassifierPage, type StdClassifierParams } from './ml/molecules/std-classifier.js';\nexport { stdTrainer, stdTrainerEntity, stdTrainerTrait, stdTrainerPage, type StdTrainerParams } from './ml/molecules/std-trainer.js';\nexport { stdRlAgent, stdRlAgentEntity, stdRlAgentTrait, stdRlAgentPage, type StdRlAgentParams } from './ml/molecules/std-rl-agent.js';\nexport { stdGraphClassifier, stdGraphClassifierEntity, stdGraphClassifierTrait, stdGraphClassifierPage, type StdGraphClassifierParams } from './ml/molecules/std-graph-classifier.js';\nexport { stdTextClassifier, stdTextClassifierEntity, stdTextClassifierTrait, stdTextClassifierPage, type StdTextClassifierParams } from './ml/molecules/std-text-classifier.js';\nexport { stdAutoregressive, stdAutoregressiveEntity, stdAutoregressiveTrait, stdAutoregressivePage, type StdAutoregressiveParams } from './ml/molecules/std-autoregressive.js';\n\n// ============================================================================\n// Molecules: Service compositions\n// ============================================================================\n\nexport { stdServicePaymentFlow, stdServicePaymentFlowEntity, stdServicePaymentFlowPage, type StdServicePaymentFlowParams } from './molecules/std-service-payment-flow.js';\nexport { stdServiceNotificationHub, stdServiceNotificationHubEntity, stdServiceNotificationHubTrait, stdServiceNotificationHubPage, type StdServiceNotificationHubParams } from './molecules/std-service-notification-hub.js';\nexport { stdServiceContentPipeline, stdServiceContentPipelineEntity, stdServiceContentPipelineTrait, stdServiceContentPipelinePage, type StdServiceContentPipelineParams } from './molecules/std-service-content-pipeline.js';\nexport { stdServiceDevopsToolkit, stdServiceDevopsToolkitEntity, stdServiceDevopsToolkitPage, type StdServiceDevopsToolkitParams } from './molecules/std-service-devops-toolkit.js';\nexport { stdServiceCustomApiTester, stdServiceCustomApiTesterEntity, stdServiceCustomApiTesterTrait, stdServiceCustomApiTesterPage, type StdServiceCustomApiTesterParams } from './molecules/std-service-custom-api-tester.js';\n\n// ============================================================================\n// Organisms (compose molecules via compose)\n// ============================================================================\n\nexport { stdSocialFeed, type StdSocialFeedParams } from './organisms/std-social-feed.js';\nexport { stdLms, type StdLmsParams } from './organisms/std-lms.js';\nexport { stdCrm, type StdCrmParams } from './organisms/std-crm.js';\nexport { stdHrPortal, type StdHrPortalParams } from './organisms/std-hr-portal.js';\nexport { stdHelpdesk, type StdHelpdeskParams } from './organisms/std-helpdesk.js';\nexport { stdEcommerce, type StdEcommerceParams } from './organisms/std-ecommerce.js';\nexport { stdHealthcare, type StdHealthcareParams } from './organisms/std-healthcare.js';\nexport { stdCms, type StdCmsParams } from './organisms/std-cms.js';\nexport { stdProjectManager, type StdProjectManagerParams } from './organisms/std-project-manager.js';\nexport { stdBookingSystem, type StdBookingSystemParams } from './organisms/std-booking-system.js';\n\n// DevOps\nexport { stdDevopsDashboard, type StdDevopsDashboardParams } from './organisms/std-devops-dashboard.js';\nexport { stdCicdPipeline, type StdCicdPipelineParams } from './organisms/std-cicd-pipeline.js';\nexport { stdApiGateway, type StdApiGatewayParams } from './organisms/std-api-gateway.js';\n\n// Games\nexport { stdRpgGame, type StdRpgGameParams } from './organisms/std-rpg-game.js';\nexport { stdPlatformerApp, type StdPlatformerAppParams } from './organisms/std-platformer-app.js';\nexport { stdPuzzleApp, type StdPuzzleAppParams } from './organisms/std-puzzle-app.js';\nexport { stdStrategyGame, type StdStrategyGameParams } from './organisms/std-strategy-game.js';\nexport { stdArcadeGame, type StdArcadeGameParams } from './organisms/std-arcade-game.js';\n\n// Educational\nexport { stdCodingAcademy, type StdCodingAcademyParams } from './organisms/std-coding-academy.js';\nexport { stdStemLab, type StdStemLabParams } from './organisms/std-stem-lab.js';\nexport { stdLogicTraining, type StdLogicTrainingParams } from './organisms/std-logic-training.js';\n\n// Service applications\nexport { stdServiceMarketplace, type StdServiceMarketplaceParams } from './organisms/std-service-marketplace.js';\nexport { stdServiceResearchAssistant, type StdServiceResearchAssistantParams } from './organisms/std-service-research-assistant.js';\n\n// IoT + Finance\nexport { stdIotDashboard, type StdIotDashboardParams } from './organisms/std-iot-dashboard.js';\nexport { stdRealtimeChat, type StdRealtimeChatParams } from './organisms/std-realtime-chat.js';\nexport { stdFinanceTracker, type StdFinanceTrackerParams } from './organisms/std-finance-tracker.js';\nexport { stdTradingDashboard, type StdTradingDashboardParams } from './organisms/std-trading-dashboard.js';\n\n// OS Triggers\nexport { stdValidateOnSave, type StdValidateOnSaveParams } from './atoms/std-validate-on-save.js';\n\n// ============================================================================\n// Atoms: Service integrations\n// ============================================================================\n\nexport { stdServiceEmail, stdServiceEmailEntity, stdServiceEmailTrait, stdServiceEmailPage, type StdServiceEmailParams } from './atoms/std-service-email.js';\nexport { stdServiceStripe, stdServiceStripeEntity, stdServiceStripeTrait, stdServiceStripePage, type StdServiceStripeParams } from './atoms/std-service-stripe.js';\nexport { stdServiceTwilio, stdServiceTwilioEntity, stdServiceTwilioTrait, stdServiceTwilioPage, type StdServiceTwilioParams } from './atoms/std-service-twilio.js';\nexport { stdServiceGithub, stdServiceGithubEntity, stdServiceGithubTrait, stdServiceGithubPage, type StdServiceGithubParams } from './atoms/std-service-github.js';\nexport { stdServiceYoutube, stdServiceYoutubeEntity, stdServiceYoutubeTrait, stdServiceYoutubePage, type StdServiceYoutubeParams } from './atoms/std-service-youtube.js';\nexport { stdServiceLlm, stdServiceLlmEntity, stdServiceLlmTrait, stdServiceLlmPage, type StdServiceLlmParams } from './atoms/std-service-llm.js';\nexport { stdServiceRedis, stdServiceRedisEntity, stdServiceRedisTrait, stdServiceRedisPage, type StdServiceRedisParams } from './atoms/std-service-redis.js';\nexport { stdServiceStorage, stdServiceStorageEntity, stdServiceStorageTrait, stdServiceStoragePage, type StdServiceStorageParams } from './atoms/std-service-storage.js';\nexport { stdServiceOauth, stdServiceOauthEntity, stdServiceOauthTrait, stdServiceOauthPage, type StdServiceOauthParams } from './atoms/std-service-oauth.js';\nexport { stdServiceCustomHeader, stdServiceCustomHeaderEntity, stdServiceCustomHeaderTrait, stdServiceCustomHeaderPage, type StdServiceCustomHeaderParams } from './atoms/std-service-custom-header.js';\nexport { stdServiceCustomBearer, stdServiceCustomBearerEntity, stdServiceCustomBearerTrait, stdServiceCustomBearerPage, type StdServiceCustomBearerParams } from './atoms/std-service-custom-bearer.js';\nexport { stdServiceCustomQuery, stdServiceCustomQueryEntity, stdServiceCustomQueryTrait, stdServiceCustomQueryPage, type StdServiceCustomQueryParams } from './atoms/std-service-custom-query.js';\nexport { stdServiceCustomNoauth, stdServiceCustomNoauthEntity, stdServiceCustomNoauthTrait, stdServiceCustomNoauthPage, type StdServiceCustomNoauthParams } from './atoms/std-service-custom-noauth.js';\n\n// ============================================================================\n// Composition (re-export from core)\n// ============================================================================\n\nexport { connect, compose, pipe, makeEntity, makePage, makeOrbital, mergeOrbitals, wire, extractTrait, ensureIdField, plural } from '@almadar/core/builders';\n","/**\n * Shared utilities for standard behavior functions.\n *\n * @packageDocumentation\n */\n\n/**\n * Convert a camelCase or PascalCase field name into a human-readable label.\n *\n * Examples:\n * firstName → \"First Name\"\n * createdAt → \"Created At\"\n * userID → \"User ID\"\n * isActive → \"Is Active\"\n */\nexport function humanizeLabel(name: string): string {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n .replace(/\\bId\\b/g, 'ID')\n .replace(/^./, s => s.toUpperCase());\n}\n\n/** Fields injected by the runtime/compiler that should not appear in user-facing forms or detail views. */\nexport const SYSTEM_FIELDS = new Set(['createdAt', 'updatedAt', 'pendingId']);\n","/**\n * std-browse\n *\n * Data grid browsing atom. Renders a list of entities with\n * configurable item actions. The browsing view that molecules\n * compose with modal/confirmation atoms.\n *\n * @level atom\n * @family browse\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\nimport { humanizeLabel } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdBrowseParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Trait naming\n traitName?: string;\n\n // Display\n listFields?: string[];\n headerIcon?: string;\n pageTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Actions (molecules inject these to emit events that other atoms listen for)\n headerActions?: Array<{ label: string; event: string; variant?: string; icon?: string }>;\n itemActions?: Array<{ label: string; event: string; variant?: string }>;\n\n // Refresh events: when these events fire (from other traits), re-fetch entity data\n refreshEvents?: string[];\n\n // Display customization (organisms override these for domain-specific layouts)\n /** Display pattern: 'data-grid' (default), 'entity-table', 'entity-cards', 'data-list' */\n displayPattern?: string;\n /** Custom renderItem template (overrides the auto-generated icon+title+badge template) */\n customRenderItem?: unknown;\n /** Field definitions for DataGrid/DataList built-in rendering (skips renderItem when provided) */\n displayColumns?: unknown[];\n /** Stats bar: array of stat-display patterns rendered above the list */\n statsBar?: unknown[];\n /** Extra props passed to the display pattern (e.g., variant, groupBy, cols) */\n displayProps?: Record<string, unknown>;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface BrowseConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n headerIcon: string;\n pageTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerActions: Array<{ label: string; event: string; variant?: string; icon?: string }>;\n itemActions: Array<{ label: string; event: string; variant?: string }>;\n refreshEvents: string[];\n displayPattern: string;\n customRenderItem: unknown | null;\n displayColumns: unknown[] | null;\n statsBar: unknown[];\n displayProps: Record<string, unknown>;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdBrowseParams): BrowseConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: params.traitName ?? `${entityName}Browse`,\n headerIcon: params.headerIcon ?? 'list',\n pageTitle: params.pageTitle ?? p,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} yet`,\n emptyDescription: params.emptyDescription ?? `Create your first ${entityName.toLowerCase()} to get started.`,\n headerActions: params.headerActions ?? [],\n itemActions: params.itemActions ?? [],\n refreshEvents: params.refreshEvents ?? [],\n displayPattern: params.displayPattern ?? 'data-grid',\n customRenderItem: params.customRenderItem ?? null,\n displayColumns: params.displayColumns ?? null,\n statsBar: params.statsBar ?? [],\n displayProps: params.displayProps ?? {},\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\n/**\n * Build the display pattern node for the browse view.\n * When displayColumns is provided, uses DataGrid/DataList built-in field rendering\n * (proper card styling, grid layout, format support). Otherwise uses renderItem.\n */\nfunction buildDisplayPattern(c: BrowseConfig, entityName: string, emptyTitle: string, emptyDescription: string, defaultColumns: unknown[], listItemChildren: unknown[]): unknown {\n const base: Record<string, unknown> = {\n type: c.displayPattern, entity: entityName,\n emptyIcon: 'inbox', emptyTitle, emptyDescription,\n ...(c.itemActions.length > 0 ? { itemActions: c.itemActions.map(a => ({ ...a, variant: a.variant ?? 'ghost', size: 'sm' })) } : {}),\n };\n\n if (c.displayColumns) {\n // Field-based rendering: DataGrid/DataList uses built-in card layout\n base.columns = c.displayColumns;\n } else if (c.customRenderItem) {\n // Custom renderItem template from organism\n base.renderItem = ['fn', 'item', c.customRenderItem];\n } else {\n // Use DataGrid built-in columns for proper badge colors, formatting, card styling\n base.columns = defaultColumns;\n }\n\n return { ...base, ...c.displayProps };\n}\n\nfunction buildEntity(c: BrowseConfig): Entity {\n const instances = [\n { id: 'bi-1', name: 'Terry Schultz', description: 'Senior product designer with 8 years of experience', status: 'active', createdAt: '2026-01-15' },\n { id: 'bi-2', name: 'Dale Franey', description: 'Full-stack developer specializing in React and Node.js', status: 'active', createdAt: '2026-01-18' },\n { id: 'bi-3', name: 'Lorena Mayer', description: 'Data analyst focused on business intelligence', status: 'pending', createdAt: '2026-01-20' },\n { id: 'bi-4', name: 'Andrea Paucek', description: 'Project manager with PMP certification', status: 'active', createdAt: '2026-02-01' },\n { id: 'bi-5', name: 'Geneva Durgan', description: 'UX researcher conducting user interviews', status: 'inactive', createdAt: '2026-02-05' },\n { id: 'bi-6', name: 'Samantha Okuneva', description: 'DevOps engineer managing cloud infrastructure', status: 'active', createdAt: '2026-02-10' },\n { id: 'bi-7', name: 'Nelson Halby', description: 'Technical writer documenting APIs', status: 'active', createdAt: '2026-02-15' },\n { id: 'bi-8', name: 'Tanya Hand', description: 'QA lead overseeing test automation', status: 'pending', createdAt: '2026-02-20' },\n { id: 'bi-9', name: 'Rosemary Lind', description: 'Marketing analyst tracking campaign performance', status: 'active', createdAt: '2026-03-01' },\n { id: 'bi-10', name: 'Bernadette Anderson', description: 'Security engineer conducting penetration tests', status: 'active', createdAt: '2026-03-05' },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildTrait(c: BrowseConfig): Trait {\n const { entityName, listFields, headerIcon, pageTitle, emptyTitle, emptyDescription } = c;\n\n // Helper: detect date fields and add format\n const dateFormat = (fieldName: string): Record<string, string> => {\n const fieldDef = c.nonIdFields.find(f => f.name === fieldName);\n return (fieldDef?.type === 'date' || fieldDef?.type === 'datetime') ? { format: 'date' } : {};\n };\n\n // Default columns for DataGrid built-in card rendering (proper badge colors, formatting)\n const defaultColumns = [\n { name: listFields[0] ?? 'name', label: humanizeLabel(listFields[0] ?? 'name'), variant: 'h4', icon: headerIcon, ...dateFormat(listFields[0] ?? 'name') },\n ...(listFields.length > 1 ? [{\n name: listFields[1], label: humanizeLabel(listFields[1]),\n variant: 'badge' as const,\n colorMap: {\n active: 'success', completed: 'success', done: 'success',\n pending: 'warning', draft: 'warning', scheduled: 'warning',\n inactive: 'neutral', archived: 'neutral', disabled: 'neutral',\n error: 'destructive', cancelled: 'destructive', failed: 'destructive',\n },\n ...dateFormat(listFields[1]),\n }] : []),\n ...(listFields.length > 2 ? [{\n name: listFields[2], label: humanizeLabel(listFields[2]),\n variant: 'caption' as const,\n ...dateFormat(listFields[2]),\n }] : []),\n ];\n\n // Legacy renderItem for backward compatibility when customRenderItem is used\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@item.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@item.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({\n type: 'typography', variant: 'caption', color: 'muted',\n content: `@item.${listFields[2]}`,\n });\n }\n\n // Header buttons — gap-2 between icon and title for breathing room\n const headerChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n ];\n if (c.headerActions.length > 0) {\n headerChildren.push({\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: c.headerActions.map(a => ({\n type: 'button', label: a.label, event: a.event, variant: a.variant ?? 'primary', ...(a.icon ? { icon: a.icon } : {}),\n })),\n });\n }\n\n // Collect all event keys from actions\n const actionEvents = new Set<string>();\n for (const a of c.headerActions) actionEvents.add(a.event);\n for (const a of c.itemActions) actionEvents.add(a.event);\n\n // Add refresh events to the set (they need event declarations too)\n for (const re of c.refreshEvents) actionEvents.add(re);\n\n const events: unknown[] = [\n { key: 'INIT', name: 'Initialize' },\n ...Array.from(actionEvents).map(e => {\n const needsId = c.itemActions.some(a => a.event === e);\n // Refresh events with 'data' payload (SAVE-like events)\n const isRefresh = c.refreshEvents.includes(e);\n if (isRefresh) {\n return { key: e, name: e, payload: [{ name: 'data', type: 'object', required: true }] };\n }\n return needsId\n ? { key: e, name: e, payload: [{ name: 'id', type: 'string', required: true }, { name: 'row', type: 'object' }] }\n : { key: e, name: e };\n }),\n ];\n\n // Declare listens for refresh events (emitted by modal/confirmation atoms after persist)\n const listensDecl = c.refreshEvents.length > 0\n ? c.refreshEvents.map(evt => ({ event: evt, triggers: evt }))\n : undefined;\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n ...(listensDecl ? { listens: listensDecl } : {}),\n stateMachine: {\n states: [{ name: 'browsing', isInitial: true }],\n events,\n transitions: [\n {\n from: 'browsing', to: 'browsing', event: 'INIT',\n effects: [\n ['ref', entityName],\n ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', className: 'max-w-5xl mx-auto w-full',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center', children: headerChildren },\n { type: 'divider' },\n // Stats bar (dashboard-style summary above the list)\n ...(c.statsBar.length > 0 ? [{\n type: 'simple-grid', columns: Math.min(c.statsBar.length, 4),\n children: c.statsBar,\n }, { type: 'divider' }] : []),\n // Data display\n buildDisplayPattern(c, entityName, emptyTitle, emptyDescription, defaultColumns, listItemChildren),\n // Floating action button for quick create (only when no header button exists)\n ...(c.headerActions.length === 0 ? [{ type: 'floating-action-button', icon: 'plus', event: 'INIT', label: 'Create', tooltip: 'Create' }] : []),\n ],\n }],\n ],\n },\n // Refresh self-loops: when modal atoms fire SAVE etc., re-fetch data\n ...c.refreshEvents.map(evt => ({\n from: 'browsing', to: 'browsing', event: evt,\n effects: [['ref', entityName]],\n })),\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: BrowseConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Build the browse entity.\n *\n * @param {StdBrowseParams} params - Browse configuration parameters\n * @returns {Entity} The configured browse entity\n */\nexport function stdBrowseEntity(params: StdBrowseParams): Entity { return buildEntity(resolve(params)); }\n/**\n * Build the browse trait.\n *\n * @param {StdBrowseParams} params - Browse configuration parameters\n * @returns {Trait} The configured browse trait\n */\nexport function stdBrowseTrait(params: StdBrowseParams): Trait { return buildTrait(resolve(params)); }\n/**\n * Build the browse page.\n *\n * @param {StdBrowseParams} params - Browse configuration parameters\n * @returns {Page} The configured browse page\n */\nexport function stdBrowsePage(params: StdBrowseParams): Page { return buildPage(resolve(params)); }\n\nexport function stdBrowse(params: StdBrowseParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-modal\n *\n * Modal overlay atom. Accepts content injection so molecules\n * can control what renders inside the open state.\n *\n * @level atom\n * @family modal\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\nimport { humanizeLabel, SYSTEM_FIELDS } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdModalParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Trait naming (molecules override this to avoid collisions)\n traitName?: string;\n\n // Content\n modalTitle?: string;\n headerIcon?: string;\n /** Render-ui tree for the open state. Defaults to entity field detail view. */\n openContent?: unknown;\n\n // Event/Effect injection (molecules wire through these)\n /** Event key that opens the modal (default: 'OPEN') */\n openEvent?: string;\n /** Payload schema for the open event (e.g., [{ name: 'id', type: 'string', required: true }]) */\n openPayload?: Array<{ name: string; type: string; required?: boolean }>;\n /** Event key that closes the modal (default: 'CLOSE') */\n closeEvent?: string;\n /** Additional effects to run before render on open (e.g., fetch) */\n openEffects?: unknown[];\n /** If provided, adds a save transition: open → closed with these effects */\n saveEvent?: string;\n saveEffects?: unknown[];\n /** Event to emit after save succeeds. Browse traits listen for this instead of raw SAVE. */\n emitOnSave?: string;\n /** When false, INIT renders nothing to main (used inside molecules). Default true. */\n standalone?: boolean;\n\n // Page (standalone use)\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ModalConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n modalTitle: string;\n headerIcon: string;\n openContent: unknown;\n openEvent: string;\n openPayload: Array<{ name: string; type: string; required?: boolean }>;\n closeEvent: string;\n openEffects: unknown[];\n saveEvent: string | null;\n saveEffects: unknown[];\n emitOnSave: string | null;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdModalParams): ModalConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n // Default open content: modal molecule wrapping field detail view\n const displayFields = nonIdFields.filter(f => !SYSTEM_FIELDS.has(f.name));\n const defaultContent = {\n type: 'modal',\n title: params.modalTitle ?? 'Details',\n isOpen: true,\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n ...displayFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: humanizeLabel(f.name) },\n { type: 'typography', variant: 'body', content: ['object/get', ['array/first', '@entity'], f.name] },\n ],\n })),\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [{ type: 'button', label: 'Close', event: params.closeEvent ?? 'CLOSE', variant: 'ghost' }],\n },\n ],\n },\n ],\n };\n\n return {\n entityName,\n fields,\n nonIdFields,\n persistence: params.persistence ?? 'runtime',\n traitName: params.traitName ?? `${entityName}Modal`,\n modalTitle: params.modalTitle ?? 'Details',\n headerIcon: params.headerIcon ?? 'layout-panel-top',\n openContent: params.openContent ?? defaultContent,\n openEvent: params.openEvent ?? 'OPEN',\n openPayload: params.openPayload ?? [],\n closeEvent: params.closeEvent ?? 'CLOSE',\n openEffects: params.openEffects ?? [],\n saveEvent: params.saveEvent ?? null,\n saveEffects: params.saveEffects ?? [],\n emitOnSave: params.emitOnSave ?? null,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}ModalPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/modal`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: ModalConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ModalConfig): Trait {\n const events: unknown[] = [\n { key: 'INIT', name: 'Initialize' },\n { key: c.openEvent, name: 'Open', ...(c.openPayload.length > 0 ? { payload: c.openPayload } : {}) },\n { key: c.closeEvent, name: 'Close' },\n ];\n if (c.saveEvent) {\n events.push({ key: c.saveEvent, name: 'Save', payload: [{ name: 'data', type: 'object', required: true }] });\n }\n\n const transitions: unknown[] = [\n // INIT: closed → closed\n {\n from: 'closed', to: 'closed', event: 'INIT',\n effects: c.standalone\n ? [['ref', c.entityName], ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'icon', name: c.headerIcon, size: 'lg' },\n { type: 'typography', content: c.modalTitle, variant: 'h2' },\n ] },\n { type: 'button', label: 'Open', event: c.openEvent, variant: 'primary', icon: c.headerIcon },\n ] },\n { type: 'divider' },\n { type: 'empty-state', icon: c.headerIcon, title: 'Nothing open', description: 'Click Open to view details in a modal overlay.' },\n ],\n }]]\n : [['ref', c.entityName]],\n },\n // OPEN: closed → open (Modal component in CompiledPortal provides backdrop)\n {\n from: 'closed', to: 'open', event: c.openEvent,\n effects: [...c.openEffects, ['render-ui', 'modal', c.openContent]],\n },\n // CLOSE: open → closed (re-render main to avoid stale content)\n { from: 'open', to: 'closed', event: c.closeEvent, effects: [\n ['render-ui', 'modal', null],\n ['notify', 'Cancelled', 'info'],\n ...(c.standalone ? [['ref', c.entityName], ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'icon', name: c.headerIcon, size: 'lg' },\n { type: 'typography', content: c.modalTitle, variant: 'h2' },\n ] },\n { type: 'button', label: 'Open', event: c.openEvent, variant: 'primary', icon: c.headerIcon },\n ] },\n { type: 'divider' },\n { type: 'empty-state', icon: c.headerIcon, title: 'Nothing open', description: 'Click Open to view details in a modal overlay.' },\n ],\n }]] : []),\n ] },\n ];\n\n // Save transition (molecule injects this for create/edit modals)\n if (c.saveEvent) {\n transitions.push({\n from: 'open', to: 'closed', event: c.saveEvent,\n effects: [\n ...c.saveEffects,\n ['render-ui', 'modal', null],\n // Emit after persist succeeds so browse traits can fetch fresh data\n ...(c.emitOnSave ? [['emit', c.emitOnSave]] : []),\n ],\n });\n }\n\n return {\n name: c.traitName,\n linkedEntity: c.entityName,\n category: 'interaction',\n ...(c.emitOnSave ? { emits: [{ event: c.emitOnSave }] } : {}),\n stateMachine: {\n states: [{ name: 'closed', isInitial: true }, { name: 'open' }],\n events,\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: ModalConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdModalEntity(params: StdModalParams): Entity { return buildEntity(resolve(params)); }\nexport function stdModalTrait(params: StdModalParams): Trait { return buildTrait(resolve(params)); }\nexport function stdModalPage(params: StdModalParams): Page { return buildPage(resolve(params)); }\n\nexport function stdModal(params: StdModalParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-confirmation as a Function\n *\n * Confirmation dialog behavior parameterized for any domain.\n * Provides a two-step confirm/cancel flow before performing destructive actions.\n * The caller handles the actual action via emits/listens.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family confirmation\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdConfirmationParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Trait naming (molecules override this)\n traitName?: string;\n\n // Display\n confirmTitle?: string;\n confirmMessage?: string;\n confirmLabel?: string;\n cancelLabel?: string;\n headerIcon?: string;\n\n // Event/Effect injection\n /** Event key that opens the confirmation (default: 'REQUEST') */\n requestEvent?: string;\n /** Event key for confirm action (default: 'CONFIRM') */\n confirmEvent?: string;\n /** Additional effects to run on confirm (e.g., persist delete) */\n confirmEffects?: unknown[];\n /** Event to emit after confirm succeeds. Browse traits listen for this. */\n emitOnConfirm?: string;\n /** When false, INIT renders nothing to main (used inside molecules). Default true. */\n standalone?: boolean;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ConfirmationConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n confirmTitle: string;\n confirmMessage: string;\n confirmLabel: string;\n cancelLabel: string;\n headerIcon: string;\n requestEvent: string;\n confirmEvent: string;\n confirmEffects: unknown[];\n emitOnConfirm: string | null;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdConfirmationParams): ConfirmationConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: params.traitName ?? `${entityName}Confirmation`,\n pluralName: p,\n confirmTitle: params.confirmTitle ?? 'Confirm Action',\n confirmMessage: params.confirmMessage ?? 'Are you sure?',\n confirmLabel: params.confirmLabel ?? 'Confirm',\n cancelLabel: params.cancelLabel ?? 'Cancel',\n headerIcon: params.headerIcon ?? 'shield-check',\n requestEvent: params.requestEvent ?? 'REQUEST',\n confirmEvent: params.confirmEvent ?? 'CONFIRM',\n confirmEffects: params.confirmEffects ?? [],\n emitOnConfirm: params.emitOnConfirm ?? null,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}ConfirmPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/confirm`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: ConfirmationConfig): Entity {\n // Add pendingId field to store the entity ID across REQUEST → CONFIRM flow\n const fields = [\n ...c.fields.filter(f => f.name !== 'pendingId'),\n { name: 'pendingId', type: 'string' as const, default: '' },\n ];\n return makeEntity({ name: c.entityName, fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ConfirmationConfig): Trait {\n const { entityName, displayField, pluralName, confirmTitle, confirmMessage, confirmLabel, cancelLabel, headerIcon } = c;\n\n const idleMainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pluralName, variant: 'h2' },\n ] },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: 'Items will appear here.',\n itemActions: [{ label: confirmTitle, event: c.requestEvent, variant: 'danger' }],\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: [\n { type: 'typography', variant: 'h4', content: `@item.${displayField}` },\n ] }],\n },\n ],\n };\n\n const confirmModalView = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'alert-triangle', size: 'md' },\n { type: 'typography', content: confirmTitle, variant: 'h3' },\n ],\n },\n { type: 'divider' },\n {\n type: 'alert',\n variant: 'danger',\n message: confirmMessage,\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: cancelLabel, event: 'CANCEL', variant: 'ghost' },\n { type: 'button', label: confirmLabel, event: c.confirmEvent, variant: 'danger', icon: 'check' },\n ],\n },\n ],\n };\n\n // Effects to dismiss modal and refresh main view\n const dismissAndRefresh: unknown[] = [\n ['render-ui', 'modal', null],\n ...(c.standalone ? [['ref', entityName], ['render-ui', 'main', idleMainView]] : [['ref', entityName]]),\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n ...(c.emitOnConfirm ? { emits: [{ event: c.emitOnConfirm }] } : {}),\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'confirming' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: c.requestEvent, name: 'Request Confirmation', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: c.confirmEvent, name: 'Confirm' },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: c.standalone\n ? [['ref', entityName], ['render-ui', 'main', idleMainView]]\n : [['ref', entityName]],\n },\n {\n from: 'idle', to: 'confirming', event: c.requestEvent,\n effects: [\n ['set', '@entity.pendingId', '@payload.id'],\n ['fetch', entityName, { id: '@payload.id' }],\n ['render-ui', 'modal', confirmModalView],\n ],\n },\n {\n from: 'confirming', to: 'idle', event: c.confirmEvent,\n effects: [\n ...c.confirmEffects,\n ...dismissAndRefresh,\n ...(c.emitOnConfirm ? [['emit', c.emitOnConfirm]] : []),\n ],\n },\n {\n from: 'confirming', to: 'idle', event: 'CANCEL',\n effects: dismissAndRefresh,\n },\n {\n from: 'confirming', to: 'idle', event: 'CLOSE',\n effects: dismissAndRefresh,\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: ConfirmationConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdConfirmationEntity(params: StdConfirmationParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdConfirmationTrait(params: StdConfirmationParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdConfirmationPage(params: StdConfirmationParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdConfirmation(params: StdConfirmationParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-search as a Function\n *\n * Search behavior parameterized for any domain.\n * Provides a search input that filters entity data by query string.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family search\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSearchParams {\n /** Entity name in PascalCase (e.g., \"Product\", \"Article\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Placeholder text for the search input */\n placeholder?: string;\n /** Icon for the search input (Lucide name) */\n searchIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}SearchPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/search\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SearchConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n placeholder: string;\n searchIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSearchParams): SearchConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n const fields = baseFields;\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Search`,\n pluralName: p,\n placeholder: params.placeholder ?? 'Search...',\n searchIcon: params.searchIcon ?? 'search',\n pageName: params.pageName ?? `${entityName}SearchPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/search`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: SearchConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SearchConfig): Trait {\n const { entityName, displayField, pluralName, searchIcon, placeholder } = c;\n\n // Search input view with idle prompt\n const searchInputView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: searchIcon, size: 'lg' },\n { type: 'typography', content: `Search ${pluralName}`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'search-input', placeholder, event: 'SEARCH' },\n { type: 'empty-state', icon: searchIcon, title: 'Search to find results', description: `Type a query to search across ${pluralName.toLowerCase()}.` },\n ],\n };\n\n // Reusable results view with popover for result details\n const resultsView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: searchIcon, size: 'lg' },\n { type: 'typography', content: ['concat', 'Results for \"', '@payload.query', '\"'], variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'x' },\n ],\n },\n { type: 'divider' },\n {\n type: 'popover', position: 'bottom', trigger: 'click',\n children: [\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: searchIcon,\n emptyTitle: 'No results found',\n emptyDescription: 'Try a different search term.',\n renderItem: ['fn', 'item', {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'h4', content: `@item.${displayField}` },\n ],\n }],\n },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'searching' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEARCH', name: 'Search', payload: [{ name: 'query', type: 'string', required: true }] },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', searchInputView],\n ],\n },\n {\n from: 'idle', to: 'searching', event: 'SEARCH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', resultsView],\n ],\n },\n {\n from: 'searching', to: 'searching', event: 'SEARCH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', resultsView],\n ],\n },\n {\n from: 'searching', to: 'idle', event: 'CLEAR',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', searchInputView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SearchConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSearchEntity(params: StdSearchParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSearchTrait(params: StdSearchParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSearchPage(params: StdSearchParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSearch(params: StdSearchParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-filter\n *\n * Filter atom. Shows filter buttons per field with predefined values.\n * Clicking a filter value transitions to filtered state. Clear resets.\n *\n * @level atom\n * @family filter\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdFilterParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Fields to show as filter buttons (defaults to fields with `values` defined) */\n filterFields?: string[];\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface FilterConfig {\n entityName: string;\n fields: EntityField[];\n allFields: EntityField[];\n filterableFields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdFilterParams): FilterConfig {\n const { entityName } = params;\n const allFields = ensureIdField(params.fields);\n const nonIdFields = allFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n // Filterable fields: explicitly specified, or fields that have `values` defined\n const filterFieldNames = params.filterFields ?? nonIdFields.filter(f => f.values && f.values.length > 0).map(f => f.name);\n const filterableFields = nonIdFields.filter(f => filterFieldNames.includes(f.name));\n\n return {\n entityName,\n fields: allFields,\n allFields,\n filterableFields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Filter`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'filter',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}FilterPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: FilterConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: FilterConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle, filterableFields } = c;\n\n // Build filter controls using filter-group molecule for proper chip state management\n const filterControls: unknown[] = filterableFields.length > 0\n ? [{\n type: 'filter-group',\n entity: entityName,\n filters: filterableFields.map(f => ({\n field: f.name,\n label: f.name.charAt(0).toUpperCase() + f.name.slice(1),\n options: f.values ?? [],\n filterType: f.type === 'boolean' ? 'toggle' : 'select',\n })),\n }]\n : [{ type: 'empty-state', icon: 'filter-x', title: 'No filter fields', description: 'Add fields with predefined values to enable filtering.' }];\n\n // Boolean filter fields get switch toggles\n const booleanFilters = filterableFields.filter(f => f.type === 'boolean');\n const switchControls: unknown[] = booleanFilters.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', justify: 'space-between',\n children: [\n { type: 'typography', variant: 'body', content: f.name.charAt(0).toUpperCase() + f.name.slice(1) },\n { type: 'switch', checked: false },\n ],\n }));\n\n const header = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'badge', label: 'All' },\n ],\n };\n\n const dataGrid = {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: [\n { type: 'typography', variant: 'h4', content: `@item.${displayField}` },\n // show the filterable field value to confirm what was filtered\n ...(filterableFields[0]\n ? [{ type: 'typography', variant: 'caption', color: 'muted', content: `@item.${filterableFields[0].name}` }]\n : []),\n ] }],\n };\n\n const browsingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n header,\n { type: 'divider' },\n ...filterControls,\n ...(switchControls.length > 0 ? [{ type: 'divider' }, ...switchControls] : []),\n { type: 'divider' },\n dataGrid,\n ],\n };\n\n // Active filter indicator: reads directly from @payload (available during render-ui)\n const activeFilterIndicator = {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'filter', size: 'sm' },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Filtered by' },\n { type: 'badge', label: '@payload.field', variant: 'secondary' },\n { type: 'typography', variant: 'caption', content: '=' },\n { type: 'badge', label: '@payload.value', variant: 'primary' },\n ],\n };\n\n const filteredView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'badge', label: 'Filtered', variant: 'primary' },\n { type: 'button', label: 'Clear All', event: 'CLEAR_FILTERS', variant: 'ghost', icon: 'x' },\n ] },\n ],\n },\n activeFilterIndicator,\n { type: 'divider' },\n ...filterControls,\n ...(switchControls.length > 0 ? [{ type: 'divider' }, ...switchControls] : []),\n { type: 'divider' },\n dataGrid,\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'browsing', isInitial: true },\n { name: 'filtered' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FILTER', name: 'Filter', payload: [\n { name: 'field', type: 'string', required: true },\n { name: 'value', type: 'string', required: true },\n ] },\n { key: 'CLEAR_FILTERS', name: 'Clear Filters' },\n ],\n transitions: [\n { from: 'browsing', to: 'browsing', event: 'INIT', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', browsingView],\n ] },\n { from: 'browsing', to: 'filtered', event: 'FILTER', effects: [\n ['fetch', entityName, ['==', ['object/get', '@entity', '@payload.field'], '@payload.value']],\n ['render-ui', 'main', filteredView],\n ] },\n { from: 'filtered', to: 'filtered', event: 'FILTER', effects: [\n ['fetch', entityName, ['==', ['object/get', '@entity', '@payload.field'], '@payload.value']],\n ['render-ui', 'main', filteredView],\n ] },\n { from: 'filtered', to: 'browsing', event: 'CLEAR_FILTERS', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', browsingView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: FilterConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdFilterEntity(params: StdFilterParams): Entity { return buildEntity(resolve(params)); }\nexport function stdFilterTrait(params: StdFilterParams): Trait { return buildTrait(resolve(params)); }\nexport function stdFilterPage(params: StdFilterParams): Page { return buildPage(resolve(params)); }\n\nexport function stdFilter(params: StdFilterParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-sort\n *\n * Sort atom. Shows sort-by buttons for each sortable field.\n * Clicking a field name sorts by that field. Clicking again toggles direction.\n *\n * @level atom\n * @family sort\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSortParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Fields available for sorting (defaults to all non-id fields) */\n sortFields?: string[];\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SortConfig {\n entityName: string;\n fields: EntityField[];\n sortableFields: string[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSortParams): SortConfig {\n const { entityName } = params;\n const allFields = ensureIdField(params.fields);\n const nonIdFields = allFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields: allFields,\n sortableFields: params.sortFields ?? nonIdFields.map(f => f.name),\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Sort`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'arrow-up-down',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}SortPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: SortConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SortConfig): Trait {\n const { entityName, sortableFields, displayField, pluralName, headerIcon, pageTitle } = c;\n\n // Sort toolbar: each button carries its field name + direction in actionPayload\n const sortToolbar = {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Sort by' },\n ...sortableFields.map(f => ({\n type: 'button',\n label: f.charAt(0).toUpperCase() + f.slice(1),\n event: 'SORT',\n actionPayload: { field: f, direction: 'asc' },\n variant: 'secondary',\n icon: 'arrow-up-down',\n })),\n ],\n };\n\n // Sort toolbar for 'sorted' state: active field button uses primary + ChevronUp\n const activeSortToolbar = (activeField: string) => ({\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Sort by' },\n ...sortableFields.map(f => ({\n type: 'button',\n label: f.charAt(0).toUpperCase() + f.slice(1),\n event: 'SORT',\n actionPayload: { field: f, direction: f === activeField ? 'desc' : 'asc' },\n // highlight the active sort field with primary + directional arrow\n variant: f === activeField ? 'primary' : 'secondary',\n icon: f === activeField ? 'chevron-up' : 'arrow-up-down',\n })),\n ],\n });\n\n const dataGrid = {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n columns: [\n { name: displayField, label: displayField.charAt(0).toUpperCase() + displayField.slice(1), variant: 'h4' },\n ...(sortableFields[1] ? [{ name: sortableFields[1], label: sortableFields[1].charAt(0).toUpperCase() + sortableFields[1].slice(1), variant: 'caption' }] : []),\n ...(c.fields.some(f => f.name === 'status') ? [{ name: 'status', label: 'Status', variant: 'badge' }] : []),\n ],\n };\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n ] },\n { type: 'divider' },\n sortToolbar,\n dataGrid,\n ],\n };\n\n // After sorting: show active sort with primary variant + sortable-list for manual reorder\n const sortedView = activeSortToolbar(sortableFields[0] ?? displayField);\n const mainSortedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'button', label: 'Clear sort', event: 'INIT', variant: 'ghost', icon: 'x' },\n ] },\n { type: 'divider' },\n sortedView,\n dataGrid,\n { type: 'sortable-list', entity: entityName, onReorder: 'SORT', renderItem: ['fn', 'item', {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'grip-vertical', size: 'sm' },\n { type: 'typography', variant: 'body', content: `@item.${displayField}` },\n ],\n }] },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }, { name: 'sorted' }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SORT', name: 'Sort', payload: [\n { name: 'field', type: 'string', required: true },\n { name: 'direction', type: 'string' },\n ] },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'idle', to: 'sorted', event: 'SORT', effects: [\n ['fetch', entityName, null, ['concat', '@payload.field', ':', '@payload.direction']],\n ['render-ui', 'main', mainSortedView],\n ] },\n { from: 'sorted', to: 'sorted', event: 'SORT', effects: [\n ['fetch', entityName, null, ['concat', '@payload.field', ':', '@payload.direction']],\n ['render-ui', 'main', mainSortedView],\n ] },\n { from: 'sorted', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SortConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdSortEntity(params: StdSortParams): Entity { return buildEntity(resolve(params)); }\nexport function stdSortTrait(params: StdSortParams): Trait { return buildTrait(resolve(params)); }\nexport function stdSortPage(params: StdSortParams): Page { return buildPage(resolve(params)); }\n\nexport function stdSort(params: StdSortParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-pagination as a Function\n *\n * Pagination behavior parameterized for any domain.\n * Provides page/pageSize controls that paginate entity data.\n * Single idle state with a self-loop that re-renders with the new page applied.\n *\n * @level atom\n * @family pagination\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPaginationParams {\n /** Entity name in PascalCase (e.g., \"Article\", \"Product\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title (defaults to plural entity name) */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}PaginationPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/paginated\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PaginationConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPaginationParams): PaginationConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n const fields = baseFields;\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Pagination`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'list',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}PaginationPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/paginated`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: PaginationConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: PaginationConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle } = c;\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n // Clean header: just title, no duplicate page number badge\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n columns: [\n { name: 'name', label: 'Name', variant: 'h4' },\n { name: 'description', label: 'Description', variant: 'caption' },\n { name: 'status', label: 'Status', variant: 'badge' },\n ],\n },\n {\n type: 'pagination',\n currentPage: 1,\n totalPages: 10,\n onPageChange: 'PAGE',\n showPageSize: false,\n },\n { type: 'infinite-scroll-sentinel', loadMoreEvent: 'PAGE' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'PAGE', name: 'Change Page', payload: [\n { name: 'page', type: 'number', required: true },\n { name: 'pageSize', type: 'number', required: true },\n ] },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', mainView],\n ],\n },\n {\n from: 'idle', to: 'idle', event: 'PAGE',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n columns: [\n { name: 'name', label: 'Name', variant: 'h4' },\n { name: 'description', label: 'Description', variant: 'caption' },\n { name: 'status', label: 'Status', variant: 'badge' },\n ],\n },\n {\n type: 'pagination',\n currentPage: '@payload.page',\n totalPages: 10,\n onPageChange: 'PAGE',\n showPageSize: false,\n },\n ],\n }],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: PaginationConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPaginationEntity(params: StdPaginationParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPaginationTrait(params: StdPaginationParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdPaginationPage(params: StdPaginationParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPagination(params: StdPaginationParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-drawer as a Function\n *\n * Drawer behavior parameterized for any domain.\n * Provides a slide-out drawer that displays entity detail.\n * Two states: closed and open, with transitions to toggle visibility.\n * Similar to std-modal but renders to a \"drawer\" slot concept.\n *\n * @level atom\n * @family drawer\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDrawerParams {\n /** Entity name in PascalCase (e.g., \"Panel\", \"Sidebar\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Drawer title (defaults to \"Details\") */\n drawerTitle?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Standalone mode\n /** When true (default), renders main view with Open button. When false, only renders to drawer slot. */\n standalone?: boolean;\n\n // Page\n /** Page name (defaults to \"{Entity}DrawerPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/drawer\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DrawerConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n drawerTitle: string;\n headerIcon: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDrawerParams): DrawerConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Drawer`,\n pluralName: p,\n drawerTitle: params.drawerTitle ?? 'Details',\n headerIcon: params.headerIcon ?? 'panel-right',\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}DrawerPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/drawer`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: DrawerConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: DrawerConfig): Trait {\n const { entityName, nonIdFields, displayField, pluralName, drawerTitle, headerIcon } = c;\n\n const closedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: drawerTitle, variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Open', event: 'OPEN', variant: 'primary', icon: headerIcon },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n renderItem: ['fn', 'item', {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'h4', content: `@item.${displayField}` },\n ],\n }],\n },\n ],\n };\n\n // Side-panel alternative view\n const sidePanelView = {\n type: 'side-panel',\n title: drawerTitle,\n isOpen: true,\n position: 'right',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: nonIdFields.map(field => ({\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n { type: 'typography', variant: 'caption', content: field.name.charAt(0).toUpperCase() + field.name.slice(1) },\n { type: 'typography', variant: 'body', content: ef(field.name) },\n ],\n })),\n },\n ],\n };\n\n // Drawer with field details and close button\n const openView = {\n type: 'drawer',\n title: drawerTitle,\n isOpen: true,\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n ...nonIdFields.map(field => ({\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n { type: 'typography', variant: 'caption', content: field.name.charAt(0).toUpperCase() + field.name.slice(1) },\n { type: 'typography', variant: 'body', content: ef(field.name) },\n ],\n })),\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Close', event: 'CLOSE', variant: 'ghost' },\n ],\n },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'closed', isInitial: true },\n { name: 'open' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'OPEN', name: 'Open' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n {\n from: 'closed', to: 'closed', event: 'INIT',\n effects: c.standalone\n ? [['fetch', entityName], ['render-ui', 'main', closedView]]\n : [['fetch', entityName]],\n },\n {\n from: 'closed', to: 'open', event: 'OPEN',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'drawer', {\n type: 'stack', direction: 'vertical', gap: 'none',\n children: [openView, sidePanelView],\n }],\n ],\n },\n {\n from: 'open', to: 'closed', event: 'CLOSE',\n effects: c.standalone\n ? [['render-ui', 'drawer', null], ['fetch', entityName], ['render-ui', 'main', closedView]]\n : [['render-ui', 'drawer', null], ['fetch', entityName]],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: DrawerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdDrawerEntity(params: StdDrawerParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdDrawerTrait(params: StdDrawerParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdDrawerPage(params: StdDrawerParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDrawer(params: StdDrawerParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-notification as a Function\n *\n * Notification behavior parameterized for any domain.\n * Provides a show/hide notification display.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family notification\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdNotificationParams {\n /** Entity name in PascalCase (e.g., \"Alert\", \"Notice\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Standalone mode\n /** When true (default), renders empty state with Test button to main. When false, only renders on SHOW/HIDE. */\n standalone?: boolean;\n\n // Page\n /** Page name (defaults to \"{Entity}NotificationPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/notifications\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface NotificationConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdNotificationParams): NotificationConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure message and notificationType fields exist on entity for payload binding\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'message') ? [] : [{ name: 'message', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'notificationType') ? [] : [{ name: 'notificationType', type: 'string' as const, default: 'info' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Notification`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'bell',\n pageTitle: params.pageTitle ?? 'Notifications',\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}NotificationPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/notifications`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: NotificationConfig): Entity {\n const instances = [\n { id: 'notif-1', name: 'System Update', description: 'New version available', status: 'active', createdAt: '2026-03-19', message: 'System update completed successfully.', notificationType: 'success' },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: NotificationConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n // Hidden state view: empty-state molecule\n const hiddenView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'empty-state', icon: 'bell-off', title: 'No notifications', description: 'New notifications will appear here.' },\n { type: 'button', label: 'Test Notification', event: 'SHOW', variant: 'secondary', icon: 'bell',\n actionPayload: { message: 'This is a test notification', notificationType: 'info' } },\n ],\n };\n\n // Visible state view: alert + toast-slot + violation-alert for comprehensive notification display\n const visibleView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Dismiss', event: 'HIDE', variant: 'ghost', icon: 'x' },\n ],\n },\n { type: 'divider' },\n {\n type: 'alert',\n variant: ef('notificationType'),\n message: ef('message'),\n },\n { type: 'toast-slot', position: 'top-right' },\n {\n type: 'violation-alert',\n severity: 'warning',\n message: ef('message'),\n category: 'compliance',\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'hidden', isInitial: true },\n { name: 'visible' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SHOW', name: 'Show Notification', payload: [\n { name: 'message', type: 'string', required: true },\n { name: 'notificationType', type: 'string' },\n ] },\n { key: 'HIDE', name: 'Hide Notification' },\n ],\n transitions: [\n // INIT: hidden -> hidden (fetch entity + render empty state in standalone mode)\n {\n from: 'hidden', to: 'hidden', event: 'INIT',\n effects: c.standalone\n ? [['fetch', entityName], ['render-ui', 'main', hiddenView]]\n : [['fetch', entityName]],\n },\n // SHOW: hidden -> visible (render notification)\n {\n from: 'hidden', to: 'visible', event: 'SHOW',\n effects: [\n ['set', '@entity.message', '@payload.message'],\n ['set', '@entity.notificationType', '@payload.notificationType'],\n ['render-ui', 'main', visibleView],\n ],\n },\n // SHOW: visible -> visible (update notification)\n {\n from: 'visible', to: 'visible', event: 'SHOW',\n effects: [\n ['set', '@entity.message', '@payload.message'],\n ['set', '@entity.notificationType', '@payload.notificationType'],\n ['render-ui', 'main', visibleView],\n ],\n },\n // HIDE: visible -> hidden (clear notification)\n {\n from: 'visible', to: 'hidden', event: 'HIDE',\n effects: c.standalone\n ? [['set', '@entity.message', ''], ['render-ui', 'main', hiddenView]]\n : [['set', '@entity.message', '']],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: NotificationConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdNotificationEntity(params: StdNotificationParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdNotificationTrait(params: StdNotificationParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdNotificationPage(params: StdNotificationParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdNotification(params: StdNotificationParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-timer as a Function\n *\n * Timer behavior parameterized for any domain.\n * Provides a countdown timer with start, pause, resume, and reset controls.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family timer\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTimerParams {\n /** Entity name in PascalCase (e.g., \"Countdown\", \"Pomodoro\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Default duration in seconds */\n duration?: number;\n /** Timer title */\n timerTitle?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}TimerPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/timer\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TimerConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n duration: number;\n timerTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTimerParams): TimerConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure timer-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'remaining') ? [] : [{ name: 'remaining', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'duration') ? [] : [{ name: 'duration', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'status') ? [] : [{ name: 'status', type: 'string' as const, default: 'idle' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Timer`,\n pluralName: p,\n duration: params.duration ?? 60,\n timerTitle: params.timerTitle ?? 'Timer',\n headerIcon: params.headerIcon ?? 'clock',\n pageName: params.pageName ?? `${entityName}TimerPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/timer`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: TimerConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: TimerConfig): Trait {\n const { entityName, timerTitle, headerIcon } = c;\n\n // Shared timer display: animated counter + meter gauge + stat display\n const timerDisplay = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: timerTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'animated-counter', value: ef('remaining'), suffix: 's', duration: 500 },\n { type: 'stat-display', label: 'Time Remaining', value: ef('remaining'), max: c.duration },\n { type: 'meter', value: ef('remaining'), min: 0, max: c.duration },\n { type: 'progress-bar', value: ef('remaining'), max: c.duration, color: 'primary', showPercentage: true },\n { type: 'badge', label: ef('status') },\n ],\n };\n\n // Button sets for each state\n const idleButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n // Show Pause/Reset grayed out in idle for control surface discoverability\n { type: 'button', label: 'Pause', event: 'PAUSE', variant: 'ghost', icon: 'pause', disabled: true },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw', disabled: true },\n ],\n };\n\n const runningButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Pause', event: 'PAUSE', variant: 'secondary', icon: 'pause' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const pausedButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Resume', event: 'RESUME', variant: 'primary', icon: 'play' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const expiredButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'primary', icon: 'rotate-ccw' },\n ],\n };\n\n // Wrapper function for timer view with given buttons\n const timerView = (buttons: unknown) => ({\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [timerDisplay, buttons],\n });\n\n const expiredView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n timerDisplay,\n { type: 'typography', content: 'Time is up!', variant: 'h3' },\n expiredButtons,\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n ticks: [{\n name: 'countdown',\n interval: 1000,\n appliesTo: ['running'],\n guard: ['>', '@entity.remaining', 0],\n effects: [\n ['set', '@entity.remaining', ['-', '@entity.remaining', 1]],\n ],\n }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'running' },\n { name: 'paused' },\n { name: 'expired' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'RESET', name: 'Reset' },\n { key: 'TICK', name: 'Tick' },\n { key: 'EXPIRE', name: 'Expire' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n // START: idle -> running (set remaining to duration)\n {\n from: 'idle', to: 'running', event: 'START',\n effects: [\n ['set', '@entity.remaining', c.duration],\n ['set', '@entity.status', 'running'],\n ['render-ui', 'main', timerView(runningButtons)],\n ],\n },\n // TICK: running -> running\n {\n from: 'running', to: 'running', event: 'TICK',\n effects: [\n ['render-ui', 'main', timerView(runningButtons)],\n ],\n },\n // PAUSE: running -> paused\n {\n from: 'running', to: 'paused', event: 'PAUSE',\n effects: [\n ['set', '@entity.status', 'paused'],\n ['render-ui', 'main', timerView(pausedButtons)],\n ],\n },\n // RESUME: paused -> running\n {\n from: 'paused', to: 'running', event: 'RESUME',\n effects: [\n ['set', '@entity.status', 'running'],\n ['render-ui', 'main', timerView(runningButtons)],\n ],\n },\n // EXPIRE: running -> expired\n {\n from: 'running', to: 'expired', event: 'EXPIRE',\n effects: [\n ['set', '@entity.status', 'expired'],\n ['render-ui', 'main', expiredView],\n ],\n },\n // RESET: running -> idle\n {\n from: 'running', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.status', 'idle'],\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n // RESET: paused -> idle\n {\n from: 'paused', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.status', 'idle'],\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n // RESET: expired -> idle\n {\n from: 'expired', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.status', 'idle'],\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: TimerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdTimerEntity(params: StdTimerParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdTimerTrait(params: StdTimerParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdTimerPage(params: StdTimerParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdTimer(params: StdTimerParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-tabs\n *\n * Tab navigation atom. Uses the `tabs` pattern component\n * with clickable tab headers. Each tab shows different entity data.\n *\n * @level atom\n * @family tabs\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTabsParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Tab definitions: each tab has a label and the fields it shows */\n tabItems?: Array<{ label: string; value: string }>;\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TabsConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n tabItems: Array<{ label: string; value: string }>;\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTabsParams): TabsConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const fields = baseFields;\n\n const nonIdFields = fields.filter(f => f.name !== 'id');\n\n // Default tabs: one per non-id field (excluding domain-only fields)\n const tabItems = params.tabItems ?? nonIdFields.filter(f => f.name !== 'activeTab').map(f => ({\n label: f.name.charAt(0).toUpperCase() + f.name.slice(1),\n value: f.name,\n }));\n\n return {\n entityName, fields, nonIdFields, tabItems,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Tabs`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'layout-grid',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}TabsPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: TabsConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: TabsConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle, tabItems } = c;\n\n // Tab content with accordion for hierarchical data within each tab\n const tabContentChildren: unknown[] = [\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: [\n { type: 'typography', variant: 'h4', content: `@item.${displayField}` },\n { type: 'typography', variant: 'caption', color: 'muted', content: `@item.${tabItems[0]?.value ?? displayField}` },\n ] }],\n },\n ];\n\n // Note: accordion for tab content removed due to compiler limitation\n // (nested pattern config objects in props not compiled to JSX)\n\n const initView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'divider' },\n {\n type: 'tabs',\n tabs: tabItems,\n defaultActiveTab: tabItems[0]?.value ?? '',\n onTabChange: 'SELECT_TAB',\n },\n { type: 'divider' },\n ...tabContentChildren,\n ],\n };\n\n const tabSelectedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'divider' },\n {\n type: 'tabs',\n tabs: tabItems,\n defaultActiveTab: tabItems[0]?.value ?? '',\n activeTab: '@payload.tab',\n onTabChange: 'SELECT_TAB',\n },\n { type: 'divider' },\n ...tabContentChildren,\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT_TAB', name: 'Select Tab', payload: [\n { name: 'tab', type: 'string', required: true },\n ] },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', initView]] },\n { from: 'idle', to: 'idle', event: 'SELECT_TAB', effects: [['fetch', entityName], ['render-ui', 'main', tabSelectedView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: TabsConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdTabsEntity(params: StdTabsParams): Entity { return buildEntity(resolve(params)); }\nexport function stdTabsTrait(params: StdTabsParams): Trait { return buildTrait(resolve(params)); }\nexport function stdTabsPage(params: StdTabsParams): Page { return buildPage(resolve(params)); }\n\nexport function stdTabs(params: StdTabsParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-loading as a Function\n *\n * Loading behavior parameterized for any domain.\n * Provides a multi-state loading lifecycle: idle, loading, success, error.\n * Tracks async operation status with appropriate UI for each state.\n *\n * @level atom\n * @family loading\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdLoadingParams {\n /** Entity name in PascalCase (e.g., \"Request\", \"Upload\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Title text (defaults to entity name) */\n title?: string;\n\n // Standalone mode\n /** When true (default), renders idle state with Start button to main. When false, only renders loading/success/error states. */\n standalone?: boolean;\n\n // Page\n /** Page name (defaults to \"{Entity}LoadingPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/loading\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface LoadingConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n title: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdLoadingParams): LoadingConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure loadingStatus tracking field exists on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'loadingStatus') ? [] : [{ name: 'loadingStatus', type: 'string' as const, default: 'idle' }]),\n ];\n\n const nonIdFields = baseFields.filter(f => f.name !== 'id' && f.name !== 'loadingStatus');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Loading`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'loader',\n title: params.title ?? entityName,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}LoadingPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/loading`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: LoadingConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: LoadingConfig): Trait {\n const { entityName, headerIcon, title } = c;\n\n const idleView = {\n type: 'center',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'play-circle', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'body', color: 'muted',\n content: `Ready to load ${title.toLowerCase()}. Click Start to begin.` },\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n ],\n }],\n };\n\n // Loading view: loading-state + spinner + progress bar\n const loadingView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'loading-state', title: 'Loading', message: `Loading ${title.toLowerCase()}...` },\n { type: 'spinner', size: 'lg' },\n { type: 'progress-bar', value: 50, showPercentage: true },\n { type: 'skeleton', variant: 'text' },\n ],\n };\n\n // Success view: alert molecule with success variant\n const successView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Success', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'success', message: 'Operation completed successfully.' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // Error view: error-boundary wrapping error-state with retry support\n const errorView = {\n type: 'error-boundary',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Error', message: 'Something went wrong. Please try again.', onRetry: 'START' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'START', variant: 'primary', icon: 'rotate-ccw' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost' },\n ],\n },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'loading' },\n { name: 'success' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Loading' },\n { key: 'LOADED', name: 'Loaded' },\n { key: 'FAILED', name: 'Failed' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: c.standalone\n ? [['set', '@entity.loadingStatus', 'idle'], ['render-ui', 'main', idleView]]\n : [['set', '@entity.loadingStatus', 'idle']],\n },\n {\n from: 'idle', to: 'loading', event: 'START',\n effects: [\n ['set', '@entity.loadingStatus', 'loading'],\n ['render-ui', 'main', loadingView],\n ],\n },\n {\n from: 'loading', to: 'success', event: 'LOADED',\n effects: [\n ['set', '@entity.loadingStatus', 'success'],\n ['render-ui', 'main', successView],\n ],\n },\n {\n from: 'loading', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.loadingStatus', 'error'],\n ['render-ui', 'main', errorView],\n ],\n },\n {\n from: 'error', to: 'loading', event: 'START',\n effects: [\n ['set', '@entity.loadingStatus', 'loading'],\n ['render-ui', 'main', loadingView],\n ],\n },\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.loadingStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'success', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.loadingStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: LoadingConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdLoadingEntity(params: StdLoadingParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdLoadingTrait(params: StdLoadingParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdLoadingPage(params: StdLoadingParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdLoading(params: StdLoadingParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-selection as a Function\n *\n * Selection behavior parameterized for any domain.\n * Provides item selection from a list with confirm/deselect controls.\n * Three states: idle, selecting, selected with transitions for the full lifecycle.\n *\n * @level atom\n * @family selection\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSelectionParams {\n /** Entity name in PascalCase (e.g., \"Item\", \"Option\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title (defaults to plural entity name) */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}SelectionPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/selection\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SelectionConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSelectionParams): SelectionConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n const fields = baseFields;\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Selection`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'check-square',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}SelectionPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/selection`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: SelectionConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SelectionConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'caption', color: 'muted',\n content: `Choose a ${entityName.toLowerCase()} to continue.` },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n itemActions: [{ label: 'Select', event: 'SELECT', icon: 'check' }],\n renderItem: ['fn', 'item', {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'checkbox', label: `@item.${displayField}` },\n ],\n }],\n },\n ],\n };\n\n const selectingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'badge', label: 'Selecting' },\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'x' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'alert', variant: 'info',\n message: ['concat', 'Selected: ', '@payload.id'],\n },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n itemActions: [{ label: 'Select', event: 'SELECT', icon: 'check' }],\n renderItem: ['fn', 'item', {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'checkbox', label: `@item.${displayField}`, checked: ['==', '@item.id', '@payload.id'] },\n ],\n }],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'button', label: 'Select All', action: 'SELECT', icon: 'check-square', variant: 'secondary' },\n { type: 'button', label: 'Deselect All', action: 'DESELECT', icon: 'square', variant: 'secondary' },\n { type: 'button', label: 'Confirm', action: 'CONFIRM_SELECTION', icon: 'check', variant: 'primary' },\n ],\n },\n ],\n };\n\n const selectedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Selection Confirmed', variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Confirmed' },\n ],\n },\n { type: 'divider' },\n {\n type: 'alert', variant: 'success',\n message: 'Selection confirmed successfully.',\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', content: 'Selected ID:' },\n { type: 'typography', variant: 'body', content: '@payload.id' },\n ],\n },\n { type: 'button', label: 'Clear Selection', event: 'CLEAR', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'selecting' },\n { name: 'selected' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT', name: 'Select', payload: [\n { name: 'id', type: 'string', required: true },\n ] },\n { key: 'DESELECT', name: 'Deselect' },\n { key: 'CLEAR', name: 'Clear' },\n { key: 'CONFIRM_SELECTION', name: 'Confirm Selection', payload: [\n { name: 'id', type: 'string', required: true },\n ] },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'selecting', event: 'SELECT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', selectingView],\n ],\n },\n {\n from: 'selecting', to: 'selecting', event: 'SELECT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', selectingView],\n ],\n },\n {\n from: 'selecting', to: 'idle', event: 'DESELECT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'selecting', to: 'idle', event: 'CLEAR',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'selecting', to: 'selected', event: 'CONFIRM_SELECTION',\n effects: [\n ['render-ui', 'main', selectedView],\n ],\n },\n {\n from: 'selected', to: 'idle', event: 'CLEAR',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SelectionConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSelectionEntity(params: StdSelectionParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSelectionTrait(params: StdSelectionParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSelectionPage(params: StdSelectionParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSelection(params: StdSelectionParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-undo\n *\n * Undo/Redo atom using array operators as a stack.\n * - PUSH: appends to undoStack, clears redoStack\n * - UNDO: pops from undoStack, pushes to redoStack\n * - REDO: pops from redoStack, pushes to undoStack\n * - CLEAR: empties both stacks\n *\n * Entity fields: undoStack (array), redoStack (array), current (string)\n *\n * @level atom\n * @family undo\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdUndoParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface UndoConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdUndoParams): UndoConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Add stack fields if not present\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'undoStack') ? [] : [{ name: 'undoStack', type: 'array' as const, default: [] }]),\n ...(baseFields.some(f => f.name === 'redoStack') ? [] : [{ name: 'redoStack', type: 'array' as const, default: [] }]),\n ...(baseFields.some(f => f.name === 'current') ? [] : [{ name: 'current', type: 'string' as const, default: '' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Undo`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'history',\n pageTitle: params.pageTitle ?? 'History',\n pageName: params.pageName ?? `${entityName}UndoPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/undo`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: UndoConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: UndoConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'tooltip', content: 'Undo the last action', children: [\n { type: 'button', label: 'Undo', event: 'UNDO', variant: 'ghost', icon: 'undo' },\n ] },\n { type: 'tooltip', content: 'Redo the last undone action', children: [\n { type: 'button', label: 'Redo', event: 'REDO', variant: 'ghost', icon: 'redo' },\n ] },\n { type: 'divider', orientation: 'vertical' },\n { type: 'tooltip', content: 'Clear all history', children: [\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'trash-2' },\n ] },\n ] },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Last action:' },\n { type: 'badge', label: ef('current') },\n ] },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'PUSH', name: 'Push', payload: [{ name: 'data', type: 'string', required: true }] },\n { key: 'UNDO', name: 'Undo' },\n { key: 'REDO', name: 'Redo' },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n // INIT\n { from: 'idle', to: 'idle', event: 'INIT', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', mainView],\n ] },\n // PUSH: save current to undoStack, set current to new value, clear redoStack\n { from: 'idle', to: 'idle', event: 'PUSH', effects: [\n ['set', '@entity.undoStack', ['array/append', '@entity.undoStack', '@entity.current']],\n ['set', '@entity.current', '@payload.data'],\n ['set', '@entity.redoStack', []],\n ['render-ui', 'main', mainView],\n ] },\n // UNDO: push current to redoStack, pop last from undoStack to current\n { from: 'idle', to: 'idle', event: 'UNDO', effects: [\n ['set', '@entity.redoStack', ['array/append', '@entity.redoStack', '@entity.current']],\n ['set', '@entity.current', ['array/last', '@entity.undoStack']],\n ['set', '@entity.undoStack', ['array/slice', '@entity.undoStack', 0, -1]],\n ['render-ui', 'main', mainView],\n ] },\n // REDO: push current to undoStack, pop last from redoStack to current\n { from: 'idle', to: 'idle', event: 'REDO', effects: [\n ['set', '@entity.undoStack', ['array/append', '@entity.undoStack', '@entity.current']],\n ['set', '@entity.current', ['array/last', '@entity.redoStack']],\n ['set', '@entity.redoStack', ['array/slice', '@entity.redoStack', 0, -1]],\n ['render-ui', 'main', mainView],\n ] },\n // CLEAR: empty both stacks, clear current\n { from: 'idle', to: 'idle', event: 'CLEAR', effects: [\n ['set', '@entity.undoStack', []],\n ['set', '@entity.redoStack', []],\n ['set', '@entity.current', ''],\n ['render-ui', 'main', mainView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: UndoConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Build the undo entity.\n *\n * @param {StdUndoParams} params - Undo configuration parameters\n * @returns {Entity} The configured undo entity\n */\nexport function stdUndoEntity(params: StdUndoParams): Entity { return buildEntity(resolve(params)); }\n/**\n * Build the undo trait.\n *\n * @param {StdUndoParams} params - Undo configuration parameters\n * @returns {Trait} The configured undo trait\n */\nexport function stdUndoTrait(params: StdUndoParams): Trait { return buildTrait(resolve(params)); }\n/**\n * Build the undo page.\n *\n * @param {StdUndoParams} params - Undo configuration parameters\n * @returns {Page} The configured undo page\n */\nexport function stdUndoPage(params: StdUndoParams): Page { return buildPage(resolve(params)); }\n\nexport function stdUndo(params: StdUndoParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-input as a Function\n *\n * Input state management parameterized for any domain.\n * Provides idle, focused, and validating states with change tracking.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family input\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdInputParams {\n /** Entity name in PascalCase (e.g., \"Field\", \"TextInput\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Input label */\n inputLabel?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}InputPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/input\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface InputConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n inputLabel: string;\n placeholder: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdInputParams): InputConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure input-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'value') ? [] : [{ name: 'value', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'inputStatus') ? [] : [{ name: 'inputStatus', type: 'string' as const, default: 'idle' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Input`,\n pluralName: p,\n inputLabel: params.inputLabel ?? entityName,\n placeholder: params.placeholder ?? `Enter ${entityName.toLowerCase()}...`,\n headerIcon: params.headerIcon ?? 'text-cursor-input',\n pageName: params.pageName ?? `${entityName}InputPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/input`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: InputConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: InputConfig): Trait {\n const { entityName, inputLabel, placeholder, headerIcon } = c;\n\n // Input view using form-field for proper label+input+error structure\n const inputView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: inputLabel, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'form-field',\n label: inputLabel,\n hint: 'Type to enter a value.',\n children: [\n { type: 'input', placeholder, event: 'CHANGE' },\n ],\n },\n { type: 'typography', variant: 'caption', color: 'muted', content: ef('value') },\n ],\n };\n\n const validatingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: inputLabel, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'form-field',\n label: inputLabel,\n hint: 'Validating...',\n children: [\n { type: 'input', placeholder, event: 'CHANGE' },\n ],\n },\n { type: 'alert', variant: 'info', message: 'Validating input...' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'focused' },\n { name: 'validating' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FOCUS', name: 'Focus' },\n { key: 'BLUR', name: 'Blur' },\n { key: 'CHANGE', name: 'Change', payload: [{ name: 'value', type: 'string', required: true }] },\n { key: 'VALIDATE', name: 'Validate' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', inputView],\n ],\n },\n // FOCUS: idle -> focused\n {\n from: 'idle', to: 'focused', event: 'FOCUS',\n effects: [\n ['set', '@entity.inputStatus', 'focused'],\n ['render-ui', 'main', inputView],\n ],\n },\n // CHANGE: focused -> focused\n {\n from: 'focused', to: 'focused', event: 'CHANGE',\n effects: [\n ['set', '@entity.value', '@payload.value'],\n ['render-ui', 'main', inputView],\n ],\n },\n // BLUR: focused -> idle\n {\n from: 'focused', to: 'idle', event: 'BLUR',\n effects: [\n ['set', '@entity.inputStatus', 'idle'],\n ['render-ui', 'main', inputView],\n ],\n },\n // VALIDATE: focused -> validating\n {\n from: 'focused', to: 'validating', event: 'VALIDATE',\n effects: [\n ['set', '@entity.inputStatus', 'validating'],\n ['render-ui', 'main', validatingView],\n ],\n },\n // BLUR: validating -> idle\n {\n from: 'validating', to: 'idle', event: 'BLUR',\n effects: [\n ['set', '@entity.inputStatus', 'idle'],\n ['render-ui', 'main', inputView],\n ],\n },\n // INIT: focused -> focused (self-loop)\n {\n from: 'focused', to: 'focused', event: 'INIT',\n effects: [\n ['render-ui', 'main', inputView],\n ],\n },\n // INIT: validating -> validating (self-loop)\n {\n from: 'validating', to: 'validating', event: 'INIT',\n effects: [\n ['render-ui', 'main', validatingView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: InputConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdInputEntity(params: StdInputParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdInputTrait(params: StdInputParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdInputPage(params: StdInputParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdInput(params: StdInputParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-wizard\n *\n * Multi-step wizard behavior parameterized for any domain.\n * Generates a dynamic number of steps based on the `steps` parameter,\n * with a review screen and completion view.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family workflow\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport type { Entity } from '@almadar/core/types';\nimport type { Page } from '@almadar/core/types';\nimport type { Trait } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdWizardParams {\n /** Entity name in PascalCase (e.g., \"Onboarding\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Collection name for persistent entities (defaults to lowercase plural) */\n collection?: string;\n\n /** Wizard steps: each step has a name and the fields it displays */\n steps: Array<{\n name: string;\n fields: string[];\n }>;\n\n // Labels\n /** Wizard title (defaults to \"Setup Wizard\") */\n wizardTitle?: string;\n /** Completion title (defaults to \"Complete!\") */\n completeTitle?: string;\n /** Completion description (defaults to \"Your {entity} has been created successfully.\") */\n completeDescription?: string;\n /** Submit button label on review (defaults to \"Complete\") */\n submitButtonLabel?: string;\n\n // Icons\n /** Header icon (Lucide name, defaults to \"clipboard\") */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}Page\") */\n pageName?: string;\n /** Route path (defaults to \"/wizard\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface WizardConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n steps: Array<{ name: string; fields: string[] }>;\n totalSteps: number;\n wizardProgressSteps: string[];\n traitName: string;\n wizardTitle: string;\n completeTitle: string;\n completeDescription: string;\n submitButtonLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdWizardParams): WizardConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const steps = params.steps ?? [{ name: 'Details', fields: nonIdFields.map(f => f.name) }];\n\n return {\n entityName,\n fields,\n nonIdFields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n steps,\n totalSteps: steps.length,\n wizardProgressSteps: steps.map(s => s.name),\n traitName: `${entityName}Wizard`,\n wizardTitle: params.wizardTitle ?? 'Setup Wizard',\n completeTitle: params.completeTitle ?? 'Complete!',\n completeDescription: params.completeDescription ?? `Your ${entityName.toLowerCase()} has been created successfully.`,\n submitButtonLabel: params.submitButtonLabel ?? 'Complete',\n headerIcon: params.headerIcon ?? 'clipboard',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? '/wizard',\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: WizardConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildStepUI(c: WizardConfig, stepIndex: number): Record<string, unknown> {\n const step = c.steps[stepIndex];\n const stepNumber = stepIndex + 1;\n const isFirst = stepIndex === 0;\n\n const navButtons: unknown[] = [];\n if (!isFirst) {\n navButtons.push({ type: 'button', label: 'Back', event: 'PREV', variant: 'ghost', icon: 'arrow-left' });\n }\n navButtons.push({ type: 'button', label: 'Next', event: 'NEXT', variant: 'primary', icon: 'arrow-right' });\n\n // Wrap step content in container; use repeatable-form-section for repeatable steps\n const formNode = step.fields.length > 1 && stepIndex > 0\n ? { type: 'repeatable-form-section', entity: c.entityName, mode: 'create', submitEvent: 'NEXT', cancelEvent: isFirst ? 'INIT' : 'PREV', fields: step.fields }\n : { type: 'form-section', entity: c.entityName, mode: 'create', submitEvent: 'NEXT', cancelEvent: isFirst ? 'INIT' : 'PREV', fields: step.fields };\n\n return {\n type: 'container', maxWidth: 'lg', padding: 'lg',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: c.headerIcon, size: 'lg' },\n { type: 'typography', content: c.wizardTitle, variant: 'h2' },\n ],\n },\n { type: 'progress-dots', count: c.totalSteps, currentIndex: stepIndex },\n { type: 'wizard-progress', steps: c.wizardProgressSteps, currentStep: stepIndex },\n { type: 'divider' },\n { type: 'typography', content: step.name, variant: 'h3' },\n formNode,\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: navButtons,\n },\n ],\n }],\n };\n}\n\nfunction buildReviewUI(c: WizardConfig): Record<string, unknown> {\n // Review shows the current entity's details as label/value pairs.\n // Uses @entity.field bindings (single entity from useEntityById) instead of\n // data-list iteration which would show the entire collection.\n const reviewRows: unknown[] = c.nonIdFields.map(field => ({\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n { type: 'typography', variant: 'caption', content: field.name.charAt(0).toUpperCase() + field.name.slice(1).replace(/([A-Z])/g, ' $1') },\n { type: 'typography', variant: 'body', content: `@entity.${field.name}` },\n ],\n }));\n\n return {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: c.headerIcon, size: 'lg' },\n { type: 'typography', content: c.wizardTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Review' },\n { type: 'wizard-progress', steps: c.wizardProgressSteps, currentStep: c.totalSteps },\n { type: 'divider' },\n {\n type: 'stack', direction: 'vertical', gap: 'sm', entity: c.entityName,\n children: reviewRows,\n },\n {\n type: 'wizard-navigation',\n currentStep: c.totalSteps,\n totalSteps: c.totalSteps + 1,\n showBack: true,\n showComplete: true,\n showNext: false,\n },\n ],\n };\n}\n\nfunction buildCompleteUI(c: WizardConfig): Record<string, unknown> {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: c.completeTitle, variant: 'h2' },\n { type: 'typography', content: c.completeDescription, variant: 'body' },\n { type: 'button', label: 'Start New', event: 'RESTART', variant: 'primary', icon: 'refresh-cw' },\n ],\n };\n}\n\nfunction buildTrait(c: WizardConfig): Trait {\n const { entityName, totalSteps } = c;\n\n // States: step1..stepN, review, complete\n const states: Array<{ name: string; isInitial?: boolean }> = [];\n for (let i = 0; i < totalSteps; i++) {\n states.push({ name: `step${i + 1}`, ...(i === 0 ? { isInitial: true } : {}) });\n }\n states.push({ name: 'review' });\n states.push({ name: 'complete' });\n\n // Events\n const events = [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NEXT', name: 'Next Step', payload: [{ name: 'data', type: 'object' as const, required: true }] },\n { key: 'PREV', name: 'Previous Step' },\n { key: 'COMPLETE', name: 'Complete Wizard', payload: [{ name: 'data', type: 'object' as const, required: true }] },\n { key: 'RESTART', name: 'Restart Wizard' },\n ];\n\n // Transitions\n const transitions: unknown[] = [];\n\n // step1 + INIT -> step1\n transitions.push({\n from: 'step1', to: 'step1', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, 0)],\n ],\n });\n\n // stepN + NEXT -> step(N+1) for all but last step\n for (let i = 0; i < totalSteps - 1; i++) {\n transitions.push({\n from: `step${i + 1}`, to: `step${i + 2}`, event: 'NEXT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, i + 1)],\n ],\n });\n }\n\n // last step + NEXT -> review\n transitions.push({\n from: `step${totalSteps}`, to: 'review', event: 'NEXT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildReviewUI(c)],\n ],\n });\n\n // stepN + PREV -> step(N-1) for steps 2..N\n for (let i = 1; i < totalSteps; i++) {\n transitions.push({\n from: `step${i + 1}`, to: `step${i}`, event: 'PREV',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, i - 1)],\n ],\n });\n }\n\n // review + PREV -> last step\n transitions.push({\n from: 'review', to: `step${totalSteps}`, event: 'PREV',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, totalSteps - 1)],\n ],\n });\n\n // review + COMPLETE -> complete\n transitions.push({\n from: 'review', to: 'complete', event: 'COMPLETE',\n effects: [\n ['persist', 'create', entityName, '@payload.data'],\n ['notify', 'success', `${entityName} created successfully`],\n ['render-ui', 'main', buildCompleteUI(c)],\n ],\n });\n\n // complete + RESTART -> step1\n transitions.push({\n from: 'complete', to: 'step1', event: 'RESTART',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, 0)],\n ],\n });\n\n // complete + INIT -> step1\n transitions.push({\n from: 'complete', to: 'step1', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, 0)],\n ],\n });\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states,\n events,\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: WizardConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdWizardEntity(params: StdWizardParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdWizardTrait(params: StdWizardParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdWizardPage(params: StdWizardParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdWizard(params: StdWizardParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-display\n *\n * Read-only display molecule with loading/refresh.\n * Single trait (display is self-contained, no modal atoms needed).\n * Used for dashboards, stats panels, KPIs.\n *\n * @level molecule\n * @family display\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDisplayParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n displayFields?: string[];\n pageTitle?: string;\n refreshButtonLabel?: string;\n headerIcon?: string;\n columns?: number;\n emptyTitle?: string;\n emptyDescription?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DisplayConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n displayFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n refreshButtonLabel: string;\n headerIcon: string;\n columns: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDisplayParams): DisplayConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n displayFields: params.displayFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Display`,\n pageTitle: params.pageTitle ?? p,\n refreshButtonLabel: params.refreshButtonLabel ?? 'Refresh',\n headerIcon: params.headerIcon ?? 'bar-chart-2',\n columns: params.columns ?? 3,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builder\n// ============================================================================\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: DisplayConfig): Trait {\n const { entityName, displayFields, headerIcon, pageTitle, refreshButtonLabel, columns } = c;\n\n // Use stat-display molecule for numeric fields, card+typography for others\n const cardChildren = displayFields.map(f => {\n const field = c.nonIdFields.find(nf => nf.name === f);\n const isNumeric = field?.type === 'number';\n if (isNumeric) {\n return { type: 'stat-display', label: f.charAt(0).toUpperCase() + f.slice(1), value: ef(f) };\n }\n return {\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'caption', content: f.charAt(0).toUpperCase() + f.slice(1) },\n { type: 'typography', variant: 'h3', content: ef(f) },\n ],\n }],\n };\n });\n\n const mainView = {\n type: 'scaled-diagram',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'breadcrumb', items: [{ label: 'Home', href: '/' }, { label: pageTitle }] },\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'button', label: refreshButtonLabel, event: 'REFRESH', variant: 'secondary', icon: 'refresh-cw' },\n ] },\n { type: 'divider' },\n { type: 'box', padding: 'md', children: [\n { type: 'simple-grid', columns, children: cardChildren },\n ] },\n { type: 'divider' },\n { type: 'grid', columns: 2, gap: 'md', children: [\n { type: 'card', children: [{ type: 'typography', variant: 'caption', content: 'Chart View' }] },\n { type: 'card', children: [{ type: 'typography', variant: 'caption', content: 'Graph View' }] },\n ] },\n { type: 'line-chart', data: [\n { date: 'Jan', value: 12 }, { date: 'Feb', value: 19 }, { date: 'Mar', value: 15 },\n { date: 'Apr', value: 25 }, { date: 'May', value: 22 }, { date: 'Jun', value: 30 },\n ], xKey: 'date', yKey: 'value', title: 'Trend' },\n { type: 'chart-legend', items: [{ label: 'Current', color: 'primary' }, { label: 'Previous', color: 'muted' }] },\n { type: 'graph-view', nodes: [\n { id: 'a', label: 'Start', x: 50, y: 100 },\n { id: 'b', label: 'Process', x: 200, y: 50 },\n { id: 'c', label: 'End', x: 350, y: 100 },\n ], edges: [\n { from: 'a', to: 'b' },\n { from: 'b', to: 'c' },\n ], width: 400, height: 200 },\n ],\n }],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'loading', isInitial: true },\n { name: 'displaying' },\n { name: 'refreshing' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LOADED', name: 'Loaded' },\n { key: 'REFRESH', name: 'Refresh' },\n { key: 'REFRESHED', name: 'Refreshed' },\n ],\n transitions: [\n { from: 'loading', to: 'displaying', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'loading', to: 'displaying', event: 'LOADED', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'displaying', to: 'displaying', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'displaying', to: 'refreshing', event: 'REFRESH', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'refreshing', to: 'displaying', event: 'REFRESHED', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdDisplayEntity(params: StdDisplayParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\n/**\n * Build the display trait.\n *\n * @param {StdDisplayParams} params - Display configuration parameters\n * @returns {Trait} The configured display trait\n */\nexport function stdDisplayTrait(params: StdDisplayParams): Trait { return buildTrait(resolve(params)); }\n\nexport function stdDisplayPage(params: StdDisplayParams): Page {\n const c = resolve(params);\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDisplay(params: StdDisplayParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection }),\n [buildTrait(c)],\n [makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial })],\n );\n}\n","/**\n * std-async\n *\n * Async operation behavior: idle, loading, success, error.\n * Covers fetch, submit, retry, and polling patterns in one molecule.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family async\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdAsyncParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n loadingMessage?: string;\n successMessage?: string;\n errorMessage?: string;\n\n // Icons\n headerIcon?: string;\n\n // Options\n retryable?: boolean;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface AsyncConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n loadingMessage: string;\n successMessage: string;\n errorMessage: string;\n headerIcon: string;\n retryable: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdAsyncParams): AsyncConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Async`,\n loadingMessage: params.loadingMessage ?? 'Loading...',\n successMessage: params.successMessage ?? 'Operation completed successfully.',\n errorMessage: params.errorMessage ?? 'An error occurred. Please try again.',\n headerIcon: params.headerIcon ?? 'loader',\n retryable: params.retryable ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: AsyncConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: AsyncConfig): Trait {\n const { entityName, headerIcon, loadingMessage, successMessage, errorMessage, retryable } = c;\n\n // Idle view with descriptive prompt\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Ready to start ${entityName.toLowerCase()} operation.` },\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n ],\n };\n\n // Loading view: loading-state molecule + skeleton placeholder\n const loadingUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'loading-state', title: loadingMessage, message: `Processing ${entityName.toLowerCase()}...` },\n { type: 'skeleton', variant: 'text' },\n ],\n };\n\n // Success view: alert molecule\n const successUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: successMessage },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n // Error view: error-state molecule\n const errorButtons: unknown[] = [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ];\n if (retryable) {\n errorButtons.unshift({ type: 'button', label: 'Retry', event: 'RETRY', variant: 'primary', icon: 'refresh-cw' });\n }\n\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Operation Failed', message: errorMessage, onRetry: retryable ? 'RETRY' : undefined },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: errorButtons,\n },\n ],\n };\n\n const transitions: unknown[] = [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleUI],\n ],\n },\n // START: idle -> loading\n {\n from: 'idle', to: 'loading', event: 'START',\n effects: [['render-ui', 'main', loadingUI]],\n },\n // LOADED: loading -> success\n {\n from: 'loading', to: 'success', event: 'LOADED',\n effects: [\n ['persist', 'create', entityName, '@payload.data'],\n ['render-ui', 'main', successUI],\n ],\n },\n // FAILED: loading -> error\n {\n from: 'loading', to: 'error', event: 'FAILED',\n effects: [['render-ui', 'main', errorUI]],\n },\n // RESET: success -> idle\n {\n from: 'success', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n // RETRY: error -> loading (only if retryable)\n if (retryable) {\n transitions.push({\n from: 'error', to: 'loading', event: 'RETRY',\n effects: [['render-ui', 'main', loadingUI]],\n });\n }\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'loading' },\n { name: 'success' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'LOADED', name: 'Loaded', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'FAILED', name: 'Failed', payload: [{ name: 'error', type: 'string', required: true }] },\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: AsyncConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdAsyncEntity(params: StdAsyncParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdAsyncTrait(params: StdAsyncParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdAsyncPage(params: StdAsyncParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdAsync(params: StdAsyncParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-combat\n *\n * Attack cycle behavior: ready, attacking, cooldown, defeated.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCombatParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n attackLabel?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CombatConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n attackLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCombatParams): CombatConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields required by render-ui bindings (@entity.hp, @entity.attack, @entity.defense)\n const domainFields: EntityField[] = [\n { name: 'hp', type: 'number', default: 100 },\n { name: 'attack', type: 'number', default: 10 },\n { name: 'defense', type: 'number', default: 5 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Combat`,\n attackLabel: params.attackLabel ?? 'Attack',\n headerIcon: params.headerIcon ?? 'swords',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CombatConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: CombatConfig): Trait {\n const { entityName, attackLabel } = c;\n\n // Ready view: game-hud with HP/Attack/Defense stats + Attack button\n const readyUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'game-hud', position: 'top',\n stats: [\n { label: 'HP', value: '@entity.hp' },\n { label: 'Attack', value: '@entity.attack' },\n { label: 'Defense', value: '@entity.defense' },\n ],\n },\n { type: 'button', label: attackLabel, event: 'ATTACK', variant: 'primary', icon: 'swords' },\n ],\n };\n\n // Attacking view: game-hud + Cooldown End button\n const attackingUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'game-hud', position: 'top',\n stats: [\n { label: 'HP', value: '@entity.hp' },\n { label: 'Attack', value: '@entity.attack' },\n { label: 'Defense', value: '@entity.defense' },\n ],\n },\n { type: 'button', label: 'Cooldown End', event: 'HIT', variant: 'secondary', icon: 'clock' },\n ],\n };\n\n // Cooldown view: game-hud + badge showing cooldown status\n const cooldownUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'game-hud', position: 'top',\n stats: [\n { label: 'HP', value: '@entity.hp' },\n { label: 'Attack', value: '@entity.attack' },\n { label: 'Defense', value: '@entity.defense' },\n ],\n },\n { type: 'badge', label: 'Cooling down...' },\n ],\n };\n\n // Defeated view: game-over-screen with title + Reset button\n const defeatedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'game-over-screen', title: 'Defeated', variant: 'defeat' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'ready', isInitial: true },\n { name: 'attacking' },\n { name: 'cooldown' },\n { name: 'defeated' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ATTACK', name: 'Attack', payload: [{ name: 'targetId', type: 'string', required: true }] },\n { key: 'HIT', name: 'Hit', payload: [{ name: 'damage', type: 'number', required: true }] },\n { key: 'COOLDOWN_END', name: 'Cooldown End' },\n { key: 'DEFEAT', name: 'Defeat' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT: ready -> ready\n {\n from: 'ready', to: 'ready', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', readyUI],\n ],\n },\n // ATTACK: ready -> attacking\n {\n from: 'ready', to: 'attacking', event: 'ATTACK',\n effects: [['render-ui', 'main', attackingUI]],\n },\n // HIT: attacking -> cooldown\n {\n from: 'attacking', to: 'cooldown', event: 'HIT',\n effects: [['render-ui', 'main', cooldownUI]],\n },\n // COOLDOWN_END: cooldown -> ready\n {\n from: 'cooldown', to: 'ready', event: 'COOLDOWN_END',\n effects: [['render-ui', 'main', readyUI]],\n },\n // DEFEAT: attacking -> defeated\n {\n from: 'attacking', to: 'defeated', event: 'DEFEAT',\n effects: [['render-ui', 'main', defeatedUI]],\n },\n // DEFEAT: cooldown -> defeated\n {\n from: 'cooldown', to: 'defeated', event: 'DEFEAT',\n effects: [['render-ui', 'main', defeatedUI]],\n },\n // RESET: defeated -> ready\n {\n from: 'defeated', to: 'ready', event: 'RESET',\n effects: [['render-ui', 'main', readyUI]],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CombatConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCombatEntity(params: StdCombatParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCombatTrait(params: StdCombatParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCombatPage(params: StdCombatParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCombat(params: StdCombatParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-gameflow\n *\n * Game state management behavior: menu, playing, paused, gameover.\n * Uses game UI patterns per state:\n * menu -> game-menu (title, subtitle, Start Game button)\n * playing -> game-hud (score, level stats)\n * paused -> game-menu in modal (Resume, Quit buttons)\n * gameover -> game-over-screen (score, Play Again, Main Menu)\n *\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameflowParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n gameTitle?: string;\n menuTitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameflowConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n menuTitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameflowParams): GameflowConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields required by render-ui bindings (@entity.score, @entity.level)\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Gameflow`,\n gameTitle: params.gameTitle ?? entityName,\n menuTitle: params.menuTitle ?? 'Main Menu',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Game Over',\n headerIcon: params.headerIcon ?? 'gamepad-2',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: GameflowConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: GameflowConfig): Trait {\n const { entityName, gameTitle, menuTitle, pauseTitle, gameoverTitle } = c;\n\n // Menu state: game-menu with Start Game button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuTitle,\n menuItems: [\n { label: 'Start Game', event: 'START', variant: 'primary' },\n ],\n };\n\n // Playing state: game-hud with score/level stats\n const playingUI = {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: ef('score') },\n { label: 'Level', value: ef('level') },\n ],\n };\n\n // Paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // Game over state: game-over-screen with score and actions\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Score', value: ef('score') },\n { label: 'Level', value: ef('level') },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Game Over' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing (dismiss modal, re-render main with HUD)\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameflowConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdGameflowEntity(params: StdGameflowParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdGameflowTrait(params: StdGameflowParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdGameflowPage(params: StdGameflowParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdGameflow(params: StdGameflowParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-movement\n *\n * Entity movement behavior: idle, moving, collision detection and resolution.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family simulation\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdMovementParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n pageTitle?: string;\n\n // Icons\n headerIcon?: string;\n\n // Config\n moveSpeed?: number;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface MovementConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n headerIcon: string;\n moveSpeed: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdMovementParams): MovementConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Movement`,\n pageTitle: params.pageTitle ?? `${p} Movement`,\n headerIcon: params.headerIcon ?? 'move',\n moveSpeed: params.moveSpeed ?? 1,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: MovementConfig): Entity {\n const fields = [\n ...c.fields.filter(f => !['x', 'y'].includes(f.name)),\n { name: 'x', type: 'number' as const, default: 0 },\n { name: 'y', type: 'number' as const, default: 0 },\n ];\n return makeEntity({ name: c.entityName, fields, persistence: c.persistence, collection: c.collection });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: MovementConfig): Trait {\n const { entityName, nonIdFields, headerIcon, pageTitle } = c;\n\n // Entity field summary: use stat-display for position, badge for status\n const fieldSummaryChildren: unknown[] = [\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'X', value: ef(nonIdFields.find(f => f.name === 'x')?.name ?? 'x') },\n { type: 'stat-display', label: 'Y', value: ef(nonIdFields.find(f => f.name === 'y')?.name ?? 'y') },\n ],\n },\n ...nonIdFields.slice(0, 4).filter(f => f.name !== 'x' && f.name !== 'y').map(field => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: field.name.charAt(0).toUpperCase() + field.name.slice(1) },\n { type: 'typography', variant: 'body', content: ef(field.name) },\n ],\n })),\n ];\n\n // Idle main view\n const idleMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'status-dot', status: 'inactive', label: 'Idle' },\n ],\n },\n { type: 'divider' },\n ...fieldSummaryChildren,\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Move', event: 'MOVE', variant: 'primary', icon: 'navigation' },\n ],\n },\n ],\n };\n\n // Moving view\n const movingMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'status-dot', status: 'active', pulse: true, label: 'Moving' },\n ],\n },\n { type: 'divider' },\n ...fieldSummaryChildren,\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Stop', event: 'STOP', variant: 'danger', icon: 'square' },\n ],\n },\n ],\n };\n\n // Collision modal\n const collisionModalUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'icon', name: 'alert-triangle', size: 'md' },\n { type: 'typography', content: 'Collision Detected', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: 'A collision has been detected. Resolve to continue.', variant: 'body' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Cancel', event: 'CANCEL', variant: 'ghost' },\n { type: 'button', label: 'Resolve', event: 'RESOLVE', variant: 'primary', icon: 'check' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'moving' },\n { name: 'colliding' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'MOVE', name: 'Move', payload: [{ name: 'x', type: 'number', required: true }, { name: 'y', type: 'number', required: true }] },\n { key: 'STOP', name: 'Stop' },\n { key: 'COLLISION', name: 'Collision', payload: [{ name: 'targetId', type: 'string', required: true }] },\n { key: 'RESOLVE', name: 'Resolve' },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n // INIT: idle -> idle (fetch + render)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // MOVE: idle -> moving\n {\n from: 'idle', to: 'moving', event: 'MOVE',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', movingMainUI],\n ],\n },\n // STOP: moving -> idle\n {\n from: 'moving', to: 'idle', event: 'STOP',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // COLLISION: moving -> colliding\n {\n from: 'moving', to: 'colliding', event: 'COLLISION',\n effects: [\n ['render-ui', 'modal', collisionModalUI],\n ],\n },\n // RESOLVE: colliding -> idle\n {\n from: 'colliding', to: 'idle', event: 'RESOLVE',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // CANCEL: colliding -> idle\n {\n from: 'colliding', to: 'idle', event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // CLOSE: colliding -> idle\n {\n from: 'colliding', to: 'idle', event: 'CLOSE',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: MovementConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdMovementEntity(params: StdMovementParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdMovementTrait(params: StdMovementParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdMovementPage(params: StdMovementParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdMovement(params: StdMovementParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-quest\n *\n * Quest/objective tracking behavior: available, active, complete, failed.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family gameplay\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdQuestParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n formFields?: string[];\n\n // Labels\n pageTitle?: string;\n questTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface QuestConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n questTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdQuestParams): QuestConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Tracking`,\n pageTitle: params.pageTitle ?? `${p} Board`,\n questTitle: params.questTitle ?? entityName,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} available`,\n emptyDescription: params.emptyDescription ?? `Check back later for new ${p.toLowerCase()}.`,\n headerIcon: params.headerIcon ?? 'flag',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: QuestConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: QuestConfig): Trait {\n const { entityName, listFields, formFields, headerIcon } = c;\n const { pageTitle, emptyTitle, emptyDescription } = c;\n\n // List item children for data-grid\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@item.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@item.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({ type: 'typography', variant: 'caption', content: `@item.${listFields[2]}` });\n }\n\n // Header bar\n const headerBar = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n ],\n };\n\n // Available quests view with timeline for quest progression\n const availableMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n headerBar,\n { type: 'divider' },\n {\n type: 'data-list', entity: entityName, groupBy: 'status',\n emptyIcon: 'inbox', emptyTitle, emptyDescription,\n itemActions: [{ label: 'Accept', event: 'ACCEPT' }],\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Active quest view with progress tracking + accordion for objectives\n const activeMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Active' },\n ],\n },\n { type: 'divider' },\n { type: 'progress-bar', value: 50, showPercentage: true },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle: 'No active quests', emptyDescription: 'Accept a quest to begin.',\n itemActions: [\n { label: 'Progress', event: 'PROGRESS' },\n { label: 'Complete', event: 'COMPLETE' },\n { label: 'Fail', event: 'FAIL', variant: 'danger' },\n ],\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Complete view with success alert\n const completeMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Quest Complete', variant: 'h2' },\n { type: 'alert', variant: 'success', message: 'Congratulations! The quest has been completed.' },\n { type: 'button', label: 'View Quests', event: 'RESET', variant: 'primary', icon: 'arrow-left' },\n ],\n };\n\n // Failed view with error alert\n const failedMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'x-circle', size: 'lg' },\n { type: 'typography', content: 'Quest Failed', variant: 'h2' },\n { type: 'alert', variant: 'danger', message: 'The quest was not completed. You can try again.' },\n { type: 'button', label: 'View Quests', event: 'RESET', variant: 'primary', icon: 'arrow-left' },\n ],\n };\n\n // Progress modal\n const progressModalUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'icon', name: 'trending-up', size: 'md' },\n { type: 'typography', content: 'Update Progress', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'edit', submitEvent: 'SAVE', cancelEvent: 'CANCEL', fields: formFields },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'available', isInitial: true },\n { name: 'active' },\n { name: 'progressing' },\n { name: 'complete' },\n { name: 'failed' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ACCEPT', name: 'Accept' },\n { key: 'PROGRESS', name: 'Progress', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'SAVE', name: 'Save', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'FAIL', name: 'Fail' },\n { key: 'RESET', name: 'Reset' },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n // INIT: available -> available\n {\n from: 'available', to: 'available', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', availableMainUI],\n ],\n },\n // ACCEPT: available -> active\n {\n from: 'available', to: 'active', event: 'ACCEPT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // INIT: active -> active (refresh)\n {\n from: 'active', to: 'active', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // PROGRESS: active -> progressing (modal)\n {\n from: 'active', to: 'progressing', event: 'PROGRESS',\n effects: [\n ['render-ui', 'modal', progressModalUI],\n ],\n },\n // SAVE: progressing -> active\n {\n from: 'progressing', to: 'active', event: 'SAVE',\n effects: [\n ['persist', 'update', entityName, '@payload.data'],\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // CANCEL: progressing -> active (re-render main to avoid stale content)\n {\n from: 'progressing', to: 'active', event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // CLOSE: progressing -> active (re-render main to avoid stale content)\n {\n from: 'progressing', to: 'active', event: 'CLOSE',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // COMPLETE: active -> complete\n {\n from: 'active', to: 'complete', event: 'COMPLETE',\n effects: [\n ['render-ui', 'main', completeMainUI],\n ],\n },\n // FAIL: active -> failed\n {\n from: 'active', to: 'failed', event: 'FAIL',\n effects: [\n ['render-ui', 'main', failedMainUI],\n ],\n },\n // RESET: complete -> available\n {\n from: 'complete', to: 'available', event: 'RESET',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', availableMainUI],\n ],\n },\n // RESET: failed -> available\n {\n from: 'failed', to: 'available', event: 'RESET',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', availableMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: QuestConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdQuestEntity(params: StdQuestParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdQuestTrait(params: StdQuestParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdQuestPage(params: StdQuestParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdQuest(params: StdQuestParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-overworld\n *\n * Map/zone navigation behavior: exploring, transitioning, entered.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family navigation\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdOverworldParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n\n // Labels\n pageTitle?: string;\n worldTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface OverworldConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n worldTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdOverworldParams): OverworldConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Navigation`,\n pageTitle: params.pageTitle ?? `${p} Map`,\n worldTitle: params.worldTitle ?? 'World Map',\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} discovered`,\n emptyDescription: params.emptyDescription ?? `Explore to discover new ${p.toLowerCase()}.`,\n headerIcon: params.headerIcon ?? 'map',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: OverworldConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: OverworldConfig): Trait {\n const { entityName, listFields, headerIcon } = c;\n const { pageTitle, worldTitle, emptyTitle, emptyDescription } = c;\n\n // List item children for data-grid\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'map-pin', size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@item.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@item.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({ type: 'typography', variant: 'caption', content: `@item.${listFields[2]}` });\n }\n\n // Exploring main view with map-view and status\n const exploringMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: worldTitle, variant: 'h2' },\n ],\n },\n { type: 'status-dot', status: 'active', pulse: false, label: 'Exploring' },\n ],\n },\n { type: 'divider' },\n { type: 'map-view', markers: [], height: '200px', zoom: 10 },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'compass', emptyTitle, emptyDescription,\n itemActions: [{ label: 'Travel', event: 'TRAVEL' }],\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Transitioning view\n const transitioningMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: 'loader', size: 'lg' },\n { type: 'typography', content: 'Traveling...', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: `Traveling to the destination ${pageTitle.toLowerCase()}.`, variant: 'body' },\n ],\n };\n\n // Entered zone view\n const enteredMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'status-dot', status: 'success', label: 'Entered' },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle: 'Nothing here', emptyDescription: 'This zone is empty.',\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Back to Map', event: 'BACK', variant: 'ghost', icon: 'arrow-left' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'exploring', isInitial: true },\n { name: 'transitioning' },\n { name: 'entered' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TRAVEL', name: 'Travel', payload: [{ name: 'zoneId', type: 'string', required: true }] },\n { key: 'ARRIVE', name: 'Arrive' },\n { key: 'BACK', name: 'Back' },\n ],\n transitions: [\n // INIT: exploring -> exploring\n {\n from: 'exploring', to: 'exploring', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', exploringMainUI],\n ],\n },\n // TRAVEL: exploring -> transitioning\n {\n from: 'exploring', to: 'transitioning', event: 'TRAVEL',\n effects: [\n ['render-ui', 'main', transitioningMainUI],\n ],\n },\n // ARRIVE: transitioning -> entered\n {\n from: 'transitioning', to: 'entered', event: 'ARRIVE',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', enteredMainUI],\n ],\n },\n // BACK: entered -> exploring\n {\n from: 'entered', to: 'exploring', event: 'BACK',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', exploringMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: OverworldConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdOverworldEntity(params: StdOverworldParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdOverworldTrait(params: StdOverworldParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdOverworldPage(params: StdOverworldParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdOverworld(params: StdOverworldParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-circuit-breaker\n *\n * Circuit breaker pattern behavior: closed, open, halfOpen.\n * Protects services from cascading failures with automatic recovery.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family resilience\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCircuitBreakerParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n closedLabel?: string;\n openLabel?: string;\n halfOpenLabel?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CircuitBreakerConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n closedLabel: string;\n openLabel: string;\n halfOpenLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCircuitBreakerParams): CircuitBreakerConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}CircuitBreaker`,\n closedLabel: params.closedLabel ?? 'Circuit Closed',\n openLabel: params.openLabel ?? 'Circuit Open',\n halfOpenLabel: params.halfOpenLabel ?? 'Circuit Half-Open',\n headerIcon: params.headerIcon ?? 'shield',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CircuitBreakerConfig): Entity {\n // Add circuit breaker metric fields\n const fields = [\n ...c.fields.filter(f => !['failureCount', 'successCount', 'threshold'].includes(f.name)),\n { name: 'failureCount', type: 'number' as const, default: 0 },\n { name: 'successCount', type: 'number' as const, default: 0 },\n { name: 'threshold', type: 'number' as const, default: 5 },\n ];\n const instances = [\n { id: 'sn-1', name: 'ServiceNode', description: 'Primary API gateway', status: 'active', createdAt: '2026-01-10', failureCount: 783, successCount: 603, threshold: 5 },\n ];\n return makeEntity({ name: c.entityName, fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\n// Helper: read a field from the first entity in the collection\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: CircuitBreakerConfig): Trait {\n const { entityName, headerIcon, closedLabel, openLabel, halfOpenLabel } = c;\n\n // Closed view: healthy, accepting requests\n const closedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ] },\n { type: 'status-dot', status: 'success', pulse: false, label: closedLabel },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'success', message: 'Service is healthy. All requests are being processed.' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'Failures', value: ef('failureCount') },\n { type: 'stat-display', label: 'Successes', value: ef('successCount') },\n ],\n },\n { type: 'meter', value: ef('failureCount'), min: 0, max: ef('threshold') },\n ],\n };\n\n // Open view: tripped, rejecting requests\n const openUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: 'alert-triangle', size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ] },\n { type: 'status-dot', status: 'error', pulse: true, label: openLabel },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'danger', message: 'Circuit is open. Requests are being rejected to prevent cascading failures.' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'Failures', value: ef('failureCount') },\n { type: 'stat-display', label: 'Successes', value: ef('successCount') },\n ],\n },\n { type: 'meter', value: ef('failureCount'), min: 0, max: ef('threshold') },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // Half-open view: testing recovery\n const halfOpenUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: 'activity', size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ] },\n { type: 'status-dot', status: 'warning', pulse: true, label: halfOpenLabel },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'warning', message: 'Testing recovery. Limited requests are being allowed through.' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'Failures', value: ef('failureCount') },\n { type: 'stat-display', label: 'Successes', value: ef('successCount') },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'closed', isInitial: true },\n { name: 'open' },\n { name: 'halfOpen' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FAILURE', name: 'Failure' },\n { key: 'SUCCESS', name: 'Success' },\n { key: 'TIMEOUT', name: 'Timeout' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT: closed -> closed\n {\n from: 'closed', to: 'closed', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', closedUI],\n ],\n },\n // FAILURE: closed -> open (threshold reached)\n {\n from: 'closed', to: 'open', event: 'FAILURE',\n effects: [['render-ui', 'main', openUI]],\n },\n // SUCCESS: closed -> closed (healthy)\n {\n from: 'closed', to: 'closed', event: 'SUCCESS',\n effects: [['render-ui', 'main', closedUI]],\n },\n // TIMEOUT: open -> halfOpen (try recovery)\n {\n from: 'open', to: 'halfOpen', event: 'TIMEOUT',\n effects: [['render-ui', 'main', halfOpenUI]],\n },\n // RESET: open -> closed (manual reset)\n {\n from: 'open', to: 'closed', event: 'RESET',\n effects: [['render-ui', 'main', closedUI]],\n },\n // SUCCESS: halfOpen -> closed (recovered)\n {\n from: 'halfOpen', to: 'closed', event: 'SUCCESS',\n effects: [['render-ui', 'main', closedUI]],\n },\n // FAILURE: halfOpen -> open (still failing)\n {\n from: 'halfOpen', to: 'open', event: 'FAILURE',\n effects: [['render-ui', 'main', openUI]],\n },\n // RESET: halfOpen -> closed (manual reset)\n {\n from: 'halfOpen', to: 'closed', event: 'RESET',\n effects: [['render-ui', 'main', closedUI]],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CircuitBreakerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCircuitBreakerEntity(params: StdCircuitBreakerParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCircuitBreakerTrait(params: StdCircuitBreakerParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCircuitBreakerPage(params: StdCircuitBreakerParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCircuitBreaker(params: StdCircuitBreakerParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-cache-aside\n *\n * Cache management behavior: empty, cached, stale with fetch/invalidate cycle.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family infrastructure\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCacheAsideParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n\n // Labels\n pageTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Config\n ttl?: number;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CacheAsideConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n ttl: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCacheAsideParams): CacheAsideConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}CacheManager`,\n pageTitle: params.pageTitle ?? `${p} Cache`,\n emptyTitle: params.emptyTitle ?? 'Cache is empty',\n emptyDescription: params.emptyDescription ?? 'Fetch data to populate the cache.',\n headerIcon: params.headerIcon ?? 'database',\n ttl: params.ttl ?? 300,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CacheAsideConfig): Entity {\n // Add cache metric fields\n const fields = [\n ...c.fields.filter(f => !['hitCount', 'cacheAge'].includes(f.name)),\n { name: 'hitCount', type: 'number' as const, default: 0 },\n { name: 'cacheAge', type: 'number' as const, default: 0 },\n ];\n return makeEntity({ name: c.entityName, fields, persistence: c.persistence, collection: c.collection });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: CacheAsideConfig): Trait {\n const { entityName, listFields, headerIcon } = c;\n const { pageTitle, emptyTitle, emptyDescription } = c;\n\n // List item children for data-grid\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@item.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@item.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({ type: 'typography', variant: 'caption', content: `@item.${listFields[2]}` });\n }\n\n // Header bar\n const headerBar = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Fetch', event: 'FETCH', variant: 'primary', icon: 'download' },\n ],\n };\n\n // Empty state main view with status dot\n const emptyMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n headerBar,\n { type: 'status-dot', status: 'inactive', pulse: false, label: 'Empty' },\n ],\n },\n { type: 'divider' },\n { type: 'empty-state', icon: 'inbox', title: emptyTitle, description: emptyDescription },\n ],\n };\n\n // Cached state main view with status dot + stats\n const cachedMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'status-dot', status: 'success', pulse: false, label: 'Cached' },\n { type: 'button', label: 'Invalidate', event: 'INVALIDATE', variant: 'ghost', icon: 'trash' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'Hit Count', value: ef('hitCount') },\n { type: 'stat-display', label: 'Cache Age', value: ef('cacheAge') },\n ],\n },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle, emptyDescription,\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Stale state main view with warning status + timeline\n const staleMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'status-dot', status: 'warning', pulse: true, label: 'Stale' },\n { type: 'button', label: 'Refresh', event: 'REFRESH', variant: 'primary', icon: 'refresh-cw' },\n ],\n },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'warning', message: 'Cache data is stale. Refresh to get the latest data.' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle, emptyDescription,\n renderItem: ['fn', 'item', { type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'empty', isInitial: true },\n { name: 'cached' },\n { name: 'stale' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FETCH', name: 'Fetch' },\n { key: 'CACHED', name: 'Cached', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'INVALIDATE', name: 'Invalidate' },\n { key: 'REFRESH', name: 'Refresh' },\n ],\n transitions: [\n // INIT: empty -> empty\n {\n from: 'empty', to: 'empty', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', emptyMainUI],\n ],\n },\n // FETCH: empty -> cached\n {\n from: 'empty', to: 'cached', event: 'FETCH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // INIT: cached -> cached (refresh)\n {\n from: 'cached', to: 'cached', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // CACHED: cached -> cached (update with new data)\n {\n from: 'cached', to: 'cached', event: 'CACHED',\n effects: [\n ['persist', 'update', entityName, '@payload.data'],\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // INVALIDATE: cached -> stale\n {\n from: 'cached', to: 'stale', event: 'INVALIDATE',\n effects: [\n ['render-ui', 'main', staleMainUI],\n ],\n },\n // REFRESH: stale -> cached\n {\n from: 'stale', to: 'cached', event: 'REFRESH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // FETCH: stale -> cached (same as refresh)\n {\n from: 'stale', to: 'cached', event: 'FETCH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CacheAsideConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCacheAsideEntity(params: StdCacheAsideParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCacheAsideTrait(params: StdCacheAsideParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCacheAsidePage(params: StdCacheAsideParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCacheAside(params: StdCacheAsideParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-score as a Function\n *\n * Score tracking parameterized for any domain.\n * Provides a single-state machine with self-loops for adding, subtracting,\n * resetting, and applying combo multipliers to a score.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family score\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdScoreParams {\n /** Entity name in PascalCase (e.g., \"Points\", \"GameScore\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Score title */\n scoreTitle?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}ScorePage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/score\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ScoreConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n scoreTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdScoreParams): ScoreConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure score-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'total') ? [] : [{ name: 'total', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'combo') ? [] : [{ name: 'combo', type: 'number' as const, default: 1 }]),\n ...(baseFields.some(f => f.name === 'points') ? [] : [{ name: 'points', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'multiplier') ? [] : [{ name: 'multiplier', type: 'number' as const, default: 1 }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Score`,\n pluralName: p,\n scoreTitle: params.scoreTitle ?? 'Score',\n headerIcon: params.headerIcon ?? 'trophy',\n pageName: params.pageName ?? `${entityName}ScorePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/score`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: ScoreConfig): Entity {\n const instances = [\n { id: 'score-1', name: 'Player 1', description: 'Current session', status: 'active', createdAt: '2026-03-19', total: 1250, combo: 3, points: 150, multiplier: 2 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: ScoreConfig): Trait {\n const { entityName } = c;\n\n const scoreView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'score-board',\n score: ef('total'),\n highScore: 0,\n combo: ef('combo'),\n multiplier: 1,\n level: 1,\n },\n { type: 'animated-counter', value: ef('total'), prefix: 'Score: ', duration: 300 },\n { type: 'trend-indicator', value: ef('points'), showValue: true },\n { type: 'spacer', size: 'md' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Add', event: 'ADD', variant: 'primary', icon: 'plus' },\n { type: 'button', label: 'Subtract', event: 'SUBTRACT', variant: 'secondary', icon: 'minus' },\n { type: 'button', label: 'Combo', event: 'COMBO', variant: 'secondary', icon: 'zap' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADD', name: 'Add Points', payload: [{ name: 'points', type: 'number', required: true }] },\n { key: 'SUBTRACT', name: 'Subtract Points', payload: [{ name: 'points', type: 'number', required: true }] },\n { key: 'RESET', name: 'Reset' },\n { key: 'COMBO', name: 'Combo', payload: [{ name: 'multiplier', type: 'number', required: true }] },\n ],\n transitions: [\n // INIT: idle -> idle (fetch entity to load seed data)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', scoreView],\n ],\n },\n // ADD: idle -> idle (self-loop)\n {\n from: 'idle', to: 'idle', event: 'ADD',\n effects: [\n ['set', '@entity.points', '@payload.points'],\n ['render-ui', 'main', scoreView],\n ],\n },\n // SUBTRACT: idle -> idle (self-loop)\n {\n from: 'idle', to: 'idle', event: 'SUBTRACT',\n effects: [\n ['set', '@entity.points', '@payload.points'],\n ['render-ui', 'main', scoreView],\n ],\n },\n // COMBO: idle -> idle (self-loop with confetti celebration)\n {\n from: 'idle', to: 'idle', event: 'COMBO',\n effects: [\n ['set', '@entity.multiplier', '@payload.multiplier'],\n ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'confetti-effect', trigger: true },\n ...scoreView.children,\n ],\n }],\n ],\n },\n // RESET: idle -> idle (self-loop)\n {\n from: 'idle', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.total', 0],\n ['set', '@entity.combo', 1],\n ['render-ui', 'main', scoreView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: ScoreConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdScoreEntity(params: StdScoreParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdScoreTrait(params: StdScoreParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdScorePage(params: StdScoreParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdScore(params: StdScoreParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-calendar\n *\n * Calendar browsing atom with month/day/slot views.\n * Absorbs: calendar-grid, day-cell, time-slot-cell, date-range-selector.\n *\n * @level atom\n * @family calendar\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCalendarParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CalendarConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCalendarParams): CalendarConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'date') ? [] : [{ name: 'date', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'time') ? [] : [{ name: 'time', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'duration') ? [] : [{ name: 'duration', type: 'number' as const, default: 60 }]),\n ];\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Calendar`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'calendar',\n pageTitle: params.pageTitle ?? `${p} Calendar`,\n pageName: params.pageName ?? `${entityName}CalendarPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/calendar`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: CalendarConfig): Entity {\n const instances = [\n { id: 'evt-1', name: 'Team Standup', description: 'Daily sync', status: 'active', createdAt: '2026-03-19', date: '2026-03-19', time: '09:00', duration: 30 },\n { id: 'evt-2', name: 'Sprint Review', description: 'End of sprint demo', status: 'active', createdAt: '2026-03-19', date: '2026-03-21', time: '14:00', duration: 60 },\n { id: 'evt-3', name: 'Design Workshop', description: 'UI/UX review session', status: 'pending', createdAt: '2026-03-19', date: '2026-03-22', time: '10:30', duration: 90 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\nfunction buildTrait(c: CalendarConfig): Trait {\n const { entityName, displayField, headerIcon, pageTitle } = c;\n\n const monthView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'date-range-selector', startDate: '2026-01-01', endDate: '2026-12-31', onSelect: 'SELECT_DAY' },\n ],\n },\n { type: 'divider' },\n {\n type: 'calendar-grid', month: 3, year: 2026,\n },\n { type: 'divider' },\n { type: 'typography', variant: 'h4', content: 'Upcoming Events' },\n {\n type: 'data-list', entity: entityName,\n emptyIcon: 'calendar',\n emptyTitle: 'No events',\n emptyDescription: 'No events scheduled.',\n columns: [\n { name: displayField, label: 'Event', variant: 'h4', icon: 'calendar' },\n { name: 'time', label: 'Time', variant: 'badge' },\n { name: 'date', label: 'Date', variant: 'caption', format: 'date' },\n { name: 'status', label: 'Status', variant: 'badge' },\n ],\n itemActions: [{ label: 'View', event: 'SELECT_DAY', icon: 'eye' }],\n },\n ],\n };\n\n const dayView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'clock', size: 'lg' },\n { type: 'typography', content: 'Day View', variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Back to Month', event: 'BACK', variant: 'ghost', icon: 'arrow-left' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'h4', content: 'Events for Selected Day' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'calendar',\n emptyTitle: 'No events today',\n emptyDescription: 'Select a time slot to add an event.',\n columns: [\n { name: displayField, label: 'Event', variant: 'h4', icon: 'clock' },\n { name: 'time', label: 'Time', variant: 'badge' },\n { name: 'status', label: 'Status', variant: 'badge' },\n ],\n itemActions: [{ label: 'Select', event: 'SELECT_SLOT', icon: 'check' }],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'month-view', isInitial: true },\n { name: 'day-view' },\n { name: 'slot-selected' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT_DAY', name: 'Select Day', payload: [{ name: 'date', type: 'string', required: true }] },\n { key: 'SELECT_SLOT', name: 'Select Slot', payload: [{ name: 'time', type: 'string', required: true }] },\n { key: 'BACK', name: 'Back' },\n ],\n transitions: [\n { from: 'month-view', to: 'month-view', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', monthView]] },\n { from: 'month-view', to: 'day-view', event: 'SELECT_DAY', effects: [['fetch', entityName], ['render-ui', 'main', dayView]] },\n { from: 'day-view', to: 'slot-selected', event: 'SELECT_SLOT', effects: [['set', '@entity.time', '@payload.time'], ['render-ui', 'main', dayView]] },\n { from: 'day-view', to: 'month-view', event: 'BACK', effects: [['fetch', entityName], ['render-ui', 'main', monthView]] },\n { from: 'slot-selected', to: 'month-view', event: 'BACK', effects: [['fetch', entityName], ['render-ui', 'main', monthView]] },\n { from: 'slot-selected', to: 'day-view', event: 'SELECT_DAY', effects: [['fetch', entityName], ['render-ui', 'main', dayView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CalendarConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdCalendarEntity(params: StdCalendarParams): Entity { return buildEntity(resolve(params)); }\nexport function stdCalendarTrait(params: StdCalendarParams): Trait { return buildTrait(resolve(params)); }\nexport function stdCalendarPage(params: StdCalendarParams): Page { return buildPage(resolve(params)); }\n\nexport function stdCalendar(params: StdCalendarParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-gallery\n *\n * Image gallery atom with carousel browsing and lightbox viewing.\n * Absorbs: carousel, lightbox.\n *\n * @level atom\n * @family gallery\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGalleryParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GalleryConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGalleryParams): GalleryConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'imageUrl') ? [] : [{ name: 'imageUrl', type: 'string' as const, default: 'https://picsum.photos/seed/gallery/800/600' }]),\n ];\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Gallery`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'image',\n pageTitle: params.pageTitle ?? `${p} Gallery`,\n pageName: params.pageName ?? `${entityName}GalleryPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/gallery`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GalleryConfig): Entity {\n const instances = Array.from({ length: 9 }, (_, i) => ({\n id: `img-${i + 1}`,\n name: ['Mountain Peak', 'Ocean Sunset', 'Forest Trail', 'City Skyline', 'Desert Dunes', 'Northern Lights', 'Coral Reef', 'Autumn Leaves', 'Snowy Valley'][i],\n description: `Gallery image ${i + 1}`,\n status: ['active', 'active', 'active', 'pending', 'active', 'active', 'inactive', 'active', 'active'][i],\n createdAt: '2026-01-15',\n imageUrl: `https://picsum.photos/seed/gallery${i + 1}/800/600`,\n }));\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\nfunction buildTrait(c: GalleryConfig): Trait {\n const { entityName, displayField, headerIcon, pageTitle } = c;\n\n const sampleImages = [\n { src: 'https://picsum.photos/seed/gallery1/800/600', alt: 'Mountain landscape', caption: 'Mountain landscape' },\n { src: 'https://picsum.photos/seed/gallery2/800/600', alt: 'Ocean sunset', caption: 'Ocean sunset' },\n { src: 'https://picsum.photos/seed/gallery3/800/600', alt: 'Forest trail', caption: 'Forest trail' },\n ];\n\n const browsingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Click any image to view full size' },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n cols: 3,\n gap: 'md',\n imageField: 'imageUrl',\n emptyIcon: 'image',\n emptyTitle: 'No images yet',\n emptyDescription: 'Add images to your gallery.',\n itemActions: [{ label: 'View', event: 'VIEW', icon: 'maximize' }],\n columns: [\n { name: 'name', label: 'Title', variant: 'h4' },\n { name: 'status', label: 'Status', variant: 'badge' },\n ],\n },\n ],\n };\n\n const viewingView = {\n type: 'lightbox', isOpen: true, closeAction: 'CLOSE',\n images: sampleImages,\n currentIndex: 0,\n showCounter: true,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'browsing', isInitial: true },\n { name: 'viewing' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'VIEW', name: 'View', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n { from: 'browsing', to: 'browsing', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', browsingView]] },\n { from: 'browsing', to: 'viewing', event: 'VIEW', effects: [['render-ui', 'modal', viewingView]] },\n { from: 'viewing', to: 'browsing', event: 'CLOSE', effects: [['render-ui', 'modal', null], ['render-ui', 'main', browsingView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GalleryConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGalleryEntity(params: StdGalleryParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGalleryTrait(params: StdGalleryParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGalleryPage(params: StdGalleryParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGallery(params: StdGalleryParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-flip-card\n *\n * Flip card atom for flashcard-style front/back content.\n * Absorbs: flip-container, flip-card.\n *\n * @level atom\n * @family flip-card\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdFlipCardParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface FlipCardConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n secondaryField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdFlipCardParams): FlipCardConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'question') ? [] : [{ name: 'question', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'answer') ? [] : [{ name: 'answer', type: 'string' as const, default: '' }]),\n ];\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n secondaryField: nonIdFields[1]?.name ?? nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}FlipCard`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'rotate-3d',\n pageTitle: params.pageTitle ?? `${p} Flashcards`,\n pageName: params.pageName ?? `${entityName}FlipCardPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/flashcards`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildEntity(c: FlipCardConfig): Entity {\n const instances = [\n { id: 'fc-1', name: 'What is photosynthesis?', description: 'The process by which plants convert sunlight into energy', status: 'active', createdAt: '2026-01-01', question: 'What is photosynthesis?', answer: 'The process by which green plants use sunlight to synthesize foods from carbon dioxide and water.' },\n { id: 'fc-2', name: 'What is the speed of light?', description: '299,792,458 meters per second', status: 'active', createdAt: '2026-01-02', question: 'What is the speed of light?', answer: 'Approximately 299,792,458 meters per second in a vacuum.' },\n { id: 'fc-3', name: 'What is DNA?', description: 'Deoxyribonucleic acid', status: 'active', createdAt: '2026-01-03', question: 'What is DNA?', answer: 'Deoxyribonucleic acid, the molecule that carries genetic instructions for life.' },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\nfunction buildTrait(c: FlipCardConfig): Trait {\n const { entityName, displayField, secondaryField, headerIcon, pageTitle } = c;\n\n const frontFace = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'help-circle', size: 'lg' },\n { type: 'typography', variant: 'h3', content: ef(displayField) },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Tap to reveal answer' },\n ],\n };\n\n const backFace = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'lightbulb', size: 'lg' },\n { type: 'typography', variant: 'h3', content: ef(secondaryField) },\n { type: 'badge', label: 'Answer' },\n ],\n };\n\n const frontView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'flip-card',\n front: frontFace,\n back: backFace,\n flipped: false,\n },\n { type: 'button', label: 'Flip', event: 'FLIP', variant: 'primary', icon: 'rotate-3d' },\n ],\n };\n\n const backView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'flip-card',\n front: frontFace,\n back: backFace,\n flipped: true,\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Flip Back', event: 'FLIP_BACK', variant: 'ghost', icon: 'rotate-3d' },\n { type: 'button', label: 'Next', event: 'NEXT', variant: 'primary', icon: 'arrow-right' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'front', isInitial: true },\n { name: 'back' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FLIP', name: 'Flip Card' },\n { key: 'FLIP_BACK', name: 'Flip Back' },\n { key: 'NEXT', name: 'Next Card' },\n ],\n transitions: [\n { from: 'front', to: 'front', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', frontView]] },\n { from: 'front', to: 'back', event: 'FLIP', effects: [['render-ui', 'main', backView]] },\n { from: 'back', to: 'front', event: 'FLIP_BACK', effects: [['render-ui', 'main', frontView]] },\n { from: 'back', to: 'front', event: 'NEXT', effects: [['fetch', entityName], ['render-ui', 'main', frontView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: FlipCardConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdFlipCardEntity(params: StdFlipCardParams): Entity { return buildEntity(resolve(params)); }\nexport function stdFlipCardTrait(params: StdFlipCardParams): Trait { return buildTrait(resolve(params)); }\nexport function stdFlipCardPage(params: StdFlipCardParams): Page { return buildPage(resolve(params)); }\n\nexport function stdFlipCard(params: StdFlipCardParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-rating\n *\n * Rating atom with star-rating input and display.\n * Absorbs: star-rating.\n *\n * @level atom\n * @family rating\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRatingParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n maxRating?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface RatingConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n maxRating: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdRatingParams): RatingConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'rating') ? [] : [{ name: 'rating', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'comment') ? [] : [{ name: 'comment', type: 'string' as const, default: '' }]),\n ];\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Rating`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'star',\n pageTitle: params.pageTitle ?? 'Rating',\n maxRating: params.maxRating ?? 5,\n pageName: params.pageName ?? `${entityName}RatingPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/rating`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildEntity(c: RatingConfig): Entity {\n const instances = [\n { id: 'rev-1', name: 'Great product', description: 'Exceeded expectations', status: 'active', createdAt: '2026-01-10', rating: 4, comment: 'Really solid quality' },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\nfunction buildTrait(c: RatingConfig): Trait {\n const { entityName, headerIcon, pageTitle, maxRating } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'body', color: 'muted', content: 'How would you rate this?' },\n { type: 'star-rating', value: ef('rating'), max: maxRating, event: 'RATE', size: 'lg' },\n { type: 'button', label: 'Submit Rating', event: 'RATE', variant: 'primary', icon: 'star' },\n ],\n };\n\n const ratedView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Thank You!', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'star-rating', value: ef('rating'), max: maxRating, readOnly: true, size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Your rating has been recorded.' },\n { type: 'button', label: 'Rate Again', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'rated' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'RATE', name: 'Rate', payload: [{ name: 'rating', type: 'number', required: true }] },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'rated', event: 'RATE', effects: [['set', '@entity.rating', '@payload.rating'], ['render-ui', 'main', ratedView]] },\n { from: 'rated', to: 'idle', event: 'RESET', effects: [['set', '@entity.rating', 0], ['render-ui', 'main', idleView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: RatingConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdRatingEntity(params: StdRatingParams): Entity { return buildEntity(resolve(params)); }\nexport function stdRatingTrait(params: StdRatingParams): Trait { return buildTrait(resolve(params)); }\nexport function stdRatingPage(params: StdRatingParams): Page { return buildPage(resolve(params)); }\n\nexport function stdRating(params: StdRatingParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-upload\n *\n * File upload atom with drag-and-drop zone and progress tracking.\n * Absorbs: upload-drop-zone.\n *\n * @level atom\n * @family upload\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdUploadParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n acceptedTypes?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface UploadConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n acceptedTypes: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdUploadParams): UploadConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'fileName') ? [] : [{ name: 'fileName', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'fileSize') ? [] : [{ name: 'fileSize', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'uploadStatus') ? [] : [{ name: 'uploadStatus', type: 'string' as const, default: 'idle' }]),\n ];\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Upload`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'upload',\n pageTitle: params.pageTitle ?? 'Upload',\n acceptedTypes: params.acceptedTypes ?? '*/*',\n pageName: params.pageName ?? `${entityName}UploadPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/upload`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildEntity(c: UploadConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: UploadConfig): Trait {\n const { entityName, headerIcon, pageTitle, acceptedTypes } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'upload-drop-zone', accept: acceptedTypes, event: 'UPLOAD', multiple: false, maxSize: 10485760 },\n ],\n };\n\n const uploadingView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'upload', size: 'lg' },\n { type: 'typography', content: 'Uploading...', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'body', content: ef('fileName') },\n { type: 'progress-bar', value: 50, showPercentage: true },\n { type: 'spinner', size: 'md' },\n ],\n };\n\n const completeView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Upload Complete', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'success', message: 'File uploaded successfully.' },\n { type: 'typography', variant: 'caption', color: 'muted', content: ef('fileName') },\n { type: 'button', label: 'Upload Another', event: 'RESET', variant: 'primary', icon: 'upload' },\n ],\n };\n\n const errorView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Upload Failed', message: 'Something went wrong. Please try again.', onRetry: 'UPLOAD' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'RETRY', variant: 'primary', icon: 'rotate-ccw' },\n { type: 'button', label: 'Cancel', event: 'RESET', variant: 'ghost' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'uploading' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'UPLOAD', name: 'Upload', payload: [{ name: 'fileName', type: 'string', required: true }] },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'FAILED', name: 'Failed' },\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'uploading', event: 'UPLOAD', effects: [['set', '@entity.fileName', '@payload.fileName'], ['set', '@entity.uploadStatus', 'uploading'], ['render-ui', 'main', uploadingView]] },\n { from: 'uploading', to: 'complete', event: 'COMPLETE', effects: [['set', '@entity.uploadStatus', 'complete'], ['render-ui', 'main', completeView]] },\n { from: 'uploading', to: 'error', event: 'FAILED', effects: [['set', '@entity.uploadStatus', 'error'], ['render-ui', 'main', errorView]] },\n { from: 'error', to: 'uploading', event: 'RETRY', effects: [['set', '@entity.uploadStatus', 'uploading'], ['render-ui', 'main', uploadingView]] },\n { from: 'error', to: 'idle', event: 'RESET', effects: [['set', '@entity.uploadStatus', 'idle'], ['render-ui', 'main', idleView]] },\n { from: 'complete', to: 'idle', event: 'RESET', effects: [['set', '@entity.uploadStatus', 'idle'], ['render-ui', 'main', idleView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: UploadConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdUploadEntity(params: StdUploadParams): Entity { return buildEntity(resolve(params)); }\nexport function stdUploadTrait(params: StdUploadParams): Trait { return buildTrait(resolve(params)); }\nexport function stdUploadPage(params: StdUploadParams): Page { return buildPage(resolve(params)); }\n\nexport function stdUpload(params: StdUploadParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-theme\n *\n * Theme selection atom with toggle and full selector.\n * Absorbs: theme-toggle, theme-selector.\n *\n * @level atom\n * @family theme\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdThemeParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ThemeConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdThemeParams): ThemeConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'mode') ? [] : [{ name: 'mode', type: 'string' as const, default: 'light' }]),\n ...(baseFields.some(f => f.name === 'colorScheme') ? [] : [{ name: 'colorScheme', type: 'string' as const, default: 'default' }]),\n ];\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Theme`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'palette',\n pageTitle: params.pageTitle ?? 'Theme Settings',\n pageName: params.pageName ?? `${entityName}ThemePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/theme`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildEntity(c: ThemeConfig): Entity {\n const instances = [\n { id: 'theme-1', name: 'Default Theme', description: 'System default', status: 'active', createdAt: '2026-01-01', mode: 'light', colorScheme: 'almadar' },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\nfunction buildTrait(c: ThemeConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'typography', variant: 'h4', content: 'Quick Toggle' },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Switch between light and dark mode' },\n { type: 'theme-toggle' },\n ],\n }],\n },\n {\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'typography', variant: 'h4', content: 'Theme Palette' },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Choose from available color schemes' },\n {\n type: 'simple-grid', columns: 3,\n children: [\n { type: 'button', label: 'Almadar', event: 'SELECT', variant: 'secondary' },\n { type: 'button', label: 'Ocean', event: 'SELECT', variant: 'secondary' },\n { type: 'button', label: 'Forest', event: 'SELECT', variant: 'secondary' },\n ],\n },\n ],\n }],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: 'Current mode:' },\n { type: 'badge', label: ef('mode') },\n { type: 'typography', variant: 'caption', content: 'Scheme:' },\n { type: 'badge', label: ef('colorScheme') },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TOGGLE', name: 'Toggle Theme' },\n { key: 'SELECT', name: 'Select Theme', payload: [{ name: 'theme', type: 'string', required: true }] },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'idle', to: 'idle', event: 'TOGGLE', effects: [['render-ui', 'main', mainView]] },\n { from: 'idle', to: 'idle', event: 'SELECT', effects: [['set', '@entity.colorScheme', '@payload.theme'], ['render-ui', 'main', mainView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: ThemeConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdThemeEntity(params: StdThemeParams): Entity { return buildEntity(resolve(params)); }\nexport function stdThemeTrait(params: StdThemeParams): Trait { return buildTrait(resolve(params)); }\nexport function stdThemePage(params: StdThemeParams): Page { return buildPage(resolve(params)); }\n\nexport function stdTheme(params: StdThemeParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-text-effects\n *\n * Text animation and highlighting atom.\n * Absorbs: typewriter-text, text-highlight, law-reference-tooltip.\n *\n * @level atom\n * @family text-effects\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTextEffectsParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TextEffectsConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTextEffectsParams): TextEffectsConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'content') ? [] : [{ name: 'content', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'highlightType') ? [] : [{ name: 'highlightType', type: 'string' as const, default: 'none' }]),\n ...(baseFields.some(f => f.name === 'reference') ? [] : [{ name: 'reference', type: 'string' as const, default: '' }]),\n ];\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}TextEffects`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'type',\n pageTitle: params.pageTitle ?? 'Text Effects',\n pageName: params.pageName ?? `${entityName}TextEffectsPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/text-effects`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildEntity(c: TextEffectsConfig): Entity {\n const instances = [\n { id: 'txt-1', name: 'The quick brown fox jumps over the lazy dog', description: 'A pangram sentence', status: 'active', createdAt: '2026-01-01', content: 'The **quick** brown fox _jumps_ over the lazy dog. This demonstrates text animation and highlighting capabilities.', highlightType: 'emphasis', reference: 'Article 42, Section 3.1 — Typography Standards' },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\nfunction buildTrait(c: TextEffectsConfig): Trait {\n const { entityName, displayField, headerIcon, pageTitle } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'markdown-content', content: ef(displayField) },\n { type: 'code-block', code: ef('reference'), language: 'text' },\n { type: 'typography', variant: 'body', content: ef(displayField) },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Animate', event: 'ANIMATE', variant: 'primary', icon: 'play' },\n { type: 'button', label: 'Highlight', event: 'HIGHLIGHT', variant: 'secondary', icon: 'highlighter' },\n ],\n },\n ],\n };\n\n const animatingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typewriter-text', text: ef(displayField), speed: 50, cursor: true },\n {\n type: 'law-reference-tooltip',\n reference: ef('reference'),\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Hover for reference details' },\n ],\n },\n { type: 'button', label: 'Highlight', event: 'HIGHLIGHT', variant: 'secondary', icon: 'highlighter' },\n ],\n };\n\n const highlightedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'text-highlight', text: ef(displayField), highlightColor: 'yellow', pattern: 'important' },\n {\n type: 'law-reference-tooltip',\n reference: ef('reference'),\n children: [\n { type: 'typography', variant: 'body', content: ef(displayField) },\n ],\n },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'animating' },\n { name: 'highlighted' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ANIMATE', name: 'Animate' },\n { key: 'HIGHLIGHT', name: 'Highlight' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'animating', event: 'ANIMATE', effects: [['render-ui', 'main', animatingView]] },\n { from: 'animating', to: 'highlighted', event: 'HIGHLIGHT', effects: [['render-ui', 'main', highlightedView]] },\n { from: 'highlighted', to: 'idle', event: 'RESET', effects: [['render-ui', 'main', idleView]] },\n { from: 'animating', to: 'idle', event: 'RESET', effects: [['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'highlighted', event: 'HIGHLIGHT', effects: [['render-ui', 'main', highlightedView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: TextEffectsConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdTextEffectsEntity(params: StdTextEffectsParams): Entity { return buildEntity(resolve(params)); }\nexport function stdTextEffectsTrait(params: StdTextEffectsParams): Trait { return buildTrait(resolve(params)); }\nexport function stdTextEffectsPage(params: StdTextEffectsParams): Page { return buildPage(resolve(params)); }\n\nexport function stdTextEffects(params: StdTextEffectsParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-collision as a Function\n *\n * Game collision detection parameterized for any domain.\n * Provides idle and detecting states for checking collisions\n * between game entities. Tracks collision targets via entity fields.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family collision\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCollisionParams {\n /** Entity name in PascalCase (e.g., \"Hitbox\", \"Collider\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}CollisionPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/collision\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CollisionConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCollisionParams): CollisionConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure collision-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'x') ? [] : [{ name: 'x', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'y') ? [] : [{ name: 'y', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'collisionStatus') ? [] : [{ name: 'collisionStatus', type: 'string' as const, default: 'idle' }]),\n ...(baseFields.some(f => f.name === 'targetId') ? [] : [{ name: 'targetId', type: 'string' as const, default: '' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Collision`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'crosshair',\n pageTitle: params.pageTitle ?? `${entityName} Collision`,\n pageName: params.pageName ?? `${entityName}CollisionPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/collision`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CollisionConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: CollisionConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'status-dot', status: 'inactive', label: 'Idle' },\n ],\n },\n { type: 'divider' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'X', value: ef('x') },\n { type: 'stat-display', label: 'Y', value: ef('y') },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Check', event: 'CHECK', variant: 'primary', icon: 'scan' },\n ],\n },\n ],\n };\n\n const detectingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'status-dot', status: 'warning', pulse: true, label: 'Detecting' },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'warning', message: 'Collision detection in progress...' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'X', value: ef('x') },\n { type: 'stat-display', label: 'Y', value: ef('y') },\n ],\n },\n { type: 'typography', variant: 'caption', color: 'muted', content: ef('targetId') },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'x' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'detecting' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CHECK', name: 'Check Collision' },\n { key: 'COLLISION_DETECTED', name: 'Collision Detected', payload: [{ name: 'targetId', type: 'string', required: true }] },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', idleView],\n ],\n },\n // CHECK: idle -> detecting\n {\n from: 'idle', to: 'detecting', event: 'CHECK',\n effects: [\n ['set', '@entity.collisionStatus', 'detecting'],\n ['render-ui', 'main', detectingView],\n ],\n },\n // COLLISION_DETECTED: detecting -> detecting (self-loop)\n {\n from: 'detecting', to: 'detecting', event: 'COLLISION_DETECTED',\n effects: [\n ['set', '@entity.targetId', '@payload.targetId'],\n ['set', '@entity.collisionStatus', 'detected'],\n ['render-ui', 'main', detectingView],\n ],\n },\n // CLEAR: detecting -> idle\n {\n from: 'detecting', to: 'idle', event: 'CLEAR',\n effects: [\n ['set', '@entity.collisionStatus', 'idle'],\n ['set', '@entity.targetId', ''],\n ['render-ui', 'main', idleView],\n ],\n },\n // INIT: detecting -> detecting (self-loop)\n {\n from: 'detecting', to: 'detecting', event: 'INIT',\n effects: [\n ['render-ui', 'main', detectingView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CollisionConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCollisionEntity(params: StdCollisionParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCollisionTrait(params: StdCollisionParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCollisionPage(params: StdCollisionParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCollision(params: StdCollisionParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-physics2d as a Function\n *\n * 2D physics simulation parameterized for any domain.\n * Provides idle and simulating states with force application and tick updates.\n * Tracks position and velocity via entity fields.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family physics2d\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPhysics2dParams {\n /** Entity name in PascalCase (e.g., \"Body\", \"Particle\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}PhysicsPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/physics\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface Physics2dConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPhysics2dParams): Physics2dConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure physics-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'x') ? [] : [{ name: 'x', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'y') ? [] : [{ name: 'y', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'vx') ? [] : [{ name: 'vx', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'vy') ? [] : [{ name: 'vy', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'forceX') ? [] : [{ name: 'forceX', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'forceY') ? [] : [{ name: 'forceY', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'physicsStatus') ? [] : [{ name: 'physicsStatus', type: 'string' as const, default: 'idle' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Physics`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'atom',\n pageTitle: params.pageTitle ?? `${entityName} Physics`,\n pageName: params.pageName ?? `${entityName}PhysicsPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/physics`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: Physics2dConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: Physics2dConfig): Trait {\n const { entityName } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'simulation-canvas', preset: 'spring', width: 800, height: 400, running: false, speed: 1 },\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n ],\n };\n\n const simulatingView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'simulation-canvas', preset: 'spring', width: 800, height: 400, running: true, speed: 1 },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Apply Force', event: 'APPLY_FORCE', variant: 'secondary', icon: 'move' },\n { type: 'button', label: 'Stop', event: 'STOP', variant: 'ghost', icon: 'square' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'simulating' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Simulation' },\n { key: 'STOP', name: 'Stop Simulation' },\n { key: 'TICK', name: 'Tick' },\n { key: 'APPLY_FORCE', name: 'Apply Force', payload: [\n { name: 'forceX', type: 'number', required: true },\n { name: 'forceY', type: 'number', required: true },\n ] },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', idleView],\n ],\n },\n // START: idle -> simulating\n {\n from: 'idle', to: 'simulating', event: 'START',\n effects: [\n ['set', '@entity.physicsStatus', 'simulating'],\n ['render-ui', 'main', simulatingView],\n ],\n },\n // TICK: simulating -> simulating (self-loop)\n {\n from: 'simulating', to: 'simulating', event: 'TICK',\n effects: [\n ['render-ui', 'main', simulatingView],\n ],\n },\n // APPLY_FORCE: simulating -> simulating (self-loop)\n {\n from: 'simulating', to: 'simulating', event: 'APPLY_FORCE',\n effects: [\n ['set', '@entity.forceX', '@payload.forceX'],\n ['set', '@entity.forceY', '@payload.forceY'],\n ['render-ui', 'main', simulatingView],\n ],\n },\n // STOP: simulating -> idle\n {\n from: 'simulating', to: 'idle', event: 'STOP',\n effects: [\n ['set', '@entity.physicsStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n // INIT: simulating -> simulating (self-loop)\n {\n from: 'simulating', to: 'simulating', event: 'INIT',\n effects: [\n ['render-ui', 'main', simulatingView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: Physics2dConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPhysics2dEntity(params: StdPhysics2dParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPhysics2dTrait(params: StdPhysics2dParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdPhysics2dPage(params: StdPhysics2dParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPhysics2d(params: StdPhysics2dParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-rate-limiter as a Function\n *\n * Rate limiting parameterized for any domain.\n * Provides open and throttled states for controlling request frequency.\n * Tracks request count and throttle status via entity fields.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family rate-limiter\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRateLimiterParams {\n /** Entity name in PascalCase (e.g., \"Limiter\", \"Throttle\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}RateLimiterPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/rate-limiter\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface RateLimiterConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdRateLimiterParams): RateLimiterConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure rate-limiter-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'count') ? [] : [{ name: 'count', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'window') ? [] : [{ name: 'window', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'limiterStatus') ? [] : [{ name: 'limiterStatus', type: 'string' as const, default: 'open' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}RateLimiter`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'shield',\n pageTitle: params.pageTitle ?? `${entityName} Rate Limiter`,\n pageName: params.pageName ?? `${entityName}RateLimiterPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/rate-limiter`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: RateLimiterConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\n/** S-expression: get field from first entity in collection */\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildTrait(c: RateLimiterConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n const openView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'status-dot', status: 'success', pulse: false, label: 'Open' },\n ],\n },\n { type: 'divider' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'Requests', value: ef('count') },\n { type: 'stat-display', label: 'Window', value: ef('window') },\n ],\n },\n { type: 'meter', value: ef('count'), min: 0, max: 100 },\n { type: 'progress-bar', value: ef('count'), max: 100, showPercentage: true },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Request', event: 'REQUEST', variant: 'primary', icon: 'send' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n const throttledView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'status-dot', status: 'error', pulse: true, label: 'Throttled' },\n ],\n },\n { type: 'divider' },\n { type: 'alert', variant: 'danger', message: 'Rate limit exceeded. Requests are being throttled.' },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'stat-display', label: 'Requests', value: ef('count') },\n { type: 'stat-display', label: 'Window', value: ef('window') },\n ],\n },\n { type: 'meter', value: ef('count'), min: 0, max: 100 },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'primary', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'open', isInitial: true },\n { name: 'throttled' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'REQUEST', name: 'Request' },\n { key: 'THROTTLE', name: 'Throttle' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT: open -> open\n {\n from: 'open', to: 'open', event: 'INIT',\n effects: [\n ['render-ui', 'main', openView],\n ],\n },\n // REQUEST: open -> open (self-loop, increment count)\n {\n from: 'open', to: 'open', event: 'REQUEST',\n effects: [\n ['render-ui', 'main', openView],\n ],\n },\n // THROTTLE: open -> throttled\n {\n from: 'open', to: 'throttled', event: 'THROTTLE',\n effects: [\n ['set', '@entity.limiterStatus', 'throttled'],\n ['render-ui', 'main', throttledView],\n ],\n },\n // RESET: throttled -> open\n {\n from: 'throttled', to: 'open', event: 'RESET',\n effects: [\n ['set', '@entity.limiterStatus', 'open'],\n ['set', '@entity.count', 0],\n ['render-ui', 'main', openView],\n ],\n },\n // INIT: throttled -> throttled (self-loop)\n {\n from: 'throttled', to: 'throttled', event: 'INIT',\n effects: [\n ['render-ui', 'main', throttledView],\n ],\n },\n // RESET: open -> open (self-loop, reset count)\n {\n from: 'open', to: 'open', event: 'RESET',\n effects: [\n ['set', '@entity.count', 0],\n ['set', '@entity.limiterStatus', 'open'],\n ['render-ui', 'main', openView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: RateLimiterConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdRateLimiterEntity(params: StdRateLimiterParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdRateLimiterTrait(params: StdRateLimiterParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdRateLimiterPage(params: StdRateLimiterParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdRateLimiter(params: StdRateLimiterParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-game-hud\n *\n * Heads-up display atom. Renders the `game-hud` pattern\n * showing health, score, lives, and other stats.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameHudParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Stats to display in the HUD (defaults to all non-id fields) */\n statFields?: string[];\n /** HUD position: top-left, top-right, bottom-left, bottom-right */\n position?: string;\n /** HUD size */\n size?: string;\n /** Transparent background */\n transparent?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameHudConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n statFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n position: string;\n size: string;\n transparent: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameHudParams): GameHudConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n statFields: params.statFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Hud`,\n position: params.position ?? 'top-left',\n size: params.size ?? 'md',\n transparent: params.transparent ?? false,\n pageName: params.pageName ?? `${entityName}HudPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameHudConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameHudConfig): Trait {\n const { entityName, statFields, position, size, transparent } = c;\n\n // Build stats array for the game-hud pattern\n const stats = statFields.map(f => ({\n label: f.charAt(0).toUpperCase() + f.slice(1),\n value: `@entity.${f}`,\n }));\n\n const hudView = {\n type: 'game-hud',\n position,\n size,\n transparent,\n stats,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'REFRESH', name: 'Refresh' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', hudView]] },\n { from: 'idle', to: 'idle', event: 'REFRESH', effects: [['fetch', entityName], ['render-ui', 'main', hudView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameHudConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameHudEntity(params: StdGameHudParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameHudTrait(params: StdGameHudParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameHudPage(params: StdGameHudParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameHud(params: StdGameHudParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-score-board\n *\n * Score display atom using the `score-board` pattern.\n * Shows score, high score, combo, multiplier, level.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdScoreBoardParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ScoreBoardConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdScoreBoardParams): ScoreBoardConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Ensure score fields exist\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'score') ? [] : [{ name: 'score', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'highScore') ? [] : [{ name: 'highScore', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'combo') ? [] : [{ name: 'combo', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'multiplier') ? [] : [{ name: 'multiplier', type: 'number' as const, default: 1 }]),\n ...(baseFields.some(f => f.name === 'level') ? [] : [{ name: 'level', type: 'number' as const, default: 1 }]),\n ];\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}ScoreBoard`,\n pageName: params.pageName ?? `${entityName}ScorePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: ScoreBoardConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ScoreBoardConfig): Trait {\n const { entityName } = c;\n\n const boardView = {\n type: 'score-board',\n score: `@entity.score`,\n highScore: `@entity.highScore`,\n combo: `@entity.combo`,\n multiplier: `@entity.multiplier`,\n level: `@entity.level`,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADD_SCORE', name: 'Add Score', payload: [{ name: 'points', type: 'number', required: true }] },\n { key: 'COMBO', name: 'Combo', payload: [{ name: 'multiplier', type: 'number', required: true }] },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', boardView]] },\n { from: 'idle', to: 'idle', event: 'ADD_SCORE', effects: [\n ['set', '@entity.score', ['+', '@entity.score', '@payload.points']],\n ['set', '@entity.combo', ['+', '@entity.combo', 1]],\n ['render-ui', 'main', boardView],\n ] },\n { from: 'idle', to: 'idle', event: 'COMBO', effects: [\n ['set', '@entity.multiplier', '@payload.multiplier'],\n ['render-ui', 'main', boardView],\n ] },\n { from: 'idle', to: 'idle', event: 'RESET', effects: [\n ['set', '@entity.score', 0],\n ['set', '@entity.combo', 0],\n ['set', '@entity.multiplier', 1],\n ['render-ui', 'main', boardView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: ScoreBoardConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Build the score board entity.\n *\n * @param {StdScoreBoardParams} params - Score board configuration parameters\n * @returns {Entity} The configured score board entity\n */\nexport function stdScoreBoardEntity(params: StdScoreBoardParams): Entity { return buildEntity(resolve(params)); }\n/**\n * Build the score board trait.\n *\n * @param {StdScoreBoardParams} params - Score board configuration parameters\n * @returns {Trait} The configured score board trait\n */\nexport function stdScoreBoardTrait(params: StdScoreBoardParams): Trait { return buildTrait(resolve(params)); }\n/**\n * Build the score board page.\n *\n * @param {StdScoreBoardParams} params - Score board configuration parameters\n * @returns {Page} The configured score board page\n */\nexport function stdScoreBoardPage(params: StdScoreBoardParams): Page { return buildPage(resolve(params)); }\n\nexport function stdScoreBoard(params: StdScoreBoardParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-menu\n *\n * Game main menu atom using the `game-menu` pattern.\n * Shows title, subtitle, and menu options (Start, Options, Credits, etc.).\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameMenuParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Game title */\n gameTitle?: string;\n /** Game subtitle */\n subtitle?: string;\n /** Menu items: each has a label and an event to fire */\n menuItems?: Array<{ label: string; event: string }>;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameMenuConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n gameTitle: string;\n subtitle: string;\n menuItems: Array<{ label: string; event: string }>;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameMenuParams): GameMenuConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Menu`,\n gameTitle: params.gameTitle ?? entityName,\n subtitle: params.subtitle ?? 'Press Start',\n menuItems: params.menuItems ?? [\n { label: 'Start Game', event: 'START' },\n { label: 'Options', event: 'OPTIONS' },\n { label: 'Credits', event: 'CREDITS' },\n ],\n pageName: params.pageName ?? `${entityName}MenuPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameMenuConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameMenuConfig): Trait {\n const { entityName, gameTitle, subtitle, menuItems } = c;\n\n const menuView = {\n type: 'game-menu',\n title: gameTitle,\n subtitle,\n menuItems: menuItems.map(item => ({\n label: item.label,\n action: item.event,\n })),\n };\n\n // Build event declarations from menu items\n const menuEvents = menuItems.map(item => ({\n key: item.event,\n name: item.label,\n }));\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ...menuEvents,\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['render-ui', 'main', menuView]] },\n { from: 'idle', to: 'idle', event: 'NAVIGATE', effects: [] },\n // Each menu item is a self-loop (the actual navigation happens via the event bus to other traits)\n ...menuItems.map(item => ({\n from: 'idle', to: 'idle', event: item.event, effects: [['render-ui', 'main', menuView]],\n })),\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameMenuConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameMenuEntity(params: StdGameMenuParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameMenuTrait(params: StdGameMenuParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameMenuPage(params: StdGameMenuParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameMenu(params: StdGameMenuParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-over-screen\n *\n * Game over screen atom using the `game-over-screen` pattern.\n * Shows final score, high score, and retry/quit actions.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameOverScreenParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n title?: string;\n message?: string;\n /** Actions: each has a label and event */\n actions?: Array<{ label: string; event: string }>;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameOverConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n title: string;\n message: string;\n actions: Array<{ label: string; event: string }>;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameOverScreenParams): GameOverConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'currentScore') ? [] : [{ name: 'currentScore', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'highScore') ? [] : [{ name: 'highScore', type: 'number' as const, default: 0 }]),\n ];\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameOver`,\n title: params.title ?? 'Game Over',\n message: params.message ?? 'Better luck next time!',\n actions: params.actions ?? [\n { label: 'Play Again', event: 'RETRY' },\n { label: 'Main Menu', event: 'QUIT' },\n ],\n pageName: params.pageName ?? `${entityName}GameOverPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameOverConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameOverConfig): Trait {\n const { entityName, title, message, actions } = c;\n\n const gameOverView = {\n type: 'game-over-screen',\n title,\n message,\n currentScore: '@entity.currentScore',\n highScore: '@entity.highScore',\n menuItems: actions.map(a => ({ label: a.label, action: a.event })),\n };\n\n const actionEvents = actions.map(a => ({ key: a.event, name: a.label }));\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NAVIGATE', name: 'Navigate' },\n { key: 'RESTART', name: 'Restart' },\n ...actionEvents,\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', gameOverView]] },\n { from: 'idle', to: 'idle', event: 'NAVIGATE', effects: [] },\n { from: 'idle', to: 'idle', event: 'RESTART', effects: [] },\n ...actions.map(a => ({\n from: 'idle', to: 'idle', event: a.event, effects: [['render-ui', 'main', gameOverView]],\n })),\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameOverConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameOverScreenEntity(params: StdGameOverScreenParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameOverScreenTrait(params: StdGameOverScreenParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameOverScreenPage(params: StdGameOverScreenParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameOverScreen(params: StdGameOverScreenParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-dialogue-box\n *\n * RPG dialogue atom using the `dialogue-box` pattern.\n * Shows speaker, portrait, typewriter text, and choices.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDialogueBoxParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Typewriter speed in ms per character */\n typewriterSpeed?: number;\n /** Position: top, bottom, center */\n position?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DialogueConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n typewriterSpeed: number;\n position: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDialogueBoxParams): DialogueConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'speaker') ? [] : [{ name: 'speaker', type: 'string' as const, default: 'Narrator' }]),\n ...(baseFields.some(f => f.name === 'text') ? [] : [{ name: 'text', type: 'string' as const, default: 'Welcome, adventurer. Your journey begins here.' }]),\n ];\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Dialogue`,\n typewriterSpeed: params.typewriterSpeed ?? 30,\n position: params.position ?? 'bottom',\n pageName: params.pageName ?? `${entityName}DialoguePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: DialogueConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: DialogueConfig): Trait {\n const { entityName, typewriterSpeed, position } = c;\n\n const dialogueView = {\n type: 'dialogue-box',\n dialogue: {\n speaker: `@entity.speaker`,\n text: `@entity.text`,\n },\n typewriterSpeed,\n position,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'talking', isInitial: true },\n { name: 'idle' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADVANCE', name: 'Advance' },\n { key: 'CHOICE', name: 'Choice', payload: [{ name: 'choiceId', type: 'string', required: true }] },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'START_DIALOGUE', name: 'Start Dialogue' },\n ],\n transitions: [\n // INIT sets initial dialogue content then renders\n { from: 'talking', to: 'talking', event: 'INIT', effects: [\n ['fetch', entityName],\n ['set', '@entity.speaker', 'Narrator'],\n ['set', '@entity.text', 'Welcome, adventurer. Your journey begins here.'],\n ['render-ui', 'main', dialogueView],\n ] },\n { from: 'talking', to: 'talking', event: 'ADVANCE', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', dialogueView],\n ] },\n { from: 'talking', to: 'talking', event: 'CHOICE', effects: [\n ['render-ui', 'main', dialogueView],\n ] },\n { from: 'talking', to: 'idle', event: 'COMPLETE', effects: [\n ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Dialogue complete', variant: 'caption' },\n { type: 'button', label: 'New Dialogue', event: 'START_DIALOGUE', variant: 'primary', icon: 'message-circle' },\n ],\n }],\n ] },\n { from: 'idle', to: 'talking', event: 'START_DIALOGUE', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', dialogueView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: DialogueConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdDialogueBoxEntity(params: StdDialogueBoxParams): Entity { return buildEntity(resolve(params)); }\nexport function stdDialogueBoxTrait(params: StdDialogueBoxParams): Trait { return buildTrait(resolve(params)); }\nexport function stdDialogueBoxPage(params: StdDialogueBoxParams): Page { return buildPage(resolve(params)); }\n\nexport function stdDialogueBox(params: StdDialogueBoxParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-inventory-panel\n *\n * Grid-based inventory atom using the `inventory-panel` pattern.\n * Shows items in a grid with select, use, and drop actions.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField, EntityRow } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdInventoryPanelParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Number of columns in inventory grid */\n columns?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface InventoryPanelConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n columns: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdInventoryPanelParams): InventoryPanelConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}InventoryPanel`,\n columns: params.columns ?? 4,\n pageName: params.pageName ?? `${entityName}InventoryPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: InventoryPanelConfig): Entity {\n const fields = [\n ...c.fields.filter(f => f.name !== 'items'),\n { name: 'items', type: 'array' as const },\n ];\n return makeEntity({\n name: c.entityName,\n fields,\n persistence: 'singleton',\n instances: [{\n id: 'inventory',\n items: [\n { id: 'item-0', name: 'Iron Sword', quantity: 1, rarity: 'common' },\n { id: 'item-1', name: 'Health Potion', quantity: 3, rarity: 'common' },\n { id: 'item-2', name: 'Shield', quantity: 1, rarity: 'uncommon' },\n { id: 'item-3', name: 'Magic Scroll', quantity: 2, rarity: 'rare' },\n { id: 'item-4', name: 'Gold Ring', quantity: 1, rarity: 'epic' },\n { id: 'item-5', name: 'Dragon Scale', quantity: 1, rarity: 'epic' },\n ],\n } as unknown as EntityRow],\n });\n}\n\nfunction buildTrait(c: InventoryPanelConfig): Trait {\n const { entityName, columns } = c;\n\n const inventoryView = {\n type: 'inventory-panel',\n items: '@entity.items',\n slots: columns * 4,\n columns,\n selectSlotEvent: 'SELECT_SLOT',\n useItemEvent: 'USE_ITEM',\n dropItemEvent: 'DROP_ITEM',\n showTooltips: true,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT_SLOT', name: 'Select Slot', payload: [{ name: 'slotId', type: 'string', required: true }] },\n { key: 'USE_ITEM', name: 'Use Item', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: 'DROP_ITEM', name: 'Drop Item', payload: [{ name: 'id', type: 'string', required: true }] },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', inventoryView]] },\n { from: 'idle', to: 'idle', event: 'SELECT_SLOT', effects: [['render-ui', 'main', inventoryView]] },\n { from: 'idle', to: 'idle', event: 'USE_ITEM', effects: [['fetch', entityName], ['render-ui', 'main', inventoryView]] },\n { from: 'idle', to: 'idle', event: 'DROP_ITEM', effects: [['persist', 'delete', entityName, '@payload.id'], ['fetch', entityName], ['render-ui', 'main', inventoryView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: InventoryPanelConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdInventoryPanelEntity(params: StdInventoryPanelParams): Entity { return buildEntity(resolve(params)); }\nexport function stdInventoryPanelTrait(params: StdInventoryPanelParams): Trait { return buildTrait(resolve(params)); }\nexport function stdInventoryPanelPage(params: StdInventoryPanelParams): Page { return buildPage(resolve(params)); }\n\nexport function stdInventoryPanel(params: StdInventoryPanelParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-combat-log\n *\n * Scrollable combat event log atom using the `combat-log` pattern.\n * Displays timestamped combat events with icons and colors.\n * Supports appending new events and clearing the log.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField, EntityRow } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCombatLogParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Log panel title */\n title?: string;\n /** Maximum visible events before scrolling */\n maxVisible?: number;\n /** Auto-scroll to newest event */\n autoScroll?: boolean;\n /** Show timestamps on each entry */\n showTimestamps?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CombatLogConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n title: string;\n maxVisible: number;\n autoScroll: boolean;\n showTimestamps: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCombatLogParams): CombatLogConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}CombatLog`,\n title: params.title ?? 'Combat Log',\n maxVisible: params.maxVisible ?? 10,\n autoScroll: params.autoScroll ?? true,\n showTimestamps: params.showTimestamps ?? true,\n pageName: params.pageName ?? `${entityName}LogPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: CombatLogConfig): Entity {\n const fields = [\n ...c.fields.filter(f => !['type', 'message', 'timestamp', 'actorName', 'targetName', 'value', 'turn'].includes(f.name)),\n { name: 'type', type: 'string' as const, default: 'attack', values: ['attack', 'defend', 'heal', 'move', 'special', 'death', 'spawn'] },\n { name: 'message', type: 'string' as const },\n { name: 'timestamp', type: 'number' as const, default: 0 },\n { name: 'actorName', type: 'string' as const },\n { name: 'targetName', type: 'string' as const },\n { name: 'value', type: 'number' as const, default: 0 },\n { name: 'turn', type: 'number' as const, default: 1 },\n ];\n const instances = [\n { id: 'cl-1', name: 'Attack log', description: 'Warrior attacks Goblin', status: 'active', createdAt: '2026-01-01', type: 'attack', message: 'Warrior strikes Goblin for 25 damage', timestamp: 1000, actorName: 'Warrior', targetName: 'Goblin', value: 25, turn: 1 },\n { id: 'cl-2', name: 'Defend log', description: 'Paladin raises shield', status: 'active', createdAt: '2026-01-01', type: 'defend', message: 'Paladin raises shield, blocking 15 damage', timestamp: 2000, actorName: 'Paladin', targetName: 'Paladin', value: 15, turn: 1 },\n { id: 'cl-3', name: 'Heal log', description: 'Cleric heals Warrior', status: 'active', createdAt: '2026-01-01', type: 'heal', message: 'Cleric heals Warrior for 30 HP', timestamp: 3000, actorName: 'Cleric', targetName: 'Warrior', value: 30, turn: 2 },\n { id: 'cl-4', name: 'Special log', description: 'Mage casts fireball', status: 'active', createdAt: '2026-01-01', type: 'special', message: 'Mage casts Fireball dealing 40 AoE damage', timestamp: 4000, actorName: 'Mage', targetName: 'Goblin', value: 40, turn: 2 },\n { id: 'cl-5', name: 'Move log', description: 'Rogue moves to flank', status: 'active', createdAt: '2026-01-01', type: 'move', message: 'Rogue moves to flanking position', timestamp: 5000, actorName: 'Rogue', value: 0, turn: 3 },\n ];\n return makeEntity({ name: c.entityName, fields, persistence: c.persistence, instances: instances as unknown as EntityRow[] });\n}\n\nfunction buildTrait(c: CombatLogConfig): Trait {\n const { entityName, title, maxVisible, autoScroll, showTimestamps } = c;\n\n const logView = {\n type: 'combat-log',\n events: `@${entityName}`,\n maxVisible,\n autoScroll,\n showTimestamps,\n title,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LOG_EVENT', name: 'Log Event', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', logView]] },\n { from: 'idle', to: 'idle', event: 'LOG_EVENT', effects: [['render-ui', 'main', logView]] },\n { from: 'idle', to: 'idle', event: 'CLEAR', effects: [['render-ui', 'main', logView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CombatLogConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdCombatLogEntity(params: StdCombatLogParams): Entity { return buildEntity(resolve(params)); }\nexport function stdCombatLogTrait(params: StdCombatLogParams): Trait { return buildTrait(resolve(params)); }\nexport function stdCombatLogPage(params: StdCombatLogParams): Page { return buildPage(resolve(params)); }\n\nexport function stdCombatLog(params: StdCombatLogParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-sprite\n *\n * Sprite renderer atom using the `sprite` pattern.\n * Renders a single frame from a spritesheet with position and scale.\n * Handles frame changes and click events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSpriteParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Width of each frame in pixels */\n frameWidth?: number;\n /** Height of each frame in pixels */\n frameHeight?: number;\n /** Scale factor */\n scale?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SpriteConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n frameWidth: number;\n frameHeight: number;\n scale: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSpriteParams): SpriteConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields required by render-ui bindings (@Entity.x, @Entity.y, @Entity.frame, @Entity.spritesheet)\n const domainFields: EntityField[] = [\n { name: 'x', type: 'number', default: 0 },\n { name: 'y', type: 'number', default: 0 },\n { name: 'frame', type: 'number', default: 0 },\n { name: 'spritesheet', type: 'string', default: 'https://almadar-kflow-assets.web.app/shared/sprite-sheets/amir-sprite-sheet-se.png' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Sprite`,\n frameWidth: params.frameWidth ?? 64,\n frameHeight: params.frameHeight ?? 64,\n scale: params.scale ?? 1,\n pageName: params.pageName ?? `${entityName}SpritePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: SpriteConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SpriteConfig): Trait {\n const { entityName, frameWidth, frameHeight, scale } = c;\n\n const spriteView = {\n type: 'stack',\n direction: 'vertical',\n gap: 'md',\n children: [\n {\n type: 'stack',\n direction: 'horizontal',\n gap: 'sm',\n align: 'center',\n children: [\n { type: 'icon', name: 'image', size: 'lg' },\n { type: 'typography', content: `${entityName} Sprite`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'box',\n className: 'relative bg-gray-900 rounded-lg overflow-hidden',\n style: { width: `${frameWidth * scale * 4}px`, height: `${frameHeight * scale * 4}px`, margin: '0 auto' },\n children: [\n {\n type: 'sprite',\n spritesheet: `@${entityName}.spritesheet`,\n frameWidth,\n frameHeight,\n frame: `@${entityName}.frame`,\n x: frameWidth * scale,\n y: frameHeight * scale,\n scale,\n },\n ],\n },\n {\n type: 'stack',\n direction: 'horizontal',\n gap: 'md',\n justify: 'center',\n children: [\n { type: 'typography', content: `Frame: `, variant: 'caption', color: 'muted' },\n { type: 'badge', content: `@${entityName}.frame`, variant: 'default' },\n { type: 'typography', content: `Position: `, variant: 'caption', color: 'muted' },\n { type: 'badge', content: ['concat', `@${entityName}.x`, ',', `@${entityName}.y`], variant: 'default' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SET_FRAME', name: 'Set Frame', payload: [{ name: 'frame', type: 'number', required: true }] },\n { key: 'CLICK', name: 'Click' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', spriteView]] },\n { from: 'idle', to: 'idle', event: 'SET_FRAME', effects: [['render-ui', 'main', spriteView]] },\n { from: 'idle', to: 'idle', event: 'CLICK', effects: [] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SpriteConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdSpriteEntity(params: StdSpriteParams): Entity { return buildEntity(resolve(params)); }\nexport function stdSpriteTrait(params: StdSpriteParams): Trait { return buildTrait(resolve(params)); }\nexport function stdSpritePage(params: StdSpriteParams): Page { return buildPage(resolve(params)); }\n\nexport function stdSprite(params: StdSpriteParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-audio\n *\n * Game audio provider atom using the `game-audio-provider` pattern.\n * Wraps child content with an audio context, providing sound playback\n * and mute toggling.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameAudioParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Initial muted state */\n initialMuted?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameAudioConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n initialMuted: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameAudioParams): GameAudioConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameAudio`,\n initialMuted: params.initialMuted ?? false,\n pageName: params.pageName ?? `${entityName}AudioPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameAudioConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameAudioConfig): Trait {\n const { entityName, initialMuted } = c;\n\n const audioControls = {\n type: 'stack',\n direction: 'vertical',\n gap: 'lg',\n className: 'max-w-md mx-auto',\n children: [\n {\n type: 'stack',\n direction: 'horizontal',\n gap: 'sm',\n align: 'center',\n children: [\n { type: 'icon', name: 'volume-2', size: 'lg' },\n { type: 'typography', content: 'Audio Controls', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'typography', content: initialMuted ? 'Audio Muted' : 'Audio Active', variant: 'h4' },\n { type: 'typography', content: 'Toggle mute to control game audio playback.', variant: 'body', color: 'muted' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'button', label: 'Toggle Mute', icon: initialMuted ? 'volume-x' : 'volume-2', event: 'TOGGLE_MUTE', variant: 'primary' },\n ],\n },\n ],\n },\n ],\n },\n {\n type: 'card',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', content: 'Sound Effects', variant: 'h4' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'button', label: 'Play Click', icon: 'play', variant: 'outline' },\n { type: 'button', label: 'Play Confirm', icon: 'play', variant: 'outline' },\n { type: 'button', label: 'Play Drop', icon: 'play', variant: 'outline' },\n ],\n },\n ],\n },\n ],\n },\n ],\n };\n\n const audioView = {\n type: 'game-audio-provider',\n manifest: {\n click: 'https://almadar-kflow-assets.web.app/shared/audio/sfx/close_001.ogg',\n confirm: 'https://almadar-kflow-assets.web.app/shared/audio/sfx/confirmation_001.ogg',\n drop: 'https://almadar-kflow-assets.web.app/shared/audio/sfx/drop_001.ogg',\n },\n baseUrl: 'https://almadar-kflow-assets.web.app/shared/audio',\n initialMuted,\n children: [audioControls],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TOGGLE_MUTE', name: 'Toggle Mute' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', audioView]] },\n { from: 'idle', to: 'idle', event: 'TOGGLE_MUTE', effects: [['render-ui', 'main', audioView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameAudioConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameAudioEntity(params: StdGameAudioParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameAudioTrait(params: StdGameAudioParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameAudioPage(params: StdGameAudioParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameAudio(params: StdGameAudioParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-isometric-canvas\n *\n * Isometric game renderer atom using the `isometric-canvas` pattern.\n * Renders tiles, units, and features on an isometric grid.\n * Handles tile clicks, unit clicks, and hover events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField, EntityRow } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdIsometricCanvasParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Board width in tiles */\n boardWidth?: number;\n /** Board height in tiles */\n boardHeight?: number;\n /** Render scale */\n scale?: number;\n /** Unit render scale */\n unitScale?: number;\n /** Show debug grid */\n debug?: boolean;\n /** Show minimap */\n showMinimap?: boolean;\n /** Enable camera controls */\n enableCamera?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface IsometricConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n boardWidth: number;\n boardHeight: number;\n scale: number;\n unitScale: number;\n debug: boolean;\n showMinimap: boolean;\n enableCamera: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdIsometricCanvasParams): IsometricConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}IsometricCanvas`,\n boardWidth: params.boardWidth ?? 8,\n boardHeight: params.boardHeight ?? 8,\n scale: params.scale ?? 1,\n unitScale: params.unitScale ?? 2,\n debug: params.debug ?? false,\n showMinimap: params.showMinimap ?? false,\n enableCamera: params.enableCamera ?? true,\n pageName: params.pageName ?? `${entityName}CanvasPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction generateTiles(width: number, height: number): Record<string, unknown>[] {\n const terrains = ['grass', 'dirt', 'stone', 'water', 'sand'];\n const tiles: Record<string, unknown>[] = [];\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n tiles.push({ x, y, terrain: terrains[(x + y) % terrains.length] });\n }\n }\n return tiles;\n}\n\nfunction buildEntity(c: IsometricConfig): Entity {\n const fields = [\n ...ensureIdField(c.fields),\n { name: 'tiles', type: 'array' as const },\n { name: 'units', type: 'array' as const },\n { name: 'features', type: 'array' as const },\n ];\n return makeEntity({\n name: c.entityName,\n fields,\n persistence: 'singleton',\n instances: [{\n id: 'board',\n tiles: generateTiles(c.boardWidth, c.boardHeight),\n units: [],\n features: [],\n } as unknown as EntityRow],\n });\n}\n\nfunction buildTrait(c: IsometricConfig): Trait {\n const { entityName, boardWidth, boardHeight, scale, unitScale, debug, showMinimap, enableCamera } = c;\n\n const canvasView = {\n type: 'isometric-canvas',\n tiles: '@entity.tiles',\n boardWidth,\n boardHeight,\n scale,\n unitScale,\n debug,\n showMinimap,\n enableCamera,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n tileHoverEvent: 'TILE_HOVER',\n tileLeaveEvent: 'TILE_LEAVE',\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'active' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TILE_CLICK', name: 'Tile Click', payload: [{ name: 'tileId', type: 'string', required: true }] },\n { key: 'UNIT_CLICK', name: 'Unit Click', payload: [{ name: 'unitId', type: 'string', required: true }] },\n { key: 'TILE_HOVER', name: 'Tile Hover' },\n { key: 'TILE_LEAVE', name: 'Tile Leave' },\n { key: 'DESELECT', name: 'Deselect' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'TILE_HOVER', effects: [] },\n { from: 'idle', to: 'idle', event: 'TILE_HOVER', effects: [] },\n { from: 'active', to: 'active', event: 'TILE_LEAVE', effects: [] },\n { from: 'idle', to: 'idle', event: 'TILE_LEAVE', effects: [] },\n { from: 'active', to: 'idle', event: 'DESELECT', effects: [['render-ui', 'main', canvasView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: IsometricConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdIsometricCanvasEntity(params: StdIsometricCanvasParams): Entity { return buildEntity(resolve(params)); }\nexport function stdIsometricCanvasTrait(params: StdIsometricCanvasParams): Trait { return buildTrait(resolve(params)); }\nexport function stdIsometricCanvasPage(params: StdIsometricCanvasParams): Page { return buildPage(resolve(params)); }\n\nexport function stdIsometricCanvas(params: StdIsometricCanvasParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-platformer-canvas\n *\n * Side-scrolling platformer atom using the `platformer-canvas` pattern.\n * Renders player, platforms, and handles movement events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField, EntityRow } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPlatformerCanvasParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Canvas width */\n canvasWidth?: number;\n /** Canvas height */\n canvasHeight?: number;\n /** World width (scrollable area) */\n worldWidth?: number;\n /** World height */\n worldHeight?: number;\n /** Follow camera enabled */\n followCamera?: boolean;\n /** Background color */\n bgColor?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PlatformerConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n canvasWidth: number;\n canvasHeight: number;\n worldWidth: number;\n worldHeight: number;\n followCamera: boolean;\n bgColor: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPlatformerCanvasParams): PlatformerConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}PlatformerCanvas`,\n canvasWidth: params.canvasWidth ?? 800,\n canvasHeight: params.canvasHeight ?? 400,\n worldWidth: params.worldWidth ?? 2400,\n worldHeight: params.worldHeight ?? 400,\n followCamera: params.followCamera ?? true,\n bgColor: params.bgColor ?? '#1a1a2e',\n pageName: params.pageName ?? `${entityName}PlatformerPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: PlatformerConfig): Entity {\n const fields = [\n ...ensureIdField(c.fields),\n { name: 'platforms', type: 'array' as const },\n { name: 'player', type: 'object' as const },\n ];\n return makeEntity({\n name: c.entityName,\n fields,\n persistence: 'singleton',\n instances: [{\n id: 'level',\n platforms: [\n { x: 0, y: 350, width: 2400, height: 50 },\n { x: 200, y: 250, width: 150, height: 20 },\n { x: 500, y: 200, width: 120, height: 20 },\n { x: 800, y: 280, width: 180, height: 20 },\n { x: 1100, y: 180, width: 100, height: 20 },\n { x: 1400, y: 230, width: 160, height: 20 },\n { x: 1700, y: 150, width: 140, height: 20 },\n ],\n player: { x: 50, y: 300, width: 30, height: 30, vx: 0, vy: 0 },\n } as unknown as EntityRow],\n });\n}\n\nfunction buildTrait(c: PlatformerConfig): Trait {\n const { entityName, canvasWidth, canvasHeight, worldWidth, worldHeight, followCamera, bgColor } = c;\n\n const canvasView = {\n type: 'platformer-canvas',\n platforms: '@entity.platforms',\n player: '@entity.player',\n canvasWidth,\n canvasHeight,\n worldWidth,\n worldHeight,\n followCamera,\n bgColor,\n leftEvent: 'LEFT',\n rightEvent: 'RIGHT',\n jumpEvent: 'JUMP',\n stopEvent: 'STOP',\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'running' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LEFT', name: 'Move Left' },\n { key: 'RIGHT', name: 'Move Right' },\n { key: 'JUMP', name: 'Jump' },\n { key: 'STOP', name: 'Stop' },\n { key: 'START', name: 'Start' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'running', event: 'START', effects: [['render-ui', 'main', canvasView]] },\n { from: 'running', to: 'running', event: 'LEFT', effects: [] },\n { from: 'running', to: 'running', event: 'RIGHT', effects: [] },\n { from: 'running', to: 'running', event: 'JUMP', effects: [] },\n { from: 'running', to: 'idle', event: 'STOP', effects: [['render-ui', 'main', canvasView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: PlatformerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdPlatformerCanvasEntity(params: StdPlatformerCanvasParams): Entity { return buildEntity(resolve(params)); }\nexport function stdPlatformerCanvasTrait(params: StdPlatformerCanvasParams): Trait { return buildTrait(resolve(params)); }\nexport function stdPlatformerCanvasPage(params: StdPlatformerCanvasParams): Page { return buildPage(resolve(params)); }\n\nexport function stdPlatformerCanvas(params: StdPlatformerCanvasParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-simulation-canvas\n *\n * 2D physics simulation renderer atom using the `simulation-canvas` pattern.\n * Runs built-in Euler integration for educational presets (pendulum, spring, etc.).\n * Supports start, stop, and reset controls.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSimulationCanvasParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Physics preset name */\n preset?: string;\n /** Canvas width in pixels */\n width?: number;\n /** Canvas height in pixels */\n height?: number;\n /** Simulation speed multiplier */\n speed?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SimulationCanvasConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n preset: string;\n width: number;\n height: number;\n speed: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSimulationCanvasParams): SimulationCanvasConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}SimulationCanvas`,\n preset: params.preset ?? 'pendulum',\n width: params.width ?? 800,\n height: params.height ?? 400,\n speed: params.speed ?? 1,\n pageName: params.pageName ?? `${entityName}SimulationPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: SimulationCanvasConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SimulationCanvasConfig): Trait {\n const { preset, width, height, speed } = c;\n\n const idleView = {\n type: 'simulation-canvas',\n preset,\n width,\n height,\n running: false,\n speed,\n };\n\n const runningView = {\n type: 'simulation-canvas',\n preset,\n width,\n height,\n running: true,\n speed,\n };\n\n return {\n name: c.traitName,\n linkedEntity: c.entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'running' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'STOP', name: 'Stop' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', c.entityName], ['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'running', event: 'START', effects: [['render-ui', 'main', runningView]] },\n { from: 'running', to: 'idle', event: 'STOP', effects: [['render-ui', 'main', idleView]] },\n { from: 'running', to: 'running', event: 'RESET', effects: [['render-ui', 'main', runningView]] },\n { from: 'idle', to: 'idle', event: 'RESET', effects: [['render-ui', 'main', idleView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SimulationCanvasConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdSimulationCanvasEntity(params: StdSimulationCanvasParams): Entity { return buildEntity(resolve(params)); }\nexport function stdSimulationCanvasTrait(params: StdSimulationCanvasParams): Trait { return buildTrait(resolve(params)); }\nexport function stdSimulationCanvasPage(params: StdSimulationCanvasParams): Page { return buildPage(resolve(params)); }\n\nexport function stdSimulationCanvas(params: StdSimulationCanvasParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-canvas-2d\n *\n * 2D game canvas atom using the `game-canvas-2d` pattern.\n * Provides a render loop with configurable FPS, width, and height.\n * Handles init, start, stop, and per-frame tick events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameCanvas2dParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Canvas width in pixels */\n width?: number;\n /** Canvas height in pixels */\n height?: number;\n /** Target frames per second */\n fps?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameCanvas2dConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n width: number;\n height: number;\n fps: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameCanvas2dParams): GameCanvas2dConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameCanvas2d`,\n width: params.width ?? 800,\n height: params.height ?? 600,\n fps: params.fps ?? 60,\n pageName: params.pageName ?? `${entityName}Canvas2dPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameCanvas2dConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameCanvas2dConfig): Trait {\n const { width, height, fps } = c;\n\n const canvasConfig = {\n type: 'game-canvas-2d',\n width,\n height,\n fps,\n };\n\n const idleView = {\n type: 'stack',\n direction: 'vertical',\n gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'monitor', size: 'md' },\n { type: 'typography', content: `${c.entityName} Canvas`, variant: 'h3' },\n ]},\n { type: 'typography', content: `${width}x${height} @ ${fps}fps`, variant: 'caption', color: 'muted' },\n canvasConfig,\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n ],\n };\n\n const renderingView = {\n type: 'stack',\n direction: 'vertical',\n gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'monitor', size: 'md' },\n { type: 'typography', content: `${c.entityName} Canvas`, variant: 'h3' },\n ]},\n canvasConfig,\n { type: 'button', label: 'Stop', event: 'STOP', variant: 'ghost', icon: 'square' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: c.entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'rendering' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'STOP', name: 'Stop' },\n { key: 'TICK', name: 'Tick' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', c.entityName], ['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'rendering', event: 'START', effects: [['render-ui', 'main', renderingView]] },\n { from: 'rendering', to: 'rendering', event: 'TICK', effects: [] },\n { from: 'rendering', to: 'idle', event: 'STOP', effects: [['render-ui', 'main', idleView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameCanvas2dConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameCanvas2dEntity(params: StdGameCanvas2dParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameCanvas2dTrait(params: StdGameCanvas2dParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameCanvas2dPage(params: StdGameCanvas2dParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameCanvas2d(params: StdGameCanvas2dParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-canvas-3d\n *\n * 3D game canvas atom using the `game-canvas-3d` pattern.\n * Renders tiles, units, and features in a 3D scene with configurable\n * orientation, camera mode, grid, shadows, and background color.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField, EntityRow } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameCanvas3dParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Map orientation */\n orientation?: string;\n /** Camera mode */\n cameraMode?: string;\n /** Show grid overlay */\n showGrid?: boolean;\n /** Enable shadows */\n shadows?: boolean;\n /** Background color */\n backgroundColor?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameCanvas3dConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n orientation: string;\n cameraMode: string;\n showGrid: boolean;\n shadows: boolean;\n backgroundColor: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameCanvas3dParams): GameCanvas3dConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameCanvas3d`,\n orientation: params.orientation ?? 'isometric',\n cameraMode: params.cameraMode ?? 'orbital',\n showGrid: params.showGrid ?? true,\n shadows: params.shadows ?? true,\n backgroundColor: params.backgroundColor ?? '#1a1a2e',\n pageName: params.pageName ?? `${entityName}Canvas3dPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameCanvas3dConfig): Entity {\n const fields = [\n ...c.fields.filter(f => !['tiles', 'units', 'features'].includes(f.name)),\n { name: 'tiles', type: 'array' as const, default: [] },\n { name: 'units', type: 'array' as const, default: [] },\n { name: 'features', type: 'array' as const, default: [] },\n ];\n const instances = [\n {\n id: 'scene-1', name: 'Battle Arena', description: 'A 3D battle arena', status: 'active', createdAt: '2026-01-01',\n tiles: [\n { x: 0, y: 0, z: 0, type: 'grass' },\n { x: 1, y: 0, z: 0, type: 'grass' },\n { x: 0, y: 0, z: 1, type: 'stone' },\n { x: 1, y: 0, z: 1, type: 'water' },\n ],\n units: [],\n features: [],\n },\n ];\n return makeEntity({ name: c.entityName, fields, persistence: c.persistence, instances: instances as unknown as EntityRow[] });\n}\n\nfunction buildTrait(c: GameCanvas3dConfig): Trait {\n const { entityName, orientation, cameraMode, showGrid, shadows, backgroundColor } = c;\n\n const canvasView = {\n type: 'game-canvas-3d',\n tiles: ['object/get', ['array/first', `@${entityName}`], 'tiles'],\n units: ['object/get', ['array/first', `@${entityName}`], 'units'],\n features: ['object/get', ['array/first', `@${entityName}`], 'features'],\n orientation,\n cameraMode,\n showGrid,\n shadows,\n backgroundColor,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'active' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TILE_CLICK', name: 'Tile Click', payload: [{ name: 'tileId', type: 'string', required: true }] },\n { key: 'UNIT_CLICK', name: 'Unit Click', payload: [{ name: 'unitId', type: 'string', required: true }] },\n { key: 'CAMERA_CHANGE', name: 'Camera Change' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'CAMERA_CHANGE', effects: [] },\n { from: 'idle', to: 'idle', event: 'CAMERA_CHANGE', effects: [] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameCanvas3dConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameCanvas3dEntity(params: StdGameCanvas3dParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameCanvas3dTrait(params: StdGameCanvas3dParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameCanvas3dPage(params: StdGameCanvas3dParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameCanvas3d(params: StdGameCanvas3dParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-list\n *\n * CRUD list molecule. Composes atoms via shared event bus:\n * - stdBrowse: data-grid with item actions (fires CREATE, VIEW, EDIT, DELETE)\n * - stdModal (x3): create form, edit form, detail view (responds to matching events)\n * - stdConfirmation: delete confirmation (responds to DELETE)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family crud\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from '../atoms/std-browse.js';\nimport { stdModal } from '../atoms/std-modal.js';\nimport { humanizeLabel, SYSTEM_FIELDS } from '../utils.js';\n// Delete confirmation is inline in the browse trait (single-trait for entity context)\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdListParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n listFields?: string[];\n detailFields?: string[];\n formFields?: string[];\n pageTitle?: string;\n createButtonLabel?: string;\n editFormTitle?: string;\n createFormTitle?: string;\n deleteMessage?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n headerIcon?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n\n // Display customization (organisms override for domain-specific layouts)\n displayPattern?: string;\n customRenderItem?: unknown;\n displayColumns?: unknown[];\n statsBar?: unknown[];\n displayProps?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ListConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n detailFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n createButtonLabel: string;\n createFormTitle: string;\n editFormTitle: string;\n deleteMessage: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdListParams): ListConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n formFields: params.formFields ?? nonIdFields.filter(f => !SYSTEM_FIELDS.has(f.name)).map(f => f.name),\n persistence: params.persistence ?? 'persistent',\n collection: params.collection,\n pageTitle: params.pageTitle ?? p,\n createButtonLabel: params.createButtonLabel ?? `Create ${entityName}`,\n createFormTitle: params.createFormTitle ?? `Create ${entityName}`,\n editFormTitle: params.editFormTitle ?? `Edit ${entityName}`,\n deleteMessage: params.deleteMessage ?? `This action cannot be undone.`,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} yet`,\n emptyDescription: params.emptyDescription ?? `Create your first ${entityName.toLowerCase()} to get started.`,\n headerIcon: params.headerIcon ?? 'list',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction formContent(entityName: string, mode: 'create' | 'edit', title: string, icon: string, formFields: string[], saveEvent: string, cancelEvent: string): unknown {\n const formSection: Record<string, unknown> = { type: 'form-section', entity: entityName, mode, submitEvent: saveEvent, cancelEvent, fields: formFields };\n if (mode === 'edit') {\n formSection.entityId = '@entity.id';\n }\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: icon, size: 'md' },\n { type: 'typography', content: title, variant: 'h3' },\n ] },\n { type: 'divider' },\n formSection,\n ],\n };\n}\n\nfunction detailContent(detailFields: string[], closeEvent: string): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'eye', size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: humanizeLabel(f) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Edit', event: 'EDIT', variant: 'primary', icon: 'edit' },\n { type: 'button', label: 'Close', event: closeEvent, variant: 'ghost' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdListEntity(params: StdListParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdListTrait(params: StdListParams): Trait {\n return extractTrait(stdList(params));\n}\n\nexport function stdListPage(params: StdListParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Create` },\n { ref: `${c.entityName}Edit` },\n { ref: `${c.entityName}View` },\n { ref: `${c.entityName}Delete` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdList(params: StdListParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, detailFields } = c;\n const UPPER = entityName.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase();\n const CREATED = `${UPPER}_CREATED`;\n const UPDATED = `${UPPER}_UPDATED`;\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: c.emptyTitle,\n emptyDescription: c.emptyDescription,\n displayPattern: params.displayPattern,\n customRenderItem: params.customRenderItem,\n displayColumns: params.displayColumns,\n statsBar: params.statsBar,\n displayProps: params.displayProps,\n headerActions: [{ label: c.createButtonLabel, event: 'CREATE', variant: 'primary', icon: 'plus' }],\n itemActions: [\n { label: 'View', event: 'VIEW' },\n { label: 'Edit', event: 'EDIT' },\n { label: 'Delete', event: 'DELETE', variant: 'danger' },\n ],\n refreshEvents: [CREATED, UPDATED],\n }));\n\n const createTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Create`,\n modalTitle: c.createFormTitle,\n headerIcon: 'plus-circle',\n openContent: formContent(entityName, 'create', c.createFormTitle, 'plus-circle', formFields, 'SAVE', 'CLOSE'),\n openEvent: 'CREATE',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data']],\n emitOnSave: CREATED,\n }));\n\n const editTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Edit`,\n modalTitle: c.editFormTitle,\n headerIcon: 'edit',\n openContent: formContent(entityName, 'edit', c.editFormTitle, 'edit', formFields, 'SAVE', 'CLOSE'),\n openEvent: 'EDIT',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, { id: '@payload.id' }]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'update', entityName, '@payload.data']],\n emitOnSave: UPDATED,\n }));\n\n const viewTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}View`,\n modalTitle: `View ${entityName}`,\n headerIcon: 'eye',\n openContent: detailContent(detailFields, 'CLOSE'),\n openEvent: 'VIEW',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, { id: '@payload.id' }]],\n }));\n\n // Delete: inline in browse trait (single-trait so entity context carries across DELETE → CONFIRM_DELETE)\n // Add deleting state + transitions directly to the browse trait's state machine\n const sm = browseTrait.stateMachine as { states: unknown[]; events: unknown[]; transitions: unknown[] };\n sm.states.push({ name: 'deleting' });\n // Ensure DELETE event has payload schema with 'row' field (used in delete confirmation)\n const deleteEvent = (sm.events as Array<{key: string; payload?: unknown[]}>).find(e => e.key === 'DELETE');\n if (deleteEvent && !deleteEvent.payload) {\n deleteEvent.payload = [{ name: 'id', type: 'string' }, { name: 'row', type: 'object' }];\n }\n // DELETE already exists from itemActions. Only add events that aren't already there.\n const existingKeys = new Set((sm.events as Array<{key: string}>).map(e => e.key));\n if (!existingKeys.has('CONFIRM_DELETE')) sm.events.push({ key: 'CONFIRM_DELETE', name: 'Confirm Delete' });\n if (!existingKeys.has('CANCEL')) sm.events.push({ key: 'CANCEL', name: 'Cancel' });\n if (!existingKeys.has('CLOSE')) sm.events.push({ key: 'CLOSE', name: 'Close' });\n\n // Extract the browse main view from INIT transition so we can re-render it after modal dismiss\n const initTransition = sm.transitions[0] as { effects: unknown[] };\n const initRenderEffect = initTransition.effects.find(\n (e: unknown) => Array.isArray(e) && (e as unknown[])[0] === 'render-ui' && (e as unknown[])[1] === 'main',\n ) as unknown[] | undefined;\n const browseMainView = initRenderEffect ? initRenderEffect[2] : null;\n\n sm.transitions.push(\n // DELETE: browsing → deleting (fetch entity by ID, show confirmation modal)\n { from: 'browsing', to: 'deleting', event: 'DELETE', effects: [\n ['fetch', entityName, { id: '@payload.id' }],\n ['render-ui', 'modal', {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'trash-2', size: 'md' },\n { type: 'typography', content: `Delete ${entityName}`, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'typography', content: `@entity.${c.nonIdFields[0]?.name ?? 'name'}`, variant: 'h4' },\n { type: 'typography', content: c.deleteMessage, variant: 'body' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Cancel', event: 'CANCEL', variant: 'ghost' },\n { type: 'button', label: 'Delete', event: 'CONFIRM_DELETE', variant: 'danger', icon: 'trash' },\n ] },\n ],\n }],\n ] },\n // CONFIRM_DELETE: deleting → browsing (persist delete, dismiss modal, re-render main)\n { from: 'deleting', to: 'browsing', event: 'CONFIRM_DELETE', effects: [\n ['persist', 'delete', entityName, '@entity.id'],\n ['render-ui', 'modal', null],\n ['render-ui', 'main', browseMainView],\n ] },\n // CANCEL/CLOSE from deleting (dismiss modal, re-render main)\n { from: 'deleting', to: 'browsing', event: 'CANCEL', effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', browseMainView],\n ] },\n { from: 'deleting', to: 'browsing', event: 'CLOSE', effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', browseMainView],\n ] },\n );\n\n // 2. Shared entity\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: createTrait.name },\n { ref: editTrait.name },\n { ref: viewTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, createTrait, editTrait, viewTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-cart\n *\n * Shopping cart molecule. Composes atoms:\n * - Cart-specific browse trait (empty/hasItems/checkout states)\n * - stdModal for the add-item form (responds to ADD_ITEM)\n *\n * @level molecule\n * @family commerce\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, extractTrait } from '@almadar/core/builders';\nimport { stdModal } from '../atoms/std-modal.js';\nimport { stdConfirmation } from '../atoms/std-confirmation.js';\nimport { humanizeLabel, SYSTEM_FIELDS } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCartParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n listFields?: string[];\n formFields?: string[];\n pageTitle?: string;\n addButtonLabel?: string;\n checkoutButtonLabel?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n headerIcon?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CartConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n addButtonLabel: string;\n checkoutButtonLabel: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCartParams): CartConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n // Domain field required by stdConfirmation's render-ui bindings (@entity.pendingId)\n const domainFields: EntityField[] = [\n { name: 'pendingId', type: 'string', default: '' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n const nonIdFields = fields.filter(f => f.name !== 'id');\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.filter(f => !SYSTEM_FIELDS.has(f.name)).map(f => f.name),\n persistence: params.persistence ?? 'persistent',\n collection: params.collection,\n pageTitle: params.pageTitle ?? 'Shopping Cart',\n addButtonLabel: params.addButtonLabel ?? 'Add Item',\n checkoutButtonLabel: params.checkoutButtonLabel ?? 'Proceed to Checkout',\n emptyTitle: params.emptyTitle ?? 'Your cart is empty',\n emptyDescription: params.emptyDescription ?? 'Add items to get started.',\n headerIcon: params.headerIcon ?? 'shopping-cart',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? '/cart',\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Cart-specific browse trait (empty/hasItems/checkout)\n// ============================================================================\n\nfunction buildCartTrait(c: CartConfig): Trait {\n const { entityName, listFields, headerIcon, pageTitle, addButtonLabel, checkoutButtonLabel, emptyTitle, emptyDescription } = c;\n\n // Use columns-based rendering instead of legacy children/renderItem pattern\n // This leverages DataGrid's built-in card layout with proper entity binding\n const cartColumns = [\n { name: listFields[0] ?? 'id', label: humanizeLabel(listFields[0] ?? 'id'), variant: 'h4', icon: headerIcon },\n ...(listFields.length > 1 ? [{ name: listFields[1], label: humanizeLabel(listFields[1]), variant: 'caption' as const, format: 'currency' as const }] : []),\n ...(listFields.length > 2 ? [{ name: listFields[2], label: humanizeLabel(listFields[2]), variant: 'badge' as const }] : []),\n ];\n\n const headerBar = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'button', label: addButtonLabel, event: 'ADD_ITEM', variant: 'primary', icon: 'plus' },\n ],\n };\n\n const cartGrid = {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox', emptyTitle, emptyDescription,\n itemActions: [{ label: 'Remove', event: 'REQUEST_REMOVE', variant: 'danger', size: 'sm' }],\n columns: cartColumns,\n };\n\n return {\n name: `${entityName}CartBrowse`,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'browsing', isInitial: true },\n { name: 'checkout' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADD_ITEM', name: 'Add Item' },\n { key: 'REQUEST_REMOVE', name: 'Request Remove', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: 'PROCEED_CHECKOUT', name: 'Proceed to Checkout' },\n { key: 'BACK_TO_CART', name: 'Back to Cart' },\n { key: 'CONFIRM_ORDER', name: 'Confirm Order' },\n ],\n transitions: [\n // browsing + INIT (data-grid handles empty vs populated automatically)\n { from: 'browsing', to: 'browsing', event: 'INIT', effects: [\n ['ref', entityName],\n ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n headerBar, { type: 'divider' },\n // Order summary stats\n {\n type: 'simple-grid', columns: 3,\n children: [\n { type: 'stat-display', label: 'Items', value: ['array/len', '@entity'], icon: 'package' },\n { type: 'stat-display', label: 'Subtotal', value: ['array/len', '@entity'], icon: 'dollar-sign' },\n { type: 'stat-display', label: 'Total', value: ['array/len', '@entity'], icon: 'receipt' },\n ],\n },\n { type: 'divider' },\n cartGrid,\n { type: 'button', label: checkoutButtonLabel, event: 'PROCEED_CHECKOUT', variant: 'primary', icon: 'arrow-right' },\n ] }],\n ] },\n // PROCEED_CHECKOUT\n { from: 'browsing', to: 'checkout', event: 'PROCEED_CHECKOUT', effects: [\n ['ref', entityName],\n ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'clipboard', size: 'lg' },\n { type: 'typography', content: 'Checkout', variant: 'h2' },\n ] },\n { type: 'divider' },\n cartGrid,\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Back to Cart', event: 'BACK_TO_CART', variant: 'ghost', icon: 'arrow-left' },\n { type: 'button', label: 'Confirm Order', event: 'CONFIRM_ORDER', variant: 'primary', icon: 'check' },\n ] },\n ] }],\n ] },\n // BACK_TO_CART\n { from: 'checkout', to: 'browsing', event: 'BACK_TO_CART', effects: [['ref', entityName]] },\n // CONFIRM_ORDER\n { from: 'checkout', to: 'browsing', event: 'CONFIRM_ORDER', effects: [\n ['ref', entityName],\n ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', align: 'center', children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Order Confirmed', variant: 'h2' },\n { type: 'typography', content: 'Your order has been placed successfully.', variant: 'body' },\n { type: 'button', label: 'Continue Shopping', event: 'INIT', variant: 'primary' },\n ] }],\n ] },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdCartEntity(params: StdCartParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdCartTrait(params: StdCartParams): Trait {\n return buildCartTrait(resolve(params));\n}\n\nexport function stdCartPage(params: StdCartParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: `${c.entityName}CartBrowse` }, { ref: `${c.entityName}AddItem` }, { ref: `${c.entityName}RemoveConfirm` }],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCart(params: StdCartParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields } = c;\n\n // Cart-specific browse trait\n const cartTrait = buildCartTrait(c);\n\n // Add-item modal (stdModal atom)\n const addTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}AddItem`,\n modalTitle: c.addButtonLabel,\n headerIcon: 'plus-circle',\n openContent: {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'plus-circle', size: 'md' },\n { type: 'typography', content: c.addButtonLabel, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SAVE', cancelEvent: 'CLOSE', fields: formFields },\n ],\n },\n openEvent: 'ADD_ITEM',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data']],\n }));\n\n // Remove confirmation (stdConfirmation atom)\n const removeTrait = extractTrait(stdConfirmation({ standalone: false,\n entityName, fields,\n traitName: `${entityName}RemoveConfirm`,\n confirmTitle: 'Remove Item',\n confirmMessage: 'Are you sure you want to remove this item from your cart?',\n confirmLabel: 'Remove',\n headerIcon: 'trash-2',\n requestEvent: 'REQUEST_REMOVE',\n confirmEvent: 'CONFIRM_REMOVE',\n confirmEffects: [['persist', 'delete', entityName, '@entity.pendingId']],\n }));\n\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: cartTrait.name }, { ref: addTrait.name }, { ref: removeTrait.name }],\n } as Page;\n\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [cartTrait, addTrait, removeTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-detail\n *\n * Browse + Create + View molecule. Composes atoms:\n * - stdBrowse: data-grid with View item action and Create header action\n * - stdModal: create form (responds to CREATE)\n * - stdModal: view detail (responds to VIEW)\n *\n * No edit/delete from list. Used for feeds, ledgers, galleries.\n *\n * @level molecule\n * @family crud\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from '../atoms/std-browse.js';\nimport { stdModal } from '../atoms/std-modal.js';\nimport { humanizeLabel, SYSTEM_FIELDS } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDetailParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n listFields?: string[];\n detailFields?: string[];\n formFields?: string[];\n pageTitle?: string;\n createButtonLabel?: string;\n createFormTitle?: string;\n headerIcon?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n\n // Display customization (organisms override for domain-specific layouts)\n displayPattern?: string;\n customRenderItem?: unknown;\n displayColumns?: unknown[];\n statsBar?: unknown[];\n displayProps?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DetailConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n detailFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n createButtonLabel: string;\n createFormTitle: string;\n headerIcon: string;\n emptyTitle: string;\n emptyDescription: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDetailParams): DetailConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n formFields: params.formFields ?? nonIdFields.filter(f => !SYSTEM_FIELDS.has(f.name)).map(f => f.name),\n persistence: params.persistence ?? 'persistent',\n collection: params.collection,\n pageTitle: params.pageTitle ?? p,\n createButtonLabel: params.createButtonLabel ?? `Create ${entityName}`,\n createFormTitle: params.createFormTitle ?? `New ${entityName}`,\n headerIcon: params.headerIcon ?? 'file-text',\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} yet`,\n emptyDescription: params.emptyDescription ?? `Create your first ${entityName.toLowerCase()} to get started.`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdDetailEntity(params: StdDetailParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdDetailTrait(params: StdDetailParams): Trait {\n return extractTrait(stdDetail(params));\n}\n\nexport function stdDetailPage(params: StdDetailParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: `${c.entityName}Browse` }, { ref: `${c.entityName}Create` }, { ref: `${c.entityName}View` }],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDetail(params: StdDetailParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, detailFields } = c;\n\n // Browse atom: list with View action + Create button, refreshes on SAVE\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: c.emptyTitle,\n emptyDescription: c.emptyDescription,\n headerActions: [{ label: c.createButtonLabel, event: 'CREATE', variant: 'primary', icon: 'plus' }],\n itemActions: [{ label: 'View', event: 'VIEW' }],\n refreshEvents: ['SAVE'],\n displayPattern: params.displayPattern,\n customRenderItem: params.customRenderItem,\n displayColumns: params.displayColumns,\n statsBar: params.statsBar,\n displayProps: params.displayProps,\n }));\n\n // Create modal atom\n const createTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Create`,\n modalTitle: c.createFormTitle,\n headerIcon: 'plus-circle',\n openContent: {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'plus-circle', size: 'md' },\n { type: 'typography', content: c.createFormTitle, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SAVE', cancelEvent: 'CLOSE', fields: formFields },\n ],\n },\n openEvent: 'CREATE',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data']],\n emitOnSave: 'SAVE',\n }));\n\n // View modal atom\n const viewTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}View`,\n modalTitle: `View ${entityName}`,\n headerIcon: 'eye',\n openContent: {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'eye', size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: humanizeLabel(f) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Close', event: 'CLOSE', variant: 'ghost' },\n ] },\n ],\n },\n openEvent: 'VIEW',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, { id: '@payload.id' }]],\n }));\n\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: browseTrait.name }, { ref: createTrait.name }, { ref: viewTrait.name }],\n } as Page;\n\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, createTrait, viewTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-inventory\n *\n * Item collection molecule. Composes atoms via shared event bus:\n * - stdBrowse: data-grid with item actions (fires ADD_ITEM, USE_ITEM, DROP)\n * - stdModal (add): create form for adding items (responds to ADD_ITEM)\n * - stdModal (use): item detail for using items (responds to USE_ITEM)\n * - stdConfirmation: drop confirmation (responds to DROP)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from '../atoms/std-browse.js';\nimport { stdModal } from '../atoms/std-modal.js';\nimport { stdConfirmation } from '../atoms/std-confirmation.js';\nimport { SYSTEM_FIELDS } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdInventoryParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n formFields?: string[];\n\n // Labels\n pageTitle?: string;\n addLabel?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface InventoryConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n addLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdInventoryParams): InventoryConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields required by stdConfirmation's render-ui bindings (@entity.pendingId)\n const domainFields: EntityField[] = [\n { name: 'pendingId', type: 'string', default: '' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n const nonIdFields = fields.filter(f => f.name !== 'id');\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.filter(f => !SYSTEM_FIELDS.has(f.name)).map(f => f.name),\n persistence: params.persistence ?? 'persistent',\n collection: params.collection,\n pageTitle: params.pageTitle ?? `${p} Inventory`,\n addLabel: params.addLabel ?? `Add ${entityName}`,\n headerIcon: params.headerIcon ?? 'package',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction addFormContent(entityName: string, addLabel: string, formFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'plus-circle', size: 'md' },\n { type: 'typography', content: addLabel, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SAVE', cancelEvent: 'CLOSE', fields: formFields },\n ],\n };\n}\n\nfunction useItemContent(entityName: string, listFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'zap', size: 'md' },\n { type: 'typography', content: `Use ${entityName}`, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'typography', content: `@entity.${listFields[0] ?? 'id'}`, variant: 'body' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center', children: [\n { type: 'button', label: 'Cancel', event: 'CLOSE', variant: 'ghost' },\n { type: 'button', label: 'Confirm Use', event: 'SAVE', variant: 'primary', icon: 'check' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdInventoryEntity(params: StdInventoryParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdInventoryTrait(params: StdInventoryParams): Trait {\n return extractTrait(stdInventory(params));\n}\n\nexport function stdInventoryPage(params: StdInventoryParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Add` },\n { ref: `${c.entityName}Use` },\n { ref: `${c.entityName}Drop` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdInventory(params: StdInventoryParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, listFields } = c;\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: 'No items yet',\n emptyDescription: 'Add your first item to get started.',\n headerActions: [{ label: c.addLabel, event: 'ADD_ITEM', variant: 'primary', icon: 'plus' }],\n itemActions: [\n { label: 'Use', event: 'USE_ITEM' },\n { label: 'Drop', event: 'DROP', variant: 'danger' },\n ],\n refreshEvents: ['ITEM_ADDED', 'ITEM_USED', 'CONFIRM_DROP'],\n }));\n\n const addTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Add`,\n modalTitle: c.addLabel,\n headerIcon: 'plus-circle',\n openContent: addFormContent(entityName, c.addLabel, formFields),\n openEvent: 'ADD_ITEM',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data']],\n emitOnSave: 'ITEM_ADDED',\n }));\n\n const useTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Use`,\n modalTitle: `Use ${entityName}`,\n headerIcon: 'zap',\n openContent: useItemContent(entityName, listFields),\n openEvent: 'USE_ITEM',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, { id: '@payload.id' }]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'update', entityName, '@payload.data']],\n emitOnSave: 'ITEM_USED',\n }));\n\n const dropTrait = extractTrait(stdConfirmation({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Drop`,\n confirmTitle: `Drop ${entityName}`,\n confirmMessage: `Are you sure you want to drop this ${entityName.toLowerCase()}?`,\n confirmLabel: 'Drop',\n headerIcon: 'trash-2',\n requestEvent: 'DROP',\n confirmEvent: 'CONFIRM_DROP',\n confirmEffects: [['persist', 'delete', entityName, '@payload.id']],\n emitOnConfirm: 'CONFIRM_DROP',\n }));\n\n // CONFIRM_DROP effects reference @payload.id, so declare the payload on the event\n const dropSm = dropTrait.stateMachine;\n if (dropSm && 'events' in dropSm) {\n const events = dropSm.events as Array<{ key: string; payload?: unknown[] }>;\n const confirmDropEvt = events.find(e => e.key === 'CONFIRM_DROP');\n if (confirmDropEvt && !confirmDropEvt.payload) {\n confirmDropEvt.payload = [{ name: 'id', type: 'string', required: true }];\n }\n }\n\n // 2. Shared entity with seed instances so INIT fetch returns data\n const instances = [\n { id: 'item-1', name: 'Health Potion', description: 'Restores 50 HP', status: 'active', pendingId: '' },\n { id: 'item-2', name: 'Iron Sword', description: 'A sturdy blade', status: 'active', pendingId: '' },\n { id: 'item-3', name: 'Wooden Shield', description: 'Basic protection', status: 'active', pendingId: '' },\n ];\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection, instances });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: addTrait.name },\n { ref: useTrait.name },\n { ref: dropTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, addTrait, useTrait, dropTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-messaging\n *\n * Messaging molecule. Composes atoms via shared event bus:\n * - stdBrowse: message list with \"Compose\" header action, \"View\" item action\n * - stdModal (compose): compose/send message form (COMPOSE -> SEND)\n * - stdModal (view): view message detail (VIEW with id payload)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family communication\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from '../atoms/std-browse.js';\nimport { stdModal } from '../atoms/std-modal.js';\nimport { humanizeLabel, SYSTEM_FIELDS } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdMessagingParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n formFields?: string[];\n detailFields?: string[];\n\n // Labels\n pageTitle?: string;\n composerTitle?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n\n // Display customization (organisms override for domain-specific layouts)\n displayPattern?: string;\n customRenderItem?: unknown;\n displayColumns?: unknown[];\n statsBar?: unknown[];\n displayProps?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface MessagingConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n detailFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n composerTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdMessagingParams): MessagingConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.filter(f => !SYSTEM_FIELDS.has(f.name)).map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'persistent',\n collection: params.collection,\n pageTitle: params.pageTitle ?? p,\n composerTitle: params.composerTitle ?? `New ${entityName}`,\n headerIcon: params.headerIcon ?? 'message-circle',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction composeContent(entityName: string, title: string, formFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'edit', size: 'md' },\n { type: 'typography', content: title, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SEND', cancelEvent: 'CLOSE', fields: formFields },\n ],\n };\n}\n\nfunction viewContent(detailFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'eye', size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: humanizeLabel(f) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Close', event: 'CLOSE', variant: 'ghost' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdMessagingEntity(params: StdMessagingParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdMessagingTrait(params: StdMessagingParams): Trait {\n return extractTrait(stdMessaging(params));\n}\n\nexport function stdMessagingPage(params: StdMessagingParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Compose` },\n { ref: `${c.entityName}View` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdMessaging(params: StdMessagingParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, detailFields } = c;\n\n // Messaging-specific columns: sender, content preview, timestamp\n const messagingColumns = params.displayColumns ?? [\n { name: c.listFields[0] ?? 'name', label: humanizeLabel(c.listFields[0] ?? 'name'), variant: 'h4', icon: c.headerIcon },\n ...(c.listFields.length > 1 ? [{ name: c.listFields[1], label: humanizeLabel(c.listFields[1]), variant: 'caption' as const }] : []),\n ...(c.listFields.length > 2 ? [{ name: c.listFields[2], label: humanizeLabel(c.listFields[2]), variant: 'caption' as const, format: 'date' as const }] : []),\n ];\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: 'No messages yet',\n emptyDescription: 'Start a new conversation.',\n headerActions: [{ label: 'Compose', event: 'COMPOSE', variant: 'primary', icon: 'edit' }],\n itemActions: [{ label: 'View', event: 'VIEW' }],\n refreshEvents: ['SEND'],\n displayPattern: params.displayPattern,\n customRenderItem: params.customRenderItem,\n displayColumns: messagingColumns,\n statsBar: params.statsBar,\n displayProps: params.displayProps ?? { variant: 'compact' },\n }));\n\n const composeTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Compose`,\n modalTitle: c.composerTitle,\n headerIcon: 'edit',\n openContent: composeContent(entityName, c.composerTitle, formFields),\n openEvent: 'COMPOSE',\n closeEvent: 'CLOSE',\n saveEvent: 'SEND',\n saveEffects: [['persist', 'create', entityName, '@payload.data']],\n emitOnSave: 'SEND',\n }));\n\n const viewTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}View`,\n modalTitle: `View ${entityName}`,\n headerIcon: 'eye',\n openContent: viewContent(detailFields),\n openEvent: 'VIEW',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, { id: '@payload.id' }]],\n }));\n\n // 2. Shared entity\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: composeTrait.name },\n { ref: viewTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, composeTrait, viewTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-geospatial\n *\n * Location selection molecule. Composes atoms via shared event bus:\n * - stdBrowse: location list with \"Select\" item action (fires SELECT)\n * - stdModal: select/view location detail (responds to SELECT)\n * - stdConfirmation: confirm location selection (responds to CONFIRM_SELECT)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family location\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from '../atoms/std-browse.js';\nimport { stdModal } from '../atoms/std-modal.js';\nimport { stdConfirmation } from '../atoms/std-confirmation.js';\nimport { humanizeLabel } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGeospatialParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n detailFields?: string[];\n\n // Labels\n pageTitle?: string;\n selectLabel?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GeospatialConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n detailFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n selectLabel: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGeospatialParams): GeospatialConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields required by stdConfirmation's render-ui bindings (@entity.pendingId)\n const domainFields: EntityField[] = [\n { name: 'pendingId', type: 'string', default: '' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n const nonIdFields = fields.filter(f => f.name !== 'id');\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'persistent',\n collection: params.collection,\n pageTitle: params.pageTitle ?? `${p} Picker`,\n selectLabel: params.selectLabel ?? `Select ${entityName}`,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} found`,\n emptyDescription: params.emptyDescription ?? `No ${p.toLowerCase()} are available to select.`,\n headerIcon: params.headerIcon ?? 'map-pin',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction detailContent(detailFields: string[], headerIcon: string): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: humanizeLabel(f) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Cancel', event: 'CLOSE', variant: 'ghost' },\n { type: 'button', label: 'Confirm Selection', event: 'CONFIRM_SELECT', variant: 'primary', icon: 'check' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdGeospatialEntity(params: StdGeospatialParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdGeospatialTrait(params: StdGeospatialParams): Trait {\n return extractTrait(stdGeospatial(params));\n}\n\nexport function stdGeospatialPage(params: StdGeospatialParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Select` },\n { ref: `${c.entityName}ConfirmSelect` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdGeospatial(params: StdGeospatialParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, detailFields } = c;\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: c.emptyTitle,\n emptyDescription: c.emptyDescription,\n itemActions: [\n { label: c.selectLabel, event: 'SELECT' },\n ],\n refreshEvents: ['CONFIRMED'],\n }));\n\n const selectTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Select`,\n modalTitle: `Select ${entityName}`,\n headerIcon: c.headerIcon,\n openContent: detailContent(detailFields, c.headerIcon),\n openEvent: 'SELECT',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, { id: '@payload.id' }]],\n saveEvent: 'CONFIRM_SELECT',\n saveEffects: [],\n }));\n\n const confirmTrait = extractTrait(stdConfirmation({ standalone: false,\n entityName, fields,\n traitName: `${entityName}ConfirmSelect`,\n confirmTitle: `Confirm ${entityName} Selection`,\n confirmMessage: `Are you sure you want to select this ${entityName.toLowerCase()}?`,\n confirmLabel: 'Confirm',\n headerIcon: 'check-circle',\n requestEvent: 'CONFIRM_SELECT',\n confirmEvent: 'CONFIRMED',\n confirmEffects: [['fetch', entityName]],\n emitOnConfirm: 'CONFIRMED',\n }));\n\n // 2. Shared entity\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: selectTrait.name },\n { ref: confirmTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, selectTrait, confirmTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-quiz\n *\n * Quiz molecule composing flip-card atom with question/answer flow.\n * Absorbs: quiz-block.\n *\n * @level molecule\n * @family quiz\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdQuizParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface QuizConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n secondaryField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdQuizParams): QuizConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'question') ? [] : [{ name: 'question', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'answer') ? [] : [{ name: 'answer', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'optionA') ? [] : [{ name: 'optionA', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'optionB') ? [] : [{ name: 'optionB', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'optionC') ? [] : [{ name: 'optionC', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'optionD') ? [] : [{ name: 'optionD', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'difficulty') ? [] : [{ name: 'difficulty', type: 'string' as const, default: 'medium' }]),\n ...(baseFields.some(f => f.name === 'currentIndex') ? [] : [{ name: 'currentIndex', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'totalQuestions') ? [] : [{ name: 'totalQuestions', type: 'number' as const, default: 3 }]),\n ];\n const nonIdFields = baseFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n secondaryField: nonIdFields[1]?.name ?? nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Quiz`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'help-circle',\n pageTitle: params.pageTitle ?? 'Quiz',\n pageName: params.pageName ?? `${entityName}QuizPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/quiz`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nconst ef = (field: string): unknown[] => ['object/get', ['array/first', '@entity'], field];\n\nfunction buildEntity(c: QuizConfig): Entity {\n const instances = [\n { id: 'q-1', name: 'What planet is closest to the Sun?', description: 'Mercury', status: 'active', createdAt: '2026-01-01', question: 'What planet is closest to the Sun?', answer: 'Mercury', optionA: 'Mercury', optionB: 'Venus', optionC: 'Mars', optionD: 'Earth', difficulty: 'easy', currentIndex: 0, totalQuestions: 3 },\n { id: 'q-2', name: 'What is the chemical symbol for gold?', description: 'Au', status: 'active', createdAt: '2026-01-02', question: 'What is the chemical symbol for gold?', answer: 'Au', optionA: 'Ag', optionB: 'Au', optionC: 'Fe', optionD: 'Cu', difficulty: 'medium', currentIndex: 0, totalQuestions: 3 },\n { id: 'q-3', name: 'Who painted the Mona Lisa?', description: 'Leonardo da Vinci', status: 'active', createdAt: '2026-01-03', question: 'Who painted the Mona Lisa?', answer: 'Leonardo da Vinci', optionA: 'Michelangelo', optionB: 'Raphael', optionC: 'Leonardo da Vinci', optionD: 'Donatello', difficulty: 'easy', currentIndex: 0, totalQuestions: 3 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, instances });\n}\n\nfunction buildTrait(c: QuizConfig): Trait {\n const { entityName, displayField, secondaryField, headerIcon, pageTitle } = c;\n\n const questionView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'help-circle', size: 'lg' },\n { type: 'typography', variant: 'h3', content: ef(displayField) },\n ],\n }],\n },\n {\n type: 'simple-grid', columns: 2,\n children: [\n { type: 'button', label: ef('optionA'), event: 'ANSWER', variant: 'secondary', actionPayload: { answer: 'A' } },\n { type: 'button', label: ef('optionB'), event: 'ANSWER', variant: 'secondary', actionPayload: { answer: 'B' } },\n { type: 'button', label: ef('optionC'), event: 'ANSWER', variant: 'secondary', actionPayload: { answer: 'C' } },\n { type: 'button', label: ef('optionD'), event: 'ANSWER', variant: 'secondary', actionPayload: { answer: 'D' } },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'signal', size: 'sm' },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Difficulty:' },\n { type: 'badge', label: ef('difficulty') },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'xs', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Question' },\n { type: 'typography', variant: 'caption', content: ['+', ['or', ef('currentIndex'), 0], 1] },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'of' },\n { type: 'typography', variant: 'caption', content: ['or', ef('totalQuestions'), 0] },\n ],\n },\n ],\n },\n ],\n };\n\n const revealedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: 'Answer Revealed', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Question' },\n { type: 'typography', variant: 'body', content: ef(displayField) },\n { type: 'divider' },\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Answer' },\n { type: 'typography', variant: 'h3', content: ef(secondaryField) },\n ],\n }],\n },\n { type: 'alert', variant: 'info', message: 'Review the answer above.' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Next Question', event: 'NEXT', variant: 'primary', icon: 'arrow-right' },\n ],\n },\n ],\n };\n\n const completeView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Quiz Complete!', variant: 'h2' },\n { type: 'alert', variant: 'success', message: 'You have completed all questions.' },\n { type: 'button', label: 'Restart', event: 'RESTART', variant: 'primary', icon: 'rotate-ccw' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'question', isInitial: true },\n { name: 'answer-revealed' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ANSWER', name: 'Answer', payload: [{ name: 'answer', type: 'string', required: true }] },\n { key: 'NEXT', name: 'Next Question' },\n { key: 'RESTART', name: 'Restart' },\n ],\n transitions: [\n { from: 'question', to: 'question', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', questionView]] },\n { from: 'question', to: 'answer-revealed', event: 'ANSWER', effects: [['render-ui', 'main', revealedView]] },\n { from: 'answer-revealed', to: 'question', event: 'NEXT', effects: [\n ['set', '@entity.currentIndex', ['+', '@entity.currentIndex', 1]],\n ['fetch', entityName],\n ['render-ui', 'main', questionView],\n ] },\n { from: 'answer-revealed', to: 'complete', event: 'RESTART', effects: [['render-ui', 'main', completeView]] },\n { from: 'complete', to: 'question', event: 'RESTART', effects: [['fetch', entityName], ['render-ui', 'main', questionView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: QuizConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdQuizEntity(params: StdQuizParams): Entity { return buildEntity(resolve(params)); }\nexport function stdQuizTrait(params: StdQuizParams): Trait { return buildTrait(resolve(params)); }\nexport function stdQuizPage(params: StdQuizParams): Page { return buildPage(resolve(params)); }\n\nexport function stdQuiz(params: StdQuizParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-form-advanced\n *\n * Advanced form molecule with relation-select for linked entity fields.\n * Absorbs: relation-select.\n *\n * @level molecule\n * @family form\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\nimport { humanizeLabel, SYSTEM_FIELDS } from '../utils.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdFormAdvancedParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n /** Related entity name for relation-select field */\n relatedEntity?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface FormAdvancedConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n relatedEntity: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdFormAdvancedParams): FormAdvancedConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n // Inject fields of every type to showcase all form widget types\n const fields: EntityField[] = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'notes') ? [] : [{ name: 'notes', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'age') ? [] : [{ name: 'age', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'isActive') ? [] : [{ name: 'isActive', type: 'boolean' as const, default: false }]),\n ...(baseFields.some(f => f.name === 'birthDate') ? [] : [{ name: 'birthDate', type: 'date' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'priority') ? [] : [{ name: 'priority', type: 'string' as const, default: 'medium', values: ['low', 'medium', 'high', 'critical'] }]),\n ...(baseFields.some(f => f.name === 'categoryId') ? [] : [{ name: 'categoryId', type: 'relation' as EntityField['type'], default: '', relation: { entity: params.relatedEntity ?? entityName, cardinality: 'many-to-one' as const } }]),\n ];\n const nonIdFields = fields.filter(f => f.name !== 'id' && !SYSTEM_FIELDS.has(f.name));\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}FormAdvanced`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'file-text',\n pageTitle: params.pageTitle ?? `${entityName} Form`,\n relatedEntity: params.relatedEntity ?? entityName,\n pageName: params.pageName ?? `${entityName}FormPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/form`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: FormAdvancedConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: FormAdvancedConfig): Trait {\n const { entityName, nonIdFields, headerIcon, pageTitle, relatedEntity } = c;\n\n const editingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SUBMIT', cancelEvent: 'INIT',\n fields: nonIdFields.map(f => {\n const fieldDef: Record<string, unknown> = { name: f.name, label: humanizeLabel(f.name) };\n if (f.type === 'number') fieldDef.type = 'number';\n else if (f.type === 'boolean') fieldDef.type = 'boolean';\n else if (f.type === 'date') fieldDef.type = 'date';\n else if (f.type === 'relation') { fieldDef.type = 'relation'; fieldDef.relation = ('relation' in f) ? f.relation : { entity: relatedEntity }; }\n else if ('values' in f && f.values) { fieldDef.type = 'enum'; fieldDef.values = f.values; }\n else if (f.name === 'notes') fieldDef.type = 'textarea';\n return fieldDef;\n }) },\n // Note: form-section already renders Save/Cancel buttons via submitEvent/cancelEvent\n ],\n };\n\n const submittedView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Form Submitted', variant: 'h2' },\n { type: 'alert', variant: 'success', message: 'Your form has been submitted successfully.' },\n {\n type: 'grid', columns: 2, gap: 'md',\n children: nonIdFields.map(f => ({\n type: 'stack', direction: 'vertical', gap: 'xs',\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: humanizeLabel(f.name) },\n { type: 'typography', variant: 'body', content: ['object/get', ['array/first', '@entity'], f.name] },\n ],\n })),\n },\n { type: 'button', label: 'New Entry', event: 'RESET', variant: 'primary', icon: 'plus' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'editing', isInitial: true },\n { name: 'submitted' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SUBMIT', name: 'Submit', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'editing', to: 'editing', event: 'INIT', effects: [\n ['fetch', entityName, { include: ['categoryId'] }],\n ['fetch', relatedEntity],\n ['render-ui', 'main', editingView],\n ] },\n { from: 'editing', to: 'submitted', event: 'SUBMIT', effects: [['persist', 'create', entityName, '@payload.data'], ['render-ui', 'main', submittedView]] },\n { from: 'submitted', to: 'editing', event: 'RESET', effects: [\n ['fetch', entityName, { include: ['categoryId'] }],\n ['fetch', relatedEntity],\n ['render-ui', 'main', editingView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: FormAdvancedConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdFormAdvancedEntity(params: StdFormAdvancedParams): Entity { return buildEntity(resolve(params)); }\nexport function stdFormAdvancedTrait(params: StdFormAdvancedParams): Trait { return buildTrait(resolve(params)); }\nexport function stdFormAdvancedPage(params: StdFormAdvancedParams): Page { return buildPage(resolve(params)); }\n\nexport function stdFormAdvanced(params: StdFormAdvancedParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-turn-based-battle\n *\n * Turn-based strategy game molecule (Fire Emblem, XCOM style).\n * Composes game atoms into a two-trait orbital:\n *\n * 1. BattleFlow trait (primary): menu -> playing -> paused -> gameover\n * Renders game-menu, game-hud + combat-log, game-over-screen per state.\n * 2. BattleLog trait (secondary): idle state, combat-log pattern.\n * Only renders when LOG_EVENT fires from the shared event bus.\n *\n * Composition pattern: extractTrait from atom orbitals, assemble into\n * one orbital with one shared entity and one page.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdCombatLog } from '../atoms/std-combat-log.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTurnBasedBattleParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Game config\n gameTitle?: string;\n boardWidth?: number;\n boardHeight?: number;\n\n // Labels\n menuSubtitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Combat log\n logTitle?: string;\n logMaxVisible?: number;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface BattleConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n battleTraitName: string;\n logTraitName: string;\n gameTitle: string;\n boardWidth: number;\n boardHeight: number;\n menuSubtitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n logTitle: string;\n logMaxVisible: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTurnBasedBattleParams): BattleConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields required by render-ui bindings (@entity.turn, @entity.score)\n const domainFields: EntityField[] = [\n { name: 'turn', type: 'number', default: 0 },\n { name: 'score', type: 'number', default: 0 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n battleTraitName: `${entityName}BattleFlow`,\n logTraitName: `${entityName}CombatLog`,\n gameTitle: params.gameTitle ?? 'Battle Arena',\n boardWidth: params.boardWidth ?? 8,\n boardHeight: params.boardHeight ?? 8,\n menuSubtitle: params.menuSubtitle ?? 'Turn-Based Strategy',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Battle Over',\n logTitle: params.logTitle ?? 'Combat Log',\n logMaxVisible: params.logMaxVisible ?? 10,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// BattleFlow trait (primary state machine)\n// ============================================================================\n\nfunction buildBattleFlowTrait(c: BattleConfig): Trait {\n const { entityName, gameTitle, menuSubtitle, pauseTitle, gameoverTitle } = c;\n\n // menu state: game-menu with Start Battle button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuSubtitle,\n menuItems: [\n { label: 'Start Battle', event: 'START', variant: 'primary' },\n ],\n };\n\n // playing state: game-hud showing turn/score stats\n const playingUI = {\n type: 'game-hud',\n stats: [\n { label: 'Turn', value: '@entity.turn' },\n { label: 'Score', value: '@entity.score' },\n ],\n };\n\n // paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // gameover state: game-over-screen with final stats\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Turns', value: '@entity.turn' },\n { label: 'Score', value: '@entity.score' },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.battleTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Battle' },\n { key: 'END_TURN', name: 'End Turn' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Game Over' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu (fetch entity, render menu)\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // END_TURN: playing -> playing (increment turn)\n {\n from: 'playing', to: 'playing', event: 'END_TURN',\n effects: [\n ['set', '@entity.turn', ['+', '@entity.turn', 1]],\n ['render-ui', 'main', playingUI],\n ],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused (modal)\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing (dismiss modal, re-render main)\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// BattleLog trait (extracted from stdCombatLog atom, INIT render removed)\n// ============================================================================\n\nfunction buildBattleLogTrait(c: BattleConfig): Trait {\n const logTrait = extractTrait(stdCombatLog({\n entityName: c.entityName,\n fields: c.fields,\n title: c.logTitle,\n maxVisible: c.logMaxVisible,\n autoScroll: true,\n showTimestamps: true,\n }));\n\n // Override the name to avoid collision with standalone combat-log\n logTrait.name = c.logTraitName;\n\n // Remove the INIT transition's render-ui effect so the log does not\n // render to main on page load (the BattleFlow trait owns main).\n // Keep the fetch so entity data is ready when LOG_EVENT fires.\n const sm = logTrait.stateMachine;\n if (sm && 'transitions' in sm) {\n const transitions = sm.transitions as Array<{\n event: string;\n effects: unknown[];\n }>;\n for (const t of transitions) {\n if (t.event === 'INIT') {\n t.effects = t.effects.filter(e =>\n !(Array.isArray(e) && e[0] === 'render-ui'),\n );\n }\n }\n }\n\n return logTrait;\n}\n\n// ============================================================================\n// Entity, Page builders\n// ============================================================================\n\nfunction buildEntity(c: BattleConfig): Entity {\n const instances = [\n { id: 'unit-1', name: 'Knight', description: 'Armored warrior', status: 'active', turn: 0, score: 0 },\n { id: 'unit-2', name: 'Archer', description: 'Ranged attacker', status: 'active', turn: 0, score: 0 },\n { id: 'unit-3', name: 'Mage', description: 'Magic caster', status: 'active', turn: 0, score: 0 },\n ];\n return makeEntity({\n name: c.entityName,\n fields: c.fields,\n persistence: c.persistence,\n collection: c.collection,\n instances,\n });\n}\n\nfunction buildPage(c: BattleConfig): Page {\n return {\n name: c.pageName,\n path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.battleTraitName },\n { ref: c.logTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdTurnBasedBattleEntity(params: StdTurnBasedBattleParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdTurnBasedBattleTrait(params: StdTurnBasedBattleParams): Trait {\n return buildBattleFlowTrait(resolve(params));\n}\n\nexport function stdTurnBasedBattlePage(params: StdTurnBasedBattleParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdTurnBasedBattle(params: StdTurnBasedBattleParams): OrbitalDefinition {\n const c = resolve(params);\n\n const battleFlowTrait = buildBattleFlowTrait(c);\n const battleLogTrait = buildBattleLogTrait(c);\n const entity = buildEntity(c);\n const page = buildPage(c);\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [battleFlowTrait, battleLogTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-platformer-game\n *\n * Side-scrolling platformer game molecule.\n * Composes game atoms into a two-trait orbital:\n *\n * 1. PlatformerFlow trait (primary): menu -> playing -> paused -> gameover\n * Renders game-menu, platformer-canvas, game-over-screen per state.\n * 2. PlatformerCanvas trait (secondary): extracted from stdPlatformerCanvas,\n * INIT render-ui removed (standalone: false pattern) so the flow trait\n * owns the main render slot.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdPlatformerCanvas } from '../atoms/std-platformer-canvas.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPlatformerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Game config\n gameTitle?: string;\n canvasWidth?: number;\n canvasHeight?: number;\n\n // Labels\n menuSubtitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PlatformerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n flowTraitName: string;\n canvasTraitName: string;\n gameTitle: string;\n canvasWidth: number;\n canvasHeight: number;\n menuSubtitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPlatformerGameParams): PlatformerGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields required by render-ui bindings (@entity.score, @entity.lives, @entity.player, @entity.platforms)\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0, min: 0, max: 9999 },\n { name: 'lives', type: 'number', default: 3, min: 0, max: 10 },\n { name: 'player', type: 'string', default: '' },\n { name: 'platforms', type: 'string', default: '' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n flowTraitName: `${entityName}PlatformerFlow`,\n canvasTraitName: `${entityName}PlatformerCanvas`,\n gameTitle: params.gameTitle ?? 'Platformer',\n canvasWidth: params.canvasWidth ?? 800,\n canvasHeight: params.canvasHeight ?? 400,\n menuSubtitle: params.menuSubtitle ?? 'Side-Scrolling Adventure',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Game Over',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// PlatformerFlow trait (primary state machine)\n// ============================================================================\n\nfunction buildPlatformerFlowTrait(c: PlatformerGameConfig): Trait {\n const { entityName, gameTitle, menuSubtitle, pauseTitle, gameoverTitle, canvasWidth, canvasHeight } = c;\n\n // menu state: game-menu with Start Game button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuSubtitle,\n menuItems: [\n { label: 'Start Game', event: 'START', variant: 'primary' },\n ],\n };\n\n // playing state: platformer-canvas for side-scrolling gameplay\n const playingUI = {\n type: 'platformer-canvas',\n canvasWidth,\n canvasHeight,\n worldWidth: canvasWidth * 3,\n worldHeight: canvasHeight,\n followCamera: true,\n bgColor: '#1a1a2e',\n leftEvent: 'LEFT',\n rightEvent: 'RIGHT',\n jumpEvent: 'JUMP',\n stopEvent: 'STOP',\n };\n\n // paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // gameover state: game-over-screen with final stats\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Lives', value: '@entity.lives' },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.flowTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Game' },\n { key: 'LEFT', name: 'Move Left' },\n { key: 'RIGHT', name: 'Move Right' },\n { key: 'JUMP', name: 'Jump' },\n { key: 'STOP', name: 'Stop' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Game Over' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu (fetch entity, render menu)\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing (render platformer canvas)\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // Movement: playing -> playing self-loops\n {\n from: 'playing', to: 'playing', event: 'LEFT',\n effects: [],\n },\n {\n from: 'playing', to: 'playing', event: 'RIGHT',\n effects: [],\n },\n {\n from: 'playing', to: 'playing', event: 'JUMP',\n effects: [],\n },\n {\n from: 'playing', to: 'playing', event: 'STOP',\n effects: [],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused (modal)\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing (dismiss modal, re-render main)\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// PlatformerCanvas trait (extracted from stdPlatformerCanvas, INIT render removed)\n// ============================================================================\n\nfunction buildPlatformerCanvasTrait(c: PlatformerGameConfig): Trait {\n const canvasTrait = extractTrait(stdPlatformerCanvas({\n entityName: c.entityName,\n fields: c.fields,\n canvasWidth: c.canvasWidth,\n canvasHeight: c.canvasHeight,\n followCamera: true,\n bgColor: '#1a1a2e',\n }));\n\n // Override name to avoid collision with standalone platformer-canvas\n canvasTrait.name = c.canvasTraitName;\n\n // Remove the INIT transition's render-ui effect so the canvas does not\n // render to main on page load (the PlatformerFlow trait owns main).\n // Keep the fetch so entity data is ready.\n const sm = canvasTrait.stateMachine;\n if (sm && 'transitions' in sm) {\n const transitions = sm.transitions as Array<{\n event: string;\n effects: unknown[];\n }>;\n for (const t of transitions) {\n if (t.event === 'INIT') {\n t.effects = t.effects.filter(e =>\n !(Array.isArray(e) && e[0] === 'render-ui'),\n );\n }\n }\n }\n\n return canvasTrait;\n}\n\n// ============================================================================\n// Entity, Page builders\n// ============================================================================\n\nfunction buildEntity(c: PlatformerGameConfig): Entity {\n const instances = [\n { id: 'player-1', name: 'Player', description: 'Main character', status: 'active', score: 0, lives: 3, player: '', platforms: '' },\n ];\n return makeEntity({\n name: c.entityName,\n fields: c.fields,\n persistence: c.persistence,\n collection: c.collection,\n instances,\n });\n}\n\nfunction buildPage(c: PlatformerGameConfig): Page {\n return {\n name: c.pageName,\n path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.flowTraitName },\n { ref: c.canvasTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPlatformerGameEntity(params: StdPlatformerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPlatformerGameTrait(params: StdPlatformerGameParams): Trait {\n return buildPlatformerFlowTrait(resolve(params));\n}\n\nexport function stdPlatformerGamePage(params: StdPlatformerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPlatformerGame(params: StdPlatformerGameParams): OrbitalDefinition {\n const c = resolve(params);\n\n const flowTrait = buildPlatformerFlowTrait(c);\n const canvasTrait = buildPlatformerCanvasTrait(c);\n const entity = buildEntity(c);\n const page = buildPage(c);\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [flowTrait, canvasTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-puzzle-game\n *\n * Puzzle game molecule.\n * Composes game atoms into a two-trait orbital:\n *\n * 1. PuzzleFlow trait (primary): menu -> playing -> paused -> gameover\n * Renders game-menu, game-canvas-2d with score-board, game-over-screen.\n * 2. PuzzleScore trait (secondary): extracted from stdScoreBoard,\n * INIT render-ui removed (standalone: false pattern) so the flow trait\n * owns the main render slot.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdScoreBoard } from '../atoms/std-score-board.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPuzzleGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Game config\n gameTitle?: string;\n width?: number;\n height?: number;\n\n // Labels\n menuSubtitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PuzzleGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n flowTraitName: string;\n scoreTraitName: string;\n gameTitle: string;\n width: number;\n height: number;\n menuSubtitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPuzzleGameParams): PuzzleGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Merge in score-board fields that the extracted PuzzleScore trait references\n // plus domain fields required by render-ui bindings (@entity.moves)\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0, min: 0, max: 9999 },\n { name: 'highScore', type: 'number', default: 0, min: 0, max: 9999 },\n { name: 'combo', type: 'number', default: 0, min: 0, max: 99 },\n { name: 'multiplier', type: 'number', default: 1, min: 1, max: 10 },\n { name: 'level', type: 'number', default: 1, min: 1, max: 99 },\n { name: 'moves', type: 'number', default: 0, min: 0, max: 9999 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n flowTraitName: `${entityName}PuzzleFlow`,\n scoreTraitName: `${entityName}PuzzleScore`,\n gameTitle: params.gameTitle ?? 'Puzzle',\n width: params.width ?? 800,\n height: params.height ?? 600,\n menuSubtitle: params.menuSubtitle ?? 'Puzzle Challenge',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Puzzle Complete',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// PuzzleFlow trait (primary state machine)\n// ============================================================================\n\nfunction buildPuzzleFlowTrait(c: PuzzleGameConfig): Trait {\n const { entityName, gameTitle, menuSubtitle, pauseTitle, gameoverTitle, width, height } = c;\n\n // menu state: game-menu with Start Puzzle button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuSubtitle,\n menuItems: [\n { label: 'Start Puzzle', event: 'START', variant: 'primary' },\n ],\n };\n\n // playing state: game-canvas-2d for puzzle rendering\n const playingUI = {\n type: 'game-canvas-2d',\n width,\n height,\n fps: 60,\n };\n\n // paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // gameover state: game-over-screen with final stats\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Moves', value: '@entity.moves' },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.flowTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Puzzle' },\n { key: 'MOVE', name: 'Make Move' },\n { key: 'HINT', name: 'Show Hint' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Puzzle Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu (fetch entity, render menu)\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing (render puzzle canvas)\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // MOVE: playing -> playing (increment moves)\n {\n from: 'playing', to: 'playing', event: 'MOVE',\n effects: [\n ['set', '@entity.moves', ['+', '@entity.moves', 1]],\n ['render-ui', 'main', playingUI],\n ],\n },\n // HINT: playing -> playing self-loop\n {\n from: 'playing', to: 'playing', event: 'HINT',\n effects: [],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused (modal)\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing (dismiss modal, re-render main)\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null], ['render-ui', 'main', playingUI]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// PuzzleScore trait (extracted from stdScoreBoard, INIT render removed)\n// ============================================================================\n\nfunction buildPuzzleScoreTrait(c: PuzzleGameConfig): Trait {\n const scoreTrait = extractTrait(stdScoreBoard({\n entityName: c.entityName,\n fields: c.fields,\n }));\n\n // Override name to avoid collision with standalone score-board\n scoreTrait.name = c.scoreTraitName;\n\n // Remove the INIT transition's render-ui effect so the score board does not\n // render to main on page load (the PuzzleFlow trait owns main).\n // Keep the fetch so entity data is ready when ADD_SCORE fires.\n const sm = scoreTrait.stateMachine;\n if (sm && 'transitions' in sm) {\n const transitions = sm.transitions as Array<{\n event: string;\n effects: unknown[];\n }>;\n for (const t of transitions) {\n if (t.event === 'INIT') {\n t.effects = t.effects.filter(e =>\n !(Array.isArray(e) && e[0] === 'render-ui'),\n );\n }\n }\n }\n\n return scoreTrait;\n}\n\n// ============================================================================\n// Entity, Page builders\n// ============================================================================\n\nfunction buildEntity(c: PuzzleGameConfig): Entity {\n const instances = [\n { id: 'puzzle-1', name: 'Puzzle Board', description: 'Active puzzle', status: 'active', score: 0, highScore: 0, combo: 0, multiplier: 1, level: 1, moves: 0 },\n ];\n return makeEntity({\n name: c.entityName,\n fields: c.fields,\n persistence: c.persistence,\n collection: c.collection,\n instances,\n });\n}\n\nfunction buildPage(c: PuzzleGameConfig): Page {\n return {\n name: c.pageName,\n path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.flowTraitName },\n { ref: c.scoreTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPuzzleGameEntity(params: StdPuzzleGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPuzzleGameTrait(params: StdPuzzleGameParams): Trait {\n return buildPuzzleFlowTrait(resolve(params));\n}\n\nexport function stdPuzzleGamePage(params: StdPuzzleGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPuzzleGame(params: StdPuzzleGameParams): OrbitalDefinition {\n const c = resolve(params);\n\n const flowTrait = buildPuzzleFlowTrait(c);\n const scoreTrait = buildPuzzleScoreTrait(c);\n const entity = buildEntity(c);\n const page = buildPage(c);\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [flowTrait, scoreTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-builder-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `builder-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdBuilderGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface BuilderGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdBuilderGameParams): BuilderGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Domain fields for game HUD bindings\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}BuilderGame`,\n gameTitle: params.gameTitle ?? 'Builder Challenge',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: BuilderGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n },\n {\n type: 'builder-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n },\n ],\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: BuilderGameConfig): Entity {\n const instances = [\n { id: 'game-1', name: 'Builder Session', description: 'Active game session', status: 'active', score: 0, level: 1 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildPage(c: BuilderGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdBuilderGameEntity(params: StdBuilderGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdBuilderGameTrait(params: StdBuilderGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdBuilderGamePage(params: StdBuilderGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdBuilderGame(params: StdBuilderGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-classifier-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `classifier-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdClassifierGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ClassifierGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdClassifierGameParams): ClassifierGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}ClassifierGame`,\n gameTitle: params.gameTitle ?? 'Sort & Classify',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: ClassifierGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n },\n {\n type: 'classifier-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n },\n ],\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: ClassifierGameConfig): Entity {\n const instances = [\n { id: 'game-1', name: 'Classifier Session', description: 'Active game session', status: 'active', score: 0, level: 1 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildPage(c: ClassifierGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdClassifierGameEntity(params: StdClassifierGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdClassifierGameTrait(params: StdClassifierGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdClassifierGamePage(params: StdClassifierGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdClassifierGame(params: StdClassifierGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-sequencer-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `sequencer-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSequencerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SequencerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSequencerGameParams): SequencerGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}SequencerGame`,\n gameTitle: params.gameTitle ?? 'Sequencer',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: SequencerGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n },\n {\n type: 'sequencer-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n },\n ],\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: SequencerGameConfig): Entity {\n const instances = [\n { id: 'game-1', name: 'Sequencer Session', description: 'Active game session', status: 'active', score: 0, level: 1 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildPage(c: SequencerGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSequencerGameEntity(params: StdSequencerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSequencerGameTrait(params: StdSequencerGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSequencerGamePage(params: StdSequencerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSequencerGame(params: StdSequencerGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-debugger-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `debugger-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDebuggerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DebuggerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDebuggerGameParams): DebuggerGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}DebuggerGame`,\n gameTitle: params.gameTitle ?? 'Bug Hunter',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: DebuggerGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n },\n {\n type: 'debugger-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n },\n ],\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: DebuggerGameConfig): Entity {\n const instances = [\n { id: 'game-1', name: 'Debug Session', description: 'Active game session', status: 'active', score: 0, level: 1 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildPage(c: DebuggerGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdDebuggerGameEntity(params: StdDebuggerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdDebuggerGameTrait(params: StdDebuggerGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdDebuggerGamePage(params: StdDebuggerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDebuggerGame(params: StdDebuggerGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-negotiator-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `negotiator-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdNegotiatorGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface NegotiatorGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdNegotiatorGameParams): NegotiatorGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}NegotiatorGame`,\n gameTitle: params.gameTitle ?? 'Negotiator',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: NegotiatorGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n },\n {\n type: 'negotiator-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n },\n ],\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: NegotiatorGameConfig): Entity {\n const instances = [\n { id: 'game-1', name: 'Negotiation Session', description: 'Active game session', status: 'active', score: 0, level: 1 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildPage(c: NegotiatorGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdNegotiatorGameEntity(params: StdNegotiatorGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdNegotiatorGameTrait(params: StdNegotiatorGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdNegotiatorGamePage(params: StdNegotiatorGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdNegotiatorGame(params: StdNegotiatorGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-simulator-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `simulator-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSimulatorGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SimulatorGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSimulatorGameParams): SimulatorGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}SimulatorGame`,\n gameTitle: params.gameTitle ?? 'Simulator',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: SimulatorGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n },\n {\n type: 'simulator-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n },\n ],\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: SimulatorGameConfig): Entity {\n const instances = [\n { id: 'game-1', name: 'Simulator Session', description: 'Active game session', status: 'active', score: 0, level: 1 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildPage(c: SimulatorGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSimulatorGameEntity(params: StdSimulatorGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSimulatorGameTrait(params: StdSimulatorGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSimulatorGamePage(params: StdSimulatorGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSimulatorGame(params: StdSimulatorGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-event-handler-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `event-handler-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdEventHandlerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface EventHandlerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdEventHandlerGameParams): EventHandlerGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const domainFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'level', type: 'number', default: 1 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}EventHandlerGame`,\n gameTitle: params.gameTitle ?? 'Event Handler',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: EventHandlerGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n },\n {\n type: 'event-handler-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n },\n ],\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: EventHandlerGameConfig): Entity {\n const instances = [\n { id: 'game-1', name: 'Event Handler Session', description: 'Active game session', status: 'active', score: 0, level: 1 },\n ];\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection, instances });\n}\n\nfunction buildPage(c: EventHandlerGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdEventHandlerGameEntity(params: StdEventHandlerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdEventHandlerGameTrait(params: StdEventHandlerGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdEventHandlerGamePage(params: StdEventHandlerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdEventHandlerGame(params: StdEventHandlerGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-classifier\n *\n * ML classification molecule. Composes std-forward with auto-built\n * input/output contracts for classification tasks.\n *\n * Builds input contract from inputFields, output contract from classes.\n * After forward pass, runs argmax to pick the predicted class.\n * Emits CLASSIFIED with { class: string, confidence: number }.\n *\n * Single orbital, one trait, one page.\n *\n * @level molecule\n * @family ml\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, ensureIdField, plural } from '@almadar/core/builders';\nimport { stdForward } from '../atoms/std-forward.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdClassifierParams {\n entityName: string;\n fields: EntityField[];\n architecture: unknown;\n /** Entity fields that map to input features */\n inputFields: string[];\n /** Class labels, e.g. [\"cat\", \"dog\", \"bird\"] */\n classes: string[];\n /** Numeric range for input normalization. Default: [0, 1] */\n inputRange?: [number, number];\n /** Event that triggers classification. Default: \"CLASSIFY\" */\n classifyEvent?: string;\n /** Event emitted with result. Default: \"CLASSIFIED\" */\n resultEvent?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ClassifierConfig {\n entityName: string;\n fields: EntityField[];\n architecture: unknown;\n inputFields: string[];\n classes: string[];\n inputRange: [number, number];\n classifyEvent: string;\n resultEvent: string;\n traitName: string;\n pluralName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdClassifierParams): ClassifierConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure classifier-specific fields exist on entity\n const domainFields: EntityField[] = [\n { name: 'predictedClass', type: 'string', default: '' },\n { name: 'confidence', type: 'number', default: 0 },\n { name: 'status', type: 'string', default: 'ready' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n architecture: params.architecture,\n inputFields: params.inputFields,\n classes: params.classes,\n inputRange: params.inputRange ?? [0, 1],\n classifyEvent: params.classifyEvent ?? 'CLASSIFY',\n resultEvent: params.resultEvent ?? 'CLASSIFIED',\n traitName: `${entityName}Classifier`,\n pluralName: p,\n pageName: params.pageName ?? `${entityName}ClassifierPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/classify`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Contract builders\n// ============================================================================\n\nfunction buildInputContract(inputFields: string[], inputRange: [number, number]): unknown {\n return {\n type: 'tensor',\n shape: [inputFields.length],\n dtype: 'float32',\n fields: inputFields,\n range: inputRange,\n };\n}\n\nfunction buildOutputContract(classes: string[]): unknown {\n return {\n type: 'tensor',\n shape: [classes.length],\n dtype: 'float32',\n labels: classes,\n activation: 'softmax',\n };\n}\n\n// ============================================================================\n// Trait builder\n// ============================================================================\n\nfunction buildTrait(c: ClassifierConfig): Trait {\n const { entityName, classifyEvent, resultEvent, classes } = c;\n\n // Ready view: shows input fields + classify button\n const readyView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'brain', size: 'lg' },\n { type: 'typography', content: `${entityName} Classifier`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: '@entity.status' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Classifies into: ${classes.join(', ')}` },\n { type: 'button', label: 'Classify', event: classifyEvent, variant: 'primary', icon: 'play' },\n ],\n };\n\n // Classifying view: loading\n const classifyingView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'loading-state', title: 'Classifying', message: 'Running forward pass with argmax...' },\n { type: 'spinner', size: 'lg' },\n ],\n };\n\n // Result view: shows predicted class + confidence\n const resultView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Classification Complete', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: '@entity.predictedClass', variant: 'success' },\n { type: 'typography', variant: 'caption', content: 'Confidence' },\n { type: 'progress-bar', value: '@entity.confidence', max: 1 },\n { type: 'button', label: 'Classify Again', event: classifyEvent, variant: 'outline', icon: 'refresh-cw' },\n ],\n };\n\n // Build forward effect with auto-contracts\n const inputContract = buildInputContract(c.inputFields, c.inputRange);\n const outputContract = buildOutputContract(c.classes);\n\n const forwardEffect: unknown[] = ['forward', 'primary', {\n architecture: c.architecture,\n input: '@payload.input',\n 'input-contract': inputContract,\n 'output-contract': outputContract,\n 'on-complete': 'FORWARD_DONE',\n }];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: resultEvent, scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'ready', isInitial: true },\n { name: 'classifying' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: classifyEvent, name: 'Classify' },\n { key: 'FORWARD_DONE', name: 'Forward Done' },\n ],\n transitions: [\n // INIT: ready -> ready\n {\n from: 'ready', to: 'ready', event: 'INIT',\n effects: [\n ['set', '@entity.status', 'ready'],\n ['render-ui', 'main', readyView],\n ],\n },\n // CLASSIFY: ready -> classifying (fire forward pass)\n {\n from: 'ready', to: 'classifying', event: classifyEvent,\n effects: [\n ['set', '@entity.status', 'classifying'],\n forwardEffect,\n ['render-ui', 'main', classifyingView],\n ],\n },\n // FORWARD_DONE: classifying -> ready (argmax + emit result)\n {\n from: 'classifying', to: 'ready', event: 'FORWARD_DONE',\n effects: [\n ['set', '@entity.predictedClass', ['tensor/argmax-label', '@payload.output', classes]],\n ['set', '@entity.confidence', ['tensor/max', '@payload.output']],\n ['set', '@entity.status', 'ready'],\n ['emit', resultEvent],\n ['render-ui', 'main', resultView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdClassifierEntity(params: StdClassifierParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n}\n\nexport function stdClassifierTrait(params: StdClassifierParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdClassifierPage(params: StdClassifierParams): Page {\n const c = resolve(params);\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdClassifier(params: StdClassifierParams): OrbitalDefinition {\n const c = resolve(params);\n\n const entity = makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n const trait = buildTrait(c);\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: trait.name }],\n } as Page;\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [trait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-trainer\n *\n * ML training pipeline molecule. Composes three traits on one page\n * sharing the event bus:\n * - Train loop trait: runs training epochs\n * - Evaluate trait: computes metrics on held-out data\n * - Checkpoint trait: persists model weights\n *\n * Event flow: START_TRAINING -> [train-loop] -> TRAINING_DONE\n * -> [evaluate] -> EVAL_DONE -> [checkpoint] -> MODEL_SAVED\n *\n * @level molecule\n * @family ml\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTrainerParams {\n entityName: string;\n fields: EntityField[];\n architecture: unknown;\n trainingConfig: Record<string, unknown>;\n /** Metric names to track, e.g. [\"loss\", \"accuracy\"] */\n metrics: string[];\n /** Run evaluation after training completes. Default: true */\n evaluateAfterTraining?: boolean;\n /** Auto-checkpoint after evaluation. Default: true */\n autoCheckpoint?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TrainerConfig {\n entityName: string;\n fields: EntityField[];\n architecture: unknown;\n trainingConfig: Record<string, unknown>;\n metrics: string[];\n evaluateAfterTraining: boolean;\n autoCheckpoint: boolean;\n trainTraitName: string;\n evalTraitName: string;\n checkpointTraitName: string;\n pluralName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTrainerParams): TrainerConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure training-related fields exist on entity\n const domainFields: EntityField[] = [\n { name: 'epoch', type: 'number', default: 0 },\n { name: 'totalEpochs', type: 'number', default: 10 },\n { name: 'loss', type: 'number', default: 0 },\n { name: 'accuracy', type: 'number', default: 0 },\n { name: 'trainingStatus', type: 'string', default: 'idle' },\n { name: 'checkpointPath', type: 'string', default: '' },\n { name: 'evalScore', type: 'number', default: 0 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n architecture: params.architecture,\n trainingConfig: params.trainingConfig,\n metrics: params.metrics,\n evaluateAfterTraining: params.evaluateAfterTraining ?? true,\n autoCheckpoint: params.autoCheckpoint ?? true,\n trainTraitName: `${entityName}TrainLoop`,\n evalTraitName: `${entityName}Evaluate`,\n checkpointTraitName: `${entityName}Checkpoint`,\n pluralName: p,\n pageName: params.pageName ?? `${entityName}TrainerPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/train`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builders\n// ============================================================================\n\nfunction buildTrainLoopTrait(c: TrainerConfig): Trait {\n const { entityName } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'cpu', size: 'lg' },\n { type: 'typography', content: `${entityName} Training`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: '@entity.trainingStatus' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Metrics: ${c.metrics.join(', ')}` },\n { type: 'button', label: 'Start Training', event: 'START_TRAINING', variant: 'primary', icon: 'play' },\n ],\n };\n\n const trainingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Training in Progress', variant: 'h3' },\n { type: 'typography', variant: 'caption', content: 'Epoch' },\n { type: 'progress-bar', value: '@entity.epoch', max: '@entity.totalEpochs' },\n { type: 'typography', variant: 'body', content: 'Loss: @entity.loss' },\n { type: 'spinner', size: 'md' },\n ],\n };\n\n const trainEffect: unknown[] = ['train', 'primary', {\n architecture: c.architecture,\n config: c.trainingConfig,\n metrics: c.metrics,\n 'on-epoch': 'EPOCH_DONE',\n 'on-complete': 'TRAINING_DONE',\n }];\n\n return {\n name: c.trainTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'TRAINING_DONE', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'training' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START_TRAINING', name: 'Start Training' },\n { key: 'EPOCH_DONE', name: 'Epoch Done' },\n { key: 'TRAINING_DONE', name: 'Training Done' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['set', '@entity.trainingStatus', 'idle'],\n ['set', '@entity.totalEpochs', c.trainingConfig.epochs ?? 10],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'training', event: 'START_TRAINING',\n effects: [\n ['set', '@entity.trainingStatus', 'training'],\n ['set', '@entity.epoch', 0],\n trainEffect,\n ['render-ui', 'main', trainingView],\n ],\n },\n {\n from: 'training', to: 'training', event: 'EPOCH_DONE',\n effects: [\n ['set', '@entity.epoch', '@payload.epoch'],\n ['set', '@entity.loss', '@payload.loss'],\n ['render-ui', 'main', trainingView],\n ],\n },\n {\n from: 'training', to: 'idle', event: 'TRAINING_DONE',\n effects: [\n ['set', '@entity.trainingStatus', 'trained'],\n ['set', '@entity.loss', '@payload.finalLoss'],\n ['emit', 'TRAINING_DONE'],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\nfunction buildEvaluateTrait(c: TrainerConfig): Trait {\n const { entityName } = c;\n\n const waitingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'bar-chart-2', size: 'lg' },\n { type: 'typography', content: 'Evaluation', variant: 'h3' },\n { type: 'badge', label: 'Waiting for training', variant: 'neutral' },\n ],\n };\n\n const evaluatingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Evaluating Model', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Computing: ${c.metrics.join(', ')}` },\n ],\n };\n\n const doneView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Evaluation Complete', variant: 'h3' },\n { type: 'typography', variant: 'body', content: 'Score: @entity.evalScore' },\n ],\n };\n\n const evaluateEffect: unknown[] = ['evaluate', 'primary', {\n architecture: c.architecture,\n metrics: c.metrics,\n 'on-complete': 'EVAL_DONE',\n }];\n\n return {\n name: c.evalTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'EVAL_DONE', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'waiting', isInitial: true },\n { name: 'evaluating' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TRAINING_DONE', name: 'Training Done' },\n { key: 'EVAL_DONE', name: 'Evaluation Done' },\n ],\n transitions: [\n {\n from: 'waiting', to: 'waiting', event: 'INIT',\n effects: [\n ['render-ui', 'main', waitingView],\n ],\n },\n {\n from: 'waiting', to: 'evaluating', event: 'TRAINING_DONE',\n effects: [\n evaluateEffect,\n ['render-ui', 'main', evaluatingView],\n ],\n },\n {\n from: 'evaluating', to: 'waiting', event: 'EVAL_DONE',\n effects: [\n ['set', '@entity.evalScore', '@payload.score'],\n ['emit', 'EVAL_DONE'],\n ['render-ui', 'main', doneView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\nfunction buildCheckpointTrait(c: TrainerConfig): Trait {\n const { entityName } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'save', size: 'lg' },\n { type: 'typography', content: 'Checkpoint', variant: 'h3' },\n { type: 'badge', label: 'Waiting', variant: 'neutral' },\n ],\n };\n\n const savingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Saving Checkpoint', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n ],\n };\n\n const savedView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Model Saved', variant: 'h3' },\n { type: 'typography', variant: 'caption', content: '@entity.checkpointPath' },\n ],\n };\n\n const checkpointEffect: unknown[] = ['checkpoint', 'primary', {\n architecture: c.architecture,\n 'on-complete': 'MODEL_SAVED',\n }];\n\n return {\n name: c.checkpointTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'MODEL_SAVED', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'saving' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'EVAL_DONE', name: 'Evaluation Done' },\n { key: 'MODEL_SAVED', name: 'Model Saved' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'saving', event: 'EVAL_DONE',\n effects: [\n checkpointEffect,\n ['render-ui', 'main', savingView],\n ],\n },\n {\n from: 'saving', to: 'idle', event: 'MODEL_SAVED',\n effects: [\n ['set', '@entity.checkpointPath', '@payload.path'],\n ['set', '@entity.trainingStatus', 'saved'],\n ['emit', 'MODEL_SAVED'],\n ['render-ui', 'main', savedView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdTrainerEntity(params: StdTrainerParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n}\n\nexport function stdTrainerTrait(params: StdTrainerParams): Trait {\n return buildTrainLoopTrait(resolve(params));\n}\n\nexport function stdTrainerPage(params: StdTrainerParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.trainTraitName },\n { ref: c.evalTraitName },\n { ref: c.checkpointTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdTrainer(params: StdTrainerParams): OrbitalDefinition {\n const c = resolve(params);\n\n const entity = makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n\n // Build all three traits\n const trainTrait = buildTrainLoopTrait(c);\n const traits: Trait[] = [trainTrait];\n\n if (c.evaluateAfterTraining) {\n const evalTrait = buildEvaluateTrait(c);\n traits.push(evalTrait);\n }\n\n if (c.autoCheckpoint && c.evaluateAfterTraining) {\n const checkpointTrait = buildCheckpointTrait(c);\n traits.push(checkpointTrait);\n }\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: traits.map(t => ({ ref: t.name })),\n } as Page;\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits,\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-rl-agent\n *\n * Reinforcement learning agent molecule. Composes three traits\n * on one page sharing the event bus:\n * - Forward (policy): observation -> action selection\n * - Data collector (replay buffer): accumulates transitions\n * - Train loop: trains policy from replay buffer\n *\n * Event flow: OBSERVATION -> forward -> ACTION emitted,\n * data-collector accumulates, BUFFER_READY -> train.\n *\n * @level molecule\n * @family ml\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRlAgentParams {\n entityName: string;\n architecture: unknown;\n /** Entity fields that represent observations */\n observationFields: string[];\n /** Number of discrete actions the agent can take */\n actionCount: number;\n /** Max transitions in replay buffer. Default: 1000 */\n bufferSize?: number;\n /** Training hyperparameters */\n trainingConfig?: Record<string, unknown>;\n /** Reward discount factor. Default: 0.99 */\n discountFactor?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface RlAgentConfig {\n entityName: string;\n fields: EntityField[];\n architecture: unknown;\n observationFields: string[];\n actionCount: number;\n bufferSize: number;\n trainingConfig: Record<string, unknown>;\n discountFactor: number;\n policyTraitName: string;\n collectorTraitName: string;\n trainTraitName: string;\n pluralName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdRlAgentParams): RlAgentConfig {\n const { entityName } = params;\n\n // Build fields from observationFields + RL-specific domain fields\n const baseFields: EntityField[] = [\n { name: 'id', type: 'string', default: '' },\n ...params.observationFields.map(f => ({\n name: f, type: 'number' as const, default: 0,\n })),\n ];\n\n const domainFields: EntityField[] = [\n { name: 'selectedAction', type: 'number', default: -1 },\n { name: 'reward', type: 'number', default: 0 },\n { name: 'totalReward', type: 'number', default: 0 },\n { name: 'episodeCount', type: 'number', default: 0 },\n { name: 'bufferCount', type: 'number', default: 0 },\n { name: 'agentStatus', type: 'string', default: 'idle' },\n { name: 'policyLoss', type: 'number', default: 0 },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = ensureIdField([...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))]);\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n architecture: params.architecture,\n observationFields: params.observationFields,\n actionCount: params.actionCount,\n bufferSize: params.bufferSize ?? 1000,\n trainingConfig: params.trainingConfig ?? { learningRate: 0.001, batchSize: 32 },\n discountFactor: params.discountFactor ?? 0.99,\n policyTraitName: `${entityName}Policy`,\n collectorTraitName: `${entityName}Collector`,\n trainTraitName: `${entityName}Train`,\n pluralName: p,\n pageName: params.pageName ?? `${entityName}AgentPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/agent`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builders\n// ============================================================================\n\nfunction buildPolicyTrait(c: RlAgentConfig): Trait {\n const { entityName, actionCount } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'brain', size: 'lg' },\n { type: 'typography', content: `${entityName} RL Agent`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: '@entity.agentStatus' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Actions: ${actionCount} | Discount: ${c.discountFactor}` },\n { type: 'button', label: 'Send Observation', event: 'OBSERVATION', variant: 'primary', icon: 'eye' },\n ],\n };\n\n const inferringView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Selecting Action', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n ],\n };\n\n // Policy network forward pass\n const forwardEffect: unknown[] = ['forward', 'primary', {\n architecture: c.architecture,\n input: '@payload.observation',\n 'output-contract': { type: 'tensor', shape: [actionCount], dtype: 'float32', activation: 'softmax' },\n 'on-complete': 'ACTION_SCORES',\n }];\n\n return {\n name: c.policyTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'ACTION', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'inferring' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'OBSERVATION', name: 'Observation' },\n { key: 'ACTION_SCORES', name: 'Action Scores' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['set', '@entity.agentStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'inferring', event: 'OBSERVATION',\n effects: [\n ['set', '@entity.agentStatus', 'inferring'],\n forwardEffect,\n ['render-ui', 'main', inferringView],\n ],\n },\n {\n from: 'inferring', to: 'idle', event: 'ACTION_SCORES',\n effects: [\n ['set', '@entity.selectedAction', ['tensor/argmax', '@payload.output']],\n ['set', '@entity.agentStatus', 'idle'],\n ['emit', 'ACTION'],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\nfunction buildCollectorTrait(c: RlAgentConfig): Trait {\n const { entityName, bufferSize } = c;\n\n const collectingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'database', size: 'lg' },\n { type: 'typography', content: 'Replay Buffer', variant: 'h3' },\n { type: 'typography', variant: 'body', content: 'Transitions: @entity.bufferCount' },\n { type: 'progress-bar', value: '@entity.bufferCount', max: bufferSize },\n ],\n };\n\n const collectEffect: unknown[] = ['buffer-append', 'replay', {\n capacity: bufferSize,\n transition: {\n observation: '@payload.observation',\n action: '@payload.action',\n reward: '@payload.reward',\n nextObservation: '@payload.nextObservation',\n },\n 'on-full': 'BUFFER_READY',\n }];\n\n return {\n name: c.collectorTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'BUFFER_READY', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'collecting', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'STORE_TRANSITION', name: 'Store Transition' },\n { key: 'BUFFER_READY', name: 'Buffer Ready' },\n ],\n transitions: [\n {\n from: 'collecting', to: 'collecting', event: 'INIT',\n effects: [\n ['set', '@entity.bufferCount', 0],\n ['render-ui', 'main', collectingView],\n ],\n },\n {\n from: 'collecting', to: 'collecting', event: 'STORE_TRANSITION',\n effects: [\n collectEffect,\n ['set', '@entity.bufferCount', ['math/add', '@entity.bufferCount', 1]],\n ['render-ui', 'main', collectingView],\n ],\n },\n {\n from: 'collecting', to: 'collecting', event: 'BUFFER_READY',\n effects: [\n ['emit', 'BUFFER_READY'],\n ['render-ui', 'main', collectingView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\nfunction buildTrainTrait(c: RlAgentConfig): Trait {\n const { entityName } = c;\n\n const waitingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'cpu', size: 'lg' },\n { type: 'typography', content: 'Policy Training', variant: 'h3' },\n { type: 'badge', label: 'Waiting for buffer', variant: 'neutral' },\n { type: 'typography', variant: 'caption', content: 'Loss: @entity.policyLoss' },\n ],\n };\n\n const trainingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Training Policy', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n ],\n };\n\n const trainEffect: unknown[] = ['train', 'primary', {\n architecture: c.architecture,\n config: { ...c.trainingConfig, discountFactor: c.discountFactor },\n source: 'replay',\n 'on-complete': 'POLICY_UPDATED',\n }];\n\n return {\n name: c.trainTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'POLICY_UPDATED', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'waiting', isInitial: true },\n { name: 'training' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'BUFFER_READY', name: 'Buffer Ready' },\n { key: 'POLICY_UPDATED', name: 'Policy Updated' },\n ],\n transitions: [\n {\n from: 'waiting', to: 'waiting', event: 'INIT',\n effects: [\n ['render-ui', 'main', waitingView],\n ],\n },\n {\n from: 'waiting', to: 'training', event: 'BUFFER_READY',\n effects: [\n trainEffect,\n ['render-ui', 'main', trainingView],\n ],\n },\n {\n from: 'training', to: 'waiting', event: 'POLICY_UPDATED',\n effects: [\n ['set', '@entity.policyLoss', '@payload.loss'],\n ['set', '@entity.episodeCount', ['math/add', '@entity.episodeCount', 1]],\n ['emit', 'POLICY_UPDATED'],\n ['render-ui', 'main', waitingView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdRlAgentEntity(params: StdRlAgentParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n}\n\nexport function stdRlAgentTrait(params: StdRlAgentParams): Trait {\n return buildPolicyTrait(resolve(params));\n}\n\nexport function stdRlAgentPage(params: StdRlAgentParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.policyTraitName },\n { ref: c.collectorTraitName },\n { ref: c.trainTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdRlAgent(params: StdRlAgentParams): OrbitalDefinition {\n const c = resolve(params);\n\n const entity = makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n\n const policyTrait = buildPolicyTrait(c);\n const collectorTrait = buildCollectorTrait(c);\n const trainTrait = buildTrainTrait(c);\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: policyTrait.name },\n { ref: collectorTrait.name },\n { ref: trainTrait.name },\n ],\n } as Page;\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [policyTrait, collectorTrait, trainTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-graph-classifier\n *\n * Graph neural network classification molecule. Composes two traits\n * on one page sharing the event bus:\n * - Graph builder: constructs adjacency + feature matrices from entity data\n * - Forward: runs GNN classification on the built graph\n *\n * Event flow: CLASSIFY -> BUILD_GRAPH -> GRAPH_READY -> forward -> CLASSIFIED\n *\n * @level molecule\n * @family ml\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGraphClassifierParams {\n entityName: string;\n /** Entity representing graph nodes */\n nodeEntity: string;\n /** Field on node entity containing edge references (adjacency) */\n edgeField: string;\n /** Node feature field names */\n nodeFeatures: string[];\n /** GNN architecture (e.g. GCN, GAT layers) */\n architecture: unknown;\n /** Classification labels */\n classes: string[];\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GraphClassifierConfig {\n entityName: string;\n fields: EntityField[];\n nodeEntity: string;\n edgeField: string;\n nodeFeatures: string[];\n architecture: unknown;\n classes: string[];\n graphTraitName: string;\n classifyTraitName: string;\n pluralName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGraphClassifierParams): GraphClassifierConfig {\n const { entityName } = params;\n\n const baseFields: EntityField[] = [{ name: 'id', type: 'string', default: '' }];\n const domainFields: EntityField[] = [\n { name: 'nodeCount', type: 'number', default: 0 },\n { name: 'edgeCount', type: 'number', default: 0 },\n { name: 'predictedClass', type: 'string', default: '' },\n { name: 'confidence', type: 'number', default: 0 },\n { name: 'graphStatus', type: 'string', default: 'idle' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = ensureIdField([...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))]);\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nodeEntity: params.nodeEntity,\n edgeField: params.edgeField,\n nodeFeatures: params.nodeFeatures,\n architecture: params.architecture,\n classes: params.classes,\n graphTraitName: `${entityName}GraphBuilder`,\n classifyTraitName: `${entityName}GnnClassify`,\n pluralName: p,\n pageName: params.pageName ?? `${entityName}GraphPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/graph-classify`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builders\n// ============================================================================\n\nfunction buildGraphBuilderTrait(c: GraphClassifierConfig): Trait {\n const { entityName, nodeEntity, edgeField, nodeFeatures } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'git-branch', size: 'lg' },\n { type: 'typography', content: `${entityName} Graph Classifier`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: '@entity.graphStatus' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Nodes: ${nodeEntity} | Features: ${nodeFeatures.join(', ')}` },\n { type: 'typography', variant: 'caption', content: `Classes: ${c.classes.join(', ')}` },\n { type: 'button', label: 'Classify Graph', event: 'CLASSIFY', variant: 'primary', icon: 'play' },\n ],\n };\n\n const buildingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Building Graph', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n { type: 'typography', variant: 'body', color: 'muted', content: 'Constructing adjacency matrix and feature vectors...' },\n ],\n };\n\n const buildGraphEffect: unknown[] = ['graph-build', 'primary', {\n nodeEntity,\n edgeField,\n features: nodeFeatures,\n 'on-complete': 'GRAPH_READY',\n }];\n\n return {\n name: c.graphTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'GRAPH_READY', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'building' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CLASSIFY', name: 'Classify' },\n { key: 'GRAPH_READY', name: 'Graph Ready' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['set', '@entity.graphStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'building', event: 'CLASSIFY',\n effects: [\n ['set', '@entity.graphStatus', 'building'],\n buildGraphEffect,\n ['render-ui', 'main', buildingView],\n ],\n },\n {\n from: 'building', to: 'idle', event: 'GRAPH_READY',\n effects: [\n ['set', '@entity.nodeCount', '@payload.nodeCount'],\n ['set', '@entity.edgeCount', '@payload.edgeCount'],\n ['set', '@entity.graphStatus', 'graph_ready'],\n ['emit', 'GRAPH_READY'],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\nfunction buildGnnClassifyTrait(c: GraphClassifierConfig): Trait {\n const { entityName, classes } = c;\n\n const waitingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'brain', size: 'lg' },\n { type: 'typography', content: 'GNN Classification', variant: 'h3' },\n { type: 'badge', label: 'Waiting for graph', variant: 'neutral' },\n ],\n };\n\n const classifyingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Running GNN Forward Pass', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n ],\n };\n\n const resultView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Classification Result', variant: 'h3' },\n { type: 'badge', label: '@entity.predictedClass', variant: 'success' },\n { type: 'typography', variant: 'caption', content: 'Confidence' },\n { type: 'progress-bar', value: '@entity.confidence', max: 1 },\n { type: 'typography', variant: 'body', content: 'Nodes: @entity.nodeCount | Edges: @entity.edgeCount' },\n ],\n };\n\n const forwardEffect: unknown[] = ['forward', 'primary', {\n architecture: c.architecture,\n input: '@payload.graph',\n 'output-contract': { type: 'tensor', shape: [classes.length], dtype: 'float32', labels: classes, activation: 'softmax' },\n 'on-complete': 'CLASSIFIED',\n }];\n\n return {\n name: c.classifyTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'CLASSIFIED', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'waiting', isInitial: true },\n { name: 'classifying' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'GRAPH_READY', name: 'Graph Ready' },\n { key: 'CLASSIFIED', name: 'Classified' },\n ],\n transitions: [\n {\n from: 'waiting', to: 'waiting', event: 'INIT',\n effects: [\n ['render-ui', 'main', waitingView],\n ],\n },\n {\n from: 'waiting', to: 'classifying', event: 'GRAPH_READY',\n effects: [\n forwardEffect,\n ['render-ui', 'main', classifyingView],\n ],\n },\n {\n from: 'classifying', to: 'waiting', event: 'CLASSIFIED',\n effects: [\n ['set', '@entity.predictedClass', ['tensor/argmax-label', '@payload.output', classes]],\n ['set', '@entity.confidence', ['tensor/max', '@payload.output']],\n ['set', '@entity.graphStatus', 'classified'],\n ['emit', 'CLASSIFIED'],\n ['render-ui', 'main', resultView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdGraphClassifierEntity(params: StdGraphClassifierParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n}\n\nexport function stdGraphClassifierTrait(params: StdGraphClassifierParams): Trait {\n return buildGraphBuilderTrait(resolve(params));\n}\n\nexport function stdGraphClassifierPage(params: StdGraphClassifierParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.graphTraitName },\n { ref: c.classifyTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdGraphClassifier(params: StdGraphClassifierParams): OrbitalDefinition {\n const c = resolve(params);\n\n const entity = makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n\n const graphTrait = buildGraphBuilderTrait(c);\n const classifyTrait = buildGnnClassifyTrait(c);\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: graphTrait.name },\n { ref: classifyTrait.name },\n ],\n } as Page;\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [graphTrait, classifyTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-text-classifier\n *\n * Text classification molecule. Composes two traits on one page\n * sharing the event bus:\n * - Tokenizer: converts raw text into token IDs\n * - Forward: runs classification on token sequence\n *\n * Event flow: CLASSIFY -> TOKENIZE -> TOKENS_READY -> forward -> CLASSIFIED\n *\n * @level molecule\n * @family ml\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTextClassifierParams {\n entityName: string;\n /** Entity field containing the source text to classify */\n sourceField: string;\n /** Classification model architecture */\n architecture: unknown;\n /** Class labels, e.g. [\"positive\", \"negative\", \"neutral\"] */\n classes: string[];\n /** Tokenization method. Default: \"whitespace\" */\n tokenizerMethod?: string;\n /** Max sequence length (truncation/padding). Default: 512 */\n maxLength?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TextClassifierConfig {\n entityName: string;\n fields: EntityField[];\n sourceField: string;\n architecture: unknown;\n classes: string[];\n tokenizerMethod: string;\n maxLength: number;\n tokenizerTraitName: string;\n classifyTraitName: string;\n pluralName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTextClassifierParams): TextClassifierConfig {\n const { entityName } = params;\n\n const baseFields: EntityField[] = [\n { name: 'id', type: 'string', default: '' },\n { name: params.sourceField, type: 'string', default: '' },\n ];\n\n const domainFields: EntityField[] = [\n { name: 'tokenCount', type: 'number', default: 0 },\n { name: 'predictedClass', type: 'string', default: '' },\n { name: 'confidence', type: 'number', default: 0 },\n { name: 'classifyStatus', type: 'string', default: 'idle' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = ensureIdField([...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))]);\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n sourceField: params.sourceField,\n architecture: params.architecture,\n classes: params.classes,\n tokenizerMethod: params.tokenizerMethod ?? 'whitespace',\n maxLength: params.maxLength ?? 512,\n tokenizerTraitName: `${entityName}Tokenizer`,\n classifyTraitName: `${entityName}TextClassify`,\n pluralName: p,\n pageName: params.pageName ?? `${entityName}TextClassifyPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/text-classify`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builders\n// ============================================================================\n\nfunction buildTokenizerTrait(c: TextClassifierConfig): Trait {\n const { entityName, sourceField, tokenizerMethod, maxLength, classes } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'type', size: 'lg' },\n { type: 'typography', content: `${entityName} Text Classifier`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: '@entity.classifyStatus' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Source: ${sourceField} | Method: ${tokenizerMethod} | Max: ${maxLength}` },\n { type: 'typography', variant: 'caption', content: `Classes: ${classes.join(', ')}` },\n { type: 'button', label: 'Classify Text', event: 'CLASSIFY', variant: 'primary', icon: 'play' },\n ],\n };\n\n const tokenizingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Tokenizing', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Method: ${tokenizerMethod}` },\n ],\n };\n\n const tokenizeEffect: unknown[] = ['tokenize', 'primary', {\n method: tokenizerMethod,\n input: `@entity.${sourceField}`,\n maxLength,\n 'on-complete': 'TOKENS_READY',\n }];\n\n return {\n name: c.tokenizerTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'TOKENS_READY', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'tokenizing' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CLASSIFY', name: 'Classify' },\n { key: 'TOKENS_READY', name: 'Tokens Ready' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['set', '@entity.classifyStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'tokenizing', event: 'CLASSIFY',\n effects: [\n ['set', '@entity.classifyStatus', 'tokenizing'],\n tokenizeEffect,\n ['render-ui', 'main', tokenizingView],\n ],\n },\n {\n from: 'tokenizing', to: 'idle', event: 'TOKENS_READY',\n effects: [\n ['set', '@entity.tokenCount', '@payload.tokenCount'],\n ['set', '@entity.classifyStatus', 'tokenized'],\n ['emit', 'TOKENS_READY'],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\nfunction buildTextClassifyTrait(c: TextClassifierConfig): Trait {\n const { entityName, classes } = c;\n\n const waitingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'brain', size: 'lg' },\n { type: 'typography', content: 'Text Classification', variant: 'h3' },\n { type: 'badge', label: 'Waiting for tokens', variant: 'neutral' },\n ],\n };\n\n const classifyingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Classifying Text', variant: 'h3' },\n { type: 'spinner', size: 'md' },\n { type: 'typography', variant: 'body', color: 'muted', content: 'Tokens: @entity.tokenCount' },\n ],\n };\n\n const resultView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Classification Result', variant: 'h3' },\n { type: 'badge', label: '@entity.predictedClass', variant: 'success' },\n { type: 'typography', variant: 'caption', content: 'Confidence' },\n { type: 'progress-bar', value: '@entity.confidence', max: 1 },\n { type: 'button', label: 'Classify Again', event: 'CLASSIFY', variant: 'outline', icon: 'refresh-cw' },\n ],\n };\n\n const forwardEffect: unknown[] = ['forward', 'primary', {\n architecture: c.architecture,\n input: '@payload.tokens',\n 'output-contract': { type: 'tensor', shape: [classes.length], dtype: 'float32', labels: classes, activation: 'softmax' },\n 'on-complete': 'CLASSIFIED',\n }];\n\n return {\n name: c.classifyTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'CLASSIFIED', scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'waiting', isInitial: true },\n { name: 'classifying' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TOKENS_READY', name: 'Tokens Ready' },\n { key: 'CLASSIFIED', name: 'Classified' },\n ],\n transitions: [\n {\n from: 'waiting', to: 'waiting', event: 'INIT',\n effects: [\n ['render-ui', 'main', waitingView],\n ],\n },\n {\n from: 'waiting', to: 'classifying', event: 'TOKENS_READY',\n effects: [\n forwardEffect,\n ['render-ui', 'main', classifyingView],\n ],\n },\n {\n from: 'classifying', to: 'waiting', event: 'CLASSIFIED',\n effects: [\n ['set', '@entity.predictedClass', ['tensor/argmax-label', '@payload.output', classes]],\n ['set', '@entity.confidence', ['tensor/max', '@payload.output']],\n ['set', '@entity.classifyStatus', 'classified'],\n ['emit', 'CLASSIFIED'],\n ['render-ui', 'main', resultView],\n ],\n },\n ],\n },\n } as unknown as Trait;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdTextClassifierEntity(params: StdTextClassifierParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n}\n\nexport function stdTextClassifierTrait(params: StdTextClassifierParams): Trait {\n return buildTokenizerTrait(resolve(params));\n}\n\nexport function stdTextClassifierPage(params: StdTextClassifierParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.tokenizerTraitName },\n { ref: c.classifyTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdTextClassifier(params: StdTextClassifierParams): OrbitalDefinition {\n const c = resolve(params);\n\n const entity = makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n\n const tokenizerTrait = buildTokenizerTrait(c);\n const classifyTrait = buildTextClassifyTrait(c);\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: tokenizerTrait.name },\n { ref: classifyTrait.name },\n ],\n } as Page;\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [tokenizerTrait, classifyTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-autoregressive\n *\n * Autoregressive text generation molecule (GPT-style).\n * Forward pass in a self-transition loop: generates one token at a time\n * until EOS token or max length is reached.\n *\n * State machine:\n * idle -> generating (on generateEvent, forward)\n * -> generating (self-loop on tokenEvent, append + forward)\n * -> idle (on tokenEvent with EOS guard, emit doneEvent)\n *\n * Single trait, single page.\n *\n * @level molecule\n * @family ml\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdAutoregressiveParams {\n entityName: string;\n architecture: unknown;\n /** Total vocabulary size */\n vocabSize: number;\n /** Maximum generation length */\n maxLength: number;\n /** Token ID that signals end of sequence */\n eosToken: number;\n /** Event that triggers generation. Default: \"GENERATE\" */\n generateEvent?: string;\n /** Event emitted per generated token. Default: \"TOKEN_READY\" */\n tokenEvent?: string;\n /** Event emitted when generation completes. Default: \"GENERATION_COMPLETE\" */\n doneEvent?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface AutoregressiveConfig {\n entityName: string;\n fields: EntityField[];\n architecture: unknown;\n vocabSize: number;\n maxLength: number;\n eosToken: number;\n generateEvent: string;\n tokenEvent: string;\n doneEvent: string;\n traitName: string;\n pluralName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdAutoregressiveParams): AutoregressiveConfig {\n const { entityName } = params;\n\n const baseFields: EntityField[] = [{ name: 'id', type: 'string', default: '' }];\n const domainFields: EntityField[] = [\n { name: 'generatedTokens', type: 'string', default: '' },\n { name: 'tokenCount', type: 'number', default: 0 },\n { name: 'lastToken', type: 'number', default: -1 },\n { name: 'genStatus', type: 'string', default: 'idle' },\n { name: 'prompt', type: 'string', default: '' },\n ];\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = ensureIdField([...baseFields, ...domainFields.filter(f => !userFieldNames.has(f.name))]);\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n architecture: params.architecture,\n vocabSize: params.vocabSize,\n maxLength: params.maxLength,\n eosToken: params.eosToken,\n generateEvent: params.generateEvent ?? 'GENERATE',\n tokenEvent: params.tokenEvent ?? 'TOKEN_READY',\n doneEvent: params.doneEvent ?? 'GENERATION_COMPLETE',\n traitName: `${entityName}Autoregressive`,\n pluralName: p,\n pageName: params.pageName ?? `${entityName}GeneratePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/generate`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builder\n// ============================================================================\n\nfunction buildTrait(c: AutoregressiveConfig): Trait {\n const { entityName, generateEvent, tokenEvent, doneEvent, vocabSize, maxLength, eosToken } = c;\n\n // Idle view: prompt input + generate button\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'message-square', size: 'lg' },\n { type: 'typography', content: `${entityName} Generator`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: '@entity.genStatus' },\n { type: 'typography', variant: 'body', color: 'muted', content: `Vocab: ${vocabSize} | Max length: ${maxLength}` },\n { type: 'typography', variant: 'body', content: '@entity.generatedTokens' },\n { type: 'button', label: 'Generate', event: generateEvent, variant: 'primary', icon: 'play' },\n ],\n };\n\n // Generating view: shows tokens accumulating\n const generatingView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Generating', variant: 'h3' },\n { type: 'progress-bar', value: '@entity.tokenCount', max: maxLength },\n { type: 'typography', variant: 'body', content: '@entity.generatedTokens' },\n { type: 'typography', variant: 'caption', content: 'Tokens: @entity.tokenCount' },\n { type: 'spinner', size: 'sm' },\n ],\n };\n\n // Complete view: final output\n const completeView = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Generation Complete', variant: 'h3' },\n { type: 'typography', variant: 'body', content: '@entity.generatedTokens' },\n { type: 'typography', variant: 'caption', content: 'Total tokens: @entity.tokenCount' },\n { type: 'button', label: 'Generate Again', event: generateEvent, variant: 'outline', icon: 'refresh-cw' },\n ],\n };\n\n // Forward pass effect: produces next token logits\n const forwardEffect: unknown[] = ['forward', 'primary', {\n architecture: c.architecture,\n input: '@entity.generatedTokens',\n 'output-contract': { type: 'tensor', shape: [vocabSize], dtype: 'float32', activation: 'softmax' },\n 'on-complete': tokenEvent,\n }];\n\n // EOS guard: checks if the generated token is the EOS token\n const eosGuard: unknown[] = ['eq', '@payload.token', eosToken];\n\n // Max length guard: checks if we've hit max tokens\n const maxLengthGuard: unknown[] = ['gte', '@entity.tokenCount', maxLength];\n\n // Combined stop guard: EOS or max length\n const stopGuard: unknown[] = ['or', eosGuard, maxLengthGuard];\n\n // Continue guard: NOT stop\n const continueGuard: unknown[] = ['not', stopGuard];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: doneEvent, scope: 'external' as const }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'generating' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: generateEvent, name: 'Generate' },\n { key: tokenEvent, name: 'Token Ready' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['set', '@entity.genStatus', 'idle'],\n ['set', '@entity.generatedTokens', ''],\n ['set', '@entity.tokenCount', 0],\n ['render-ui', 'main', idleView],\n ],\n },\n // GENERATE: idle -> generating (start first forward pass)\n {\n from: 'idle', to: 'generating', event: generateEvent,\n effects: [\n ['set', '@entity.genStatus', 'generating'],\n ['set', '@entity.generatedTokens', ''],\n ['set', '@entity.tokenCount', 0],\n forwardEffect,\n ['render-ui', 'main', generatingView],\n ],\n },\n // TOKEN_READY + continue: generating -> generating (append token, forward again)\n {\n from: 'generating', to: 'generating', event: tokenEvent,\n guard: continueGuard,\n effects: [\n ['set', '@entity.lastToken', '@payload.token'],\n ['set', '@entity.generatedTokens', ['string/concat', '@entity.generatedTokens', '@payload.decoded']],\n ['set', '@entity.tokenCount', ['math/add', '@entity.tokenCount', 1]],\n forwardEffect,\n ['render-ui', 'main', generatingView],\n ],\n },\n // TOKEN_READY + stop: generating -> idle (EOS or max length reached)\n {\n from: 'generating', to: 'idle', event: tokenEvent,\n guard: stopGuard,\n effects: [\n ['set', '@entity.genStatus', 'complete'],\n ['set', '@entity.tokenCount', ['math/add', '@entity.tokenCount', 1]],\n ['emit', doneEvent],\n ['render-ui', 'main', completeView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdAutoregressiveEntity(params: StdAutoregressiveParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n}\n\nexport function stdAutoregressiveTrait(params: StdAutoregressiveParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdAutoregressivePage(params: StdAutoregressiveParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: c.traitName }],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdAutoregressive(params: StdAutoregressiveParams): OrbitalDefinition {\n const c = resolve(params);\n\n const entity = makeEntity({ name: c.entityName, fields: c.fields, persistence: 'runtime' });\n const trait = buildTrait(c);\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: trait.name }],\n } as Page;\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [trait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-service-payment-flow\n *\n * Payment flow molecule. Composes stripe payment and email receipt into a\n * single orchestrated flow: pay, then auto-send receipt email.\n *\n * Two inline traits share one entity and one page:\n * - Payment trait: idle -> creating -> confirming -> succeeded -> error\n * Emits SEND_RECEIPT when payment is confirmed.\n * - Receipt trait: waiting -> sending -> sent -> receiptError\n * Listens for SEND_RECEIPT and calls the email service.\n *\n * Traits on the same page share the event bus automatically.\n *\n * @level molecule\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServicePaymentFlowParams {\n /** Entity name in PascalCase (default: \"OrderPayment\") */\n entityName?: string;\n /** Extra entity fields beyond the required payment + email fields */\n fields?: EntityField[];\n /** Persistence mode (default: \"runtime\") */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n /** Default recipient email address for receipts */\n recipientEmail?: string;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PaymentFlowConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n paymentTraitName: string;\n receiptTraitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n recipientEmail: string;\n}\n\nfunction resolve(params: StdServicePaymentFlowParams): PaymentFlowConfig {\n const entityName = params.entityName ?? 'OrderPayment';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n // Stripe payment fields\n { name: 'amount', type: 'number' },\n { name: 'currency', type: 'string', default: 'usd' },\n { name: 'paymentIntentId', type: 'string' },\n { name: 'clientSecret', type: 'string' },\n { name: 'paymentStatus', type: 'string', default: 'idle' },\n // Email receipt fields\n { name: 'to', type: 'string' },\n { name: 'subject', type: 'string', default: 'Payment Receipt' },\n { name: 'body', type: 'string' },\n { name: 'sendStatus', type: 'string', default: 'idle' },\n // Shared error field\n { name: 'error', type: 'string' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n\n return {\n entityName,\n fields: ensureIdField(mergedFields),\n persistence: params.persistence ?? 'runtime',\n paymentTraitName: `${entityName}Payment`,\n receiptTraitName: `${entityName}Receipt`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n recipientEmail: params.recipientEmail ?? '',\n };\n}\n\n// ============================================================================\n// Entity builder\n// ============================================================================\n\nfunction buildEntity(c: PaymentFlowConfig): Entity {\n return makeEntity({\n name: c.entityName,\n fields: c.fields,\n persistence: c.persistence,\n });\n}\n\n// ============================================================================\n// Payment trait builder\n// ============================================================================\n\nfunction buildPaymentTrait(c: PaymentFlowConfig): Trait {\n const { entityName } = c;\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'credit-card', size: 'lg' },\n { type: 'typography', content: 'Payment', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'input', label: 'Amount', field: 'amount', inputType: 'number', placeholder: '0.00' },\n {\n type: 'select', label: 'Currency', field: 'currency',\n options: [\n { label: 'USD', value: 'usd' },\n { label: 'EUR', value: 'eur' },\n { label: 'GBP', value: 'gbp' },\n ],\n },\n ],\n },\n { type: 'button', label: 'Pay', event: 'CREATE_PAYMENT', variant: 'primary', icon: 'credit-card' },\n ],\n };\n\n const creatingUI = {\n type: 'loading-state', title: 'Creating payment...', message: 'Setting up your payment intent.',\n };\n\n const confirmingUI = {\n type: 'loading-state', title: 'Confirming payment...', message: 'Processing your payment.',\n };\n\n const succeededUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Payment successful! Sending receipt...' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.paymentIntentId' },\n { type: 'button', label: 'New Payment', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'error-state', title: 'Payment Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n const transitions: unknown[] = [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleUI],\n ],\n },\n {\n from: 'idle', to: 'creating', event: 'CREATE_PAYMENT',\n effects: [\n ['render-ui', 'main', creatingUI],\n ['call-service', 'stripe', 'createPaymentIntent', { amount: '@entity.amount', currency: '@entity.currency' }],\n ],\n },\n {\n from: 'creating', to: 'confirming', event: 'PAYMENT_CREATED',\n effects: [\n ['set', '@entity.paymentIntentId', '@payload.id'],\n ['set', '@entity.clientSecret', '@payload.clientSecret'],\n ['render-ui', 'main', confirmingUI],\n ['call-service', 'stripe', 'confirmPayment', { paymentIntentId: '@entity.paymentIntentId' }],\n ],\n },\n {\n from: 'confirming', to: 'succeeded', event: 'PAYMENT_CONFIRMED',\n effects: [\n ['set', '@entity.paymentStatus', 'succeeded'],\n ['emit', 'SEND_RECEIPT'],\n ['render-ui', 'main', succeededUI],\n ],\n },\n {\n from: 'creating', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n {\n from: 'confirming', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n {\n from: 'succeeded', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.paymentTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n emits: [{ event: 'SEND_RECEIPT' }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'creating' },\n { name: 'confirming' },\n { name: 'succeeded' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CREATE_PAYMENT', name: 'Create Payment' },\n { key: 'PAYMENT_CREATED', name: 'Payment Created', payload: [\n { name: 'id', type: 'string', required: true },\n { name: 'clientSecret', type: 'string', required: true },\n ]},\n { key: 'PAYMENT_CONFIRMED', name: 'Payment Confirmed' },\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\n// ============================================================================\n// Receipt trait builder\n// ============================================================================\n\nfunction buildReceiptTrait(c: PaymentFlowConfig): Trait {\n const { entityName } = c;\n\n const waitingUI = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'mail', size: 'md' },\n { type: 'typography', content: 'Receipt will be sent after payment.', variant: 'body', color: 'muted' },\n ],\n };\n\n const sendingUI = {\n type: 'loading-state', title: 'Sending receipt...', message: 'Delivering your payment receipt.',\n };\n\n const sentUI = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'md' },\n { type: 'alert', variant: 'success', message: 'Receipt sent successfully' },\n ],\n };\n\n const receiptErrorUI = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'error-state', title: 'Receipt Failed', message: 'Could not send receipt email.', onRetry: 'RETRY_RECEIPT' },\n { type: 'button', label: 'Retry', event: 'RETRY_RECEIPT', variant: 'primary', icon: 'refresh-cw' },\n ],\n };\n\n const transitions: unknown[] = [\n {\n from: 'waiting', to: 'waiting', event: 'INIT',\n effects: [\n ['render-ui', 'main', waitingUI],\n ],\n },\n {\n from: 'waiting', to: 'sending', event: 'SEND_RECEIPT',\n effects: [\n ['render-ui', 'main', sendingUI],\n ['call-service', 'email', 'send', { to: '@entity.to', subject: '@entity.subject', body: '@entity.body' }],\n ],\n },\n {\n from: 'sending', to: 'sent', event: 'SENT',\n effects: [\n ['set', '@entity.sendStatus', 'sent'],\n ['render-ui', 'main', sentUI],\n ],\n },\n {\n from: 'sending', to: 'receiptError', event: 'FAILED',\n effects: [\n ['set', '@entity.sendStatus', 'error'],\n ['render-ui', 'main', receiptErrorUI],\n ],\n },\n {\n from: 'receiptError', to: 'sending', event: 'RETRY_RECEIPT',\n effects: [\n ['render-ui', 'main', sendingUI],\n ['call-service', 'email', 'send', { to: '@entity.to', subject: '@entity.subject', body: '@entity.body' }],\n ],\n },\n ];\n\n return {\n name: c.receiptTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n listens: [{ event: 'SEND_RECEIPT', triggers: 'SEND_RECEIPT' }],\n stateMachine: {\n states: [\n { name: 'waiting', isInitial: true },\n { name: 'sending' },\n { name: 'sent', isTerminal: true },\n { name: 'receiptError' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEND_RECEIPT', name: 'Send Receipt' },\n { key: 'SENT', name: 'Receipt Sent' },\n { key: 'FAILED', name: 'Send Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY_RECEIPT', name: 'Retry Receipt' },\n ],\n transitions,\n },\n } as Trait;\n}\n\n// ============================================================================\n// Page builder\n// ============================================================================\n\nfunction buildPage(c: PaymentFlowConfig): Page {\n return {\n name: c.pageName,\n path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.paymentTraitName },\n { ref: c.receiptTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServicePaymentFlowEntity(params: StdServicePaymentFlowParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServicePaymentFlowPage(params: StdServicePaymentFlowParams = {}): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServicePaymentFlow(params: StdServicePaymentFlowParams = {}): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildPaymentTrait(c), buildReceiptTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-service-notification-hub\n *\n * Unified notification sender molecule. Composes email and twilio into a single\n * trait with channel selection (Email, SMS, WhatsApp). A single state machine\n * routes to the appropriate call-service based on the chosen channel.\n *\n * States: idle -> sending -> sent | error\n * Channels: email (call-service email/send), sms (call-service twilio/sendSMS),\n * whatsapp (call-service twilio/sendWhatsApp)\n *\n * @level molecule\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceNotificationHubParams {\n /** Entity name in PascalCase (default: \"Notification\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, notification fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface NotificationHubConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceNotificationHubParams): NotificationHubConfig {\n const entityName = params.entityName ?? 'Notification';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'recipient', type: 'string' },\n { name: 'subject', type: 'string' },\n { name: 'messageBody', type: 'string' },\n { name: 'channel', type: 'string', default: 'email' },\n { name: 'sendStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n\n return {\n entityName,\n fields: ensureIdField(mergedFields),\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}NotificationHub`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: NotificationHubConfig): Entity {\n const notificationFields: EntityField[] = [\n { name: 'recipient', type: 'string' as const, default: '' },\n { name: 'subject', type: 'string' as const, default: '' },\n { name: 'messageBody', type: 'string' as const, default: '' },\n { name: 'channel', type: 'string' as const, default: 'email' },\n { name: 'sendStatus', type: 'string' as const, default: 'idle' },\n { name: 'error', type: 'string' as const, default: '' },\n ];\n\n const userFieldNames = new Set(c.fields.map(f => f.name));\n const extraFields = notificationFields.filter(f => !userFieldNames.has(f.name));\n const allFields = ensureIdField([...c.fields, ...extraFields]);\n\n return makeEntity({ name: c.entityName, fields: allFields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: NotificationHubConfig): Trait {\n const { entityName } = c;\n\n // ---- UI definitions ----\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'bell', size: 'lg' },\n { type: 'typography', content: `${entityName} Notification Hub`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'input', label: 'Recipient', bind: '@entity.recipient', placeholder: 'Email or phone number' },\n { type: 'input', label: 'Subject', bind: '@entity.subject', placeholder: 'Notification subject' },\n { type: 'textarea', label: 'Message', bind: '@entity.messageBody', placeholder: 'Write your message...' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Email', event: 'SEND_EMAIL', variant: 'primary', icon: 'mail' },\n { type: 'button', label: 'SMS', event: 'SEND_SMS', variant: 'secondary', icon: 'message-circle' },\n { type: 'button', label: 'WhatsApp', event: 'SEND_WHATSAPP', variant: 'secondary', icon: 'phone' },\n ],\n },\n ],\n };\n\n const sendingUI = {\n type: 'loading-state', title: 'Sending notification...', message: `Delivering ${entityName.toLowerCase()} notification...`,\n };\n\n const sentUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Notification sent successfully' },\n { type: 'button', label: 'Send Another', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Send Failed', message: 'Could not deliver the notification.', onRetry: 'RETRY' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'RETRY', variant: 'primary', icon: 'refresh-cw' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n // ---- Transitions ----\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch + render compose form)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleUI],\n ],\n },\n // SEND_EMAIL: idle -> sending (call email service + set channel + show loading)\n {\n from: 'idle', to: 'sending', event: 'SEND_EMAIL',\n effects: [\n ['set', '@entity.channel', 'email'],\n ['render-ui', 'main', sendingUI],\n ['call-service', 'email', 'send', { to: '@entity.recipient', subject: '@entity.subject', body: '@entity.messageBody' }],\n ],\n },\n // SEND_SMS: idle -> sending (call twilio sendSMS + set channel + show loading)\n {\n from: 'idle', to: 'sending', event: 'SEND_SMS',\n effects: [\n ['set', '@entity.channel', 'sms'],\n ['render-ui', 'main', sendingUI],\n ['call-service', 'twilio', 'sendSMS', { to: '@entity.recipient', body: '@entity.messageBody' }],\n ],\n },\n // SEND_WHATSAPP: idle -> sending (call twilio sendWhatsApp + set channel + show loading)\n {\n from: 'idle', to: 'sending', event: 'SEND_WHATSAPP',\n effects: [\n ['set', '@entity.channel', 'whatsapp'],\n ['render-ui', 'main', sendingUI],\n ['call-service', 'twilio', 'sendWhatsApp', { to: '@entity.recipient', body: '@entity.messageBody' }],\n ],\n },\n // SENT: sending -> sent (delivery confirmed)\n {\n from: 'sending', to: 'sent', event: 'SENT',\n effects: [\n ['set', '@entity.sendStatus', 'sent'],\n ['render-ui', 'main', sentUI],\n ],\n },\n // FAILED: sending -> error (delivery failed)\n {\n from: 'sending', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.sendStatus', 'error'],\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: sent -> idle\n {\n from: 'sent', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.sendStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.sendStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'sending' },\n { name: 'sent' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEND_EMAIL', name: 'Send Email' },\n { key: 'SEND_SMS', name: 'Send SMS' },\n { key: 'SEND_WHATSAPP', name: 'Send WhatsApp' },\n { key: 'SENT', name: 'Notification Sent' },\n { key: 'FAILED', name: 'Send Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: NotificationHubConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceNotificationHubEntity(params: StdServiceNotificationHubParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceNotificationHubTrait(params: StdServiceNotificationHubParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceNotificationHubPage(params: StdServiceNotificationHubParams = {}): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceNotificationHub(params: StdServiceNotificationHubParams = {}): OrbitalDefinition {\n const c = resolve(params);\n\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-service-content-pipeline\n *\n * Content research pipeline molecule. Composes youtube search + llm summarization\n * into a sequential pipeline: search -> select -> summarize.\n *\n * Single trait with six states (idle, searching, results, summarizing, complete, error)\n * that orchestrates call-service effects for youtube and llm services.\n *\n * @level molecule\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceContentPipelineParams {\n entityName?: string;\n fields?: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PipelineConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceContentPipelineParams): PipelineConfig {\n const entityName = params.entityName ?? 'Research';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'query', type: 'string', default: '' },\n { name: 'videoTitle', type: 'string', default: '' },\n { name: 'videoDescription', type: 'string', default: '' },\n { name: 'summary', type: 'string', default: '' },\n { name: 'pipelineStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string', default: '' },\n ];\n\n const baseFields = ensureIdField(params.fields ?? []);\n const userFieldNames = new Set(baseFields.map(f => f.name));\n const fields = [\n ...baseFields,\n ...requiredFields.filter(f => !userFieldNames.has(f.name)),\n ];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Pipeline`,\n pluralName: p,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// UI Content Builders\n// ============================================================================\n\nfunction searchFormView(entityName: string): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'search', size: 'lg' },\n { type: 'typography', content: 'Content Research', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'typography', content: 'Search YouTube for content to summarize', variant: 'body' },\n { type: 'form-section', entity: entityName, mode: 'edit', submitEvent: 'SEARCH', fields: ['query'] },\n ],\n }],\n },\n ],\n };\n}\n\nfunction searchingView(): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'search', size: 'lg' },\n { type: 'typography', content: 'Searching YouTube...', variant: 'h3' },\n { type: 'spinner', size: 'lg' },\n { type: 'typography', content: `@entity.query`, variant: 'caption' },\n ],\n };\n}\n\nfunction resultsView(entityName: string): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'video', size: 'lg' },\n { type: 'typography', content: 'Search Results', variant: 'h2' },\n ],\n },\n { type: 'button', label: 'New Search', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: 'No results found',\n emptyDescription: 'Try a different search query.',\n itemActions: [{ label: 'Summarize', event: 'SELECT_AND_SUMMARIZE', variant: 'primary', size: 'sm' }],\n columns: [\n { name: 'videoTitle', label: 'Title', variant: 'h4', icon: 'video' },\n { name: 'videoDescription', label: 'Description', variant: 'caption' },\n ],\n },\n ],\n };\n}\n\nfunction summarizingView(): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'cpu', size: 'lg' },\n { type: 'typography', content: 'Fetching & summarizing...', variant: 'h3' },\n { type: 'spinner', size: 'lg' },\n { type: 'typography', content: `@entity.videoTitle`, variant: 'caption' },\n ],\n };\n}\n\nfunction completeView(): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Research Complete', variant: 'h2' },\n ],\n },\n { type: 'button', label: 'New Search', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'video', size: 'sm' },\n { type: 'typography', content: `@entity.videoTitle`, variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: 'Summary', variant: 'caption' },\n { type: 'typography', content: `@entity.summary`, variant: 'body' },\n ],\n }],\n },\n ],\n };\n}\n\nfunction errorView(): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'alert-triangle', size: 'lg' },\n { type: 'typography', content: 'Pipeline Error', variant: 'h2' },\n { type: 'alert', variant: 'error', message: `@entity.error` },\n { type: 'button', label: 'Try Again', event: 'RESET', variant: 'primary', icon: 'rotate-ccw' },\n ],\n };\n}\n\n// ============================================================================\n// Trait Builder\n// ============================================================================\n\nfunction buildTrait(c: PipelineConfig): Trait {\n const { entityName } = c;\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'searching' },\n { name: 'results' },\n { name: 'summarizing' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEARCH', name: 'Search' },\n {\n key: 'SEARCH_COMPLETE', name: 'Search Complete',\n payload: [{ name: 'results', type: 'array', required: true }],\n },\n {\n key: 'SELECT_AND_SUMMARIZE', name: 'Select and Summarize',\n payload: [{ name: 'videoId', type: 'string', required: true }],\n },\n {\n key: 'VIDEO_FETCHED', name: 'Video Fetched',\n payload: [\n { name: 'title', type: 'string', required: true },\n { name: 'description', type: 'string', required: true },\n ],\n },\n {\n key: 'SUMMARY_COMPLETE', name: 'Summary Complete',\n payload: [{ name: 'content', type: 'string', required: true }],\n },\n {\n key: 'FAILED', name: 'Failed',\n payload: [{ name: 'error', type: 'string', required: true }],\n },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT: idle -> idle (render search form)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', searchFormView(entityName)],\n ],\n },\n // SEARCH: idle -> searching (call youtube search service)\n {\n from: 'idle', to: 'searching', event: 'SEARCH',\n effects: [\n ['set', '@entity.pipelineStatus', 'searching'],\n ['call-service', 'youtube', 'search', { query: '@entity.query', maxResults: 5, type: 'video' }],\n ['render-ui', 'main', searchingView()],\n ],\n },\n // SEARCH_COMPLETE: searching -> results\n {\n from: 'searching', to: 'results', event: 'SEARCH_COMPLETE',\n effects: [\n ['set', '@entity.pipelineStatus', 'results'],\n ['render-ui', 'main', resultsView(entityName)],\n ],\n },\n // SELECT_AND_SUMMARIZE: results -> summarizing (fetch video details)\n {\n from: 'results', to: 'summarizing', event: 'SELECT_AND_SUMMARIZE',\n effects: [\n ['set', '@entity.pipelineStatus', 'summarizing'],\n ['call-service', 'youtube', 'getVideo', { videoId: '@payload.videoId' }],\n ['render-ui', 'main', summarizingView()],\n ],\n },\n // VIDEO_FETCHED: summarizing -> summarizing (set video info, call llm summarize)\n {\n from: 'summarizing', to: 'summarizing', event: 'VIDEO_FETCHED',\n effects: [\n ['set', '@entity.videoTitle', '@payload.title'],\n ['set', '@entity.videoDescription', '@payload.description'],\n ['call-service', 'llm', 'summarize', { text: '@entity.videoDescription' }],\n ],\n },\n // SUMMARY_COMPLETE: summarizing -> complete\n {\n from: 'summarizing', to: 'complete', event: 'SUMMARY_COMPLETE',\n effects: [\n ['set', '@entity.summary', '@payload.content'],\n ['set', '@entity.pipelineStatus', 'complete'],\n ['render-ui', 'main', completeView()],\n ],\n },\n // FAILED: searching -> error\n {\n from: 'searching', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.pipelineStatus', 'error'],\n ['render-ui', 'main', errorView()],\n ],\n },\n // FAILED: summarizing -> error\n {\n from: 'summarizing', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.pipelineStatus', 'error'],\n ['render-ui', 'main', errorView()],\n ],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.pipelineStatus', 'idle'],\n ['set', '@entity.error', ''],\n ['set', '@entity.summary', ''],\n ['set', '@entity.videoTitle', ''],\n ['set', '@entity.videoDescription', ''],\n ['render-ui', 'main', searchFormView(entityName)],\n ],\n },\n // RESET: results -> idle\n {\n from: 'results', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.pipelineStatus', 'idle'],\n ['render-ui', 'main', searchFormView(entityName)],\n ],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.pipelineStatus', 'idle'],\n ['set', '@entity.error', ''],\n ['render-ui', 'main', searchFormView(entityName)],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: PipelineConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildPage(c: PipelineConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\nexport function stdServiceContentPipelineEntity(params: StdServiceContentPipelineParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceContentPipelineTrait(params: StdServiceContentPipelineParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceContentPipelinePage(params: StdServiceContentPipelineParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceContentPipeline(params: StdServiceContentPipelineParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-service-devops-toolkit\n *\n * DevOps toolkit molecule. Three independent traits on a single page\n * sharing one entity via the event bus:\n * - GitHubTrait: PR creation flow (ghIdle -> creatingPR -> prCreated / ghError)\n * - RedisTrait: cache get/set/delete (redisIdle -> redisExecuting -> redisComplete / redisError)\n * - StorageTrait: file upload/download/list/delete (storageIdle -> storageExecuting -> storageComplete / storageError)\n *\n * Each trait renders its own UI section. No cross-trait events needed (independent flows).\n *\n * @level molecule\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceDevopsToolkitParams {\n /** Entity name in PascalCase (default: \"DevopsTool\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, required fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DevopsToolkitConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceDevopsToolkitParams): DevopsToolkitConfig {\n const entityName = params.entityName ?? 'DevopsTool';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n // GitHub PR fields\n { name: 'title', type: 'string', default: '' },\n { name: 'body', type: 'string', default: '' },\n { name: 'head', type: 'string', default: '' },\n { name: 'base', type: 'string', default: 'main' },\n { name: 'prUrl', type: 'string', default: '' },\n // Redis cache fields\n { name: 'cacheKey', type: 'string', default: '' },\n { name: 'cacheValue', type: 'string', default: '' },\n // Storage fields\n { name: 'bucket', type: 'string', default: 'uploads' },\n { name: 'fileKey', type: 'string', default: '' },\n // Shared fields\n { name: 'result', type: 'string', default: '' },\n { name: 'toolStatus', type: 'string', default: 'idle' },\n { name: 'activeTab', type: 'string', default: 'github' },\n { name: 'error', type: 'string', default: '' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builders\n// ============================================================================\n\nfunction buildGithubTrait(c: DevopsToolkitConfig): Trait {\n const { entityName } = c;\n\n const ghIdleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'git-pull-request', size: 'lg' },\n { type: 'typography', content: 'GitHub: Create PR', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'input', label: 'Title', bind: '@entity.title', placeholder: 'PR title' },\n { type: 'textarea', label: 'Body', bind: '@entity.body', placeholder: 'Describe your changes...' },\n { type: 'input', label: 'Head Branch', bind: '@entity.head', placeholder: 'feature-branch' },\n { type: 'input', label: 'Base Branch', bind: '@entity.base', placeholder: 'main' },\n { type: 'button', label: 'Create PR', event: 'CREATE_PR', variant: 'primary', icon: 'git-pull-request' },\n ],\n };\n\n const creatingPRUI = {\n type: 'loading-state', title: 'Creating pull request...', message: 'Submitting your PR to GitHub.',\n };\n\n const prCreatedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Pull request created!' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.prUrl' },\n { type: 'button', label: 'Create Another', event: 'GH_RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const ghErrorUI = {\n type: 'error-state', title: 'PR Creation Failed', message: '@entity.error', onRetry: 'GH_RETRY',\n };\n\n const transitions: unknown[] = [\n {\n from: 'ghIdle', to: 'ghIdle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', ghIdleUI],\n ],\n },\n {\n from: 'ghIdle', to: 'creatingPR', event: 'CREATE_PR',\n effects: [\n ['render-ui', 'main', creatingPRUI],\n ['call-service', 'github', 'createPR', {\n title: '@entity.title',\n body: '@entity.body',\n head: '@entity.head',\n base: '@entity.base',\n }],\n ],\n },\n {\n from: 'creatingPR', to: 'prCreated', event: 'PR_CREATED',\n effects: [\n ['set', '@entity.prUrl', '@payload.url'],\n ['set', '@entity.toolStatus', 'pr-created'],\n ['render-ui', 'main', prCreatedUI],\n ],\n },\n {\n from: 'creatingPR', to: 'ghError', event: 'GH_FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.toolStatus', 'error'],\n ['render-ui', 'main', ghErrorUI],\n ],\n },\n {\n from: 'ghError', to: 'ghIdle', event: 'GH_RETRY',\n effects: [\n ['set', '@entity.toolStatus', 'idle'],\n ['render-ui', 'main', ghIdleUI],\n ],\n },\n {\n from: 'prCreated', to: 'ghIdle', event: 'GH_RESET',\n effects: [\n ['set', '@entity.toolStatus', 'idle'],\n ['render-ui', 'main', ghIdleUI],\n ],\n },\n ];\n\n return {\n name: `${entityName}Github`,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'ghIdle', isInitial: true },\n { name: 'creatingPR' },\n { name: 'prCreated' },\n { name: 'ghError' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CREATE_PR', name: 'Create Pull Request' },\n { key: 'PR_CREATED', name: 'PR Created', payload: [\n { name: 'url', type: 'string', required: true },\n ] },\n { key: 'GH_FAILED', name: 'GitHub Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ] },\n { key: 'GH_RETRY', name: 'GitHub Retry' },\n { key: 'GH_RESET', name: 'GitHub Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildRedisTrait(c: DevopsToolkitConfig): Trait {\n const { entityName } = c;\n\n const redisIdleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'database', size: 'lg' },\n { type: 'typography', content: 'Redis Cache', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'input', label: 'Key', bind: '@entity.cacheKey', placeholder: 'cache-key' },\n { type: 'input', label: 'Value', bind: '@entity.cacheValue', placeholder: 'cache-value' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Get', event: 'GET_KEY', variant: 'primary', icon: 'download' },\n { type: 'button', label: 'Set', event: 'SET_KEY', variant: 'primary', icon: 'upload' },\n { type: 'button', label: 'Delete', event: 'DELETE_KEY', variant: 'destructive', icon: 'trash-2' },\n ],\n },\n ],\n };\n\n const redisExecutingUI = {\n type: 'loading-state', title: 'Executing...', message: 'Running Redis operation...',\n };\n\n const redisCompleteUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Redis operation complete' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.result' },\n { type: 'button', label: 'Reset', event: 'REDIS_RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const redisErrorUI = {\n type: 'error-state', title: 'Redis Error', message: '@entity.error', onRetry: 'REDIS_RETRY',\n };\n\n const transitions: unknown[] = [\n {\n from: 'redisIdle', to: 'redisIdle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', redisIdleUI],\n ],\n },\n {\n from: 'redisIdle', to: 'redisExecuting', event: 'GET_KEY',\n effects: [\n ['render-ui', 'main', redisExecutingUI],\n ['call-service', 'redis', 'get', { key: '@entity.cacheKey' }],\n ],\n },\n {\n from: 'redisIdle', to: 'redisExecuting', event: 'SET_KEY',\n effects: [\n ['render-ui', 'main', redisExecutingUI],\n ['call-service', 'redis', 'set', { key: '@entity.cacheKey', value: '@entity.cacheValue' }],\n ],\n },\n {\n from: 'redisIdle', to: 'redisExecuting', event: 'DELETE_KEY',\n effects: [\n ['render-ui', 'main', redisExecutingUI],\n ['call-service', 'redis', 'delete', { key: '@entity.cacheKey' }],\n ],\n },\n {\n from: 'redisExecuting', to: 'redisComplete', event: 'REDIS_DONE',\n effects: [\n ['set', '@entity.result', '@payload.data'],\n ['set', '@entity.toolStatus', 'redis-complete'],\n ['render-ui', 'main', redisCompleteUI],\n ],\n },\n {\n from: 'redisExecuting', to: 'redisError', event: 'REDIS_FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.toolStatus', 'error'],\n ['render-ui', 'main', redisErrorUI],\n ],\n },\n {\n from: 'redisComplete', to: 'redisIdle', event: 'REDIS_RESET',\n effects: [\n ['set', '@entity.toolStatus', 'idle'],\n ['render-ui', 'main', redisIdleUI],\n ],\n },\n {\n from: 'redisError', to: 'redisIdle', event: 'REDIS_RETRY',\n effects: [\n ['set', '@entity.toolStatus', 'idle'],\n ['render-ui', 'main', redisIdleUI],\n ],\n },\n ];\n\n return {\n name: `${entityName}Redis`,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'redisIdle', isInitial: true },\n { name: 'redisExecuting' },\n { name: 'redisComplete' },\n { name: 'redisError' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'GET_KEY', name: 'Get Key' },\n { key: 'SET_KEY', name: 'Set Key' },\n { key: 'DELETE_KEY', name: 'Delete Key' },\n { key: 'REDIS_DONE', name: 'Redis Done', payload: [\n { name: 'data', type: 'string', required: true },\n ] },\n { key: 'REDIS_FAILED', name: 'Redis Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ] },\n { key: 'REDIS_RESET', name: 'Redis Reset' },\n { key: 'REDIS_RETRY', name: 'Redis Retry' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildStorageTrait(c: DevopsToolkitConfig): Trait {\n const { entityName } = c;\n\n const storageIdleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'hard-drive', size: 'lg' },\n { type: 'typography', content: 'Storage Files', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'input', label: 'Bucket', bind: '@entity.bucket', placeholder: 'bucket-name' },\n { type: 'input', label: 'File Key', bind: '@entity.fileKey', placeholder: 'path/to/file.txt' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Upload', event: 'UPLOAD', variant: 'primary', icon: 'upload' },\n { type: 'button', label: 'Download', event: 'DOWNLOAD', variant: 'secondary', icon: 'download' },\n { type: 'button', label: 'List', event: 'LIST', variant: 'secondary', icon: 'list' },\n { type: 'button', label: 'Delete', event: 'DELETE_FILE', variant: 'destructive', icon: 'trash-2' },\n ],\n },\n ],\n };\n\n const storageExecutingUI = {\n type: 'loading-state', title: 'Processing...', message: 'Executing storage operation...',\n };\n\n const storageCompleteUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Storage operation complete' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.result' },\n { type: 'button', label: 'Back', event: 'STORAGE_RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const storageErrorUI = {\n type: 'error-state', title: 'Storage Error', message: '@entity.error', onRetry: 'STORAGE_RETRY',\n };\n\n const transitions: unknown[] = [\n {\n from: 'storageIdle', to: 'storageIdle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', storageIdleUI],\n ],\n },\n {\n from: 'storageIdle', to: 'storageExecuting', event: 'UPLOAD',\n effects: [\n ['render-ui', 'main', storageExecutingUI],\n ['call-service', 'storage', 'upload', {\n bucket: '@entity.bucket',\n key: '@entity.fileKey',\n }],\n ],\n },\n {\n from: 'storageIdle', to: 'storageExecuting', event: 'DOWNLOAD',\n effects: [\n ['render-ui', 'main', storageExecutingUI],\n ['call-service', 'storage', 'download', {\n bucket: '@entity.bucket',\n key: '@entity.fileKey',\n }],\n ],\n },\n {\n from: 'storageIdle', to: 'storageExecuting', event: 'LIST',\n effects: [\n ['render-ui', 'main', storageExecutingUI],\n ['call-service', 'storage', 'list', {\n bucket: '@entity.bucket',\n }],\n ],\n },\n {\n from: 'storageIdle', to: 'storageExecuting', event: 'DELETE_FILE',\n effects: [\n ['render-ui', 'main', storageExecutingUI],\n ['call-service', 'storage', 'delete', {\n bucket: '@entity.bucket',\n key: '@entity.fileKey',\n }],\n ],\n },\n {\n from: 'storageExecuting', to: 'storageComplete', event: 'STORAGE_DONE',\n effects: [\n ['set', '@entity.result', '@payload.data'],\n ['set', '@entity.toolStatus', 'storage-complete'],\n ['render-ui', 'main', storageCompleteUI],\n ],\n },\n {\n from: 'storageExecuting', to: 'storageError', event: 'STORAGE_FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.toolStatus', 'error'],\n ['render-ui', 'main', storageErrorUI],\n ],\n },\n {\n from: 'storageComplete', to: 'storageIdle', event: 'STORAGE_RESET',\n effects: [\n ['set', '@entity.toolStatus', 'idle'],\n ['render-ui', 'main', storageIdleUI],\n ],\n },\n {\n from: 'storageError', to: 'storageIdle', event: 'STORAGE_RETRY',\n effects: [\n ['set', '@entity.toolStatus', 'idle'],\n ['render-ui', 'main', storageIdleUI],\n ],\n },\n ];\n\n return {\n name: `${entityName}Storage`,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'storageIdle', isInitial: true },\n { name: 'storageExecuting' },\n { name: 'storageComplete' },\n { name: 'storageError' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'UPLOAD', name: 'Upload File' },\n { key: 'DOWNLOAD', name: 'Download File' },\n { key: 'LIST', name: 'List Files' },\n { key: 'DELETE_FILE', name: 'Delete File' },\n { key: 'STORAGE_DONE', name: 'Storage Done', payload: [\n { name: 'data', type: 'string', required: true },\n ] },\n { key: 'STORAGE_FAILED', name: 'Storage Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ] },\n { key: 'STORAGE_RESET', name: 'Storage Reset' },\n { key: 'STORAGE_RETRY', name: 'Storage Retry' },\n ],\n transitions,\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceDevopsToolkitEntity(params: StdServiceDevopsToolkitParams = {}): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nexport function stdServiceDevopsToolkitPage(params: StdServiceDevopsToolkitParams = {}): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Github` },\n { ref: `${c.entityName}Redis` },\n { ref: `${c.entityName}Storage` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceDevopsToolkit(params: StdServiceDevopsToolkitParams = {}): OrbitalDefinition {\n const c = resolve(params);\n\n const githubTrait = buildGithubTrait(c);\n const redisTrait = buildRedisTrait(c);\n const storageTrait = buildStorageTrait(c);\n\n const entity = makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: githubTrait.name },\n { ref: redisTrait.name },\n { ref: storageTrait.name },\n ],\n } as Page;\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [githubTrait, redisTrait, storageTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-service-custom-api-tester\n *\n * Unified API tester molecule that exercises all 4 custom REST auth patterns\n * (header API key, bearer token, query param API key, no auth) with a tab\n * selector. Single entity, single trait, 4 call events.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceCustomApiTesterParams {\n entityName?: string;\n fields?: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n\n /** Base URL for header-based API key service */\n headerBaseUrl?: string;\n /** Base URL for bearer token service */\n bearerBaseUrl?: string;\n /** Base URL for query-param API key service */\n queryBaseUrl?: string;\n /** Base URL for no-auth service */\n noauthBaseUrl?: string;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ApiTesterConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n headerBaseUrl: string;\n bearerBaseUrl: string;\n queryBaseUrl: string;\n noauthBaseUrl: string;\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceCustomApiTesterParams): ApiTesterConfig {\n const entityName = params.entityName ?? 'ApiTest';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'endpoint', type: 'string' },\n { name: 'method', type: 'string', default: 'GET' },\n { name: 'requestBody', type: 'string' },\n { name: 'responseData', type: 'string' },\n { name: 'statusCode', type: 'number', default: 0 },\n { name: 'authType', type: 'string', default: 'header' },\n { name: 'callStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n headerBaseUrl: params.headerBaseUrl ?? 'https://api.example.com/v1',\n bearerBaseUrl: params.bearerBaseUrl ?? 'https://api.example.com/v2',\n queryBaseUrl: params.queryBaseUrl ?? 'https://api.example.com/v3',\n noauthBaseUrl: params.noauthBaseUrl ?? 'https://api.example.com/v4',\n traitName: `${entityName}ApiTester`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: ApiTesterConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ApiTesterConfig): Trait {\n const { entityName } = c;\n\n // Shared form elements for all auth types\n const formChildren: unknown[] = [\n { type: 'icon', name: 'globe', size: 'lg' },\n { type: 'typography', content: 'Unified API Tester', variant: 'h2' },\n {\n type: 'input',\n field: 'endpoint',\n placeholder: '/users',\n bind: '@entity.endpoint',\n },\n {\n type: 'select',\n field: 'method',\n bind: '@entity.method',\n options: [\n { label: 'GET', value: 'GET' },\n { label: 'POST', value: 'POST' },\n { label: 'PUT', value: 'PUT' },\n { label: 'DELETE', value: 'DELETE' },\n ],\n },\n {\n type: 'textarea',\n field: 'requestBody',\n placeholder: 'Request body (JSON)',\n bind: '@entity.requestBody',\n },\n { type: 'divider' },\n { type: 'typography', content: 'Select Auth Type', variant: 'h4' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Header API Key', event: 'CALL_HEADER_API', variant: 'primary', icon: 'key' },\n { type: 'button', label: 'Bearer Token', event: 'CALL_BEARER_API', variant: 'primary', icon: 'shield' },\n { type: 'button', label: 'Query Param', event: 'CALL_QUERY_API', variant: 'primary', icon: 'search' },\n { type: 'button', label: 'No Auth', event: 'CALL_NOAUTH_API', variant: 'primary', icon: 'unlock' },\n ],\n },\n ];\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: formChildren,\n };\n\n // calling: loading state\n const callingUI = {\n type: 'loading-state', title: 'Calling API...', message: `Sending request to ${entityName.toLowerCase()} endpoint...`,\n };\n\n // complete: response viewer showing which auth type was used\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Response', variant: 'h2' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'badge', content: '@entity.authType', variant: 'info' },\n { type: 'badge', content: '@entity.statusCode', variant: 'info' },\n ],\n },\n { type: 'code', content: '@entity.responseData', language: 'json' },\n { type: 'button', label: 'New Request', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // error: error state\n const errorUI = {\n type: 'error-state', title: 'Request Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n const callServiceArgs = {\n endpoint: '@entity.endpoint',\n method: '@entity.method',\n body: '@entity.requestBody',\n };\n\n const transitions: unknown[] = [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleUI],\n ],\n },\n // CALL_HEADER_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_HEADER_API',\n effects: [\n ['set', '@entity.authType', 'header'],\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-header-api', 'execute', callServiceArgs],\n ],\n },\n // CALL_BEARER_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_BEARER_API',\n effects: [\n ['set', '@entity.authType', 'bearer'],\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-bearer-api', 'execute', callServiceArgs],\n ],\n },\n // CALL_QUERY_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_QUERY_API',\n effects: [\n ['set', '@entity.authType', 'query'],\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-query-api', 'execute', callServiceArgs],\n ],\n },\n // CALL_NOAUTH_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_NOAUTH_API',\n effects: [\n ['set', '@entity.authType', 'noauth'],\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-noauth-api', 'execute', callServiceArgs],\n ],\n },\n // API_RESPONSE: calling -> complete\n {\n from: 'calling', to: 'complete', event: 'API_RESPONSE',\n effects: [\n ['set', '@entity.responseData', '@payload.data'],\n ['set', '@entity.statusCode', '@payload.statusCode'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: calling -> error\n {\n from: 'calling', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'calling' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CALL_HEADER_API', name: 'Call Header API' },\n { key: 'CALL_BEARER_API', name: 'Call Bearer API' },\n { key: 'CALL_QUERY_API', name: 'Call Query API' },\n { key: 'CALL_NOAUTH_API', name: 'Call No-Auth API' },\n { key: 'API_RESPONSE', name: 'API Response', payload: [\n { name: 'data', type: 'string', required: true },\n { name: 'statusCode', type: 'number', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: ApiTesterConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceCustomApiTesterEntity(params: StdServiceCustomApiTesterParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceCustomApiTesterTrait(params: StdServiceCustomApiTesterParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceCustomApiTesterPage(params: StdServiceCustomApiTesterParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceCustomApiTester(params: StdServiceCustomApiTesterParams): OrbitalDefinition {\n const c = resolve(params);\n const orbital = makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n return {\n ...orbital,\n services: [\n {\n name: 'custom-header-api',\n type: 'rest' as const,\n baseUrl: c.headerBaseUrl,\n auth: {\n type: 'api-key' as const,\n keyName: 'X-API-Key',\n location: 'header' as const,\n secretEnv: 'CUSTOM_API_SECRET',\n },\n },\n {\n name: 'custom-bearer-api',\n type: 'rest' as const,\n baseUrl: c.bearerBaseUrl,\n auth: {\n type: 'bearer' as const,\n secretEnv: 'CUSTOM_BEARER_TOKEN',\n },\n },\n {\n name: 'custom-query-api',\n type: 'rest' as const,\n baseUrl: c.queryBaseUrl,\n auth: {\n type: 'api-key' as const,\n keyName: 'api_key',\n location: 'query' as const,\n secretEnv: 'CUSTOM_QUERY_KEY',\n },\n },\n {\n name: 'custom-noauth-api',\n type: 'rest' as const,\n baseUrl: c.noauthBaseUrl,\n },\n ],\n } as OrbitalDefinition;\n}\n","/**\n * domain-views\n *\n * Domain-specific view configurations for organism behaviors.\n * Each function returns display customization params that organisms\n * thread through to stdList/stdDetail/stdMessaging molecules.\n *\n * Uses DataGrid/DataList built-in field rendering (displayColumns)\n * instead of custom renderItem templates. This gives proper card styling\n * (shadows, borders, rounded corners), grid layouts, and format support.\n *\n * Field variant reference (DataGrid/DataList):\n * h3 = card title (large, bold)\n * h4 = card subtitle (medium, bold)\n * badge = inline badge in card header\n * body = body field (label: value pair)\n * caption = small muted text\n * progress = progress bar\n *\n * Field format reference:\n * currency = $X.XX\n * number = locale-formatted number\n * date = formatted date\n * boolean = Yes/No\n * percent = X%\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DomainViewConfig {\n displayPattern?: string;\n customRenderItem?: unknown;\n displayColumns?: unknown[];\n statsBar?: unknown[];\n displayProps?: Record<string, unknown>;\n}\n\n// ============================================================================\n// CRM\n// ============================================================================\n\nexport function crmContactView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'user' },\n { name: 'status', variant: 'badge' },\n { name: 'company', variant: 'body' },\n { name: 'email', variant: 'caption' },\n { name: 'phone', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n statsBar: [\n { type: 'stat-display', label: 'Total Contacts', value: ['array/len', '@entity'], icon: 'users' },\n ],\n };\n}\n\nexport function crmDealView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'title', variant: 'h3', icon: 'briefcase' },\n { name: 'stage', variant: 'badge' },\n { name: 'value', variant: 'h4', format: 'currency' },\n { name: 'contactId', label: 'Contact', variant: 'caption' },\n ],\n displayProps: { cols: 2, gap: 'md' },\n };\n}\n\nexport function crmNoteView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'subject', variant: 'h4', icon: 'file-text' },\n { name: 'author', variant: 'caption' },\n { name: 'createdAt', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// E-commerce\n// ============================================================================\n\nexport function ecommerceProductView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'package' },\n { name: 'category', variant: 'badge' },\n { name: 'price', variant: 'h4', format: 'currency' },\n { name: 'sku', variant: 'caption' },\n { name: 'inStock', label: 'In Stock', variant: 'body', format: 'boolean' },\n ],\n displayProps: { cols: 3, gap: 'md' },\n };\n}\n\nexport function ecommerceOrderView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'customerName', label: 'Customer', variant: 'h3', icon: 'clipboard-list' },\n { name: 'status', variant: 'badge' },\n { name: 'orderTotal', label: 'Total', variant: 'h4', format: 'currency' },\n { name: 'email', variant: 'caption' },\n { name: 'shippingAddress', label: 'Address', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// Healthcare\n// ============================================================================\n\nexport function healthcarePatientView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'firstName', variant: 'h3', icon: 'user' },\n { name: 'lastName', variant: 'h3' },\n { name: 'status', variant: 'badge' },\n { name: 'dateOfBirth', label: 'Date of Birth', variant: 'body', format: 'date' },\n { name: 'phone', variant: 'caption' },\n { name: 'insuranceId', label: 'Insurance ID', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n statsBar: [\n { type: 'stat-display', label: 'Total Patients', value: ['array/len', '@entity'], icon: 'users' },\n ],\n };\n}\n\nexport function healthcareAppointmentView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'patientName', label: 'Patient', variant: 'h3', icon: 'calendar' },\n { name: 'status', variant: 'badge' },\n { name: 'doctorName', label: 'Doctor', variant: 'body' },\n { name: 'date', variant: 'body', format: 'date' },\n { name: 'time', variant: 'caption' },\n { name: 'reason', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\nexport function healthcarePrescriptionView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'medication', variant: 'h3', icon: 'pill' },\n { name: 'dosage', variant: 'badge' },\n { name: 'frequency', variant: 'body' },\n { name: 'patientName', label: 'Patient', variant: 'body' },\n { name: 'prescribedBy', label: 'Prescribed By', variant: 'caption' },\n { name: 'startDate', label: 'Start Date', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// Helpdesk\n// ============================================================================\n\nexport function helpdeskTicketView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'subject', variant: 'h3', icon: 'inbox' },\n { name: 'priority', variant: 'badge' },\n { name: 'status', variant: 'badge' },\n { name: 'assignee', variant: 'body' },\n { name: 'description', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n statsBar: [\n { type: 'stat-display', label: 'Open Tickets', value: ['array/len', '@entity'], icon: 'inbox' },\n ],\n };\n}\n\nexport function helpdeskResponseView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'author', variant: 'h4', icon: 'message-circle' },\n { name: 'body', variant: 'body' },\n { name: 'createdAt', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// Project Manager\n// ============================================================================\n\nexport function projectTaskView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'title', variant: 'h3', icon: 'check-square' },\n { name: 'priority', variant: 'badge' },\n { name: 'status', variant: 'badge' },\n { name: 'assignee', variant: 'body' },\n { name: 'storyPoints', label: 'Points', variant: 'body', format: 'number' },\n { name: 'dueDate', label: 'Due', variant: 'caption', format: 'date' },\n ],\n displayProps: { cols: 2, gap: 'md' },\n statsBar: [\n { type: 'stat-display', label: 'Total Tasks', value: ['array/len', '@entity'], icon: 'check-square' },\n ],\n };\n}\n\nexport function projectSprintView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'zap' },\n { name: 'status', variant: 'badge' },\n { name: 'goal', variant: 'body' },\n { name: 'startDate', label: 'Start', variant: 'caption', format: 'date' },\n { name: 'endDate', label: 'End', variant: 'caption', format: 'date' },\n { name: 'taskCount', label: 'Tasks', variant: 'body', format: 'number' },\n ],\n displayProps: { cols: 2, gap: 'md' },\n };\n}\n\n// ============================================================================\n// Realtime Chat\n// ============================================================================\n\nexport function chatChannelView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'hash' },\n { name: 'memberCount', label: 'Members', variant: 'badge', format: 'number' },\n { name: 'description', variant: 'body' },\n { name: 'isPrivate', label: 'Private', variant: 'body', format: 'boolean' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\nexport function chatMessageView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'sender', variant: 'h4' },\n { name: 'content', variant: 'body' },\n { name: 'timestamp', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'message', senderField: 'sender', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// Finance\n// ============================================================================\n\nexport function financeTransactionView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'description', variant: 'h3', icon: 'credit-card' },\n { name: 'category', variant: 'badge' },\n { name: 'amount', variant: 'h4', format: 'currency' },\n { name: 'date', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\nexport function financeReportView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'title', variant: 'h3', icon: 'file-text' },\n { name: 'period', variant: 'badge' },\n { name: 'total', variant: 'h4', format: 'currency' },\n { name: 'generatedAt', label: 'Generated', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// IoT\n// ============================================================================\n\nexport function iotDeviceView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'cpu' },\n { name: 'status', variant: 'badge' },\n { name: 'type', variant: 'body' },\n { name: 'lastSeen', label: 'Last Seen', variant: 'caption', format: 'date' },\n ],\n displayProps: { cols: 3, gap: 'md' },\n };\n}\n\n// ============================================================================\n// CMS\n// ============================================================================\n\nexport function cmsArticleView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'title', variant: 'h3', icon: 'file-text' },\n { name: 'status', variant: 'badge' },\n { name: 'author', variant: 'body' },\n { name: 'slug', variant: 'caption' },\n { name: 'publishedAt', label: 'Published', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\nexport function cmsCategoryView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'folder' },\n { name: 'articleCount', label: 'Articles', variant: 'badge', format: 'number' },\n { name: 'description', variant: 'body' },\n { name: 'slug', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\nexport function cmsMediaView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'fileName', label: 'File', variant: 'h3', icon: 'image' },\n { name: 'fileType', label: 'Type', variant: 'badge' },\n { name: 'fileSize', label: 'Size', variant: 'body', format: 'number' },\n { name: 'altText', label: 'Alt Text', variant: 'caption' },\n ],\n displayProps: { cols: 3, gap: 'md' },\n };\n}\n\n// ============================================================================\n// LMS\n// ============================================================================\n\nexport function lmsCourseView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'title', variant: 'h3', icon: 'book-open' },\n { name: 'level', variant: 'badge' },\n { name: 'instructor', variant: 'body' },\n { name: 'duration', variant: 'body' },\n { name: 'description', variant: 'caption' },\n ],\n displayProps: { cols: 2, gap: 'md' },\n };\n}\n\n// ============================================================================\n// HR Portal\n// ============================================================================\n\nexport function hrEmployeeView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'user' },\n { name: 'department', variant: 'badge' },\n { name: 'role', variant: 'body' },\n { name: 'email', variant: 'caption' },\n { name: 'startDate', label: 'Joined', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\nexport function hrTimeOffView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'employeeName', label: 'Employee', variant: 'h3', icon: 'calendar' },\n { name: 'leaveType', label: 'Type', variant: 'badge' },\n { name: 'status', variant: 'badge' },\n { name: 'startDate', label: 'From', variant: 'body', format: 'date' },\n { name: 'endDate', label: 'To', variant: 'body', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// Trading\n// ============================================================================\n\nexport function tradingOrderView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'symbol', variant: 'h3', icon: 'trending-up' },\n { name: 'side', variant: 'badge' },\n { name: 'quantity', variant: 'body', format: 'number' },\n { name: 'price', variant: 'h4', format: 'currency' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// API Gateway\n// ============================================================================\n\nexport function apiRouteView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'method', variant: 'badge' },\n { name: 'path', variant: 'h3', icon: 'git-branch' },\n { name: 'backend', variant: 'body' },\n { name: 'rateLimit', label: 'Rate Limit', variant: 'caption', format: 'number' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// CI/CD\n// ============================================================================\n\nexport function cicdBuildView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'branch', variant: 'h3', icon: 'git-branch' },\n { name: 'status', variant: 'badge' },\n { name: 'commit', variant: 'body' },\n { name: 'triggeredBy', label: 'Triggered By', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// DevOps\n// ============================================================================\n\nexport function devopsLogView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'message', variant: 'h4', icon: 'file-text' },\n { name: 'level', variant: 'badge' },\n { name: 'service', variant: 'body' },\n { name: 'timestamp', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'compact', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// Booking\n// ============================================================================\n\nexport function bookingProviderView(): DomainViewConfig {\n return {\n displayPattern: 'data-grid',\n displayColumns: [\n { name: 'name', variant: 'h3', icon: 'briefcase' },\n { name: 'specialty', variant: 'badge' },\n { name: 'rating', variant: 'body', format: 'number' },\n { name: 'location', variant: 'body' },\n { name: 'phone', variant: 'caption' },\n ],\n displayProps: { cols: 2, gap: 'md' },\n };\n}\n\nexport function bookingAppointmentView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'customerName', label: 'Customer', variant: 'h3', icon: 'clock' },\n { name: 'status', variant: 'badge' },\n { name: 'providerName', label: 'Provider', variant: 'body' },\n { name: 'date', variant: 'body', format: 'date' },\n { name: 'time', variant: 'caption' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\n// ============================================================================\n// Social Feed\n// ============================================================================\n\nexport function socialPostView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'title', variant: 'h3', icon: 'rss' },\n { name: 'likes', variant: 'badge', format: 'number' },\n { name: 'author', variant: 'body' },\n { name: 'content', variant: 'body' },\n { name: 'createdAt', label: 'Posted', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n\nexport function socialCommentView(): DomainViewConfig {\n return {\n displayPattern: 'data-list',\n displayColumns: [\n { name: 'author', variant: 'h4', icon: 'message-circle' },\n { name: 'body', variant: 'body' },\n { name: 'createdAt', variant: 'caption', format: 'date' },\n ],\n displayProps: { variant: 'card', gap: 'sm' },\n };\n}\n","/**\n * Layout wrappers for organism behaviors.\n *\n * Post-processes a composed OrbitalSchema to wrap all render-ui 'main' effects\n * in a dashboard-layout or game-shell pattern, giving every page a consistent\n * application shell with sidebar navigation, top bar, and user menu.\n *\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\n\ninterface NavItemConfig {\n label: string;\n href: string;\n icon: string;\n}\n\n/**\n * Wrap all render-ui 'main' effects in a dashboard-layout pattern.\n *\n * Walks the composed schema's transitions and wraps each\n * `['render-ui', 'main', content]` as\n * `['render-ui', 'main', { type: 'dashboard-layout', appName, navItems, children: [content] }]`.\n *\n * The compiler renders this naturally since `dashboard-layout` is a registered pattern.\n */\nexport function wrapInDashboardLayout(\n schema: OrbitalSchema,\n appName: string,\n navItems: NavItemConfig[],\n): OrbitalSchema {\n const layoutWrapper = {\n type: 'dashboard-layout',\n appName,\n navItems,\n };\n\n for (const orbital of schema.orbitals) {\n if (!orbital.traits) continue;\n for (const traitRef of orbital.traits) {\n if (typeof traitRef === 'string' || !('stateMachine' in traitRef)) continue;\n const sm = traitRef.stateMachine;\n if (!sm || !('transitions' in sm)) continue;\n const transitions = sm.transitions as Array<{\n effects: unknown[];\n }>;\n for (const transition of transitions) {\n if (!transition.effects) continue;\n for (let i = 0; i < transition.effects.length; i++) {\n const effect = transition.effects[i];\n if (\n Array.isArray(effect) &&\n effect[0] === 'render-ui' &&\n effect[1] === 'main' &&\n effect[2] != null\n ) {\n const content = effect[2];\n transition.effects[i] = [\n 'render-ui',\n 'main',\n { ...layoutWrapper, children: [content] },\n ];\n }\n }\n }\n }\n }\n\n return schema;\n}\n\n/**\n * Wrap all render-ui 'main' effects in a game-shell pattern.\n *\n * Similar to wrapInDashboardLayout but uses the game-shell pattern which\n * provides a full-screen dark container with optional HUD, no sidebar.\n */\nexport function wrapInGameShell(\n schema: OrbitalSchema,\n appName: string,\n): OrbitalSchema {\n const shellWrapper = {\n type: 'game-shell',\n appName,\n showTopBar: true,\n };\n\n for (const orbital of schema.orbitals) {\n if (!orbital.traits) continue;\n for (const traitRef of orbital.traits) {\n if (typeof traitRef === 'string' || !('stateMachine' in traitRef)) continue;\n const sm = traitRef.stateMachine;\n if (!sm || !('transitions' in sm)) continue;\n const transitions = sm.transitions as Array<{\n effects: unknown[];\n }>;\n for (const transition of transitions) {\n if (!transition.effects) continue;\n for (let i = 0; i < transition.effects.length; i++) {\n const effect = transition.effects[i];\n if (\n Array.isArray(effect) &&\n effect[0] === 'render-ui' &&\n effect[1] === 'main' &&\n effect[2] != null\n ) {\n const content = effect[2];\n transition.effects[i] = [\n 'render-ui',\n 'main',\n { ...shellWrapper, children: [content] },\n ];\n }\n }\n }\n }\n }\n\n return schema;\n}\n\n/**\n * Build navItems from a ComposePage array.\n *\n * Extracts page name, path, and derives an icon from the page name or\n * accepts an explicit iconMap.\n */\nexport function buildNavItems(\n pages: Array<{ name: string; path: string }>,\n iconMap?: Record<string, string>,\n): NavItemConfig[] {\n // Default icon mapping by common page name patterns\n const defaultIcons: Record<string, string> = {\n contacts: 'users',\n deals: 'briefcase',\n pipeline: 'bar-chart-2',\n notes: 'file-text',\n products: 'package',\n cart: 'shopping-cart',\n checkout: 'credit-card',\n orders: 'clipboard-list',\n patients: 'heart',\n appointments: 'calendar',\n prescriptions: 'pill',\n dashboard: 'layout-dashboard',\n tickets: 'inbox',\n responses: 'message-circle',\n tasks: 'check-square',\n sprints: 'zap',\n channels: 'hash',\n messages: 'message-circle',\n transactions: 'dollar-sign',\n reports: 'bar-chart',\n devices: 'cpu',\n readings: 'activity',\n alerts: 'bell',\n articles: 'file-text',\n categories: 'folder',\n media: 'image',\n courses: 'book-open',\n lessons: 'play-circle',\n students: 'graduation-cap',\n employees: 'users',\n departments: 'building',\n timeoff: 'calendar',\n reviews: 'star',\n positions: 'trending-up',\n watchlist: 'eye',\n routes: 'git-branch',\n backends: 'server',\n analytics: 'bar-chart-2',\n builds: 'hammer',\n stages: 'layers',\n deploy: 'rocket',\n services: 'server',\n logs: 'terminal',\n infrastructure: 'database',\n posts: 'edit',\n comments: 'message-square',\n providers: 'user-check',\n schedule: 'clock',\n book: 'calendar-plus',\n game: 'gamepad-2',\n scores: 'trophy',\n hud: 'activity',\n canvas: 'monitor',\n settings: 'settings',\n };\n\n return pages.map(page => {\n // Derive label: \"ContactsPage\" -> \"Contacts\", \"DealsPage\" -> \"Deals\"\n const label = page.name\n .replace(/Page$/, '')\n .replace(/([a-z])([A-Z])/g, '$1 $2');\n\n // Derive icon from path segment\n const pathKey = page.path.replace(/^\\//, '').split('/')[0].toLowerCase();\n const icon = iconMap?.[pathKey] ?? defaultIcons[pathKey] ?? 'layout-list';\n\n return { label, href: page.path, icon };\n });\n}\n","/**\n * std-social-feed\n *\n * Social feed organism. Composes molecules via compose:\n * - stdDetail(Post): browse + create + view posts\n * - stdMessaging(Comment): messaging thread for comments\n *\n * Pages: /feed (initial), /messages\n * Connections: COMMENT event wires posts to comments.\n *\n * @level organism\n * @family social\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdDetail } from '../molecules/std-detail.js';\nimport { stdMessaging } from '../molecules/std-messaging.js';\nimport { socialPostView, socialCommentView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSocialFeedParams {\n appName?: string;\n postFields?: EntityField[];\n commentFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_POST_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', default: '' },\n { name: 'content', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'createdAt', type: 'date', default: '' },\n { name: 'likes', type: 'number', default: 0 },\n];\n\nconst DEFAULT_COMMENT_FIELDS: EntityField[] = [\n { name: 'body', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'postId', type: 'string', default: '' },\n { name: 'createdAt', type: 'date', default: '' },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdSocialFeed(params: StdSocialFeedParams): OrbitalSchema {\n const appName = params.appName ?? 'SocialFeed';\n\n const postOrbital = stdDetail({\n entityName: 'Post',\n fields: params.postFields ?? DEFAULT_POST_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Feed',\n headerIcon: 'rss',\n createButtonLabel: 'New Post',\n createFormTitle: 'Create Post',\n emptyTitle: 'No posts yet',\n emptyDescription: 'Share your first post.',\n pageName: 'FeedPage',\n pagePath: '/feed',\n isInitial: true,\n ...socialPostView(),\n });\n\n const commentOrbital = stdMessaging({\n entityName: 'Comment',\n fields: params.commentFields ?? DEFAULT_COMMENT_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Messages',\n headerIcon: 'message-circle',\n composerTitle: 'New Comment',\n pageName: 'MessagesPage',\n pagePath: '/messages',\n ...socialCommentView(),\n });\n\n const pages: ComposePage[] = [\n { name: 'FeedPage', path: '/feed', traits: ['PostBrowse', 'PostCreate', 'PostView'], isInitial: true },\n { name: 'MessagesPage', path: '/messages', traits: ['CommentBrowse', 'CommentCompose', 'CommentView'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'PostBrowse',\n to: 'CommentBrowse',\n event: { event: 'COMMENT', description: 'Navigate to comments for a post', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n ];\n\n const schema = compose([postOrbital, commentOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-lms\n *\n * Learning management system organism. Composes molecules via compose:\n * - stdList(Course): CRUD list of courses\n * - stdWizard(Enrollment): multi-step enrollment wizard\n * - stdDisplay(Progress): read-only progress dashboard\n *\n * Pages: /courses (initial), /enroll, /progress\n * Connections: ENROLL (courses->enrollment), COMPLETE_LESSON (enrollment->progress)\n *\n * @level organism\n * @family education\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdWizard } from '../atoms/std-wizard.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { lmsCourseView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdLmsParams {\n appName?: string;\n courseFields?: EntityField[];\n enrollmentFields?: EntityField[];\n progressFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_COURSE_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', default: '' },\n { name: 'description', type: 'string', default: '' },\n { name: 'instructor', type: 'string', default: '' },\n { name: 'duration', type: 'string', default: '' },\n { name: 'level', type: 'string', default: 'Beginner', values: ['Beginner', 'Intermediate', 'Advanced'] },\n];\n\nconst DEFAULT_ENROLLMENT_FIELDS: EntityField[] = [\n { name: 'studentName', type: 'string', default: '' },\n { name: 'email', type: 'string', default: '' },\n { name: 'courseId', type: 'string', default: '' },\n { name: 'enrolledAt', type: 'date', default: '' },\n { name: 'status', type: 'string', default: 'pending', values: ['pending', 'active', 'completed', 'dropped'] },\n];\n\nconst DEFAULT_PROGRESS_FIELDS: EntityField[] = [\n { name: 'courseName', type: 'string', default: '' },\n { name: 'lessonsCompleted', type: 'number', default: 0 },\n { name: 'totalLessons', type: 'number', default: 0 },\n { name: 'percentComplete', type: 'number', default: 0 },\n { name: 'lastActivity', type: 'date', default: '' },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdLms(params: StdLmsParams): OrbitalSchema {\n const appName = params.appName ?? 'LMS';\n\n const courseOrbital = stdList({\n entityName: 'Course',\n fields: params.courseFields ?? DEFAULT_COURSE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Courses',\n headerIcon: 'book-open',\n createButtonLabel: 'Add Course',\n createFormTitle: 'New Course',\n emptyTitle: 'No courses yet',\n emptyDescription: 'Create a course to start teaching.',\n pageName: 'CoursesPage',\n pagePath: '/courses',\n isInitial: true,\n ...lmsCourseView(),\n });\n\n const enrollmentOrbital = stdWizard({\n entityName: 'Enrollment',\n fields: params.enrollmentFields ?? DEFAULT_ENROLLMENT_FIELDS,\n persistence: 'runtime',\n wizardTitle: 'Course Enrollment',\n completeTitle: 'Enrolled!',\n completeDescription: 'You have been successfully enrolled in the course.',\n headerIcon: 'user-plus',\n steps: [\n { name: 'Student Info', fields: ['studentName', 'email'] },\n { name: 'Course Selection', fields: ['courseId'] },\n ],\n pageName: 'EnrollPage',\n pagePath: '/enroll',\n });\n\n const progressOrbital = stdDisplay({\n entityName: 'Progress',\n fields: params.progressFields ?? DEFAULT_PROGRESS_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Progress',\n headerIcon: 'trending-up',\n columns: 3,\n pageName: 'ProgressPage',\n pagePath: '/progress',\n });\n\n const pages: ComposePage[] = [\n { name: 'CoursesPage', path: '/courses', traits: ['CourseBrowse', 'CourseCreate', 'CourseEdit', 'CourseView', 'CourseDelete'], isInitial: true },\n { name: 'EnrollPage', path: '/enroll', traits: ['EnrollmentWizard'] },\n { name: 'ProgressPage', path: '/progress', traits: ['ProgressDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'CourseBrowse',\n to: 'EnrollmentWizard',\n event: { event: 'ENROLL', description: 'Enroll in a course', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n {\n from: 'EnrollmentWizard',\n to: 'ProgressDisplay',\n event: { event: 'COMPLETE_LESSON', description: 'Lesson completed, update progress', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n ];\n\n const schema = compose([courseOrbital, enrollmentOrbital, progressOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-crm\n *\n * Customer relationship management organism. Composes molecules via compose:\n * - stdList(Contact): CRUD list of contacts\n * - stdList(Deal): CRUD list of deals\n * - stdDisplay(Pipeline): read-only pipeline dashboard\n * - stdMessaging(Note): notes/communication thread\n *\n * Pages: /contacts (initial), /deals, /pipeline, /notes\n * Connections: CONVERT_LEAD (contacts->deals), CLOSE_DEAL (deals->pipeline)\n *\n * @level organism\n * @family business\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { stdMessaging } from '../molecules/std-messaging.js';\nimport { crmContactView, crmDealView, crmNoteView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCrmParams {\n appName?: string;\n contactFields?: EntityField[];\n dealFields?: EntityField[];\n pipelineFields?: EntityField[];\n noteFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_CONTACT_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', default: '' },\n { name: 'company', type: 'string', default: '' },\n { name: 'email', type: 'string', default: '' },\n { name: 'phone', type: 'string', default: '' },\n { name: 'status', type: 'string', default: 'lead', values: ['lead', 'prospect', 'customer', 'inactive'] },\n];\n\nconst DEFAULT_DEAL_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', default: '' },\n { name: 'contactId', type: 'string', default: '' },\n { name: 'value', type: 'number', default: 0 },\n { name: 'stage', type: 'string', default: 'prospecting', values: ['prospecting', 'qualification', 'proposal', 'negotiation', 'closed-won', 'closed-lost'] },\n { name: 'closedAt', type: 'date', default: '' },\n];\n\nconst DEFAULT_PIPELINE_FIELDS: EntityField[] = [\n { name: 'totalDeals', type: 'number', default: 0 },\n { name: 'totalValue', type: 'number', default: 0 },\n { name: 'wonDeals', type: 'number', default: 0 },\n { name: 'lostDeals', type: 'number', default: 0 },\n { name: 'conversionRate', type: 'number', default: 0 },\n];\n\nconst DEFAULT_NOTE_FIELDS: EntityField[] = [\n { name: 'subject', type: 'string', default: '' },\n { name: 'body', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'createdAt', type: 'date', default: '' },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdCrm(params: StdCrmParams): OrbitalSchema {\n const appName = params.appName ?? 'CRM';\n\n const contactView = crmContactView();\n const contactOrbital = stdList({\n entityName: 'Contact',\n fields: params.contactFields ?? DEFAULT_CONTACT_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Contacts',\n headerIcon: 'users',\n createButtonLabel: 'Add Contact',\n createFormTitle: 'New Contact',\n emptyTitle: 'No contacts yet',\n emptyDescription: 'Add your first contact to start building your CRM.',\n pageName: 'ContactsPage',\n pagePath: '/contacts',\n isInitial: true,\n ...contactView,\n });\n\n const dealView = crmDealView();\n const dealOrbital = stdList({\n entityName: 'Deal',\n fields: params.dealFields ?? DEFAULT_DEAL_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Deals',\n headerIcon: 'briefcase',\n createButtonLabel: 'New Deal',\n createFormTitle: 'Create Deal',\n emptyTitle: 'No deals yet',\n emptyDescription: 'Create a deal to track your sales pipeline.',\n pageName: 'DealsPage',\n pagePath: '/deals',\n ...dealView,\n });\n\n const pipelineOrbital = stdDisplay({\n entityName: 'Pipeline',\n fields: params.pipelineFields ?? DEFAULT_PIPELINE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Pipeline',\n headerIcon: 'bar-chart-2',\n columns: 3,\n pageName: 'PipelinePage',\n pagePath: '/pipeline',\n });\n\n const noteView = crmNoteView();\n const noteOrbital = stdMessaging({\n entityName: 'Note',\n fields: params.noteFields ?? DEFAULT_NOTE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Notes',\n headerIcon: 'file-text',\n composerTitle: 'New Note',\n pageName: 'NotesPage',\n pagePath: '/notes',\n ...noteView,\n });\n\n const pages: ComposePage[] = [\n { name: 'ContactsPage', path: '/contacts', traits: ['ContactBrowse', 'ContactCreate', 'ContactEdit', 'ContactView', 'ContactDelete'], isInitial: true },\n { name: 'DealsPage', path: '/deals', traits: ['DealBrowse', 'DealCreate', 'DealEdit', 'DealView', 'DealDelete'] },\n { name: 'PipelinePage', path: '/pipeline', traits: ['PipelineDisplay'] },\n { name: 'NotesPage', path: '/notes', traits: ['NoteBrowse', 'NoteCompose', 'NoteView'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'ContactBrowse',\n to: 'DealBrowse',\n event: { event: 'CONVERT_LEAD', description: 'Convert contact lead to a deal', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n {\n from: 'DealBrowse',\n to: 'PipelineDisplay',\n event: { event: 'CLOSE_DEAL', description: 'Close a deal and update pipeline', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n ];\n\n const schema = compose([contactOrbital, dealOrbital, pipelineOrbital, noteOrbital], pages, connections, appName);\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-hr-portal\n *\n * HR portal organism. Composes molecules via compose:\n * - stdList(Employee): CRUD list of employees\n * - stdWizard(Onboarding): multi-step onboarding wizard\n * - stdList(TimeOff): CRUD list of time-off requests\n * - stdDisplay(OrgChart): read-only org chart dashboard\n *\n * Pages: /employees (initial), /onboarding, /timeoff, /org-chart\n * Connections: ONBOARD (employees->onboarding), APPROVE_LEAVE (timeoff->orgchart)\n *\n * @level organism\n * @family hr\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdWizard } from '../atoms/std-wizard.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { hrEmployeeView, hrTimeOffView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdHrPortalParams {\n appName?: string;\n employeeFields?: EntityField[];\n onboardingFields?: EntityField[];\n timeOffFields?: EntityField[];\n orgChartFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_EMPLOYEE_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', default: '' },\n { name: 'email', type: 'string', default: '' },\n { name: 'department', type: 'string', default: '' },\n { name: 'role', type: 'string', default: '' },\n { name: 'startDate', type: 'date', default: '' },\n];\n\nconst DEFAULT_ONBOARDING_FIELDS: EntityField[] = [\n { name: 'employeeName', type: 'string', default: '' },\n { name: 'department', type: 'string', default: '' },\n { name: 'manager', type: 'string', default: '' },\n { name: 'equipmentReady', type: 'boolean', default: false },\n { name: 'accessGranted', type: 'boolean', default: false },\n];\n\nconst DEFAULT_TIMEOFF_FIELDS: EntityField[] = [\n { name: 'employeeName', type: 'string', default: '' },\n { name: 'leaveType', type: 'string', default: 'vacation', values: ['vacation', 'sick', 'personal', 'parental'] },\n { name: 'startDate', type: 'date', default: '' },\n { name: 'endDate', type: 'date', default: '' },\n { name: 'status', type: 'string', default: 'pending', values: ['pending', 'approved', 'denied'] },\n];\n\nconst DEFAULT_ORGCHART_FIELDS: EntityField[] = [\n { name: 'totalEmployees', type: 'number', default: 0 },\n { name: 'departments', type: 'number', default: 0 },\n { name: 'openPositions', type: 'number', default: 0 },\n { name: 'avgTenure', type: 'string', default: '0 years' },\n { name: 'headcount', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdHrPortal(params: StdHrPortalParams): OrbitalSchema {\n const appName = params.appName ?? 'HRPortal';\n\n const employeeOrbital = stdList({\n entityName: 'Employee',\n fields: params.employeeFields ?? DEFAULT_EMPLOYEE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Employees',\n headerIcon: 'users',\n createButtonLabel: 'Add Employee',\n createFormTitle: 'New Employee',\n emptyTitle: 'No employees yet',\n emptyDescription: 'Add employees to your organization.',\n pageName: 'EmployeesPage',\n pagePath: '/employees',\n isInitial: true,\n ...hrEmployeeView(),\n });\n\n const onboardingOrbital = stdWizard({\n entityName: 'Onboarding',\n fields: params.onboardingFields ?? DEFAULT_ONBOARDING_FIELDS,\n persistence: 'runtime',\n wizardTitle: 'Employee Onboarding',\n completeTitle: 'Onboarding Complete!',\n completeDescription: 'The new employee has been fully onboarded.',\n headerIcon: 'clipboard-check',\n steps: [\n { name: 'Employee Details', fields: ['employeeName', 'department'] },\n { name: 'Manager Assignment', fields: ['manager'] },\n { name: 'Setup Checklist', fields: ['equipmentReady', 'accessGranted'] },\n ],\n pageName: 'OnboardingPage',\n pagePath: '/onboarding',\n });\n\n const timeOffOrbital = stdList({\n entityName: 'TimeOff',\n fields: params.timeOffFields ?? DEFAULT_TIMEOFF_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Time Off Requests',\n headerIcon: 'calendar',\n createButtonLabel: 'Request Time Off',\n createFormTitle: 'New Time Off Request',\n emptyTitle: 'No time-off requests',\n emptyDescription: 'Submit a request when you need time off.',\n pageName: 'TimeOffPage',\n pagePath: '/timeoff',\n ...hrTimeOffView(),\n });\n\n const orgChartOrbital = stdDisplay({\n entityName: 'OrgChart',\n fields: params.orgChartFields ?? DEFAULT_ORGCHART_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Org Chart',\n headerIcon: 'git-branch',\n columns: 3,\n pageName: 'OrgChartPage',\n pagePath: '/org-chart',\n });\n\n const pages: ComposePage[] = [\n { name: 'EmployeesPage', path: '/employees', traits: ['EmployeeBrowse', 'EmployeeCreate', 'EmployeeEdit', 'EmployeeView', 'EmployeeDelete'], isInitial: true },\n { name: 'OnboardingPage', path: '/onboarding', traits: ['OnboardingWizard'] },\n { name: 'TimeOffPage', path: '/timeoff', traits: ['TimeOffBrowse', 'TimeOffCreate', 'TimeOffEdit', 'TimeOffView', 'TimeOffDelete'] },\n { name: 'OrgChartPage', path: '/org-chart', traits: ['OrgChartDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'EmployeeBrowse',\n to: 'OnboardingWizard',\n event: { event: 'ONBOARD', description: 'Start onboarding for a new employee', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n {\n from: 'TimeOffBrowse',\n to: 'OrgChartDisplay',\n event: { event: 'APPROVE_LEAVE', description: 'Approve leave and update org chart', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n ];\n\n const schema = compose([employeeOrbital, onboardingOrbital, timeOffOrbital, orgChartOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-helpdesk\n *\n * Helpdesk organism. Composes molecules via compose:\n * - stdList(Ticket): CRUD list of support tickets\n * - stdMessaging(Response): messaging thread for ticket responses\n * - stdDisplay(SupportMetrics): read-only metrics dashboard\n *\n * Pages: /tickets (initial), /responses, /metrics\n * Connections: ASSIGN (tickets->responses), RESOLVE (responses->metrics)\n *\n * @level organism\n * @family support\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdMessaging } from '../molecules/std-messaging.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { helpdeskTicketView, helpdeskResponseView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdHelpdeskParams {\n appName?: string;\n ticketFields?: EntityField[];\n responseFields?: EntityField[];\n metricsFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_TICKET_FIELDS: EntityField[] = [\n { name: 'subject', type: 'string', default: '' },\n { name: 'description', type: 'string', default: '' },\n { name: 'priority', type: 'string', default: 'medium', values: ['low', 'medium', 'high', 'critical'] },\n { name: 'status', type: 'string', default: 'open', values: ['open', 'in-progress', 'resolved', 'closed'] },\n { name: 'assignee', type: 'string', default: '' },\n];\n\nconst DEFAULT_RESPONSE_FIELDS: EntityField[] = [\n { name: 'ticketId', type: 'string', default: '' },\n { name: 'body', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'createdAt', type: 'date', default: '' },\n];\n\nconst DEFAULT_METRICS_FIELDS: EntityField[] = [\n { name: 'openTickets', type: 'number', default: 0 },\n { name: 'resolvedTickets', type: 'number', default: 0 },\n { name: 'avgResponseTime', type: 'string', default: '0h' },\n { name: 'satisfactionScore', type: 'number', default: 0 },\n { name: 'activeAgents', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdHelpdesk(params: StdHelpdeskParams): OrbitalSchema {\n const appName = params.appName ?? 'Helpdesk';\n\n const ticketOrbital = stdList({\n entityName: 'Ticket',\n fields: params.ticketFields ?? DEFAULT_TICKET_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Tickets',\n headerIcon: 'inbox',\n createButtonLabel: 'New Ticket',\n createFormTitle: 'Create Ticket',\n emptyTitle: 'No tickets filed',\n emptyDescription: 'Your support queue is clear.',\n pageName: 'TicketsPage',\n pagePath: '/tickets',\n isInitial: true,\n ...helpdeskTicketView(),\n });\n\n const responseOrbital = stdMessaging({\n entityName: 'Response',\n fields: params.responseFields ?? DEFAULT_RESPONSE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Responses',\n headerIcon: 'message-circle',\n composerTitle: 'New Response',\n pageName: 'ResponsesPage',\n pagePath: '/responses',\n ...helpdeskResponseView(),\n });\n\n const metricsOrbital = stdDisplay({\n entityName: 'SupportMetrics',\n fields: params.metricsFields ?? DEFAULT_METRICS_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Support Metrics',\n headerIcon: 'activity',\n columns: 3,\n pageName: 'MetricsPage',\n pagePath: '/metrics',\n });\n\n const pages: ComposePage[] = [\n { name: 'TicketsPage', path: '/tickets', traits: ['TicketBrowse', 'TicketCreate', 'TicketEdit', 'TicketView', 'TicketDelete'], isInitial: true },\n { name: 'ResponsesPage', path: '/responses', traits: ['ResponseBrowse', 'ResponseCompose', 'ResponseView'] },\n { name: 'MetricsPage', path: '/metrics', traits: ['SupportMetricsDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'TicketBrowse',\n to: 'ResponseBrowse',\n event: { event: 'ASSIGN', description: 'Assign ticket and open response thread', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n {\n from: 'ResponseBrowse',\n to: 'SupportMetricsDisplay',\n event: { event: 'RESOLVE', description: 'Resolve ticket and update metrics', payload: [{ name: 'id', type: 'string', required: true }] },\n },\n ];\n\n const schema = compose([ticketOrbital, responseOrbital, metricsOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-ecommerce\n *\n * E-commerce organism. Composes molecules via compose:\n * - stdList(Product): product catalog with CRUD\n * - stdCart(CartItem): shopping cart with add/remove\n * - stdWizard(Checkout): checkout wizard\n * - stdList(OrderRecord): order history\n *\n * Cross-orbital connections:\n * - ADD_TO_CART: ProductBrowse -> CartItemCartBrowse\n * - CHECKOUT_STARTED: CartItemCartBrowse -> CheckoutWizard\n * - ORDER_PLACED: CheckoutWizard -> OrderRecordBrowse\n *\n * @level organism\n * @family commerce\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdCart } from '../molecules/std-cart.js';\nimport { stdWizard } from '../atoms/std-wizard.js';\nimport { ecommerceProductView, ecommerceOrderView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdEcommerceParams {\n appName?: string;\n productFields?: EntityField[];\n cartItemFields?: EntityField[];\n orderFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_PRODUCT_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'price', type: 'number', required: true },\n { name: 'category', type: 'string' },\n { name: 'sku', type: 'string' },\n { name: 'inStock', type: 'boolean', default: true },\n];\n\nconst DEFAULT_CART_ITEM_FIELDS: EntityField[] = [\n { name: 'productName', type: 'string', required: true },\n { name: 'quantity', type: 'number', required: true, default: 1 },\n { name: 'unitPrice', type: 'number', required: true },\n { name: 'totalPrice', type: 'number' },\n];\n\nconst DEFAULT_ORDER_FIELDS: EntityField[] = [\n { name: 'customerName', type: 'string', required: true },\n { name: 'email', type: 'string', required: true },\n { name: 'shippingAddress', type: 'string', required: true },\n { name: 'paymentMethod', type: 'string', required: true },\n { name: 'orderTotal', type: 'number' },\n { name: 'status', type: 'string', default: 'pending', values: ['pending', 'processing', 'shipped', 'delivered', 'cancelled'] },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdEcommerce(params: StdEcommerceParams): OrbitalSchema {\n const productFields = params.productFields ?? DEFAULT_PRODUCT_FIELDS;\n const cartItemFields = params.cartItemFields ?? DEFAULT_CART_ITEM_FIELDS;\n const orderFields = params.orderFields ?? DEFAULT_ORDER_FIELDS;\n\n const products = stdList({\n entityName: 'Product',\n fields: productFields,\n pageTitle: 'Products',\n headerIcon: 'package',\n emptyTitle: 'No products yet',\n emptyDescription: 'Add products to build your catalog.',\n pageName: 'ProductsPage',\n pagePath: '/products',\n isInitial: true,\n ...ecommerceProductView(),\n });\n\n const cart = stdCart({\n entityName: 'CartItem',\n fields: cartItemFields,\n pageTitle: 'Shopping Cart',\n headerIcon: 'shopping-cart',\n pageName: 'CartPage',\n pagePath: '/cart',\n });\n\n const checkout = stdWizard({\n entityName: 'Checkout',\n fields: orderFields,\n wizardTitle: 'Checkout',\n headerIcon: 'credit-card',\n pageName: 'CheckoutPage',\n pagePath: '/checkout',\n steps: [\n { name: 'Customer Info', fields: ['customerName', 'email'] },\n { name: 'Shipping', fields: ['shippingAddress'] },\n { name: 'Payment', fields: ['paymentMethod'] },\n ],\n completeTitle: 'Order Placed',\n completeDescription: 'Your order has been placed successfully.',\n submitButtonLabel: 'Place Order',\n });\n\n const orderHistory = stdList({\n entityName: 'OrderRecord',\n fields: orderFields,\n pageTitle: 'Order History',\n headerIcon: 'clipboard-list',\n emptyTitle: 'No orders yet',\n emptyDescription: 'Orders will appear here as customers complete checkout.',\n pageName: 'OrdersPage',\n pagePath: '/orders',\n ...ecommerceOrderView(),\n });\n\n const appName = params.appName ?? 'EcommerceApp';\n\n\n\n const pages: ComposePage[] = [\n { name: 'ProductsPage', path: '/products', traits: ['ProductBrowse', 'ProductCreate', 'ProductEdit', 'ProductView', 'ProductDelete'], isInitial: true },\n { name: 'CartPage', path: '/cart', traits: ['CartItemCartBrowse', 'CartItemAddItem'] },\n { name: 'CheckoutPage', path: '/checkout', traits: ['CheckoutWizard'] },\n { name: 'OrdersPage', path: '/orders', traits: ['OrderRecordBrowse', 'OrderRecordCreate', 'OrderRecordEdit', 'OrderRecordView', 'OrderRecordDelete'] },\n ];\n\n\n\n const schema = compose(\n\n\n [products, cart, checkout, orderHistory],\n\n\n pages,\n\n\n [\n { from: 'ProductBrowse', to: 'CartItemCartBrowse', event: { event: 'ADD_TO_CART', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'CartItemCartBrowse', to: 'CheckoutWizard', event: { event: 'CHECKOUT_STARTED', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'CheckoutWizard', to: 'OrderRecordBrowse', event: { event: 'ORDER_PLACED', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n\n\n appName,\n\n\n );\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-healthcare\n *\n * Healthcare organism. Composes molecules via compose:\n * - stdList(Patient): patient registry with CRUD\n * - stdList(Appointment): appointment management\n * - stdWizard(IntakeForm): patient intake wizard\n * - stdDetail(Prescription): prescription browse + view\n * - stdDisplay(Dashboard): clinic dashboard KPIs\n *\n * Cross-orbital connections:\n * - INTAKE_COMPLETE: IntakeFormWizard -> PatientBrowse\n * - PRESCRIBE: AppointmentBrowse -> PrescriptionBrowse\n *\n * @level organism\n * @family healthcare\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdWizard } from '../atoms/std-wizard.js';\nimport { stdDetail } from '../molecules/std-detail.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { healthcarePatientView, healthcareAppointmentView, healthcarePrescriptionView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdHealthcareParams {\n appName?: string;\n patientFields?: EntityField[];\n appointmentFields?: EntityField[];\n intakeFormFields?: EntityField[];\n prescriptionFields?: EntityField[];\n dashboardFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_PATIENT_FIELDS: EntityField[] = [\n { name: 'firstName', type: 'string', required: true },\n { name: 'lastName', type: 'string', required: true },\n { name: 'dateOfBirth', type: 'date', required: true },\n { name: 'phone', type: 'string' },\n { name: 'insuranceId', type: 'string' },\n { name: 'status', type: 'string', default: 'active', values: ['active', 'inactive', 'discharged'] },\n];\n\nconst DEFAULT_APPOINTMENT_FIELDS: EntityField[] = [\n { name: 'patientName', type: 'string', required: true },\n { name: 'doctorName', type: 'string', required: true },\n { name: 'date', type: 'date', required: true },\n { name: 'time', type: 'string', required: true },\n { name: 'reason', type: 'string' },\n { name: 'status', type: 'string', default: 'scheduled', values: ['scheduled', 'confirmed', 'completed', 'cancelled'] },\n];\n\nconst DEFAULT_INTAKE_FORM_FIELDS: EntityField[] = [\n { name: 'firstName', type: 'string', required: true },\n { name: 'lastName', type: 'string', required: true },\n { name: 'dateOfBirth', type: 'date', required: true },\n { name: 'allergies', type: 'string' },\n { name: 'medications', type: 'string' },\n { name: 'emergencyContact', type: 'string' },\n { name: 'insuranceProvider', type: 'string' },\n { name: 'insuranceId', type: 'string' },\n];\n\nconst DEFAULT_PRESCRIPTION_FIELDS: EntityField[] = [\n { name: 'medication', type: 'string', required: true },\n { name: 'dosage', type: 'string', required: true },\n { name: 'frequency', type: 'string', required: true },\n { name: 'patientName', type: 'string', required: true },\n { name: 'prescribedBy', type: 'string' },\n { name: 'startDate', type: 'date' },\n { name: 'endDate', type: 'date' },\n];\n\nconst DEFAULT_DASHBOARD_FIELDS: EntityField[] = [\n { name: 'totalPatients', type: 'number', default: 0 },\n { name: 'appointmentsToday', type: 'number', default: 0 },\n { name: 'pendingIntakes', type: 'number', default: 0 },\n { name: 'activePrescriptions', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdHealthcare(params: StdHealthcareParams): OrbitalSchema {\n const patientFields = params.patientFields ?? DEFAULT_PATIENT_FIELDS;\n const appointmentFields = params.appointmentFields ?? DEFAULT_APPOINTMENT_FIELDS;\n const intakeFormFields = params.intakeFormFields ?? DEFAULT_INTAKE_FORM_FIELDS;\n const prescriptionFields = params.prescriptionFields ?? DEFAULT_PRESCRIPTION_FIELDS;\n const dashboardFields = params.dashboardFields ?? DEFAULT_DASHBOARD_FIELDS;\n\n const patients = stdList({\n entityName: 'Patient',\n fields: patientFields,\n pageTitle: 'Patients',\n headerIcon: 'users',\n emptyTitle: 'No patients registered',\n emptyDescription: 'Register a patient to get started.',\n pageName: 'PatientsPage',\n pagePath: '/patients',\n isInitial: true,\n ...healthcarePatientView(),\n });\n\n const appointments = stdList({\n entityName: 'Appointment',\n fields: appointmentFields,\n pageTitle: 'Appointments',\n headerIcon: 'calendar',\n emptyTitle: 'No appointments scheduled',\n emptyDescription: 'Schedule an appointment to get started.',\n pageName: 'AppointmentsPage',\n pagePath: '/appointments',\n ...healthcareAppointmentView(),\n });\n\n const intake = stdWizard({\n entityName: 'IntakeForm',\n fields: intakeFormFields,\n wizardTitle: 'Patient Intake',\n headerIcon: 'clipboard',\n pageName: 'IntakePage',\n pagePath: '/intake',\n steps: [\n { name: 'Personal Info', fields: ['firstName', 'lastName', 'dateOfBirth'] },\n { name: 'Medical History', fields: ['allergies', 'medications'] },\n { name: 'Insurance', fields: ['emergencyContact', 'insuranceProvider', 'insuranceId'] },\n ],\n completeTitle: 'Intake Complete',\n completeDescription: 'Patient intake form has been submitted successfully.',\n submitButtonLabel: 'Submit Intake',\n });\n\n const prescriptions = stdDetail({\n entityName: 'Prescription',\n fields: prescriptionFields,\n pageTitle: 'Prescriptions',\n headerIcon: 'file-text',\n emptyTitle: 'No prescriptions yet',\n emptyDescription: 'Prescriptions will appear here after appointments.',\n pageName: 'PrescriptionsPage',\n pagePath: '/prescriptions',\n ...healthcarePrescriptionView(),\n });\n\n const dashboard = stdDisplay({\n entityName: 'Dashboard',\n fields: dashboardFields,\n pageTitle: 'Clinic Dashboard',\n headerIcon: 'activity',\n pageName: 'DashboardPage',\n pagePath: '/dashboard',\n columns: 4,\n persistence: 'singleton',\n });\n\n const appName = params.appName ?? 'HealthcareApp';\n\n\n\n const pages: ComposePage[] = [\n { name: 'PatientsPage', path: '/patients', traits: ['PatientBrowse', 'PatientCreate', 'PatientEdit', 'PatientView', 'PatientDelete'], isInitial: true },\n { name: 'AppointmentsPage', path: '/appointments', traits: ['AppointmentBrowse', 'AppointmentCreate', 'AppointmentEdit', 'AppointmentView', 'AppointmentDelete'] },\n { name: 'IntakePage', path: '/intake', traits: ['IntakeFormWizard'] },\n { name: 'PrescriptionsPage', path: '/prescriptions', traits: ['PrescriptionBrowse', 'PrescriptionCreate', 'PrescriptionView'] },\n { name: 'DashboardPage', path: '/dashboard', traits: ['DashboardDisplay'] },\n ];\n\n\n\n const schema = compose(\n\n\n [patients, appointments, intake, prescriptions, dashboard],\n\n\n pages,\n\n\n [\n { from: 'IntakeFormWizard', to: 'PatientBrowse', event: { event: 'INTAKE_COMPLETE', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'AppointmentBrowse', to: 'PrescriptionBrowse', event: { event: 'PRESCRIBE', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n\n\n appName,\n\n\n );\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-cms\n *\n * Content management organism. Composes molecules via compose:\n * - stdList(Article): article management with CRUD\n * - stdDetail(MediaAsset): media library browse + view\n * - stdList(Category): category management\n *\n * Cross-orbital connections:\n * - PUBLISH: ArticleBrowse -> MediaAssetBrowse\n * - CATEGORIZE: ArticleBrowse -> CategoryBrowse\n *\n * @level organism\n * @family content\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdDetail } from '../molecules/std-detail.js';\nimport { cmsArticleView, cmsCategoryView, cmsMediaView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCmsParams {\n appName?: string;\n articleFields?: EntityField[];\n mediaAssetFields?: EntityField[];\n categoryFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_ARTICLE_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'slug', type: 'string', required: true },\n { name: 'content', type: 'string' },\n { name: 'author', type: 'string' },\n { name: 'status', type: 'string', default: 'draft', values: ['draft', 'review', 'published', 'archived'] },\n { name: 'publishedAt', type: 'date' },\n];\n\nconst DEFAULT_MEDIA_ASSET_FIELDS: EntityField[] = [\n { name: 'fileName', type: 'string', required: true },\n { name: 'fileType', type: 'string', required: true },\n { name: 'fileSize', type: 'number' },\n { name: 'url', type: 'string' },\n { name: 'altText', type: 'string' },\n { name: 'uploadedAt', type: 'date' },\n];\n\nconst DEFAULT_CATEGORY_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'slug', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'parentCategory', type: 'string' },\n { name: 'articleCount', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdCms(params: StdCmsParams): OrbitalSchema {\n const articleFields = params.articleFields ?? DEFAULT_ARTICLE_FIELDS;\n const mediaAssetFields = params.mediaAssetFields ?? DEFAULT_MEDIA_ASSET_FIELDS;\n const categoryFields = params.categoryFields ?? DEFAULT_CATEGORY_FIELDS;\n\n const articles = stdList({\n entityName: 'Article',\n fields: articleFields,\n pageTitle: 'Articles',\n headerIcon: 'file-text',\n emptyTitle: 'No articles yet',\n emptyDescription: 'Write your first article.',\n pageName: 'ArticlesPage',\n pagePath: '/articles',\n isInitial: true,\n ...cmsArticleView(),\n });\n\n const media = stdDetail({\n entityName: 'MediaAsset',\n fields: mediaAssetFields,\n pageTitle: 'Media Library',\n headerIcon: 'image',\n emptyTitle: 'No media assets',\n emptyDescription: 'Upload media to build your library.',\n pageName: 'MediaPage',\n pagePath: '/media',\n ...cmsMediaView(),\n });\n\n const categories = stdList({\n entityName: 'Category',\n fields: categoryFields,\n pageTitle: 'Categories',\n headerIcon: 'folder',\n emptyTitle: 'No categories yet',\n emptyDescription: 'Create categories to organize your content.',\n pageName: 'CategoriesPage',\n pagePath: '/categories',\n ...cmsCategoryView(),\n });\n\n const appName = params.appName ?? 'CmsApp';\n\n\n\n const pages: ComposePage[] = [\n { name: 'ArticlesPage', path: '/articles', traits: ['ArticleBrowse', 'ArticleCreate', 'ArticleEdit', 'ArticleView', 'ArticleDelete'], isInitial: true },\n { name: 'MediaPage', path: '/media', traits: ['MediaAssetBrowse', 'MediaAssetCreate', 'MediaAssetView'] },\n { name: 'CategoriesPage', path: '/categories', traits: ['CategoryBrowse', 'CategoryCreate', 'CategoryEdit', 'CategoryView', 'CategoryDelete'] },\n ];\n\n\n\n const schema = compose(\n\n\n [articles, media, categories],\n\n\n pages,\n\n\n [\n { from: 'ArticleBrowse', to: 'MediaAssetBrowse', event: { event: 'PUBLISH', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'ArticleBrowse', to: 'CategoryBrowse', event: { event: 'CATEGORIZE', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n\n\n appName,\n\n\n );\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-project-manager\n *\n * Project management organism. Composes molecules via compose:\n * - stdList(Task): task management with CRUD\n * - stdList(Sprint): sprint management with CRUD\n * - stdDisplay(Burndown): burndown chart dashboard\n *\n * Cross-orbital connections:\n * - ASSIGN_TASK: SprintBrowse -> TaskBrowse\n * - COMPLETE_SPRINT: SprintBrowse -> BurndownDisplay\n *\n * @level organism\n * @family productivity\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { projectTaskView, projectSprintView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdProjectManagerParams {\n appName?: string;\n taskFields?: EntityField[];\n sprintFields?: EntityField[];\n burndownFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_TASK_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'assignee', type: 'string' },\n { name: 'priority', type: 'string', default: 'medium', values: ['low', 'medium', 'high', 'critical'] },\n { name: 'status', type: 'string', default: 'todo', values: ['todo', 'in-progress', 'review', 'done'] },\n { name: 'storyPoints', type: 'number', default: 0 },\n { name: 'dueDate', type: 'date' },\n];\n\nconst DEFAULT_SPRINT_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'startDate', type: 'date', required: true },\n { name: 'endDate', type: 'date', required: true },\n { name: 'goal', type: 'string' },\n { name: 'status', type: 'string', default: 'planning', values: ['planning', 'active', 'completed'] },\n { name: 'taskCount', type: 'number', default: 0 },\n];\n\nconst DEFAULT_BURNDOWN_FIELDS: EntityField[] = [\n { name: 'totalPoints', type: 'number', default: 0 },\n { name: 'completedPoints', type: 'number', default: 0 },\n { name: 'remainingPoints', type: 'number', default: 0 },\n { name: 'velocity', type: 'number', default: 0 },\n { name: 'daysRemaining', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdProjectManager(params: StdProjectManagerParams): OrbitalSchema {\n const taskFields = params.taskFields ?? DEFAULT_TASK_FIELDS;\n const sprintFields = params.sprintFields ?? DEFAULT_SPRINT_FIELDS;\n const burndownFields = params.burndownFields ?? DEFAULT_BURNDOWN_FIELDS;\n\n const tasks = stdList({\n entityName: 'Task',\n fields: taskFields,\n pageTitle: 'Tasks',\n headerIcon: 'check-square',\n emptyTitle: 'No tasks yet',\n emptyDescription: 'Create tasks to plan your sprint.',\n pageName: 'TasksPage',\n pagePath: '/tasks',\n isInitial: true,\n ...projectTaskView(),\n });\n\n const sprints = stdList({\n entityName: 'Sprint',\n fields: sprintFields,\n pageTitle: 'Sprints',\n headerIcon: 'zap',\n emptyTitle: 'No sprints yet',\n emptyDescription: 'Create a sprint to organize your work.',\n pageName: 'SprintsPage',\n pagePath: '/sprints',\n ...projectSprintView(),\n });\n\n const burndown = stdDisplay({\n entityName: 'Burndown',\n fields: burndownFields,\n pageTitle: 'Burndown Chart',\n headerIcon: 'trending-down',\n pageName: 'BurndownPage',\n pagePath: '/burndown',\n columns: 5,\n persistence: 'singleton',\n });\n\n const appName = params.appName ?? 'ProjectManagerApp';\n\n\n\n const pages: ComposePage[] = [\n { name: 'TasksPage', path: '/tasks', traits: ['TaskBrowse', 'TaskCreate', 'TaskEdit', 'TaskView', 'TaskDelete'], isInitial: true },\n { name: 'SprintsPage', path: '/sprints', traits: ['SprintBrowse', 'SprintCreate', 'SprintEdit', 'SprintView', 'SprintDelete'] },\n { name: 'BurndownPage', path: '/burndown', traits: ['BurndownDisplay'] },\n ];\n\n\n\n const schema = compose(\n\n\n [tasks, sprints, burndown],\n\n\n pages,\n\n\n [\n { from: 'SprintBrowse', to: 'TaskBrowse', event: { event: 'ASSIGN_TASK', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'SprintBrowse', to: 'BurndownDisplay', event: { event: 'COMPLETE_SPRINT', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n\n\n appName,\n\n\n );\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-booking-system\n *\n * Booking system organism. Composes molecules via compose:\n * - stdList(Provider): provider directory with CRUD\n * - stdWizard(Booking): booking wizard\n * - stdList(Appointment): appointment list with CRUD\n * - stdDisplay(Schedule): schedule overview dashboard\n *\n * Cross-orbital connections:\n * - BOOK: ProviderBrowse -> BookingWizard\n * - CONFIRM: BookingWizard -> AppointmentBrowse\n *\n * @level organism\n * @family scheduling\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposePage } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdWizard } from '../atoms/std-wizard.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { bookingProviderView, bookingAppointmentView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdBookingSystemParams {\n appName?: string;\n providerFields?: EntityField[];\n bookingFields?: EntityField[];\n appointmentFields?: EntityField[];\n scheduleFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_PROVIDER_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'specialty', type: 'string', required: true },\n { name: 'location', type: 'string' },\n { name: 'phone', type: 'string' },\n { name: 'rating', type: 'number', default: 0 },\n { name: 'available', type: 'boolean', default: true },\n];\n\nconst DEFAULT_BOOKING_FIELDS: EntityField[] = [\n { name: 'providerName', type: 'string', required: true },\n { name: 'customerName', type: 'string', required: true },\n { name: 'customerEmail', type: 'string', required: true },\n { name: 'date', type: 'string', required: true },\n { name: 'time', type: 'string', required: true },\n { name: 'notes', type: 'string' },\n];\n\nconst DEFAULT_APPOINTMENT_FIELDS: EntityField[] = [\n { name: 'providerName', type: 'string', required: true },\n { name: 'customerName', type: 'string', required: true },\n { name: 'date', type: 'date', required: true },\n { name: 'time', type: 'string', required: true },\n { name: 'status', type: 'string', default: 'confirmed', values: ['confirmed', 'pending', 'cancelled', 'completed'] },\n { name: 'notes', type: 'string' },\n];\n\nconst DEFAULT_SCHEDULE_FIELDS: EntityField[] = [\n { name: 'totalBookings', type: 'number', default: 0 },\n { name: 'confirmedToday', type: 'number', default: 0 },\n { name: 'pendingBookings', type: 'number', default: 0 },\n { name: 'availableSlots', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdBookingSystem(params: StdBookingSystemParams): OrbitalSchema {\n const providerFields = params.providerFields ?? DEFAULT_PROVIDER_FIELDS;\n const bookingFields = params.bookingFields ?? DEFAULT_BOOKING_FIELDS;\n const appointmentFields = params.appointmentFields ?? DEFAULT_APPOINTMENT_FIELDS;\n const scheduleFields = params.scheduleFields ?? DEFAULT_SCHEDULE_FIELDS;\n\n const providers = stdList({\n entityName: 'Provider',\n fields: providerFields,\n pageTitle: 'Providers',\n headerIcon: 'briefcase',\n emptyTitle: 'No providers listed',\n emptyDescription: 'Add service providers to enable bookings.',\n pageName: 'ProvidersPage',\n pagePath: '/providers',\n isInitial: true,\n ...bookingProviderView(),\n });\n\n const booking = stdWizard({\n entityName: 'Booking',\n fields: bookingFields,\n wizardTitle: 'Book Appointment',\n headerIcon: 'calendar',\n pageName: 'BookPage',\n pagePath: '/book',\n steps: [\n { name: 'Provider Selection', fields: ['providerName'] },\n { name: 'Your Details', fields: ['customerName', 'customerEmail'] },\n { name: 'Date and Time', fields: ['date', 'time', 'notes'] },\n ],\n completeTitle: 'Booking Confirmed',\n completeDescription: 'Your appointment has been booked successfully.',\n submitButtonLabel: 'Confirm Booking',\n });\n\n const appointments = stdList({\n entityName: 'Appointment',\n fields: appointmentFields,\n pageTitle: 'Appointments',\n headerIcon: 'clock',\n emptyTitle: 'No appointments',\n emptyDescription: 'Book an appointment to get started.',\n pageName: 'AppointmentsPage',\n pagePath: '/appointments',\n ...bookingAppointmentView(),\n });\n\n const schedule = stdDisplay({\n entityName: 'Schedule',\n fields: scheduleFields,\n pageTitle: 'Schedule Overview',\n headerIcon: 'bar-chart-2',\n pageName: 'SchedulePage',\n pagePath: '/schedule',\n columns: 4,\n persistence: 'singleton',\n });\n\n const appName = params.appName ?? 'BookingSystemApp';\n\n\n\n const pages: ComposePage[] = [\n { name: 'ProvidersPage', path: '/providers', traits: ['ProviderBrowse', 'ProviderCreate', 'ProviderEdit', 'ProviderView', 'ProviderDelete'], isInitial: true },\n { name: 'BookPage', path: '/book', traits: ['BookingWizard'] },\n { name: 'AppointmentsPage', path: '/appointments', traits: ['AppointmentBrowse', 'AppointmentCreate', 'AppointmentEdit', 'AppointmentView', 'AppointmentDelete'] },\n { name: 'SchedulePage', path: '/schedule', traits: ['ScheduleDisplay'] },\n ];\n\n\n\n const schema = compose(\n\n\n [providers, booking, appointments, schedule],\n\n\n pages,\n\n\n [\n { from: 'ProviderBrowse', to: 'BookingWizard', event: { event: 'BOOK', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'BookingWizard', to: 'AppointmentBrowse', event: { event: 'CONFIRM', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n\n\n appName,\n\n\n );\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-devops-dashboard\n *\n * DevOps monitoring organism.\n * Composes: stdCircuitBreaker(ServiceNode) + stdDisplay(AlertMetric)\n * + stdList(LogEntry) + stdDisplay(SystemMetric)\n *\n * Pages: /services (initial), /alerts, /logs, /metrics\n *\n * @level organism\n * @family devops\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdCircuitBreaker } from '../atoms/std-circuit-breaker.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { stdList } from '../molecules/std-list.js';\nimport { devopsLogView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDevopsDashboardParams {\n serviceNodeFields?: EntityField[];\n alertMetricFields?: EntityField[];\n logEntryFields?: EntityField[];\n systemMetricFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultServiceNodeFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'status', type: 'string', required: true, values: ['healthy', 'degraded', 'down'] },\n { name: 'url', type: 'string' },\n { name: 'lastChecked', type: 'date' },\n];\n\nconst defaultAlertMetricFields: EntityField[] = [\n { name: 'severity', type: 'string', required: true },\n { name: 'message', type: 'string', required: true },\n { name: 'timestamp', type: 'string' },\n { name: 'source', type: 'string' },\n];\n\nconst defaultLogEntryFields: EntityField[] = [\n { name: 'level', type: 'string', required: true, values: ['debug', 'info', 'warn', 'error', 'fatal'] },\n { name: 'message', type: 'string', required: true },\n { name: 'timestamp', type: 'date' },\n { name: 'service', type: 'string' },\n];\n\nconst defaultSystemMetricFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'value', type: 'number', required: true },\n { name: 'unit', type: 'string' },\n { name: 'trend', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdDevopsDashboard(params: StdDevopsDashboardParams): OrbitalSchema {\n const serviceNodeFields = params.serviceNodeFields ?? defaultServiceNodeFields;\n const alertMetricFields = params.alertMetricFields ?? defaultAlertMetricFields;\n const logEntryFields = params.logEntryFields ?? defaultLogEntryFields;\n const systemMetricFields = params.systemMetricFields ?? defaultSystemMetricFields;\n\n const serviceNodeOrbital = stdCircuitBreaker({\n entityName: 'ServiceNode',\n fields: serviceNodeFields,\n headerIcon: 'server',\n });\n\n const alertMetricOrbital = stdDisplay({\n entityName: 'AlertMetric',\n fields: alertMetricFields,\n headerIcon: 'alert-triangle',\n pageTitle: 'Alerts',\n });\n\n const logEntryOrbital = stdList({\n entityName: 'LogEntry',\n fields: logEntryFields,\n headerIcon: 'file-text',\n pageTitle: 'Logs',\n emptyTitle: 'No log entries',\n emptyDescription: 'Logs will appear here when services report activity.',\n ...devopsLogView(),\n });\n\n const systemMetricOrbital = stdDisplay({\n entityName: 'SystemMetric',\n fields: systemMetricFields,\n headerIcon: 'activity',\n pageTitle: 'Metrics',\n });\n\n const pages: ComposePage[] = [\n { name: 'ServicesPage', path: '/services', traits: ['ServiceNodeCircuitBreaker'], isInitial: true },\n { name: 'AlertsPage', path: '/alerts', traits: ['AlertMetricDisplay'] },\n { name: 'LogsPage', path: '/logs', traits: ['LogEntryBrowse', 'LogEntryCreate', 'LogEntryEdit', 'LogEntryView', 'LogEntryDelete'] },\n { name: 'MetricsPage', path: '/metrics', traits: ['SystemMetricDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'DevOps Dashboard';\n\n\n const schema = compose([serviceNodeOrbital, alertMetricOrbital, logEntryOrbital, systemMetricOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-cicd-pipeline\n *\n * CI/CD pipeline organism.\n * Composes: stdList(Build) + stdDisplay(Stage) + stdAsync(Deployment)\n *\n * Pages: /builds (initial), /stages, /deploy\n *\n * @level organism\n * @family devops\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { stdAsync } from '../atoms/std-async.js';\nimport { cicdBuildView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCicdPipelineParams {\n buildFields?: EntityField[];\n stageFields?: EntityField[];\n deploymentFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultBuildFields: EntityField[] = [\n { name: 'branch', type: 'string', required: true },\n { name: 'status', type: 'string', required: true, values: ['pending', 'running', 'success', 'failed'] },\n { name: 'commit', type: 'string' },\n { name: 'triggeredBy', type: 'string' },\n];\n\nconst defaultStageFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'status', type: 'string', required: true },\n { name: 'duration', type: 'string' },\n { name: 'output', type: 'string' },\n];\n\nconst defaultDeploymentFields: EntityField[] = [\n { name: 'environment', type: 'string', required: true },\n { name: 'version', type: 'string', required: true },\n { name: 'status', type: 'string', values: ['pending', 'deploying', 'success', 'failed', 'rolled-back'] },\n { name: 'deployedAt', type: 'date' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdCicdPipeline(params: StdCicdPipelineParams): OrbitalSchema {\n const buildFields = params.buildFields ?? defaultBuildFields;\n const stageFields = params.stageFields ?? defaultStageFields;\n const deploymentFields = params.deploymentFields ?? defaultDeploymentFields;\n\n const buildOrbital = stdList({\n entityName: 'Build',\n fields: buildFields,\n headerIcon: 'package',\n pageTitle: 'Builds',\n emptyTitle: 'No builds yet',\n emptyDescription: 'Trigger a build to get started.',\n ...cicdBuildView(),\n });\n\n const stageOrbital = stdDisplay({\n entityName: 'Stage',\n fields: stageFields,\n headerIcon: 'layers',\n pageTitle: 'Stages',\n });\n\n const deploymentOrbital = stdAsync({\n entityName: 'Deployment',\n fields: deploymentFields,\n headerIcon: 'upload-cloud',\n loadingMessage: 'Deploying...',\n successMessage: 'Deployment successful.',\n errorMessage: 'Deployment failed.',\n });\n\n const pages: ComposePage[] = [\n { name: 'BuildsPage', path: '/builds', traits: ['BuildBrowse', 'BuildCreate', 'BuildEdit', 'BuildView', 'BuildDelete'], isInitial: true },\n { name: 'StagesPage', path: '/stages', traits: ['StageDisplay'] },\n { name: 'DeployPage', path: '/deploy', traits: ['DeploymentAsync'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'CI/CD Pipeline';\n\n\n const schema = compose([buildOrbital, stageOrbital, deploymentOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-api-gateway\n *\n * API gateway management organism.\n * Composes: stdList(Route) + stdCircuitBreaker(Backend) + stdDisplay(Analytics)\n *\n * Pages: /routes (initial), /backends, /analytics\n *\n * @level organism\n * @family devops\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdCircuitBreaker } from '../atoms/std-circuit-breaker.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { apiRouteView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdApiGatewayParams {\n routeFields?: EntityField[];\n backendFields?: EntityField[];\n analyticsFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultRouteFields: EntityField[] = [\n { name: 'path', type: 'string', required: true },\n { name: 'method', type: 'string', required: true, values: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'] },\n { name: 'backend', type: 'string', required: true },\n { name: 'rateLimit', type: 'number' },\n];\n\nconst defaultBackendFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'url', type: 'string', required: true },\n { name: 'status', type: 'string' },\n { name: 'latency', type: 'number' },\n];\n\nconst defaultAnalyticsFields: EntityField[] = [\n { name: 'totalRequests', type: 'number', required: true },\n { name: 'errorRate', type: 'number', required: true },\n { name: 'avgLatency', type: 'number' },\n { name: 'uptime', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdApiGateway(params: StdApiGatewayParams): OrbitalSchema {\n const routeFields = params.routeFields ?? defaultRouteFields;\n const backendFields = params.backendFields ?? defaultBackendFields;\n const analyticsFields = params.analyticsFields ?? defaultAnalyticsFields;\n\n const routeOrbital = stdList({\n entityName: 'Route',\n fields: routeFields,\n headerIcon: 'git-branch',\n pageTitle: 'Routes',\n emptyTitle: 'No routes configured',\n emptyDescription: 'Add API routes to your gateway.',\n ...apiRouteView(),\n });\n\n const backendOrbital = stdCircuitBreaker({\n entityName: 'Backend',\n fields: backendFields,\n headerIcon: 'server',\n });\n\n const analyticsOrbital = stdDisplay({\n entityName: 'Analytics',\n fields: analyticsFields,\n headerIcon: 'bar-chart-2',\n pageTitle: 'Analytics',\n });\n\n const pages: ComposePage[] = [\n { name: 'RoutesPage', path: '/routes', traits: ['RouteBrowse', 'RouteCreate', 'RouteEdit', 'RouteView', 'RouteDelete'], isInitial: true },\n { name: 'BackendsPage', path: '/backends', traits: ['BackendCircuitBreaker'] },\n { name: 'AnalyticsPage', path: '/analytics', traits: ['AnalyticsDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'API Gateway';\n\n\n const schema = compose([routeOrbital, backendOrbital, analyticsOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-rpg-game\n *\n * RPG game organism.\n * Composes: stdTurnBasedBattle(BattleState) + stdOverworld(WorldZone)\n * + stdInventory(RpgItem) + stdQuest(Mission)\n *\n * Pages: /battle, /world (initial), /inventory, /quests\n * Connections: ENCOUNTER_STARTED (world->battle), LOOT_DROPPED (battle->inventory),\n * QUEST_ACCEPTED (world->quests)\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdTurnBasedBattle } from '../molecules/std-turn-based-battle.js';\nimport { stdOverworld } from '../atoms/std-overworld.js';\nimport { stdInventory } from '../molecules/std-inventory.js';\nimport { stdQuest } from '../atoms/std-quest.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRpgGameParams {\n battleStateFields?: EntityField[];\n worldZoneFields?: EntityField[];\n rpgItemFields?: EntityField[];\n missionFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultBattleStateFields: EntityField[] = [\n { name: 'turn', type: 'number', default: 0 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'phase', type: 'string', default: 'setup' },\n { name: 'outcome', type: 'string' },\n];\n\nconst defaultWorldZoneFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'level', type: 'number', default: 1 },\n { name: 'explored', type: 'boolean', default: false },\n];\n\nconst defaultRpgItemFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'type', type: 'string', required: true },\n { name: 'quantity', type: 'number', default: 1 },\n { name: 'rarity', type: 'string', default: 'common' },\n];\n\nconst defaultMissionFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'status', type: 'string', default: 'available' },\n { name: 'reward', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdRpgGame(params: StdRpgGameParams): OrbitalSchema {\n const battleStateFields = params.battleStateFields ?? defaultBattleStateFields;\n const worldZoneFields = params.worldZoneFields ?? defaultWorldZoneFields;\n const rpgItemFields = params.rpgItemFields ?? defaultRpgItemFields;\n const missionFields = params.missionFields ?? defaultMissionFields;\n\n const battleOrbital = stdTurnBasedBattle({\n entityName: 'BattleState',\n fields: battleStateFields,\n gameTitle: 'Battle Arena',\n });\n\n const worldOrbital = stdOverworld({\n entityName: 'WorldZone',\n fields: worldZoneFields,\n worldTitle: 'World Map',\n headerIcon: 'map',\n });\n\n const inventoryOrbital = stdInventory({\n entityName: 'RpgItem',\n fields: rpgItemFields,\n headerIcon: 'briefcase',\n pageTitle: 'Inventory',\n });\n\n const questOrbital = stdQuest({\n entityName: 'Mission',\n fields: missionFields,\n headerIcon: 'flag',\n });\n\n const pages: ComposePage[] = [\n { name: 'BattlePage', path: '/battle', traits: ['BattleStateBattleFlow', 'BattleStateCombatLog'] },\n { name: 'WorldPage', path: '/world', traits: ['WorldZoneNavigation'], isInitial: true },\n { name: 'InventoryPage', path: '/inventory', traits: ['RpgItemBrowse', 'RpgItemAdd', 'RpgItemUse', 'RpgItemDrop'] },\n { name: 'QuestsPage', path: '/quests', traits: ['MissionTracking'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'WorldZoneNavigation',\n to: 'BattleStateBattleFlow',\n event: {\n event: 'ENCOUNTER_STARTED',\n payload: [{ name: 'zoneId', type: 'string', required: true }],\n },\n triggers: 'START',\n },\n {\n from: 'BattleStateBattleFlow',\n to: 'RpgItemBrowse',\n event: {\n event: 'LOOT_DROPPED',\n payload: [{ name: 'itemId', type: 'string', required: true }],\n },\n triggers: 'INIT',\n },\n {\n from: 'WorldZoneNavigation',\n to: 'MissionTracking',\n event: {\n event: 'QUEST_ACCEPTED',\n payload: [{ name: 'questId', type: 'string', required: true }],\n },\n triggers: 'INIT',\n },\n ];\n\n const appName = 'RPG Game';\n\n\n const schema = compose([battleOrbital, worldOrbital, inventoryOrbital, questOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-platformer-app\n *\n * Platformer game organism.\n * Composes: stdPlatformerGame(PlatLevel) + stdScoreBoard(PlatScore) + stdInventory(Collectible)\n *\n * Pages: /game (initial), /scores, /collectibles\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdPlatformerGame } from '../molecules/std-platformer-game.js';\nimport { stdScoreBoard } from '../atoms/std-score-board.js';\nimport { stdInventory } from '../molecules/std-inventory.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPlatformerAppParams {\n platLevelFields?: EntityField[];\n platScoreFields?: EntityField[];\n collectibleFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultPlatLevelFields: EntityField[] = [\n { name: 'level', type: 'number', default: 1 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'lives', type: 'number', default: 3 },\n { name: 'time', type: 'number', default: 0 },\n];\n\nconst defaultPlatScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'level', type: 'number' },\n { name: 'completedAt', type: 'string' },\n];\n\nconst defaultCollectibleFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'type', type: 'string', required: true },\n { name: 'quantity', type: 'number', default: 1 },\n { name: 'rarity', type: 'string', default: 'common' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdPlatformerApp(params: StdPlatformerAppParams): OrbitalSchema {\n const platLevelFields = params.platLevelFields ?? defaultPlatLevelFields;\n const platScoreFields = params.platScoreFields ?? defaultPlatScoreFields;\n const collectibleFields = params.collectibleFields ?? defaultCollectibleFields;\n\n const gameOrbital = stdPlatformerGame({\n entityName: 'PlatLevel',\n fields: platLevelFields,\n gameTitle: 'Platformer',\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'PlatScore',\n fields: platScoreFields,\n });\n\n const collectibleOrbital = stdInventory({\n entityName: 'Collectible',\n fields: collectibleFields,\n pageTitle: 'Collectibles',\n });\n\n const pages: ComposePage[] = [\n { name: 'GamePage', path: '/game', traits: ['PlatLevelPlatformerFlow', 'PlatLevelPlatformerCanvas'], isInitial: true },\n { name: 'ScoresPage', path: '/scores', traits: ['PlatScoreScoreBoard'] },\n { name: 'CollectiblesPage', path: '/collectibles', traits: ['CollectibleBrowse', 'CollectibleAdd', 'CollectibleUse', 'CollectibleDrop'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Platformer App';\n\n\n const schema = compose([gameOrbital, scoreOrbital, collectibleOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-puzzle-app\n *\n * Puzzle game organism.\n * Composes: stdPuzzleGame(PuzzleLevel) + stdScoreBoard(PuzzleScore)\n *\n * Pages: /puzzle (initial), /scores\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdPuzzleGame } from '../molecules/std-puzzle-game.js';\nimport { stdScoreBoard } from '../atoms/std-score-board.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPuzzleAppParams {\n puzzleLevelFields?: EntityField[];\n puzzleScoreFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultPuzzleLevelFields: EntityField[] = [\n { name: 'level', type: 'number', default: 1 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'moves', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultPuzzleScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'level', type: 'number' },\n { name: 'moves', type: 'number' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdPuzzleApp(params: StdPuzzleAppParams): OrbitalSchema {\n const puzzleLevelFields = params.puzzleLevelFields ?? defaultPuzzleLevelFields;\n const puzzleScoreFields = params.puzzleScoreFields ?? defaultPuzzleScoreFields;\n\n const puzzleOrbital = stdPuzzleGame({\n entityName: 'PuzzleLevel',\n fields: puzzleLevelFields,\n gameTitle: 'Puzzle Challenge',\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'PuzzleScore',\n fields: puzzleScoreFields,\n });\n\n const pages: ComposePage[] = [\n { name: 'PuzzlePage', path: '/puzzle', traits: ['PuzzleLevelPuzzleFlow', 'PuzzleLevelPuzzleScore'], isInitial: true },\n { name: 'ScoresPage', path: '/scores', traits: ['PuzzleScoreScoreBoard'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Puzzle App';\n\n\n const schema = compose([puzzleOrbital, scoreOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-strategy-game\n *\n * Strategy game organism.\n * Composes: stdTurnBasedBattle(ArmyBattle) + stdOverworld(Territory) + stdDisplay(Resource)\n *\n * Pages: /battle, /map (initial), /resources\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdTurnBasedBattle } from '../molecules/std-turn-based-battle.js';\nimport { stdOverworld } from '../atoms/std-overworld.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdStrategyGameParams {\n armyBattleFields?: EntityField[];\n territoryFields?: EntityField[];\n resourceFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultArmyBattleFields: EntityField[] = [\n { name: 'turn', type: 'number', default: 0 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'armySize', type: 'number', default: 10 },\n { name: 'morale', type: 'number', default: 100 },\n];\n\nconst defaultTerritoryFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'owner', type: 'string' },\n { name: 'defense', type: 'number', default: 0 },\n { name: 'explored', type: 'boolean', default: false },\n];\n\nconst defaultResourceFields: EntityField[] = [\n { name: 'gold', type: 'number', default: 0 },\n { name: 'food', type: 'number', default: 0 },\n { name: 'wood', type: 'number', default: 0 },\n { name: 'iron', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdStrategyGame(params: StdStrategyGameParams): OrbitalSchema {\n const armyBattleFields = params.armyBattleFields ?? defaultArmyBattleFields;\n const territoryFields = params.territoryFields ?? defaultTerritoryFields;\n const resourceFields = params.resourceFields ?? defaultResourceFields;\n\n const battleOrbital = stdTurnBasedBattle({\n entityName: 'ArmyBattle',\n fields: armyBattleFields,\n gameTitle: 'Army Battle',\n menuSubtitle: 'Turn-Based Strategy',\n });\n\n const overworldOrbital = stdOverworld({\n entityName: 'Territory',\n fields: territoryFields,\n worldTitle: 'Territory Map',\n headerIcon: 'map',\n });\n\n const resourceOrbital = stdDisplay({\n entityName: 'Resource',\n fields: resourceFields,\n headerIcon: 'database',\n pageTitle: 'Resources',\n });\n\n const pages: ComposePage[] = [\n { name: 'BattlePage', path: '/battle', traits: ['ArmyBattleBattleFlow', 'ArmyBattleCombatLog'] },\n { name: 'MapPage', path: '/map', traits: ['TerritoryNavigation'], isInitial: true },\n { name: 'ResourcesPage', path: '/resources', traits: ['ResourceDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Strategy Game';\n\n\n const schema = compose([battleOrbital, overworldOrbital, resourceOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-arcade-game\n *\n * Arcade game organism.\n * Composes: stdGameflow(ArcadeState) + stdGameCanvas2d(ArcadeCanvas)\n * + stdScoreBoard(ArcadeScore) + stdGameHud(ArcadeHud)\n *\n * Pages: /game (initial), /scores\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdGameflow } from '../atoms/std-gameflow.js';\nimport { stdGameCanvas2d } from '../atoms/std-game-canvas-2d.js';\nimport { stdScoreBoard } from '../atoms/std-score-board.js';\nimport { stdGameHud } from '../atoms/std-game-hud.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdArcadeGameParams {\n arcadeStateFields?: EntityField[];\n arcadeCanvasFields?: EntityField[];\n arcadeScoreFields?: EntityField[];\n arcadeHudFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultArcadeStateFields: EntityField[] = [\n { name: 'level', type: 'number', default: 1 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'lives', type: 'number', default: 3 },\n { name: 'highScore', type: 'number', default: 0 },\n];\n\nconst defaultArcadeCanvasFields: EntityField[] = [\n { name: 'width', type: 'number', default: 800 },\n { name: 'height', type: 'number', default: 600 },\n { name: 'fps', type: 'number', default: 60 },\n { name: 'running', type: 'boolean', default: false },\n];\n\nconst defaultArcadeScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'level', type: 'number' },\n { name: 'completedAt', type: 'string' },\n];\n\nconst defaultArcadeHudFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'lives', type: 'number', default: 3 },\n { name: 'level', type: 'number', default: 1 },\n { name: 'timer', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdArcadeGame(params: StdArcadeGameParams): OrbitalSchema {\n const arcadeStateFields = params.arcadeStateFields ?? defaultArcadeStateFields;\n const arcadeCanvasFields = params.arcadeCanvasFields ?? defaultArcadeCanvasFields;\n const arcadeScoreFields = params.arcadeScoreFields ?? defaultArcadeScoreFields;\n const arcadeHudFields = params.arcadeHudFields ?? defaultArcadeHudFields;\n\n const gameflowOrbital = stdGameflow({\n entityName: 'ArcadeState',\n fields: arcadeStateFields,\n gameTitle: 'Arcade',\n });\n\n const canvasOrbital = stdGameCanvas2d({\n entityName: 'ArcadeCanvas',\n fields: arcadeCanvasFields,\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'ArcadeScore',\n fields: arcadeScoreFields,\n });\n\n const hudOrbital = stdGameHud({\n entityName: 'ArcadeHud',\n fields: arcadeHudFields,\n });\n\n const pages: ComposePage[] = [\n { name: 'GamePage', path: '/game', traits: ['ArcadeStateGameflow'], isInitial: true },\n { name: 'CanvasPage', path: '/canvas', traits: ['ArcadeCanvasGameCanvas2d'] },\n { name: 'HudPage', path: '/hud', traits: ['ArcadeHudHud'] },\n { name: 'ScoresPage', path: '/scores', traits: ['ArcadeScoreScoreBoard'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Arcade Game';\n\n\n const schema = compose([gameflowOrbital, canvasOrbital, scoreOrbital, hudOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-coding-academy\n *\n * Coding academy organism.\n * Composes: stdSequencerGame(SeqChallenge) + stdBuilderGame(BuildChallenge)\n * + stdEventHandlerGame(EventChallenge) + stdDisplay(StudentProgress)\n *\n * Pages: /sequencer (initial), /builder, /events, /progress\n *\n * @level organism\n * @family educational\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdSequencerGame } from '../molecules/std-sequencer-game.js';\nimport { stdBuilderGame } from '../molecules/std-builder-game.js';\nimport { stdEventHandlerGame } from '../molecules/std-event-handler-game.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCodingAcademyParams {\n seqChallengeFields?: EntityField[];\n buildChallengeFields?: EntityField[];\n eventChallengeFields?: EntityField[];\n studentProgressFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultSeqChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'difficulty', type: 'string', default: 'easy' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultBuildChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'difficulty', type: 'string', default: 'easy' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultEventChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'difficulty', type: 'string', default: 'easy' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultStudentProgressFields: EntityField[] = [\n { name: 'totalLessons', type: 'number', default: 0 },\n { name: 'completedLessons', type: 'number', default: 0 },\n { name: 'averageScore', type: 'number', default: 0 },\n { name: 'streak', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdCodingAcademy(params: StdCodingAcademyParams): OrbitalSchema {\n const seqChallengeFields = params.seqChallengeFields ?? defaultSeqChallengeFields;\n const buildChallengeFields = params.buildChallengeFields ?? defaultBuildChallengeFields;\n const eventChallengeFields = params.eventChallengeFields ?? defaultEventChallengeFields;\n const studentProgressFields = params.studentProgressFields ?? defaultStudentProgressFields;\n\n const sequencerOrbital = stdSequencerGame({\n entityName: 'SeqChallenge',\n fields: seqChallengeFields,\n gameTitle: 'Sequencer Challenge',\n });\n\n const builderOrbital = stdBuilderGame({\n entityName: 'BuildChallenge',\n fields: buildChallengeFields,\n gameTitle: 'Builder Challenge',\n });\n\n const eventHandlerOrbital = stdEventHandlerGame({\n entityName: 'EventChallenge',\n fields: eventChallengeFields,\n gameTitle: 'Event Handler Challenge',\n });\n\n const progressOrbital = stdDisplay({\n entityName: 'StudentProgress',\n fields: studentProgressFields,\n headerIcon: 'trending-up',\n pageTitle: 'Progress',\n });\n\n const pages: ComposePage[] = [\n { name: 'SequencerPage', path: '/sequencer', traits: ['SeqChallengeSequencerGame'], isInitial: true },\n { name: 'BuilderPage', path: '/builder', traits: ['BuildChallengeBuilderGame'] },\n { name: 'EventsPage', path: '/events', traits: ['EventChallengeEventHandlerGame'] },\n { name: 'ProgressPage', path: '/progress', traits: ['StudentProgressDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Coding Academy';\n\n\n const schema = compose([sequencerOrbital, builderOrbital, eventHandlerOrbital, progressOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-stem-lab\n *\n * STEM lab organism.\n * Composes: stdSimulatorGame(Experiment) + stdClassifierGame(Classification)\n * + stdDisplay(LabResult)\n *\n * Pages: /simulator (initial), /classifier, /results\n *\n * @level organism\n * @family educational\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdSimulatorGame } from '../molecules/std-simulator-game.js';\nimport { stdClassifierGame } from '../molecules/std-classifier-game.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdStemLabParams {\n experimentFields?: EntityField[];\n classificationFields?: EntityField[];\n labResultFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultExperimentFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'hypothesis', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultClassificationFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'category', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'accuracy', type: 'number', default: 0 },\n];\n\nconst defaultLabResultFields: EntityField[] = [\n { name: 'experimentCount', type: 'number', default: 0 },\n { name: 'avgAccuracy', type: 'number', default: 0 },\n { name: 'totalScore', type: 'number', default: 0 },\n { name: 'grade', type: 'string', default: 'N/A' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdStemLab(params: StdStemLabParams): OrbitalSchema {\n const experimentFields = params.experimentFields ?? defaultExperimentFields;\n const classificationFields = params.classificationFields ?? defaultClassificationFields;\n const labResultFields = params.labResultFields ?? defaultLabResultFields;\n\n const simulatorOrbital = stdSimulatorGame({\n entityName: 'Experiment',\n fields: experimentFields,\n gameTitle: 'Experiment Simulator',\n });\n\n const classifierOrbital = stdClassifierGame({\n entityName: 'Classification',\n fields: classificationFields,\n gameTitle: 'Classification Lab',\n });\n\n const resultsOrbital = stdDisplay({\n entityName: 'LabResult',\n fields: labResultFields,\n headerIcon: 'clipboard',\n pageTitle: 'Lab Results',\n });\n\n const pages: ComposePage[] = [\n { name: 'SimulatorPage', path: '/simulator', traits: ['ExperimentSimulatorGame'], isInitial: true },\n { name: 'ClassifierPage', path: '/classifier', traits: ['ClassificationClassifierGame'] },\n { name: 'ResultsPage', path: '/results', traits: ['LabResultDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'STEM Lab';\n\n\n const schema = compose([simulatorOrbital, classifierOrbital, resultsOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-logic-training\n *\n * Logic training organism.\n * Composes: stdDebuggerGame(DebugChallenge) + stdNegotiatorGame(NegotiateChallenge)\n * + stdScoreBoard(TrainingScore)\n *\n * Pages: /debugger (initial), /negotiator, /scores\n *\n * @level organism\n * @family educational\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdDebuggerGame } from '../molecules/std-debugger-game.js';\nimport { stdNegotiatorGame } from '../molecules/std-negotiator-game.js';\nimport { stdScoreBoard } from '../atoms/std-score-board.js';\nimport { wrapInGameShell } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdLogicTrainingParams {\n debugChallengeFields?: EntityField[];\n negotiateChallengeFields?: EntityField[];\n trainingScoreFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultDebugChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'bugType', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'solved', type: 'boolean', default: false },\n];\n\nconst defaultNegotiateChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'scenario', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'outcome', type: 'string' },\n];\n\nconst defaultTrainingScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'category', type: 'string' },\n { name: 'completedAt', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdLogicTraining(params: StdLogicTrainingParams): OrbitalSchema {\n const debugChallengeFields = params.debugChallengeFields ?? defaultDebugChallengeFields;\n const negotiateChallengeFields = params.negotiateChallengeFields ?? defaultNegotiateChallengeFields;\n const trainingScoreFields = params.trainingScoreFields ?? defaultTrainingScoreFields;\n\n const debuggerOrbital = stdDebuggerGame({\n entityName: 'DebugChallenge',\n fields: debugChallengeFields,\n gameTitle: 'Debug Challenge',\n });\n\n const negotiatorOrbital = stdNegotiatorGame({\n entityName: 'NegotiateChallenge',\n fields: negotiateChallengeFields,\n gameTitle: 'Negotiate Challenge',\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'TrainingScore',\n fields: trainingScoreFields,\n });\n\n const pages: ComposePage[] = [\n { name: 'DebuggerPage', path: '/debugger', traits: ['DebugChallengeDebuggerGame'], isInitial: true },\n { name: 'NegotiatorPage', path: '/negotiator', traits: ['NegotiateChallengeNegotiatorGame'] },\n { name: 'ScoresPage', path: '/scores', traits: ['TrainingScoreScoreBoard'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Logic Training';\n\n\n const schema = compose([debuggerOrbital, negotiatorOrbital, scoreOrbital], pages, connections, appName);\n\n\n return wrapInGameShell(schema, appName);\n}\n","/**\n * std-service-oauth\n *\n * OAuth service integration behavior: authorize, token exchange, refresh.\n * Wraps the `oauth` integration with a multi-step authorization flow.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceOauthParams {\n /** Entity name in PascalCase (default: \"AuthSession\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, oauth fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** When true, INIT renders the provider picker to main. Default true. */\n standalone?: boolean;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface OauthConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceOauthParams): OauthConfig {\n const entityName = params.entityName ?? 'AuthSession';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'provider', type: 'string', default: 'google' },\n { name: 'authUrl', type: 'string' },\n { name: 'accessToken', type: 'string' },\n { name: 'refreshToken', type: 'string' },\n { name: 'authStatus', type: 'string', default: 'unauthenticated' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Oauth`,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: OauthConfig): Entity {\n const oauthFields: EntityField[] = [\n { name: 'provider', type: 'string' as const, default: 'google' },\n { name: 'authUrl', type: 'string' as const, default: '' },\n { name: 'accessToken', type: 'string' as const, default: '' },\n { name: 'refreshToken', type: 'string' as const, default: '' },\n { name: 'authStatus', type: 'string' as const, default: 'unauthenticated' },\n { name: 'error', type: 'string' as const, default: '' },\n ];\n\n const oauthFieldNames = new Set(oauthFields.map(f => f.name));\n const extraFields = c.fields.filter(f => f.name !== 'id' && !oauthFieldNames.has(f.name));\n const allFields = ensureIdField([...oauthFields, ...extraFields]);\n\n return makeEntity({ name: c.entityName, fields: allFields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: OauthConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n // unauthenticated: provider picker + login button\n const unauthenticatedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'lock', size: 'lg' },\n { type: 'typography', content: 'Sign In', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'select', label: 'Provider', field: 'provider', bind: '@entity.provider',\n options: [\n { label: 'Google', value: 'google' },\n { label: 'GitHub', value: 'github' },\n { label: 'Microsoft', value: 'microsoft' },\n ],\n },\n { type: 'button', label: 'Login', event: 'LOGIN', variant: 'primary', icon: 'log-in' },\n ],\n };\n\n // authorizing: loading spinner\n const authorizingUI = {\n type: 'loading-state', title: 'Authorizing...', message: 'Redirecting to provider for authorization.',\n };\n\n // authorizing with auth URL: show URL + code input\n const authUrlUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'external-link', size: 'lg' },\n { type: 'typography', content: 'Authorization Required', variant: 'h2' },\n { type: 'typography', content: '@entity.authUrl', variant: 'body', color: 'muted' },\n { type: 'input', label: 'Authorization Code', field: 'code', placeholder: 'Paste authorization code here' },\n { type: 'button', label: 'Submit', event: 'CALLBACK', variant: 'primary', icon: 'check' },\n ],\n };\n\n // authenticated: success with refresh + logout\n const authenticatedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Authenticated successfully' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Refresh Token', event: 'REFRESH', variant: 'outline', icon: 'refresh-cw' },\n { type: 'button', label: 'Logout', event: 'LOGOUT', variant: 'ghost', icon: 'log-out' },\n ],\n },\n ],\n };\n\n // refreshing: loading spinner\n const refreshingUI = {\n type: 'loading-state', title: 'Refreshing token...', message: 'Obtaining a new access token.',\n };\n\n // error: error display with retry\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Authentication Failed', message: '@entity.error', onRetry: 'RETRY' },\n { type: 'button', label: 'Try Again', event: 'RETRY', variant: 'primary', icon: 'rotate-ccw' },\n ],\n };\n\n // ---- Transitions ----\n\n const initEffects: unknown[] = [['fetch', entityName]];\n if (standalone) {\n initEffects.push(['render-ui', 'main', unauthenticatedUI]);\n }\n\n const transitions: unknown[] = [\n // INIT: unauthenticated -> unauthenticated (render provider picker)\n {\n from: 'unauthenticated', to: 'unauthenticated', event: 'INIT',\n effects: initEffects,\n },\n // LOGIN: unauthenticated -> authorizing (call oauth authorize)\n {\n from: 'unauthenticated', to: 'authorizing', event: 'LOGIN',\n effects: [\n ['render-ui', 'main', authorizingUI],\n ['call-service', 'oauth', 'authorize', { provider: '@entity.provider', scopes: ['openid', 'email'] }],\n ],\n },\n // AUTH_URL_RECEIVED: authorizing -> authorizing (show auth URL + code input)\n {\n from: 'authorizing', to: 'authorizing', event: 'AUTH_URL_RECEIVED',\n effects: [\n ['set', '@entity.authUrl', '@payload.authUrl'],\n ['render-ui', 'main', authUrlUI],\n ],\n },\n // CALLBACK: authorizing -> authenticated (exchange code for tokens)\n {\n from: 'authorizing', to: 'authenticated', event: 'CALLBACK',\n effects: [\n ['call-service', 'oauth', 'token', { code: '@payload.code' }],\n ['render-ui', 'main', authenticatedUI],\n ],\n },\n // TOKEN_RECEIVED: authenticated -> authenticated (set tokens)\n {\n from: 'authenticated', to: 'authenticated', event: 'TOKEN_RECEIVED',\n effects: [\n ['set', '@entity.accessToken', '@payload.accessToken'],\n ['set', '@entity.refreshToken', '@payload.refreshToken'],\n ['set', '@entity.authStatus', 'authenticated'],\n ['render-ui', 'main', authenticatedUI],\n ],\n },\n // REFRESH: authenticated -> refreshing (call oauth refresh)\n {\n from: 'authenticated', to: 'refreshing', event: 'REFRESH',\n effects: [\n ['render-ui', 'main', refreshingUI],\n ['call-service', 'oauth', 'refresh', { refreshToken: '@entity.refreshToken' }],\n ],\n },\n // TOKEN_REFRESHED: refreshing -> authenticated (update access token)\n {\n from: 'refreshing', to: 'authenticated', event: 'TOKEN_REFRESHED',\n effects: [\n ['set', '@entity.accessToken', '@payload.accessToken'],\n ['render-ui', 'main', authenticatedUI],\n ],\n },\n // LOGOUT: authenticated -> unauthenticated (clear session)\n {\n from: 'authenticated', to: 'unauthenticated', event: 'LOGOUT',\n effects: [\n ['set', '@entity.authStatus', 'unauthenticated'],\n ['render-ui', 'main', unauthenticatedUI],\n ],\n },\n // FAILED: authorizing -> error\n {\n from: 'authorizing', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // FAILED: refreshing -> error\n {\n from: 'refreshing', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> unauthenticated\n {\n from: 'error', to: 'unauthenticated', event: 'RETRY',\n effects: [['render-ui', 'main', unauthenticatedUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'unauthenticated', isInitial: true },\n { name: 'authorizing' },\n { name: 'authenticated' },\n { name: 'refreshing' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LOGIN', name: 'Login' },\n { key: 'AUTH_URL_RECEIVED', name: 'Auth URL Received', payload: [\n { name: 'authUrl', type: 'string', required: true },\n ]},\n { key: 'CALLBACK', name: 'Authorization Callback', payload: [\n { name: 'code', type: 'string', required: true },\n ]},\n { key: 'TOKEN_RECEIVED', name: 'Token Received', payload: [\n { name: 'accessToken', type: 'string', required: true },\n { name: 'refreshToken', type: 'string', required: true },\n ]},\n { key: 'REFRESH', name: 'Refresh Token' },\n { key: 'TOKEN_REFRESHED', name: 'Token Refreshed', payload: [\n { name: 'accessToken', type: 'string', required: true },\n ]},\n { key: 'LOGOUT', name: 'Logout' },\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: OauthConfig): Page | undefined {\n if (!c.standalone) return undefined;\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceOauthEntity(params: StdServiceOauthParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceOauthTrait(params: StdServiceOauthParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceOauthPage(params: StdServiceOauthParams = {}): Page | undefined {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceOauth(params: StdServiceOauthParams = {}): OrbitalDefinition {\n const c = resolve(params);\n const pages: Page[] = [];\n const page = buildPage(c);\n if (page) pages.push(page);\n\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n pages,\n );\n}\n","/**\n * std-service-marketplace\n *\n * Service marketplace organism. Composes molecules and atoms via compose:\n * - stdList(Product): product catalog with CRUD\n * - stdServiceOauth(AuthSession): OAuth login with standalone provider picker\n * - stdServicePaymentFlow(OrderPayment): Stripe payment + email receipt\n * - stdList(Order): order history with CRUD\n *\n * Cross-orbital connections:\n * - CHECKOUT: ProductBrowse -> OrderPaymentPayment\n *\n * @level organism\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdServiceOauth } from '../atoms/std-service-oauth.js';\nimport { stdServicePaymentFlow } from '../molecules/std-service-payment-flow.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceMarketplaceParams {\n appName?: string;\n productFields?: EntityField[];\n orderFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_PRODUCT_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'price', type: 'number', required: true },\n { name: 'category', type: 'string' },\n { name: 'inStock', type: 'boolean', default: true },\n];\n\nconst DEFAULT_ORDER_FIELDS: EntityField[] = [\n { name: 'productName', type: 'string', required: true },\n { name: 'amount', type: 'number', required: true },\n { name: 'paymentStatus', type: 'string', default: 'pending' },\n { name: 'orderDate', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdServiceMarketplace(params: StdServiceMarketplaceParams = {}): OrbitalSchema {\n const productFields = params.productFields ?? DEFAULT_PRODUCT_FIELDS;\n const orderFields = params.orderFields ?? DEFAULT_ORDER_FIELDS;\n\n const products = stdList({\n entityName: 'Product',\n fields: productFields,\n pageTitle: 'Products',\n headerIcon: 'shopping-bag',\n emptyTitle: 'No products yet',\n emptyDescription: 'Add products to build your catalog.',\n pageName: 'ProductsPage',\n pagePath: '/products',\n isInitial: true,\n });\n\n const login = stdServiceOauth({\n standalone: true,\n pageName: 'LoginPage',\n pagePath: '/login',\n });\n\n const checkout = stdServicePaymentFlow({\n pageName: 'CheckoutPage',\n pagePath: '/checkout',\n });\n\n const orders = stdList({\n entityName: 'Order',\n fields: orderFields,\n pageTitle: 'Orders',\n headerIcon: 'list',\n emptyTitle: 'No orders yet',\n emptyDescription: 'Orders will appear here after checkout.',\n pageName: 'OrdersPage',\n pagePath: '/orders',\n });\n\n const appName = params.appName ?? 'ServiceMarketplace';\n\n const pages: ComposePage[] = [\n { name: 'ProductsPage', path: '/products', traits: ['ProductBrowse', 'ProductCreate', 'ProductEdit', 'ProductView', 'ProductDelete'], isInitial: true },\n { name: 'LoginPage', path: '/login', traits: ['AuthSessionOauth'] },\n { name: 'CheckoutPage', path: '/checkout', traits: ['OrderPaymentPayment', 'OrderPaymentReceipt'] },\n { name: 'OrdersPage', path: '/orders', traits: ['OrderBrowse', 'OrderCreate', 'OrderEdit', 'OrderView', 'OrderDelete'] },\n ];\n\n const connections: ComposeConnection[] = [\n { from: 'ProductBrowse', event: { event: 'CHECKOUT', payload: [{ name: 'id', type: 'string', required: true }] }, to: 'OrderPaymentPayment' },\n ];\n\n const schema = compose(\n [products, login, checkout, orders],\n pages,\n connections,\n appName,\n );\n\n // Remove orbital-level service declarations for platform services.\n // The validator loads services-registry.json and treats those as globally known.\n // Only custom services (not in the registry) should be declared on orbitals.\n if (schema.orbitals) {\n for (const orbital of schema.orbitals) {\n const o = orbital as unknown as Record<string, unknown>;\n const services = (o.services ?? []) as Array<{ name: string }>;\n o.services = services.filter(s => s.name.startsWith('custom-'));\n }\n }\n\n const navItems = buildNavItems([\n { name: 'Products', path: '/products' },\n { name: 'Login', path: '/login' },\n { name: 'Checkout', path: '/checkout' },\n { name: 'Orders', path: '/orders' },\n ]);\n\n return wrapInDashboardLayout(schema, appName, navItems);\n}\n","/**\n * std-service-redis\n *\n * Redis cache integration behavior: get, set, delete with TTL support.\n * Wraps the `redis` service with separate events for each operation.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceRedisParams {\n /** Entity name in PascalCase (default: \"CacheEntry\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, redis fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** When true, INIT renders the cache form to main. Default true. */\n standalone?: boolean;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface RedisConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceRedisParams): RedisConfig {\n const entityName = params.entityName ?? 'CacheEntry';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'key', type: 'string' },\n { name: 'value', type: 'string' },\n { name: 'ttl', type: 'number', default: 3600 },\n { name: 'result', type: 'string' },\n { name: 'redisStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Redis`,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: RedisConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: RedisConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'database', size: 'lg' },\n { type: 'typography', content: 'Redis Cache', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'input', label: 'Key', bind: '@entity.key', placeholder: 'cache-key' },\n { type: 'input', label: 'Value', bind: '@entity.value', placeholder: 'cache-value' },\n { type: 'input', label: 'TTL (seconds)', bind: '@entity.ttl', inputType: 'number', placeholder: '3600' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Get', event: 'GET_KEY', variant: 'primary', icon: 'download' },\n { type: 'button', label: 'Set', event: 'SET_KEY', variant: 'primary', icon: 'upload' },\n { type: 'button', label: 'Delete', event: 'DELETE_KEY', variant: 'destructive', icon: 'trash-2' },\n ],\n },\n ],\n };\n\n const executingUI = {\n type: 'loading-state', title: 'Executing...', message: 'Running redis operation...',\n };\n\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Operation complete' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.result' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'error-state', title: 'Redis Error', message: '@entity.error', onRetry: 'RESET',\n };\n\n // ---- Transitions ----\n\n const initEffects: unknown[] = [['fetch', entityName]];\n if (standalone) {\n initEffects.push(['render-ui', 'main', idleUI]);\n }\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch + render if standalone)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: initEffects,\n },\n // GET_KEY: idle -> executing (call redis get)\n {\n from: 'idle', to: 'executing', event: 'GET_KEY',\n effects: [\n ['render-ui', 'main', executingUI],\n ['call-service', 'redis', 'get', { key: '@entity.key' }],\n ],\n },\n // SET_KEY: idle -> executing (call redis set)\n {\n from: 'idle', to: 'executing', event: 'SET_KEY',\n effects: [\n ['render-ui', 'main', executingUI],\n ['call-service', 'redis', 'set', { key: '@entity.key', value: '@entity.value', ttl: '@entity.ttl' }],\n ],\n },\n // DELETE_KEY: idle -> executing (call redis delete)\n {\n from: 'idle', to: 'executing', event: 'DELETE_KEY',\n effects: [\n ['render-ui', 'main', executingUI],\n ['call-service', 'redis', 'delete', { key: '@entity.key' }],\n ],\n },\n // EXECUTED: executing -> complete (store result)\n {\n from: 'executing', to: 'complete', event: 'EXECUTED',\n effects: [\n ['set', '@entity.result', '@payload.data'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: executing -> error\n {\n from: 'executing', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'executing' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'GET_KEY', name: 'Get Key' },\n { key: 'SET_KEY', name: 'Set Key' },\n { key: 'DELETE_KEY', name: 'Delete Key' },\n { key: 'EXECUTED', name: 'Executed', payload: [\n { name: 'data', type: 'string', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: RedisConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceRedisEntity(params: StdServiceRedisParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceRedisTrait(params: StdServiceRedisParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceRedisPage(params: StdServiceRedisParams = {}): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceRedis(params: StdServiceRedisParams = {}): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-service-storage\n *\n * Storage service integration behavior: upload, download, list, delete files.\n * Wraps the `storage` service with separate events for each operation.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceStorageParams {\n /** Entity name in PascalCase (default: \"StorageFile\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, storage fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** When true, INIT renders the storage form to main. Default true. */\n standalone?: boolean;\n /** Default bucket name (default: \"uploads\") */\n defaultBucket?: string;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface StorageConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n standalone: boolean;\n defaultBucket: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceStorageParams): StorageConfig {\n const entityName = params.entityName ?? 'StorageFile';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'bucket', type: 'string', default: params.defaultBucket ?? 'uploads' },\n { name: 'fileKey', type: 'string' },\n { name: 'prefix', type: 'string' },\n { name: 'content', type: 'string' },\n { name: 'storageStatus', type: 'string', default: 'idle' },\n { name: 'result', type: 'string' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Storage`,\n standalone: params.standalone ?? true,\n defaultBucket: params.defaultBucket ?? 'uploads',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: StorageConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: StorageConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n const idleChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'hard-drive', size: 'lg' },\n { type: 'typography', content: `${entityName} Storage`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n ];\n\n if (standalone) {\n idleChildren.push(\n { type: 'input', label: 'Bucket', bind: '@entity.bucket', placeholder: 'bucket-name' },\n { type: 'input', label: 'File Key', bind: '@entity.fileKey', placeholder: 'path/to/file.txt' },\n { type: 'input', label: 'Prefix', bind: '@entity.prefix', placeholder: 'path/prefix/' },\n { type: 'textarea', label: 'Content', bind: '@entity.content', placeholder: 'File content...' },\n );\n }\n\n idleChildren.push(\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Upload', event: 'UPLOAD_FILE', variant: 'primary', icon: 'upload' },\n { type: 'button', label: 'Download', event: 'DOWNLOAD_FILE', variant: 'secondary', icon: 'download' },\n { type: 'button', label: 'List', event: 'LIST_FILES', variant: 'secondary', icon: 'list' },\n { type: 'button', label: 'Delete', event: 'DELETE_FILE', variant: 'destructive', icon: 'trash-2' },\n ],\n },\n );\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: idleChildren,\n };\n\n const executingUI = {\n type: 'loading-state', title: 'Processing...', message: `Executing storage operation on ${entityName.toLowerCase()}...`,\n };\n\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Operation completed successfully' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.result' },\n { type: 'button', label: 'Back', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Operation Failed', message: '@entity.error' },\n { type: 'button', label: 'Back', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // ---- Transitions ----\n\n const initEffects: unknown[] = [['fetch', entityName]];\n if (standalone) {\n initEffects.push(['render-ui', 'main', idleUI]);\n }\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch + render form)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: initEffects,\n },\n // UPLOAD_FILE: idle -> executing\n {\n from: 'idle', to: 'executing', event: 'UPLOAD_FILE',\n effects: [\n ['render-ui', 'main', executingUI],\n ['call-service', 'storage', 'upload', {\n bucket: '@entity.bucket',\n key: '@entity.fileKey',\n content: '@entity.content',\n }],\n ],\n },\n // DOWNLOAD_FILE: idle -> executing\n {\n from: 'idle', to: 'executing', event: 'DOWNLOAD_FILE',\n effects: [\n ['render-ui', 'main', executingUI],\n ['call-service', 'storage', 'download', {\n bucket: '@entity.bucket',\n key: '@entity.fileKey',\n }],\n ],\n },\n // LIST_FILES: idle -> executing\n {\n from: 'idle', to: 'executing', event: 'LIST_FILES',\n effects: [\n ['render-ui', 'main', executingUI],\n ['call-service', 'storage', 'list', {\n bucket: '@entity.bucket',\n prefix: '@entity.prefix',\n }],\n ],\n },\n // DELETE_FILE: idle -> executing\n {\n from: 'idle', to: 'executing', event: 'DELETE_FILE',\n effects: [\n ['render-ui', 'main', executingUI],\n ['call-service', 'storage', 'delete', {\n bucket: '@entity.bucket',\n key: '@entity.fileKey',\n }],\n ],\n },\n // EXECUTED: executing -> complete (set result)\n {\n from: 'executing', to: 'complete', event: 'EXECUTED',\n effects: [\n ['set', '@entity.result', '@payload.data'],\n ['set', '@entity.storageStatus', 'complete'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: executing -> error (set error)\n {\n from: 'executing', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.storageStatus', 'error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.storageStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.storageStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'executing' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'UPLOAD_FILE', name: 'Upload File' },\n { key: 'DOWNLOAD_FILE', name: 'Download File' },\n { key: 'LIST_FILES', name: 'List Files' },\n { key: 'DELETE_FILE', name: 'Delete File' },\n { key: 'EXECUTED', name: 'Executed', payload: [\n { name: 'data', type: 'string', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: StorageConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceStorageEntity(params: StdServiceStorageParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceStorageTrait(params: StdServiceStorageParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceStoragePage(params: StdServiceStorageParams = {}): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceStorage(params: StdServiceStorageParams = {}): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-service-custom-bearer\n *\n * Custom REST API behavior with Bearer token authentication.\n * Tests the schema-level service declaration pattern with bearer auth.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceCustomBearerParams {\n entityName?: string;\n fields?: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n standalone?: boolean;\n\n /** The custom API base URL (required) */\n baseUrl: string;\n\n /** Environment variable holding the bearer token */\n secretEnvVar?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CustomBearerConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n standalone: boolean;\n baseUrl: string;\n secretEnvVar: string;\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceCustomBearerParams): CustomBearerConfig {\n const entityName = params.entityName ?? 'ApiCall';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'endpoint', type: 'string' },\n { name: 'method', type: 'string', default: 'GET' },\n { name: 'requestBody', type: 'string' },\n { name: 'responseData', type: 'string' },\n { name: 'statusCode', type: 'number', default: 0 },\n { name: 'callStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n standalone: params.standalone ?? true,\n baseUrl: params.baseUrl,\n secretEnvVar: params.secretEnvVar ?? 'CUSTOM_BEARER_TOKEN',\n traitName: `${entityName}CustomBearer`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CustomBearerConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: CustomBearerConfig): Trait {\n const { entityName, standalone } = c;\n\n // idle: API tester form (only when standalone)\n const idleChildren: unknown[] = [\n { type: 'icon', name: 'shield', size: 'lg' },\n { type: 'typography', content: 'Bearer API Tester', variant: 'h2' },\n {\n type: 'input',\n field: 'endpoint',\n placeholder: '/users',\n bind: '@entity.endpoint',\n },\n {\n type: 'select',\n field: 'method',\n bind: '@entity.method',\n options: [\n { label: 'GET', value: 'GET' },\n { label: 'POST', value: 'POST' },\n { label: 'PUT', value: 'PUT' },\n { label: 'DELETE', value: 'DELETE' },\n ],\n },\n {\n type: 'textarea',\n field: 'requestBody',\n placeholder: 'JSON request body',\n bind: '@entity.requestBody',\n },\n { type: 'button', label: 'Send Request', event: 'CALL_API', variant: 'primary', icon: 'send' },\n ];\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: idleChildren,\n };\n\n // calling: loading state\n const callingUI = {\n type: 'loading-state', title: 'Calling API...', message: `Sending request to ${entityName.toLowerCase()} endpoint...`,\n };\n\n // complete: response viewer\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Response', variant: 'h2' },\n { type: 'badge', content: '@entity.statusCode', variant: 'info' },\n { type: 'code', content: '@entity.responseData', language: 'json' },\n { type: 'button', label: 'New Request', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // error: error state\n const errorUI = {\n type: 'error-state', title: 'Request Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n const initEffects: unknown[] = [['fetch', entityName]];\n if (standalone) {\n initEffects.push(['render-ui', 'main', idleUI]);\n }\n\n const transitions: unknown[] = [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: initEffects,\n },\n // CALL_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_API',\n effects: [\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-bearer-api', 'execute', {\n endpoint: '@entity.endpoint',\n method: '@entity.method',\n body: '@entity.requestBody',\n }],\n ],\n },\n // API_RESPONSE: calling -> complete\n {\n from: 'calling', to: 'complete', event: 'API_RESPONSE',\n effects: [\n ['set', '@entity.responseData', '@payload.data'],\n ['set', '@entity.statusCode', '@payload.statusCode'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: calling -> error\n {\n from: 'calling', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'calling' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CALL_API', name: 'Call API' },\n { key: 'API_RESPONSE', name: 'API Response', payload: [\n { name: 'data', type: 'string', required: true },\n { name: 'statusCode', type: 'number', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: CustomBearerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceCustomBearerEntity(params: StdServiceCustomBearerParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceCustomBearerTrait(params: StdServiceCustomBearerParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceCustomBearerPage(params: StdServiceCustomBearerParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceCustomBearer(params: StdServiceCustomBearerParams): OrbitalDefinition {\n const c = resolve(params);\n const orbital = makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n // Attach custom service declaration with bearer auth\n return {\n ...orbital,\n services: [{\n name: 'custom-bearer-api',\n type: 'rest' as const,\n baseUrl: c.baseUrl,\n auth: {\n type: 'bearer' as const,\n secretEnv: c.secretEnvVar,\n },\n }],\n };\n}\n","/**\n * std-service-research-assistant\n *\n * Content research assistant organism. Composes service atoms/molecules via compose:\n * - stdServiceContentPipeline(Research): YouTube search + LLM summarization\n * - stdServiceRedis(CacheEntry): Redis cache management (standalone)\n * - stdServiceStorage(Report): saving research reports to storage (standalone)\n * - stdServiceCustomBearer(KnowledgeQuery): custom knowledge API queries (standalone)\n *\n * Cross-orbital connections:\n * (none - each page operates independently, user navigates via dashboard nav)\n *\n * @level organism\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposePage } from '@almadar/core/builders';\nimport { stdServiceContentPipeline } from '../molecules/std-service-content-pipeline.js';\nimport { stdServiceRedis } from '../atoms/std-service-redis.js';\nimport { stdServiceStorage } from '../atoms/std-service-storage.js';\nimport { stdServiceCustomBearer } from '../atoms/std-service-custom-bearer.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceResearchAssistantParams {\n appName?: string;\n researchFields?: EntityField[];\n cacheFields?: EntityField[];\n storageFields?: EntityField[];\n}\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdServiceResearchAssistant(params: StdServiceResearchAssistantParams): OrbitalSchema {\n const research = stdServiceContentPipeline({\n entityName: 'Research',\n fields: params.researchFields,\n pageName: 'ResearchPage',\n pagePath: '/research',\n isInitial: true,\n });\n\n const cache = stdServiceRedis({\n entityName: 'CacheEntry',\n fields: params.cacheFields,\n standalone: true,\n pageName: 'CachePage',\n pagePath: '/cache',\n });\n\n const reports = stdServiceStorage({\n entityName: 'Report',\n fields: params.storageFields,\n standalone: true,\n pageName: 'ReportsPage',\n pagePath: '/reports',\n });\n\n const knowledge = stdServiceCustomBearer({\n entityName: 'KnowledgeQuery',\n standalone: true,\n baseUrl: 'https://api.knowledge-base.example.com',\n pageName: 'KnowledgePage',\n pagePath: '/knowledge',\n });\n\n const appName = params.appName ?? 'ResearchAssistant';\n\n const pages: ComposePage[] = [\n { name: 'ResearchPage', path: '/research', traits: ['ResearchPipeline'], isInitial: true },\n { name: 'CachePage', path: '/cache', traits: ['CacheEntryRedis'] },\n { name: 'ReportsPage', path: '/reports', traits: ['ReportStorage'] },\n { name: 'KnowledgePage', path: '/knowledge', traits: ['KnowledgeQueryCustomBearer'] },\n ];\n\n const schema = compose(\n [research, cache, reports, knowledge],\n pages,\n [],\n appName,\n );\n\n // Strip all orbital-level service declarations to avoid ORB_GEN_DUPLICATE.\n // Platform services are validated via services-registry.json (loaded by the compiler).\n // Custom services must be declared at schema level.\n if (schema.orbitals) {\n for (const orbital of schema.orbitals) {\n delete (orbital as unknown as Record<string, unknown>).services;\n }\n }\n (schema as unknown as Record<string, unknown>).services = [\n { name: 'custom-bearer-api', type: 'rest', baseUrl: 'https://api.knowledge-base.example.com', auth: { type: 'bearer', secretEnv: 'CUSTOM_BEARER_TOKEN' } },\n ];\n\n const navItems = buildNavItems(pages, {\n research: 'search',\n cache: 'database',\n reports: 'file-text',\n knowledge: 'book-open',\n });\n\n return wrapInDashboardLayout(schema, appName, navItems);\n}\n","/**\n * std-iot-dashboard\n *\n * IoT dashboard organism.\n * Composes: stdDisplay(SensorReading) + stdList(Device) + stdCircuitBreaker(DeviceAlert)\n *\n * Pages: /sensors (initial), /devices, /alerts\n *\n * @level organism\n * @family iot\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdCircuitBreaker } from '../atoms/std-circuit-breaker.js';\nimport { iotDeviceView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdIotDashboardParams {\n sensorReadingFields?: EntityField[];\n deviceFields?: EntityField[];\n deviceAlertFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultSensorReadingFields: EntityField[] = [\n { name: 'sensorId', type: 'string', required: true },\n { name: 'value', type: 'number', required: true },\n { name: 'unit', type: 'string' },\n { name: 'timestamp', type: 'string' },\n];\n\nconst defaultDeviceFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'type', type: 'string', required: true },\n { name: 'status', type: 'string', default: 'offline', values: ['online', 'offline', 'maintenance'] },\n { name: 'lastSeen', type: 'date' },\n];\n\nconst defaultDeviceAlertFields: EntityField[] = [\n { name: 'deviceId', type: 'string', required: true },\n { name: 'severity', type: 'string', required: true },\n { name: 'message', type: 'string' },\n { name: 'acknowledged', type: 'boolean', default: false },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdIotDashboard(params: StdIotDashboardParams): OrbitalSchema {\n const sensorReadingFields = params.sensorReadingFields ?? defaultSensorReadingFields;\n const deviceFields = params.deviceFields ?? defaultDeviceFields;\n const deviceAlertFields = params.deviceAlertFields ?? defaultDeviceAlertFields;\n\n const sensorOrbital = stdDisplay({\n entityName: 'SensorReading',\n fields: sensorReadingFields,\n headerIcon: 'thermometer',\n pageTitle: 'Sensor Readings',\n });\n\n const deviceOrbital = stdList({\n entityName: 'Device',\n fields: deviceFields,\n headerIcon: 'cpu',\n pageTitle: 'Devices',\n emptyTitle: 'No devices registered',\n emptyDescription: 'Connect a device to start monitoring.',\n ...iotDeviceView(),\n });\n\n const alertOrbital = stdCircuitBreaker({\n entityName: 'DeviceAlert',\n fields: deviceAlertFields,\n headerIcon: 'bell',\n });\n\n const pages: ComposePage[] = [\n { name: 'SensorsPage', path: '/sensors', traits: ['SensorReadingDisplay'], isInitial: true },\n { name: 'DevicesPage', path: '/devices', traits: ['DeviceBrowse', 'DeviceCreate', 'DeviceEdit', 'DeviceView', 'DeviceDelete'] },\n { name: 'AlertsPage', path: '/alerts', traits: ['DeviceAlertCircuitBreaker'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'IoT Dashboard';\n\n\n const schema = compose([sensorOrbital, deviceOrbital, alertOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-realtime-chat\n *\n * Realtime chat organism.\n * Composes: stdMessaging(ChatMessage) + stdList(Channel) + stdDisplay(OnlineUser)\n *\n * Pages: /chat (initial), /channels, /online\n *\n * @level organism\n * @family communication\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdMessaging } from '../molecules/std-messaging.js';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { chatChannelView, chatMessageView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRealtimeChatParams {\n chatMessageFields?: EntityField[];\n channelFields?: EntityField[];\n onlineUserFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultChatMessageFields: EntityField[] = [\n { name: 'sender', type: 'string', required: true },\n { name: 'content', type: 'string', required: true },\n { name: 'channel', type: 'string' },\n { name: 'timestamp', type: 'date' },\n];\n\nconst defaultChannelFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'memberCount', type: 'number', default: 0 },\n { name: 'isPrivate', type: 'boolean', default: false },\n];\n\nconst defaultOnlineUserFields: EntityField[] = [\n { name: 'username', type: 'string', required: true },\n { name: 'status', type: 'string', default: 'online', values: ['online', 'away', 'busy', 'offline'] },\n { name: 'lastActive', type: 'date' },\n { name: 'avatar', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdRealtimeChat(params: StdRealtimeChatParams): OrbitalSchema {\n const chatMessageFields = params.chatMessageFields ?? defaultChatMessageFields;\n const channelFields = params.channelFields ?? defaultChannelFields;\n const onlineUserFields = params.onlineUserFields ?? defaultOnlineUserFields;\n\n const messagingOrbital = stdMessaging({\n entityName: 'ChatMessage',\n fields: chatMessageFields,\n headerIcon: 'message-circle',\n pageTitle: 'Chat',\n ...chatMessageView(),\n });\n\n const channelOrbital = stdList({\n entityName: 'Channel',\n fields: channelFields,\n headerIcon: 'hash',\n pageTitle: 'Channels',\n emptyTitle: 'No channels yet',\n emptyDescription: 'Create a channel to start conversations.',\n ...chatChannelView(),\n });\n\n const onlineOrbital = stdDisplay({\n entityName: 'OnlineUser',\n fields: onlineUserFields,\n headerIcon: 'users',\n pageTitle: 'Online Users',\n });\n\n const pages: ComposePage[] = [\n { name: 'ChatPage', path: '/chat', traits: ['ChatMessageBrowse', 'ChatMessageCompose', 'ChatMessageView'], isInitial: true },\n { name: 'ChannelsPage', path: '/channels', traits: ['ChannelBrowse', 'ChannelCreate', 'ChannelEdit', 'ChannelView', 'ChannelDelete'] },\n { name: 'OnlinePage', path: '/online', traits: ['OnlineUserDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Realtime Chat';\n\n\n const schema = compose([messagingOrbital, channelOrbital, onlineOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-finance-tracker\n *\n * Finance tracker organism.\n * Composes: stdList(Transaction) + stdDisplay(FinanceSummary) + stdDetail(FinanceReport)\n *\n * Pages: /transactions (initial), /summary, /reports\n *\n * @level organism\n * @family finance\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { stdDetail } from '../molecules/std-detail.js';\nimport { financeTransactionView, financeReportView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdFinanceTrackerParams {\n transactionFields?: EntityField[];\n financeSummaryFields?: EntityField[];\n financeReportFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultTransactionFields: EntityField[] = [\n { name: 'description', type: 'string', required: true },\n { name: 'amount', type: 'number', required: true },\n { name: 'category', type: 'string' },\n { name: 'date', type: 'date' },\n];\n\nconst defaultFinanceSummaryFields: EntityField[] = [\n { name: 'totalIncome', type: 'number', default: 0 },\n { name: 'totalExpenses', type: 'number', default: 0 },\n { name: 'balance', type: 'number', default: 0 },\n { name: 'savingsRate', type: 'number', default: 0 },\n];\n\nconst defaultFinanceReportFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'period', type: 'string', required: true },\n { name: 'total', type: 'number' },\n { name: 'generatedAt', type: 'date' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdFinanceTracker(params: StdFinanceTrackerParams): OrbitalSchema {\n const transactionFields = params.transactionFields ?? defaultTransactionFields;\n const financeSummaryFields = params.financeSummaryFields ?? defaultFinanceSummaryFields;\n const financeReportFields = params.financeReportFields ?? defaultFinanceReportFields;\n\n const transactionOrbital = stdList({\n entityName: 'Transaction',\n fields: transactionFields,\n headerIcon: 'credit-card',\n pageTitle: 'Transactions',\n emptyTitle: 'No transactions yet',\n emptyDescription: 'Record your first transaction.',\n ...financeTransactionView(),\n });\n\n const summaryOrbital = stdDisplay({\n entityName: 'FinanceSummary',\n fields: financeSummaryFields,\n headerIcon: 'pie-chart',\n pageTitle: 'Financial Summary',\n });\n\n const reportOrbital = stdDetail({\n entityName: 'FinanceReport',\n fields: financeReportFields,\n headerIcon: 'file-text',\n pageTitle: 'Reports',\n emptyTitle: 'No reports yet',\n emptyDescription: 'Generate a report to analyze your finances.',\n ...financeReportView(),\n });\n\n const pages: ComposePage[] = [\n { name: 'TransactionsPage', path: '/transactions', traits: ['TransactionBrowse', 'TransactionCreate', 'TransactionEdit', 'TransactionView', 'TransactionDelete'], isInitial: true },\n { name: 'SummaryPage', path: '/summary', traits: ['FinanceSummaryDisplay'] },\n { name: 'ReportsPage', path: '/reports', traits: ['FinanceReportBrowse', 'FinanceReportCreate', 'FinanceReportView'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Finance Tracker';\n\n\n const schema = compose([transactionOrbital, summaryOrbital, reportOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-trading-dashboard\n *\n * Trading dashboard organism.\n * Composes: stdDisplay(Portfolio) + stdList(TradeOrder) + stdAsync(MarketFeed)\n *\n * Pages: /portfolio (initial), /orders, /market\n *\n * @level organism\n * @family finance\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdDisplay } from '../atoms/std-display.js';\nimport { stdList } from '../molecules/std-list.js';\nimport { stdAsync } from '../atoms/std-async.js';\nimport { tradingOrderView } from '../views/domain-views.js';\nimport { wrapInDashboardLayout, buildNavItems } from '../layout.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTradingDashboardParams {\n portfolioFields?: EntityField[];\n tradeOrderFields?: EntityField[];\n marketFeedFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultPortfolioFields: EntityField[] = [\n { name: 'totalValue', type: 'number', default: 0 },\n { name: 'dailyChange', type: 'number', default: 0 },\n { name: 'positions', type: 'number', default: 0 },\n { name: 'cashBalance', type: 'number', default: 0 },\n];\n\nconst defaultTradeOrderFields: EntityField[] = [\n { name: 'symbol', type: 'string', required: true },\n { name: 'side', type: 'string', required: true, values: ['buy', 'sell'] },\n { name: 'quantity', type: 'number', required: true },\n { name: 'price', type: 'number' },\n];\n\nconst defaultMarketFeedFields: EntityField[] = [\n { name: 'symbol', type: 'string', required: true },\n { name: 'price', type: 'number', required: true },\n { name: 'change', type: 'number' },\n { name: 'volume', type: 'number' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdTradingDashboard(params: StdTradingDashboardParams): OrbitalSchema {\n const portfolioFields = params.portfolioFields ?? defaultPortfolioFields;\n const tradeOrderFields = params.tradeOrderFields ?? defaultTradeOrderFields;\n const marketFeedFields = params.marketFeedFields ?? defaultMarketFeedFields;\n\n const portfolioOrbital = stdDisplay({\n entityName: 'Portfolio',\n fields: portfolioFields,\n headerIcon: 'trending-up',\n pageTitle: 'Portfolio',\n });\n\n const orderOrbital = stdList({\n entityName: 'TradeOrder',\n fields: tradeOrderFields,\n headerIcon: 'shopping-cart',\n pageTitle: 'Trade Orders',\n emptyTitle: 'No orders yet',\n emptyDescription: 'Place your first trade.',\n ...tradingOrderView(),\n });\n\n const marketOrbital = stdAsync({\n entityName: 'MarketFeed',\n fields: marketFeedFields,\n headerIcon: 'activity',\n loadingMessage: 'Connecting to market feed...',\n successMessage: 'Market feed connected.',\n errorMessage: 'Market feed disconnected.',\n });\n\n const pages: ComposePage[] = [\n { name: 'PortfolioPage', path: '/portfolio', traits: ['PortfolioDisplay'], isInitial: true },\n { name: 'OrdersPage', path: '/orders', traits: ['TradeOrderBrowse', 'TradeOrderCreate', 'TradeOrderEdit', 'TradeOrderView', 'TradeOrderDelete'] },\n { name: 'MarketPage', path: '/market', traits: ['MarketFeedAsync'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n const appName = 'Trading Dashboard';\n\n\n const schema = compose([portfolioOrbital, orderOrbital, marketOrbital], pages, connections, appName);\n\n\n return wrapInDashboardLayout(schema, appName, buildNavItems(pages));\n}\n","/**\n * std-validate-on-save\n *\n * OS trigger that watches .orb files and validates them on save.\n * Shows a status dashboard with validation results.\n * Emits AGENT_INTERRUPT with validation results to interrupt\n * autonomous agents with ground truth.\n *\n * @level atom\n * @family os-trigger\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdValidateOnSaveParams {\n entityName?: string;\n fields?: EntityField[];\n glob?: string;\n debounceMs?: number;\n blocking?: boolean;\n pageName?: string;\n pagePath?: string;\n}\n\n// ============================================================================\n// Builder\n// ============================================================================\n\nexport function stdValidateOnSave(params: StdValidateOnSaveParams = {}): OrbitalDefinition {\n const {\n entityName = 'ValidationResult',\n glob = '**/*.orb',\n debounceMs = 500,\n blocking = true,\n pageName = 'ValidatorPage',\n pagePath = '/validator',\n } = params;\n\n // Entity\n const fields: EntityField[] = ensureIdField([\n { name: 'path', type: 'string' as const },\n { name: 'valid', type: 'boolean' as const, default: false },\n { name: 'errors', type: 'array' as const, default: [] },\n { name: 'warnings', type: 'array' as const, default: [] },\n { name: 'timestamp', type: 'number' as const, default: 0 },\n { name: 'status', type: 'string' as const, default: 'idle' },\n ]);\n\n const entity: Entity = makeEntity({\n name: entityName,\n persistence: 'runtime',\n fields,\n });\n\n // Header with refresh button (for valid/invalid states)\n const headerWithRefresh = (subtitle: string) => ['render-ui', 'main', {\n type: 'page-header',\n title: 'Orb File Validator',\n subtitle,\n actions: [\n { event: 'REFRESH', label: 'Validate Now', variant: 'primary' },\n ],\n }];\n\n // Header without refresh (for idle/validating states)\n const headerPlain = (subtitle: string) => ['render-ui', 'main', {\n type: 'page-header',\n title: 'Orb File Validator',\n subtitle,\n }];\n\n // Trait\n const trait: Trait = {\n name: 'OrbFileWatcher',\n linkedEntity: entityName,\n category: 'interaction' as const,\n listens: [\n {\n event: 'OS_FILE_MODIFIED',\n scope: 'external',\n guard: ['str/endsWith', '@payload.path', '.orb'],\n },\n ],\n emits: [\n {\n event: 'AGENT_INTERRUPT',\n scope: 'external',\n payload: [\n { name: 'type', type: 'string' },\n { name: 'status', type: 'string' },\n { name: 'path', type: 'string' },\n { name: 'errors', type: 'array' },\n { name: 'blocking', type: 'boolean' },\n ],\n },\n ],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'validating' },\n { name: 'valid' },\n { name: 'invalid' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n {\n key: 'OS_FILE_MODIFIED',\n name: 'File Modified',\n payload: [\n { name: 'path', type: 'string' },\n { name: 'name', type: 'string' },\n { name: 'dir', type: 'string' },\n { name: 'ext', type: 'string' },\n { name: 'timestamp', type: 'number' },\n ],\n },\n { key: 'REFRESH', name: 'Validate Now' },\n {\n key: 'VALIDATION_PASSED',\n name: 'Validation Passed',\n payload: [\n { name: 'warnings', type: 'array' },\n ],\n },\n {\n key: 'VALIDATION_FAILED',\n name: 'Validation Failed',\n payload: [\n { name: 'errors', type: 'array' },\n { name: 'warnings', type: 'array' },\n ],\n },\n ],\n transitions: [\n // INIT: register file watcher + show idle UI\n {\n from: 'idle',\n event: 'INIT',\n to: 'idle',\n effects: [\n ['os/watch-files', glob],\n ['os/debounce', debounceMs, 'OS_FILE_MODIFIED'],\n ['set', '@entity.status', 'idle'],\n headerPlain(`Watching ${glob} for changes`),\n ['render-ui', 'center', {\n type: 'empty-state',\n title: 'Waiting for file changes',\n description: `Watching ${glob}. Save an .orb file to trigger validation.`,\n }],\n ],\n },\n // File modified from idle: start validation\n {\n from: 'idle',\n event: 'OS_FILE_MODIFIED',\n to: 'validating',\n effects: [\n ['set', '@entity.path', '@payload.path'],\n ['set', '@entity.timestamp', '@now'],\n ['set', '@entity.status', 'validating'],\n headerPlain('Validating...'),\n ['render-ui', 'center', {\n type: 'loading-state',\n title: 'Running orbital validate...',\n }],\n ['call-service', 'orbital-cli', 'validate', {\n path: '@payload.path',\n onSuccess: 'VALIDATION_PASSED',\n onError: 'VALIDATION_FAILED',\n }],\n ],\n },\n // Validation passed: show success\n {\n from: 'validating',\n event: 'VALIDATION_PASSED',\n to: 'valid',\n effects: [\n ['set', '@entity.valid', true],\n ['set', '@entity.errors', []],\n ['set', '@entity.warnings', '@payload.warnings'],\n ['set', '@entity.status', 'valid'],\n headerWithRefresh('Validation passed'),\n ['render-ui', 'center', {\n type: 'entity-detail',\n entity: entityName,\n fields: ['path', 'valid', 'status', 'timestamp'],\n }],\n ['notify', 'success', 'Schema is valid'],\n ['emit', 'AGENT_INTERRUPT', {\n type: 'validation',\n status: 'passed',\n path: '@entity.path',\n blocking: false,\n }],\n ],\n },\n // Validation failed: show errors\n {\n from: 'validating',\n event: 'VALIDATION_FAILED',\n to: 'invalid',\n effects: [\n ['set', '@entity.valid', false],\n ['set', '@entity.errors', '@payload.errors'],\n ['set', '@entity.warnings', '@payload.warnings'],\n ['set', '@entity.status', 'invalid'],\n headerWithRefresh('Validation failed'),\n ['render-ui', 'center', {\n type: 'entity-detail',\n entity: entityName,\n fields: ['path', 'valid', 'errors', 'warnings', 'status'],\n }],\n ['notify', 'error', 'Schema has errors'],\n ['emit', 'AGENT_INTERRUPT', {\n type: 'validation',\n status: 'failed',\n path: '@entity.path',\n errors: '@payload.errors',\n blocking,\n }],\n ],\n },\n // Re-validate from valid state\n {\n from: 'valid',\n event: 'OS_FILE_MODIFIED',\n to: 'validating',\n effects: [\n ['set', '@entity.path', '@payload.path'],\n ['set', '@entity.timestamp', '@now'],\n ['set', '@entity.status', 'validating'],\n headerPlain('Re-validating...'),\n ['render-ui', 'center', {\n type: 'loading-state',\n title: 'Running orbital validate...',\n }],\n ['call-service', 'orbital-cli', 'validate', {\n path: '@payload.path',\n onSuccess: 'VALIDATION_PASSED',\n onError: 'VALIDATION_FAILED',\n }],\n ],\n },\n // Re-validate from invalid state\n {\n from: 'invalid',\n event: 'OS_FILE_MODIFIED',\n to: 'validating',\n effects: [\n ['set', '@entity.path', '@payload.path'],\n ['set', '@entity.timestamp', '@now'],\n ['set', '@entity.status', 'validating'],\n headerPlain('Re-validating...'),\n ['render-ui', 'center', {\n type: 'loading-state',\n title: 'Running orbital validate...',\n }],\n ['call-service', 'orbital-cli', 'validate', {\n path: '@payload.path',\n onSuccess: 'VALIDATION_PASSED',\n onError: 'VALIDATION_FAILED',\n }],\n ],\n },\n // Manual refresh from any state that has data\n {\n from: 'valid',\n event: 'REFRESH',\n to: 'validating',\n effects: [\n ['set', '@entity.status', 'validating'],\n headerPlain('Re-validating...'),\n ['render-ui', 'center', {\n type: 'loading-state',\n title: 'Running orbital validate...',\n }],\n ['call-service', 'orbital-cli', 'validate', {\n path: '@entity.path',\n onSuccess: 'VALIDATION_PASSED',\n onError: 'VALIDATION_FAILED',\n }],\n ],\n },\n {\n from: 'invalid',\n event: 'REFRESH',\n to: 'validating',\n effects: [\n ['set', '@entity.status', 'validating'],\n headerPlain('Re-validating...'),\n ['render-ui', 'center', {\n type: 'loading-state',\n title: 'Running orbital validate...',\n }],\n ['call-service', 'orbital-cli', 'validate', {\n path: '@entity.path',\n onSuccess: 'VALIDATION_PASSED',\n onError: 'VALIDATION_FAILED',\n }],\n ],\n },\n ],\n },\n } as unknown as Trait;\n\n // Page: status dashboard\n const pages: Page[] = [\n makePage({\n name: pageName,\n path: pagePath,\n traitName: 'OrbFileWatcher',\n }),\n ];\n\n return makeOrbital('ValidateOnSave', entity, [trait], pages);\n}\n\nexport default stdValidateOnSave;\n","/**\n * std-service-email\n *\n * Email service integration behavior: compose, send, track delivery status.\n * Wraps the `email` service with call-service for send operations.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceEmailParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Page\n standalone?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface EmailConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceEmailParams): EmailConfig {\n const { entityName } = params;\n\n const requiredFields: EntityField[] = [\n { name: 'to', type: 'string' },\n { name: 'subject', type: 'string' },\n { name: 'body', type: 'string' },\n { name: 'from', type: 'string' },\n { name: 'sendStatus', type: 'string', default: 'idle' },\n { name: 'messageId', type: 'string' },\n { name: 'error', type: 'string' },\n ];\n const existingNames = new Set(params.fields.map(f => f.name));\n const mergedFields = [\n ...params.fields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Email`,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: EmailConfig): Entity {\n const emailFields: EntityField[] = [\n ...c.fields,\n { name: 'to', type: 'string', required: true },\n { name: 'subject', type: 'string', required: true },\n { name: 'body', type: 'string', required: true },\n { name: 'from', type: 'string', required: false },\n { name: 'sendStatus', type: 'string', default: 'idle' },\n { name: 'messageId', type: 'string' },\n { name: 'error', type: 'string' },\n ];\n\n // Deduplicate: user-supplied fields take precedence, but ensure email-specific\n // fields exist. Filter out duplicates from emailFields that already exist in c.fields.\n const userFieldNames = new Set(c.fields.map(f => f.name));\n const merged = [\n ...c.fields,\n ...emailFields.filter(f => !userFieldNames.has(f.name)),\n ];\n\n return makeEntity({\n name: c.entityName,\n fields: merged,\n persistence: c.persistence,\n collection: c.collection,\n });\n}\n\nfunction buildTrait(c: EmailConfig): Trait {\n const { entityName, standalone } = c;\n\n // Idle: compose form (shown when standalone) or minimal prompt\n const idleChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'mail', size: 'lg' },\n { type: 'typography', content: `${entityName} Email`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n ];\n\n if (standalone) {\n idleChildren.push(\n { type: 'input', label: 'To', bind: '@entity.to', placeholder: 'recipient@example.com' },\n { type: 'input', label: 'Subject', bind: '@entity.subject', placeholder: 'Email subject' },\n { type: 'textarea', label: 'Body', bind: '@entity.body', placeholder: 'Write your message...' },\n );\n }\n\n idleChildren.push(\n { type: 'button', label: 'Send', event: 'SEND', variant: 'primary', icon: 'send' },\n );\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: idleChildren,\n };\n\n // Sending: loading state\n const sendingUI = {\n type: 'loading-state', title: 'Sending email...', message: `Delivering ${entityName.toLowerCase()} email...`,\n };\n\n // Sent: success confirmation\n const sentUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Email sent successfully' },\n { type: 'button', label: 'Send Another', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // Error: retry and reset\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Send Failed', message: 'Could not deliver the email.', onRetry: 'RETRY' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'RETRY', variant: 'primary', icon: 'refresh-cw' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch existing data + render compose form)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleUI],\n ],\n },\n // SEND: idle -> sending (call email service + show loading)\n {\n from: 'idle', to: 'sending', event: 'SEND',\n effects: [\n ['render-ui', 'main', sendingUI],\n ['call-service', 'email', 'send', { to: '@entity.to', subject: '@entity.subject', body: '@entity.body' }],\n ],\n },\n // SENT: sending -> sent (delivery confirmed)\n {\n from: 'sending', to: 'sent', event: 'SENT',\n effects: [\n ['set', '@entity.sendStatus', 'sent'],\n ['render-ui', 'main', sentUI],\n ],\n },\n // FAILED: sending -> error (delivery failed)\n {\n from: 'sending', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.sendStatus', 'error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle (try again)\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET from sent: sent -> idle\n {\n from: 'sent', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.sendStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n // RESET from error: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.sendStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'sending' },\n { name: 'sent' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEND', name: 'Send Email' },\n { key: 'SENT', name: 'Email Sent', payload: [{ name: 'messageId', type: 'string', required: false }] },\n { key: 'FAILED', name: 'Send Failed', payload: [{ name: 'error', type: 'string', required: true }] },\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: EmailConfig): Page | undefined {\n if (!c.standalone) return undefined;\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceEmailEntity(params: StdServiceEmailParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceEmailTrait(params: StdServiceEmailParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceEmailPage(params: StdServiceEmailParams): Page | undefined {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceEmail(params: StdServiceEmailParams): OrbitalDefinition {\n const c = resolve(params);\n const pages: Page[] = [];\n const page = buildPage(c);\n if (page) pages.push(page);\n\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n pages,\n );\n}\n","/**\n * std-service-stripe\n *\n * Stripe payment integration behavior: idle, creating, confirming, succeeded, error.\n * Wraps the `stripe` service integration with a multi-step payment flow.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceStripeParams {\n /** Entity name in PascalCase (default: \"Payment\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, payment fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Firestore collection name */\n collection?: string;\n /** When true, INIT renders the payment form to main. Default true. */\n standalone?: boolean;\n /** Default currency code (default: \"usd\") */\n defaultCurrency?: string;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface StripeConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n standalone: boolean;\n defaultCurrency: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceStripeParams): StripeConfig {\n const entityName = params.entityName ?? 'Payment';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'amount', type: 'number' },\n { name: 'currency', type: 'string', default: params.defaultCurrency ?? 'usd' },\n { name: 'paymentIntentId', type: 'string' },\n { name: 'clientSecret', type: 'string' },\n { name: 'paymentStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n\n return {\n entityName,\n fields: ensureIdField(mergedFields),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Stripe`,\n standalone: params.standalone ?? true,\n defaultCurrency: params.defaultCurrency ?? 'usd',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: StripeConfig): Entity {\n const paymentFields: EntityField[] = [\n { name: 'amount', type: 'number' as const, default: 0 },\n { name: 'currency', type: 'string' as const, default: c.defaultCurrency },\n { name: 'paymentIntentId', type: 'string' as const, default: '' },\n { name: 'clientSecret', type: 'string' as const, default: '' },\n { name: 'paymentStatus', type: 'string' as const, default: 'idle' },\n { name: 'error', type: 'string' as const, default: '' },\n ];\n\n // Merge: payment fields first, then any extra user fields (skip duplicates)\n const paymentFieldNames = new Set(paymentFields.map(f => f.name));\n const extraFields = c.fields.filter(f => f.name !== 'id' && !paymentFieldNames.has(f.name));\n const allFields = ensureIdField([...paymentFields, ...extraFields]);\n\n return makeEntity({ name: c.entityName, fields: allFields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: StripeConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'credit-card', size: 'lg' },\n { type: 'typography', content: 'Payment', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'input', label: 'Amount', field: 'amount', inputType: 'number', placeholder: '0.00' },\n {\n type: 'select', label: 'Currency', field: 'currency',\n options: [\n { label: 'USD', value: 'usd' },\n { label: 'EUR', value: 'eur' },\n { label: 'GBP', value: 'gbp' },\n ],\n },\n ],\n },\n { type: 'button', label: 'Pay', event: 'CREATE_PAYMENT', variant: 'primary', icon: 'credit-card' },\n ],\n };\n\n const creatingUI = {\n type: 'loading-state', title: 'Creating payment...', message: 'Setting up your payment intent.',\n };\n\n const confirmingUI = {\n type: 'loading-state', title: 'Confirming payment...', message: 'Processing your payment.',\n };\n\n const succeededUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Payment successful!' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.paymentIntentId' },\n { type: 'button', label: 'New Payment', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'error-state', title: 'Payment Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n // ---- Transitions ----\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch + render if standalone)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ...(standalone ? [['fetch', entityName], ['render-ui', 'main', idleUI]] : [['fetch', entityName]]),\n ],\n },\n // CREATE_PAYMENT: idle -> creating (render loading + call stripe createPaymentIntent)\n {\n from: 'idle', to: 'creating', event: 'CREATE_PAYMENT',\n effects: [\n ['render-ui', 'main', creatingUI],\n ['call-service', 'stripe', 'createPaymentIntent', { amount: '@entity.amount', currency: '@entity.currency' }],\n ],\n },\n // PAYMENT_CREATED: creating -> confirming (persist intent data + auto-confirm)\n {\n from: 'creating', to: 'confirming', event: 'PAYMENT_CREATED',\n effects: [\n ['set', '@entity.paymentIntentId', '@payload.id'],\n ['set', '@entity.clientSecret', '@payload.clientSecret'],\n ['render-ui', 'main', confirmingUI],\n ['call-service', 'stripe', 'confirmPayment', { paymentIntentId: '@entity.paymentIntentId' }],\n ],\n },\n // PAYMENT_CONFIRMED: confirming -> succeeded\n {\n from: 'confirming', to: 'succeeded', event: 'PAYMENT_CONFIRMED',\n effects: [\n ['set', '@entity.paymentStatus', 'succeeded'],\n ['render-ui', 'main', succeededUI],\n ],\n },\n // FAILED: creating -> error\n {\n from: 'creating', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // FAILED: confirming -> error\n {\n from: 'confirming', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: succeeded -> idle\n {\n from: 'succeeded', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'creating' },\n { name: 'confirming' },\n { name: 'succeeded' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CREATE_PAYMENT', name: 'Create Payment' },\n { key: 'PAYMENT_CREATED', name: 'Payment Created', payload: [\n { name: 'id', type: 'string', required: true },\n { name: 'clientSecret', type: 'string', required: true },\n ]},\n { key: 'CONFIRM_PAYMENT', name: 'Confirm Payment' },\n { key: 'PAYMENT_CONFIRMED', name: 'Payment Confirmed' },\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: StripeConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceStripeEntity(params: StdServiceStripeParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceStripeTrait(params: StdServiceStripeParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceStripePage(params: StdServiceStripeParams = {}): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceStripe(params: StdServiceStripeParams = {}): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-service-twilio\n *\n * Twilio messaging integration behavior: compose, send SMS or WhatsApp, track delivery.\n * Wraps the `twilio` service integration with sendSMS and sendWhatsApp operations.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceTwilioParams {\n /** Entity name in PascalCase (default: \"Message\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, messaging fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** When true, INIT renders the compose form to main. Default true. */\n standalone?: boolean;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TwilioConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceTwilioParams): TwilioConfig {\n const entityName = params.entityName ?? 'Message';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'to', type: 'string' },\n { name: 'messageBody', type: 'string' },\n { name: 'channel', type: 'string', default: 'sms' },\n { name: 'messageSid', type: 'string' },\n { name: 'sendStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n\n return {\n entityName,\n fields: ensureIdField(mergedFields),\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Twilio`,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: TwilioConfig): Entity {\n const twilioFields: EntityField[] = [\n { name: 'to', type: 'string' as const, default: '' },\n { name: 'messageBody', type: 'string' as const, default: '' },\n { name: 'channel', type: 'string' as const, default: 'sms' },\n { name: 'messageSid', type: 'string' as const, default: '' },\n { name: 'sendStatus', type: 'string' as const, default: 'idle' },\n { name: 'error', type: 'string' as const, default: '' },\n ];\n\n // Merge: user-supplied fields take precedence, then twilio-specific fields\n const userFieldNames = new Set(c.fields.map(f => f.name));\n const extraFields = twilioFields.filter(f => !userFieldNames.has(f.name));\n const allFields = ensureIdField([...c.fields, ...extraFields]);\n\n return makeEntity({ name: c.entityName, fields: allFields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: TwilioConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n const idleChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'message-circle', size: 'lg' },\n { type: 'typography', content: `${entityName} Messaging`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n ];\n\n if (standalone) {\n idleChildren.push(\n { type: 'input', label: 'To', bind: '@entity.to', placeholder: '+1234567890' },\n { type: 'textarea', label: 'Message', bind: '@entity.messageBody', placeholder: 'Write your message...' },\n );\n }\n\n idleChildren.push(\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Send SMS', event: 'SEND_SMS', variant: 'primary', icon: 'message-circle' },\n { type: 'button', label: 'Send WhatsApp', event: 'SEND_WHATSAPP', variant: 'secondary', icon: 'phone' },\n ],\n },\n );\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: idleChildren,\n };\n\n const sendingUI = {\n type: 'loading-state', title: 'Sending message...', message: `Delivering ${entityName.toLowerCase()} message...`,\n };\n\n const sentUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Message sent successfully' },\n { type: 'button', label: 'Send Another', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Send Failed', message: 'Could not deliver the message.', onRetry: 'RETRY' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'RETRY', variant: 'primary', icon: 'refresh-cw' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n // ---- Transitions ----\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch + render compose form)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleUI],\n ],\n },\n // SEND_SMS: idle -> sending (call twilio sendSMS + show loading)\n {\n from: 'idle', to: 'sending', event: 'SEND_SMS',\n effects: [\n ['render-ui', 'main', sendingUI],\n ['call-service', 'twilio', 'sendSMS', { to: '@entity.to', body: '@entity.messageBody' }],\n ],\n },\n // SEND_WHATSAPP: idle -> sending (call twilio sendWhatsApp + show loading)\n {\n from: 'idle', to: 'sending', event: 'SEND_WHATSAPP',\n effects: [\n ['render-ui', 'main', sendingUI],\n ['call-service', 'twilio', 'sendWhatsApp', { to: '@entity.to', body: '@entity.messageBody' }],\n ],\n },\n // SENT: sending -> sent (delivery confirmed)\n {\n from: 'sending', to: 'sent', event: 'SENT',\n effects: [\n ['set', '@entity.sendStatus', 'sent'],\n ['set', '@entity.messageSid', '@payload.messageSid'],\n ['render-ui', 'main', sentUI],\n ],\n },\n // FAILED: sending -> error (delivery failed)\n {\n from: 'sending', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.sendStatus', 'error'],\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: sent -> idle\n {\n from: 'sent', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.sendStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.sendStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'sending' },\n { name: 'sent' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEND_SMS', name: 'Send SMS' },\n { key: 'SEND_WHATSAPP', name: 'Send WhatsApp' },\n { key: 'SENT', name: 'Message Sent', payload: [\n { name: 'messageSid', type: 'string', required: false },\n ]},\n { key: 'FAILED', name: 'Send Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: TwilioConfig): Page | undefined {\n if (!c.standalone) return undefined;\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceTwilioEntity(params: StdServiceTwilioParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceTwilioTrait(params: StdServiceTwilioParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceTwilioPage(params: StdServiceTwilioParams = {}): Page | undefined {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceTwilio(params: StdServiceTwilioParams = {}): OrbitalDefinition {\n const c = resolve(params);\n const pages: Page[] = [];\n const page = buildPage(c);\n if (page) pages.push(page);\n\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n pages,\n );\n}\n","/**\n * std-service-github\n *\n * GitHub service integration behavior: idle, creatingPR, prCreated, error.\n * Wraps the `github` integration (listIssues, createPR) with a PR creation flow.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceGithubParams {\n /** Entity name in PascalCase (default: \"PullRequest\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, GitHub fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** When true, INIT renders the PR form to main. Default true. */\n standalone?: boolean;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GithubConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceGithubParams): GithubConfig {\n const entityName = params.entityName ?? 'PullRequest';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'title', type: 'string' },\n { name: 'body', type: 'string' },\n { name: 'head', type: 'string' },\n { name: 'base', type: 'string', default: 'main' },\n { name: 'prUrl', type: 'string' },\n { name: 'prNumber', type: 'number', default: 0 },\n { name: 'ghStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Github`,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: GithubConfig): Entity {\n const githubFields: EntityField[] = [\n { name: 'title', type: 'string' as const, default: '' },\n { name: 'body', type: 'string' as const, default: '' },\n { name: 'head', type: 'string' as const, default: '' },\n { name: 'base', type: 'string' as const, default: 'main' },\n { name: 'prUrl', type: 'string' as const, default: '' },\n { name: 'prNumber', type: 'number' as const, default: 0 },\n { name: 'ghStatus', type: 'string' as const, default: 'idle' },\n { name: 'error', type: 'string' as const, default: '' },\n ];\n\n // Merge: GitHub fields first, then any extra user fields (skip duplicates)\n const githubFieldNames = new Set(githubFields.map(f => f.name));\n const extraFields = c.fields.filter(f => f.name !== 'id' && !githubFieldNames.has(f.name));\n const allFields = ensureIdField([...githubFields, ...extraFields]);\n\n return makeEntity({ name: c.entityName, fields: allFields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GithubConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'git-pull-request', size: 'lg' },\n { type: 'typography', content: 'Create Pull Request', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'input', label: 'Title', field: 'title', placeholder: 'PR title' },\n { type: 'textarea', label: 'Body', field: 'body', placeholder: 'Describe your changes...' },\n { type: 'input', label: 'Head Branch', field: 'head', placeholder: 'feature-branch' },\n { type: 'input', label: 'Base Branch', field: 'base', placeholder: 'main' },\n ],\n },\n { type: 'button', label: 'Create PR', event: 'CREATE_PR', variant: 'primary', icon: 'git-pull-request' },\n ],\n };\n\n const creatingUI = {\n type: 'loading-state', title: 'Creating pull request...', message: 'Submitting your PR to GitHub.',\n };\n\n const prCreatedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'Pull request created!' },\n { type: 'typography', variant: 'body', color: 'muted', content: '@entity.prUrl' },\n { type: 'button', label: 'Create Another', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'error-state', title: 'PR Creation Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n // ---- Transitions ----\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch + render form if standalone)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ...(standalone ? [['fetch', entityName], ['render-ui', 'main', idleUI]] : [['fetch', entityName]]),\n ],\n },\n // CREATE_PR: idle -> creatingPR (call github createPR + show loading)\n {\n from: 'idle', to: 'creatingPR', event: 'CREATE_PR',\n effects: [\n ['render-ui', 'main', creatingUI],\n ['call-service', 'github', 'createPR', {\n title: '@entity.title',\n body: '@entity.body',\n head: '@entity.head',\n base: '@entity.base',\n }],\n ],\n },\n // PR_CREATED: creatingPR -> prCreated (persist PR data + show success)\n {\n from: 'creatingPR', to: 'prCreated', event: 'PR_CREATED',\n effects: [\n ['set', '@entity.prUrl', '@payload.url'],\n ['set', '@entity.prNumber', '@payload.number'],\n ['set', '@entity.ghStatus', 'created'],\n ['render-ui', 'main', prCreatedUI],\n ],\n },\n // FAILED: creatingPR -> error\n {\n from: 'creatingPR', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: prCreated -> idle\n {\n from: 'prCreated', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'creatingPR' },\n { name: 'prCreated' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CREATE_PR', name: 'Create Pull Request' },\n { key: 'PR_CREATED', name: 'PR Created', payload: [\n { name: 'url', type: 'string', required: true },\n { name: 'number', type: 'number', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: GithubConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceGithubEntity(params: StdServiceGithubParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceGithubTrait(params: StdServiceGithubParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceGithubPage(params: StdServiceGithubParams = {}): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceGithub(params: StdServiceGithubParams = {}): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-service-youtube\n *\n * YouTube service integration behavior: search videos, view video details.\n * Wraps the `youtube` service integration with search and getVideo operations.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceYoutubeParams {\n /** Entity name in PascalCase (default: \"VideoSearch\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, youtube fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** When true, INIT renders the search form to main. Default true. */\n standalone?: boolean;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface YoutubeConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceYoutubeParams): YoutubeConfig {\n const entityName = params.entityName ?? 'VideoSearch';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'query', type: 'string' },\n { name: 'selectedVideoId', type: 'string' },\n { name: 'videoTitle', type: 'string' },\n { name: 'videoDescription', type: 'string' },\n { name: 'searchStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n\n return {\n entityName,\n fields: ensureIdField(mergedFields),\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Youtube`,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: YoutubeConfig): Entity {\n const youtubeFields: EntityField[] = [\n { name: 'query', type: 'string' as const, default: '' },\n { name: 'selectedVideoId', type: 'string' as const, default: '' },\n { name: 'videoTitle', type: 'string' as const, default: '' },\n { name: 'videoDescription', type: 'string' as const, default: '' },\n { name: 'searchStatus', type: 'string' as const, default: 'idle' },\n { name: 'error', type: 'string' as const, default: '' },\n ];\n\n // Merge: youtube fields first, then any extra user fields (skip duplicates)\n const youtubeFieldNames = new Set(youtubeFields.map(f => f.name));\n const extraFields = c.fields.filter(f => f.name !== 'id' && !youtubeFieldNames.has(f.name));\n const allFields = ensureIdField([...youtubeFields, ...extraFields]);\n\n return makeEntity({ name: c.entityName, fields: allFields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: YoutubeConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n const searchFormChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'video', size: 'lg' },\n { type: 'typography', content: 'YouTube Search', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n ];\n\n if (standalone) {\n searchFormChildren.push(\n { type: 'input', label: 'Search', bind: '@entity.query', placeholder: 'Search YouTube videos...' },\n );\n }\n\n searchFormChildren.push(\n { type: 'button', label: 'Search', event: 'SEARCH', variant: 'primary', icon: 'search' },\n );\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: searchFormChildren,\n };\n\n const searchingUI = {\n type: 'loading-state', title: 'Searching...', message: 'Searching YouTube for videos...',\n };\n\n const resultsUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'video', size: 'lg' },\n { type: 'typography', content: 'Search Results', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: 'Select a video to view details.', variant: 'body' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'New Search', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n { type: 'button', label: 'Search Again', event: 'SEARCH', variant: 'outline', icon: 'search' },\n ],\n },\n ],\n };\n\n const detailLoadingUI = {\n type: 'loading-state', title: 'Loading video...', message: 'Fetching video details...',\n };\n\n const detailUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'video', size: 'lg' },\n { type: 'typography', content: '@entity.videoTitle', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: '@entity.videoDescription', variant: 'body' },\n { type: 'button', label: 'Back to Results', event: 'BACK', variant: 'ghost', icon: 'arrow-left' },\n ],\n };\n\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'Search Failed', message: '@entity.error', onRetry: 'SEARCH' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'SEARCH', variant: 'primary', icon: 'refresh-cw' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n // ---- Transitions ----\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch existing data + render search form)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ...(standalone ? [['fetch', entityName], ['render-ui', 'main', idleUI]] : [['fetch', entityName]]),\n ],\n },\n // SEARCH: idle -> searching (call youtube search + show loading)\n {\n from: 'idle', to: 'searching', event: 'SEARCH',\n effects: [\n ['render-ui', 'main', searchingUI],\n ['call-service', 'youtube', 'search', { query: '@entity.query', maxResults: 10, type: 'video' }],\n ],\n },\n // SEARCH: results -> searching (re-search from results)\n {\n from: 'results', to: 'searching', event: 'SEARCH',\n effects: [\n ['render-ui', 'main', searchingUI],\n ['call-service', 'youtube', 'search', { query: '@entity.query', maxResults: 10, type: 'video' }],\n ],\n },\n // SEARCH_COMPLETE: searching -> results (display results)\n {\n from: 'searching', to: 'results', event: 'SEARCH_COMPLETE',\n effects: [\n ['set', '@entity.searchStatus', 'complete'],\n ['render-ui', 'main', resultsUI],\n ],\n },\n // SELECT_VIDEO: results -> viewingDetail (call youtube getVideo + show loading)\n {\n from: 'results', to: 'viewingDetail', event: 'SELECT_VIDEO',\n effects: [\n ['set', '@entity.selectedVideoId', '@payload.videoId'],\n ['render-ui', 'main', detailLoadingUI],\n ['call-service', 'youtube', 'getVideo', { videoId: '@payload.videoId' }],\n ],\n },\n // VIDEO_LOADED: viewingDetail -> viewingDetail (set title/description + render detail)\n {\n from: 'viewingDetail', to: 'viewingDetail', event: 'VIDEO_LOADED',\n effects: [\n ['set', '@entity.videoTitle', '@payload.title'],\n ['set', '@entity.videoDescription', '@payload.description'],\n ['render-ui', 'main', detailUI],\n ],\n },\n // BACK: viewingDetail -> results (return to results list)\n {\n from: 'viewingDetail', to: 'results', event: 'BACK',\n effects: [['render-ui', 'main', resultsUI]],\n },\n // FAILED: searching -> error (search failed)\n {\n from: 'searching', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.searchStatus', 'error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RESET: results -> idle\n {\n from: 'results', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.searchStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.searchStatus', 'idle'],\n ['set', '@entity.error', ''],\n ['render-ui', 'main', idleUI],\n ],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'searching' },\n { name: 'results' },\n { name: 'viewingDetail' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEARCH', name: 'Search Videos' },\n { key: 'SEARCH_COMPLETE', name: 'Search Complete', payload: [\n { name: 'results', type: 'string', required: true },\n ]},\n { key: 'SELECT_VIDEO', name: 'Select Video', payload: [\n { name: 'videoId', type: 'string', required: true },\n ]},\n { key: 'VIDEO_LOADED', name: 'Video Loaded', payload: [\n { name: 'title', type: 'string', required: true },\n { name: 'description', type: 'string', required: true },\n ]},\n { key: 'BACK', name: 'Back to Results' },\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: YoutubeConfig): Page | undefined {\n if (!c.standalone) return undefined;\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceYoutubeEntity(params: StdServiceYoutubeParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceYoutubeTrait(params: StdServiceYoutubeParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceYoutubePage(params: StdServiceYoutubeParams = {}): Page | undefined {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceYoutube(params: StdServiceYoutubeParams = {}): OrbitalDefinition {\n const c = resolve(params);\n const pages: Page[] = [];\n const page = buildPage(c);\n if (page) pages.push(page);\n\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n pages,\n );\n}\n","/**\n * std-service-llm\n *\n * LLM service integration behavior: generate, classify, summarize text.\n * Wraps the `llm` integration with 4 actions via separate action events.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceLlmParams {\n /** Entity name in PascalCase (default: \"LlmTask\") */\n entityName?: string;\n /** Extra entity fields (id is auto-added, LLM fields are always included) */\n fields?: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** When true, INIT renders the input form to main. Default true. */\n standalone?: boolean;\n /** Page name override */\n pageName?: string;\n /** Page path override */\n pagePath?: string;\n /** Whether this page is the initial route */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface LlmConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceLlmParams): LlmConfig {\n const entityName = params.entityName ?? 'LlmTask';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'inputText', type: 'string' },\n { name: 'action', type: 'string', default: 'generate' },\n { name: 'result', type: 'string' },\n { name: 'llmStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Llm`,\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: LlmConfig): Entity {\n const llmFields: EntityField[] = [\n { name: 'inputText', type: 'string' as const, default: '' },\n { name: 'action', type: 'string' as const, default: 'generate' },\n { name: 'result', type: 'string' as const, default: '' },\n { name: 'llmStatus', type: 'string' as const, default: 'idle' },\n { name: 'error', type: 'string' as const, default: '' },\n ];\n\n // Merge: LLM fields first, then any extra user fields (skip duplicates)\n const llmFieldNames = new Set(llmFields.map(f => f.name));\n const extraFields = c.fields.filter(f => f.name !== 'id' && !llmFieldNames.has(f.name));\n const allFields = ensureIdField([...llmFields, ...extraFields]);\n\n return makeEntity({ name: c.entityName, fields: allFields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: LlmConfig): Trait {\n const { entityName, standalone } = c;\n\n // ---- UI definitions ----\n\n const idleChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'brain', size: 'lg' },\n { type: 'typography', content: `${entityName} LLM`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n ];\n\n if (standalone) {\n idleChildren.push(\n { type: 'textarea', label: 'Input Text', bind: '@entity.inputText', placeholder: 'Enter text for LLM processing...' },\n );\n }\n\n idleChildren.push(\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Generate', event: 'GENERATE', variant: 'primary', icon: 'sparkles' },\n { type: 'button', label: 'Classify', event: 'CLASSIFY', variant: 'secondary', icon: 'tag' },\n { type: 'button', label: 'Summarize', event: 'SUMMARIZE', variant: 'secondary', icon: 'align-left' },\n ],\n },\n );\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'stretch',\n children: idleChildren,\n };\n\n const processingUI = {\n type: 'loading-state', title: 'Processing...', message: `Running ${entityName.toLowerCase()} LLM task...`,\n };\n\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'alert', variant: 'success', message: 'LLM task complete' },\n { type: 'typography', variant: 'body', content: '@entity.result' },\n { type: 'button', label: 'Start Over', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'error-state', title: 'LLM Failed', message: '@entity.error', onRetry: 'RETRY' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'RETRY', variant: 'primary', icon: 'refresh-cw' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n // ---- Transitions ----\n\n const transitions: unknown[] = [\n // INIT: idle -> idle (fetch + render if standalone)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ...(standalone ? [['fetch', entityName], ['render-ui', 'main', idleUI]] : [['fetch', entityName]]),\n ],\n },\n // GENERATE: idle -> processing (call llm generate + render loading)\n {\n from: 'idle', to: 'processing', event: 'GENERATE',\n effects: [\n ['set', '@entity.action', 'generate'],\n ['render-ui', 'main', processingUI],\n ['call-service', 'llm', 'generate', { userPrompt: '@entity.inputText' }],\n ],\n },\n // CLASSIFY: idle -> processing (call llm classify + render loading)\n {\n from: 'idle', to: 'processing', event: 'CLASSIFY',\n effects: [\n ['set', '@entity.action', 'classify'],\n ['render-ui', 'main', processingUI],\n ['call-service', 'llm', 'classify', { text: '@entity.inputText', categories: ['positive', 'negative', 'neutral'] }],\n ],\n },\n // SUMMARIZE: idle -> processing (call llm summarize + render loading)\n {\n from: 'idle', to: 'processing', event: 'SUMMARIZE',\n effects: [\n ['set', '@entity.action', 'summarize'],\n ['render-ui', 'main', processingUI],\n ['call-service', 'llm', 'summarize', { text: '@entity.inputText' }],\n ],\n },\n // COMPLETE: processing -> complete (store result + render success)\n {\n from: 'processing', to: 'complete', event: 'COMPLETE',\n effects: [\n ['set', '@entity.result', '@payload.content'],\n ['set', '@entity.llmStatus', 'complete'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: processing -> error (store error + render error)\n {\n from: 'processing', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['set', '@entity.llmStatus', 'error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [\n ['set', '@entity.llmStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.llmStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.llmStatus', 'idle'],\n ['render-ui', 'main', idleUI],\n ],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'processing' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'GENERATE', name: 'Generate' },\n { key: 'CLASSIFY', name: 'Classify' },\n { key: 'SUMMARIZE', name: 'Summarize' },\n { key: 'COMPLETE', name: 'Complete', payload: [\n { name: 'content', type: 'string', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: LlmConfig): Page | undefined {\n if (!c.standalone) return undefined;\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceLlmEntity(params: StdServiceLlmParams = {}): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceLlmTrait(params: StdServiceLlmParams = {}): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceLlmPage(params: StdServiceLlmParams = {}): Page | undefined {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceLlm(params: StdServiceLlmParams = {}): OrbitalDefinition {\n const c = resolve(params);\n const pages: Page[] = [];\n const page = buildPage(c);\n if (page) pages.push(page);\n\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n pages,\n );\n}\n","/**\n * std-service-custom-header\n *\n * Custom REST API behavior with header-based API key authentication.\n * Tests the schema-level service declaration pattern (no pre-built integration).\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceCustomHeaderParams {\n entityName?: string;\n fields?: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n standalone?: boolean;\n\n /** The custom API base URL (required) */\n baseUrl: string;\n\n /** Environment variable holding the API secret */\n secretEnvVar?: string;\n\n /** Header name for the API key */\n headerKeyName?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CustomHeaderConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n standalone: boolean;\n baseUrl: string;\n secretEnvVar: string;\n headerKeyName: string;\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceCustomHeaderParams): CustomHeaderConfig {\n const entityName = params.entityName ?? 'ApiCall';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'endpoint', type: 'string' },\n { name: 'method', type: 'string', default: 'GET' },\n { name: 'requestBody', type: 'string' },\n { name: 'responseData', type: 'string' },\n { name: 'statusCode', type: 'number', default: 0 },\n { name: 'callStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n standalone: params.standalone ?? true,\n baseUrl: params.baseUrl,\n secretEnvVar: params.secretEnvVar ?? 'CUSTOM_API_SECRET',\n headerKeyName: params.headerKeyName ?? 'X-API-Key',\n traitName: `${entityName}CustomHeader`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CustomHeaderConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: CustomHeaderConfig): Trait {\n const { entityName, standalone } = c;\n\n // idle: API tester form (only when standalone)\n const idleChildren: unknown[] = [\n { type: 'icon', name: 'globe', size: 'lg' },\n { type: 'typography', content: 'API Tester', variant: 'h2' },\n {\n type: 'input',\n field: 'endpoint',\n placeholder: '/users',\n bind: '@entity.endpoint',\n },\n {\n type: 'select',\n field: 'method',\n bind: '@entity.method',\n options: [\n { label: 'GET', value: 'GET' },\n { label: 'POST', value: 'POST' },\n { label: 'PUT', value: 'PUT' },\n { label: 'DELETE', value: 'DELETE' },\n ],\n },\n {\n type: 'textarea',\n field: 'requestBody',\n placeholder: 'JSON request body',\n bind: '@entity.requestBody',\n },\n { type: 'button', label: 'Send Request', event: 'CALL_API', variant: 'primary', icon: 'send' },\n ];\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: idleChildren,\n };\n\n // calling: loading state\n const callingUI = {\n type: 'loading-state', title: 'Calling API...', message: `Sending request to ${entityName.toLowerCase()} endpoint...`,\n };\n\n // complete: response viewer\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Response', variant: 'h2' },\n { type: 'badge', content: '@entity.statusCode', variant: 'info' },\n { type: 'code', content: '@entity.responseData', language: 'json' },\n { type: 'button', label: 'New Request', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // error: error state\n const errorUI = {\n type: 'error-state', title: 'Request Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n const initEffects: unknown[] = [['fetch', entityName]];\n if (standalone) {\n initEffects.push(['render-ui', 'main', idleUI]);\n }\n\n const transitions: unknown[] = [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: initEffects,\n },\n // CALL_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_API',\n effects: [\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-header-api', 'execute', {\n endpoint: '@entity.endpoint',\n method: '@entity.method',\n body: '@entity.requestBody',\n }],\n ],\n },\n // API_RESPONSE: calling -> complete\n {\n from: 'calling', to: 'complete', event: 'API_RESPONSE',\n effects: [\n ['set', '@entity.responseData', '@payload.data'],\n ['set', '@entity.statusCode', '@payload.statusCode'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: calling -> error\n {\n from: 'calling', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'calling' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CALL_API', name: 'Call API' },\n { key: 'API_RESPONSE', name: 'API Response', payload: [\n { name: 'data', type: 'string', required: true },\n { name: 'statusCode', type: 'number', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: CustomHeaderConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceCustomHeaderEntity(params: StdServiceCustomHeaderParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceCustomHeaderTrait(params: StdServiceCustomHeaderParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceCustomHeaderPage(params: StdServiceCustomHeaderParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceCustomHeader(params: StdServiceCustomHeaderParams): OrbitalDefinition {\n const c = resolve(params);\n const orbital = makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n // Attach custom service declaration\n return {\n ...orbital,\n services: [{\n name: 'custom-header-api',\n type: 'rest' as const,\n baseUrl: c.baseUrl,\n auth: {\n type: 'api-key' as const,\n keyName: c.headerKeyName,\n location: 'header' as const,\n secretEnv: c.secretEnvVar,\n },\n }],\n };\n}\n","/**\n * std-service-custom-query\n *\n * Custom REST API behavior with query-string API key authentication.\n * Tests the schema-level service declaration pattern with query-based auth.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceCustomQueryParams {\n entityName?: string;\n fields?: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n standalone?: boolean;\n\n /** The custom API base URL (required) */\n baseUrl: string;\n\n /** Environment variable holding the API key */\n secretEnvVar?: string;\n\n /** Query parameter name for the API key */\n queryKeyName?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CustomQueryConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n standalone: boolean;\n baseUrl: string;\n secretEnvVar: string;\n queryKeyName: string;\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceCustomQueryParams): CustomQueryConfig {\n const entityName = params.entityName ?? 'ApiCall';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'endpoint', type: 'string' },\n { name: 'method', type: 'string', default: 'GET' },\n { name: 'requestBody', type: 'string' },\n { name: 'responseData', type: 'string' },\n { name: 'statusCode', type: 'number', default: 0 },\n { name: 'callStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n standalone: params.standalone ?? true,\n baseUrl: params.baseUrl,\n secretEnvVar: params.secretEnvVar ?? 'CUSTOM_QUERY_KEY',\n queryKeyName: params.queryKeyName ?? 'api_key',\n traitName: `${entityName}CustomQuery`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CustomQueryConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: CustomQueryConfig): Trait {\n const { entityName, standalone } = c;\n\n // idle: API tester form (only when standalone)\n const idleChildren: unknown[] = [\n { type: 'icon', name: 'search', size: 'lg' },\n { type: 'typography', content: 'Query Auth API Tester', variant: 'h2' },\n {\n type: 'input',\n field: 'endpoint',\n placeholder: '/users',\n bind: '@entity.endpoint',\n },\n {\n type: 'select',\n field: 'method',\n bind: '@entity.method',\n options: [\n { label: 'GET', value: 'GET' },\n { label: 'POST', value: 'POST' },\n { label: 'PUT', value: 'PUT' },\n { label: 'DELETE', value: 'DELETE' },\n ],\n },\n {\n type: 'textarea',\n field: 'requestBody',\n placeholder: 'JSON request body',\n bind: '@entity.requestBody',\n },\n { type: 'button', label: 'Send Request', event: 'CALL_API', variant: 'primary', icon: 'send' },\n ];\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: idleChildren,\n };\n\n // calling: loading state\n const callingUI = {\n type: 'loading-state', title: 'Calling API...', message: `Sending request to ${entityName.toLowerCase()} endpoint...`,\n };\n\n // complete: response viewer\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Response', variant: 'h2' },\n { type: 'badge', content: '@entity.statusCode', variant: 'info' },\n { type: 'code', content: '@entity.responseData', language: 'json' },\n { type: 'button', label: 'New Request', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // error: error state\n const errorUI = {\n type: 'error-state', title: 'Request Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n const initEffects: unknown[] = [['fetch', entityName]];\n if (standalone) {\n initEffects.push(['render-ui', 'main', idleUI]);\n }\n\n const transitions: unknown[] = [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: initEffects,\n },\n // CALL_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_API',\n effects: [\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-query-api', 'execute', {\n endpoint: '@entity.endpoint',\n method: '@entity.method',\n body: '@entity.requestBody',\n }],\n ],\n },\n // API_RESPONSE: calling -> complete\n {\n from: 'calling', to: 'complete', event: 'API_RESPONSE',\n effects: [\n ['set', '@entity.responseData', '@payload.data'],\n ['set', '@entity.statusCode', '@payload.statusCode'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: calling -> error\n {\n from: 'calling', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'calling' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CALL_API', name: 'Call API' },\n { key: 'API_RESPONSE', name: 'API Response', payload: [\n { name: 'data', type: 'string', required: true },\n { name: 'statusCode', type: 'number', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: CustomQueryConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceCustomQueryEntity(params: StdServiceCustomQueryParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceCustomQueryTrait(params: StdServiceCustomQueryParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceCustomQueryPage(params: StdServiceCustomQueryParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceCustomQuery(params: StdServiceCustomQueryParams): OrbitalDefinition {\n const c = resolve(params);\n const orbital = makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n // Attach custom service declaration with query-string API key auth\n return {\n ...orbital,\n services: [{\n name: 'custom-query-api',\n type: 'rest' as const,\n baseUrl: c.baseUrl,\n auth: {\n type: 'api-key' as const,\n keyName: c.queryKeyName,\n location: 'query' as const,\n secretEnv: c.secretEnvVar,\n },\n }],\n };\n}\n","/**\n * std-service-custom-noauth\n *\n * Custom REST API behavior with no authentication.\n * Tests the schema-level service declaration pattern for public APIs.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level atom\n * @family service\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdServiceCustomNoauthParams {\n entityName?: string;\n fields?: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n standalone?: boolean;\n\n /** The custom API base URL (required) */\n baseUrl: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CustomNoauthConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n standalone: boolean;\n baseUrl: string;\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdServiceCustomNoauthParams): CustomNoauthConfig {\n const entityName = params.entityName ?? 'ApiCall';\n const p = plural(entityName);\n\n const requiredFields: EntityField[] = [\n { name: 'endpoint', type: 'string' },\n { name: 'method', type: 'string', default: 'GET' },\n { name: 'requestBody', type: 'string' },\n { name: 'responseData', type: 'string' },\n { name: 'statusCode', type: 'number', default: 0 },\n { name: 'callStatus', type: 'string', default: 'idle' },\n { name: 'error', type: 'string' },\n ];\n\n const baseFields = params.fields ?? [];\n const existingNames = new Set(baseFields.map(f => f.name));\n const mergedFields = [\n ...baseFields,\n ...requiredFields.filter(f => !existingNames.has(f.name)),\n ];\n const fields = ensureIdField(mergedFields);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n standalone: params.standalone ?? true,\n baseUrl: params.baseUrl,\n traitName: `${entityName}CustomNoauth`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CustomNoauthConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: CustomNoauthConfig): Trait {\n const { entityName, standalone } = c;\n\n // idle: API tester form (only when standalone)\n const idleChildren: unknown[] = [\n { type: 'icon', name: 'globe', size: 'lg' },\n { type: 'typography', content: 'Public API Tester', variant: 'h2' },\n {\n type: 'input',\n field: 'endpoint',\n placeholder: '/users',\n bind: '@entity.endpoint',\n },\n {\n type: 'select',\n field: 'method',\n bind: '@entity.method',\n options: [\n { label: 'GET', value: 'GET' },\n { label: 'POST', value: 'POST' },\n { label: 'PUT', value: 'PUT' },\n { label: 'DELETE', value: 'DELETE' },\n ],\n },\n {\n type: 'textarea',\n field: 'requestBody',\n placeholder: 'JSON request body',\n bind: '@entity.requestBody',\n },\n { type: 'button', label: 'Send Request', event: 'CALL_API', variant: 'primary', icon: 'send' },\n ];\n\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: idleChildren,\n };\n\n // calling: loading state\n const callingUI = {\n type: 'loading-state', title: 'Calling API...', message: `Sending request to ${entityName.toLowerCase()} endpoint...`,\n };\n\n // complete: response viewer\n const completeUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Response', variant: 'h2' },\n { type: 'badge', content: '@entity.statusCode', variant: 'info' },\n { type: 'code', content: '@entity.responseData', language: 'json' },\n { type: 'button', label: 'New Request', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // error: error state\n const errorUI = {\n type: 'error-state', title: 'Request Failed', message: '@entity.error', onRetry: 'RETRY',\n };\n\n const initEffects: unknown[] = [['fetch', entityName]];\n if (standalone) {\n initEffects.push(['render-ui', 'main', idleUI]);\n }\n\n const transitions: unknown[] = [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: initEffects,\n },\n // CALL_API: idle -> calling\n {\n from: 'idle', to: 'calling', event: 'CALL_API',\n effects: [\n ['render-ui', 'main', callingUI],\n ['call-service', 'custom-noauth-api', 'execute', {\n endpoint: '@entity.endpoint',\n method: '@entity.method',\n body: '@entity.requestBody',\n }],\n ],\n },\n // API_RESPONSE: calling -> complete\n {\n from: 'calling', to: 'complete', event: 'API_RESPONSE',\n effects: [\n ['set', '@entity.responseData', '@payload.data'],\n ['set', '@entity.statusCode', '@payload.statusCode'],\n ['render-ui', 'main', completeUI],\n ],\n },\n // FAILED: calling -> error\n {\n from: 'calling', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['render-ui', 'main', errorUI],\n ],\n },\n // RETRY: error -> idle\n {\n from: 'error', to: 'idle', event: 'RETRY',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: complete -> idle\n {\n from: 'complete', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'calling' },\n { name: 'complete' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CALL_API', name: 'Call API' },\n { key: 'API_RESPONSE', name: 'API Response', payload: [\n { name: 'data', type: 'string', required: true },\n { name: 'statusCode', type: 'number', required: true },\n ]},\n { key: 'FAILED', name: 'Failed', payload: [\n { name: 'error', type: 'string', required: true },\n ]},\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: CustomNoauthConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdServiceCustomNoauthEntity(params: StdServiceCustomNoauthParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdServiceCustomNoauthTrait(params: StdServiceCustomNoauthParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdServiceCustomNoauthPage(params: StdServiceCustomNoauthParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdServiceCustomNoauth(params: StdServiceCustomNoauthParams): OrbitalDefinition {\n const c = resolve(params);\n const orbital = makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n // Attach custom service declaration with no auth\n return {\n ...orbital,\n services: [{\n name: 'custom-noauth-api',\n type: 'rest' as const,\n baseUrl: c.baseUrl,\n }],\n };\n}\n","/**\n * Exports Reader\n *\n * Provides programmatic access to golden behaviors.\n * Uses behavior functions from ./functions/ instead of reading .orb files from disk.\n * This makes the package work in bundled environments (no filesystem access for package data).\n *\n * @packageDocumentation\n */\n\nimport * as behaviorFns from './functions/index.js';\nimport type { BehaviorSchema } from './types.js';\n\nexport type BehaviorLevel = 'atoms' | 'molecules' | 'organisms';\n\n/**\n * Convert function name (stdCart) to behavior name (std-cart).\n * Returns null for non-behavior exports (types, helpers, entity/trait/page variants).\n */\nfunction fnNameToBehaviorName(fnName: string): string | null {\n if (fnName.includes('Entity') || fnName.includes('Trait') || fnName.includes('Page')) return null;\n if (['connect', 'compose', 'pipe', 'makeEntity', 'makePage', 'makeOrbital', 'mergeOrbitals', 'wire', 'extractTrait', 'ensureIdField', 'plural'].includes(fnName)) return null;\n\n const withDashes = fnName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n if (!withDashes.startsWith('std-')) return null;\n return withDashes;\n}\n\ninterface BehaviorEntry {\n name: string;\n fn: (params: { entityName: string }) => unknown;\n}\n\nlet cachedEntries: BehaviorEntry[] | null = null;\n\nfunction getEntries(): BehaviorEntry[] {\n if (cachedEntries) return cachedEntries;\n\n cachedEntries = [];\n const fns = behaviorFns as Record<string, unknown>;\n\n for (const [fnName, fn] of Object.entries(fns)) {\n if (typeof fn !== 'function') continue;\n const behaviorName = fnNameToBehaviorName(fnName);\n if (!behaviorName) continue;\n cachedEntries.push({ name: behaviorName, fn: fn as (params: { entityName: string }) => unknown });\n }\n\n return cachedEntries;\n}\n\nfunction callBehavior(entry: BehaviorEntry): BehaviorSchema {\n const result = entry.fn({ entityName: entry.name.replace(/^std-/, '') });\n const schema = result as BehaviorSchema;\n schema.name = entry.name;\n return schema;\n}\n\nexport function getAllBehaviorNames(): string[] {\n return getEntries().map(e => e.name);\n}\n\nexport function getAllBehaviors(): BehaviorSchema[] {\n return getEntries().map(e => callBehavior(e));\n}\n\nexport function getBehaviorsByLevel(level: BehaviorLevel): BehaviorSchema[] {\n // Level is encoded in the behavior name pattern via the registry\n // For now, return all and let the caller filter via the registry\n return getAllBehaviors();\n}\n\nexport function loadGoldenOrb(behaviorName: string): BehaviorSchema | null {\n const entry = getEntries().find(e => e.name === behaviorName);\n if (!entry) return null;\n try {\n return callBehavior(entry);\n } catch {\n return null;\n }\n}\n\nexport function hasGoldenOrb(behaviorName: string): boolean {\n return getEntries().some(e => e.name === behaviorName);\n}\n\nexport function getBehavior(behaviorName: string): BehaviorSchema | null {\n return loadGoldenOrb(behaviorName);\n}\n","/**\n * Behavior Registry Query Helpers\n *\n * Programmatic access to behaviors-registry.json for filtering,\n * searching, and summarizing behaviors. Used by @almadar/skills\n * to compose agent prompts dynamically.\n *\n * @packageDocumentation\n */\n\nimport { loadGoldenOrb } from './exports-reader.js';\n\n// Import registry data directly — bundlers inline this at build time.\n// Falls back to fs read for dev mode (unbundled).\nlet registryJsonData: { behaviors: Record<string, unknown> } | null = null;\n\nasync function loadRegistryData(): Promise<{ behaviors: Record<string, unknown> }> {\n if (registryJsonData) return registryJsonData;\n try {\n // Try dynamic import (works in bundled and unbundled ESM)\n const { readFileSync } = await import('fs');\n const { resolve, dirname } = await import('path');\n const { fileURLToPath } = await import('url');\n const dir = dirname(fileURLToPath(import.meta.url));\n const raw = readFileSync(resolve(dir, 'behaviors-registry.json'), 'utf-8');\n registryJsonData = JSON.parse(raw);\n } catch {\n registryJsonData = { behaviors: {} };\n }\n return registryJsonData!;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface RegistryEntry {\n name: string;\n level: 'atom' | 'molecule' | 'organism';\n family: string;\n layer: string;\n description: string;\n statePattern: string;\n complexity: { states: number; events: number; transitions: number };\n defaultEntity: {\n name: string;\n persistence: string;\n fields: Array<{ name: string; type: string; default?: string }>;\n };\n defaultLabels: {\n title: string;\n entitySingular: string;\n entityPlural: string;\n };\n composableWith: string[];\n connectableEvents: string[];\n eventPayloads: Record<string, Array<{ name: string; type: string; required: boolean }>>;\n}\n\nexport interface BehaviorSummary {\n name: string;\n level: string;\n description: string;\n states: string[];\n events: string[];\n slots: string[];\n patterns: string[];\n complexity: { states: number; events: number; transitions: number };\n composableWith: string[];\n}\n\n// ============================================================================\n// Registry Cache\n// ============================================================================\n\nlet registryCache: Record<string, RegistryEntry> | null = null;\n\n/**\n * Read and cache the behavior registry.\n * Async to support bundled environments where fs may not be available.\n */\nexport async function getBehaviorRegistry(): Promise<Record<string, RegistryEntry>> {\n if (registryCache) return registryCache;\n try {\n const data = await loadRegistryData();\n registryCache = data.behaviors as Record<string, RegistryEntry>;\n return registryCache;\n } catch {\n return {};\n }\n}\n\n// ============================================================================\n// Query Functions\n// ============================================================================\n\n/**\n * Filter behaviors by domain. Matches against layer (primary) and family (fallback).\n */\nexport async function getBehaviorsByDomain(domain: string): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const lower = domain.toLowerCase();\n return Object.values(registry).filter((b) => {\n return b.layer.toLowerCase() === lower ||\n b.layer.toLowerCase().includes(lower) ||\n b.family.toLowerCase() === lower ||\n b.family.toLowerCase().includes(lower);\n });\n}\n\n/**\n * Filter behaviors by connectable operations (events).\n * Returns behaviors sorted by match count (most matching ops first).\n */\nexport async function getBehaviorsByOperations(ops: string[]): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const upperOps = ops.map(o => o.toUpperCase());\n\n const scored = Object.values(registry).map((b) => {\n const matches = upperOps.filter(op =>\n b.connectableEvents.some(e => e.toUpperCase() === op || e.toUpperCase().includes(op))\n );\n return { entry: b, score: matches.length };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Fuzzy search across name, description, family, layer, and entity name.\n */\nexport async function searchBehaviors(query: string): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const tokens = query.toLowerCase().split(/\\s+/).filter(Boolean);\n\n const scored = Object.values(registry).map((b) => {\n const searchText = [\n b.name,\n b.description,\n b.family,\n b.layer,\n b.defaultEntity.name,\n b.statePattern,\n ].join(' ').toLowerCase();\n\n const score = tokens.filter(t => searchText.includes(t)).length;\n return { entry: b, score };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Get a compact summary of a behavior including slots and patterns from the .orb file.\n */\nexport async function getBehaviorSummary(name: string): Promise<BehaviorSummary | null> {\n const registry = await getBehaviorRegistry();\n const entry = registry[name];\n if (!entry) return null;\n\n // Base data from registry\n const summary: BehaviorSummary = {\n name: entry.name,\n level: entry.level,\n description: entry.description,\n states: entry.statePattern.split(', ').filter(Boolean),\n events: entry.connectableEvents,\n slots: [],\n patterns: [],\n complexity: entry.complexity,\n composableWith: entry.composableWith.slice(0, 10),\n };\n\n // Enrich with slots and patterns from the actual .orb file\n try {\n const orb = loadGoldenOrb(name);\n if (orb) {\n const slots = new Set<string>();\n const patterns = new Set<string>();\n extractSlotsAndPatterns(orb, slots, patterns);\n summary.slots = Array.from(slots);\n summary.patterns = Array.from(patterns);\n }\n } catch {\n // .orb load failed, return registry-only data\n }\n\n return summary;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Walk an object recursively to extract render-ui slots and pattern types.\n */\nfunction extractSlotsAndPatterns(\n obj: unknown,\n slots: Set<string>,\n patterns: Set<string>,\n): void {\n if (Array.isArray(obj)) {\n // Check for render-ui effect: [\"render-ui\", slotName, uiTree]\n if (obj.length >= 3 && obj[0] === 'render-ui' && typeof obj[1] === 'string') {\n slots.add(obj[1]);\n if (obj[2] && typeof obj[2] === 'object') {\n extractPatternTypes(obj[2], patterns);\n }\n }\n for (const item of obj) {\n extractSlotsAndPatterns(item, slots, patterns);\n }\n } else if (obj && typeof obj === 'object') {\n for (const value of Object.values(obj)) {\n extractSlotsAndPatterns(value, slots, patterns);\n }\n }\n}\n\n/**\n * Walk a render-ui tree to collect all pattern type values.\n */\nfunction extractPatternTypes(node: unknown, patterns: Set<string>): void {\n if (!node || typeof node !== 'object') return;\n const obj = node as Record<string, unknown>;\n if (typeof obj.type === 'string') {\n patterns.add(obj.type);\n }\n if (Array.isArray(obj.children)) {\n for (const child of obj.children) {\n extractPatternTypes(child, patterns);\n }\n }\n}\n"]}