@almadar/core 10.129.0 → 11.0.1
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.
- package/dist/behavior-package.d.ts +49 -11
- package/dist/behavior-package.js +1 -1
- package/dist/{orbital-CkFdDS9f.d.ts → builders-BdgbY7Th.d.ts} +5828 -6917
- package/dist/builders.d.ts +6 -6
- package/dist/builders.js +7 -6
- package/dist/{bus-CcbB__oo.d.ts → bus-C0hFDNFR.d.ts} +262 -354
- package/dist/chunk-347APWFM.js +286 -0
- package/dist/chunk-347APWFM.js.map +1 -0
- package/dist/chunk-5WQ3U7NJ.js +2363 -0
- package/dist/chunk-5WQ3U7NJ.js.map +1 -0
- package/dist/chunk-5YTPYMPZ.js +99 -0
- package/dist/chunk-5YTPYMPZ.js.map +1 -0
- package/dist/chunk-66Q5VX2F.js +3810 -0
- package/dist/chunk-66Q5VX2F.js.map +1 -0
- package/dist/chunk-7GHJU5WI.js +39 -0
- package/dist/chunk-7GHJU5WI.js.map +1 -0
- package/dist/chunk-B4MNHGBP.js +8 -0
- package/dist/chunk-B4MNHGBP.js.map +1 -0
- package/dist/chunk-E4T2MQAV.js +24 -0
- package/dist/chunk-E4T2MQAV.js.map +1 -0
- package/dist/chunk-ENOCKYGA.js +412 -0
- package/dist/chunk-ENOCKYGA.js.map +1 -0
- package/dist/chunk-FGT5OS2Y.js +918 -0
- package/dist/chunk-FGT5OS2Y.js.map +1 -0
- package/dist/chunk-GF7KCLNR.js +3284 -0
- package/dist/chunk-GF7KCLNR.js.map +1 -0
- package/dist/chunk-PNGFWLHD.js +1567 -0
- package/dist/chunk-PNGFWLHD.js.map +1 -0
- package/dist/{chunk-X4SC7FGF.js → chunk-RGACZEYC.js} +99 -96
- package/dist/chunk-RGACZEYC.js.map +1 -0
- package/dist/{chunk-RYPVOI6H.js → chunk-SNZYN7UA.js} +2541 -433
- package/dist/{chunk-RYPVOI6H.js.map → chunk-SNZYN7UA.js.map} +1 -1
- package/dist/{chunk-KDMV222Q.js → chunk-TDNQT3M3.js} +304 -373
- package/dist/chunk-TDNQT3M3.js.map +1 -0
- package/dist/chunk-VG7BRFUD.js +152 -0
- package/dist/chunk-VG7BRFUD.js.map +1 -0
- package/dist/chunk-Z7BI7DE7.js +1293 -0
- package/dist/chunk-Z7BI7DE7.js.map +1 -0
- package/dist/{domain-Dz3jP-UM.d.ts → domain-Cpmja5ak.d.ts} +55 -55
- package/dist/{effect-CiEVLsZz.d.ts → effect-DZaXwSAz.d.ts} +283 -453
- package/dist/{effect-result-Bebwu9yT.d.ts → effect-result-1HpXgeBc.d.ts} +656 -851
- package/dist/{expression-D0Fs0riG.d.ts → expression-DirYKz-f.d.ts} +5 -13
- package/dist/factory/index.d.ts +7 -144
- package/dist/factory/index.js +8 -8
- package/dist/factory-runtime/index.d.ts +7 -6
- package/dist/factory-runtime/index.js +527 -8
- package/dist/factory-runtime/index.js.map +1 -1
- package/dist/fixtures.d.ts +9 -11
- package/dist/fixtures.js +12 -8
- package/dist/fixtures.js.map +1 -1
- package/dist/i18n/index.d.ts +15 -19
- package/dist/i18n/index.js +2 -1
- package/dist/{index-BC-Jycqj.d.ts → index-D7SxwNdv.d.ts} +34 -734
- package/dist/index.d.ts +92 -247
- package/dist/index.js +322 -986
- package/dist/index.js.map +1 -1
- package/dist/kernel-wire.d.ts +3 -3
- package/dist/kernel-wire.js +3 -79
- package/dist/kernel-wire.js.map +1 -1
- package/dist/language/constructs.json +22 -2
- package/dist/language/program-types.json +203 -22
- package/dist/language/protocols.json +46 -0
- package/dist/language/ui-vocabulary.json +1697 -0
- package/dist/language/validation-codes.json +1222 -1212
- package/dist/language/vocabulary.json +44 -8
- package/dist/language-data.d.ts +7 -4
- package/dist/language-data.js +20 -14
- package/dist/language-data.js.map +1 -1
- package/dist/patterns/component-mapping.json +11 -1
- package/dist/patterns/definitions.d.ts +2 -2
- package/dist/patterns/definitions.js +1 -1
- package/dist/patterns/event-contracts.json +1 -15
- package/dist/patterns/game-font-families.json +13 -0
- package/dist/patterns/index.d.ts +24 -120
- package/dist/patterns/index.js +3 -3
- package/dist/patterns/pattern-tile-geometry.json +1065 -0
- package/dist/patterns/patterns-registry.json +2539 -431
- package/dist/patterns/registry.json +2539 -431
- package/dist/trait-sRjIivFq.d.ts +3519 -0
- package/dist/types/index.d.ts +9 -10
- package/dist/types/index.js +11 -5
- package/dist/{types-DGwrltUF.d.ts → types-C6_yPMpn.d.ts} +3 -3
- package/fixtures/events-wire/client-effects-by-trait/response.json +0 -18
- package/fixtures/events-wire/client-effects-provenance/response.json +0 -18
- package/fixtures/events-wire/effect-results-every-kind/response.json +2 -27
- package/fixtures/events-wire/navigate-1/response.json +8 -5
- package/fixtures/events-wire/navigate-2/response.json +11 -8
- package/fixtures/events-wire/navigate-3/response.json +14 -11
- package/fixtures/events-wire/navigate-back/response.json +7 -4
- package/fixtures/events-wire/render-ui-3/response.json +12 -9
- package/fixtures/events-wire/render-ui-clear/response.json +0 -7
- package/fixtures/events-wire/sse-stream/response.json +0 -20
- package/fixtures/events-wire/sse-stream/stream.json +0 -20
- package/fixtures/events-wire/stateless-traits/response.json +14 -5
- package/fixtures/kernel-wire/golden/basic-entity.json +1687 -0
- package/fixtures/kernel-wire/golden/entity-rerender.json +743 -0
- package/fixtures/kernel-wire/golden/rollback.json +793 -0
- package/fixtures/kernel-wire/golden/tick-counter.json +1538 -0
- package/fixtures/kernel-wire/golden/two-orbital-chore.json +847 -0
- package/fixtures/kernel-wire/golden/two-orbital-task.json +457 -0
- package/fixtures/kernel-wire/played-step.json +136 -0
- package/fixtures/kernel-wire/scripts/basic-entity.json +28 -0
- package/fixtures/kernel-wire/scripts/entity-rerender.json +13 -0
- package/fixtures/kernel-wire/scripts/rollback.json +53 -0
- package/fixtures/kernel-wire/scripts/tick-counter.json +26 -0
- package/fixtures/kernel-wire/scripts/two-orbital-chore.json +9 -0
- package/fixtures/kernel-wire/scripts/two-orbital-task.json +9 -0
- package/package.json +28 -19
- package/dist/builders-DmZE5By0.d.ts +0 -2663
- package/dist/chunk-45I2O4SJ.js +0 -4646
- package/dist/chunk-45I2O4SJ.js.map +0 -1
- package/dist/chunk-6LR43Z5E.js +0 -3061
- package/dist/chunk-6LR43Z5E.js.map +0 -1
- package/dist/chunk-GIUA3NUJ.js +0 -809
- package/dist/chunk-GIUA3NUJ.js.map +0 -1
- package/dist/chunk-GTY53NS5.js +0 -1908
- package/dist/chunk-GTY53NS5.js.map +0 -1
- package/dist/chunk-JOHDVS6J.js +0 -1614
- package/dist/chunk-JOHDVS6J.js.map +0 -1
- package/dist/chunk-KDMV222Q.js.map +0 -1
- package/dist/chunk-QRHJUS3D.js +0 -23
- package/dist/chunk-QRHJUS3D.js.map +0 -1
- package/dist/chunk-QUOTJULD.js +0 -4009
- package/dist/chunk-QUOTJULD.js.map +0 -1
- package/dist/chunk-V5VNGRVU.js +0 -66
- package/dist/chunk-V5VNGRVU.js.map +0 -1
- package/dist/chunk-X4SC7FGF.js.map +0 -1
- package/dist/entityAccess-BPSz1i2n.d.ts +0 -80
- package/dist/mock/index.d.ts +0 -153
- package/dist/mock/index.js +0 -190
- package/dist/mock/index.js.map +0 -1
- package/dist/schema-T5RT5s6H.d.ts +0 -282
- package/dist/state-machine/index.d.ts +0 -359
- package/dist/state-machine/index.js +0 -3
- package/dist/state-machine/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/i18n/orb-notation.json","../src/i18n/en.json","../src/i18n/lolo-lexer.ts","../src/i18n/localize.ts","../src/i18n/index.ts"],"names":["start","isExpression"],"mappings":"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","file":"chunk-JOHDVS6J.js","sourcesContent":["{\n \"reason\": \"Design-system token NAMES reachable only under a theme `tokens` node. They are keys of the .orb schema but notation, not language vocabulary, so they are excluded from the `orb` i18n section (owner ruling 2026-09-07). Regenerate with: pnpm --filter @almadar/core run gen:orb-notation\",\n \"keys\": [\n \"2xl\",\n \"3xl\",\n \"4xl\",\n \"accent\",\n \"accentForeground\",\n \"accentImage\",\n \"awaitingSkeleton\",\n \"backdrop\",\n \"background\",\n \"base\",\n \"bodyDefault\",\n \"bodyEmphasis\",\n \"bodyFamily\",\n \"bodyQuiet\",\n \"border\",\n \"borderHairline\",\n \"borderHeavy\",\n \"borderHover\",\n \"borderStandard\",\n \"borderStyle\",\n \"borderStyleInteractive\",\n \"busyDelay\",\n \"buttonHeightLg\",\n \"buttonHeightMd\",\n \"buttonHeightSm\",\n \"caption\",\n \"card\",\n \"cardElevation\",\n \"cardForeground\",\n \"cardImage\",\n \"cardPaddingLg\",\n \"cardPaddingMd\",\n \"cardPaddingSm\",\n \"corner\",\n \"cornerShape\",\n \"cornerShapeInteractive\",\n \"cornerShapePill\",\n \"dash\",\n \"defaultSize\",\n \"dialogElevation\",\n \"dialogPadding\",\n \"display-1\",\n \"display-2\",\n \"displayFamily\",\n \"dot\",\n \"dramatic\",\n \"duration\",\n \"durations\",\n \"easing\",\n \"easings\",\n \"edgeHeight\",\n \"edgeMask\",\n \"emphasized\",\n \"emptyAsset\",\n \"enter\",\n \"enterRise\",\n \"enterScale\",\n \"enterSlide\",\n \"entry\",\n \"error\",\n \"errorAsset\",\n \"errorForeground\",\n \"exit\",\n \"expand\",\n \"family\",\n \"fast\",\n \"fillOpacity\",\n \"fillStyle\",\n \"fog\",\n \"fontImport\",\n \"foreground\",\n \"glow\",\n \"headingMajor\",\n \"headingMinor\",\n \"headingShadow\",\n \"headingStyle\",\n \"headingTracking\",\n \"headingTransform\",\n \"headingWeight\",\n \"hover\",\n \"info\",\n \"infoForeground\",\n \"inputHeightLg\",\n \"inputHeightMd\",\n \"inputHeightSm\",\n \"instant\",\n \"intents\",\n \"interactiveElevation\",\n \"labelCase\",\n \"labelFont\",\n \"labelSize\",\n \"labelWeight\",\n \"lg\",\n \"lightAmbient\",\n \"lightKey\",\n \"lightKeyColor\",\n \"lineCap\",\n \"lineHeight\",\n \"lineJoin\",\n \"linear\",\n \"loadingAsset\",\n \"marker\",\n \"materialFlat\",\n \"materialMetalness\",\n \"materialOutline\",\n \"materialRoughness\",\n \"modalEnter\",\n \"modalExit\",\n \"monoFamily\",\n \"muted\",\n \"mutedForeground\",\n \"normal\",\n \"numeric\",\n \"onboardingAsset\",\n \"pageEnter\",\n \"pageImage\",\n \"pageImageSize\",\n \"placeholder\",\n \"popoverElevation\",\n \"popoverEnter\",\n \"popoverExit\",\n \"press\",\n \"pressedElevation\",\n \"primary\",\n \"primaryForeground\",\n \"primaryHover\",\n \"radiusContainer\",\n \"radiusInteractive\",\n \"radiusPill\",\n \"ring\",\n \"roughness\",\n \"rowHeightCompact\",\n \"rowHeightNormal\",\n \"rowHeightSpacious\",\n \"scale\",\n \"scrim\",\n \"secondary\",\n \"secondaryForeground\",\n \"secondaryHover\",\n \"sectionGap\",\n \"shadow\",\n \"shapes\",\n \"size\",\n \"slow\",\n \"sm\",\n \"space0\",\n \"space1\",\n \"space10\",\n \"space11\",\n \"space12\",\n \"space2\",\n \"space3\",\n \"space4\",\n \"space5\",\n \"space6\",\n \"space7\",\n \"space8\",\n \"space9\",\n \"spring\",\n \"stagger\",\n \"standard\",\n \"strokeBold\",\n \"strokeNormal\",\n \"strokeThin\",\n \"strokeWidth\",\n \"success\",\n \"successForeground\",\n \"surfaceHover\",\n \"tableBorder\",\n \"tableHeader\",\n \"tableRowHover\",\n \"textureMask\",\n \"textureSize\",\n \"toastElevation\",\n \"toastEnter\",\n \"toastExit\",\n \"warning\",\n \"warningForeground\",\n \"weight\",\n \"xl\",\n \"xs\"\n ]\n}\n","{\n \"meta\": {\n \"code\": \"en\",\n \"name\": \"English\",\n \"rtl\": false\n },\n \"keywords\": {\n \"app\": \"app\",\n \"orbital\": \"orbital\",\n \"uses\": \"uses\",\n \"expects\": \"expects\",\n \"entity\": \"entity\",\n \"type\": \"type\",\n \"derived\": \"derived\",\n \"trait\": \"trait\",\n \"initial\": \"initial\",\n \"state\": \"state\",\n \"for\": \"for\",\n \"page\": \"page\",\n \"as\": \"as\",\n \"theme\": \"theme\",\n \"emits\": \"emits\",\n \"listens\": \"listens\",\n \"ticks\": \"ticks\",\n \"config\": \"config\",\n \"when\": \"when\",\n \"with\": \"with\",\n \"from\": \"from\",\n \"to\": \"to\",\n \"every\": \"every\",\n \"capabilities\": \"capabilities\",\n \"match\": \"match\",\n \"external\": \"external\",\n \"internal\": \"internal\",\n \"on\": \"on\",\n \"name\": \"name\",\n \"fields\": \"fields\",\n \"events\": \"events\",\n \"event\": \"event\",\n \"emitsScope\": \"emitsScope\",\n \"identity\": \"identity\",\n \"pages\": \"pages\",\n \"omit\": \"omit\",\n \"only\": \"only\",\n \"roles\": \"roles\",\n \"entities\": \"entities\",\n \"extend\": \"extend\",\n \"retype\": \"retype\",\n \"traits\": \"traits\",\n \"mock\": \"mock\",\n \"lazy\": \"lazy\",\n \"locales\": \"locales\",\n \"egress\": \"egress\",\n \"store\": \"store\",\n \"themes\": \"themes\",\n \"public\": \"public\",\n \"instances\": \"instances\",\n \"access\": \"access\",\n \"indexing\": \"indexing\",\n \"title\": \"title\",\n \"description\": \"description\",\n \"origin\": \"origin\",\n \"icon\": \"icon\",\n \"siteName\": \"siteName\",\n \"signIn\": \"signIn\",\n \"authenticated\": \"authenticated\",\n \"index\": \"index\",\n \"noindex\": \"noindex\",\n \"version\": \"version\",\n \"translationOf\": \"translationOf\",\n \"label\": \"label\",\n \"inbound\": \"inbound\",\n \"answers\": \"answers\",\n \"verifies\": \"verifies\",\n \"fs\": \"fs\",\n \"exec\": \"exec\",\n \"net\": \"net\",\n \"env\": \"env\",\n \"stdio\": \"stdio\",\n \"sys\": \"sys\",\n \"desktop\": \"desktop\",\n \"kv\": \"kv\",\n \"deployment\": \"deployment\",\n \"input\": \"input\",\n \"http\": \"http\",\n \"boot\": \"boot\"\n },\n \"shapes\": {\n \"Entity\": \"Entity\",\n \"Trait\": \"Trait\",\n \"Page\": \"Page\",\n \"Orbital\": \"Orbital\",\n \"Event\": \"Event\"\n },\n \"tags\": {\n \"persistent\": \"persistent\",\n \"runtime\": \"runtime\",\n \"shared\": \"shared\",\n \"client\": \"client\",\n \"optimistic\": \"optimistic\",\n \"server\": \"server\",\n \"browser\": \"browser\",\n \"identity\": \"identity\",\n \"background\": \"background\",\n \"visible\": \"visible\",\n \"store\": \"store\"\n },\n \"categories\": {},\n \"capabilities\": {\n \"read\": \"read\",\n \"write\": \"write\",\n \"browse\": \"browse\",\n \"create\": \"create\",\n \"upsert\": \"upsert\",\n \"update\": \"update\",\n \"delete\": \"delete\",\n \"notify\": \"notify\",\n \"schedule\": \"schedule\",\n \"invoke\": \"invoke\",\n \"batch\": \"batch\"\n },\n \"annotations\": {\n \"key\": \"key\",\n \"unique\": \"unique\",\n \"intrinsic\": \"intrinsic\",\n \"label\": \"label\",\n \"description\": \"description\",\n \"synonyms\": \"synonyms\",\n \"mock\": \"mock\",\n \"tier\": \"tier\",\n \"rebindable\": \"rebindable\",\n \"read\": \"read\",\n \"create\": \"create\",\n \"update\": \"update\",\n \"delete\": \"delete\",\n \"icon\": \"icon\",\n \"roles\": \"roles\",\n \"invariant\": \"invariant\",\n \"holds\": \"holds\",\n \"ensures\": \"ensures\"\n },\n \"sigils\": {\n \"entity\": \"entity\",\n \"payload\": \"payload\",\n \"state\": \"state\",\n \"now\": \"now\",\n \"config\": \"config\",\n \"user\": \"user\",\n \"trait\": \"trait\",\n \"event\": \"event\",\n \"prevEvents\": \"prevEvents\",\n \"prevStates\": \"prevStates\",\n \"fromState\": \"fromState\",\n \"toState\": \"toState\",\n \"fromEntity\": \"fromEntity\",\n \"locale\": \"locale\"\n },\n \"effects\": {\n \"set\": \"set\",\n \"fetch\": \"fetch\",\n \"persist\": \"persist\",\n \"emit\": \"emit\",\n \"navigate\": \"navigate\",\n \"navigate-back\": \"navigate-back\",\n \"render-ui\": \"render-ui\",\n \"notify\": \"notify\",\n \"ref\": \"ref\",\n \"call-service\": \"call-service\",\n \"http\": \"http\",\n \"redis\": \"redis\",\n \"postgres\": \"postgres\",\n \"cancel-call\": \"cancel-call\",\n \"invoke\": \"invoke\",\n \"do\": \"do\",\n \"if\": \"if\",\n \"let\": \"let\",\n \"fn\": \"fn\",\n \"lambda\": \"lambda\",\n \"quote\": \"quote\",\n \"quasiquote\": \"quasiquote\",\n \"unquote\": \"unquote\",\n \"match\": \"match\",\n \"when\": \"when\",\n \"random-bytes\": \"random-bytes\",\n \"credential-status\": \"credential-status\",\n \"credential-forget\": \"credential-forget\",\n \"credential-list\": \"credential-list\",\n \"credential-set\": \"credential-set\",\n \"credential-remove\": \"credential-remove\",\n \"credential-test\": \"credential-test\",\n \"credential-mode\": \"credential-mode\",\n \"credential-rotate\": \"credential-rotate\",\n \"oauth-authorize\": \"oauth-authorize\",\n \"oauth-connection-status\": \"oauth-connection-status\",\n \"oauth-connection-forget\": \"oauth-connection-forget\"\n },\n \"types\": {\n \"string\": \"string\",\n \"number\": \"number\",\n \"int\": \"int\",\n \"float\": \"float\",\n \"bool\": \"bool\",\n \"boolean\": \"boolean\",\n \"timestamp\": \"timestamp\",\n \"date\": \"date\",\n \"datetime\": \"datetime\",\n \"duration\": \"duration\",\n \"money\": \"money\",\n \"file\": \"file\",\n \"bytes\": \"bytes\",\n \"email\": \"email\",\n \"url\": \"url\",\n \"phone\": \"phone\",\n \"uuid\": \"uuid\",\n \"image\": \"image\",\n \"icon\": \"icon\",\n \"asset\": \"asset\",\n \"component\": \"component\",\n \"object\": \"object\",\n \"array\": \"array\",\n \"enum\": \"enum\",\n \"relation\": \"relation\",\n \"node\": \"node\",\n \"union\": \"union\",\n \"tuple\": \"tuple\",\n \"void\": \"void\",\n \"null\": \"null\",\n \"any\": \"any\",\n \"trait\": \"trait\",\n \"orbital\": \"orbital\",\n \"behavior\": \"behavior\",\n \"entity\": \"entity\",\n \"event\": \"event\",\n \"EventAddress\": \"EventAddress\",\n \"CallKey\": \"CallKey\",\n \"field\": \"field\",\n \"slot\": \"slot\",\n \"pattern\": \"pattern\",\n \"Map\": \"Map\",\n \"secret\": \"secret\",\n \"SExpr\": \"SExpr\"\n },\n \"units\": {\n \"ms\": \"ms\",\n \"s\": \"s\",\n \"m\": \"m\",\n \"h\": \"h\",\n \"d\": \"d\"\n },\n \"literals\": {\n \"true\": \"true\",\n \"false\": \"false\",\n \"null\": \"null\"\n },\n \"reservedEvents\": {\n \"INIT\": \"INIT\"\n },\n \"orb\": {\n \"_metadata\": \"_metadata\",\n \"_resolved\": \"_resolved\",\n \"access_waivers\": \"access_waivers\",\n \"ensures\": \"ensures\",\n \"holds\": \"holds\",\n \"invariants\": \"invariants\",\n \"alias\": \"alias\",\n \"animations\": \"animations\",\n \"appliesTo\": \"appliesTo\",\n \"as\": \"as\",\n \"aspect\": \"aspect\",\n \"assetRef\": \"assetRef\",\n \"at\": \"at\",\n \"auth\": \"auth\",\n \"auxiliaryEntities\": \"auxiliaryEntities\",\n \"awaitRender\": \"awaitRender\",\n \"bakedName\": \"bakedName\",\n \"baseUrl\": \"baseUrl\",\n \"behavior\": \"behavior\",\n \"capabilities\": \"capabilities\",\n \"cardinality\": \"cardinality\",\n \"category\": \"category\",\n \"className\": \"className\",\n \"classification\": \"classification\",\n \"collection\": \"collection\",\n \"color\": \"color\",\n \"colors\": \"colors\",\n \"columns\": \"columns\",\n \"component\": \"component\",\n \"config\": \"config\",\n \"configProvenance\": \"configProvenance\",\n \"container\": \"container\",\n \"content\": \"content\",\n \"create\": \"create\",\n \"create_policy\": \"create_policy\",\n \"createdAt\": \"createdAt\",\n \"curName\": \"curName\",\n \"customPatterns\": \"customPatterns\",\n \"darkMode\": \"darkMode\",\n \"dataEntities\": \"dataEntities\",\n \"default\": \"default\",\n \"definerKnob\": \"definerKnob\",\n \"delayMs\": \"delayMs\",\n \"delete\": \"delete\",\n \"delete_policy\": \"delete_policy\",\n \"density\": \"density\",\n \"description\": \"description\",\n \"description_visual_prompt\": \"description_visual_prompt\",\n \"design\": \"design\",\n \"designTokens\": \"designTokens\",\n \"desktop\": \"desktop\",\n \"detailPattern\": \"detailPattern\",\n \"device\": \"device\",\n \"dimension\": \"dimension\",\n \"displayName\": \"displayName\",\n \"domainContext\": \"domainContext\",\n \"effectRow\": \"effectRow\",\n \"effects\": \"effects\",\n \"elevation\": \"elevation\",\n \"emitIds\": \"emitIds\",\n \"emits\": \"emits\",\n \"emitsScope\": \"emitsScope\",\n \"enabled\": \"enabled\",\n \"entities\": \"entities\",\n \"entity\": \"entity\",\n \"entityBindingDescription\": \"entityBindingDescription\",\n \"entityBindingSynonyms\": \"entityBindingSynonyms\",\n \"entityContract\": \"entityContract\",\n \"entityId\": \"entityId\",\n \"entityRebindable\": \"entityRebindable\",\n \"entityRefIds\": \"entityRefIds\",\n \"entries\": \"entries\",\n \"env\": \"env\",\n \"equals\": \"equals\",\n \"event\": \"event\",\n \"eventId\": \"eventId\",\n \"eventIds\": \"eventIds\",\n \"events\": \"events\",\n \"exec\": \"exec\",\n \"expects\": \"expects\",\n \"exposes\": \"exposes\",\n \"extend\": \"extend\",\n \"retype\": \"retype\",\n \"extends\": \"extends\",\n \"extendsId\": \"extendsId\",\n \"external\": \"external\",\n \"field\": \"field\",\n \"fields\": \"fields\",\n \"fingerprint\": \"fingerprint\",\n \"flowPattern\": \"flowPattern\",\n \"foreignKey\": \"foreignKey\",\n \"formPattern\": \"formPattern\",\n \"forwardedFrom\": \"forwardedFrom\",\n \"from\": \"from\",\n \"fs\": \"fs\",\n \"geometry\": \"geometry\",\n \"glob\": \"glob\",\n \"guard\": \"guard\",\n \"guards\": \"guards\",\n \"headers\": \"headers\",\n \"icon\": \"icon\",\n \"iconography\": \"iconography\",\n \"id\": \"id\",\n \"identity\": \"identity\",\n \"illustration\": \"illustration\",\n \"inbound\": \"inbound\",\n \"initialEffects\": \"initialEffects\",\n \"instances\": \"instances\",\n \"interactive\": \"interactive\",\n \"interval\": \"interval\",\n \"intrinsic\": \"intrinsic\",\n \"isFinal\": \"isFinal\",\n \"isInitial\": \"isInitial\",\n \"isTerminal\": \"isTerminal\",\n \"item\": \"item\",\n \"items\": \"items\",\n \"key\": \"key\",\n \"keyName\": \"keyName\",\n \"kind\": \"kind\",\n \"kinds\": \"kinds\",\n \"knob\": \"knob\",\n \"label\": \"label\",\n \"lazy\": \"lazy\",\n \"lazyPages\": \"lazyPages\",\n \"themeDefinitions\": \"themeDefinitions\",\n \"ledger\": \"ledger\",\n \"linkedEntity\": \"linkedEntity\",\n \"linkedEntityId\": \"linkedEntityId\",\n \"listPattern\": \"listPattern\",\n \"listened\": \"listened\",\n \"listens\": \"listens\",\n \"local\": \"local\",\n \"locales\": \"locales\",\n \"location\": \"location\",\n \"max\": \"max\",\n \"maxAttempts\": \"maxAttempts\",\n \"mergedFrom\": \"mergedFrom\",\n \"projectedFrom\": \"projectedFrom\",\n \"messageSources\": \"messageSources\",\n \"min\": \"min\",\n \"mock\": \"mock\",\n \"modes\": \"modes\",\n \"motion\": \"motion\",\n \"mounts\": \"mounts\",\n \"name\": \"name\",\n \"nestedForwardedFrom\": \"nestedForwardedFrom\",\n \"net\": \"net\",\n \"omit\": \"omit\",\n \"onDelete\": \"onDelete\",\n \"onEntry\": \"onEntry\",\n \"onExit\": \"onExit\",\n \"only\": \"only\",\n \"orbRef\": \"orbRef\",\n \"orbital\": \"orbital\",\n \"orbitalId\": \"orbitalId\",\n \"orbitals\": \"orbitals\",\n \"originalEvent\": \"originalEvent\",\n \"originalName\": \"originalName\",\n \"outbound\": \"outbound\",\n \"owner\": \"owner\",\n \"pageIds\": \"pageIds\",\n \"pages\": \"pages\",\n \"parent\": \"parent\",\n \"path\": \"path\",\n \"pattern\": \"pattern\",\n \"patternPath\": \"patternPath\",\n \"payload\": \"payload\",\n \"payloadEntity\": \"payloadEntity\",\n \"payloadFor\": \"payloadFor\",\n \"payloadMapping\": \"payloadMapping\",\n \"payloadSchema\": \"payloadSchema\",\n \"persistence\": \"persistence\",\n \"personas\": \"personas\",\n \"presentation\": \"presentation\",\n \"primaryColor\": \"primaryColor\",\n \"primaryEntity\": \"primaryEntity\",\n \"primaryKey\": \"primaryKey\",\n \"priority\": \"priority\",\n \"prop\": \"prop\",\n \"properties\": \"properties\",\n \"props\": \"props\",\n \"provides\": \"provides\",\n \"publicDir\": \"publicDir\",\n \"radii\": \"radii\",\n \"read\": \"read\",\n \"read_policy\": \"read_policy\",\n \"reconnect\": \"reconnect\",\n \"ref\": \"ref\",\n \"refId\": \"refId\",\n \"reference\": \"reference\",\n \"relatedLinks\": \"relatedLinks\",\n \"relation\": \"relation\",\n \"renames\": \"renames\",\n \"request\": \"request\",\n \"requestFragment\": \"requestFragment\",\n \"required\": \"required\",\n \"requiredFields\": \"requiredFields\",\n \"requires\": \"requires\",\n \"resolved\": \"resolved\",\n \"resource\": \"resource\",\n \"role\": \"role\",\n \"roles\": \"roles\",\n \"rows\": \"rows\",\n \"runsInBackground\": \"runsInBackground\",\n \"runtime\": \"runtime\",\n \"schemaVersion\": \"schemaVersion\",\n \"scope\": \"scope\",\n \"scopeOverridden\": \"scopeOverridden\",\n \"secretEnv\": \"secretEnv\",\n \"sections\": \"sections\",\n \"semanticRole\": \"semanticRole\",\n \"serverPath\": \"serverPath\",\n \"services\": \"services\",\n \"shadows\": \"shadows\",\n \"shape\": \"shape\",\n \"shared\": \"shared\",\n \"singleton\": \"singleton\",\n \"site\": \"site\",\n \"skeleton\": \"skeleton\",\n \"slot\": \"slot\",\n \"slots\": \"slots\",\n \"softDelete\": \"softDelete\",\n \"source\": \"source\",\n \"sourceBehavior\": \"sourceBehavior\",\n \"sourceDeclaration\": \"sourceDeclaration\",\n \"sourceEntityDefinition\": \"sourceEntityDefinition\",\n \"spacing\": \"spacing\",\n \"spec\": \"spec\",\n \"stack\": \"stack\",\n \"state\": \"state\",\n \"stateMachine\": \"stateMachine\",\n \"states\": \"states\",\n \"strict\": \"strict\",\n \"style\": \"style\",\n \"subDomain\": \"subDomain\",\n \"suggestedGuards\": \"suggestedGuards\",\n \"summary\": \"summary\",\n \"surface\": \"surface\",\n \"surfaces\": \"surfaces\",\n \"synonyms\": \"synonyms\",\n \"sys\": \"sys\",\n \"target\": \"target\",\n \"targetView\": \"targetView\",\n \"text\": \"text\",\n \"theme\": \"theme\",\n \"tick\": \"tick\",\n \"ticks\": \"ticks\",\n \"tier\": \"tier\",\n \"timeBoundMs\": \"timeBoundMs\",\n \"timeout\": \"timeout\",\n \"timestamps\": \"timestamps\",\n \"title\": \"title\",\n \"to\": \"to\",\n \"tokens\": \"tokens\",\n \"trait\": \"trait\",\n \"traitEmbedIds\": \"traitEmbedIds\",\n \"traitId\": \"traitId\",\n \"traitName\": \"traitName\",\n \"traitRefIds\": \"traitRefIds\",\n \"traits\": \"traits\",\n \"transition\": \"transition\",\n \"transitions\": \"transitions\",\n \"triggers\": \"triggers\",\n \"triggersId\": \"triggersId\",\n \"type\": \"type\",\n \"typeArgs\": \"typeArgs\",\n \"typeParams\": \"typeParams\",\n \"typeScale\": \"typeScale\",\n \"typeWhen\": \"typeWhen\",\n \"types\": \"types\",\n \"typography\": \"typography\",\n \"ui\": \"ui\",\n \"unique\": \"unique\",\n \"update\": \"update\",\n \"update_policy\": \"update_policy\",\n \"updatedAt\": \"updatedAt\",\n \"url\": \"url\",\n \"uses\": \"uses\",\n \"uxHints\": \"uxHints\",\n \"values\": \"values\",\n \"variant\": \"variant\",\n \"variants\": \"variants\",\n \"version\": \"version\",\n \"viewType\": \"viewType\",\n \"visual_prompt\": \"visual_prompt\",\n \"vocabulary\": \"vocabulary\",\n \"whileVisible\": \"whileVisible\",\n \"seedMock\": \"seedMock\",\n \"localeInstances\": \"localeInstances\",\n \"diagram\": \"diagram\",\n \"scene\": \"scene\",\n \"access\": \"access\",\n \"indexing\": \"indexing\",\n \"origin\": \"origin\",\n \"signIn\": \"signIn\",\n \"sourcePage\": \"sourcePage\",\n \"translationOf\": \"translationOf\",\n \"pageModifiers\": \"pageModifiers\",\n \"answers\": \"answers\",\n \"verifies\": \"verifies\",\n \"header\": \"header\",\n \"credential\": \"credential\",\n \"egress\": \"egress\",\n \"stdio\": \"stdio\",\n \"store\": \"store\",\n \"themes\": \"themes\",\n \"osGrants\": \"osGrants\",\n \"deployment\": \"deployment\",\n \"address\": \"address\",\n \"browser\": \"browser\",\n \"dispatch\": \"dispatch\",\n \"protocol\": \"protocol\",\n \"input\": \"input\"\n }\n}\n","/**\n * A `.lolo` lexer — the JS-path mirror of `orbital-lolo/src/syntax/lexer.rs`.\n *\n * It exists so the JS path can rewrite a program's VOCABULARY without\n * re-implementing the parser: every token carries its byte span, so a\n * consumer splices replacement text into the original source and every\n * comment, blank line and alignment survives untouched.\n *\n * The character classes below are copied from the Rust lexer rather than\n * re-derived — an identifier continues on `alphanumeric | _ | / | -` (so\n * `render-ui` and `str/upper` are ONE token), a sigil root continues on\n * `alphanumeric | _ | .`, and `true`/`false`/`null` are their own kinds.\n * `is_alphanumeric` there is Unicode, so the `u`-flagged `\\p{L}`/`\\p{N}`\n * classes here match it for Arabic and Slovenian identifiers.\n *\n * @packageDocumentation\n */\n\nexport type LoloTokenKind =\n | 'comment'\n | 'string'\n | 'number'\n | 'identifier'\n | 'literal'\n | 'sigil'\n | 'payload-sigil'\n | 'punct';\n\nexport interface LoloToken {\n kind: LoloTokenKind;\n /** Byte-independent (UTF-16 code unit) start offset into the source. */\n start: number;\n /** Exclusive end offset. */\n end: number;\n /**\n * The token's semantic text. For `identifier`/`literal` it is the word\n * itself; for `sigil`/`payload-sigil` it is the name WITHOUT the `@`/`?`\n * prefix; for everything else it is the raw slice.\n */\n text: string;\n /** Offset at which `text` starts (differs from `start` for sigils). */\n textStart: number;\n}\n\nconst IDENT_START = /[\\p{L}_]/u;\nconst IDENT_CONTINUE = /[\\p{L}\\p{N}_/-]/u;\nconst SIGIL_CONTINUE = /[\\p{L}\\p{N}_.]/u;\nconst DIGIT = /[0-9]/;\n\n/**\n * Tokenize a `.lolo` source. Never throws: an unterminated string or block\n * comment runs to end-of-input and is returned as that token, because this\n * lexer's callers render source they did not necessarily author (a docs\n * fence, an editor buffer mid-keystroke) and must degrade to \"translate\n * nothing\" rather than fail.\n */\nexport function lexLolo(source: string): LoloToken[] {\n const tokens: LoloToken[] = [];\n let i = 0;\n const n = source.length;\n\n const push = (kind: LoloTokenKind, start: number, end: number, text?: string, textStart?: number): void => {\n tokens.push({\n kind,\n start,\n end,\n text: text ?? source.slice(start, end),\n textStart: textStart ?? start,\n });\n };\n\n while (i < n) {\n const c = source[i];\n\n // Whitespace (newlines included — layout is preserved by span splicing).\n if (c === ' ' || c === '\\t' || c === '\\r' || c === '\\n') {\n i++;\n continue;\n }\n\n // `#= … =#` block comment, `#` line comment.\n if (c === '#') {\n const start = i;\n if (source[i + 1] === '=') {\n const close = source.indexOf('=#', i + 2);\n i = close === -1 ? n : close + 2;\n } else {\n const nl = source.indexOf('\\n', i);\n i = nl === -1 ? n : nl;\n }\n push('comment', start, i);\n continue;\n }\n\n // `;;` line comment.\n if (c === ';' && source[i + 1] === ';') {\n const start = i;\n const nl = source.indexOf('\\n', i);\n i = nl === -1 ? n : nl;\n push('comment', start, i);\n continue;\n }\n\n // String literal, with `\\`-escapes.\n if (c === '\"') {\n const start = i;\n i++;\n while (i < n) {\n if (source[i] === '\\\\') {\n i += 2;\n continue;\n }\n if (source[i] === '\"') {\n i++;\n break;\n }\n i++;\n }\n push('string', start, Math.min(i, n));\n continue;\n }\n\n // `@(` (inline trait ref) vs `@name` sigil.\n if (c === '@') {\n const start = i;\n i++;\n if (source[i] === '(') {\n i++;\n push('punct', start, i);\n continue;\n }\n const nameStart = i;\n while (i < n && SIGIL_CONTINUE.test(source[i])) i++;\n push('sigil', start, i, source.slice(nameStart, i), nameStart);\n continue;\n }\n\n // `?name` payload sigil, or a bare `?`.\n if (c === '?') {\n const start = i;\n i++;\n if (i < n && IDENT_START.test(source[i])) {\n const nameStart = i;\n while (i < n && SIGIL_CONTINUE.test(source[i])) i++;\n push('payload-sigil', start, i, source.slice(nameStart, i), nameStart);\n } else {\n push('payload-sigil', start, i, '', i);\n }\n continue;\n }\n\n // Negative number vs `->` / `--` / bare `-` (the subtraction operator).\n if (c === '-') {\n const start = i;\n if (source[i + 1] === '>') {\n i += 2;\n push('punct', start, i);\n } else if (source[i + 1] === '-') {\n i += 2;\n push('punct', start, i);\n } else if (source[i + 1] !== undefined && DIGIT.test(source[i + 1])) {\n i++;\n while (i < n && (DIGIT.test(source[i]) || source[i] === '.')) i++;\n push('number', start, i);\n } else {\n i++;\n push('identifier', start, i);\n }\n continue;\n }\n\n if (DIGIT.test(c)) {\n const start = i;\n while (i < n && (DIGIT.test(source[i]) || source[i] === '.')) i++;\n push('number', start, i);\n continue;\n }\n\n // Symbolic operators the Rust lexer emits as Identifier tokens.\n if (c === '=' || c === '!' || c === '<' || c === '>') {\n const start = i;\n i++;\n if (source[i] === '=') i++;\n // A lone `=` / `!` is punctuation (`trait X = …`, `string!`); the\n // two-char forms are operator identifiers.\n const two = i - start === 2;\n push(two ? 'identifier' : 'punct', start, i);\n continue;\n }\n if (c === '+' || c === '*' || c === '/' || c === '%') {\n const start = i;\n i++;\n push('identifier', start, i);\n continue;\n }\n\n if (IDENT_START.test(c)) {\n const start = i;\n while (i < n && IDENT_CONTINUE.test(source[i])) i++;\n const text = source.slice(start, i);\n push(text === 'true' || text === 'false' || text === 'null' ? 'literal' : 'identifier', start, i, text);\n continue;\n }\n\n // Everything else is punctuation: ( ) [ ] { } : :: , | & . → and any\n // stray character. `::` is emitted as one token, matching the Rust lexer.\n const start = i;\n i++;\n if (c === ':' && source[i] === ':') i++;\n push('punct', start, i);\n }\n\n return tokens;\n}\n","/**\n * English → native rendering of a `.lolo` program and a `.orb` document —\n * the forward direction of `@almadar/core/i18n`.\n *\n * Everything else in this module family goes native → English so a program\n * written in Arabic or Slovenian COMPILES (`aliasMap`, the Rust\n * `Lang::canon_*`). This is the mirror: it takes the canonical English\n * program and renders it in a target language, so a reader can be shown the\n * same program in their own vocabulary.\n *\n * ## Why it is position-aware and not a word substitution\n *\n * The i18n contract (`docs/Almadar_i18n.md` §\"What a native program looks\n * like\") is that the parser \"canonicalizes at the grammar position that\n * expects the word, never by text replacement, so a native identifier that\n * happens to equal a keyword translation is only a keyword where a keyword is\n * expected\". The forward direction inherits that constraint exactly. Blind\n * substitution corrupts real programs: `entity`/`type`/`fields`/`name`/\n * `label`/`description` are all vocabulary words AND the commonest pattern\n * prop keys, and `parse_object_literal` takes object keys VERBATIM — a\n * pattern prop is opaque and is never translated. Likewise an entity's field\n * names and a trait's state names are the author's identifiers even when they\n * spell a keyword.\n *\n * So this walks the token stream with a frame stack that reproduces the\n * parser's positional expectations, and translates only where the grammar\n * says a vocabulary word belongs. Rendering splices into the original source\n * by span, so comments, blank lines and alignment survive byte-for-byte.\n *\n * The gate on all of it is round-trip equality: for the whole `.lolo` corpus,\n * `orb emit orb` of the translated program must equal `orb emit orb` of the\n * English one. That proves both halves — every vocabulary word was translated\n * (or the `.orb` would differ) and no identifier was (same).\n *\n * @packageDocumentation\n */\n\nimport {\n getVocabulary,\n type I18nSection,\n type LanguageCode,\n type OperatorTables,\n} from './index.js';\nimport { lexLolo, type LoloToken } from './lolo-lexer.js';\nimport type { JsonObject, JsonValue } from '../types/json.js';\n\n// ---------------------------------------------------------------------------\n// Forward (English → native) maps\n// ---------------------------------------------------------------------------\n\n/**\n * The vocabulary families a `.lolo` token position can draw from. `orb` is\n * excluded — those are `.orb` JSON keys, never `.lolo` source words.\n */\nconst LOLO_SECTIONS: readonly I18nSection[] = [\n 'keywords',\n 'shapes',\n 'tags',\n 'categories',\n 'capabilities',\n 'annotations',\n 'sigils',\n 'effects',\n 'types',\n 'units',\n 'literals',\n 'reservedEvents',\n];\n\n/**\n * The order `Lang::canon_any` tries sections in. A native word at an\n * identifier position resolves to the FIRST section that claims it, so this\n * order decides which English word a translation reads back as.\n */\nconst CANON_ANY_ORDER: readonly I18nSection[] = [\n 'keywords',\n 'shapes',\n 'tags',\n 'categories',\n 'capabilities',\n 'annotations',\n 'sigils',\n 'types',\n 'units',\n 'literals',\n 'reservedEvents',\n];\n\n/**\n * English → native for one family (or the union of several), keeping ONLY the\n * entries the parser will read back as the same English word.\n *\n * Two English words can share one native spelling across sections — Arabic\n * has no letter case, so the `event` keyword and the `Event` shape are both\n * `حدث`, as are `entity`/`Entity`, `orbital`/`Orbital`, `page`/`Page` and\n * `trait`/`Trait`. `checkI18nCoverage` rule 3 only forbids collisions WITHIN\n * a section, so these pass the gate (see `docs/Almadar_i18n_Gaps.md` G-i18n-1).\n * At such a word the parser's fixed resolution order picks one meaning, and\n * emitting the other would produce a program that no longer says what the\n * English one said.\n *\n * So an entry survives only if resolving its native spelling through\n * `resolutionOrder` — the same order the parser uses at that token position —\n * lands back on the English word. When it doesn't, the English word is left\n * in place, which is always legal: `canon_*` is consulted only after an\n * exact-English match, so every language accepts English spellings.\n */\nfunction forward(\n lang: LanguageCode,\n sections: readonly I18nSection[],\n resolutionOrder: readonly I18nSection[],\n operators?: OperatorTables,\n): ReadonlyMap<string, string> {\n // `canon_head` is effects-then-operators, so operators are consulted after\n // every section in `resolutionOrder`.\n const canon = (native: string): string | undefined => {\n for (const section of resolutionOrder) {\n for (const [english, value] of Object.entries(getVocabulary(lang)[section])) {\n if (value === native) return english;\n }\n }\n if (operators) {\n for (const [english, value] of Object.entries(operators.operators)) {\n if (value === native) return english;\n }\n }\n return undefined;\n };\n\n const map = new Map<string, string>();\n const add = (english: string, native: string): void => {\n if (canon(native) !== english) return;\n map.set(english, native);\n };\n for (const section of sections) {\n for (const [english, native] of Object.entries(getVocabulary(lang)[section])) {\n add(english, native);\n }\n }\n if (operators) {\n for (const [english, native] of Object.entries(operators.operators)) {\n add(english, native);\n }\n }\n return map;\n}\n\n/**\n * The flat English → native map over every `.lolo` vocabulary family plus the\n * caller's operators. Well-defined because `checkI18nCoverage` rule 2 forbids\n * one English word having two translations across sections — verified at 545\n * entries with zero conflicts for both `ar` and `sl`.\n *\n * Exported for callers that only need the vocabulary (a highlighter building\n * native token patterns, a docs table); `localizeLoloSource` does NOT use it,\n * because which family applies is a positional question.\n */\nexport function localizeMap(\n lang: LanguageCode,\n operators?: OperatorTables,\n): ReadonlyMap<string, string> {\n return forward(lang, LOLO_SECTIONS, CANON_ANY_ORDER, operators);\n}\n\n/**\n * Symbolic operators (`+ - * / % == != < <= > >=`) keep their symbols. They\n * are notation, not words — Arabic and Slovenian source uses the same signs —\n * and translating them would be inconsistent anyway: a lone `=` is\n * punctuation to the lexer (`trait X = …`) while `==` is an operator\n * identifier, so only half the family could ever be rendered.\n */\nfunction isWordShaped(english: string): boolean {\n return /^[A-Za-z_][A-Za-z0-9_/-]*$/.test(english);\n}\n\n// ---------------------------------------------------------------------------\n// Frame stack — the parser's positional expectations, reproduced\n// ---------------------------------------------------------------------------\n\ntype FrameKind =\n /** Top level of the program. */\n | 'root'\n /** Inside `( … )` — an s-expression. Only the head is vocabulary. */\n | 'paren'\n /** An object literal `{ … }`. Keys and values are opaque pattern vocabulary. */\n | 'object'\n /** A value array `[ … ]` inside an s-expression / object. Opaque. */\n | 'array'\n /** A declaration header `[ … ]` — tags, category, capabilities. */\n | 'mods'\n /** A type array `[ … ]` in a field's type position. */\n | 'type-array'\n /** A declaration body whose statements are field declarations. */\n | 'block-fields'\n /** A declaration body whose statements are keyword-led. */\n | 'block-body'\n /** `((x v) (y w))` — a `let` binding list, or a parenthesized lambda param list. */\n | 'binder-list'\n /** `(x v)` — one `let` binding pair; the first token is the author's name. */\n | 'binder-pair';\n\ninterface Frame {\n kind: FrameKind;\n /** First identifier of the statement currently being read in this frame. */\n stmtHead: string | undefined;\n /** The statement keyword that opened this frame (`entity`, `listens`, …). */\n blockHead: string | undefined;\n /** Whether the declaration currently being read has passed a `:`. */\n afterColon: boolean;\n /** Whether the statement currently being read has passed a `=`. */\n sawEquals: boolean;\n /** For a `paren` frame: the s-expression head, once seen. */\n parenHead: string | undefined;\n /** For a `paren` frame: whether the binder list of a `let`/`fn` was already opened. */\n binderSeen: boolean;\n /**\n * True inside the body of a trait REFERENCE (`trait X = Y.traits.Z { … }`).\n * A reference's `config { … }` ASSIGNS knob values (`name: image`) where a\n * declaration's DECLARES knob types (`name : string = \"x\"`) — the same\n * block spelling, opposite meaning for whatever follows the colon.\n */\n refBody: boolean;\n}\n\n/**\n * Blocks whose statements declare NAMES followed by a type — an entity's\n * fields, a `type` alias body, a `config` knob list. Inside these, a\n * statement-leading identifier is the author's field name and is never\n * translated; the words after `:` are types and are.\n */\nconst FIELD_BLOCK_HEADS = new Set(['entity', 'type', 'config', 'params', 'variants', 'tokens', 'event']);\n\n/**\n * Blocks whose statements are EVENT names, each opening its own payload field\n * block: `listens { EMIT_TRACE { event : string! } }`. Without this the inner\n * block reads as keyword-led and a payload field spelling a keyword (`event`,\n * `entities`) would be translated.\n */\nconst EVENT_BLOCK_HEADS = new Set(['listens', 'emits', 'events']);\n\n/**\n * Keywords that introduce a NAME. The identifier immediately after one is the\n * author's, even when it spells a vocabulary word (`state config`).\n */\nconst NAME_INTRODUCING = new Set([\n 'app',\n 'orbital',\n 'entity',\n 'trait',\n 'state',\n 'page',\n 'type',\n 'event',\n 'uses',\n 'theme',\n 'as',\n 'extend',\n]);\n\n/** Punctuation after which an identifier is a target name, never vocabulary. */\nconst NAME_PUNCT = new Set(['->', '-->', '→', '.', '--']);\n\n// ---------------------------------------------------------------------------\n// The renderer\n// ---------------------------------------------------------------------------\n\nexport interface LocalizeLoloOptions {\n /** Operator vocabulary — supplied by the caller (`@almadar/std`), since core must not import std. */\n operators?: OperatorTables;\n}\n\n/**\n * Render an English `.lolo` source in `lang`, preserving the original\n * formatting exactly. `lang === 'en'` returns the source unchanged.\n */\nexport function localizeLoloSource(\n source: string,\n lang: LanguageCode,\n options: LocalizeLoloOptions = {},\n): string {\n if (lang === 'en') return source;\n\n const { operators } = options;\n // Each map's resolution order is the one the PARSER uses at that token\n // position: `canon_any` for identifier/modifier positions, `canon_type` for\n // a field's type, `canon_head` (effects then operators) for an s-expression\n // head, `canon_sigil_or_annotation` for a `@root`.\n const keywords = forward(lang, ['keywords'], CANON_ANY_ORDER);\n const shapes = forward(lang, ['shapes'], CANON_ANY_ORDER);\n const types = forward(lang, ['types'], ['types']);\n const modifiers = forward(lang, ['tags', 'categories', 'capabilities', 'keywords'], CANON_ANY_ORDER);\n const heads = forward(lang, ['effects'], ['effects'], operators);\n const sigils = forward(lang, ['sigils', 'annotations'], ['sigils', 'annotations']);\n // In an EXPRESSION a `@root` is a binding, never an annotation: `@key` in a\n // lambda body is the author's parameter, not the `key` annotation.\n const bindingSigils = forward(lang, ['sigils'], ['sigils', 'annotations']);\n const literals = forward(lang, ['literals'], ['literals']);\n const units = forward(lang, ['units'], ['units']);\n const reservedEvents = forward(lang, ['reservedEvents'], ['reservedEvents']);\n\n const tokens = lexLolo(source);\n const edits: Array<{ start: number; end: number; text: string }> = [];\n\n const stack: Frame[] = [\n {\n kind: 'root',\n stmtHead: undefined,\n blockHead: undefined,\n afterColon: false,\n sawEquals: false,\n refBody: false,\n parenHead: undefined,\n binderSeen: false,\n },\n ];\n const top = (): Frame => stack[stack.length - 1];\n\n /** The previous token that is not a comment. */\n let prev: LoloToken | undefined;\n\n const replace = (token: LoloToken, map: ReadonlyMap<string, string>): void => {\n if (!isWordShaped(token.text)) return;\n const native = map.get(token.text);\n if (native === undefined || native === token.text) return;\n edits.push({ start: token.textStart, end: token.end, text: native });\n };\n\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n if (token.kind === 'comment') continue;\n\n const frame = top();\n const startsStatement =\n prev === undefined ||\n prev.text === '{' ||\n prev.text === '}' ||\n source.slice(prev.end, token.start).includes('\\n');\n if (startsStatement) {\n frame.stmtHead = undefined;\n frame.afterColon = false;\n frame.sawEquals = false;\n }\n\n // ── Punctuation: maintain the frame stack ────────────────────────────\n if (token.kind === 'punct') {\n const text = source.slice(token.start, token.end);\n const child = (kind: FrameKind): Frame => ({\n kind,\n stmtHead: undefined,\n blockHead: frame.stmtHead,\n afterColon: false,\n sawEquals: false,\n refBody: frame.refBody || frame.sawEquals,\n parenHead: undefined,\n binderSeen: false,\n });\n if (text === '(' || text === '@(') {\n stack.push({ ...child(parenFrame(frame, prev)), blockHead: undefined });\n if (top().kind === 'binder-list') frame.binderSeen = true;\n } else if (text === '{') {\n stack.push(child(braceFrame(frame, prev)));\n } else if (text === '[') {\n stack.push(child(bracketFrame(frame, prev)));\n } else if (text === ')' || text === '}' || text === ']') {\n if (stack.length > 1) stack.pop();\n // A closing delimiter ends the declaration it belonged to.\n top().afterColon = false;\n top().sawEquals = false;\n } else if (text === ':') {\n frame.afterColon = true;\n } else if (text === '=') {\n // What follows a `=` is a DEFAULT VALUE, not a type:\n // `metaFormat : \"none\" | \"date\" | … = date` — `date` is an enum\n // member the author chose, and `date` is also a type name.\n frame.afterColon = false;\n frame.sawEquals = true;\n } else if (text === ',') {\n // Declarations are comma-separated on one line as often as they are\n // newline-separated: `{ role: string!, timestamp: number }`.\n frame.afterColon = false;\n frame.sawEquals = false;\n frame.stmtHead = undefined;\n }\n prev = token;\n continue;\n }\n\n // An object literal / value array holds pattern data, which is opaque\n // (owner ruling). `@config.x` still binds there, but an annotation word\n // like `@key` is a plain binding name, and `true` / `INIT` are values.\n const opaque =\n frame.kind === 'object' ||\n frame.kind === 'array' ||\n frame.kind === 'binder-list' ||\n (frame.kind === 'binder-pair' && prev !== undefined && prev.text === '(');\n\n // ── Sigils: `@root.tail` / `?payloadField` ───────────────────────────\n if (token.kind === 'sigil') {\n const dot = token.text.indexOf('.');\n const root = dot === -1 ? token.text : token.text.slice(0, dot);\n const native = (opaque || frame.kind === 'paren' ? bindingSigils : sigils).get(root);\n if (native !== undefined && native !== root) {\n edits.push({ start: token.textStart, end: token.textStart + root.length, text: native });\n }\n prev = token;\n continue;\n }\n // `?field` is a payload FIELD reference — the author's name, never vocabulary.\n if (token.kind === 'payload-sigil' || token.kind === 'string' || token.kind === 'number') {\n prev = token;\n continue;\n }\n\n if (token.kind === 'literal') {\n if (!opaque) replace(token, literals);\n prev = token;\n continue;\n }\n\n // ── Identifiers ──────────────────────────────────────────────────────\n const prevText = prev === undefined ? undefined : source.slice(prev.start, prev.end);\n const afterName = prevText !== undefined && (NAME_INTRODUCING.has(prevText) || NAME_PUNCT.has(prevText));\n\n // `INIT` is the one reserved event name. It is vocabulary at an event\n // position — a transition trigger, a listens arm — but a plain string in\n // pattern data (`config { action : string = INIT }`).\n if (token.text === 'INIT' && !opaque && !frame.sawEquals) {\n replace(token, reservedEvents);\n if (frame.stmtHead === undefined) frame.stmtHead = token.text;\n prev = token;\n continue;\n }\n\n // A unit follows a number directly: `every 100 ms` — on the SAME\n // statement, or the `1` ending `j : number = 1` would make the next\n // line's `m : number` field name a minutes unit.\n if (!opaque && !startsStatement && prev !== undefined && prev.kind === 'number') {\n replace(token, units);\n prev = token;\n continue;\n }\n\n switch (frame.kind) {\n case 'paren': {\n // Only the head of an s-expression is vocabulary; every argument is\n // the author's — an entity name, a state name, a pattern prop value.\n if (prevText === '(') {\n frame.parenHead = token.text;\n replace(token, heads);\n }\n break;\n }\n case 'binder-list':\n case 'binder-pair':\n // `(let ((match …)) …)` — a binding NAME, never vocabulary.\n break;\n case 'object':\n case 'array':\n // Pattern props are opaque (owner ruling): keys AND values pass through.\n break;\n case 'mods':\n // `[persistent: orders]` — after the colon is the collection name.\n if (!frame.afterColon) replace(token, modifiers);\n break;\n case 'type-array':\n replace(token, types);\n break;\n case 'block-fields': {\n // `name : Type` — the name is the author's, the type is vocabulary.\n // A default (`= …`) is a value, not a type.\n if (frame.afterColon && !afterName) replace(token, types);\n break;\n }\n case 'root':\n case 'block-body': {\n if (!afterName) replace(token, frame.afterColon ? types : keywords);\n break;\n }\n }\n\n // `type X = Event { … }` — the shape after `=` in a type declaration.\n if ((frame.kind === 'root' || frame.kind === 'block-body') && prevText === '=') {\n replace(token, shapes);\n }\n\n if (frame.stmtHead === undefined) frame.stmtHead = token.text;\n prev = token;\n }\n\n return applyEdits(source, edits);\n}\n\n/**\n * A `(` is normally an s-expression. Two heads bind NAMES first, and a name is\n * the author's even when it spells vocabulary: `(let ((match …) …) body)` —\n * `match` there is a variable, not the match operator — and `(fn (a b) body)`.\n */\nfunction parenFrame(frame: Frame, prev: LoloToken | undefined): FrameKind {\n if (frame.kind === 'binder-list') return 'binder-pair';\n // Only the group IMMEDIATELY after the head binds names: `(fn (a b) body)`\n // does, `(fn c (== …))`'s body does not.\n if (\n frame.kind === 'paren' &&\n !frame.binderSeen &&\n prev !== undefined &&\n prev.text === frame.parenHead &&\n (frame.parenHead === 'let' || frame.parenHead === 'fn' || frame.parenHead === 'lambda')\n ) {\n return 'binder-list';\n }\n return 'paren';\n}\n\n/**\n * A `{` opens an object literal inside an s-expression, or a field default\n * (`seedRow : ModalRecord = {}`); everything else is a declaration body. Note\n * `type X = { … }` / `type X = Event { … }` is NOT a value — a type alias's\n * body declares fields — so the `= {` rule only applies inside a field block.\n */\nfunction braceFrame(frame: Frame, prev: LoloToken | undefined): FrameKind {\n if (isExpression(frame.kind)) return 'object';\n if (frame.kind === 'block-fields' && prev !== undefined && prev.text === '=') return 'object';\n // A trait REFERENCE's `config { name: image }` assigns knob VALUES; only a\n // trait DECLARATION's `config { name : string = \"x\" }` declares types.\n if (frame.refBody && frame.stmtHead === 'config') return 'object';\n // A nested block under `listens`/`emits`/`events` is one event's payload.\n if (frame.blockHead !== undefined && EVENT_BLOCK_HEADS.has(frame.blockHead)) return 'block-fields';\n // An inline structural type: `data : { … }` or `data : [{ … }]`.\n if (frame.kind === 'type-array') return 'block-fields';\n if (frame.kind === 'block-fields' && frame.afterColon) return 'block-fields';\n const head = frame.stmtHead;\n return head !== undefined && FIELD_BLOCK_HEADS.has(head) ? 'block-fields' : 'block-body';\n}\n\n/** A `[` is a value array inside an expression, a type array after `:`, a modifier list otherwise. */\nfunction bracketFrame(frame: Frame, prev: LoloToken | undefined): FrameKind {\n if (isExpression(frame.kind)) return 'array';\n if (prev !== undefined && prev.text === '=') return 'array';\n if (frame.afterColon) return frame.kind === 'block-fields' ? 'type-array' : 'array';\n return 'mods';\n}\n\n/** Frames whose contents are expression / data, never declaration syntax. */\nfunction isExpression(kind: FrameKind): boolean {\n return (\n kind === 'paren' ||\n kind === 'object' ||\n kind === 'array' ||\n kind === 'binder-list' ||\n kind === 'binder-pair'\n );\n}\n\nfunction applyEdits(\n source: string,\n edits: Array<{ start: number; end: number; text: string }>,\n): string {\n if (edits.length === 0) return source;\n edits.sort((a, b) => a.start - b.start);\n let out = '';\n let cursor = 0;\n for (const edit of edits) {\n if (edit.start < cursor) continue;\n out += source.slice(cursor, edit.start) + edit.text;\n cursor = edit.end;\n }\n return out + source.slice(cursor);\n}\n\n// ---------------------------------------------------------------------------\n// `.orb` documents\n// ---------------------------------------------------------------------------\n\n/**\n * Render an English `.orb` value in `lang` — the exact inverse of the Rust\n * `translate_orb_value`: object keys via `orb`, a `type` value via `types`,\n * an array's leading string (an s-expression / effect head) via\n * `effects ∪ operators`, and the root of any `@sigil` string. Every other\n * string — an entity name, a label, free text — is left alone.\n */\nexport function localizeOrbValue(\n value: JsonValue,\n lang: LanguageCode,\n options: LocalizeLoloOptions = {},\n): JsonValue {\n if (lang === 'en') return value;\n const orbKeys = forward(lang, ['orb'], ['orb']);\n const types = forward(lang, ['types'], ['types']);\n const tags = forward(lang, ['tags'], ['tags']);\n const heads = forward(lang, ['effects'], ['effects'], options.operators);\n const sigils = forward(lang, ['sigils'], ['sigils', 'annotations']);\n\n /**\n * `type` is overloaded, and only POSITION separates the two meanings: on an\n * entity field it names a field type (`\"type\": \"date\"`), inside a\n * `render-ui` props object it names a PATTERN (`{ \"type\": \"icon\" }`), which\n * is opaque by the pattern-vocabulary ruling. Exactly one of the 279 pattern\n * names collides with a field-type word — `icon` — and translating it there\n * renamed the pattern. `inExpression` is set once we descend into an\n * s-expression, which is the only way a pattern name is reachable.\n *\n * Note this defect round-trips: the inbound walker applied the same rule, so\n * `orb emit orb` matched and the round-trip gate could not see it. A\n * symmetric error is invisible to a symmetric gate — hence the dedicated\n * assertion in the tests.\n */\n const walk = (node: JsonValue, inExpression: boolean): JsonValue => {\n if (Array.isArray(node)) {\n // An array is an s-expression only when its head resolves as one; a\n // plain value list (`\"fields\": [\"title\", \"completed\"]`) is not.\n const head = node[0];\n const native = typeof head === 'string' ? heads.get(head) : undefined;\n const isExpression = native !== undefined;\n const items = node.map((child, index) =>\n index === 0 && isExpression ? child : walk(child, inExpression || isExpression),\n );\n if (native !== undefined) items[0] = native;\n return items;\n }\n if (node !== null && typeof node === 'object') {\n const out: JsonObject = {};\n for (const [key, child] of Object.entries(node)) {\n const nativeKey = orbKeys.get(key) ?? key;\n let next = walk(child, inExpression);\n if (typeof next === 'string') {\n if (key === 'type' && !inExpression) next = types.get(next) ?? next;\n // `\"persistence\": \"persistent\"` — the word is `tags` vocabulary and\n // has always had a translation; only this walker never applied it.\n else if (key === 'persistence') next = tags.get(next) ?? next;\n }\n out[nativeKey] = next;\n }\n return out;\n }\n if (typeof node === 'string' && node.startsWith('@')) {\n const rest = node.slice(1);\n const dot = rest.indexOf('.');\n const root = dot === -1 ? rest : rest.slice(0, dot);\n const native = sigils.get(root);\n if (native === undefined) return node;\n return dot === -1 ? `@${native}` : `@${native}${rest.slice(dot)}`;\n }\n return node;\n };\n\n return walk(value, false);\n}\n","/**\n * Internationalization (i18n) — vocabulary tables for the `.lolo`/`.orb`\n * language. English is built in and canonical; every other language is a\n * language pack (an npm package declaring `orbVocabulary`) a host registers\n * with {@link registerVocabulary} — Node hosts read the installed packs with\n * `@almadar/core/language-data`'s `readVocabularyPacks`. See\n * `Almadar_i18n.md` for the section contract; this module is the JS-path owner.\n *\n * @packageDocumentation\n */\n\nimport orbNotationRaw from './orb-notation.json';\nimport enRaw from './en.json';\n\n/** A language's code (`en`, `ar`, `pt-BR`, …). `en` is the canonical language. */\nexport type LanguageCode = string;\n\n/** Locales written right to left (twin of orbital-core `messages::RTL_LOCALES`). */\nexport const RTL_LOCALES: readonly string[] = ['ar', 'he', 'fa', 'ur'];\n\nexport function localeDirection(locale: string): 'ltr' | 'rtl' {\n return RTL_LOCALES.includes(locale) ? 'rtl' : 'ltr';\n}\n\n/** The declared locale a path's first segment names, if any. */\nexport function pathLocale(path: string, locales: readonly string[]): string | undefined {\n const first = path.replace(/^\\/+/, '').split('/')[0] ?? '';\n return locales.find((l) => l === first);\n}\n\n/** The locale a page renders under: the one its path names, else the first declared one (twin of orbital-core `OirModule::locale_of_path`). */\nexport function localeOfPath(path: string, locales: readonly string[]): string | undefined {\n return pathLocale(path, locales) ?? locales[0];\n}\n\n/** A page as {@link localeAlternates} reads it. */\nexport interface AlternatePageInput {\n path: string;\n sourcePage?: string;\n translationOf?: string;\n access?: 'public' | 'authenticated';\n indexing?: 'index' | 'noindex';\n}\n\n/** One language version of a page: its locale and route. */\nexport interface LocaleAlternate {\n locale: string;\n path: string;\n}\n\n/**\n * The indexable public routes of `page`'s translation group (its `translationOf`, else its\n * upstream `sourcePage`) across the app's locales, in locale order — its hreflang alternates. `undefined` when `page` is not itself indexable and public,\n * has no upstream page, appears in fewer than two locales, or one locale holds it twice.\n * Twin of orbital-compiler `generate::locale_alternates`.\n */\nexport function localeAlternates(\n pages: readonly AlternatePageInput[],\n page: AlternatePageInput,\n locales: readonly string[],\n): LocaleAlternate[] | undefined {\n const indexable = (p: AlternatePageInput): boolean => p.access === 'public' && p.indexing !== 'noindex';\n const group = (p: AlternatePageInput): string | undefined => p.translationOf ?? p.sourcePage;\n const key = group(page);\n if (!indexable(page) || key === undefined) return undefined;\n const byLocale: LocaleAlternate[] = [];\n for (const other of pages) {\n if (group(other) !== key || !indexable(other)) continue;\n const locale = localeOfPath(other.path, locales);\n if (locale === undefined || byLocale.some((a) => a.locale === locale)) return undefined;\n byLocale.push({ locale, path: other.path });\n }\n if (byLocale.length < 2) return undefined;\n return byLocale.sort((a, b) => locales.indexOf(a.locale) - locales.indexOf(b.locale));\n}\n\nexport const I18N_SECTIONS = [\n 'keywords',\n 'shapes',\n 'tags',\n 'categories',\n 'capabilities',\n 'annotations',\n 'sigils',\n 'effects',\n 'types',\n 'units',\n 'literals',\n 'reservedEvents',\n 'orb',\n] as const;\n\nexport type I18nSection = typeof I18N_SECTIONS[number];\n\nexport interface I18nMeta {\n code: LanguageCode;\n name: string;\n rtl: boolean;\n}\n\nexport type I18nTables = { meta: I18nMeta } & Record<I18nSection, Record<string, string>>;\n\n/** Supplied by the caller (@almadar/std) — core must not import std. */\nexport interface OperatorTables {\n operators: Record<string, string>;\n}\n\n// ---------------------------------------------------------------------------\n// Validating loader — builds an I18nTables from the raw JSON import without a\n// type assertion. Throws on genuine structural corruption (not an object, a\n// malformed `meta`, or a present section that isn't Record<string,string>).\n// A section that is entirely ABSENT is tolerated as empty rather than\n// thrown on — a language pack may translate only part of the vocabulary\n// (English spellings stay legal), and an incomplete table is the coverage\n// gate's job to report (kind: 'missing'), not a load-time crash.\n// ---------------------------------------------------------------------------\n\n/** Shape of an on-disk i18n table before validation; every field is unvalidated. */\ninterface RawI18nTable {\n meta: unknown;\n keywords: unknown;\n shapes: unknown;\n tags: unknown;\n categories: unknown;\n capabilities: unknown;\n annotations: unknown;\n sigils: unknown;\n effects: unknown;\n types: unknown;\n units: unknown;\n literals: unknown;\n reservedEvents: unknown;\n orb: unknown;\n}\n\nfunction isPlainObject(x: unknown): x is object {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\n\nfunction isRawI18nTable(x: unknown): x is RawI18nTable {\n return isPlainObject(x);\n}\n\nfunction isStringRecord(x: unknown): x is Record<string, string> {\n if (!isPlainObject(x)) return false;\n for (const value of Object.values(x)) {\n if (typeof value !== 'string') return false;\n }\n return true;\n}\n\nconst LANGUAGE_CODE = /^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$/;\n\nfunction isLanguageCode(x: unknown): x is LanguageCode {\n return typeof x === 'string' && LANGUAGE_CODE.test(x);\n}\n\nfunction isI18nMeta(x: unknown): x is I18nMeta {\n if (!isPlainObject(x) || !('code' in x) || !('name' in x) || !('rtl' in x)) return false;\n return isLanguageCode(x.code) && typeof x.name === 'string' && typeof x.rtl === 'boolean';\n}\n\nfunction emptySections(): Record<I18nSection, Record<string, string>> {\n return {\n keywords: {},\n shapes: {},\n tags: {},\n categories: {},\n capabilities: {},\n annotations: {},\n sigils: {},\n effects: {},\n types: {},\n units: {},\n literals: {},\n reservedEvents: {},\n orb: {},\n };\n}\n\n/** Validating loader — the one owner of the table shape; every reader (core, pattern-sync) goes through it. */\nexport function parseI18nTables(raw: unknown, source: string): I18nTables {\n if (!isRawI18nTable(raw)) {\n throw new Error(`i18n table \"${source}\": expected a JSON object, got ${typeof raw}`);\n }\n if (!isI18nMeta(raw.meta)) {\n throw new Error(`i18n table \"${source}\": missing or malformed \"meta\" (expected { code, name, rtl })`);\n }\n const badSections: string[] = [];\n const sections = emptySections();\n for (const section of I18N_SECTIONS) {\n const value = raw[section];\n if (value === undefined) continue;\n if (!isStringRecord(value)) {\n badSections.push(section);\n continue;\n }\n sections[section] = value;\n }\n if (badSections.length > 0) {\n throw new Error(`i18n table \"${source}\": sections not Record<string,string>: ${badSections.join(', ')}`);\n }\n return { meta: raw.meta, ...sections };\n}\n\n/** Validating loader for `orb-notation.json` — no assertion, same contract as the tables. */\nfunction parseNotationKeys(raw: unknown, source: string): string[] {\n if (!isPlainObject(raw) || !('keys' in raw) || !Array.isArray(raw.keys)) {\n throw new Error(`notation file \"${source}\": expected { keys: string[] }`);\n }\n const keys: string[] = [];\n for (const key of raw.keys) {\n if (typeof key !== 'string') {\n throw new Error(`notation file \"${source}\": every key must be a string`);\n }\n keys.push(key);\n }\n return keys;\n}\n\nexport function parseOperatorTables(raw: unknown, source: string): OperatorTables {\n if (!isPlainObject(raw) || !('operators' in raw) || !isStringRecord(raw.operators)) {\n throw new Error(`operator table \"${source}\": expected { operators: Record<string,string> }`);\n }\n return { operators: raw.operators };\n}\n\n/**\n * `.orb` schema keys that are DESIGN-SYSTEM notation, not language vocabulary,\n * and so are deliberately absent from the `orb` section: the colour palette,\n * the spacing and type scales, density, elevation, geometry, motion,\n * iconography and illustration token names.\n *\n * Derived, not curated — a key whose every path through `OrbitalSchema` lies\n * under a theme `tokens` node. Regenerate with\n * `pnpm --filter @almadar/core run gen:orb-notation`; the universe test\n * re-derives it and fails if this file drifts.\n */\nexport const ORB_NOTATION_KEYS: ReadonlySet<string> = new Set(\n parseNotationKeys(orbNotationRaw, 'orb-notation.json'),\n);\n\n/** The canonical English vocabulary — built in, never a pack. */\nexport const englishTables: I18nTables = parseI18nTables(enRaw, 'en.json');\n\n/** One language pack's vocabulary: every core section plus its operator spellings. */\nexport type VocabularyPack = I18nTables & OperatorTables;\n\n/** Validating loader for a language pack's vocabulary file. */\nexport function parseVocabularyPack(raw: unknown, source: string): VocabularyPack {\n const tables = parseI18nTables(raw, source);\n const { operators } = parseOperatorTables(raw, source);\n return { ...tables, operators };\n}\n\nconst registeredPacks = new Map<LanguageCode, VocabularyPack>();\n\n/** Problems that make a pack ambiguous to parse — refused at registration. A missing\n * word is not one: English spellings stay legal in every language. */\nconst FATAL_PACK_PROBLEMS: ReadonlySet<I18nProblemKind> = new Set(['collision', 'selector-not-unique', 'inconsistent', 'empty']);\n\n/**\n * Install a language pack for this process. English is built in; a code another\n * pack already holds, or a pack whose words would make a program ambiguous\n * (two English words on one spelling, a language selector another installed\n * language uses), is refused with every problem named. Re-registering an\n * identical pack is a no-op.\n */\nexport function registerVocabulary(pack: VocabularyPack): void {\n const code = pack.meta.code;\n if (code === 'en') throw new Error('language pack \"en\": English is built in and cannot be replaced');\n const existing = registeredPacks.get(code);\n if (existing) {\n if (JSON.stringify(existing) === JSON.stringify(pack)) return;\n throw new Error(`language pack \"${code}\": a different \"${code}\" pack is already installed`);\n }\n const core: Record<LanguageCode, I18nTables> = { en: englishTables };\n for (const [other, table] of registeredPacks) core[other] = table;\n core[code] = pack;\n const std: Record<LanguageCode, OperatorTables> = {};\n for (const [other, table] of registeredPacks) std[other] = { operators: table.operators };\n std[code] = { operators: pack.operators };\n const fatal = checkI18nCoverage({ core, std }).problems.filter((p) => p.lang === code && FATAL_PACK_PROBLEMS.has(p.kind));\n if (fatal.length > 0) {\n const lines = fatal.map((p) => `${p.kind} ${p.section}.${p.key}${p.detail ? ` — ${p.detail}` : ''}`);\n throw new Error(`language pack \"${code}\" is refused:\\n ${lines.join('\\n ')}`);\n }\n registeredPacks.set(code, pack);\n}\n\n/** Every language this process can read and render: `en`, then each registered pack by code. */\nexport function installedLanguages(): LanguageCode[] {\n return ['en', ...[...registeredPacks.keys()].sort()];\n}\n\nexport function getVocabulary(lang: LanguageCode): I18nTables {\n if (lang === 'en') return englishTables;\n const pack = registeredPacks.get(lang);\n if (!pack) {\n throw new Error(`language \"${lang}\" is not installed — install its language pack (\\`orb language install <package>\\`) and register it`);\n }\n return pack;\n}\n\n/** A registered pack's operator spellings; `undefined` for English (operators are their own English names). */\nexport function vocabularyOperators(lang: LanguageCode): OperatorTables | undefined {\n const pack = registeredPacks.get(lang);\n return pack ? { operators: pack.operators } : undefined;\n}\n\n/** Native → English map for one section family; operators come from the caller (std). */\nexport function aliasMap(\n lang: LanguageCode,\n section: I18nSection | 'operators',\n operators?: OperatorTables,\n): ReadonlyMap<string, string> {\n let table: Record<string, string>;\n if (section === 'operators') {\n if (!operators) {\n throw new Error(`aliasMap(\"${lang}\", \"operators\") requires an OperatorTables argument`);\n }\n table = operators.operators;\n } else {\n table = getVocabulary(lang)[section];\n }\n const map = new Map<string, string>();\n for (const [english, native] of Object.entries(table)) {\n map.set(native, english);\n }\n return map;\n}\n\n/** The token equals exactly one language's `keywords.app` value. */\n/** The keywords that can legally open a `.lolo` program (top-level structure, LOLO.md §3). */\nexport const LOLO_FIRST_TOKEN_KEYWORDS = ['app', 'uses', 'expects', 'type', 'theme', 'orbital'] as const;\n\n/** A `.lolo` program's language: its first token is one language's translation of a first-token keyword. */\nexport function languageOfLoloFirstToken(token: string): LanguageCode | undefined {\n const matches = installedLanguages().filter((lang) =>\n LOLO_FIRST_TOKEN_KEYWORDS.some((kw) => getVocabulary(lang).keywords[kw] === token),\n );\n return matches.length === 1 ? matches[0] : undefined;\n}\n\n/** A top-level `.orb` key equals exactly one language's `orb.orbitals` value. */\nexport function languageOfOrbTopLevelKeys(keys: readonly string[]): LanguageCode | undefined {\n const keySet = new Set(keys);\n const matches = installedLanguages().filter((lang) => keySet.has(getVocabulary(lang).orb.orbitals));\n return matches.length === 1 ? matches[0] : undefined;\n}\n\n// ---------------------------------------------------------------------------\n// Coverage gate\n// ---------------------------------------------------------------------------\n\nexport type I18nProblemKind =\n | 'missing'\n | 'orphan'\n | 'empty'\n | 'inconsistent'\n | 'collision'\n | 'selector-not-unique'\n | 'operators-mismatch'\n | 'identical-to-english'\n | 'notation-in-vocabulary';\n\nexport interface I18nProblem {\n lang: LanguageCode;\n section: string;\n kind: I18nProblemKind;\n key: string;\n detail?: string;\n}\n\nexport interface I18nCoverageInput {\n core: Record<LanguageCode, I18nTables>;\n std?: Record<LanguageCode, OperatorTables>;\n canonicalOperators?: readonly string[];\n}\n\n/**\n * The one implementation of the i18n coverage rules (plan B1):\n * missing/orphan/empty key sets, cross-section translation consistency,\n * native-value collisions (within a section, and across effects∪operators),\n * unique language-selector translations, and operator-set parity.\n * Never truncates — returns every problem found.\n */\nexport function checkI18nCoverage(input: I18nCoverageInput): { ok: boolean; problems: I18nProblem[] } {\n const problems: I18nProblem[] = [];\n const { core, std, canonicalOperators } = input;\n const enTable = core.en;\n\n // (0) notation-in-vocabulary — a design-system token name must never be a\n // vocabulary key. The `orb` section is \"every serialized key of the `.orb`\n // schema\", and a theme's token maps put their token NAMES in key position,\n // so the type-walk that builds the section will re-introduce them on any\n // schema change unless something says no. Owner ruling 2026-09-07: the\n // vocabulary is what the LANGUAGE defines; a library's API surface stays\n // English. See ORB_NOTATION_KEYS / scripts/gen-orb-notation.mts.\n for (const lang of Object.keys(core)) {\n for (const key of Object.keys(core[lang].orb)) {\n if (ORB_NOTATION_KEYS.has(key)) {\n problems.push({\n lang,\n section: 'orb',\n kind: 'notation-in-vocabulary',\n key,\n detail: 'design-system token name — notation, not language vocabulary',\n });\n }\n }\n }\n\n // (1) missing / orphan / empty\n for (const lang of Object.keys(core)) {\n const table = core[lang];\n for (const section of I18N_SECTIONS) {\n const values = table[section];\n if (lang !== 'en') {\n const enKeys = new Set(Object.keys(enTable[section]));\n const langKeys = new Set(Object.keys(values));\n for (const key of enKeys) {\n if (!langKeys.has(key)) {\n problems.push({ lang, section, kind: 'missing', key });\n }\n }\n for (const key of langKeys) {\n if (!enKeys.has(key)) {\n problems.push({ lang, section, kind: 'orphan', key });\n }\n }\n }\n for (const [key, value] of Object.entries(values)) {\n if (value === '') {\n problems.push({ lang, section, kind: 'empty', key });\n }\n }\n }\n }\n\n // (2) inconsistent — the same English word translated differently across sections\n // (including operators) within one language\n for (const lang of Object.keys(core)) {\n const table = core[lang];\n const occurrences = new Map<string, Array<{ section: string; value: string }>>();\n for (const section of I18N_SECTIONS) {\n for (const [key, value] of Object.entries(table[section])) {\n const list = occurrences.get(key) ?? [];\n list.push({ section, value });\n occurrences.set(key, list);\n }\n }\n const opTable = std?.[lang]?.operators;\n if (opTable) {\n for (const [key, value] of Object.entries(opTable)) {\n const list = occurrences.get(key) ?? [];\n list.push({ section: 'operators', value });\n occurrences.set(key, list);\n }\n }\n for (const [key, entries] of occurrences) {\n if (entries.length < 2) continue;\n const baseline = entries[0];\n for (let i = 1; i < entries.length; i++) {\n const entry = entries[i];\n if (entry.value !== baseline.value) {\n problems.push({\n lang,\n section: entry.section,\n kind: 'inconsistent',\n key,\n detail: `\"${key}\" is \"${baseline.value}\" in ${baseline.section} but \"${entry.value}\" in ${entry.section}`,\n });\n }\n }\n }\n }\n\n // (3) collision — two English keys sharing a native value, per section and across effects∪operators\n for (const lang of Object.keys(core)) {\n const table = core[lang];\n for (const section of I18N_SECTIONS) {\n const byValue = new Map<string, string[]>();\n for (const [key, value] of Object.entries(table[section])) {\n const keys = byValue.get(value) ?? [];\n keys.push(key);\n byValue.set(value, keys);\n }\n for (const [value, keys] of byValue) {\n if (keys.length < 2) continue;\n for (let i = 1; i < keys.length; i++) {\n problems.push({\n lang,\n section,\n kind: 'collision',\n key: keys[i],\n detail: `shares native value \"${value}\" with \"${keys[0]}\" in ${section}`,\n });\n }\n }\n }\n\n const combined = new Map<string, Array<{ section: string; key: string }>>();\n for (const [key, value] of Object.entries(table.effects)) {\n const list = combined.get(value) ?? [];\n list.push({ section: 'effects', key });\n combined.set(value, list);\n }\n const opTable = std?.[lang]?.operators;\n if (opTable) {\n for (const [key, value] of Object.entries(opTable)) {\n const list = combined.get(value) ?? [];\n list.push({ section: 'operators', key });\n combined.set(value, list);\n }\n }\n // The same English word in both sections (`set`, `if`, …) is one concept, not a collision.\n for (const [value, entries] of combined) {\n const hasEffects = entries.some((e) => e.section === 'effects');\n const hasOperators = entries.some((e) => e.section === 'operators');\n if (!(hasEffects && hasOperators)) continue;\n const first = entries[0];\n for (const entry of entries.slice(1)) {\n if (entry.key === first.key) continue;\n problems.push({\n lang,\n section: 'effects∪operators',\n kind: 'collision',\n key: entry.key,\n detail: `shares native value \"${value}\" with \"${first.key}\" (${first.section}) in effects∪operators`,\n });\n }\n }\n }\n\n // (5) selector-not-unique — the translations that select a file's language (every first-token\n // keyword for `.lolo`, `orb.orbitals` for `.orb`) must not be shared by two languages.\n const selectorUses = new Map<string, Array<{ lang: LanguageCode; section: string; key: string }>>();\n for (const lang of Object.keys(core)) {\n const table = core[lang];\n const selectors: Array<{ section: string; key: string; value: string }> = [\n ...LOLO_FIRST_TOKEN_KEYWORDS.map((key) => ({ section: 'keywords', key, value: table.keywords[key] })),\n { section: 'orb', key: 'orbitals', value: table.orb.orbitals },\n ];\n for (const { section, key, value } of selectors) {\n if (value === undefined) continue;\n const uses = selectorUses.get(value) ?? [];\n uses.push({ lang, section, key });\n selectorUses.set(value, uses);\n }\n }\n for (const [value, uses] of selectorUses) {\n const langs = new Set(uses.map((u) => u.lang));\n if (langs.size < 2) continue;\n for (const use of uses) {\n const others = uses.filter((u) => u.lang !== use.lang).map((u) => `${u.lang}:${u.section}.${u.key}`);\n problems.push({\n lang: use.lang,\n section: use.section,\n kind: 'selector-not-unique',\n key: use.key,\n detail: `${use.section}.${use.key} = \"${value}\" is also a language selector in: ${others.join(', ')}`,\n });\n }\n }\n\n // operators-mismatch — every language's operator key set must equal the canonical set exactly\n if (std && canonicalOperators) {\n const canonicalSet = new Set(canonicalOperators);\n for (const lang of Object.keys(core)) {\n const opTable = std[lang]?.operators;\n if (!opTable) continue;\n const langKeys = new Set(Object.keys(opTable));\n for (const op of canonicalSet) {\n if (!langKeys.has(op)) {\n problems.push({ lang, section: 'operators', kind: 'operators-mismatch', key: op, detail: 'missing from language operator table' });\n }\n }\n for (const op of langKeys) {\n if (!canonicalSet.has(op)) {\n problems.push({ lang, section: 'operators', kind: 'operators-mismatch', key: op, detail: 'not present in canonical operator set' });\n }\n }\n }\n }\n\n return { ok: problems.length === 0, problems };\n}\n\n/**\n * Informational only — NOT part of the coverage gate (Slovenian legitimately\n * carries loanwords identical to English). Lists native values equal to the\n * English value, for a human to spot-check.\n */\nexport function reportIdenticalToEnglish(input: I18nCoverageInput): I18nProblem[] {\n const problems: I18nProblem[] = [];\n const enTable = input.core.en;\n for (const lang of Object.keys(input.core)) {\n if (lang === 'en') continue;\n const table = input.core[lang];\n for (const section of I18N_SECTIONS) {\n for (const [key, value] of Object.entries(table[section])) {\n const enValue = enTable[section][key];\n if (enValue !== undefined && value === enValue) {\n problems.push({ lang, section, kind: 'identical-to-english', key, detail: `matches English value \"${enValue}\"` });\n }\n }\n }\n }\n return problems;\n}\n\n// ---------------------------------------------------------------------------\n// Forward direction (English → native) — see ./localize.ts\n// ---------------------------------------------------------------------------\n\nexport { lexLolo } from './lolo-lexer.js';\nexport type { LoloToken, LoloTokenKind } from './lolo-lexer.js';\nexport {\n localizeMap,\n localizeLoloSource,\n localizeOrbValue,\n} from './localize.js';\nexport type { LocalizeLoloOptions } from './localize.js';\n"]}
|