@extentos/mcp-server 0.0.86 → 0.0.88

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.
@@ -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;AA0hDD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CASrD,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;AA+kDD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CASrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAoC,CAAC"}
@@ -57,7 +57,7 @@ class CoachHandler(
57
57
  val question = recording.transcript.trim()
58
58
  if (question.isEmpty() || "stop" in question.lowercase()) break
59
59
 
60
- // ask() returns LlmResult — 6 variants, each with its own
60
+ // ask() returns LlmResult — 7 variants, each with its own
61
61
  // user-facing message. F-R2-10 + F-R3-10: collapsing any of
62
62
  // them into one "try again" line confuses users (was it
63
63
  // wifi? key? the AI?) and the debugging agent (is retry
@@ -75,7 +75,8 @@ class CoachHandler(
75
75
  system = workouts.systemPrompt(),
76
76
  )) {
77
77
  is LlmResult.Ok -> r.text
78
- LlmResult.AuthFailure -> "Your Anthropic key isn't set up — add it to local.properties and rebuild."
78
+ LlmResult.KeyMissing -> "Your Anthropic key isn't set up — add it to local.properties and rebuild."
79
+ LlmResult.KeyRejected -> "Anthropic rejected your key — it may be invalid or expired."
79
80
  LlmResult.Connectivity -> "I can't reach the network. Check your connection."
80
81
  LlmResult.Transient -> "The AI is slow right now — try again in a moment."
81
82
  LlmResult.ClientBug -> "Something's off with the request — check logcat AnthropicClient:E."
@@ -126,7 +127,7 @@ class CoachHandler(
126
127
  let question = recording.transcript.trimmingCharacters(in: .whitespaces)
127
128
  if question.isEmpty || question.lowercased().contains("stop") { break }
128
129
 
129
- // ask() returns LlmResult — 6 variants, each with its own
130
+ // ask() returns LlmResult — 7 variants, each with its own
130
131
  // user-facing message. F-R2-10 + F-R3-10: collapsing any of
131
132
  // them into one "try again" line confuses users and the
132
133
  // debugging agent. Exhaustive switch breaks compilation if a
@@ -140,7 +141,8 @@ class CoachHandler(
140
141
  let spoken: String
141
142
  switch await anthropic.ask(question: question, system: workouts.systemPrompt()) {
142
143
  case .ok(let text): spoken = text
143
- case .authFailure: spoken = "Your Anthropic key isn't set up — check Info.plist."
144
+ case .keyMissing: spoken = "Your Anthropic key isn't set up — check Info.plist."
145
+ case .keyRejected: spoken = "Anthropic rejected your key — it may be invalid or expired."
144
146
  case .connectivity: spoken = "I can't reach the network. Check your connection."
145
147
  case .transient: spoken = "The AI is slow right now — try again in a moment."
146
148
  case .clientBug: spoken = "Something's off with the request — check OSLog AnthropicClient."
@@ -166,7 +168,7 @@ class CoachHandler(
166
168
  "speak() blocks until done by default. If you want speak + listen-for-barge-in simultaneously, see the barge_in_speak pattern.",
167
169
  "BuildConfig API-key fields don't reflect rotations because kotlinc inlines them at compile time. Use resValue / R.string.X for Android secrets. See getCredentialGuide.",
168
170
  "AnthropicClient is the CANONICAL paste-ready client from getCodeExample('byok_anthropic') — composes here unchanged. The `ask(question, history, system)` signature in byok_anthropic accepts the `system =` parameter this example passes; no signature reconciliation needed. WorkoutRepository is YOUR app's data layer; the example calls `workouts.systemPrompt(): String` which returns the grounding-context block (today's date, recent N sets formatted compactly) that gets fed via Anthropic's `system` slot so the coach's answers reference real records instead of generic advice. The contract is: returns a String. Name + format are yours — Room + a custom flattener, DataStore + a JSON-to-prose converter, anything. F-R5-01 — previously the two examples used different `ask()` shapes; now they compose.",
169
- "ask() returns LlmResult — 6 variants: Ok / AuthFailure / Connectivity / Transient / ClientBug / Empty. Pattern-match each into a distinct spoken line. R2 F-R2-10 + R3 F-R3-10: collapsing them obscures both the user's remediation (was it wifi? key? AI?) and the debugging agent's signal (was a retry going to help?).",
171
+ "ask() returns LlmResult — 7 variants: Ok / KeyMissing / KeyRejected / Connectivity / Transient / ClientBug / Empty. Pattern-match each into a distinct spoken line. R2 F-R2-10 + R3 F-R3-10: collapsing them obscures both the user's remediation (was it wifi? key? AI?) and the debugging agent's signal (was a retry going to help?).",
170
172
  ],
171
173
  relatedFeatures: ["voice_command", "transcription_incremental", "record_audio"],
172
174
  };
@@ -299,7 +301,8 @@ class VisionHandler(
299
301
  prompt = "Describe this scene briefly, conversationally.",
300
302
  )) {
301
303
  is LlmResult.Ok -> r.text
302
- LlmResult.AuthFailure -> "Your Anthropic key isn't set up — add it to local.properties and rebuild."
304
+ LlmResult.KeyMissing -> "Your Anthropic key isn't set up — add it to local.properties and rebuild."
305
+ LlmResult.KeyRejected -> "Anthropic rejected your key — it may be invalid or expired."
303
306
  LlmResult.Connectivity -> "I can't reach the network. Check your connection."
304
307
  LlmResult.Transient -> "The vision service is slow right now — try again in a moment."
305
308
  LlmResult.ClientBug -> "Something's off with the request — check logcat AnthropicClient:E."
@@ -349,7 +352,8 @@ class VisionHandler(
349
352
  let spoken: String
350
353
  switch await vision.describe(image: image, prompt: "Describe this scene briefly, conversationally.") {
351
354
  case .ok(let text): spoken = text
352
- case .authFailure: spoken = "Your Anthropic key isn't set up — check Info.plist."
355
+ case .keyMissing: spoken = "Your Anthropic key isn't set up — check Info.plist."
356
+ case .keyRejected: spoken = "Anthropic rejected your key — it may be invalid or expired."
353
357
  case .connectivity: spoken = "I can't reach the network. Check your connection."
354
358
  case .transient: spoken = "The vision service is slow right now — try again in a moment."
355
359
  case .clientBug: spoken = "Something's off with the request — check OSLog AnthropicClient."
@@ -370,7 +374,7 @@ class VisionHandler(
370
374
  "Android: Photos.loadBase64(uri) bridges both data: and file: URIs into bytes ready for Claude Vision / GPT-4V request bodies. iOS: `photo.loadImage()` (extension on Photo) returns a UIImage; for base64 you encode the JPEG/PNG data yourself via Data.base64EncodedString().",
371
375
  "Vision LLM response time is 2-8 seconds p95; the user is staring at the glasses waiting. Consider an earcon (`glasses.audio.earcon(EarconSound.START)`) at capture time so they know it worked.",
372
376
  "VisionClient is a USER-PROVIDED stub — see getCodeExample('byok_anthropic') for the canonical Anthropic Claude Vision wrapper (request shape: content blocks with type:image / source:base64 + type:text). The byok_anthropic pattern is paste-ready in both Kotlin and Swift.",
373
- "describe() returns LlmResult — 6 variants: Ok / AuthFailure / Connectivity / Transient / ClientBug / Empty. Pattern-match (Kotlin `when` / Swift `switch`) each into a distinct user-facing line. The R2 dogfood showed users hearing 'I couldn't describe that one.' equally for 'API key not set' and 'AI was unsure'; R3 added the 502-vs-DNS gap. The sealed type forces the agent to give each its own message AND lets the built-in retry loop handle Transient / Connectivity transparently before they surface to your handler.",
377
+ "describe() returns LlmResult — 7 variants: Ok / KeyMissing / KeyRejected / Connectivity / Transient / ClientBug / Empty. Pattern-match (Kotlin `when` / Swift `switch`) each into a distinct user-facing line. The R2 dogfood showed users hearing 'I couldn't describe that one.' equally for 'API key not set' and 'AI was unsure'; R3 added the 502-vs-DNS gap. The sealed type forces the agent to give each its own message AND lets the built-in retry loop handle Transient / Connectivity transparently before they surface to your handler.",
374
378
  ],
375
379
  relatedFeatures: ["capture_photo", "voice_command", "transcription_incremental"],
376
380
  };
@@ -608,7 +612,7 @@ struct ContentView: View {
608
612
  const BYOK_ANTHROPIC = {
609
613
  pattern: "byok_anthropic",
610
614
  title: "BYOK Anthropic Claude API client (text + Vision, OkHttp / URLSession, with retry + observability)",
611
- description: "Minimal AnthropicClient that voice_qa_assistant and photo_describe_voice reference. Two methods: `ask(question, history, system)` for text-only Q&A — the `system` parameter is Anthropic's system-prompt slot, where you feed grounding context (a flattened representation of your app's data, today's date, role instructions) so the AI's answers derive from real records rather than generic prose — and `describe(imageBase64, mediaType, prompt, system)` for Claude Vision (image content blocks). There is no first-party Anthropic Kotlin SDK; this is the canonical OkHttp + kotlinx.serialization wrapper around POST /v1/messages. iOS uses URLSession + Codable. Returns LlmResult (Ok / AuthFailure / Connectivity / Transient / ClientBug / Empty) — distinct failure variants for distinct user-facing remediations. Built-in retry-with-backoff (200ms / 800ms / 3.2s, 3 attempts) for Transient (429 + 5xx) and Connectivity (IOException) failures so most upstream blips never reach the caller. Optional `observability: glasses.observability` wiring — pass it and every call surfaces under getEventLog's 'ai' filter chip. Paste, then wire the API key through resValue (Android) / Info.plist (iOS) per getCredentialGuide. F-R5-01 — ask() exposes `system` so voice_qa_assistant composes against this client unchanged.",
615
+ description: "Minimal AnthropicClient that voice_qa_assistant and photo_describe_voice reference. Two methods: `ask(question, history, system)` for text-only Q&A — the `system` parameter is Anthropic's system-prompt slot, where you feed grounding context (a flattened representation of your app's data, today's date, role instructions) so the AI's answers derive from real records rather than generic prose — and `describe(imageBase64, mediaType, prompt, system)` for Claude Vision (image content blocks). There is no first-party Anthropic Kotlin SDK; this is the canonical OkHttp + kotlinx.serialization wrapper around POST /v1/messages. iOS uses URLSession + Codable. Returns LlmResult (Ok / KeyMissing / KeyRejected / Connectivity / Transient / ClientBug / Empty) — distinct failure variants for distinct user-facing remediations. Built-in retry-with-backoff (200ms / 800ms / 3.2s, 3 attempts) for Transient (429 + 5xx) and Connectivity (IOException) failures so most upstream blips never reach the caller. Optional `observability: glasses.observability` wiring — pass it and every call surfaces under getEventLog's 'ai' filter chip. Paste, then wire the API key through resValue (Android) / Info.plist (iOS) per getCredentialGuide. F-R5-01 — ask() exposes `system` so voice_qa_assistant composes against this client unchanged.",
612
616
  code: {
613
617
  kotlin: `import com.extentos.glasses.core.ObservabilityClient
614
618
  import java.io.IOException
@@ -644,9 +648,11 @@ import okhttp3.RequestBody.Companion.toRequestBody
644
648
  * to help?).
645
649
  *
646
650
  * Ok — speak / display the text.
647
- * AuthFailure 401/403 OR blank key. Actionable by the dev (rotate
648
- * / configure the key); not by the user. Never retried.
649
- * UX: "Your Anthropic key isn't set up."
651
+ * KeyMissing blank API key; the dev never configured it. Never
652
+ * retried. UX: "Your Anthropic key isn't set up."
653
+ * KeyRejected — 401/403: the key IS present but Anthropic rejected
654
+ * it (invalid / expired / revoked / no billing).
655
+ * Never retried. UX: "Anthropic rejected your key."
650
656
  * Connectivity — IOException (DNS / no internet / TLS / socket
651
657
  * timeout). Retry won't help until network returns.
652
658
  * UX: "I can't reach the network — check your connection."
@@ -669,7 +675,8 @@ import okhttp3.RequestBody.Companion.toRequestBody
669
675
  */
670
676
  sealed interface LlmResult {
671
677
  data class Ok(val text: String) : LlmResult
672
- data object AuthFailure : LlmResult
678
+ data object KeyMissing : LlmResult
679
+ data object KeyRejected : LlmResult
673
680
  data object Connectivity : LlmResult
674
681
  data object Transient : LlmResult
675
682
  data object ClientBug : LlmResult
@@ -699,7 +706,10 @@ class AnthropicClient(
699
706
  */
700
707
  private val maxAttempts: Int = 3,
701
708
  ) {
702
- private val json = Json { ignoreUnknownKeys = true; encodeDefaults = true }
709
+ // explicitNulls = false: a null 'system' field must be omitted, not
710
+ // emitted as "system": null — Anthropic rejects an explicit null
711
+ // system with HTTP 400 ("system: Input should be a valid array").
712
+ private val json = Json { ignoreUnknownKeys = true; encodeDefaults = true; explicitNulls = false }
703
713
 
704
714
  // ---- Wire schema ----
705
715
 
@@ -801,7 +811,7 @@ class AnthropicClient(
801
811
  // ---- Transport with retry-with-backoff ----
802
812
 
803
813
  private suspend fun post(messages: List<Message>, system: String? = null): LlmResult {
804
- if (apiKey.isBlank()) return LlmResult.AuthFailure
814
+ if (apiKey.isBlank()) return LlmResult.KeyMissing
805
815
  val body = json.encodeToString(
806
816
  Req.serializer(),
807
817
  Req(model = model, maxTokens = maxTokens, messages = messages, system = system),
@@ -813,7 +823,8 @@ class AnthropicClient(
813
823
  when (result) {
814
824
  // Definitive outcomes — return immediately, no retry.
815
825
  is LlmResult.Ok,
816
- LlmResult.AuthFailure,
826
+ LlmResult.KeyMissing,
827
+ LlmResult.KeyRejected,
817
828
  LlmResult.ClientBug,
818
829
  LlmResult.Empty -> return result
819
830
  // Retryable: hold onto the variant, back off, try again.
@@ -848,8 +859,8 @@ class AnthropicClient(
848
859
  // 401/403: invalid / missing key, no billing on the
849
860
  // account. Caller fixes config; user can't. Never retried.
850
861
  response.code == 401 || response.code == 403 -> {
851
- android.util.Log.w("AnthropicClient", "Auth failure (\${response.code}): \${payload.take(500)}")
852
- LlmResult.AuthFailure
862
+ android.util.Log.w("AnthropicClient", "Key rejected (\${response.code}): \${payload.take(500)}")
863
+ LlmResult.KeyRejected
853
864
  }
854
865
  // 429 + 5xx: retryable upstream blip. The wrapper
855
866
  // loops with backoff before this surfaces to the caller.
@@ -907,7 +918,8 @@ class AnthropicClient(
907
918
  // system = workoutRepo.systemPrompt(), // your app's grounding context
908
919
  // )) {
909
920
  // is LlmResult.Ok -> r.text
910
- // LlmResult.AuthFailure -> "Your Anthropic key isn't set up — add it to local.properties and rebuild."
921
+ // LlmResult.KeyMissing -> "Your Anthropic key isn't set up — add it to local.properties and rebuild."
922
+ // LlmResult.KeyRejected -> "Anthropic rejected your key — it may be invalid or expired."
911
923
  // LlmResult.Connectivity -> "I can't reach the network. Check your connection."
912
924
  // LlmResult.Transient -> "The AI is slow right now — try again in a moment."
913
925
  // LlmResult.ClientBug -> "Something's off with the request — check logcat AnthropicClient:E for the response body."
@@ -938,9 +950,11 @@ import GlassesCore
938
950
  /// to help?).
939
951
  ///
940
952
  /// .ok — speak / display the text.
941
- /// .authFailure 401/403 OR blank key. Actionable by the dev (rotate
942
- /// / configure the key); not by the user. Never retried.
943
- /// UX: "Your Anthropic key isn't set up."
953
+ /// .keyMissing blank API key; the dev never configured it. Never
954
+ /// retried. UX: "Your Anthropic key isn't set up."
955
+ /// .keyRejected — 401/403: the key IS present but Anthropic rejected
956
+ /// it (invalid / expired / revoked / no billing).
957
+ /// Never retried. UX: "Anthropic rejected your key."
944
958
  /// .connectivity — URLSession threw (DNS / no internet / TLS / timeout).
945
959
  /// Retry won't help until network returns.
946
960
  /// UX: "I can't reach the network — check your connection."
@@ -956,7 +970,8 @@ import GlassesCore
956
970
  /// of the input. UX: "I couldn't describe that one."
957
971
  enum LlmResult {
958
972
  case ok(String)
959
- case authFailure
973
+ case keyMissing
974
+ case keyRejected
960
975
  case connectivity
961
976
  case transient
962
977
  case clientBug
@@ -1095,7 +1110,7 @@ actor AnthropicClient {
1095
1110
  // ---- Transport with retry-with-backoff ----
1096
1111
 
1097
1112
  private func post(messages: [Message], system: String?) async -> LlmResult {
1098
- guard !apiKey.isEmpty else { return .authFailure }
1113
+ guard !apiKey.isEmpty else { return .keyMissing }
1099
1114
  let body: Data
1100
1115
  do {
1101
1116
  body = try JSONEncoder().encode(
@@ -1113,7 +1128,7 @@ actor AnthropicClient {
1113
1128
  let result = await postOnce(body: body)
1114
1129
  switch result {
1115
1130
  // Definitive — return immediately, no retry.
1116
- case .ok, .authFailure, .clientBug, .empty:
1131
+ case .ok, .keyMissing, .keyRejected, .clientBug, .empty:
1117
1132
  return result
1118
1133
  // Retryable.
1119
1134
  case .transient, .connectivity:
@@ -1149,7 +1164,7 @@ actor AnthropicClient {
1149
1164
  if let http = response as? HTTPURLResponse {
1150
1165
  switch http.statusCode {
1151
1166
  case 401, 403:
1152
- return .authFailure
1167
+ return .keyRejected
1153
1168
  case 429, 500...599:
1154
1169
  return .transient
1155
1170
  case 400...499:
@@ -1197,7 +1212,8 @@ actor AnthropicClient {
1197
1212
  // system: workoutRepo.systemPrompt() // your app's grounding context
1198
1213
  // ) {
1199
1214
  // case .ok(let text): spoken = text
1200
- // case .authFailure: spoken = "Your Anthropic key isn't set up — check Info.plist."
1215
+ // case .keyMissing: spoken = "Your Anthropic key isn't set up — check Info.plist."
1216
+ // case .keyRejected: spoken = "Anthropic rejected your key — it may be invalid or expired."
1201
1217
  // case .connectivity: spoken = "I can't reach the network. Check your connection."
1202
1218
  // case .transient: spoken = "The AI is slow right now — try again in a moment."
1203
1219
  // case .clientBug: spoken = "Something's off with the request — check OSLog AnthropicClient for the response body."
@@ -1218,9 +1234,9 @@ actor AnthropicClient {
1218
1234
  // mediaType: "image/jpeg",
1219
1235
  // prompt: "What's the next blackjack move?"
1220
1236
  // )
1221
- // // switch answer { case .ok(let t): ...; case .authFailure: ...; ... }`,
1237
+ // // switch answer { case .ok(let t): ...; case .keyMissing: ...; case .keyRejected: ...; ... }`,
1222
1238
  },
1223
- explanation: "Minimal direct client supporting BOTH text Q&A (`ask`) and Claude Vision (`describe`). There's no first-party Anthropic Kotlin SDK; this is the wire-protocol wrapper voice_qa_assistant and photo_describe_voice patterns reference as `AnthropicClient`. Kotlin uses OkHttp + kotlinx-serialization with a `JsonClassDiscriminator(\"type\")` sealed ContentBlock that mirrors Anthropic's polymorphic content shape (text + image). Swift uses URLSession + Codable with manual encode/decode for the same polymorphism. The customer holds one instance at Application scope and passes it to handlers via DI. F-R3-10 split the failure mode out of one `NetworkError` into five distinct LlmResult variants (Connectivity / Transient / ClientBug / AuthFailure / Empty) so different remediations show up as different user-facing messages, and added a retry-with-backoff loop (200ms / 800ms / 3.2s, 3 attempts) for Transient + Connectivity cases. F-R3-11 added optional `observability: glasses.observability` wiring — pass it and every call surfaces under getEventLog's 'ai' filter chip with timing + success/error metadata.",
1239
+ explanation: "Minimal direct client supporting BOTH text Q&A (`ask`) and Claude Vision (`describe`). There's no first-party Anthropic Kotlin SDK; this is the wire-protocol wrapper voice_qa_assistant and photo_describe_voice patterns reference as `AnthropicClient`. Kotlin uses OkHttp + kotlinx-serialization with a `JsonClassDiscriminator(\"type\")` sealed ContentBlock that mirrors Anthropic's polymorphic content shape (text + image). Swift uses URLSession + Codable with manual encode/decode for the same polymorphism. The customer holds one instance at Application scope and passes it to handlers via DI. F-R3-10 split the failure mode out of one `NetworkError` into distinct LlmResult variants (Connectivity / Transient / ClientBug / KeyMissing / KeyRejected / Empty) so different remediations show up as different user-facing messages, and added a retry-with-backoff loop (200ms / 800ms / 3.2s, 3 attempts) for Transient + Connectivity cases. F-R3-11 added optional `observability: glasses.observability` wiring — pass it and every call surfaces under getEventLog's 'ai' filter chip with timing + success/error metadata.",
1224
1240
  gotchas: [
1225
1241
  "API key MUST come from a build-injected resource (resValue on Android, xcconfig on iOS). Don't paste literals — they leak into git. See getCredentialGuide for the storage pattern.",
1226
1242
  "Anthropic-version header is required and version-pinned — bump '2023-06-01' when Anthropic releases a new API version that adds features you need.",
@@ -1230,7 +1246,7 @@ actor AnthropicClient {
1230
1246
  "`system` vs `history` — both feed information into the prompt, but they serve different roles. `system` is Anthropic's system-prompt slot: stable grounding context that applies to EVERY turn (today's date, a flattened view of your app's data, role instructions like \"be brief, you're a fitness coach\"). `history` is a list of prior USER utterances concatenated into the messages array; useful for short multi-turn loops where what the user just said matters to the next answer. Rule of thumb: data → `system`; conversation continuity → `history`. The voice_qa_assistant pattern passes workout records via `system` so the coach grounds in real numbers across every turn, even when `history` is empty.",
1231
1247
  "OkHttp's .execute() blocks the calling thread — wrapping in withContext(Dispatchers.IO) keeps it off the main dispatcher. Don't call ask() / describe() from the UI thread directly.",
1232
1248
  "Vision LLM response p95 is 2-8 seconds. Play an earcon (`glasses.audio.earcon(EarconSound.START)`) BEFORE the call so the user knows the request fired. The retry-with-backoff loop adds up to ~4.2s in the worst-case Transient path, so plan UX timing accordingly (or lower maxAttempts).",
1233
- "LlmResult has 6 variants — Ok / AuthFailure / Connectivity / Transient / ClientBug / Empty. Each has a distinct user-facing message; don't collapse them. The compile-time exhaustive `when` (Kotlin) / `switch` (Swift) makes the requirement explicit — adding a new variant breaks every caller until they handle it. Don't try/catch around the call; the sealed type IS the error channel.",
1249
+ "LlmResult has 7 variants — Ok / KeyMissing / KeyRejected / Connectivity / Transient / ClientBug / Empty. Each has a distinct user-facing message; don't collapse them. The compile-time exhaustive `when` (Kotlin) / `switch` (Swift) makes the requirement explicit — adding a new variant breaks every caller until they handle it. Don't try/catch around the call; the sealed type IS the error channel.",
1234
1250
  "Pass `observability: glasses.observability` to surface each call in getEventLog under the 'ai' filter chip. Without it, BYOK calls are invisible to the simulator event log — debugging a silent failure requires `adb logcat AnthropicClient:V` (Android) or OSLog filtered by `AnthropicClient` (iOS). The wrapper is zero-overhead off-simulator transports (RealMeta / LocalSim).",
1235
1251
  ],
1236
1252
  relatedFeatures: ["capture_photo"],
@@ -1476,29 +1492,45 @@ CANONICAL DRIVER (run after \`./gradlew :app:installDebug && adb shell am start
1476
1492
  // Once loaded, the sim persists across app and MCP restarts — only
1477
1493
  // needed once per fresh sim (F-DF-05).
1478
1494
 
1479
- // 1. Drive the wake.
1495
+ // 1. Anchor a cursor at "now", THEN drive the wake. A no-cursor getEventLog
1496
+ // returns the tail of the log plus a cursor positioned after it — every
1497
+ // later watch resumes from this bookmark, so nothing that lands between
1498
+ // this inject and the next read slips past, and stale events from a
1499
+ // prior run on the same (resumed) sim never leak into the watch.
1500
+ let cur = (await getEventLog({ sessionId, filter: "voice" })).cursor;
1480
1501
  await injectTranscript({ sessionId, text: "ask my coach", isFinal: true });
1481
1502
 
1482
- // 2. Wait for the handler to enter recordDiscrete. Poll the event log
1483
- // until a record_audio request frame appears that's proof the
1484
- // handler's recordDiscrete is subscribed and ready for the question.
1485
- // Without this poll, a fast follow-up inject can race past the
1486
- // subscriber and only reach the wake matcher.
1487
- let log = await getEventLog({ sessionId, filter: "voice", limit: 50 });
1488
- while (!log.events.some(e => e.type === "record_audio")) {
1489
- await sleep(200);
1490
- log = await getEventLog({ sessionId, filter: "voice", limit: 50, since: log.lastTs });
1503
+ // 2. Watch until the handler enters recordDiscrete. \`follow: true\` blocks
1504
+ // server-side until new events land no manual sleep, no snapshot gaps.
1505
+ // Each call returns whatever happened since \`cur\`; loop, advancing the
1506
+ // cursor, until the record_audio request frame proves recordDiscrete is
1507
+ // subscribed and ready for the question. This replaces the old
1508
+ // sleep-and-refetch poll the agent never guesses a poll interval.
1509
+ let recording = false;
1510
+ while (!recording) {
1511
+ const log = await getEventLog({ sessionId, filter: "voice", cursor: cur, follow: true, timeoutMs: 15000 });
1512
+ cur = log.cursor;
1513
+ recording = log.events.some(e => e.type === "record_audio");
1514
+ // log.timedOut === true → 15s passed with no voice activity. The
1515
+ // handler is likely stuck; fetch filter:"errors" before looping again.
1491
1516
  }
1492
1517
 
1493
- // 3. Inject the question. The F-R5-03 race fix routes this directly
1494
- // into the pending recordDiscrete — no visible browser tab needed.
1518
+ // 3. Inject the question. The F-R5-03 race fix routes this straight into
1519
+ // the pending recordDiscrete — no visible browser tab needed.
1495
1520
  await injectTranscript({ sessionId, text: "what was my max bench press last week", isFinal: true });
1496
1521
 
1497
- // 4. Wait for the speak completion. Same polling shape.
1498
- log = await getEventLog({ sessionId, filter: "voice", limit: 100 });
1499
- while (!log.events.some(e => e.type === "speak_completed")) {
1500
- await sleep(500);
1501
- log = await getEventLog({ sessionId, filter: "voice", limit: 100, since: log.lastTs });
1522
+ // 4. Watch the turn unfold until speak_completed. filter:"all" here — a
1523
+ // turn spans voice AND ai events (ai_call_* live in the 'ai' chip, which
1524
+ // a voice filter would hide), and the follow call delivers events in
1525
+ // batches, so accumulate every event into \`turn\` rather than trusting
1526
+ // one final snapshot.
1527
+ const turn = [];
1528
+ let spoke = false;
1529
+ while (!spoke) {
1530
+ const log = await getEventLog({ sessionId, cursor: cur, follow: true, timeoutMs: 20000 });
1531
+ cur = log.cursor;
1532
+ turn.push(...log.events);
1533
+ spoke = log.events.some(e => e.type === "speak_completed");
1502
1534
  }
1503
1535
 
1504
1536
  // 5. THREE-SURFACE ASSERTION ─────────────────────────────────────────────
@@ -1506,8 +1538,8 @@ CANONICAL DRIVER (run after \`./gradlew :app:installDebug && adb shell am start
1506
1538
  // Surface A: protocol log.
1507
1539
  // Assert record_audio_returned arrived with via="transcript_injection"
1508
1540
  // (proves the agent's inject won the race) and success=true.
1509
- const aiCall = log.events.find(e => e.type === "ai_call_end");
1510
- const recDone = log.events.find(e => e.type === "record_audio_returned");
1541
+ const aiCall = turn.find(e => e.type === "ai_call_end");
1542
+ const recDone = turn.find(e => e.type === "record_audio_returned");
1511
1543
  assert(recDone?.details?.via === "transcript_injection");
1512
1544
  assert(recDone?.details?.success === true);
1513
1545
  assert(aiCall?.details?.success === true);
@@ -1536,10 +1568,31 @@ When all three agree, the flow really happened end-to-end. When they diverge:
1536
1568
  - Surface B has the row, Surface A missing speak_completed → output regression. Persisted but never spoken.
1537
1569
  - Surface A + B agree, Surface C unchanged → UI binding bug. State updated but the screen didn't recompose.
1538
1570
 
1539
- Each disagreement points to a specific layer of the handler to fix. With only Surface A, half these failures look identical.`,
1571
+ Each disagreement points to a specific layer of the handler to fix. With only Surface A, half these failures look identical.
1572
+
1573
+ WATCHING A MULTI-TURN AI CONVERSATION
1574
+
1575
+ The same follow loop tests a conversation with an AI the developer built into the app — the agent plays the user. There is no separate tool and no separate mode: inject an utterance, watch the turn unfold, read what the app said, inject the next.
1576
+
1577
+ let cur = (await getEventLog({ sessionId })).cursor;
1578
+ for (const utterance of ["what's the weather", "and tomorrow?"]) {
1579
+ await injectTranscript({ sessionId, text: utterance, isFinal: true });
1580
+ let done = false;
1581
+ while (!done) {
1582
+ const log = await getEventLog({ sessionId, cursor: cur, follow: true, timeoutMs: 30000 });
1583
+ cur = log.cursor;
1584
+ for (const e of log.events) {
1585
+ if (e.type === "speak") console.log("app said:", e.details?.text);
1586
+ }
1587
+ done = log.events.some(e => e.type === "speak_completed");
1588
+ }
1589
+ }
1590
+
1591
+ The agent reads each \`speak\` event's \`details.text\` — that is what the app's AI actually said — so its next utterance can be contextual rather than pre-scripted. \`follow: true\` returns whatever happened next (speak, a photo capture, an ai_call, several at once), so the agent never has to predict the turn's shape. inject ↔ watch is the irreducible shape of a conversation; \`follow\` just makes the watch half a live tail instead of guess-and-poll. Give a real LLM turn room — timeoutMs: 30000 — so a slow model reply does not register as a false timeout.`,
1540
1592
  gotchas: [
1541
1593
  "**WAL caveat (Android Room).** Room writes in WAL mode by default. Pulling only the .db file gives a stale snapshot — recent writes live in .db-wal. Always pull .db + .db-wal + .db-shm together; the agent's first DB-read returning zero rows almost always means missing .db-wal.",
1542
- "**Poll-before-inject for multi-turn.** Between the wake inject and the question inject, poll getEventLog until a `record_audio` request frame appears. Otherwise the second inject can land before the handler subscribes and only the wake matcher sees it.",
1594
+ "**Anchor a cursor before injecting, then watch with `follow: true`.** Capture a cursor from a no-cursor getEventLog *before* the wake inject that no-cursor call returns the tail of the log, so the cursor means \"now\" and a resumed sim's stale events never leak in. Between the wake and the question, watch with `follow: true` until a `record_audio` frame appears: the cursor guarantees no event is missed in the gap, and the `record_audio` gate guarantees the handler's recordDiscrete is subscribed before the question lands — otherwise the second inject races past the subscriber and only the wake matcher sees it.",
1595
+ "**A `timedOut: true` follow result is not an error.** It means `timeoutMs` elapsed with no new events — the handler may still be working. Re-call getEventLog with the SAME cursor to keep watching. Treat it as a signal only after two or three consecutive timeouts, and cross-check filter:\"errors\" when you do.",
1543
1596
  "**hardwareReady requires the browser tab to load once.** Even with autoOpenBrowser: false, the simulator browser must be reached at least once for hardwareReady to flip to true. After that the sim persists. A future headless-surrogate mode would close this; not built yet.",
1544
1597
  "**adb on the same machine as the emulator.** This recipe needs adb where the agent runs. Cloud-hosted / headless agents can do Surface A but not B or C. A future `getAppState(sessionId, probe)` MCP tool routed through the local MCP bridge would lift this restriction.",
1545
1598
  "**Read record_audio_returned's `via` field.** Three values: \"transcript_injection\" (your inject won), \"browser_surrogate\" (the browser tab responded — unexpected in a headless agent loop), \"timeout\" (neither path resolved). Anything other than \"transcript_injection\" in an agent test is a signal to investigate.",
@@ -1 +1 @@
1
- {"version":3,"file":"codeExamples.js","sourceRoot":"","sources":["../../../src/tools/data/codeExamples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeExamples.js","sourceRoot":"","sources":["../../../src/tools/data/codeExamples.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAMpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;CACH;AAMD,eAAO,MAAM,eAAe,EAAE,OAAO,EA6ZpC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAyB,CAAC;AAShD,wBAAgB,iCAAiC,CAC/C,IAAI,GAAE,SAAS,OAAO,EAAoB,GACzC,IAAI,CAiBN"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAMpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;CACH;AAMD,eAAO,MAAM,eAAe,EAAE,OAAO,EA6apC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAyB,CAAC;AAShD,wBAAgB,iCAAiC,CAC/C,IAAI,GAAE,SAAS,OAAO,EAAoB,GACzC,IAAI,CAiBN"}
@@ -232,7 +232,7 @@ export const toolDefinitions = [
232
232
  },
233
233
  {
234
234
  name: "getEventLog",
235
- description: "Fetch structured event trace inside a simulator session. Primary debugging tool for *why is my handler not seeing what I expect* — transcripts not arriving, photo capture failing, toggle changes not propagating, speak getting cut off, connection dropping. Events are grouped into six chips (errors / voice / camera / ai / lifecycle / custom) — one chip per event, with `errors` absorbing every severity≥warn row regardless of modality. To see e.g. voice activity plus voice errors, fetch the chips separately and union them. USE to diagnose which capability primitive is misbehaving. DON'T USE for static configuration checking (use validateIntegration) or for live session phase (use getSimulatorStatus). **Scope:** captures the simulator's WebSocket relay — transport + SDK primitives (audio, camera, speak, toggles, voice triggers, runtime events). Customer-side direct-HTTP calls (BYOK Anthropic / OpenAI / Gemini / etc.) traverse api.<provider>.com from the customer's app, NOT the simulator relay — invisible by default. **Surface BYOK calls in the event log by wrapping them in `glasses.observability.aiCall(label) { ... }` (F-R3-11)** — the wrapper emits `ai_call_start` and `ai_call_end` frames that land under the 'ai' filter chip with timing + success/error metadata. Without the wrapper, BYOK failures show as silent gaps (e.g. capture_photo + photo_result + speak with 3 unexplained seconds between) — those failures still need logcat / OSLog. Use the wrapper for any AI call that's part of your debug story; leave it off for true fire-and-forget background calls.",
235
+ description: "Fetch structured event trace inside a simulator session. Primary debugging tool for *why is my handler not seeing what I expect* — transcripts not arriving, photo capture failing, toggle changes not propagating, speak getting cut off, connection dropping. Events are grouped into six chips (errors / voice / camera / ai / lifecycle / custom) — one chip per event, with `errors` absorbing every severity≥warn row regardless of modality. To see e.g. voice activity plus voice errors, fetch the chips separately and union them. USE to diagnose which capability primitive is misbehaving. DON'T USE for static configuration checking (use validateIntegration) or for live session phase (use getSimulatorStatus). **Scope:** captures the simulator's WebSocket relay — transport + SDK primitives (audio, camera, speak, toggles, voice triggers, runtime events). Customer-side direct-HTTP calls (BYOK Anthropic / OpenAI / Gemini / etc.) traverse api.<provider>.com from the customer's app, NOT the simulator relay — invisible by default. **Surface BYOK calls in the event log by wrapping them in `glasses.observability.aiCall(label) { ... }` (F-R3-11)** — the wrapper emits `ai_call_start` and `ai_call_end` frames that land under the 'ai' filter chip with timing + success/error metadata. Without the wrapper, BYOK failures show as silent gaps (e.g. capture_photo + photo_result + speak with 3 unexplained seconds between) — those failures still need logcat / OSLog. Use the wrapper for any AI call that's part of your debug story; leave it off for true fire-and-forget background calls. **Live watch:** pass `follow: true` to block until new events land instead of returning an empty snapshot, and carry the returned `cursor` between calls — loop the pair to tail the log in real time (e.g. to follow a multi-turn AI conversation the developer built into the app, reacting to each `speak` as it happens). See getCodeExample('agent_test_loop').",
236
236
  inputSchema: {
237
237
  type: "object",
238
238
  properties: {
@@ -251,7 +251,20 @@ export const toolDefinitions = [
251
251
  description: "Chip to filter the event stream by. 'all' (default) returns every event. 'errors' returns severity≥warn events across all modalities. 'voice' / 'camera' / 'ai' cover hardware/integration capabilities (severity=info only — failures land under 'errors'). 'ai' fires for events whose `type` starts with `ai_` — today that's customer-side BYOK calls wrapped via `glasses.observability.aiCall(label) { ... }`. Wrap BYOK calls to see start/end + duration in the timeline; without the wrapper the 'ai' chip stays empty even though Anthropic / OpenAI / Gemini calls are running. 'lifecycle' covers connection / session / pairing / hardware / runtime state. 'custom' is the open-world catch-all for app-emitted event types the platform did not anticipate.",
252
252
  },
253
253
  limit: { type: "integer", minimum: 1 },
254
- since: { type: "string" },
254
+ cursor: {
255
+ type: "string",
256
+ description: "Opaque keyset cursor from a prior getEventLog response. Pass it back to fetch ONLY events newer than the last batch — no duplicates, no gaps, even for events that share a millisecond timestamp. Omit it to read from the start of the log. The cursor is the agent's bookmark: capture one BEFORE injectTranscript, then watch forward from it so nothing that lands between inject and read is missed.",
257
+ },
258
+ follow: {
259
+ type: "boolean",
260
+ description: "When true, turns this call into a live watch: if no events are newer than `cursor`, the call BLOCKS until something happens (or `timeoutMs` elapses) instead of returning an empty snapshot. Returns the moment activity lands. Run it in a loop — capture the returned `cursor`, react to `events`, call again — to tail the log in real time. This is the optimal way to follow an unfolding flow (e.g. a multi-turn AI conversation in the app): the agent sees whatever happened next without having to guess the event type in advance. The response adds `followed: true`, `timedOut`, and `waitedMs`. A `timedOut: true` result is normal (no activity yet) — not an error; re-call with the same cursor to keep watching.",
261
+ },
262
+ timeoutMs: {
263
+ type: "integer",
264
+ minimum: 1000,
265
+ maximum: 60000,
266
+ description: "Max time (ms) a `follow` call blocks waiting for new events. Clamped to [1000, 60000]; default 15000. Ignored unless `follow` is true.",
267
+ },
255
268
  responseFormat: responseFormatEnum,
256
269
  redactBinary: { type: "boolean" },
257
270
  },
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AA2LD,eAAO,MAAM,SAAS,EAAE,QAAQ,EAw7B/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuB/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAU,EACvB,eAAe,GAAE,MAAY,GAC5B,MAAM,EAAE,CAmBV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AA2LD,eAAO,MAAM,SAAS,EAAE,QAAQ,EAw7B/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuB/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAU,EACvB,eAAe,GAAE,MAAY,GAC5B,MAAM,EAAE,CAmBV"}
@@ -11,6 +11,7 @@ import { VERSION_INFO } from "../data/version.js";
11
11
  // pasting the doc got metadata-version warnings on every kotlinc run.
12
12
  const KOTLIN_VERSION = VERSION_INFO.android.kotlinVersion;
13
13
  const GRADLE_FLOOR = VERSION_INFO.android.minimumGradleVersion;
14
+ const AGP_FLOOR = VERSION_INFO.android.minimumAgpVersion;
14
15
  // Per-placement code snippets surfaced by topic 'connection_ui_placement'.
15
16
  // Mirrored in docs/mcp/LIBRARY_API.md § Connection UI § Placement.
16
17
  // Five Android (Compose) + five iOS (SwiftUI) options.
@@ -774,7 +775,7 @@ export const DOC_INDEX = [
774
775
  "- **Gradle wrapper bootstrap** (Android) — see § Gradle Wrapper section below.\n" +
775
776
  "- **GitHub PAT with read:packages scope** — Meta DAT artifacts live on GitHub Packages. Set `GITHUB_TOKEN` env var; `GITHUB_USERNAME` defaults to literal \"token\" (works for PATs).\n\n" +
776
777
  "── ANDROID — minimum-viable Compose project ──\n" +
777
- "Tested against `com.android.application:8.7.2`, Gradle " + GRADLE_FLOOR + "+, Kotlin " + KOTLIN_VERSION + ", Compose BOM 2024.10.00. Kotlin version matches the library's compilation toolchain (getPlatformInfo.version.android.kotlinVersion) — older Kotlin versions trigger `Class file was compiled with version X.X` warnings on every consumer compile. Replace `com.example.myapp` with your appPackage and `MyApp` with your app name. **9 files** plus the gradle wrapper.\n\n" +
778
+ "Tested against `com.android.application:" + AGP_FLOOR + "`, Gradle " + GRADLE_FLOOR + "+, Kotlin " + KOTLIN_VERSION + ", Compose BOM 2024.10.00. Kotlin version matches the library's compilation toolchain (getPlatformInfo.version.android.kotlinVersion) — older Kotlin versions trigger `Class file was compiled with version X.X` warnings on every consumer compile. Replace `com.example.myapp` with your appPackage and `MyApp` with your app name. **9 files** plus the gradle wrapper.\n\n" +
778
779
  "**1. settings.gradle.kts** (root):\n" +
779
780
  " pluginManagement {\n" +
780
781
  " repositories { google(); mavenCentral(); gradlePluginPortal() }\n" +
@@ -800,7 +801,7 @@ export const DOC_INDEX = [
800
801
  " include(\":app\")\n\n" +
801
802
  "**2. build.gradle.kts** (root):\n" +
802
803
  " plugins {\n" +
803
- " id(\"com.android.application\") version \"8.7.2\" apply false\n" +
804
+ " id(\"com.android.application\") version \"" + AGP_FLOOR + "\" apply false\n" +
804
805
  " id(\"org.jetbrains.kotlin.android\") version \"" + KOTLIN_VERSION + "\" apply false\n" +
805
806
  " id(\"org.jetbrains.kotlin.plugin.compose\") version \"" + KOTLIN_VERSION + "\" apply false\n" +
806
807
  " }\n\n" +
@@ -905,9 +906,9 @@ export const DOC_INDEX = [
905
906
  " <style name=\"Theme.MyApp\" parent=\"android:Theme.Material.Light.NoActionBar\" />\n" +
906
907
  " </resources>\n\n" +
907
908
  "── Gradle Wrapper bootstrap (Android) ──\n" +
908
- "The wrapper jar (~46KB binary) can't be hand-typed. Three ways to obtain it. AGP 8.7.2 requires Gradle >= " + GRADLE_FLOOR + ", so whichever path you pick, **gradle-wrapper.properties must point at `gradle-" + GRADLE_FLOOR + "-bin.zip` or newer** — first build fails fast with `Minimum supported Gradle version is " + GRADLE_FLOOR + "` otherwise.\n" +
909
+ "The wrapper jar (~46KB binary) can't be hand-typed. Three ways to obtain it. AGP " + AGP_FLOOR + " requires Gradle >= " + GRADLE_FLOOR + ", so whichever path you pick, **gradle-wrapper.properties must point at `gradle-" + GRADLE_FLOOR + "-bin.zip` or newer** — first build fails fast with `Minimum supported Gradle version is " + GRADLE_FLOOR + "` otherwise.\n" +
909
910
  "1. **`gradle wrapper`** if you have system gradle: install via `brew install gradle` (mac), `choco install gradle` (Windows), or the package manager of your distro. Then `cd <project>; gradle wrapper --gradle-version " + GRADLE_FLOOR + "` writes `gradle/wrapper/{gradle-wrapper.jar,gradle-wrapper.properties}` + `gradlew` + `gradlew.bat`.\n" +
910
- "2. **Copy from any existing Gradle project on the machine**: `gradle/wrapper/gradle-wrapper.jar` + `gradle/wrapper/gradle-wrapper.properties` + `gradlew` + `gradlew.bat` — these files are version-portable. **Mandatory follow-up**: edit `gradle/wrapper/gradle-wrapper.properties` and set `distributionUrl=https\\://services.gradle.org/distributions/gradle-" + GRADLE_FLOOR + "-bin.zip` (the copied wrapper almost certainly points at an older Gradle that AGP " + (VERSION_INFO.android.minimumAgpVersion) + "+ rejects). Not optional — the R2 dogfood F-R2-3 finding was an agent reading 'if needed' as optional and hitting `Minimum supported Gradle version is " + GRADLE_FLOOR + "` on the very first build.\n" +
911
+ "2. **Copy from any existing Gradle project on the machine**: `gradle/wrapper/gradle-wrapper.jar` + `gradle/wrapper/gradle-wrapper.properties` + `gradlew` + `gradlew.bat` — these files are version-portable. **Mandatory follow-up**: edit `gradle/wrapper/gradle-wrapper.properties` and set `distributionUrl=https\\://services.gradle.org/distributions/gradle-" + GRADLE_FLOOR + "-bin.zip` (the copied wrapper almost certainly points at an older Gradle that AGP " + AGP_FLOOR + "+ rejects). Not optional — the R2 dogfood F-R2-3 finding was an agent reading 'if needed' as optional and hitting `Minimum supported Gradle version is " + GRADLE_FLOOR + "` on the very first build.\n" +
911
912
  "3. **curl from gradle.org**: download `gradle-" + GRADLE_FLOOR + "-bin.zip` from `https://services.gradle.org/distributions/gradle-" + GRADLE_FLOOR + "-bin.zip`, extract, and run `<extracted>/bin/gradle wrapper` from your project root. Then delete the extracted dir.\n\n" +
912
913
  "── First-build verification (Android) ──\n" +
913
914
  "After steps 1–9 + wrapper bootstrap, run `./gradlew :app:assembleDebug` from project root. Expected: ~1–3 min for first build (downloads Gradle distribution + dependencies). On success, APK lands at `app/build/outputs/apk/debug/app-debug.apk`. On failure, `JAVA_HOME` or `sdk.dir` is the most common culprit (see prerequisites).\n\n" +
@@ -1060,9 +1061,9 @@ export const DOC_INDEX = [
1060
1061
  "If the first pull shows zero rows when you know the app wrote data, you forgot `.db-wal`. This is the single biggest pitfall.\n\n" +
1061
1062
  "── Listening-side race (multi-turn) ──\n\n" +
1062
1063
  "When the wake handler then calls `recordDiscrete` for the inner turn, there's still a small window between the wake firing and `recordDiscrete` registering its transcription subscriber. If the agent injects the second transcript too fast, it can land while the handler hasn't subscribed yet — in which case the library-wide wake matcher receives it (possibly re-firing the wake) and the recordDiscrete sees nothing. Two ways around this:\n\n" +
1063
- " - **Poll-before-inject.** Between injects, poll `getEventLog({ sessionId, filter: \"voice\", since: lastTs })` until you see a `record_audio` (request) frame. That's proof the handler entered `recordDiscrete` and the subscriber is live. Then inject the follow-up.\n" +
1064
+ " - **Watch-before-inject.** Capture a cursor from a no-cursor `getEventLog({ sessionId, filter: \"voice\" })` *before* the wake inject. Between injects, call `getEventLog({ sessionId, filter: \"voice\", cursor, follow: true })` in a loop — `follow: true` blocks until events land, so there's no poll interval to tune — advancing the cursor until you see a `record_audio` (request) frame. That's proof the handler entered `recordDiscrete` and the subscriber is live. Then inject the follow-up. The cursor guarantees nothing in the gap is missed; a `timedOut: true` result just means keep watching.\n" +
1064
1065
  " - **Customer-side guard.** If the handler must tolerate fast back-to-back injects (or real users speaking quickly), buffer transcripts in handler state instead of relying on subscriber timing.\n\n" +
1065
- "The poll-before-inject pattern is the simpler default for agent test loops.\n\n" +
1066
+ "The watch-before-inject pattern is the simpler default for agent test loops. See `getCodeExample('agent_test_loop')` for the full driver.\n\n" +
1066
1067
  "── When the app doesn't attach to the sim (F-DF-04) ──\n\n" +
1067
1068
  "After `./gradlew :app:installDebug && adb shell am start ...`, the library tries to attach itself to whatever sim `createSimulatorSession` provisioned via two mechanisms in priority order: (1) **auto-bind via local MCP probe** — the library probes `http://10.0.2.2:31337/whoami` (emulator) or `http://localhost:31337/whoami` (USB after `adb reverse`) to learn the MCP install ID, then opens `/ws/pending` with that ID + the device's stable install ID, and the backend matches the running app against the sim minted from the same MCP. (2) **URL-bake fallback** — if a `BuildConfig.EXTENTOS_SESSION_URL` constant is non-null, the library connects directly to that WebSocket URL by sessionId.\n\n" +
1068
1069
  "**The auto-bind path silently fails when the MCP local bridge isn't reachable from the device.** Common failure modes: the dev opened Claude Code without the extentos MCP server, the MCP server crashed, the emulator network doesn't route `10.0.2.2` to host loopback, or a USB-only phone hasn't had `adb reverse tcp:31337 tcp:31337` run yet. In all these cases the library logs `ExtentosTransport: mcp probe failed: InterruptedIOException timeout` (logcat tag `ExtentosTransport`) and `session_init: pending=false device=null mcp=null` — the app stays disconnected and `getSimulatorStatus` shows `connectedRoles.app: null`.\n\n" +
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getEventLog.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/getEventLog.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA4E5E,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAuFzE"}
1
+ {"version":3,"file":"getEventLog.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/getEventLog.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgG5E,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAuIzE"}
@@ -55,6 +55,20 @@ function redactValue(value) {
55
55
  }
56
56
  return value;
57
57
  }
58
+ // ── follow mode ───────────────────────────────────────────────────────────
59
+ //
60
+ // `follow: true` turns getEventLog into a long-poll: if a cursor-anchored
61
+ // fetch finds no new events, the handler re-fetches every FOLLOW_POLL_MS until
62
+ // something lands or timeoutMs elapses. There is no backend→mcp-server event
63
+ // push (the WebSocket hub carries the browser relay, not log reads), so this
64
+ // is the closest achievable thing to a live "tail -f" of the event log — the
65
+ // agent runs it in a loop and experiences sub-second latency without ever
66
+ // guessing which event type comes next.
67
+ const FOLLOW_POLL_MS = 400;
68
+ const DEFAULT_TIMEOUT_MS = 15_000;
69
+ const MIN_TIMEOUT_MS = 1_000;
70
+ const MAX_TIMEOUT_MS = 60_000;
71
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
58
72
  export async function handleGetEventLog(raw) {
59
73
  if (!raw || typeof raw !== "object") {
60
74
  return errorResponse({
@@ -83,19 +97,43 @@ export async function handleGetEventLog(raw) {
83
97
  });
84
98
  }
85
99
  const limit = typeof o.limit === "number" && o.limit > 0 ? o.limit : 50;
86
- const since = typeof o.since === "string" ? o.since : undefined;
100
+ const cursor = typeof o.cursor === "string" && o.cursor.trim() ? o.cursor : undefined;
101
+ const follow = o.follow === true;
102
+ let timeoutMs = typeof o.timeoutMs === "number" ? Math.round(o.timeoutMs) : DEFAULT_TIMEOUT_MS;
103
+ timeoutMs = Math.max(MIN_TIMEOUT_MS, Math.min(MAX_TIMEOUT_MS, timeoutMs));
87
104
  const responseFormat = o.responseFormat === "concise" ? "concise" : "detailed";
88
105
  const redactBinary = o.redactBinary === false ? false : true;
89
- const params = new URLSearchParams();
90
- params.set("filter", filter);
91
- params.set("limit", String(limit));
92
- if (since)
93
- params.set("since", since);
94
- const res = await backendFetch(`/api/sessions/${encodeURIComponent(o.sessionId)}/events?${params.toString()}`);
106
+ const sessionId = o.sessionId;
107
+ const fetchEvents = () => {
108
+ const params = new URLSearchParams();
109
+ params.set("filter", filter);
110
+ params.set("limit", String(limit));
111
+ if (cursor)
112
+ params.set("cursor", cursor);
113
+ return backendFetch(`/api/sessions/${encodeURIComponent(sessionId)}/events?${params.toString()}`);
114
+ };
115
+ const startedAt = Date.now();
116
+ let res = await fetchEvents();
117
+ // follow: long-poll until events land or timeoutMs elapses. The loop never
118
+ // runs when the first fetch already returned events — anything that landed
119
+ // between the agent's inject and this call is anchored by `cursor`, so it is
120
+ // returned immediately rather than waited past. While fetches come back
121
+ // empty the cursor does not advance, so the next re-fetch resumes from the
122
+ // same place.
123
+ if (follow) {
124
+ const deadline = startedAt + timeoutMs;
125
+ while (res.ok &&
126
+ res.data &&
127
+ (res.data.events ?? []).length === 0 &&
128
+ Date.now() < deadline) {
129
+ await sleep(Math.min(FOLLOW_POLL_MS, Math.max(0, deadline - Date.now())));
130
+ res = await fetchEvents();
131
+ }
132
+ }
95
133
  if (res.status === 404) {
96
134
  return errorResponse({
97
135
  code: "session_not_found",
98
- message: `No session found with id ${JSON.stringify(o.sessionId)}.`,
136
+ message: `No session found with id ${JSON.stringify(sessionId)}.`,
99
137
  fixHint: "Call createSimulatorSession to start a new session.",
100
138
  retryable: false,
101
139
  });
@@ -124,14 +162,34 @@ export async function handleGetEventLog(raw) {
124
162
  return { ...e, details: redactValue(e.details) };
125
163
  });
126
164
  const errorCount = events.filter((e) => e.severity === "error").length;
127
- const summary = events.length === 0
128
- ? `No events in session ${res.data.sessionStatus ?? ""}.`
129
- : `${events.length} event${events.length === 1 ? "" : "s"} returned${errorCount ? ` (${errorCount} error${errorCount === 1 ? "" : "s"})` : ""}${res.data.hasMore ? ", more available" : ""}.`;
165
+ const waitedMs = Date.now() - startedAt;
166
+ const timedOut = follow && events.length === 0;
167
+ let summary;
168
+ if (timedOut) {
169
+ summary =
170
+ `No new events after watching ${(waitedMs / 1000).toFixed(1)}s. The handler may still be working — ` +
171
+ `call getEventLog again with the same cursor to keep watching, or fetch filter:'errors' if you expected activity by now.`;
172
+ }
173
+ else if (events.length === 0) {
174
+ summary = `No events in session ${res.data.sessionStatus ?? ""}.`;
175
+ }
176
+ else {
177
+ const newWord = follow ? "new event" : "event";
178
+ summary =
179
+ `${events.length} ${newWord}${events.length === 1 ? "" : "s"} returned` +
180
+ `${errorCount ? ` (${errorCount} error${errorCount === 1 ? "" : "s"})` : ""}` +
181
+ `${res.data.hasMore ? ", more available — fetch again with the returned cursor" : ""}.`;
182
+ }
130
183
  return okResponse({
131
184
  events,
185
+ // Opaque cursor positioned after the last event. Pass it back as `cursor`
186
+ // to fetch only newer events. Unchanged from the input when nothing new
187
+ // arrived, so a follow loop can re-poll from the same place.
188
+ cursor: res.data.cursor ?? cursor ?? null,
132
189
  sessionStatus: res.data.sessionStatus,
133
190
  totalEvents: res.data.totalEvents ?? events.length,
134
191
  hasMore: res.data.hasMore ?? false,
192
+ ...(follow ? { followed: true, timedOut, waitedMs } : {}),
135
193
  summary,
136
194
  });
137
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getEventLog.js","sourceRoot":"","sources":["../../../src/tools/handlers/getEventLog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getEventLog.js","sourceRoot":"","sources":["../../../src/tools/handlers/getEventLog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extentos/mcp-server",
3
- "version": "0.0.86",
3
+ "version": "0.0.88",
4
4
  "description": "Extentos MCP server — deterministic tools for building Meta-glasses apps.",
5
5
  "type": "module",
6
6
  "bin": {