@extentos/mcp-server 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +1 -1
  2. package/dist/tools/data/capabilities.js +1 -1
  3. package/dist/tools/data/capabilities.js.map +1 -1
  4. package/dist/tools/data/capabilityPatterns.d.ts.map +1 -1
  5. package/dist/tools/data/capabilityPatterns.js +147 -51
  6. package/dist/tools/data/capabilityPatterns.js.map +1 -1
  7. package/dist/tools/data/codeExamples.d.ts.map +1 -1
  8. package/dist/tools/data/codeExamples.js +172 -33
  9. package/dist/tools/data/codeExamples.js.map +1 -1
  10. package/dist/tools/definitions.js +2 -2
  11. package/dist/tools/definitions.js.map +1 -1
  12. package/dist/tools/docs/index.d.ts.map +1 -1
  13. package/dist/tools/docs/index.js +36 -7
  14. package/dist/tools/docs/index.js.map +1 -1
  15. package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
  16. package/dist/tools/handlers/generateConnectionModule.js +25 -3
  17. package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
  18. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  19. package/dist/tools/handlers/validateIntegration.js +89 -31
  20. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  21. package/dist/tools/util/dependency.d.ts.map +1 -1
  22. package/dist/tools/util/dependency.js +64 -13
  23. package/dist/tools/util/dependency.js.map +1 -1
  24. package/dist/tools/util/manifest.d.ts.map +1 -1
  25. package/dist/tools/util/manifest.js +7 -3
  26. package/dist/tools/util/manifest.js.map +1 -1
  27. package/dist/tools/util/permissions.d.ts.map +1 -1
  28. package/dist/tools/util/permissions.js +3 -1
  29. package/dist/tools/util/permissions.js.map +1 -1
  30. package/package.json +8 -6
package/README.md CHANGED
@@ -57,4 +57,4 @@ The MCP server is pre-1.0 (0.x) — APIs may shift between minor versions until
57
57
 
58
58
  ## License
59
59
 
60
- MIT — see [LICENSE](https://github.com/Asgermolgaard/vibe-hardware/blob/master/mcp-server/LICENSE) in the repo.
60
+ MIT — see [LICENSE](https://github.com/extentos/mcp-server/blob/main/LICENSE). Issues and feedback: [github.com/extentos/mcp-server](https://github.com/extentos/mcp-server/issues).
@@ -318,7 +318,7 @@ export const META_RAYBAN_CAPABILITIES = {
318
318
  type: "display",
319
319
  tier: "dat_native",
320
320
  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; the BACK gesture (mid-pinch / injectInput(action:'back')) routes to the current show's `onBack` — `show(onBack = { ... }) { ... }`, registered per show because back is view-contextual (detail→browse, root→clear). Clickable containers accept an explicit stable `id` (otherwise positional box-N). Availability: Android SDK shipped + sim-verified (real hardware renders via Meta DAT mwdat-display; the hardware back-gesture wiring lands with the real-hardware display pass); iOS port pending. See getCapabilityGuide(feature: \"display\") + getCodeExample(pattern: \"display_browse_detail\").",
321
- sdkPath: { kotlin: "display.show / display.clear / display.isAvailable", swift: "pending the iOS DisplayClient port has not shipped yet (Android-first)" },
321
+ sdkPath: { kotlin: "display.show / display.clear / display.isAvailable", swift: "display.show / display.clear / display.isAvailable (URL-based media; local-media roots image(photo:)/video(clip:) still Android-only)" },
322
322
  params: { content: "DisplayScope builder lambda (column / row / text / image / button / icon / video)" },
323
323
  },
324
324
  ],
@@ -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;AAi7CD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA4B7D,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;AAihDD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA4B7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAwC,CAAC"}
@@ -209,7 +209,9 @@ glasses.camera.videoFrames(
209
209
  ).collect { frame ->
210
210
  // process frame.data (ByteArray) — also frame.width, frame.height, frame.timestampMs
211
211
  }`,
212
- swift: `for await frame in glasses.camera.videoFrames(
212
+ swift: `// videoFrames is a THROWING stream — it throws CameraStreamPaused if
213
+ // started while the wearer has paused the camera (temple tap).
214
+ for try await frame in glasses.camera.videoFrames(
213
215
  config: VideoFrameConfig(
214
216
  resolution: .low,
215
217
  frameRate: 2,
@@ -225,6 +227,9 @@ glasses.camera.videoFrames(
225
227
  "frame_rate × battery: 2fps for ML drains negligibly; 7-15fps for preview lasts ~1hr; 24-30fps drains in ~30min. Always pair high-fps streams with a thermal_warning listener that downgrades.",
226
228
  "Gated by camera_streaming_enabled + privacy_mode toggles. battery_save_mode = true clamps to LOW + 2fps regardless of config — the clamp emits a `camera_stream_clamped` event on glasses.runtime.events (payload: requested vs effective resolution/fps) so the downgrade is observable (F-80).",
227
229
  "If the wearer paused the camera (temple tap) and you START the flow while paused, it throws CameraStreamPausedException at collection — catch it and prompt 'tap the right temple to resume'. A pause MID-stream is not an error: frames just stop (the last-rendered picture freezes) and resume when the wearer taps. Same for a mid-RECORDING pause: the captureVideo recording stays alive but captures NO footage while paused — the final clip splices across the gap (duration reflects footage, not wall clock); a hold (stop) mid-recording ends it with the footage so far. There is no app-callable resume in DAT 0.8; never tear down + reopen to force it (that drops the connection). The simulator reproduces all of this via its Hardware-buttons panel / injectHardwareButton.",
230
+ "Frame timestamps are guaranteed strictly increasing per stream (Android `frame.timestampMs`, iOS `frame.presentationTimeUs`). The hardware's presentation clock can rebase when the underlying camera session re-arms (reconnect / internal recovery); the SDK clamps a non-advancing source timestamp to previous+1 so consumer pipelines can safely assume monotonic order. Don't use frame timestamps as wall-clock — anchor your own epoch at stream start.",
231
+ "Requested resolution is a CEILING, not a guarantee, on Meta hardware. DAT tiers: LOW 360×640, MEDIUM 504×896, HIGH 720×1280 — but Bluetooth Classic bandwidth drives an automatic quality ladder (resolution steps down one tier first, then frame rate — never below 15fps) plus adaptive per-frame compression, so effective quality can drop MID-stream with no error. Additionally the camera stream is armed once per app session and kept warm (tearing it down mid-session destabilizes the transport): the FIRST camera use fixes the stream's quality tier, and later requests at a different resolution reuse the armed stream. Read `frame.width`/`frame.height` per frame for the effective resolution — never assume the configured value.",
232
+ "Starting the first camera use arms the device session — the public connection state stays `Active` throughout (its `camera` status shows `starting` while it warms, then `ready`; `broken` means a capture failed and needs a reconnect). Treat only `Disconnected` as a lost connection; see searchDocs(topic: 'connection_state_model').",
228
233
  "Requires FOREGROUND_SERVICE on Android 14+; iOS needs bluetooth-central UIBackgroundModes. See getPermissions.",
229
234
  ],
230
235
  relatedExamples: [],
@@ -306,7 +311,7 @@ case .disconnected(let cause):
306
311
  }`,
307
312
  gotchas: [
308
313
  "ExtentosConnectionPage already renders the canonical pairing / connecting / connected UI. Don't roll your own unless you need a custom in-app affordance.",
309
- "Disconnected.cause carries WHY the connection dropped (UserRequested, DeviceDroppedConnection, ThermalCritical, HingesClosed, SimulatorSessionExpired, TransportFailure). Surface meaningful causes to the user; treat TransportFailure as retryable.",
314
+ "Disconnected.cause carries WHY the connection dropped (UserRequested, DeviceDroppedConnection, ThermalCritical, HingesClosed, SimulatorSessionExpired, SimulatorBrowserClosed, SimulatorMeterExhausted, TransportFailure). Surface meaningful causes to the user; treat TransportFailure as retryable.",
310
315
  ],
311
316
  relatedExamples: ["connection_page_setup"],
312
317
  };
@@ -432,12 +437,13 @@ final class CountHandler: @unchecked Sendable {
432
437
  // guard case .final(let text, _, _, _) = t else { continue }
433
438
  // if myRegex.firstMatch(text) != nil { handleMatch() }
434
439
  // }
435
- // _ = glasses.voice.registerHint(phrase: "...", stops: ["..."])
440
+ // _ = glasses.voice.registerHint(phrase: "...", label: nil, stops: ["..."])
436
441
  //
437
442
  // registerHint surfaces the phrase on the connection page + simulator
438
443
  // without taking over dispatch. Stops-cancellation does NOT apply to
439
444
  // raw transcriptions — handle that yourself.`,
440
445
  gotchas: [
446
+ "Swift overload cliff: the ONLY defaulted convenience is `onPhrase(phrase:handler:)` (and `registerHint(phrase:)`). The moment you pass `label:` you must ALSO pass `stops:` — there is no `(phrase:label:)` overload, and the compiler error reads \"missing argument for parameter 'stops'\", which looks like the two-arg form is broken when it isn't. Kotlin has true per-parameter defaults; Swift doesn't.",
441
447
  "Match is case-insensitive substring on FINAL transcripts only — `glasses.voice.onPhrase(\"hello\")` fires on \"say hello there\" but NOT on a Partial transcript mid-utterance. Wake on Final to avoid double-fires; the existing dispatch path already filters.",
442
448
  "Stops auto-cancel the handler coroutine/Task via structured concurrency — same shape as withTimeout. If your cleanup itself suspends (releasing a MediaPlayer, draining a queue, sending a final speak), wrap it in `withContext(NonCancellable) { ... }` (Kotlin) or `Task.detached { ... }` (Swift) inside your finally / defer block. Plain non-suspending cleanup just works.",
443
449
  "Stops only fire DURING handler execution — they're not standalone matchers. If the customer says \"stop counting\" before any \"count to ten\" parent fires, nothing happens (correct — the stop is parented to the start). The simulator UI gates the STOP chips by parent.isActive for the same reason.",
@@ -460,9 +466,9 @@ import kotlinx.coroutines.withContext
460
466
  import java.io.File
461
467
 
462
468
  // F-R4-04: VideoConfig fields are { maxDurationSeconds: Int?, includeAudio:
463
- // Boolean = true, format: VideoFormat = MP4_HEVC }. maxDurationSeconds is
464
- // Int? null (the default) means no time cap. There is NO resolution
465
- // field on Android (asymmetric with iOS see Swift snippet below). There
469
+ // Boolean = true, format: VideoFormat = MP4_HEVC, resolution: Resolution =
470
+ // MEDIUM, frameRate: Int = 24 }. maxDurationSeconds is
471
+ // Int? null (the default) means no time cap. There
466
472
  // is NO stopConditions field on the Kotlin Config — the spec metadata used
467
473
  // to advertise one but it was a pre-pivot vestige; the actual stop
468
474
  // primitive is structured-concurrency cancellation of the caller's
@@ -528,13 +534,12 @@ if (!ok) return // copy failed — surface to UI
528
534
  // videoFrames-based encoder if you need longer-than-30s clips.`,
529
535
  swift: `import GlassesCore
530
536
 
531
- // F-R4-04: Swift VideoConfig still differs from Kotlin's in two ways.
532
- // Fields: { resolution: Resolution, maxDurationSeconds: Int?, format:
533
- // VideoFormat, includeAudio: Bool = false }. maxDurationSeconds matches
534
- // Kotlin now (Int?, null = no cap). The remaining asymmetry: the
535
- // resolution field has no Kotlin equivalent, and includeAudio defaults
536
- // false on iOS vs true on Android. Don't assume full shape-for-shape
537
- // parity here.
537
+ // F-R4-04 resolved: Swift VideoConfig now matches Kotlin field-for-field:
538
+ // { resolution: Resolution = .medium, maxDurationSeconds: Int? = nil,
539
+ // format: VideoFormat = .mp4Hevc, includeAudio: Bool = true,
540
+ // frameRate: Int = 24 }. maxDurationSeconds nil = no cap; includeAudio
541
+ // defaults TRUE on both platforms (iOS flipped 2026-07-15). Only the
542
+ // declaration order differs.
538
543
 
539
544
  let result = await glasses.camera.captureVideo(
540
545
  config: VideoConfig(
@@ -546,10 +551,10 @@ let result = await glasses.camera.captureVideo(
546
551
  )
547
552
  guard case .success(let clip) = result else { return }
548
553
 
549
- let url = clip.url // URL? — nil on transport-boundary drop
554
+ let uri = clip.uri // String? — nil on transport-boundary drop
550
555
  let duration = clip.durationMs
551
- // iOS has no Videos.copyToFile equivalent yet (queued). Read the URL
552
- // directly with FileManager / Data(contentsOf:) for file:// URLs, or
556
+ // iOS has no Videos.copyToFile equivalent yet (queued). Bridge the uri
557
+ // yourself URL(string:) + Data(contentsOf:) for file:// URIs, or
553
558
  // parse the data: scheme by hand for BrowserSim.
554
559
 
555
560
  // ── Stopping a recording on a voice command (Swift) ──
@@ -560,11 +565,13 @@ let duration = clip.durationMs
560
565
  // such that cancellation does not interrupt the save:
561
566
  //
562
567
  // glasses.voice.onPhrase(phrase: "start recording",
568
+ // label: nil,
563
569
  // stops: ["stop recording"]) { [glasses] in
564
570
  // let result = await glasses.camera.captureVideo(
565
571
  // config: VideoConfig(maxDurationSeconds: 60, includeAudio: true)
566
572
  // )
567
- // guard case .success(let clip) = result, let url = clip.url
573
+ // guard case .success(let clip) = result, let uri = clip.uri,
574
+ // let url = URL(string: uri)
568
575
  // else { return }
569
576
  // // post-stop I/O — must survive cancellation
570
577
  // await Task.detached(priority: .userInitiated) {
@@ -573,7 +580,7 @@ let duration = clip.durationMs
573
580
  // }.value
574
581
  // }`,
575
582
  gotchas: [
576
- "**Cross-platform asymmetry — F-R4-04.** Kotlin VideoConfig has FIVE fields on Android (maxDurationSeconds: Int? = null, includeAudio: Boolean = true, format: VideoFormat = MP4_HEVC, resolution: Resolution = MEDIUM, frameRate: Int = 24). Swift VideoConfig has FOUR (resolution, maxDurationSeconds: Int?, format, includeAudio: Bool = false) the real asymmetry is Kotlin adds `frameRate` (iOS has none) and `includeAudio` defaults differ (Kotlin true / iOS false); both platforms have `resolution`. maxDurationSeconds now matches across platforms (Int?, null = no cap). Remaining asymmetry: Kotlin has no resolution field; Swift's includeAudio defaults to false where Android's defaults to true. Don't port snippets shape-for-shape.",
583
+ "**Cross-platform parity — F-R4-04 resolved.** VideoConfig now matches field-for-field on both platforms: maxDurationSeconds: Int? = null/nil (no cap by default), includeAudio (default true on BOTH iOS flipped to true 2026-07-15), format (default MP4_HEVC), resolution (default MEDIUM), frameRate (default 24). Only the declaration order differs between Kotlin and Swift; snippets port shape-for-shape.",
577
584
  "**No stopConditions on either platform — F-R4-04.** The spec metadata used to advertise a `stop_conditions` parameter accepting `voice_command` entries; that was a pre-pivot vestige and was never wired in the Kotlin/Swift API. The actual stop primitive is structured-concurrency cancellation of the caller's coroutine (in Kotlin) / Task (in Swift). Use `voice.onPhrase(phrase = \"start recording\", stops = listOf(\"stop recording\")) { captureVideo(...) }` and let the stops watcher cancel the handler — the library's transport drains the partial video_result for up to 10s and returns Ok(VideoClip).",
578
585
  "**Cancel-drain ceiling is 10s — F-R4-05.** Real-hardware MediaRecorder.stop → encode → video_result can run 3–5s on 20-second clips. The library waits up to 10s under NonCancellable for the partial response after sending capture_video_abort. If the encode exceeds 10s (very large clips / slow device), the original CancellationException rethrows and the partial is lost. Bound clip lengths or fall back to a `videoFrames` + MediaMuxer custom encoder for >30s clips.",
579
586
  "**Post-clip I/O must be NonCancellable.** When using onPhrase + stops, the handler coroutine has been cancellation-requested by the time captureVideo returns Ok(clip). The next suspend (e.g., `Videos.copyToFile(uri, dst)`) will throw CancellationException unless wrapped in `withContext(NonCancellable) { ... }` (Kotlin) or executed in a `Task.detached` (Swift). Saving without the wrap silently drops the clip.",
@@ -898,8 +905,8 @@ for await state in session.state.stream { /* idle, dormant, activating, active,
898
905
  // Stop when done (async, NOT throwing on iOS):
899
906
  await session.stop() // or await glasses.assistant.stop() — equivalent`,
900
907
  gotchas: [
901
- "**`start()` is suspend / async throws — call from a coroutine / Task.** Opens the WebSocket to the Extentos managed gateway (no API key in the app), sends session.update, awaits session.updated handshake (~1-2s typical). Throws AssistantException(AlreadyActive) if another session is active; AssistantException(NetworkError) on WS open failure.",
902
- "**Sugar form auto-starts the session; raw form does not.** `assistant.start(provider) { ... }` returns an already-Active session. `assistant.createSession(config)` returns an Idle session — you call `session.start()` to activate. The sugar is shorthand for `createSession + start`.",
908
+ "**`start()` is suspend / async throws — call from a coroutine / Task.** Sets the session up and lands it Dormant (pass `startActive = true` to connect immediately); `wake()` is what opens the WebSocket to the Extentos managed gateway (no API key in the app), sends session.update, and awaits the session.updated handshake (~1-2s typical). Throws AssistantException(AlreadyActive) if another session is active; wake() throws NetworkError on WS open failure (state returns to Dormant — retryable).",
909
+ "**Sugar form auto-starts the session; raw form does not.** `assistant.start(provider) { ... }` returns a started session sitting Dormant, ready to `wake()` (Active immediately only with `startActive = true`). `assistant.createSession(config)` returns an Idle session — you call `session.start()` yourself. The sugar is shorthand for `createSession + start`.",
903
910
  "**Automatic greeting on wake via the `greeting` field (type `Greeting`, package `com.extentos.glasses.core.assistant`).** Three variants: `Greeting.Default` (the default — a memory-aware greeting, no `onWake` wiring needed), `Greeting.Custom(directive)` (your own directive — prepend `Greeting.DEFAULT_DIRECTIVE` to extend rather than replace it), and `Greeting.Off` (greet manually / not at all). Replaces the old `onWake { greet(...) }` wiring.",
904
911
  "**Customer-can-skip-it (synthesis #7).** The raw form is the primitive; the sugar reduces to it. Every customer can replace `start { tool(...) { ... } }` with `createSession(AssistantConfig(tools = listOf(ToolDefinition(...), ...)))` + `start()` and get identical behavior. Useful for programmatic tool registration (loaded from config, conditional, etc.).",
905
912
  "**`stop()` is idempotent.** Calling stop() on a Stopped session is a no-op. Calling start() on a Stopped session throws AssistantException(SessionEnded) — create a new session via createSession() to start fresh.",
@@ -1053,13 +1060,13 @@ let provider: AssistantProvider = .openAI(
1053
1060
  turnDetection: .semanticVad
1054
1061
  )
1055
1062
 
1056
- // Higher reasoning baseline (iOS parity for reasoningEffort lands with
1057
- // the next Mac VPS handoff)
1058
- // let provider: AssistantProvider = .openAI(
1059
- // model: "gpt-realtime-2",
1060
- // voice: "alloy",
1061
- // reasoningEffort: .medium
1062
- // )
1063
+ // Higher reasoning baseline for an analytical assistant same latency
1064
+ // trade-off as Kotlin (keep .low for casual chat)
1065
+ let provider: AssistantProvider = .openAI(
1066
+ model: "gpt-realtime-2",
1067
+ voice: "alloy",
1068
+ reasoningEffort: .medium
1069
+ )
1063
1070
 
1064
1071
  // No API key in code. The assistant runs on the Extentos managed gateway
1065
1072
  // by default; to BYOK, add your OpenAI key in the dashboard Credentials
@@ -1136,16 +1143,22 @@ tool("save_photo", "Save a photo to the user's library WITHOUT describing it. Ca
1136
1143
  // the platform camera intent). Same call shape — library handles the
1137
1144
  // read + base64 encode internally.
1138
1145
  glasses.assistant.activeSession?.includeImage("content://media/external/images/media/12345")`,
1139
- swift: `// iOS port lands after Android stabilizes (see real-hardware-validation-backlog.md).
1140
- // The Swift surface will mirror Kotlin's includeImage(uri:prompt:) signature.
1146
+ swift: `// Canonical pattern capturePhoto + includeImage inside a tool body. Reach
1147
+ // the running session via glasses.assistant.activeSession (non-null while a
1148
+ // tool dispatches). Swift note: prompt: has no default — pass nil to send
1149
+ // the image alone.
1141
1150
  config.tool("describe_scene", description: "Describe what the user is currently looking at.") {
1142
1151
  guard let photo = (await self.glasses.camera.capturePhoto()).success else {
1143
1152
  return .err("camera failed")
1144
1153
  }
1145
1154
  guard let uri = photo.uri else { return .err("photo had no uri") }
1146
- try await self.session?.includeImage(uri: uri)
1155
+ try await self.glasses.assistant.activeSession?.includeImage(uri: uri, prompt: nil)
1147
1156
  return .ok("looking")
1148
- }`,
1157
+ }
1158
+
1159
+ // With a directed prompt — combine "look at this" with a specific question:
1160
+ // try await self.glasses.assistant.activeSession?.includeImage(
1161
+ // uri: uri, prompt: "What does this sign say? Read it back verbatim.")`,
1149
1162
  gotchas: [
1150
1163
  "**Reaching the session from a tool body.** A `tool { }` lambda has NO `session` receiver — call `glasses.assistant.activeSession?.includeImage(uri)`. `activeSession` is the session the model is currently running in, non-null inside any tool dispatch (the model only dispatches a tool while Active). The bare `session.…` you'll see in handler-based examples (e.g. assistant_agent_loop) assumes a field captured from `glasses.assistant.start(...)` to wire wake — equivalent, use whichever your handler has. (`onWake { }` / `onSleep { }` are different — there the session IS the lambda receiver, so you call `clearHistory()` etc. on it directly.)",
1151
1164
  "**Auto-triggers a response — that's the point.** `includeImage` is a one-call API: image goes in, the model speaks. If you want to stage an image without an immediate response (rare — e.g. accumulating multiple images then asking one question), drop down to the raw OpenAI provider primitive (not exposed in v1; file a request if you need it).",
@@ -1285,8 +1298,66 @@ glasses.runtime.events
1285
1298
  .filterIsInstance<RuntimeEvent.Assistant>()
1286
1299
  .onEach { mySavedHistoryStore.save(session.conversationHistory()) }
1287
1300
  .launchIn(scope)`,
1288
- swift: `// iOS port for these four primitives lands with the next Mac VPS handoff.
1289
- // Track in shared-context/real-hardware-validation-backlog.md.`,
1301
+ swift: `// NOTE: 'session' below = the live AssistantSession. Reach it via
1302
+ // glasses.assistant.activeSession inside any tool body, or capture the
1303
+ // value returned by glasses.assistant.start(...).
1304
+
1305
+ // ── setReasoningEffort: model self-routes via a tool ───────────────
1306
+ config.tool("think_harder", description: "Call when the user asks something complex that needs deeper reasoning. The next response will take longer but be more thorough.") {
1307
+ try await session.setReasoningEffort(.high)
1308
+ return .ok("thinking more carefully")
1309
+ }
1310
+
1311
+ config.tool("back_to_quick_chat", description: "Call when the user is done with the deep question and wants normal pace again.") {
1312
+ try await session.setReasoningEffort(.low)
1313
+ return .ok("back to quick mode")
1314
+ }
1315
+
1316
+ // ── updateInstructions: persona swap ───────────────────────────────
1317
+ config.tool("switch_to_formal", description: "When the user says something like 'be more formal' or 'professional voice now', switch persona.") {
1318
+ try await session.updateInstructions(
1319
+ "You are a professional, concise voice assistant. Respond in formal English. Keep replies brief and factual.")
1320
+ return .ok("switching to formal mode")
1321
+ }
1322
+
1323
+ // ── cancelSpeak: tool-driven interrupt ─────────────────────────────
1324
+ config.tool("stop_video", description: "Stop the current video recording.") {
1325
+ guard let clip = await self.stopAndAwaitVideo() else { return .err("nothing recording") }
1326
+ self.library.add(clip)
1327
+ // Cut the model off mid-sentence so the next utterance comes from
1328
+ // our tool result, not the prior context.
1329
+ await session.cancelSpeak()
1330
+ return .ok("video saved")
1331
+ }
1332
+
1333
+ // ── conversationHistory: escalation to a stronger model ────────────
1334
+ config.tool("ask_smart_model", description: "Use when the user asks something complex that needs a more powerful model — deep reasoning, long analysis, multi-step problems.") {
1335
+ // Forward the recent conversation so the strong model has context.
1336
+ let context = session.conversationHistory(limit: 20).map { turn in
1337
+ switch turn {
1338
+ case .userText(let text, _): return "user: \\(text)"
1339
+ case .assistantText(let text, _): return "assistant: \\(text)"
1340
+ case .toolInvocation(let name, _, let argsJson, _): return "tool_call: \\(name)(\\(argsJson))"
1341
+ case .toolReturn(_, let output, _): return "tool_result: \\(output)"
1342
+ }
1343
+ }.joined(separator: "\\n")
1344
+ let answer = await self.strongModel.chat(system: "Continue this voice conversation. Be thorough.", user: context)
1345
+ return .ok(answer) // realtime model reads this aloud
1346
+ }
1347
+
1348
+ // ── Memory primitives (iter5.1) — same composition patterns as Kotlin ──
1349
+ // Fresh-each-wake notetaker:
1350
+ _ = try await glasses.assistant.start(provider: provider) { config in
1351
+ config.onWake { session in session.clearHistory() } // wipe before each turn-on
1352
+ config.historyCompaction = .dropOldest // disable Auto (no LLM cost)
1353
+ // config.tool(...)
1354
+ }
1355
+
1356
+ // App-restart restoration (your storage; the SDK doesn't persist):
1357
+ let savedTurns: [Turn] = mySavedHistoryStore.load()
1358
+ if !savedTurns.isEmpty {
1359
+ session.replaceHistory(savedTurns) // SDK replays this on reconnect
1360
+ }`,
1290
1361
  gotchas: [
1291
1362
  "**Reaching the session inside a tool body vs. onWake.** A `tool { }` lambda has NO `session` receiver — call these on `glasses.assistant.activeSession?` (the running session, non-null while a tool dispatches) or on a field you captured from `glasses.assistant.start(...)`; the bare `session.…` in these snippets is that captured field. Asymmetry to know: `onWake { }` / `onSleep { }` DO receive the session as `this`, so inside them you call `clearHistory()` / `setReasoningEffort(...)` directly, no `session.` prefix.",
1292
1363
  "**All four are Active-only except `conversationHistory`.** `setReasoningEffort` / `updateInstructions` / `cancelSpeak` throw `AssistantException(NotReady)` outside Active state — but tool bodies always run while Active (the model only dispatches a tool when the session is up), so the typical inside-a-tool-body usage is always safe. `conversationHistory` is safe in any state and returns an empty list pre-start or post-stop.",
@@ -1307,7 +1378,7 @@ glasses.runtime.events
1307
1378
  // sim against the real provider).
1308
1379
  const DISPLAY = {
1309
1380
  feature: "display",
1310
- 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; the BACK gesture (mid-pinch / `injectInput(action: 'back')`) routes to the current show's `onBack` — `show(onBack = { ... }) { ... }`, registered per show because back is view-contextual (a detail view's onBack re-renders browse; a root view's onBack clears). Android-first: the iOS DisplayClient port is pending. Canonical multi-view pattern: `getCodeExample(pattern: 'display_browse_detail')`.",
1381
+ 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; the BACK gesture (mid-pinch / `injectInput(action: 'back')`) routes to the current show's `onBack` — `show(onBack = { ... }) { ... }`, registered per show because back is view-contextual (a detail view's onBack re-renders browse; a root view's onBack clears). The iOS DisplayClient has landed (URL-based media; the local video(clip:)/image(photo:) hosting roots are still Android-only — D5b). Canonical multi-view pattern: `getCodeExample(pattern: 'display_browse_detail')`.",
1311
1382
  kotlin: `import com.extentos.glasses.core.Background
1312
1383
  import com.extentos.glasses.core.ButtonStyle
1313
1384
  import com.extentos.glasses.core.TextColor
@@ -1356,27 +1427,51 @@ glasses.display.show(onBack = { scope.launch { glasses.display.clear() } }) {
1356
1427
  // it cannot sit inside a column/row, which does not compile). MP4 by URL;
1357
1428
  // playback starts after the tree is sent and stops on the next show/clear.
1358
1429
  glasses.display.show { video("https://cdn.example.com/clip.mp4") }`,
1359
- swift: `// ⚠️ iOS PARITY PENDING — the iOS library has no DisplayClient yet.
1360
- // The display surface is Android-first; this sketch mirrors the intended
1361
- // Swift shape (result-builder form) once the port lands.
1362
- //
1363
- // if glasses.display.isAvailable {
1364
- // await glasses.display.show {
1365
- // Column(gap: 8, padding: 12) {
1366
- // Text("Groceries", style: .heading)
1367
- // Button("Close", id: "close") { Task { await glasses.display.clear() } }
1368
- // }
1369
- // }
1370
- // }
1371
- //
1372
- // Track the port via the cross-platform parity handoffs; until then iOS
1373
- // apps treat isAvailable as false and keep the voice-first path.`,
1430
+ swift: `import GlassesCore
1431
+
1432
+ // Gate rich display UX on the device actually having a screen — same
1433
+ // per-device contract as Kotlin (isAvailable flips LIVE with the sim
1434
+ // device model; show on a display-less device is a safe silent no-op).
1435
+ if !glasses.display.isAvailable {
1436
+ _ = await glasses.audio.speak("These glasses have no display — I'll read it out instead.")
1437
+ return
1438
+ }
1439
+
1440
+ // show REPLACES the whole display each call; show() and clear() are async.
1441
+ // The Swift builder is closure-based: text / button / icon / image(url:) /
1442
+ // flexBox(direction: .column) as the container (no column/row sugar).
1443
+ // Tappable ids AUTO-ASSIGN on iOS (no id: parameter) read the generated
1444
+ // ids back via getDisplayState.interactiveIds when driving from an agent.
1445
+ // onBack fires on the back gesture while THIS tree is shown.
1446
+ await glasses.display.show(onBack: { Task { await glasses.display.clear() } }) { root in
1447
+ root.flexBox(
1448
+ direction: .column,
1449
+ gap: 8,
1450
+ padding: EdgeInsets(top: 12, right: 12, bottom: 12, left: 12)
1451
+ ) { col in
1452
+ col.text("Groceries", style: .heading)
1453
+ col.text("Updated Jun 8", style: .caption, color: .secondary)
1454
+ col.text("Pasta, tomatoes, olive oil, fresh basil.", style: .body)
1455
+ // onClick is a plain () -> Void — hop into a Task for async calls.
1456
+ col.button("Close", style: .outline) {
1457
+ Task { await glasses.display.clear() }
1458
+ }
1459
+ }
1460
+ }
1461
+
1462
+ // video(url:) is FULL-SURFACE ONLY — the sole top-level node of a show.
1463
+ // URL-based media works on iOS today; the local-media roots (video(clip:) /
1464
+ // image(photo:) hosting + forgetHostedVideo/-Image) are still Android-only
1465
+ // (land with D5b).
1466
+ await glasses.display.show { root in
1467
+ root.video(url: "https://cdn.example.com/clip.mp4")
1468
+ }`,
1374
1469
  gotchas: [
1375
1470
  "**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.",
1376
1471
  "**The display ADDS light — it cannot draw darkness or occlude the world.** The real panel is additive light on a waveguide: dark pixels emit nothing (they're invisible, not 'dark'), and even the brightest element is translucent over the scene. Design with bright text and strokes; never rely on dark fills, drop shadows, or opaque panels — `Background.CARD` renders as a faint luminous lift, not a solid surface. The simulator composites the display additively (screen blend over the camera backdrop) so what you see matches the physics.",
1377
1472
  "**`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.",
1378
1473
  "**The back gesture routes to the CURRENT show's `onBack` — register it per view.** `show(onBack = { scope.launch { showPreviousView() } }) { ... }`: a detail view's onBack re-renders browse; a root view's onBack typically clears the display. Null (the default) ignores the gesture. `clear()` drops the current handlers, so a stale onBack can't fire after the display is wiped. Sim-verified end-to-end (injectInput back → onBack → re-render); the REAL-hardware mid-pinch wiring lands with the DAT display validation pass. Keep an explicit Back button too — it is the discoverable affordance.",
1379
- "**Pass explicit stable `id`s on every clickable node.** `button(\"Close\", id = \"close\")` AND `column(onClick = ..., id = \"note-42\")` are agent-targetable by identity; without an id, clickable containers fall back to positional \"box-0\", \"box-1\", ... in render order — reordering the list shifts every generated id, so anything driving them (tests, agents) couples to position. `id` is ignored without `onClick` (the id is the onClick routing handle).",
1474
+ "**Pass explicit stable `id`s on every clickable node (Android).** `button(\"Close\", id = \"close\")` AND `column(onClick = ..., id = \"note-42\")` are agent-targetable by identity; without an id, clickable containers fall back to positional \"box-0\", \"box-1\", ... in render order — reordering the list shifts every generated id, so anything driving them (tests, agents) couples to position. `id` is ignored without `onClick` (the id is the onClick routing handle). iOS has no `id:` parameter yet — ids always auto-assign; read them back via getDisplayState.interactiveIds.",
1380
1475
  "**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.",
1381
1476
  "**`video(url)` is full-surface only — and it is the ONE true-motion channel.** The hardware renders video solely as the entire display surface (root level): inside a `column {}`/`row {}` it does not compile, and mixed with sibling top-level nodes it is dropped with a `display.video_dropped` WARN runtime event (the rest of the tree still renders). Declarative tree updates are link-bound (a few Hz practical), while a root video plays on the glasses themselves — use it for anything that must feel like motion. MP4 by URL; playback auto-starts after the tree is sent and stops when the display is replaced or cleared. Additive-light caveat applies double to video: dark pixels are TRANSPARENT over the world, so dark-scene footage mostly disappears — bright-on-dark content reads best.",
1382
1477
  "**To display a clip you just RECORDED, use `video(clip)` — never hand-roll hosting.** The glasses can only play an http(s) URL they fetch themselves (a local `data:`/`file:` clip from `captureVideo` is rejected on hardware), so `show { video(clip) }` (the VideoClip overload, alongside `video(url)`) makes the SDK upload the recorded clip to a hosted URL at show() time and play that — `val clip = glasses.camera.captureVideo(...).valueOrNull(); glasses.display.show { video(clip) }`. Use `video(url)` only for a clip already hosted at a remote URL. Hosting happens at display time (not record time — recording never uploads); a few seconds of upload latency for a multi-MB clip happens inside `show` — during which the SDK puts a 'Preparing video…' card on the lens (DSP-25) so the wait isn't a silent dead pause; on hosting failure it clears that card and emits a `display.video_delivery_failed` WARN. (Rationale + lifecycle: RDQ #37.)",
@@ -1407,7 +1502,8 @@ await glasses.audio.earcon(.error, volume: 0.6)
1407
1502
  // EarconSound: .confirmation, .error, .notification, .start, .stop, .complete`,
1408
1503
  gotchas: [
1409
1504
  "earcon() is NOT gated by any toggle — like speak(), audio OUTPUT always plays (no toggle, not even privacy_mode, silences it; toggles gate audio/camera INPUT + STT). A DisabledByUser result is impossible for earcon.",
1410
- "`volume` is a Kotlin `Double` (0.0-1.0, default 1.0) — not an Int, and not the Float the internal transport uses.",
1505
+ "`volume` is a Kotlin `Double` (0.0-1.0, default 1.0) — not an Int, and not the Float the internal transport uses. On iOS `volume` is a `Float`, and the no-volume overload defaults to 0.8.",
1506
+ "Legacy surface: NAMED SOUNDS are the successor — `glasses.audio.playSound(name)` plays dashboard-uploaded clips (auto-registered at assistant start) or code-registered PCM (`registerSound(name, pcm16, sampleRate)`; `soundNames()` lists them). Prefer playSound for new work; earcon's fixed system cues keep working.",
1411
1507
  "Distinct from speak(): earcon() is a fixed system sound (no TTS, no text), returns immediately (non-blocking), and is far cheaper to call. Use earcon for acknowledgements, speak for content.",
1412
1508
  "voice_confirmations gates the SDK's OWN auto-earcon pair (START before / COMPLETE after) around connection-page voice-initiated handlers — NOT your direct earcon() calls, which always play.",
1413
1509
  "EarconSound is FFI-ordinal-encoded; always use the named cases, never a raw ordinal Int.",
@@ -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;AAmsGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAerD,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;AA80GD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAerD,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAoC,CAAC"}