@extentos/mcp-server 0.4.2 → 0.4.3

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.
@@ -653,6 +653,7 @@ export declare const META_RAYBAN_CAPABILITIES: {
653
653
  volume?: undefined;
654
654
  uri?: undefined;
655
655
  prompt?: undefined;
656
+ content?: undefined;
656
657
  };
657
658
  returns: {
658
659
  ok: string;
@@ -673,6 +674,7 @@ export declare const META_RAYBAN_CAPABILITIES: {
673
674
  volume?: undefined;
674
675
  uri?: undefined;
675
676
  prompt?: undefined;
677
+ content?: undefined;
676
678
  };
677
679
  returns?: undefined;
678
680
  } | {
@@ -690,6 +692,7 @@ export declare const META_RAYBAN_CAPABILITIES: {
690
692
  config?: undefined;
691
693
  uri?: undefined;
692
694
  prompt?: undefined;
695
+ content?: undefined;
693
696
  };
694
697
  returns?: undefined;
695
698
  } | {
@@ -730,6 +733,25 @@ export declare const META_RAYBAN_CAPABILITIES: {
730
733
  config?: undefined;
731
734
  sound?: undefined;
732
735
  volume?: undefined;
736
+ content?: undefined;
737
+ };
738
+ returns?: undefined;
739
+ } | {
740
+ type: string;
741
+ tier: string;
742
+ description: string;
743
+ sdkPath: {
744
+ kotlin: string;
745
+ swift: string;
746
+ };
747
+ params: {
748
+ content: string;
749
+ text?: undefined;
750
+ config?: undefined;
751
+ sound?: undefined;
752
+ volume?: undefined;
753
+ uri?: undefined;
754
+ prompt?: undefined;
733
755
  };
734
756
  returns?: undefined;
735
757
  })[];
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOpD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4apC,CAAC;AAUF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAiB5C,CAAC;AAqBL,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAOnE,CAAC"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOpD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0bpC,CAAC;AAUF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAiB5C,CAAC;AAqBL,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAOnE,CAAC"}
@@ -157,7 +157,7 @@ export const META_RAYBAN_CAPABILITIES = {
157
157
  {
158
158
  type: "outgoing_video_stream",
159
159
  tier: "phone_side_workaround",
160
- description: "Video streamed FROM the phone TO the glasses display surface (future — glasses display not yet exposed in DAT preview).",
160
+ description: "Video streamed FROM the phone TO the glasses display surface (future — DAT exposes no video-streaming path to the display yet; for rendering UI on the Ray-Ban Display screen today, see the `display` capability).",
161
161
  direction: "to_glasses",
162
162
  sdkPath: { kotlin: "camera.outgoingVideo", swift: "camera.outgoingVideo" },
163
163
  config: {
@@ -354,6 +354,20 @@ export const META_RAYBAN_CAPABILITIES = {
354
354
  sdkPath: { kotlin: "assistant.activeSession?.includeImage", swift: "assistant.activeSession?.includeImage" },
355
355
  params: { uri: "string (data:/http(s)/file:/content: or absolute path)", prompt: "string? (optional user text to send alongside)" },
356
356
  },
357
+ // DSP-1 (display dogfood, 2026-06-10): the glasses.display.* surface,
358
+ // track 5. Per-DEVICE capability (device-capability-model decision
359
+ // 2026-05-30): within meta_rayban, Ray-Ban Display has a screen; Ray-Ban
360
+ // Meta / Oakley don't. Pre-fix this entry didn't exist, so the entire
361
+ // discovery layer denied the display while the agent tooling
362
+ // (getDisplayState / setSimDevice / injectInput) and the shipped Android
363
+ // SDK fully supported it.
364
+ {
365
+ type: "display",
366
+ tier: "dat_native",
367
+ description: "Render UI on the glasses display (Ray-Ban Display) — `glasses.display.show { column { text(...); button(\"Close\", id = \"close\") { onClick } } }` builds a DisplayNode tree the device renders; `clear()` wipes it; `isAvailable` gates it. PER-DEVICE capability: branch on `glasses.display.isAvailable` (true on Ray-Ban Display, false on Ray-Ban Meta — flips LIVE in the sim when the device model changes), never on the model name; `show` on a display-less device is a safe no-op. DSL vocabulary: column/row (gap, padding, background, onClick), text (HEADING/BODY/CAPTION), button (explicit id + onClick), image/video (by URL), icon. Selection input (Neural Band index-pinch on hardware, injectInput(action:'select') in the sim) routes back to your onClick by node id. Input is SELECT-ONLY in the current SDK — the back gesture (mid-pinch) has no app-side hook yet; render an explicit Back button for multi-view navigation. Availability: Android SDK shipped + sim-verified (real hardware renders via Meta DAT mwdat-display); iOS port pending. See getCapabilityGuide(feature: \"display\") + getCodeExample(pattern: \"display_browse_detail\").",
368
+ sdkPath: { kotlin: "display.show / display.clear / display.isAvailable", swift: "pending — the iOS DisplayClient port has not shipped yet (Android-first)" },
369
+ params: { content: "DisplayScope builder lambda (column / row / text / image / button / icon / video)" },
370
+ },
357
371
  ],
358
372
  actions: [
359
373
  // 8 core
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityPatterns.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAyyCD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAyB7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAwC,CAAC"}
1
+ {"version":3,"file":"capabilityPatterns.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAk3CD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA0B7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAwC,CAAC"}
@@ -1282,6 +1282,77 @@ glasses.runtime.events
1282
1282
  ],
1283
1283
  relatedExamples: ["assistant_agent_loop", "agent_driven_e2e_full_loop"],
1284
1284
  };
1285
+ // DSP-1 (display dogfood, 2026-06-10): the glasses.display.* surface. Content
1286
+ // sourced from the verified two-view Notes integration (browse ⇄ detail in the
1287
+ // sim against the real provider).
1288
+ const DISPLAY = {
1289
+ feature: "display",
1290
+ summary: "`glasses.display.show { column { text(...); button(\"Close\", id = \"close\") { onClick } } }` — render UI on a display-capable device (Ray-Ban Display). PER-DEVICE capability: gate on `glasses.display.isAvailable` (false on Ray-Ban Meta; flips LIVE when the sim device model changes — no reconnect), never on the model name. `show {}` REPLACES the whole display each call (multiple top-level nodes auto-wrap in an implicit column); `clear()` wipes it; both are suspend. Selection input (Neural Band index-pinch on hardware, `injectInput(action: 'select')` in the sim) routes back to your `onClick` by node id. Input is SELECT-ONLY today — the back gesture (mid-pinch) has no app-side hook yet, so ship an explicit Back button for multi-view flows. Android-first: the iOS DisplayClient port is pending. Canonical multi-view pattern: `getCodeExample(pattern: 'display_browse_detail')`.",
1291
+ kotlin: `import com.extentos.glasses.core.Background
1292
+ import com.extentos.glasses.core.ButtonStyle
1293
+ import com.extentos.glasses.core.TextColor
1294
+ import com.extentos.glasses.core.TextStyle
1295
+
1296
+ // Gate rich display UX on the device actually having a screen. isAvailable is
1297
+ // false on Ray-Ban Meta and true on Ray-Ban Display; in the sim it flips LIVE
1298
+ // when the device model changes (setSimDevice) — no reconnect. show {} on a
1299
+ // display-less device is a safe silent no-op, so the gate is about UX (tell
1300
+ // the user, fall back to voice), not crash safety.
1301
+ if (!glasses.display.isAvailable) {
1302
+ glasses.audio.speak("These glasses have no display — I'll read it out instead.")
1303
+ return
1304
+ }
1305
+
1306
+ // show {} REPLACES whatever is currently on the display. Multiple top-level
1307
+ // nodes are auto-wrapped in an implicit column. show() and clear() are suspend.
1308
+ glasses.display.show {
1309
+ column(gap = 8, padding = 12) {
1310
+ text("Groceries", style = TextStyle.HEADING)
1311
+ text("Updated Jun 8", style = TextStyle.CAPTION, color = TextColor.SECONDARY)
1312
+ text("Pasta, tomatoes, olive oil, fresh basil.", style = TextStyle.BODY)
1313
+ // Buttons take an explicit id — a stable, agent-targetable handle.
1314
+ // onClick fires on a Neural Band index-pinch (or the sim's
1315
+ // injectInput(action = "select", targetId = "close")).
1316
+ button("Close", style = ButtonStyle.OUTLINE, id = "close") {
1317
+ // onClick is a plain () -> Unit — launch for suspend SDK calls.
1318
+ scope.launch { glasses.display.clear() }
1319
+ }
1320
+ }
1321
+ }
1322
+
1323
+ // Containers (column / row) accept onClick too — that is how tappable list
1324
+ // cards work — but their ids are auto-generated and positional ("box-0",
1325
+ // "box-1", ...). Enums: TextStyle HEADING/BODY/CAPTION; TextColor
1326
+ // PRIMARY/SECONDARY; ButtonStyle PRIMARY/SECONDARY/OUTLINE; Background
1327
+ // NONE/CARD; Alignment START/CENTER/END/STRETCH. image(url) / video(url)
1328
+ // render by URL — there is no local-bitmap path to the display.`,
1329
+ swift: `// ⚠️ iOS PARITY PENDING — the iOS library has no DisplayClient yet.
1330
+ // The display surface is Android-first; this sketch mirrors the intended
1331
+ // Swift shape (result-builder form) once the port lands.
1332
+ //
1333
+ // if glasses.display.isAvailable {
1334
+ // await glasses.display.show {
1335
+ // Column(gap: 8, padding: 12) {
1336
+ // Text("Groceries", style: .heading)
1337
+ // Button("Close", id: "close") { Task { await glasses.display.clear() } }
1338
+ // }
1339
+ // }
1340
+ // }
1341
+ //
1342
+ // Track the port via the cross-platform parity handoffs; until then iOS
1343
+ // apps treat isAvailable as false and keep the voice-first path.`,
1344
+ gotchas: [
1345
+ "**Gate on `isAvailable`, never the model name.** Display is a per-DEVICE capability (Ray-Ban Display yes; Ray-Ban Meta no). The gate flips LIVE — in the sim, setSimDevice pushes the new profile to the connected app mid-session with no reconnect, so the same running session can see true then false. A `show {}` on a display-less device silently no-ops (safe), which is exactly why your UX should check the gate and offer a spoken fallback instead of relying on the no-op.",
1346
+ "**`show {}` replaces the ENTIRE display every call — there are no incremental updates.** Own your view state app-side (a sealed Screen / enum) and re-render whole views on every transition. Multiple top-level nodes in one show are auto-wrapped in an implicit column.",
1347
+ "**Input is SELECT-ONLY — the back gesture (mid-pinch) has no app-side hook in the current SDK.** The transport routes `display_select` to your onClick by node id; back gestures are dropped before they reach your app (injectInput(action:'back') reports delivered but nothing fires). For browse → detail → back navigation, render an explicit Back button — that IS the back affordance until the SDK ships a hook.",
1348
+ "**Buttons take an explicit stable `id`; clickable containers get positional auto-ids.** `button(\"Close\", id = \"close\")` is agent-targetable forever; `column(onClick = ...)` cards get \"box-0\", \"box-1\", ... in render order — reordering the list shifts every id, so anything driving them (tests, agents) couples to position, not identity.",
1349
+ "**onClick is a plain `() -> Unit`, but show()/clear() are suspend** — launch a coroutine inside the handler (`scope.launch { glasses.display.clear() }`) for any suspend SDK call.",
1350
+ "**Agent verification loop:** a fresh sim session defaults to rayban_meta (NO display) — `setSimDevice(device: 'rayban_display')` FIRST, then drive the flow and read `getDisplayState` (the exact rendered tree + `interactiveIds`, headless — no pixels), then `injectInput(action: 'select', targetId: ...)` to fire onClicks the way a pinch would. injectInput needs the sim browser tab attached (ensureSimulatorBrowser); getDisplayState itself works headless.",
1351
+ "**Display events don't persist to getEventLog yet** — `filter: 'display'` comes back empty even after shows/selects. Verify display flows via getDisplayState (the live hub snapshot), not the event log, until the persistence fix ships.",
1352
+ "**Keep trees small.** The display is a small panel — about five list cards per screen with an overflow hint (\"+N more — ask me to open one\") works well; don't assume scrolling.",
1353
+ ],
1354
+ relatedExamples: ["display_browse_detail"],
1355
+ };
1285
1356
  export const CAPABILITY_GUIDES = {
1286
1357
  capture_photo: CAPTURE_PHOTO,
1287
1358
  capture_video: CAPTURE_VIDEO,
@@ -1307,6 +1378,7 @@ export const CAPABILITY_GUIDES = {
1307
1378
  conversation_listen: CONVERSATION_LISTEN,
1308
1379
  conversation_speak: CONVERSATION_SPEAK,
1309
1380
  conversation_ai_complete: CONVERSATION_AI_COMPLETE,
1381
+ display: DISPLAY,
1310
1382
  };
1311
1383
  export const CAPABILITY_GUIDE_FEATURES = Object.keys(CAPABILITY_GUIDES).sort();
1312
1384
  //# sourceMappingURL=capabilityPatterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityPatterns.js","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilityPatterns.js","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codeExamples.d.ts","sourceRoot":"","sources":["../../../src/tools/data/codeExamples.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,aAAa,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,2BAA2B,CAAC;IAC7G,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,uBAAuB,GAAG,sBAAsB,CAAC;IAC5D;4EACwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC9B,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAC3C,CAAC;IACF;;;;;;OAMG;IACH,eAAe,CAAC,EAAE;QAChB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAClC,CAAC;CACH;AA41FD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAYrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAoC,CAAC"}
1
+ {"version":3,"file":"codeExamples.d.ts","sourceRoot":"","sources":["../../../src/tools/data/codeExamples.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,aAAa,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,2BAA2B,CAAC;IAC7G,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,uBAAuB,GAAG,sBAAsB,CAAC;IAC5D;4EACwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC9B,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAC3C,CAAC;IACF;;;;;;OAMG;IACH,eAAe,CAAC,EAAE;QAChB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAClC,CAAC;CACH;AA0hGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAarD,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAoC,CAAC"}
@@ -2512,7 +2512,9 @@ class NotesAssistant(
2512
2512
  session = glasses.assistant.start(
2513
2513
  // F13: pick provider via build flavor (USE_MOCK_ASSISTANT BuildConfig)
2514
2514
  // — never bake \`useMock\` into handler code. See assistant_agent_loop.
2515
- provider = AssistantProvider.OpenAi(model = "gpt-realtime-2", voice = "alloy"),
2515
+ // Model + voice come from your dashboard Agent settings; pass them
2516
+ // only to hard-pin in code (a code value wins over the dashboard).
2517
+ provider = AssistantProvider.OpenAi(),
2516
2518
  ) {
2517
2519
  instructions = "You are a voice-notes assistant on glasses. Speak briefly."
2518
2520
  sleepAfterSilence(30.seconds)
@@ -2599,7 +2601,9 @@ final class NotesAssistant: @unchecked Sendable {
2599
2601
 
2600
2602
  func start() async throws {
2601
2603
  session = try await glasses.assistant.start(
2602
- provider: .openAI(model: "gpt-realtime-2", voice: "alloy")
2604
+ // Model + voice come from your dashboard Agent settings; pass them
2605
+ // only to hard-pin in code (a code value wins over the dashboard).
2606
+ provider: .openAI()
2603
2607
  ) { config in
2604
2608
  config.instructions = "You are a voice-notes assistant on glasses. Speak briefly."
2605
2609
  // config.sleepAfterSilence(.seconds(30)) // iOS API parity pending
@@ -2648,11 +2652,11 @@ final class NotesAssistant: @unchecked Sendable {
2648
2652
  });
2649
2653
 
2650
2654
  // 2. Wake the assistant — explicit two-step pattern that MIRRORS THE
2651
- // REAL-HARDWARE FLOW. A real user says "hey elizabeth" out loud, the
2655
+ // REAL-HARDWARE FLOW. A real user says "hey notes" out loud, the
2652
2656
  // library's voice.onPhrase matches, the customer's handler calls
2653
2657
  // session.wake(), the WS opens, the model handshakes. The agent
2654
2658
  // simulates the same path:
2655
- // a) injectTranscript("hey elizabeth") ← manual_trigger STT
2659
+ // a) injectTranscript("hey notes") ← manual_trigger STT
2656
2660
  // b) wait for assistant.session_started ← wake completed
2657
2661
  // c) THEN injectAssistantUtterance(text) ← user command
2658
2662
  async function wake(sessionId, wakePhrase) {
@@ -2672,7 +2676,7 @@ final class NotesAssistant: @unchecked Sendable {
2672
2676
  }
2673
2677
  throw new Error(\`wake timeout: "\${wakePhrase}" did not produce session_started\`);
2674
2678
  }
2675
- await wake(sessionId, "hey elizabeth");
2679
+ await wake(sessionId, "hey notes");
2676
2680
 
2677
2681
  // 2.b. Recommended: the SDK speaks a greeting AUTOMATICALLY on wake
2678
2682
  // (default-on; only greeting = Greeting.Off disables it). Wait for it
@@ -2683,7 +2687,7 @@ final class NotesAssistant: @unchecked Sendable {
2683
2687
  await sleep(2000);
2684
2688
 
2685
2689
  // 3. Sweep across N tools in one session. Pace your injects under
2686
- // \`sleepAfterSilence\` (Elizabeth ships 30s) so the session stays
2690
+ // \`sleepAfterSilence\` (this handler ships 30s) so the session stays
2687
2691
  // Active across the loop. If you need a long debug pause between
2688
2692
  // injects, re-wake explicitly via wake() above when you come back.
2689
2693
  const cases = [
@@ -2809,9 +2813,9 @@ WAKING THE SESSION — explicit two-step, mirrors real hardware
2809
2813
  The canonical wake path is two discrete actions, exactly like a real
2810
2814
  user:
2811
2815
 
2812
- 1) injectTranscript({ sessionId, text: "hey elizabeth" })
2816
+ 1) injectTranscript({ sessionId, text: "hey notes" })
2813
2817
  → backend relays as stt_transcript / source:manual_trigger
2814
- → library's VoiceClient fires voice.onPhrase("hey elizabeth")
2818
+ → library's VoiceClient fires voice.onPhrase("hey notes")
2815
2819
  → customer's handler calls session.wake() (idempotent if Active)
2816
2820
  2) Watch getEventLog for \`assistant.session_started\`
2817
2821
  → wake completed: WS open, session.update handshake done
@@ -2829,7 +2833,7 @@ the only faithful test of the wake flow.
2829
2833
 
2830
2834
  SILENCE-TIMEOUT FRICTION DURING AGENT DEBUG ITERATION
2831
2835
 
2832
- Elizabeth ships \`sleepAfterSilence(30.seconds)\` because that's correct
2836
+ The handler ships \`sleepAfterSilence(30.seconds)\` because that's correct
2833
2837
  production behavior — battery + token spend. In agent test loops where
2834
2838
  you spend > 30s between injects scrolling event logs / checking
2835
2839
  screencaps / debugging a stale match, the session WILL transition
@@ -2873,9 +2877,9 @@ back without spawning, surface it to the developer to open on a machine with a
2873
2877
  display, then re-run with autoOpen:true to confirm. Non-camera tools (state
2874
2878
  toggles, persistence, AI calls) work fully headless regardless.`,
2875
2879
  gotchas: [
2876
- "**Wake explicitly via injectTranscript before the first injectAssistantUtterance — the assistant_inject path drops silently on Dormant sessions.** The library's OpenAi provider filters incomingTextFrames to `source: \"assistant_inject\"` + routes through `injectUserTurn`, which silently no-ops when `connectionRef` is null (Dormant / mid-reconnect / between wake cycles). Drive the wake faithfully: `injectTranscript(\"hey elizabeth\")` → watch getEventLog for `assistant.session_started` → THEN `injectAssistantUtterance(text)`. Same path a real user takes on real hardware. The 0.1.3 autoWake auto-magic was reverted in 0.1.4 because it hid the wake step + raced with onWake greeting hooks; explicit wake is canonical.",
2880
+ "**Wake explicitly via injectTranscript before the first injectAssistantUtterance — the assistant_inject path drops silently on Dormant sessions.** The library's OpenAi provider filters incomingTextFrames to `source: \"assistant_inject\"` + routes through `injectUserTurn`, which silently no-ops when `connectionRef` is null (Dormant / mid-reconnect / between wake cycles). Drive the wake faithfully: `injectTranscript(\"hey notes\")` → watch getEventLog for `assistant.session_started` → THEN `injectAssistantUtterance(text)`. Same path a real user takes on real hardware. The 0.1.3 autoWake auto-magic was reverted in 0.1.4 because it hid the wake step + raced with onWake greeting hooks; explicit wake is canonical.",
2877
2881
  "**The SDK speaks a greeting automatically on wake (default-on; only `greeting = Greeting.Off` disables it) — wait for it to finish before injecting the command.** Otherwise the inject's `response.create` races with the greeting's `response.create` at OpenAI and the model serializes them in a way that often suppresses the tool dispatch. Watch for the first `assistant.assistant_spoke` event after `session_started` (the greeting playback), then inject. Coarse alternative: `sleep(~2s)` after session_started.",
2878
- "**`sleepAfterSilence` is sensible production behavior, hostile to long agent debug iteration.** Elizabeth ships `sleepAfterSilence(30.seconds)`. If your agent loop spends > 30s between injects (scrolling event logs, taking screencaps, debugging a stale match), the session transitions Dormant under you + the next inject drops silently. Either pace your test < 30s per inject or re-wake explicitly via the two-step pattern when you come back. A sim-only \"hold session active\" feature is on the backlog (project_agent_test_capability_gaps) — distinct from the wake flow, scoped as its own MCP surface so it can't accidentally diverge from real-hardware fidelity.",
2882
+ "**`sleepAfterSilence` is sensible production behavior, hostile to long agent debug iteration.** The example handler ships `sleepAfterSilence(30.seconds)`. If your agent loop spends > 30s between injects (scrolling event logs, taking screencaps, debugging a stale match), the session transitions Dormant under you + the next inject drops silently. Either pace your test < 30s per inject or re-wake explicitly via the two-step pattern when you come back. A sim-only \"hold session active\" feature is on the backlog (project_agent_test_capability_gaps) — distinct from the wake flow, scoped as its own MCP surface so it can't accidentally diverge from real-hardware fidelity.",
2879
2883
  "**Thread injectAssistantUtterance's `watchCursor` into assertToolCalled's `sinceCursor` (fix 2026-05-29).** assertToolCalled waits for the tool call your inject TRIGGERS, but the model fires it 0.5-2s later — often after assertToolCalled has already started. If the assertion anchors at its own start (\"now\"), it excludes the very tool call it's waiting for and times out even though the tool fired (the dominant false-negative in the 2026-05-28 sweep). Fix: injectAssistantUtterance returns `watchCursor` captured BEFORE the inject; pass it as `assertToolCalled({ sinceCursor: inj.watchCursor })` to anchor the wait before the inject. The match is pure backend `seq` comparison (`seq > sinceCursor`) — no clock-skew dependency (the prior 0.1.5 'safety net' used the MCP server's local clock and broke on machines >5s skewed; measured +7.77s in practice — removed in 0.1.6). Omit sinceCursor only when watching a tool with no preceding inject (e.g. a real sim-browser voice turn); then it anchors at 'now' and only catches tools fired after the call starts.",
2880
2884
  "**Camera-tool tests need the sim browser tab connected — call `ensureSimulatorBrowser({ sessionId })` first.** save_photo / describe_scene / capture_video and any tool body that calls glasses.camera.* return Err(\"camera failed\") without an attached browser role. `ensureSimulatorBrowser` opens the tab (cross-platform, MCP-side) and polls until its WebSocket attaches — one idempotent call, replacing the old manual OS one-liner + getSimulatorStatus poll loop. Headless / remote agents: `ensureSimulatorBrowser({ sessionId, autoOpen: false })` returns the sessionUrl to hand to the developer without spawning a browser.",
2881
2885
  "**adb logcat needs the adb binary in your PATH or full path.** On Windows it's at `C:/Users/<you>/AppData/Local/Android/Sdk/platform-tools/adb.exe`; on macOS at `~/Library/Android/sdk/platform-tools/adb`. The MCP server runs on YOUR machine, so cloud-hosted agents can't reach the emulator — Channel 2/3/4 are local-only. Headless CI agents can still do Channel 1 (getEventLog is the only protocol-level channel).",
@@ -2887,6 +2891,190 @@ toggles, persistence, AI calls) work fully headless regardless.`,
2887
2891
  ],
2888
2892
  relatedFeatures: ["assistant_runtime", "assistant_start", "assistant_tool", "assistant_provider_openai", "assistant_session_runtime", "assistant_vision"],
2889
2893
  };
2894
+ // DSP-1 (display dogfood, 2026-06-10): the canonical glasses-display pattern,
2895
+ // sourced from the verified two-view Notes integration — Neural-Band rail and
2896
+ // assistant rail driving ONE app-side state machine, end-to-end in the sim
2897
+ // against the real OpenAi provider.
2898
+ const DISPLAY_BROWSE_DETAIL = {
2899
+ pattern: "display_browse_detail",
2900
+ title: "Glasses display — two-view browse ⇄ detail navigation (Neural Band + assistant tools)",
2901
+ description: "The canonical multi-view display pattern for the Ray-Ban Display: a BROWSE view (list items as pinchable cards — slide the Neural Band between them, index-pinch to open) and a DETAIL view (one item full-screen, explicit Back button to return), with assistant tools driving the SAME transitions by voice ('show my notes' / 'open the groceries note' / 'go back to the list'). One app-side state machine, two input rails, no conflict. Gated on `glasses.display.isAvailable` (per-device: true on Ray-Ban Display, false on Ray-Ban Meta) with a graceful spoken fallback. NOTE: display input is select-only in the current SDK — the back GESTURE (mid-pinch) has no app-side hook, which is exactly why the detail view ships an explicit Back button.",
2902
+ code: {
2903
+ kotlin: `// Two-view display navigation — browse ⇄ detail — for a notes-style app.
2904
+ // Both rails drive the same state machine:
2905
+ // Neural Band: slide (focus) → index-pinch a card → detail → pinch Back
2906
+ // Assistant: "show my notes" → show_notes; "open X" → detail; "go back" → show_notes
2907
+ //
2908
+ // The mid-pinch BACK GESTURE has no app-side hook in the current SDK (display
2909
+ // input routes selects only) — the explicit "Back to notes" button below IS
2910
+ // the back affordance until that hook ships.
2911
+
2912
+ import com.extentos.glasses.core.Background
2913
+ import com.extentos.glasses.core.ButtonStyle
2914
+ import com.extentos.glasses.core.ExtentosGlasses
2915
+ import com.extentos.glasses.core.TextColor
2916
+ import com.extentos.glasses.core.TextStyle
2917
+ import com.extentos.glasses.core.assistant.AssistantProvider
2918
+ import com.extentos.glasses.core.assistant.AssistantSession
2919
+ import com.extentos.glasses.core.assistant.ToolResult
2920
+ import com.extentos.glasses.core.assistant.tool
2921
+ import kotlinx.coroutines.CoroutineScope
2922
+ import kotlinx.coroutines.Dispatchers
2923
+ import kotlinx.coroutines.SupervisorJob
2924
+ import kotlinx.coroutines.launch
2925
+
2926
+ data class Note(val id: Long, val title: String, val body: String)
2927
+
2928
+ class NotesDisplayHandler(
2929
+ private val glasses: ExtentosGlasses,
2930
+ private val notes: () -> List<Note>, // app-internal source of truth
2931
+ private val scope: CoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.IO),
2932
+ ) {
2933
+ private var session: AssistantSession? = null
2934
+
2935
+ fun start() {
2936
+ scope.launch {
2937
+ session = glasses.assistant.start(
2938
+ provider = AssistantProvider.OpenAi(), // model + voice from your dashboard
2939
+ ) {
2940
+ instructions =
2941
+ "You can use the glasses display. Call show_notes for the browsable " +
2942
+ "list (also when the user asks to go back to the list); show_note to " +
2943
+ "open one specific note; clear_display to wipe the screen. If a tool " +
2944
+ "says there is no display, say so and offer to read aloud instead."
2945
+
2946
+ tool(
2947
+ "show_notes",
2948
+ "Show the browsable list of the user's notes on the glasses display. " +
2949
+ "Also call when the user asks to go back to the list from an open note.",
2950
+ ) {
2951
+ if (!glasses.display.isAvailable) {
2952
+ return@tool ToolResult.Err(
2953
+ "These glasses have no display. Offer to read the notes aloud instead.",
2954
+ )
2955
+ }
2956
+ showBrowse()
2957
+ ToolResult.Ok("Notes are on the display — slide between them, pinch one to open it.")
2958
+ }
2959
+
2960
+ tool("clear_display", "Clear the glasses display when the user asks to hide or dismiss it.") {
2961
+ glasses.display.clear()
2962
+ ToolResult.Ok("Display cleared.")
2963
+ }
2964
+ }
2965
+ // Wake mechanism — same onPhrase wiring as every Phase 4 assistant.
2966
+ glasses.voice.onPhrase("hey notes") { session?.wake() }
2967
+ }
2968
+ }
2969
+
2970
+ /** BROWSE — every note is a pinchable CARD container. */
2971
+ private suspend fun showBrowse() {
2972
+ val all = notes()
2973
+ glasses.display.show {
2974
+ column(gap = 6, padding = 10) {
2975
+ text("My notes", style = TextStyle.HEADING)
2976
+ for (note in all.take(5)) {
2977
+ // Clickable container — onClick round-trips by an
2978
+ // auto-generated positional id ("box-0", "box-1", ...).
2979
+ column(
2980
+ gap = 2,
2981
+ padding = 8,
2982
+ background = Background.CARD,
2983
+ onClick = { scope.launch { showDetail(note) } },
2984
+ ) {
2985
+ text(note.title, style = TextStyle.BODY)
2986
+ text(note.body.take(40), style = TextStyle.CAPTION, color = TextColor.SECONDARY)
2987
+ }
2988
+ }
2989
+ if (all.size > 5) {
2990
+ text(
2991
+ "+" + (all.size - 5) + " more — ask me to open one",
2992
+ style = TextStyle.CAPTION,
2993
+ color = TextColor.SECONDARY,
2994
+ )
2995
+ }
2996
+ }
2997
+ }
2998
+ }
2999
+
3000
+ /** DETAIL — one note full-screen + the explicit Back affordance. */
3001
+ private suspend fun showDetail(note: Note) {
3002
+ glasses.display.show {
3003
+ column(gap = 8, padding = 12) {
3004
+ text(note.title, style = TextStyle.HEADING)
3005
+ text(note.body, style = TextStyle.BODY)
3006
+ // Stable explicit id — agent-targetable via injectInput, and the
3007
+ // stand-in for the not-yet-hookable mid-pinch back gesture.
3008
+ button("Back to notes", style = ButtonStyle.OUTLINE, id = "back-to-notes") {
3009
+ scope.launch { showBrowse() }
3010
+ }
3011
+ }
3012
+ }
3013
+ }
3014
+ }`,
3015
+ swift: `// ⚠️ iOS PARITY PENDING — the iOS library has no DisplayClient yet.
3016
+ // The display surface is Android-first. Until the Swift port lands, iOS
3017
+ // apps see glasses.display.isAvailable as unavailable and should keep the
3018
+ // voice-first path (read notes aloud). The Android pattern above is the
3019
+ // contract the Swift port will mirror (result-builder DSL, select-only
3020
+ // input routing, explicit Back affordance).`,
3021
+ },
3022
+ explanation: `THE AGENT-SIDE VERIFICATION LOOP — run from the same MCP session
3023
+
3024
+ // 0. Display is PER-DEVICE and a fresh sim session defaults to
3025
+ // rayban_meta (NO display). Set the device first:
3026
+ await setSimDevice({ sessionId, device: "rayban_display" });
3027
+
3028
+ // 1. Wake, then drive the browse view (works against the REAL provider):
3029
+ await injectTranscript({ sessionId, text: "hey notes" });
3030
+ // ... wait for assistant.session_started in getEventLog, then:
3031
+ const inj = await injectAssistantUtterance({ sessionId, text: "show me my notes on the display" });
3032
+ await assertToolCalled({ sessionId, name: "show_notes", sinceCursor: inj.watchCursor });
3033
+
3034
+ // 2. Read EXACTLY what is on the glasses screen — structured, no pixels:
3035
+ const d1 = await getDisplayState({ sessionId });
3036
+ // d1.tree = the rendered DisplayNode tree (heading + 5 cards + overflow)
3037
+ // d1.interactiveIds = ["box-0", ..., "box-4"] ← the pinchable cards
3038
+
3039
+ // 3. Pinch a card exactly the way the Neural Band would:
3040
+ await injectInput({ sessionId, action: "select", targetId: "box-1" });
3041
+ const d2 = await getDisplayState({ sessionId });
3042
+ // d2 = the detail view; d2.interactiveIds = ["back-to-notes"]
3043
+
3044
+ // 4. Back via the explicit button (the back GESTURE has no app hook yet —
3045
+ // injectInput(action: "back") is delivered but nothing reaches the app):
3046
+ await injectInput({ sessionId, action: "select", targetId: "back-to-notes" });
3047
+ // getDisplayState → the browse view again
3048
+
3049
+ // 5. Voice rail over the same state machine:
3050
+ // "open my groceries note" → show_note → detail
3051
+ // "go back to the list" → show_notes → browse
3052
+
3053
+ // 6. Degradation branch: setSimDevice({ device: "rayban_meta" }) flips
3054
+ // isAvailable LIVE (no reconnect). The same ask now returns the tool
3055
+ // Err and the model offers to read the note aloud instead.
3056
+
3057
+ VERIFICATION NOTES
3058
+
3059
+ - getDisplayState reads the live in-memory hub snapshot — it works headless
3060
+ (no browser tab needed to verify show / clear / tree contents).
3061
+ - injectInput DOES need the sim browser tab attached (ensureSimulatorBrowser)
3062
+ — the browser owns the rendered tree + focus, and routes the selection back
3063
+ to the app the same way real hardware would.
3064
+ - Display events do not persist to getEventLog yet — use getDisplayState as
3065
+ the verification source for display flows.
3066
+ - Navigate (the slide) moves focus browser-side and is currently not
3067
+ observable headless; verify selection outcomes (the re-render) instead.`,
3068
+ gotchas: [
3069
+ "**Gate on `isAvailable`, never the model name** — and return the reason in the tool Err (\"These glasses have no display...\") so the model explains it accurately instead of improvising. The gate flips LIVE when the sim device changes; the same running session can see true then false.",
3070
+ "**`show {}` replaces the whole display** — own the view state app-side (browse vs detail) and re-render complete views on every transition. There are no incremental updates.",
3071
+ "**The back gesture (mid-pinch) cannot reach your app today** — display input is select-only in the current SDK. The explicit Back button IS the back affordance; wire 'go back' voice asks to the same transition (show_notes).",
3072
+ "**Cards are containers with auto-generated positional ids (box-N); buttons take explicit stable ids.** Agents/tests driving cards couple to render order — keep the browse sort stable, and use explicit-id buttons for fixed affordances like Back.",
3073
+ "**onClick is a plain () -> Unit** — launch a coroutine inside it for the suspend show()/clear() calls.",
3074
+ "**A fresh sim session defaults to rayban_meta (no display)** — setSimDevice('rayban_display') before driving any display flow, or every show is a silent no-op and getDisplayState stays empty.",
3075
+ ],
3076
+ relatedFeatures: ["display", "assistant_runtime", "assistant_tool", "voice_command"],
3077
+ };
2890
3078
  export const CODE_EXAMPLES = {
2891
3079
  voice_qa_assistant: VOICE_QA_ASSISTANT,
2892
3080
  barge_in_speak: BARGE_IN_SPEAK,
@@ -2898,6 +3086,7 @@ export const CODE_EXAMPLES = {
2898
3086
  agent_test_loop: AGENT_TEST_LOOP,
2899
3087
  assistant_agent_loop: ASSISTANT_AGENT_LOOP,
2900
3088
  agent_driven_e2e_full_loop: AGENT_DRIVEN_E2E_FULL_LOOP,
3089
+ display_browse_detail: DISPLAY_BROWSE_DETAIL,
2901
3090
  conversation_agent_loop: CONVERSATION_AGENT_LOOP,
2902
3091
  };
2903
3092
  export const CODE_EXAMPLE_PATTERNS = Object.keys(CODE_EXAMPLES).sort();