@glassly/engine 0.1.0-dev.111 → 0.1.0-dev.113
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/build/generated/releaseMetadata.js +3 -3
- package/build/generated/releaseMetadata.js.map +1 -1
- package/build/utils/display/scene/types.d.ts +2 -0
- package/build/utils/display/scene/types.d.ts.map +1 -1
- package/build/utils/display/scene/types.js.map +1 -1
- package/package.json +7 -7
- package/src/generated/releaseMetadata.ts +3 -3
- package/src/utils/display/scene/types.ts +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export const ENGINE_RELEASE_METADATA = Object.freeze({
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"familyBaseVersion": "0.1.0",
|
|
4
|
-
"releaseIdentity": "0.1.0-dev.
|
|
5
|
-
"releaseSetId": "glassly-0.1.0-dev.
|
|
6
|
-
"sourceCommit": "
|
|
4
|
+
"releaseIdentity": "0.1.0-dev.113",
|
|
5
|
+
"releaseSetId": "glassly-0.1.0-dev.113",
|
|
6
|
+
"sourceCommit": "e63da43b467758373b960b0ee9167ef29938a11c",
|
|
7
7
|
"otaManifestUrl": null,
|
|
8
8
|
"otaManifestSha256": null
|
|
9
9
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,uBAAuB,GAAoC,MAAM,CAAC,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface EngineReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"0.1.0\",\n \"releaseIdentity\": \"0.1.0-dev.
|
|
1
|
+
{"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,uBAAuB,GAAoC,MAAM,CAAC,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface EngineReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"0.1.0\",\n \"releaseIdentity\": \"0.1.0-dev.113\",\n \"releaseSetId\": \"glassly-0.1.0-dev.113\",\n \"sourceCommit\": \"e63da43b467758373b960b0ee9167ef29938a11c\",\n \"otaManifestUrl\": null,\n \"otaManifestSha256\": null\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/scene/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;AAEnF;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,qBAAqB,GAAG,MAAM,GAAG,aAAa,CAAA;AAEzF,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IAC9B,sCAAsC;IACtC,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/scene/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/display/scene/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA4IH,0GAA0G;AAC1G,MAAM,CAAC,MAAM,iBAAiB,GAAgC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEpG,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,IAAI,EAAE,CAAC,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,CAAC,CAAC;IACb,IAAI,EAAE,CAAC,CAAC,CAAC;IACT,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACf,CAAA;AAyED,4FAA4F;AAC5F,MAAM,UAAU,WAAW,CAAC,GAAG,KAAsC;IACnE,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAC9B,CAAC;QACD,CAAC,IAAI,IAAI,CAAA;QACT,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAW,EAAE,CAAW;IACjD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,kBAAkB,CAAC,EAQlC;IACC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SAChC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAK,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACjH,OAAO,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AAC9E,CAAC","sourcesContent":["/**\n * Scene pipeline types — the host half of the miniapp `render()` display API.\n *\n * A miniapp describes a full frame (\"scene\") of positioned elements; the host\n * clamps/budgets/wraps it, diffs it against the last frame sent to the device,\n * and ships ONE annotated SceneFrame over the bridge. SGCs either walk the\n * per-element annotations (G2, Mentra Display) or serialize the whole frame\n * (full-frame devices). Spec: notes/miniapp-display-render-implementation-spec.md\n */\n\nexport interface SceneBox {\n x: number\n y: number\n w: number\n h: number\n}\n\n/** Canvas corner a box's x/y are measured from (insets grow inward). */\nexport type SceneAnchor = \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\"\n\n/**\n * A box as it arrives from the miniapp SDK: optionally corner-anchored.\n * `resolveAnchors` turns these into plain top-left SceneBoxes against the\n * device's real canvas before any processing/degrading — anchors never reach\n * FrameElement, the differ, or the wire.\n */\nexport interface SceneBoxInput extends SceneBox {\n anchor?: SceneAnchor\n}\n\nexport type SceneBreakMode = \"character\" | \"character-no-hyphen\" | \"word\" | \"strict-word\"\n\nexport interface SceneTextStyle {\n /** Border width in px (0/absent = none). */\n border?: number\n /** Border corner radius in px. */\n radius?: number\n /** What happens to text that doesn't fit the box after wrapping. Default \"clip\". */\n overflow?: \"clip\" | \"ellipsis\"\n /** Line-break policy for wrapping. */\n breakMode?: SceneBreakMode\n /**\n * \"mono\": fixed-pitch at `fontSize` px, lines taken as given (no host wrap).\n * \"builtin\": drawn by the glasses' own 20 px font engine (Glassly CFW G2);\n * lines taken as given, other devices fall back to the default face.\n */\n font?: \"default\" | \"mono\" | \"builtin\"\n fontSize?: number\n}\n\nexport interface SceneRectStyle {\n border?: number\n radius?: number\n /** Solid fill instead of an outline. */\n fill?: boolean\n /** Gray level 0..15 (15 = brightest). Default 15. */\n color?: number\n}\n\n/** Closed shapes (circle, triangle, quad): outline of `border` px, or filled. */\nexport interface SceneShapeStyle {\n border?: number\n fill?: boolean\n color?: number\n}\n\n/** Open strokes (line, bezier, arc). */\nexport interface SceneStrokeStyle {\n width?: number\n color?: number\n}\n\nexport interface ScenePoint {\n x: number\n y: number\n}\n\nexport type SceneEasing = \"linear\" | \"ease\" | \"ease-in\" | \"ease-out\" | \"ease-in-out\"\n\n/** Animate geometry changes of an element with a stable id (devices with `animation`). */\nexport interface SceneTransition {\n durationMs: number\n easing?: SceneEasing\n}\n\nexport type SceneShape = \"rect\" | \"circle\" | \"arc\" | \"pie\" | \"line\" | \"triangle\" | \"quad\" | \"bezier\"\n\n/** A scene element as it arrives from the miniapp SDK (pre-processing). */\nexport type SceneElementInput =\n | {type: \"text\"; id?: string; box: SceneBoxInput; text: string; style?: SceneTextStyle; transition?: SceneTransition}\n | {type: \"image\"; id?: string; box: SceneBoxInput; data: string; transition?: SceneTransition}\n | {type: \"rect\"; id?: string; box: SceneBoxInput; style?: SceneRectStyle; transition?: SceneTransition}\n | {type: \"circle\"; id?: string; box: SceneBoxInput; style?: SceneShapeStyle; transition?: SceneTransition}\n | {\n type: \"arc\"\n id?: string\n box: SceneBoxInput\n startDeg: number\n endDeg: number\n style?: SceneStrokeStyle\n transition?: SceneTransition\n }\n | {\n type: \"pie\"\n id?: string\n box: SceneBoxInput\n startDeg: number\n endDeg: number\n style?: {color?: number}\n transition?: SceneTransition\n }\n | {\n type: \"line\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneStrokeStyle\n transition?: SceneTransition\n }\n | {\n type: \"triangle\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneShapeStyle\n transition?: SceneTransition\n }\n | {\n type: \"quad\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneShapeStyle\n transition?: SceneTransition\n }\n | {\n type: \"bezier\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneStrokeStyle\n transition?: SceneTransition\n }\n\nexport type SceneElementType = SceneElementInput[\"type\"]\n\nexport type SceneElementStyle = SceneTextStyle | SceneRectStyle | SceneShapeStyle | SceneStrokeStyle | {color?: number}\n\n/** Elements positioned by a point list; the host derives `box` (their bounding box) before processing. */\nexport const POINT_SHAPE_TYPES: readonly SceneElementType[] = [\"line\", \"triangle\", \"quad\", \"bezier\"]\n\n/** Point counts each point shape accepts. */\nexport const POINT_SHAPE_ARITY: Record<string, readonly number[]> = {\n line: [2],\n triangle: [3],\n quad: [4],\n bezier: [3, 4],\n}\n\nexport type SceneChange = \"created\" | \"updated\" | \"moved\" | \"unchanged\"\n\n/**\n * A processed element inside a SceneFrame: id definitely assigned, box clamped,\n * text pre-wrapped (newlines inserted), annotated with what changed vs the last\n * frame sent to this device.\n */\nexport interface FrameElement {\n id: string\n type: SceneElementType\n box: SceneBox\n text?: string\n /** Image pixels, base64 (PNG documented; SGCs decode → re-encode to wire format and scale to box). */\n data?: string\n style?: SceneElementStyle\n /** Point shapes: the points, in canvas pixels; `box` is their bounding box. */\n points?: ScenePoint[]\n startDeg?: number\n endDeg?: number\n transition?: SceneTransition\n change: SceneChange\n /** Hash of the element's content (text/data + style) — lets SGCs skip BLE re-upload without retaining pixels. */\n contentHash: string\n}\n\n/** The unit that crosses the JS→native bridge: one whole frame per render(). */\nexport interface SceneFrame {\n appId: string\n view: \"main\" | \"dashboard\"\n /** Bumps on replay / app switch / reconnect; a bumped epoch bypasses native dedup. */\n sceneEpoch: number\n /** True when the device is expected to rebuild from scratch (all elements arrive \"created\"). */\n replay?: boolean\n elements: FrameElement[]\n /** Element ids present in the previous frame but absent now — host-computed; apps never send removes. */\n removed: string[]\n /** Canvas the boxes were clamped against — lets a full-frame SGC place a legacy-sized frame correctly. */\n canvas?: {width: number; height: number}\n}\n\n/**\n * Typed display capabilities block (host-side mirror of the SDK's\n * DisplayCapabilities). All limits are DATA — the pipeline acts on them\n * generically; no device names appear in pipeline code.\n */\nexport interface SceneDisplayCapabilities {\n /** Public drawable canvas in px (the device's safe area, not the physical panel). */\n width: number\n height: number\n /** False ⇒ scenes degrade to legacy text layouts host-side; only sugar-shaped content renders. */\n canPosition: boolean\n /** Text-element budget. Rects share this pool on container-based devices. */\n maxTextElements: number\n maxImageElements: number\n /** Max per-image dimensions the device accepts (box-level check), if limited. */\n maxImagePx?: {width: number; height: number}\n shapes: SceneShape[]\n /** True ⇒ element transitions animate on the device. */\n animation: boolean\n intensityLevels: number\n partialUpdate: boolean\n}\n\n/** Result of processing a scene — feeds the awaitable render() result. */\nexport interface SceneProcessResult {\n frame: SceneFrame\n degraded: boolean\n /** Ids (or synthesized ids) of elements dropped by budget/bounds/image limits. */\n dropped: string[]\n}\n\n/** Cheap stable string hash (FNV-1a, 32-bit) — content identity for diff + native dedup. */\nexport function contentHash(...parts: (string | number | undefined)[]): string {\n let h = 0x811c9dc5\n for (const part of parts) {\n const s = part === undefined ? \"\u0000\" : String(part)\n for (let i = 0; i < s.length; i++) {\n h ^= s.charCodeAt(i)\n h = Math.imul(h, 0x01000193)\n }\n h ^= 0x1f\n h = Math.imul(h, 0x01000193)\n }\n return (h >>> 0).toString(36)\n}\n\nexport function boxesEqual(a: SceneBox, b: SceneBox): boolean {\n return a.x === b.x && a.y === b.y && a.w === b.w && a.h === b.h\n}\n\n/** Content identity of an element (text/data/points/angles + style), excluding its box. */\nexport function elementContentHash(el: {\n type: SceneElementType\n text?: string\n data?: string\n style?: SceneElementStyle\n points?: ScenePoint[]\n startDeg?: number\n endDeg?: number\n}): string {\n const style = el.style ?? {}\n const styleKey = Object.keys(style)\n .sort()\n .map((k) => `${k}=${(style as Record<string, unknown>)[k]}`)\n .join(\",\")\n const pointsKey = el.points?.map((p) => `${p.x},${p.y}`).join(\";\")\n const angleKey = el.startDeg !== undefined || el.endDeg !== undefined ? `${el.startDeg}-${el.endDeg}` : undefined\n return contentHash(el.type, el.text, el.data, styleKey, pointsKey, angleKey)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/display/scene/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8IH,0GAA0G;AAC1G,MAAM,CAAC,MAAM,iBAAiB,GAAgC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEpG,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,IAAI,EAAE,CAAC,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,CAAC,CAAC;IACb,IAAI,EAAE,CAAC,CAAC,CAAC;IACT,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACf,CAAA;AAyED,4FAA4F;AAC5F,MAAM,UAAU,WAAW,CAAC,GAAG,KAAsC;IACnE,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAC9B,CAAC;QACD,CAAC,IAAI,IAAI,CAAA;QACT,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAW,EAAE,CAAW;IACjD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,kBAAkB,CAAC,EAQlC;IACC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SAChC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAK,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACjH,OAAO,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AAC9E,CAAC","sourcesContent":["/**\n * Scene pipeline types — the host half of the miniapp `render()` display API.\n *\n * A miniapp describes a full frame (\"scene\") of positioned elements; the host\n * clamps/budgets/wraps it, diffs it against the last frame sent to the device,\n * and ships ONE annotated SceneFrame over the bridge. SGCs either walk the\n * per-element annotations (G2, Mentra Display) or serialize the whole frame\n * (full-frame devices). Spec: notes/miniapp-display-render-implementation-spec.md\n */\n\nexport interface SceneBox {\n x: number\n y: number\n w: number\n h: number\n}\n\n/** Canvas corner a box's x/y are measured from (insets grow inward). */\nexport type SceneAnchor = \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\"\n\n/**\n * A box as it arrives from the miniapp SDK: optionally corner-anchored.\n * `resolveAnchors` turns these into plain top-left SceneBoxes against the\n * device's real canvas before any processing/degrading — anchors never reach\n * FrameElement, the differ, or the wire.\n */\nexport interface SceneBoxInput extends SceneBox {\n anchor?: SceneAnchor\n}\n\nexport type SceneBreakMode = \"character\" | \"character-no-hyphen\" | \"word\" | \"strict-word\"\n\nexport interface SceneTextStyle {\n /** Border width in px (0/absent = none). */\n border?: number\n /** Border corner radius in px. */\n radius?: number\n /** What happens to text that doesn't fit the box after wrapping. Default \"clip\". */\n overflow?: \"clip\" | \"ellipsis\"\n /** Line-break policy for wrapping. */\n breakMode?: SceneBreakMode\n /**\n * \"mono\": fixed-pitch at `fontSize` px, lines taken as given (no host wrap).\n * \"builtin\": drawn by the glasses' own 20 px font engine (Glassly CFW G2);\n * lines taken as given, other devices fall back to the default face.\n */\n font?: \"default\" | \"mono\" | \"builtin\"\n fontSize?: number\n /** Gray level 0..15 for device-drawn text. */\n color?: number\n}\n\nexport interface SceneRectStyle {\n border?: number\n radius?: number\n /** Solid fill instead of an outline. */\n fill?: boolean\n /** Gray level 0..15 (15 = brightest). Default 15. */\n color?: number\n}\n\n/** Closed shapes (circle, triangle, quad): outline of `border` px, or filled. */\nexport interface SceneShapeStyle {\n border?: number\n fill?: boolean\n color?: number\n}\n\n/** Open strokes (line, bezier, arc). */\nexport interface SceneStrokeStyle {\n width?: number\n color?: number\n}\n\nexport interface ScenePoint {\n x: number\n y: number\n}\n\nexport type SceneEasing = \"linear\" | \"ease\" | \"ease-in\" | \"ease-out\" | \"ease-in-out\"\n\n/** Animate geometry changes of an element with a stable id (devices with `animation`). */\nexport interface SceneTransition {\n durationMs: number\n easing?: SceneEasing\n}\n\nexport type SceneShape = \"rect\" | \"circle\" | \"arc\" | \"pie\" | \"line\" | \"triangle\" | \"quad\" | \"bezier\"\n\n/** A scene element as it arrives from the miniapp SDK (pre-processing). */\nexport type SceneElementInput =\n | {type: \"text\"; id?: string; box: SceneBoxInput; text: string; style?: SceneTextStyle; transition?: SceneTransition}\n | {type: \"image\"; id?: string; box: SceneBoxInput; data: string; transition?: SceneTransition}\n | {type: \"rect\"; id?: string; box: SceneBoxInput; style?: SceneRectStyle; transition?: SceneTransition}\n | {type: \"circle\"; id?: string; box: SceneBoxInput; style?: SceneShapeStyle; transition?: SceneTransition}\n | {\n type: \"arc\"\n id?: string\n box: SceneBoxInput\n startDeg: number\n endDeg: number\n style?: SceneStrokeStyle\n transition?: SceneTransition\n }\n | {\n type: \"pie\"\n id?: string\n box: SceneBoxInput\n startDeg: number\n endDeg: number\n style?: {color?: number}\n transition?: SceneTransition\n }\n | {\n type: \"line\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneStrokeStyle\n transition?: SceneTransition\n }\n | {\n type: \"triangle\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneShapeStyle\n transition?: SceneTransition\n }\n | {\n type: \"quad\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneShapeStyle\n transition?: SceneTransition\n }\n | {\n type: \"bezier\"\n id?: string\n points: ScenePoint[]\n box?: SceneBoxInput\n style?: SceneStrokeStyle\n transition?: SceneTransition\n }\n\nexport type SceneElementType = SceneElementInput[\"type\"]\n\nexport type SceneElementStyle = SceneTextStyle | SceneRectStyle | SceneShapeStyle | SceneStrokeStyle | {color?: number}\n\n/** Elements positioned by a point list; the host derives `box` (their bounding box) before processing. */\nexport const POINT_SHAPE_TYPES: readonly SceneElementType[] = [\"line\", \"triangle\", \"quad\", \"bezier\"]\n\n/** Point counts each point shape accepts. */\nexport const POINT_SHAPE_ARITY: Record<string, readonly number[]> = {\n line: [2],\n triangle: [3],\n quad: [4],\n bezier: [3, 4],\n}\n\nexport type SceneChange = \"created\" | \"updated\" | \"moved\" | \"unchanged\"\n\n/**\n * A processed element inside a SceneFrame: id definitely assigned, box clamped,\n * text pre-wrapped (newlines inserted), annotated with what changed vs the last\n * frame sent to this device.\n */\nexport interface FrameElement {\n id: string\n type: SceneElementType\n box: SceneBox\n text?: string\n /** Image pixels, base64 (PNG documented; SGCs decode → re-encode to wire format and scale to box). */\n data?: string\n style?: SceneElementStyle\n /** Point shapes: the points, in canvas pixels; `box` is their bounding box. */\n points?: ScenePoint[]\n startDeg?: number\n endDeg?: number\n transition?: SceneTransition\n change: SceneChange\n /** Hash of the element's content (text/data + style) — lets SGCs skip BLE re-upload without retaining pixels. */\n contentHash: string\n}\n\n/** The unit that crosses the JS→native bridge: one whole frame per render(). */\nexport interface SceneFrame {\n appId: string\n view: \"main\" | \"dashboard\"\n /** Bumps on replay / app switch / reconnect; a bumped epoch bypasses native dedup. */\n sceneEpoch: number\n /** True when the device is expected to rebuild from scratch (all elements arrive \"created\"). */\n replay?: boolean\n elements: FrameElement[]\n /** Element ids present in the previous frame but absent now — host-computed; apps never send removes. */\n removed: string[]\n /** Canvas the boxes were clamped against — lets a full-frame SGC place a legacy-sized frame correctly. */\n canvas?: {width: number; height: number}\n}\n\n/**\n * Typed display capabilities block (host-side mirror of the SDK's\n * DisplayCapabilities). All limits are DATA — the pipeline acts on them\n * generically; no device names appear in pipeline code.\n */\nexport interface SceneDisplayCapabilities {\n /** Public drawable canvas in px (the device's safe area, not the physical panel). */\n width: number\n height: number\n /** False ⇒ scenes degrade to legacy text layouts host-side; only sugar-shaped content renders. */\n canPosition: boolean\n /** Text-element budget. Rects share this pool on container-based devices. */\n maxTextElements: number\n maxImageElements: number\n /** Max per-image dimensions the device accepts (box-level check), if limited. */\n maxImagePx?: {width: number; height: number}\n shapes: SceneShape[]\n /** True ⇒ element transitions animate on the device. */\n animation: boolean\n intensityLevels: number\n partialUpdate: boolean\n}\n\n/** Result of processing a scene — feeds the awaitable render() result. */\nexport interface SceneProcessResult {\n frame: SceneFrame\n degraded: boolean\n /** Ids (or synthesized ids) of elements dropped by budget/bounds/image limits. */\n dropped: string[]\n}\n\n/** Cheap stable string hash (FNV-1a, 32-bit) — content identity for diff + native dedup. */\nexport function contentHash(...parts: (string | number | undefined)[]): string {\n let h = 0x811c9dc5\n for (const part of parts) {\n const s = part === undefined ? \"\u0000\" : String(part)\n for (let i = 0; i < s.length; i++) {\n h ^= s.charCodeAt(i)\n h = Math.imul(h, 0x01000193)\n }\n h ^= 0x1f\n h = Math.imul(h, 0x01000193)\n }\n return (h >>> 0).toString(36)\n}\n\nexport function boxesEqual(a: SceneBox, b: SceneBox): boolean {\n return a.x === b.x && a.y === b.y && a.w === b.w && a.h === b.h\n}\n\n/** Content identity of an element (text/data/points/angles + style), excluding its box. */\nexport function elementContentHash(el: {\n type: SceneElementType\n text?: string\n data?: string\n style?: SceneElementStyle\n points?: ScenePoint[]\n startDeg?: number\n endDeg?: number\n}): string {\n const style = el.style ?? {}\n const styleKey = Object.keys(style)\n .sort()\n .map((k) => `${k}=${(style as Record<string, unknown>)[k]}`)\n .join(\",\")\n const pointsKey = el.points?.map((p) => `${p.x},${p.y}`).join(\";\")\n const angleKey = el.startDeg !== undefined || el.endDeg !== undefined ? `${el.startDeg}-${el.endDeg}` : undefined\n return contentHash(el.type, el.text, el.data, styleKey, pointsKey, angleKey)\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glassly/engine",
|
|
3
|
-
"version": "0.1.0-dev.
|
|
3
|
+
"version": "0.1.0-dev.113",
|
|
4
4
|
"description": "Glassly Engine — miniapp registry, WebView bridge, and miniapp store",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"react-native": "src/index.ts",
|
|
@@ -97,17 +97,17 @@
|
|
|
97
97
|
"registry": "https://registry.npmjs.org/"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
|
-
"@glassly/bluetooth-sdk": "0.1.0-dev.
|
|
101
|
-
"@glassly/cloud-client": "0.1.0-dev.
|
|
102
|
-
"@glassly/cloud-protocol": "0.1.0-dev.
|
|
103
|
-
"@glassly/crust": "0.1.0-dev.
|
|
104
|
-
"@glassly/miniapp": "0.1.0-dev.
|
|
100
|
+
"@glassly/bluetooth-sdk": "0.1.0-dev.113",
|
|
101
|
+
"@glassly/cloud-client": "0.1.0-dev.113",
|
|
102
|
+
"@glassly/cloud-protocol": "0.1.0-dev.113",
|
|
103
|
+
"@glassly/crust": "0.1.0-dev.113",
|
|
104
|
+
"@glassly/miniapp": "0.1.0-dev.113",
|
|
105
105
|
"buffer": "^6.0.3",
|
|
106
106
|
"events": "^3.3.0",
|
|
107
107
|
"react-native-marked": "8.1.1",
|
|
108
108
|
"semver": "^7.7.4",
|
|
109
109
|
"typesafe-ts": "^1.7.1",
|
|
110
|
-
"@glassly/llm-providers": "0.1.0-dev.
|
|
110
|
+
"@glassly/llm-providers": "0.1.0-dev.113"
|
|
111
111
|
},
|
|
112
112
|
"devDependencies": {
|
|
113
113
|
"@glassly/llm-providers": "workspace:*",
|
|
@@ -12,9 +12,9 @@ export interface EngineReleaseMetadata {
|
|
|
12
12
|
export const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({
|
|
13
13
|
"schemaVersion": 1,
|
|
14
14
|
"familyBaseVersion": "0.1.0",
|
|
15
|
-
"releaseIdentity": "0.1.0-dev.
|
|
16
|
-
"releaseSetId": "glassly-0.1.0-dev.
|
|
17
|
-
"sourceCommit": "
|
|
15
|
+
"releaseIdentity": "0.1.0-dev.113",
|
|
16
|
+
"releaseSetId": "glassly-0.1.0-dev.113",
|
|
17
|
+
"sourceCommit": "e63da43b467758373b960b0ee9167ef29938a11c",
|
|
18
18
|
"otaManifestUrl": null,
|
|
19
19
|
"otaManifestSha256": null
|
|
20
20
|
})
|
|
Binary file
|