@extentos/mcp-server 0.0.93 → 0.1.0

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 (37) hide show
  1. package/dist/tools/data/capabilityPatterns.d.ts.map +1 -1
  2. package/dist/tools/data/capabilityPatterns.js +250 -3
  3. package/dist/tools/data/capabilityPatterns.js.map +1 -1
  4. package/dist/tools/data/codeExamples.d.ts.map +1 -1
  5. package/dist/tools/data/codeExamples.js +421 -10
  6. package/dist/tools/data/codeExamples.js.map +1 -1
  7. package/dist/tools/data/version.d.ts +0 -1
  8. package/dist/tools/data/version.d.ts.map +1 -1
  9. package/dist/tools/data/version.js +9 -1
  10. package/dist/tools/data/version.js.map +1 -1
  11. package/dist/tools/definitions.d.ts.map +1 -1
  12. package/dist/tools/definitions.js +54 -3
  13. package/dist/tools/definitions.js.map +1 -1
  14. package/dist/tools/docs/index.d.ts.map +1 -1
  15. package/dist/tools/docs/index.js +115 -2
  16. package/dist/tools/docs/index.js.map +1 -1
  17. package/dist/tools/handlers/assertToolCalled.d.ts +3 -0
  18. package/dist/tools/handlers/assertToolCalled.d.ts.map +1 -0
  19. package/dist/tools/handlers/assertToolCalled.js +171 -0
  20. package/dist/tools/handlers/assertToolCalled.js.map +1 -0
  21. package/dist/tools/handlers/getProductionChecklist.d.ts.map +1 -1
  22. package/dist/tools/handlers/getProductionChecklist.js +60 -9
  23. package/dist/tools/handlers/getProductionChecklist.js.map +1 -1
  24. package/dist/tools/handlers/injectAssistantUtterance.d.ts +3 -0
  25. package/dist/tools/handlers/injectAssistantUtterance.d.ts.map +1 -0
  26. package/dist/tools/handlers/injectAssistantUtterance.js +139 -0
  27. package/dist/tools/handlers/injectAssistantUtterance.js.map +1 -0
  28. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  29. package/dist/tools/handlers/validateIntegration.js +168 -0
  30. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  31. package/dist/tools/registry.d.ts.map +1 -1
  32. package/dist/tools/registry.js +4 -0
  33. package/dist/tools/registry.js.map +1 -1
  34. package/dist/tools/templates/androidBootstrap.d.ts.map +1 -1
  35. package/dist/tools/templates/androidBootstrap.js +35 -0
  36. package/dist/tools/templates/androidBootstrap.js.map +1 -1
  37. package/package.json +1 -1
@@ -19,7 +19,7 @@ export const toolDefinitions = [
19
19
  // --- 1. Discovery and Planning ---
20
20
  {
21
21
  name: "getPlatformInfo",
22
- description: "Return static platform metadata: library version + the list of SDK capabilities the glasses expose. **Phase 3 conversation runtime** (`glasses.conversation.onWake { listen() / speak() / cancelSpeak() }` + `glasses.ai.complete(prompt)`) is the canonical voice-assistant API and composes the lower-level primitives under the hood; the legacy primitives are still surfaced for fine-grained control (audio.transcriptions, audio.recordDiscrete, audio.speak, audio.audioChunks, camera.capturePhoto, camera.videoFrames, toggles, connection.state, …). The right first call for any new task — primes the agent on what primitives are available before writing handler code. **Default response is COMPACT** — capability names and categories only — keeping the typical first-call cost ~2KB. Per-feature call shape + idiom + gotchas comes from `getCapabilityGuide(feature)`; full compositional patterns (Phase 3 `conversation_agent_loop` for the canonical wake listen ai.complete speak loop; legacy `voice_qa_assistant` for the pre-Phase-3 manual composition) from `getCodeExample(pattern)`; conceptual docs from `searchDocs(topic: 'conversation_runtime')` for the Phase 3 surface, or `searchDocs(topic: 'voice_integration')` for the legacy primitives. Pass `expand: ['capabilities.full']` for the machine-readable catalog with params/payload/requires/constraints. **glasses is optional (F-R4-01)** — defaults to `meta_rayban` (the only currently supported vendor); pass it explicitly for forward compatibility once additional vendors land. USE at session start before scaffolding or writing handler code. DON'T USE for what's installed in the project (use inspectIntegration).",
22
+ description: "Return static platform metadata: library version + the list of SDK capabilities the glasses expose. **Phase 4 assistant runtime** (`glasses.assistant.start(provider) { tool(name, description) { body -> ToolResult } }`) is the canonical voice-assistant API the model owns wake/turn-taking/intent/confirmation, the customer writes tool bodies that act on app state. The legacy Phase 3 conversation runtime (`glasses.conversation.onWake { listen() / speak() / ai.complete() }`) is DEPRECATED in v1.4.0; removed in v2.0.0. Lower-level primitives are still surfaced for fine-grained control (audio.transcriptions, audio.recordDiscrete, audio.speak, audio.audioChunks, camera.capturePhoto, camera.videoFrames, toggles, connection.state, …). The right first call for any new task — primes the agent on what primitives are available before writing handler code. **Default response is COMPACT** — capability names and categories only — keeping the typical first-call cost ~2KB. Per-feature call shape + idiom + gotchas comes from `getCapabilityGuide(feature)`; full compositional patterns (Phase 4 `assistant_agent_loop` for the canonical glasses.assistant.start loop; legacy `conversation_agent_loop` for Phase 3; `voice_qa_assistant` for the pre-Phase-3 manual composition) from `getCodeExample(pattern)`; conceptual docs from `searchDocs(topic: 'assistant_runtime')` for the Phase 4 surface, `searchDocs(topic: 'conversation_runtime')` for Phase 3, or `searchDocs(topic: 'voice_integration')` for the legacy primitives. Pass `expand: ['capabilities.full']` for the machine-readable catalog with params/payload/requires/constraints. **glasses is optional (F-R4-01)** — defaults to `meta_rayban` (the only currently supported vendor); pass it explicitly for forward compatibility once additional vendors land. USE at session start before scaffolding or writing handler code. DON'T USE for what's installed in the project (use inspectIntegration).",
23
23
  inputSchema: {
24
24
  type: "object",
25
25
  properties: {
@@ -47,7 +47,7 @@ export const toolDefinitions = [
47
47
  // getPlatformInfo these are how a fresh agent learns to compose the SDK.
48
48
  {
49
49
  name: "getCodeExample",
50
- description: "Reference library — retrieve a complete SDK code example (Kotlin + Swift) for a use case. **For voice-assistant work, start with `conversation_agent_loop`** — the Phase 3 `glasses.conversation.onWake { listen() / speak() / ai.complete() }` API composes VAD + STT + Smart Turn EOU + TTS + BYOK OpenAI in one block; it's the canonical path for new apps and the example pairs the customer code with the agent-driven E2E loop that verifies it. The legacy patterns still ship for apps that need fine-grained control: voice_qa_assistant (manual `glasses.voice.onPhrase` wake + `glasses.audio.recordDiscrete` + customer-side AnthropicClient — the pre-Phase-3 composition), barge_in_speak (manual TTS cancel on user interrupt), photo_describe_voice (wake → photo → vision LLM → speak), live_transcription_ui (transcripts into Compose/SwiftUI state), voice_notes (wake → record → persist), connection_page_setup (the minimum bootstrap wiring), byok_anthropic (Anthropic BYOK client — used by voice_qa_assistant / photo_describe_voice; for the conversation runtime's OpenAI BYOK key see `getCredentialGuide(service: 'openai')`), agent_test_loop (the legacy agent-driven verification recipe with three-surface assertion — for the Phase 3 path use conversation_agent_loop). USE when you're about to write handler code and want the canonical shape to peel from, OR when you want the agent test driver that asserts the handler works end-to-end. DON'T USE for capability discovery (use getPlatformInfo) or per-feature minimal usage (use getCapabilityGuide).",
50
+ description: "Reference library — retrieve a complete SDK code example (Kotlin + Swift) for a use case. **For voice-assistant work on any new app, start with `assistant_agent_loop`** — the Phase 4 `glasses.assistant.start { tool(name, description) { body -> ToolResult } }` API where the model owns wake detection + turn taking + intent parsing + confirmation speech and the customer only writes tool bodies that act on app state. Provider abstraction wraps OpenAI Realtime in v1; Gemini Live in v1.5+. The example pairs the customer code with the agent-driven E2E loop (`injectAssistantUtterance` → `assertToolCalled`) that verifies it without humans. Customer code typically drops ~60% LoC vs the legacy Phase 3 pattern. `conversation_agent_loop` is the LEGACY Phase 3 pattern (DEPRECATED in v1.4.0; removed in v2.0.0) — kept in the catalog during the migration window. Other patterns still ship for apps that need fine-grained control: voice_qa_assistant (manual `glasses.voice.onPhrase` wake + `glasses.audio.recordDiscrete` + customer-side AnthropicClient — the pre-Phase-3 composition), barge_in_speak (manual TTS cancel on user interrupt), photo_describe_voice (wake → photo → vision LLM → speak), live_transcription_ui (transcripts into Compose/SwiftUI state), voice_notes (wake → record → persist), connection_page_setup (the minimum bootstrap wiring), byok_anthropic (Anthropic BYOK client — used by voice_qa_assistant / photo_describe_voice; for the assistant runtime's OpenAI BYOK key see `getCredentialGuide(service: 'openai')`), agent_test_loop (the legacy three-surface verification recipe — for Phase 4 use assistant_agent_loop). USE when you're about to write handler code and want the canonical shape to peel from, OR when you want the agent test driver that asserts the handler works end-to-end. DON'T USE for capability discovery (use getPlatformInfo) or per-feature minimal usage (use getCapabilityGuide).",
51
51
  inputSchema: {
52
52
  type: "object",
53
53
  properties: {
@@ -62,6 +62,7 @@ export const toolDefinitions = [
62
62
  "connection_page_setup",
63
63
  "byok_anthropic",
64
64
  "agent_test_loop",
65
+ "assistant_agent_loop",
65
66
  "conversation_agent_loop",
66
67
  ],
67
68
  description: "Which compositional pattern to fetch. Each returns full Kotlin + Swift code, an explanation, gotchas, and the SDK features it exercises.",
@@ -73,7 +74,7 @@ export const toolDefinitions = [
73
74
  },
74
75
  {
75
76
  name: "getCapabilityGuide",
76
- description: "Per-feature SDK usage guide — minimal Kotlin + Swift snippet + gotchas + which getCodeExample patterns exercise the feature. Pairs with getPlatformInfo (which lists feature names and categories) by adding the actual idiom for using each feature. Covers BOTH legacy primitives (capture_photo / capture_video / record_audio / transcription_incremental / speak / video_frames / audio_chunks / connection_state / toggles / voice_command) AND the Phase 3 conversation runtime (conversation_runtime as the umbrella, conversation_on_wake, conversation_listen, conversation_speak, conversation_ai_complete). For voice-assistant work on Phase 3 apps, start with `conversation_runtime` for the overview then drill into the individual primitives. USE when you know which feature you need but don't know the canonical call shape, or when you're hitting a confusing failure (the gotchas typically cover it). DON'T USE for a complete compositional pattern (use getCodeExample) or for capability discovery (use getPlatformInfo).",
77
+ description: "Per-feature SDK usage guide — minimal Kotlin + Swift snippet + gotchas + which getCodeExample patterns exercise the feature. Pairs with getPlatformInfo (which lists feature names and categories) by adding the actual idiom for using each feature. Covers: lower-level primitives (capture_photo / capture_video / record_audio / transcription_incremental / speak / video_frames / audio_chunks / connection_state / toggles / voice_command); the **Phase 4 assistant runtime** (assistant_runtime as the umbrella, assistant_start, assistant_tool, assistant_provider_openai) — the canonical voice-AI surface; and the **legacy Phase 3 conversation runtime** (conversation_runtime + conversation_on_wake / conversation_listen / conversation_speak / conversation_ai_complete) — DEPRECATED in v1.4.0 / REMOVED in v2.0.0, kept here for the migration window. For voice-assistant work on new apps, start with `assistant_runtime` for the overview then drill into the individual primitives. USE when you know which feature you need but don't know the canonical call shape, or when you're hitting a confusing failure (the gotchas typically cover it). DON'T USE for a complete compositional pattern (use getCodeExample) or for capability discovery (use getPlatformInfo).",
77
78
  inputSchema: {
78
79
  type: "object",
79
80
  properties: {
@@ -304,6 +305,56 @@ export const toolDefinitions = [
304
305
  additionalProperties: false,
305
306
  },
306
307
  },
308
+ {
309
+ name: "injectAssistantUtterance",
310
+ description: "**Phase 4** — drive an assistant turn from outside the live session for agent-driven E2E tests of `glasses.assistant.start { tool(...) { ... } }`. Sibling of `injectTranscript` scoped to the Phase 4 voice surface. v1 text path: library's active `AssistantClient` with a Mock provider routes the utterance to `MockAssistantProvider`, which word-overlap-matches against registered tool descriptions and dispatches synchronously; ms-fast, deterministic, $0. audioWavBase64 path is DEFERRED to v1.1 (needs Rust core changes, out of Sprint 1 scope) — handler returns not_implemented if passed. USE in the agent E2E loop: createSimulatorSession → injectAssistantUtterance({ text: \"take a picture\" }) → assertToolCalled({ name: \"take_picture\" }) → getEventLog(types:['assistant.*']). DON'T USE for Phase 3 `glasses.conversation.onWake { listen / speak }` flows — that's still `injectTranscript`'s domain; the two coexist until v2.0.0 retires the cascaded path.",
311
+ inputSchema: {
312
+ type: "object",
313
+ properties: {
314
+ sessionId: { type: "string", minLength: 1 },
315
+ text: {
316
+ type: "string",
317
+ minLength: 1,
318
+ description: "Utterance text for the Mock-provider path. The library's MockAssistantProvider word-overlap-matches this against each registered tool's description (case-insensitive, tokens ≥ 3 chars, first match wins) — write tool descriptions so the keywords your test utterance contains overlap, e.g. tool description \"Take a photo with the glasses camera\" matches text \"take a photo\". For OpenAi/Gemini provider sessions, the text is forwarded but those providers ignore it (they consume audio); use audioWavBase64 instead.",
319
+ },
320
+ audioWavBase64: {
321
+ type: "string",
322
+ minLength: 1,
323
+ description: "DEFERRED to v1.1 — passing this field returns `not_implemented`. The intended path: base64-encoded WAV (8 kHz mono i16 LE PCM); library decodes and feeds through audio_chunks Flow to the active real provider. Needs a Rust core extension that Sprint 1's machine-split deliberately avoids. For end-to-end real-provider validation in the meantime, run the OpenAi provider session with a real mic source (sim browser tab mic, or real glasses).",
324
+ },
325
+ },
326
+ required: ["sessionId"],
327
+ additionalProperties: false,
328
+ },
329
+ },
330
+ {
331
+ name: "assertToolCalled",
332
+ description: "**Phase 4** — wait for `assistant.tool_called` event matching `name` (and optionally `argsMatch` partial-match). Polls the backend event log every ~200ms until match or timeout. Equivalent to `getEventLog({ types: ['assistant.tool_called'], filter: { name }, timeoutMs })` in an assertion shape — returns the matched event payload directly + errors with `tool_not_called` code on timeout. USE in the agent E2E loop after `injectAssistantUtterance` to verify the expected tool fired. DON'T USE to inspect the full event trace (use `getEventLog`) or to check static tool registration (use `inspectIntegration`).",
333
+ inputSchema: {
334
+ type: "object",
335
+ properties: {
336
+ sessionId: { type: "string", minLength: 1 },
337
+ name: {
338
+ type: "string",
339
+ minLength: 1,
340
+ description: "Exact tool name to wait for. Must match the `name` argument passed to `tool(name, description) { ... }` in the customer's glasses.assistant.start { } block.",
341
+ },
342
+ argsMatch: {
343
+ type: "object",
344
+ description: "Optional top-level partial match against the tool's parsed args. All keys in argsMatch must be present in the call's args with equal scalar values; nested objects compared structurally. v1 ships top-level partial-match only — nested glob patterns deferred. Omit for any-args match.",
345
+ additionalProperties: true,
346
+ },
347
+ timeoutMs: {
348
+ type: "number",
349
+ minimum: 250,
350
+ maximum: 60000,
351
+ description: "Max time to wait, in ms. Default 5000. Clamped to [250, 60000]. The Mock provider dispatches in <50ms so 5000 is generous; OpenAi provider dispatches in 500-1500ms post-utterance.",
352
+ },
353
+ },
354
+ required: ["sessionId", "name"],
355
+ additionalProperties: false,
356
+ },
357
+ },
307
358
  {
308
359
  name: "getSimulatorStatus",
309
360
  description: "Read a live simulator session's current state — phase (active/paused/closed), hardware-ready, attached roles (app + browser), active capability streams (which `videoFrames`/`audioChunks`/`transcriptions` subscriptions are open right now), current toggle values, and the **testVideos** list available to drive `setSimVideo` (defaults bundled with the platform plus any MP4s uploaded for this project on the simulator page). Session-level snapshot only. USE during testing to confirm a stream is open, a toggle is set, the session is healthy, the app role has attached, or to discover which test videos you can pipe into capture_photo/capture_video. DON'T USE for event traces (use getEventLog).",
@@ -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":"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,EA4+B/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,EA+lC/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"}
@@ -471,9 +471,119 @@ export const DOC_INDEX = [
471
471
  keywords: ["handler", "custom_handlers", "kotlin", "swift", "sdk", "subscribe", "flow", "scope", "lifecycle", "byok"],
472
472
  relatedTools: ["generateConnectionModule", "getCredentialGuide"],
473
473
  },
474
+ {
475
+ topic: "simulator_fidelity",
476
+ title: "Simulator fidelity contract — what the sim validates vs what needs real glasses",
477
+ content: "**TL;DR:** the Extentos browser sim is byte-identical with real Meta Ray-Ban smart glasses for the four things that matter day-to-day (audio input bytes, audio output bytes, WebSocket to AI provider, tool dispatch + event log). It is **NOT** a substitute for real hardware on three buckets: audio character, hardware timing, hardware failure modes. The agent-driven E2E loop closes in sim with high confidence the protocol + logic is correct; real-hardware validation is the final gate.\n\n" +
478
+ "**Use this contract** to decide what you can ship after sim-passing vs what still needs real-glasses dogfood.\n\n" +
479
+ "## What's sim-faithful (✓ identical to real)\n\n" +
480
+ "- **Audio input bytes** — 8 kHz mono i16 PCM flowing app → assistant provider. Sim browser tab's mic capture is downsampled in JS to match the format Meta DAT HFP produces natively. The byte stream into your AssistantProvider is identical.\n" +
481
+ "- **Audio output bytes** — `tts_audio_chunk` path flowing assistant provider → app → speaker. Sim plays via Web Audio in the browser; real glasses play via the Sprint 0 `MetaHardwareBridge.playOutgoingAudioChunk` AudioTrack + BT SCO pipeline. The library API surface (`transport.sendOutgoingAudioChunk`) is identical; the bytes through it are identical.\n" +
482
+ "- **WebSocket to AI provider** — `wss://api.openai.com/v1/realtime?model=gpt-realtime`. The emulator-side connection is THE SAME connection a real phone makes (no proxy, no MITM). Wire format `audio/pcmu` (no rate field; G.711 intrinsic 8 kHz per synthesis #6) is byte-identical.\n" +
483
+ "- **Tool dispatch + event log** — the assistant.* event family + the sim event-log surface read by `getEventLog`. Dispatch happens SDK-side, not transport-side; behaves identically.\n" +
484
+ "- **Toggle state + connection lifecycle** — functional parity for connection.state Flow, toggle changes, session lifecycle events. The sim is a high-fidelity Phase 4 dev surface for the bits that matter day-to-day.\n\n" +
485
+ "## What's NOT sim-faithful — three buckets\n\n" +
486
+ "### Bucket A — Audio character\n\n" +
487
+ "Browser tab mic ≠ Meta DAT HFP microphone. The sim sounds CLEARER than real glasses because the laptop's array mic captures wide-band 16-48 kHz, while real Meta DAT HFP is 8 kHz mono with beamforming focused on the wearer's mouth. **Impact:** a model that handles sim-mic capture well may stumble on noisier HFP capture; tool descriptions written for clear sim audio may need adjustment for noisy real audio. **Mitigation:** during real-hardware validation, watch for tools that fire reliably in sim but unreliably outdoors / in noisy environments. Usually fixed with clearer tool descriptions, not codec changes.\n\n" +
488
+ "### Bucket B — Hardware timing\n\n" +
489
+ "Real glasses have BT profile-switch latency the sim doesn't model:\n" +
490
+ "- **First-utterance HFP profile switch (~200-500 ms):** real glasses transition from A2DP (music) to HFP (mic/speaker) when an assistant session opens. The first user utterance is partially clipped if the switch isn't complete. Sim has no profile-switch concept.\n" +
491
+ "- **A2DP↔HFP collision:** if music plays through the glasses' A2DP profile when assistant starts, music drops to mono 8 kHz (HFP-shared codec) and duck-mixes against assistant audio. Sim has no music coexistence.\n\n" +
492
+ "**Mitigation:** customer apps that want clean first-utterance UX should `speak(\"ready\")` or play an earcon on `assistant.session_started` so the user gets confirmation before they speak. Music-coexistence-dependent apps should test on real hardware.\n\n" +
493
+ "### Bucket C — Hardware failure modes\n\n" +
494
+ "The fragility is real on glasses and absent in sim:\n" +
495
+ "- **BT disconnect/reconnect on range loss** (~30 ft → 1-3s reconnect).\n" +
496
+ "- **Incoming-call interruption** pauses the assistant via OS-level priority. Apps need to handle `assistant.session_ended(error)` and resume after.\n" +
497
+ "- **Battery drain** — continuous HFP SCO drains glasses battery noticeably faster than passive A2DP. ~30 min of active assistant use is a real ceiling on the small glasses battery.\n" +
498
+ "- **Thermal throttling** — sustained camera + assistant simultaneously can throttle the SoC, dropping frame rates + introducing audio glitches.\n" +
499
+ "- **Firmware quirks** — OS / firmware-version-specific edge cases (Android version SCO timing, Meta companion app version, glasses firmware update mid-session).\n\n" +
500
+ "**Mitigation:** real-hardware validation is the only way to surface these. Per synthesis #3, at least one architecture must be dogfooded on real Ray-Bans with audio audible before declaring production-ready.\n\n" +
501
+ "## How to use this contract\n\n" +
502
+ "**During development (sim-first):** iterate against the sim with the agent-driven E2E loop (createSimulatorSession → injectAssistantUtterance → assertToolCalled → getEventLog). Mock provider for deterministic CI; OpenAi provider for end-to-end smoke. If the loop passes, you have high confidence on protocol + tool wiring + dispatch + event reporting.\n\n" +
503
+ "**Before customer-shipping (real-hardware validation):** run the same flow on real Ray-Bans + a phone with your app installed. Watch for the three buckets. Document findings in your app's release notes — they're customer-facing UX expectations, not library bugs.\n\n" +
504
+ "**Why sim-first is still the right primary surface:** audio bytes flowing app → provider are IDENTICAL to real (just different mic source); the provider's WebSocket connection from emulator is THE SAME connection real glasses make; tool dispatch + event log are SDK-side and behave identically; the agent-driven E2E loop closes in sim without humans or hardware. Hardware validation is the final gate, NOT the iteration loop. Synthesis #3 gate: at least one architecture dogfooded on real Ray-Bans with audio audible before v2.0.0 ships.\n\n" +
505
+ "## See also\n\n" +
506
+ "- **`docs/simulator/fidelity.md`** — customer-facing version of this contract (markdown doc on extentos.com).\n" +
507
+ "- **`searchDocs(topic: \"assistant_runtime\")`** — full Phase 4 assistant runtime guide.\n" +
508
+ "- **`getCodeExample(pattern: \"assistant_agent_loop\")`** — canonical scaffold + agent-test recipe.\n" +
509
+ "- **`shared-context/phase-4-spike-s3-sim-fidelity-factsheet.md`** — internal design-time fact sheet that produced this contract.",
510
+ keywords: ["simulator", "sim", "fidelity", "real hardware", "Ray-Bans", "HFP", "A2DP", "BT SCO", "audio character", "hardware timing", "battery drain", "thermal", "BrowserSim", "simulator_fidelity"],
511
+ relatedTools: ["createSimulatorSession", "injectAssistantUtterance", "assertToolCalled", "getEventLog", "getCodeExample"],
512
+ },
513
+ {
514
+ topic: "assistant_runtime",
515
+ title: "Phase 4 assistant runtime — glasses.assistant.start { tool(...) { ... } }",
516
+ content: "**The canonical voice-AI surface in Extentos from v1.4.0 onwards.** End-to-end voice provider abstraction — the model owns wake detection, turn taking, intent parsing, and confirmation speech; the customer writes tool bodies that act on app state. Replaces the Phase 3 conversation runtime (which deprecates in v1.4.0, removes in v2.0.0).\n\n" +
517
+ "```kotlin\n" +
518
+ "glasses.assistant.setOpenaiApiKey(BuildConfig.OPENAI_API_KEY)\n" +
519
+ "glasses.assistant.start(\n" +
520
+ " provider = AssistantProvider.OpenAi(model = \"gpt-realtime\", voice = \"alloy\"),\n" +
521
+ ") {\n" +
522
+ " instructions = \"You are a Strava companion. Speak briefly.\"\n" +
523
+ " tool(\"get_route_remaining\", \"How much of the planned route is left, in km.\") {\n" +
524
+ " ToolResult.Ok(\"${routeTracker.kmRemaining()} km remaining\")\n" +
525
+ " }\n" +
526
+ " tool(\"take_video\", \"Start recording a video clip.\") {\n" +
527
+ " activeVideo = scope.async { glasses.camera.captureVideo(VideoConfig(maxDurationSeconds = 30)) }\n" +
528
+ " ToolResult.Ok(\"recording started\")\n" +
529
+ " }\n" +
530
+ "}\n" +
531
+ "```\n\n" +
532
+ "**Why this exists.** Phase 3 composed the voice loop ON-DEVICE (VAD + STT + Smart Turn EOU + TTS + LLM) — ~11 MB of bundled ONNX models, ~700-900 ms TTFB, ~30 lines of customer code per handler with `when (turn.text)` keyword routing. The industry moved server-side (Pipecat Cloud defaults to hosted Smart Turn; OpenAI Realtime puts even VAD server-side via semantic_vad). Phase 4 follows: zero on-device ML, ~320-500 ms TTFB, ~10 lines of customer code per handler. The model decides which tool to call from the natural-language description — no manual intent parsing. **Customer code typically drops ~60% LoC vs Phase 3.** Same hardware target (Meta Ray-Ban smart glasses); same BYOK contract; same agent-driven E2E test loop (just different MCP tool names).\n\n" +
533
+ "**Provider abstraction.** `AssistantProvider` is a sealed type; v1 ships:\n" +
534
+ "- `AssistantProvider.OpenAi(model, voice, turnDetection)` — production. WebSocket to `wss://api.openai.com/v1/realtime?model=gpt-realtime`. Model defaults `gpt-realtime`; voice from OpenAI's catalog (`alloy`, `echo`, `shimmer`, `marin`); turnDetection defaults `ServerVad(threshold=0.5, prefixPaddingMs=300, silenceDurationMs=500)` per synthesis #10. BYOK key set out-of-band via `setOpenaiApiKey(key)`; flows direct device → openai.com (Extentos backend never sees it — synthesis #12).\n" +
535
+ "- `AssistantProvider.Mock(behavior)` — deterministic in-process. Word-overlap-matches injected utterances against tool descriptions; dispatches the first match synchronously; emits a synthesized assistant.assistant_spoke. Sub-millisecond, $0. Use for unit tests + the MCP `injectAssistantUtterance` deterministic path.\n\n" +
536
+ "**Gemini Live arrives in v1.5+ (synthesis #2).** Anthropic Claude doesn't ship a Realtime API as of v1; deferred (synthesis #17). v2.0.0 ships OpenAI + Gemini.\n\n" +
537
+ "**Tool registration — three overloads.**\n" +
538
+ "1. **No-arg.** `tool(name, description) { -> ToolResult }`. Most tools (camera, status, simple actions).\n" +
539
+ "2. **Typed-args.** `tool<Args>(name, description) { args -> ToolResult }` where `Args` is `@Serializable` (Kotlin) / `Codable` (Swift). Schema inferred from Args's SerialDescriptor at runtime on Kotlin. **Cross-platform asymmetry (Q3):** Swift requires explicit `schema:` parameter (no Mirror walk on types — instance not available at registration). Documented; JSON Schema sent to OpenAI is identical regardless.\n" +
540
+ "3. **Explicit-schema escape hatch.** `tool(name, description, schema = JsonObject(...)) { args -> ToolResult }`. For polymorphic types or format constraints (date-time, minLength, etc.).\n\n" +
541
+ "Per-tool blocking opt-out via `blocking = true` (synthesis #9). Default is non-blocking — the model speaks \"let me check...\" while the tool runs. blocking=true makes the model wait silently, useful for sub-100ms tools where the filler would be awkward (\"what time is it\" returning in 10 ms).\n\n" +
542
+ "**Tool body access scope (synthesis #14).** Full glasses.* + app state. No sandbox in v1. Tool body is regular customer-app code — sees `glasses.camera`, `glasses.audio`, app DBs, view models, repositories, third-party SDKs. Security boundary at the app/OS level (Android permissions, iOS Info.plist), not the SDK level. Per the indie/hobbyist target audience + BYOK provider model (key flows direct, no Extentos proxy).\n\n" +
543
+ "**Customer-can-skip-it lock (synthesis #7).** The trailing-lambda builder is sugar over the `ToolDefinition` data class primitive. Every customer can replace `start { tool(...) { ... } }` with `createSession(AssistantConfig(tools = listOf(ToolDefinition(...))))` + `session.start()` and get identical behavior. Required for programmatic registration (tools loaded from config, conditional, etc.).\n\n" +
544
+ "**Lifecycle.** Sessions are singleton-active per `ExtentosGlasses` (synthesis #13). State machine: Idle → Starting → Active → Stopping → Ended; Active → Reconnecting → Active for the transparent #23 reconnect. Throws `AssistantException(AlreadyActive)` if a second start fires while one is active; throws `AssistantException(NoApiKey)` if OpenAi provider used without setOpenaiApiKey. `session.stop()` and `assistant.stop()` are equivalent + idempotent.\n\n" +
545
+ "**Reconnection — library-owned + transparent (synthesis #23).** OpenAI Realtime hard-caps sessions at 60 minutes; community best practice is to reconnect every 5-10 min proactively for stability. The library proactively reconnects every ~50 min (10 min headroom before ceiling) + on WS onFailure / onClosed mid-session, coalesced via lifecycle mutex. Conversation history (recent 40 turns) replays on each reconnect via `conversation.item.create` events before audio pump starts. Audio pump is atomically swapped — customer's mic Flow continues; ~200-1500ms downtime per reconnect typical on good network. `assistant.reconnected { reason, downtime_ms }` event fires for observability; SessionState transitions Active → Reconnecting → Active.\n\n" +
546
+ "**Audio wire format (synthesis #6).** `audio/pcmu` (G.711 mulaw, intrinsically 8 kHz) both input and output. Matches Meta DAT HFP exactly — no resampling. **NO `rate` field** on the format object (G.711 has only one rate). Validated against Twilio's production GA integration; documented in `phase-4-spike-s2-wire-validation-results.md`. Library handles the PCM↔mulaw codec internally — customer never sees raw bytes.\n\n" +
547
+ "**Lifecycle events — `assistant.*` family (synthesis #15).** Eight variants emitted automatically:\n" +
548
+ "- `assistant.session_started` { provider, model, voice }\n" +
549
+ "- `assistant.session_ended` { reason: user / error / ceiling, message? }\n" +
550
+ "- `assistant.user_spoke` { transcript }\n" +
551
+ "- `assistant.assistant_spoke` { transcript }\n" +
552
+ "- `assistant.tool_called` { name, args (JsonObject), call_id }\n" +
553
+ "- `assistant.tool_result` { call_id, name, output, is_error, duration_ms }\n" +
554
+ "- `assistant.reconnected` { reason, downtime_ms }\n" +
555
+ "- `assistant.error` { kind, message }\n\n" +
556
+ "Reach customer code via `glasses.runtime.events.filterIsInstance<RuntimeEvent.Assistant>()`, the simulator's right-rail AssistantPanel, AND `getEventLog(filter: \"voice\")` (assistant.error climbs to filter: \"errors\" automatically via the backend severity classifier).\n\n" +
557
+ "**PII boundary — different from Phase 3.** Phase 3 conversation.* events stripped text (only `textLen` char count) because the cascaded path routed transcripts through Extentos backend. Phase 4 events DO carry verbatim transcripts in `user_spoke` / `assistant_spoke` because the BYOK contract routes transcripts device → openai.com directly without touching Extentos backend. The platform-side PII enforcement doesn't apply; customer apps own their data retention story. Document this delta in your app's privacy policy.\n\n" +
558
+ "**Agent-driven E2E testing.** Two new MCP tools close the loop without humans:\n" +
559
+ "- `injectAssistantUtterance({ sessionId, text })` — Mock provider deterministic path. The library's `BrowserSimTransport.incomingTextFrames` raw-frame observer routes the stt_transcript frame to the active `MockAssistantProvider`, which word-overlap-matches against tool descriptions + dispatches synchronously. Sub-millisecond, $0. The `audioWavBase64:` alternate path is deferred to v1.1.\n" +
560
+ "- `assertToolCalled({ sessionId, name, argsMatch?, timeoutMs? })` — polls `getEventLog` for `assistant.tool_called` matching name (and optionally a top-level partial-match of args). Returns the matched event or errors with `tool_not_called` on timeout.\n\n" +
561
+ "Full recipe in `getCodeExample(pattern: 'assistant_agent_loop')`.\n\n" +
562
+ "**Migration from Phase 3 conversation runtime.** Three canonical walkthroughs in `docs/migration/phase-3-to-phase-4.md` cover the common cases:\n\n" +
563
+ "**A. 1-tool app (just take_picture).** Phase 3's `glasses.conversation.onWake(\"hey assistant\") { while(true) { val turn = listen(); when (turn) { is Turn.Said -> if (turn.text.contains(\"picture\")) { ...take photo...; speak(\"got it\") } else if (turn.text.contains(\"stop\")) break } } }` (~15 lines) becomes Phase 4's `glasses.assistant.start(provider) { instructions = \"...\"; tool(\"take_picture\", \"Take a photo.\") { ...take photo...; ToolResult.Ok(\"saved\") } }` (~10 lines). Wake phrase + intent parsing + confirmation speech all delegated to the model.\n\n" +
564
+ "**B. Multi-tool app (Strava-style — route Q&A + take/stop_video).** Phase 3's ~50-line `onWake` with `when (turn.text)` keyword routing branches becomes ~30 lines of `tool(name, description) { body }` declarations. The AI manages the take_video / stop_video pair from context — no need to track \"recording state\" in customer code.\n\n" +
565
+ "**C. App using `glasses.ai.complete` for non-voice LLM (image summary, text summarization).** `glasses.ai.complete` is DELETED in v2.0.0. Migrate to OpenAI SDK direct (~5 lines per call site): `openAiClient.chatCompletion(model = \"gpt-4o-mini\", messages = listOf(ChatMessage(role = \"user\", content = prompt))).choices.first().message.content`. Same BYOK key; customer gets full OpenAI SDK control (streaming, tool calling, vision) in exchange for the convenience Extentos used to wrap.\n\n" +
566
+ "**D. Legacy `voice.onPhrase` + `recordDiscrete` apps.** These pre-Phase-3 APIs are KEPT in v2.0.0. No migration needed. Customers can ALSO adopt `glasses.assistant.start` alongside the legacy primitives if they want both surfaces in one app.\n\n" +
567
+ "**General migration tips.**\n" +
568
+ "- Test each tool in sim BEFORE shipping via `injectAssistantUtterance(text: ...)` → `assertToolCalled(name: ...)`.\n" +
569
+ "- Don't try to migrate `speak()` calls 1:1 — Phase 4's assistant speaks via the model's voice, not your platform TTS. If you need TTS outside an assistant session, the legacy `glasses.audio.speak` API still works.\n" +
570
+ "- BYOK key migration: `glasses.ai.setOpenaiApiKey(key)` → `glasses.assistant.setOpenaiApiKey(key)`. Same key, different namespace.\n" +
571
+ "- Tool descriptions matter — write them for the AI: be specific about WHEN to call (\"Take a photo when the user asks to capture a moment\") not WHAT they do internally (\"Captures imagery via the camera SDK\").\n\n" +
572
+ "**Out of scope for v1 (synthesis #5).**\n" +
573
+ "- Concurrent assistant sessions (singleton-active per #13)\n" +
574
+ "- Conversation history persisted across launches\n" +
575
+ "- Cost tracking + quota enforcement (customer's responsibility via OpenAI dashboard)\n" +
576
+ "- iOS WebRTC (Swift-side WebSocket only in v1)\n" +
577
+ "- Voice cloning / custom voices (provider catalogs only)\n" +
578
+ "- Offline operation (end-to-end requires network)\n" +
579
+ "- Auto-inference of tool args schema on Swift (Q3 — deferred to v1.1+ via Swift 5.9 macros)\n" +
580
+ "- Custom-provider plugin API (`AssistantProvider.Custom`) — defer until ≥2 first-party providers ship.",
581
+ keywords: ["assistant", "phase 4", "glasses.assistant", "AssistantProvider", "OpenAi", "gpt-realtime", "tool", "ToolResult", "ToolDefinition", "BYOK", "WebSocket", "reconnection", "assistant_runtime", "assistant_agent_loop", "migration", "mock"],
582
+ relatedTools: ["createSimulatorSession", "injectAssistantUtterance", "assertToolCalled", "getEventLog", "getCodeExample", "getCapabilityGuide", "getCredentialGuide"],
583
+ },
474
584
  {
475
585
  topic: "conversation_runtime",
476
- title: "Phase 3 conversation runtime — listen / speak / ai.complete",
586
+ title: "LEGACY Phase 3 conversation runtime — DEPRECATED in v1.4.0, REMOVED in v2.0.0 (use assistant_runtime)",
477
587
  content: "**The canonical voice-assistant path in Extentos as of Phase 3.** A single composed pipeline — VAD + STT + Smart Turn EOU + TTS + BYOK LLM — that turns a customer handler into a few lines:\n\n" +
478
588
  "```kotlin\n" +
479
589
  "glasses.conversation?.onWake(\"hey assistant\") {\n" +
@@ -491,7 +601,10 @@ export const DOC_INDEX = [
491
601
  "- **Smart Turn EOU** — Smart Turn v3 ONNX, 8 s window, 80×800 log-mel features. Decides \"user finished speaking\" with two completion paths: ML signal (sigmoid > 0.5) OR 600 ms silence fallback (`coalesceTrailingSilenceMs`).\n" +
492
602
  "- **TTS** — OpenAI TTS via the backend proxy (`/api/voice/tts`). Streaming PCM to the audio-out sink; drop-cancel for barge-in.\n" +
493
603
  "- **BYOK LLM** — `glasses.ai.complete(prompt)`. Customer's OpenAI key flows DIRECT to api.openai.com (no Extentos proxy — synthesis §8); developer owns conversation context (synthesis §6 — `complete` is single-turn, the developer accumulates history themselves and re-passes the full prompt). v1 ships `complete()` only; `ai_stream` deferred.\n\n" +
494
- "**Setup.** The host app passes `ExtentosConfig.conversationOptions: ConversationCoreOptions(...)` at create-time, supplying paths to bundled `silero_vad.onnx` + `smart-turn-v3.2-cpu.onnx` (ship as Android assets / iOS resources, ~11 MB). Missing options `glasses.conversation` is null + no model-load cost; voice-only apps don't pay for Phase 3 they don't use. After construction, the developer's app calls `glasses.ai.setOpenaiApiKey(BYOK_KEY)` (key never logged, never persisted; see `getCredentialGuide(service: 'openai')` for the per-platform key-wiring recipe).\n\n" +
604
+ "**Setup.** Both ONNX models `silero_vad.onnx` (~2.2 MB) + `smart-turn-v3.2-cpu.onnx` (~8.7 MB) ship INSIDE the library:\n" +
605
+ "- Android: `glasses-core` AAR bundles them under `assets/`. Resolve paths via `ConversationModels.ensureExtracted(context)` (suspend; copies to cacheDir on first launch, idempotent).\n" +
606
+ "- iOS: `GlassesCore` Swift package bundles them as resources. Resolve via `ConversationModels.paths` (synchronous; `Bundle.module.url(forResource:withExtension:)`).\n\n" +
607
+ "The host app then passes `ExtentosConfig.conversationOptions: ConversationCoreOptions(sileroVadModelPath = …, smartTurnModelPath = …, backendBaseUrl = …, aiEndpoint = null)` at create-time. Missing options → `glasses.conversation` is null + no ONNX session-load cost; voice-only apps don't pay for the runtime they don't use (the model BYTES still ship in every install, but the in-memory sessions are opt-in). After construction, call `glasses.ai.setOpenaiApiKey(BYOK_KEY)` (key never logged, never persisted; see `getCredentialGuide(service: 'openai')`). Full Kotlin + Swift wiring in `getCodeExample(pattern: 'conversation_agent_loop')`.\n\n" +
495
608
  "**Handler-scope semantics.**\n" +
496
609
  "- `onWake(phrase) { ... }` composes voice.onPhrase + the new conversation primitive — the same wake-phrase matcher fires both the voice client's stats AND the conversation handler. The handler block runs under structured concurrency (Kotlin coroutine / Swift Task); `defer` / `finally` runs on cancel.\n" +
497
610
  "- `start { ... }` is the primitive — register a handler without a built-in trigger; the developer calls into the conversation core themselves (e.g. from a button, a schedule, a phone-event trigger).\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":"AAAA,8CAA8C;AAC9C,yEAAyE;AACzE,sEAAsE;AACtE,0EAA0E;AAC1E,qEAAqE;AACrE,uBAAuB;AAEvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,0EAA0E;AAC1E,wEAAwE;AACxE,qEAAqE;AACrE,sEAAsE;AACtE,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;AAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC;AAC/D,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAUzD,2EAA2E;AAC3E,mEAAmE;AACnE,uDAAuD;AACvD,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6JAoL0H,CAAC;AAE9J,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,+BAA+B;QACtC,OAAO,EACL,2WAA2W;YAC3W,0JAA0J;YAC1J,8DAA8D;YAC9D,0uBAA0uB;YAC1uB,2YAA2Y;YAC3Y,kDAAkD;YAClD,0SAA0S;YAC1S,qOAAqO;YACrO,8GAA8G;YAC9G,wlBAAwlB;YACxlB,sLAAsL;YACtL,mMAAmM;YACnM,0RAA0R;YAC1R,kaAAka;YACla,mJAAmJ;YACnJ,+jBAA+jB;YAC/jB,snBAAsnB;YACtnB,+MAA+M;YAC/M,qHAAqH;YACrH,mJAAmJ;YACnJ,oRAAoR;YACpR,sbAAsb;YACtb,yPAAyP;QAC3P,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;QACxL,YAAY,EAAE,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,CAAC;KAC9M;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,kBAAkB;QACzB,OAAO,EACL,gUAAgU;YAChU,2DAA2D;YAC3D,2JAA2J;YAC3J,iFAAiF;YACjF,wHAAwH;YACxH,6JAA6J;YAC7J,2MAA2M;YAC3M,4LAA4L;YAC5L,6CAA6C;YAC7C,uPAAuP;YACvP,aAAa;YACb,gDAAgD;YAChD,qDAAqD;YACrD,uDAAuD;YACvD,YAAY;YACZ,+CAA+C;YAC/C,0BAA0B;YAC1B,uGAAuG;YACvG,mGAAmG;YACnG,WAAW;YACX,qIAAqI;YACrI,gDAAgD;YAChD,mWAAmW;QACrW,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC;QACtL,YAAY,EAAE,CAAC,yBAAyB,CAAC;KAC1C;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EACL,qiBAAqiB;YACriB,yMAAyM;YACzM,4yOAA4yO;QAC9yO,QAAQ,EAAE;YACR,QAAQ;YACR,cAAc;YACd,gBAAgB;YAChB,uBAAuB;YACvB,0BAA0B;YAC1B,uBAAuB;YACvB,mBAAmB;YACnB,qBAAqB;YACrB,gCAAgC;YAChC,OAAO;YACP,SAAS;YACT,OAAO;YACP,eAAe;YACf,QAAQ;YACR,KAAK;SACN;QACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;KACrC;IACD;QACE,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EACL,wWAAwW;QAC1W,QAAQ,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC;QACrG,YAAY,EAAE,CAAC,oBAAoB,EAAE,aAAa,CAAC;KACpD;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,2BAA2B;QAClC,OAAO,EACL,8SAA8S;YAC9S,sBAAsB;YACtB,6HAA6H;YAC7H,0KAA0K;YAC1K,+FAA+F;YAC/F,kYAAkY;YAClY,+UAA+U;QACjV,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC;QAC9I,YAAY,EAAE,CAAC,oBAAoB,CAAC;KACrC;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EACL,6HAA6H;YAC7H,2HAA2H;YAC3H,qHAAqH;YACrH,gZAAgZ;YAChZ,uQAAuQ;YACvQ,kHAAkH;YAClH,0JAA0J;YAC1J,sUAAsU;YACtU,8WAA8W;YAC9W,uQAAuQ;YACvQ,6OAA6O;YAC7O,gMAAgM;YAChM,qhBAAqhB;YACrhB,iDAAiD;YACjD,2QAA2Q;YAC3Q,2NAA2N;YAC3N,2HAA2H;YAC3H,yFAAyF;YACzF,yCAAyC;YACzC,2JAA2J;YAC3J,oHAAoH;YACpH,0IAA0I;YAC1I,qDAAqD;YACrD,sUAAsU;YACtU,yKAAyK;YACzK,kHAAkH;YAClH,uKAAuK;YACvK,gHAAgH;YAChH,sHAAsH;YACtH,8GAA8G;YAC9G,iFAAiF;YACjF,+KAA+K;YAC/K,iEAAiE;YACjE,6KAA6K;YAC7K,6JAA6J;YAC7J,qIAAqI;YACrI,4BAA4B;YAC5B,uCAAuC;YACvC,0PAA0P;YAC1P,oHAAoH;YACpH,gMAAgM;YAChM,sRAAsR;YACtR,2OAA2O;YAC3O,kWAAkW;YAClW,yDAAyD;YACzD,oLAAoL;YACpL,6FAA6F;YAC7F,2PAA2P;YAC3P,uCAAuC;YACvC,sSAAsS;YACtS,+gBAA+gB;YAC/gB,2YAA2Y;YAC3Y,oQAAoQ;YACpQ,qTAAqT;YACrT,ySAAyS;YACzS,sBAAsB;YACtB,uRAAuR;YACvR,uLAAuL;YACvL,mFAAmF;YACnF,mEAAmE;YACnE,mRAAmR;YACnR,2CAA2C;YAC3C,wSAAwS;YACxS,iIAAiI;YACjI,kdAAkd;YACld,0CAA0C;YAC1C,+KAA+K;YAC/K,gHAAgH;YAChH,uMAAuM;YACvM,6EAA6E;YAC7E,uCAAuC;YACvC,0JAA0J;YAC1J,iFAAiF;YACjF,uEAAuE;YACvE,oDAAoD;YACpD,oFAAoF;YACpF,+CAA+C;YAC/C,sDAAsD;YACtD,sEAAsE;YACtE,4FAA4F;YAC5F,sBAAsB;YACtB,oQAAoQ;YACpQ,sOAAsO;YACtO,6FAA6F;YAC7F,kKAAkK;YAClK,2CAA2C;YAC3C,0WAA0W;QAC5W,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;QAC3c,YAAY,EAAE,CAAC,0BAA0B,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACnF;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EACL,qaAAqa;YACra,qDAAqD;YACrD,2IAA2I;YAC3I,yBAAyB;YACzB,+CAA+C;YAC/C,iDAAiD;YACjD,8CAA8C;YAC9C,SAAS;YACT,qFAAqF;YACrF,sCAAsC;YACtC,+EAA+E;YAC/E,2DAA2D;YAC3D,4EAA4E;YAC5E,2EAA2E;YAC3E,2DAA2D;YAC3D,wEAAwE;YACxE,qDAAqD;YACrD,8EAA8E;YAC9E,iDAAiD;YACjD,mBAAmB;YACnB,eAAe;YACf,aAAa;YACb,qCAAqC;YACrC,SAAS;YACT,gDAAgD;YAChD,0BAA0B;YAC1B,kDAAkD;YAClD,gDAAgD;YAChD,6CAA6C;YAC7C,gDAAgD;YAChD,wBAAwB;YACxB,2BAA2B;YAC3B,iEAAiE;YACjE,sCAAsC;YACtC,0EAA0E;YAC1E,uCAAuC;YACvC,sFAAsF;YACtF,sEAAsE;YACtE,uEAAuE;YACvE,uBAAuB;YACvB,uDAAuD;YACvD,kGAAkG;YAClG,8EAA8E;YAC9E,mBAAmB;YACnB,eAAe;YACf,aAAa;YACb,wCAAwC;YACxC,SAAS;YACT,qBAAqB;YACrB,qTAAqT;YACrT,iDAAiD;YACjD,qGAAqG;YACrG,6BAA6B;YAC7B,+CAA+C;YAC/C,uCAAuC;YACvC,iBAAiB;YACjB,mNAAmN;YACnN,6BAA6B;YAC7B,qVAAqV;YACrV,kBAAkB;YAClB,qHAAqH;YACrH,+EAA+E;YAC/E,4FAA4F;YAC5F,kRAAkR;YAClR,qBAAqB;YACrB,kNAAkN;YAClN,gIAAgI;YAChI,2BAA2B;YAC3B,sLAAsL;YACtL,iLAAiL;YACjL,sNAAsN;YACtN,qQAAqQ;QACvQ,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC;QACrH,YAAY,EAAE,CAAC,0BAA0B,EAAE,oBAAoB,CAAC;KACjE;IACD;QACE,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,iFAAiF;QACxF,OAAO,EACL,4eAA4e;YAC5e,mHAAmH;YACnH,kDAAkD;YAClD,mPAAmP;YACnP,qWAAqW;YACrW,2RAA2R;YAC3R,yLAAyL;YACzL,4NAA4N;YAC5N,gDAAgD;YAChD,oCAAoC;YACpC,2mBAA2mB;YAC3mB,oCAAoC;YACpC,sEAAsE;YACtE,0QAA0Q;YAC1Q,0NAA0N;YAC1N,iQAAiQ;YACjQ,2CAA2C;YAC3C,uDAAuD;YACvD,0EAA0E;YAC1E,uJAAuJ;YACvJ,wLAAwL;YACxL,mJAAmJ;YACnJ,sKAAsK;YACtK,qNAAqN;YACrN,iCAAiC;YACjC,qWAAqW;YACrW,4QAA4Q;YAC5Q,+hBAA+hB;YAC/hB,iBAAiB;YACjB,iHAAiH;YACjH,4FAA4F;YAC5F,uGAAuG;YACvG,kIAAkI;QACpI,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,CAAC;QACtM,YAAY,EAAE,CAAC,wBAAwB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,CAAC;KAC1H;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,2EAA2E;QAClF,OAAO,EACL,wVAAwV;YACxV,aAAa;YACb,iEAAiE;YACjE,4BAA4B;YAC5B,yFAAyF;YACzF,OAAO;YACP,qEAAqE;YACrE,0FAA0F;YAC1F,yEAAyE;YACzE,SAAS;YACT,iEAAiE;YACjE,2GAA2G;YAC3G,gDAAgD;YAChD,SAAS;YACT,KAAK;YACL,SAAS;YACT,8vBAA8vB;YAC9vB,6EAA6E;YAC7E,0eAA0e;YAC1e,oUAAoU;YACpU,qKAAqK;YACrK,4CAA4C;YAC5C,4GAA4G;YAC5G,iaAAia;YACja,gMAAgM;YAChM,6SAA6S;YAC7S,0aAA0a;YAC1a,kZAAkZ;YAClZ,2cAA2c;YAC3c,2uBAA2uB;YAC3uB,uaAAua;YACva,sGAAsG;YACtG,4DAA4D;YAC5D,4EAA4E;YAC5E,2CAA2C;YAC3C,gDAAgD;YAChD,kEAAkE;YAClE,8EAA8E;YAC9E,qDAAqD;YACrD,2CAA2C;YAC3C,oRAAoR;YACpR,8gBAA8gB;YAC9gB,kFAAkF;YAClF,0YAA0Y;YAC1Y,kQAAkQ;YAClQ,uEAAuE;YACvE,qJAAqJ;YACrJ,6jBAA6jB;YAC7jB,kVAAkV;YAClV,+eAA+e;YAC/e,uPAAuP;YACvP,+BAA+B;YAC/B,sHAAsH;YACtH,yNAAyN;YACzN,sIAAsI;YACtI,yNAAyN;YACzN,2CAA2C;YAC3C,8DAA8D;YAC9D,oDAAoD;YACpD,wFAAwF;YACxF,kDAAkD;YAClD,4DAA4D;YAC5D,qDAAqD;YACrD,+FAA+F;YAC/F,wGAAwG;QAC1G,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,CAAC;QACrP,YAAY,EAAE,CAAC,wBAAwB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;KACtK;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,uGAAuG;QAC9G,OAAO,EACL,kMAAkM;YAClM,aAAa;YACb,qDAAqD;YACrD,qFAAqF;YACrF,gCAAgC;YAChC,uDAAuD;YACvD,wFAAwF;YACxF,SAAS;YACT,KAAK;YACL,SAAS;YACT,2lBAA2lB;YAC3lB,iDAAiD;YACjD,uJAAuJ;YACvJ,0KAA0K;YAC1K,qOAAqO;YACrO,mIAAmI;YACnI,4VAA4V;YAC5V,+HAA+H;YAC/H,0LAA0L;YAC1L,0KAA0K;YAC1K,soBAAsoB;YACtoB,gCAAgC;YAChC,iTAAiT;YACjT,0MAA0M;YAC1M,gLAAgL;YAChL,kMAAkM;YAClM,kiBAAkiB;YACliB,+HAA+H;YAC/H,wEAAwE;YACxE,2DAA2D;YAC3D,uDAAuD;YACvD,wEAAwE;YACxE,6DAA6D;YAC7D,4DAA4D;YAC5D,0fAA0f;YAC1f,4lBAA4lB;YAC5lB,sEAAsE;YACtE,+DAA+D;YAC/D,iBAAiB;YACjB,8QAA8Q;YAC9Q,gIAAgI;YAChI,yJAAyJ;YACzJ,6KAA6K;YAC7K,yHAAyH;YACzH,2KAA2K;YAC3K,qXAAqX;QACvX,QAAQ,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,yBAAyB,CAAC;QAC5O,YAAY,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KACpH;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,8FAA8F;QACrG,OAAO,EACL,ycAAyc;YACzc,mEAAmE;YACnE,i2BAAi2B;YACj2B,sbAAsb;YACtb,6FAA6F;YAC7F,4RAA4R;YAC5R,uWAAuW;YACvW,+GAA+G;YAC/G,gZAAgZ;QAClZ,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,CAAC;QAChN,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACvG;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EACL,gWAAgW;YAChW,oDAAoD;YACpD,uPAAuP;YACvP,8NAA8N;YAC9N,0TAA0T;YAC1T,4PAA4P;YAC5P,2RAA2R;YAC3R,yKAAyK;QAC3K,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,CAAC;QACtI,YAAY,EAAE,CAAC,iBAAiB,CAAC;KAClC;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EACL,gQAAgQ;QAClQ,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC;QAC7E,YAAY,EAAE,CAAC,wBAAwB,CAAC;KACzC;IACD;QACE,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EACL,4YAA4Y;YAC5Y,uhBAAuhB;YACvhB,gDAAgD;YAChD,sUAAsU;YACtU,0EAA0E;YAC1E,mHAAmH;YACnH,oZAAoZ;YACpZ,seAAse;YACte,iEAAiE;YACjE,0DAA0D;YAC1D,iHAAiH;YACjH,+JAA+J;YAC/J,gUAAgU;YAChU,oGAAoG;YACpG,sFAAsF;YACtF,yGAAyG;YACzG,kMAAkM;YAClM,wbAAwb;YACxb,uYAAuY;YACvY,uDAAuD;YACvD,yCAAyC;YACzC,8mBAA8mB;YAC9mB,yaAAya;YACza,yHAAyH;YACzH,6BAA6B;YAC7B,2HAA2H;YAC3H,yLAAyL;YACzL,iMAAiM;YACjM,+SAA+S;YAC/S,ySAAyS;QAC3S,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC;QACpQ,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,aAAa,CAAC;KAC9E;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,kBAAkB;QACzB,OAAO,EACL,wPAAwP;YACxP,gYAAgY;YAChY,kBAAkB;YAClB,kRAAkR;YAClR,oJAAoJ;YACpJ,4KAA4K;YAC5K,6UAA6U;YAC7U,4FAA4F;YAC5F,0HAA0H;YAC1H,yKAAyK;YACzK,+FAA+F;YAC/F,oNAAoN;YACpN,gSAAgS;YAChS,wRAAwR;YACxR,iCAAiC;YACjC,oCAAoC;YACpC,8FAA8F;YAC9F,0BAA0B;YAC1B,8DAA8D;YAC9D,sDAAsD;YACtD,0CAA0C;YAC1C,sCAAsC;YACtC,6DAA6D;YAC7D,kMAAkM;YAClM,yDAAyD;YACzD,obAAob;QACtb,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC;QACjJ,YAAY,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC;KACpD;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EACL,siCAAsiC;QACxiC,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC;QACvH,YAAY,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,wBAAwB,CAAC;KAClF;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,aAAa;QACpB,OAAO,EACL,2xBAA2xB;QAC7xB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC;QAClI,YAAY,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;KAC/D;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EACL,+kBAA+kB;QACjlB,QAAQ,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QAC1E,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACjF;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EACL,wTAAwT;QAC1T,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;QAChF,YAAY,EAAE,EAAE;KACjB;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,+BAA+B;QACtC,OAAO,EACL,iEAAiE;YACjE,2FAA2F;YAC3F,uCAAuC;YACvC,2DAA2D;YAC3D,sHAAsH;YACtH,oFAAoF;YACpF,kOAAkO;YAClO,sJAAsJ;YACtJ,iJAAiJ;YACjJ,+OAA+O;YAC/O,wSAAwS;YACxS,qPAAqP;YACrP,6CAA6C;YAC7C,oDAAoD;YACpD,qEAAqE;YACrE,kLAAkL;YAClL,yCAAyC;YACzC,6zBAA6zB;YAC7zB,wXAAwX;QAC1X,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;QAC/K,YAAY,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,0BAA0B,CAAC;KACxF;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,uDAAuD;QAC9D,OAAO,EACL,kVAAkV;YAClV,uDAAuD;YACvD,0IAA0I;YAC1I,gJAAgJ;YAChJ,yMAAyM;YACzM,0JAA0J;YAC1J,qGAAqG;YACrG,mHAAmH;YACnH,0FAA0F;YAC1F,oIAAoI;YACpI,kFAAkF;YAClF,4PAA4P;YAC5P,iHAAiH;YACjH,mIAAmI;YACnI,wEAAwE;YACxE,8OAA8O;YAC9O,2BAA2B;YAC3B,+HAA+H;YAC/H,wGAAwG;YACxG,yHAAyH;YACzH,sGAAsG;YACtG,8BAA8B;YAC9B,cAAc;YACd,8YAA8Y;YAC9Y,8PAA8P;YAC9P,+CAA+C;YAC/C,0fAA0f;YAC1f,sDAAsD;YACtD,mHAAmH;YACnH,6NAA6N;YAC7N,oXAAoX;YACpX,qTAAqT;YACrT,wCAAwC;YACxC,snBAAsnB;QACxnB,QAAQ,EAAE;YACR,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,sBAAsB;YACtB,eAAe;YACf,WAAW;YACX,oBAAoB;YACpB,qBAAqB;YACrB,WAAW;YACX,oBAAoB;YACpB,aAAa;YACb,aAAa;YACb,WAAW;YACX,gBAAgB;YAChB,cAAc;SACf;QACD,YAAY,EAAE,CAAC,wBAAwB,CAAC;KACzC;IACD;QACE,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,gCAAgC;QACvC,OAAO,EACL,0PAA0P;YAC1P,8BAA8B;YAC9B,kaAAka;YACla,gFAAgF;YAChF,gDAAgD;YAChD,oCAAoC;YACpC,yOAAyO;YACzO,6LAA6L;YAC7L,mOAAmO;YACnO,sDAAsD;YACtD,0iBAA0iB;YAC1iB,0CAA0C;YAC1C,gEAAgE;YAChE,sFAAsF;YACtF,oLAAoL;QACtL,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,CAAC;QACvH,YAAY,EAAE,CAAC,0BAA0B,CAAC;KAC3C;IACD;QACE,KAAK,EAAE,6BAA6B;QACpC,KAAK,EAAE,sCAAsC;QAC7C,OAAO,EACL,gZAAgZ;QAClZ,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC;QACtF,YAAY,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;KAChD;IACD;QACE,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,OAAO,EACL,kLAAkL;YAClL,gMAAgM;YAChM,uJAAuJ;YACvJ,wUAAwU;YACxU,8BAA8B;YAC9B,mJAAmJ;YACnJ,4EAA4E;YAC5E,mFAAmF;YACnF,iFAAiF;YACjF,0FAA0F;YAC1F,2IAA2I;YAC3I,6BAA6B;YAC7B,sXAAsX;YACtX,qBAAqB;YACrB,kdAAkd;YACld,0BAA0B;YAC1B,gWAAgW;YAChW,eAAe;YACf,0CAA0C;YAC1C,0DAA0D;YAC1D,2EAA2E;YAC3E,6EAA6E;YAC7E,4FAA4F;QAC9F,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,CAAC;QAC9M,YAAY,EAAE,CAAC,0BAA0B,CAAC;KAC3C;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE;YACR,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,gBAAgB;YAChB,aAAa;YACb,oBAAoB;YACpB,iBAAiB;YACjB,oBAAoB;YACpB,UAAU;YACV,SAAS;YACT,eAAe;YACf,SAAS;YACT,iBAAiB;YACjB,SAAS;YACT,SAAS;SACV;QACD,YAAY,EAAE,CAAC,0BAA0B,CAAC;KAC3C;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,iCAAiC;QACxC,OAAO,EACL,+aAA+a;YAC/a,mDAAmD;YACnD,wlBAAwlB;YACxlB,wCAAwC;YACxC,iVAAiV;YACjV,oNAAoN;YACpN,gEAAgE;YAChE,kFAAkF;YAClF,2LAA2L;YAC3L,kDAAkD;YAClD,0CAA0C,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,+WAA+W;YACte,sCAAsC;YACtC,wBAAwB;YACxB,yEAAyE;YACzE,OAAO;YACP,sCAAsC;YACtC,sEAAsE;YACtE,wBAAwB;YACxB,sCAAsC;YACtC,qBAAqB;YACrB,iGAAiG;YACjG,+BAA+B;YAC/B,qEAAqE;YACrE,qEAAqE;YACrE,0EAA0E;YAC1E,uBAAuB;YACvB,+HAA+H;YAC/H,4GAA4G;YAC5G,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,OAAO;YACP,mCAAmC;YACnC,yBAAyB;YACzB,mCAAmC;YACnC,eAAe;YACf,kDAAkD,GAAG,SAAS,GAAG,kBAAkB;YACnF,uDAAuD,GAAG,cAAc,GAAG,kBAAkB;YAC7F,8DAA8D,GAAG,cAAc,GAAG,kBAAkB;YACpG,SAAS;YACT,oCAAoC;YACpC,wDAAwD;YACxD,8BAA8B;YAC9B,8BAA8B;YAC9B,sCAAsC;YACtC,kCAAkC;YAClC,wFAAwF;YACxF,6EAA6E;YAC7E,gCAAgC;YAChC,eAAe;YACf,yCAAyC;YACzC,8CAA8C;YAC9C,qDAAqD;YACrD,OAAO;YACP,eAAe;YACf,2CAA2C;YAC3C,yBAAyB;YACzB,yBAAyB;YACzB,mDAAmD;YACnD,yBAAyB;YACzB,4BAA4B;YAC5B,6BAA6B;YAC7B,qCAAqC;YACrC,WAAW;YACX,0CAA0C;YAC1C,0BAA0B;YAC1B,0DAA0D;YAC1D,0DAA0D;YAC1D,WAAW;YACX,8CAA8C;YAC9C,OAAO;YACP,oBAAoB;YACpB,2DAA2D;YAC3D,sEAAsE;YACtE,4EAA4E;YAC5E,gFAAgF;YAChF,oCAAoC;YACpC,oDAAoD;YACpD,oEAAoE;YACpE,kEAAkE;YAClE,+EAA+E;YAC/E,iEAAiE;YACjE,0EAA0E;YAC1E,OAAO;YACP,6EAA6E;YAC7E,6EAA6E;YAC7E,0DAA0D;YAC1D,4CAA4C;YAC5C,gDAAgD;YAChD,6EAA6E;YAC7E,sBAAsB;YACtB,0CAA0C;YAC1C,iEAAiE;YACjE,gDAAgD;YAChD,0CAA0C;YAC1C,mDAAmD;YACnD,uBAAuB;YACvB,gDAAgD;YAChD,2CAA2C;YAC3C,uDAAuD;YACvD,iCAAiC;YACjC,4EAA4E;YAC5E,oFAAoF;YACpF,kCAAkC;YAClC,yBAAyB;YACzB,wBAAwB;YACxB,mBAAmB;YACnB,+DAA+D;YAC/D,+BAA+B;YAC/B,8BAA8B;YAC9B,gDAAgD;YAChD,iDAAiD;YACjD,2DAA2D;YAC3D,qDAAqD;YACrD,+CAA+C;YAC/C,4CAA4C;YAC5C,gDAAgD;YAChD,yCAAyC;YACzC,gDAAgD;YAChD,8DAA8D;YAC9D,gDAAgD;YAChD,0BAA0B;YAC1B,iCAAiC;YACjC,gHAAgH;YAChH,mCAAmC;YACnC,uBAAuB;YACvB,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,OAAO;YACP,iBAAiB;YACjB,iDAAiD;YACjD,+CAA+C;YAC/C,gDAAgD;YAChD,wEAAwE;YACxE,8CAA8C;YAC9C,gDAAgD;YAChD,iBAAiB;YACjB,4FAA4F;YAC5F,oBAAoB;YACpB,4CAA4C;YAC5C,mFAAmF,GAAG,SAAS,GAAG,sBAAsB,GAAG,YAAY,GAAG,kFAAkF,GAAG,YAAY,GAAG,0FAA0F,GAAG,YAAY,GAAG,gBAAgB;YAC1W,2NAA2N,GAAG,YAAY,GAAG,yGAAyG;YACtV,qWAAqW,GAAG,YAAY,GAAG,oFAAoF,GAAG,SAAS,GAAG,yJAAyJ,GAAG,YAAY,GAAG,8BAA8B;YACnqB,gDAAgD,GAAG,YAAY,GAAG,mEAAmE,GAAG,YAAY,GAAG,yHAAyH;YAChR,4CAA4C;YAC5C,8UAA8U;YAC9U,0CAA0C;YAC1C,ySAAyS;YACzS,0CAA0C;YAC1C,yZAAyZ;YACzZ,wCAAwC;YACxC,qJAAqJ;YACrJ,mHAAmH;YACnH,2HAA2H;QAC7H,QAAQ,EAAE;YACR,UAAU;YACV,UAAU;YACV,UAAU;YACV,cAAc;YACd,aAAa;YACb,SAAS;YACT,SAAS;YACT,gBAAgB;YAChB,WAAW;YACX,cAAc;YACd,KAAK;YACL,KAAK;YACL,aAAa;YACb,SAAS;YACT,gBAAgB;YAChB,cAAc;YACd,qBAAqB;SACtB;QACD,YAAY,EAAE,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;KAClE;IACD;QACE,KAAK,EAAE,6BAA6B;QACpC,KAAK,EAAE,wCAAwC;QAC/C,OAAO,EACL,gMAAgM;YAChM,0PAA0P;YAC1P,wlBAAwlB;YACxlB,2dAA2d;YAC3d,seAAse;YACte,kcAAkc;YAClc,4aAA4a;QAC9a,QAAQ,EAAE;YACR,WAAW;YACX,WAAW;YACX,UAAU;YACV,UAAU;YACV,WAAW;YACX,kBAAkB;YAClB,eAAe;YACf,oBAAoB;YACpB,kBAAkB;YAClB,SAAS;YACT,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,SAAS;YACT,aAAa;YACb,gBAAgB;YAChB,mBAAmB;YACnB,iBAAiB;YACjB,iBAAiB;YACjB,UAAU;SACX;QACD,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,0BAA0B,CAAC;KAC3F;IACD;QACE,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,2CAA2C;QAClD,OAAO,EACL,y5BAAy5B;QAC35B,QAAQ,EAAE;YACR,WAAW;YACX,UAAU;YACV,WAAW;YACX,OAAO;YACP,QAAQ;YACR,cAAc;YACd,aAAa;YACb,OAAO;YACP,WAAW;YACX,aAAa;YACb,KAAK;YACL,yBAAyB;YACzB,WAAW;YACX,UAAU;SACX;QACD,YAAY,EAAE,CAAC,wBAAwB,CAAC;KACzC;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,4CAA4C;QACnD,OAAO,EACL,o6EAAo6E;QACt6E,QAAQ,EAAE;YACR,MAAM;YACN,aAAa;YACb,YAAY;YACZ,UAAU;YACV,kBAAkB;YAClB,eAAe;YACf,kBAAkB;YAClB,QAAQ;YACR,cAAc;YACd,WAAW;YACX,QAAQ;YACR,MAAM;YACN,SAAS;SACV;QACD,YAAY,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,CAAC;KAC7D;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,iCAAiC;QACxC,OAAO,EACL,6UAA6U;YAC7U,sDAAsD;YACtD,kHAAkH;YAClH,2CAA2C;YAC3C,kTAAkT;YAClT,+CAA+C;YAC/C,uBAAuB;YACvB,mHAAmH;YACnH,6KAA6K;YAC7K,wIAAwI;YACxI,mCAAmC;YACnC,8JAA8J;YAC9J,6JAA6J;YAC7J,0IAA0I;YAC1I,iEAAiE;YACjE,kIAAkI;YAClI,sIAAsI;YACtI,+LAA+L;YAC/L,oVAAoV;YACpV,yRAAyR;YACzR,oRAAoR;YACpR,4KAA4K;YAC5K,gEAAgE;YAChE,waAAwa;YACxa,oaAAoa;YACpa,yGAAyG;YACzG,yGAAyG;YACzG,qGAAqG;YACrG,6KAA6K;YAC7K,8GAA8G;YAC9G,wCAAwC;YACxC,oPAAoP;YACpP,sEAAsE;YACtE,0EAA0E;YAC1E,0EAA0E;YAC1E,0EAA0E;YAC1E,mDAAmD;YACnD,mIAAmI;YACnI,4CAA4C;YAC5C,2bAA2b;YAC3b,ylBAAylB;YACzlB,wMAAwM;YACxM,+IAA+I;YAC/I,4DAA4D;YAC5D,urBAAurB;YACvrB,onBAAonB;YACpnB,kOAAkO;YAClO,qLAAqL;YACrL,sVAAsV;YACtV,uPAAuP;YACvP,6FAA6F;YAC7F,sTAAsT;YACtT,mBAAmB;YACnB,ocAAoc;YACpc,gXAAgX;YAChX,sDAAsD;YACtD,sCAAsC;YACtC,4CAA4C;YAC5C,maAAma;YACna,kNAAkN;YAClN,oKAAoK;YACpK,sCAAsC;YACtC,gDAAgD;YAChD,6NAA6N;YAC7N,mIAAmI;YACnI,8JAA8J;YAC9J,8IAA8I;YAC9I,wJAAwJ;QAC1J,QAAQ,EAAE;YACR,OAAO;YACP,KAAK;YACL,YAAY;YACZ,MAAM;YACN,SAAS;YACT,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,uBAAuB;YACvB,KAAK;YACL,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,WAAW;YACX,YAAY;YACZ,MAAM;YACN,WAAW;YACX,iBAAiB;YACjB,WAAW;YACX,SAAS;YACT,SAAS;SACV;QACD,YAAY,EAAE;YACZ,kBAAkB;YAClB,aAAa;YACb,oBAAoB;YACpB,wBAAwB;YACxB,gBAAgB;SACjB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,WAAoB;IACjE,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QACvG,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;gBAAE,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,KAAK,IAAI,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;YACtD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,EAAE,KAAK,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;qBACpB,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,IAAI,WAAW,GAAG,CAAC;gBAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,KAAa,EACb,cAAsB,CAAC,EACvB,kBAA0B,GAAG;IAE7B,MAAM,KAAK,GAAG,KAAK;SAChB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,eAAe;YAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG;YACpD,CAAC,CAAC,IAAI,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW;YAAE,MAAM;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type McpContent } from "../response.js";
2
+ export declare function handleAssertToolCalled(raw: unknown): Promise<McpContent>;
3
+ //# sourceMappingURL=assertToolCalled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertToolCalled.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/assertToolCalled.ts"],"names":[],"mappings":"AAwBA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAsE5E,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAsH9E"}
@@ -0,0 +1,171 @@
1
+ // assertToolCalled — Phase 4 S1.W.7.
2
+ //
3
+ // The other half of the agent-driven E2E loop for Phase 4 voice apps.
4
+ // Polls the backend event log for an `assistant.tool_called` event
5
+ // matching the given tool name (and optionally a partial-match against
6
+ // the call args), returning when found or timing out.
7
+ //
8
+ // Schema per synthesis #16:
9
+ // { sessionId, name, argsMatch?, timeoutMs? } → { name, args, call_id,
10
+ // occurred_at_ms } | error code "tool_not_called" on timeout
11
+ //
12
+ // Equivalent to getEventLog({ types: ["assistant.tool_called"],
13
+ // filter: { name }, timeoutMs }) but in an assertion shape — returns
14
+ // the matched event payload directly (no event-array unwrap) and
15
+ // errors clearly if no match within the timeout.
16
+ //
17
+ // USE for agent test loops:
18
+ // await injectAssistantUtterance({ sessionId, text: "take a picture" })
19
+ // await assertToolCalled({ sessionId, name: "take_picture", timeoutMs: 5000 })
20
+ //
21
+ // DON'T USE for inspecting the full event trace (use getEventLog) or
22
+ // for checking which tools are registered statically (use
23
+ // inspectIntegration).
24
+ import { okResponse, errorResponse } from "../response.js";
25
+ import { backendFetch } from "../util/backendClient.js";
26
+ const POLL_MS = 200;
27
+ const DEFAULT_TIMEOUT_MS = 5_000;
28
+ const MIN_TIMEOUT_MS = 250;
29
+ const MAX_TIMEOUT_MS = 60_000;
30
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
31
+ /**
32
+ * Shallow top-level partial match. The `expected` keys must all be
33
+ * present in `actual` with equal scalar values. Nested objects are
34
+ * compared structurally (deep equality). Per synthesis #16 v1 ships
35
+ * top-level partial match only — nested glob patterns deferred.
36
+ */
37
+ function argsMatchPartial(actual, expected) {
38
+ for (const [key, expectedVal] of Object.entries(expected)) {
39
+ if (!(key in actual))
40
+ return false;
41
+ const actualVal = actual[key];
42
+ if (typeof expectedVal === "object" &&
43
+ expectedVal !== null &&
44
+ !Array.isArray(expectedVal)) {
45
+ // Recurse for nested object equality.
46
+ if (typeof actualVal !== "object" ||
47
+ actualVal === null ||
48
+ Array.isArray(actualVal))
49
+ return false;
50
+ if (!argsMatchPartial(actualVal, expectedVal))
51
+ return false;
52
+ }
53
+ else if (Array.isArray(expectedVal)) {
54
+ if (!Array.isArray(actualVal))
55
+ return false;
56
+ if (actualVal.length !== expectedVal.length)
57
+ return false;
58
+ for (let i = 0; i < expectedVal.length; i++) {
59
+ if (JSON.stringify(actualVal[i]) !== JSON.stringify(expectedVal[i]))
60
+ return false;
61
+ }
62
+ }
63
+ else {
64
+ if (actualVal !== expectedVal)
65
+ return false;
66
+ }
67
+ }
68
+ return true;
69
+ }
70
+ export async function handleAssertToolCalled(raw) {
71
+ if (!raw || typeof raw !== "object") {
72
+ return errorResponse({
73
+ code: "invalid_arguments",
74
+ message: "assertToolCalled requires { sessionId, name }.",
75
+ fixHint: 'Pass { sessionId: "sim_...", name: "take_picture" }. Optional: argsMatch (object — top-level partial match), timeoutMs (default 5000).',
76
+ retryable: false,
77
+ });
78
+ }
79
+ const o = raw;
80
+ if (typeof o.sessionId !== "string" || !o.sessionId.trim()) {
81
+ return errorResponse({
82
+ code: "invalid_arguments",
83
+ message: "sessionId (string) is required.",
84
+ fixHint: "Pass the sessionId returned by createSimulatorSession.",
85
+ retryable: false,
86
+ });
87
+ }
88
+ if (typeof o.name !== "string" || !o.name.trim()) {
89
+ return errorResponse({
90
+ code: "invalid_arguments",
91
+ message: "name (string, the tool name to wait for) is required.",
92
+ fixHint: 'Pass name: "take_picture" (or whichever tool you expect the assistant to call).',
93
+ retryable: false,
94
+ });
95
+ }
96
+ const expectedName = o.name;
97
+ const argsMatch = o.argsMatch && typeof o.argsMatch === "object" && !Array.isArray(o.argsMatch)
98
+ ? o.argsMatch
99
+ : null;
100
+ let timeoutMs = typeof o.timeoutMs === "number" ? Math.round(o.timeoutMs) : DEFAULT_TIMEOUT_MS;
101
+ timeoutMs = Math.max(MIN_TIMEOUT_MS, Math.min(MAX_TIMEOUT_MS, timeoutMs));
102
+ const sessionId = o.sessionId;
103
+ const startedAt = Date.now();
104
+ const deadline = startedAt + timeoutMs;
105
+ // Cursor advances each fetch so we don't re-scan old events on every poll.
106
+ let cursor;
107
+ let lastSeenStatus;
108
+ while (Date.now() < deadline) {
109
+ const params = new URLSearchParams();
110
+ params.set("filter", "all");
111
+ params.set("limit", "200");
112
+ if (cursor)
113
+ params.set("cursor", cursor);
114
+ const res = await backendFetch(`/api/sessions/${encodeURIComponent(sessionId)}/events?${params.toString()}`);
115
+ if (res.status === 404) {
116
+ return errorResponse({
117
+ code: "session_not_found",
118
+ message: `No session found with id ${JSON.stringify(sessionId)}.`,
119
+ fixHint: "Call createSimulatorSession to start a new session.",
120
+ retryable: false,
121
+ });
122
+ }
123
+ if (!res.ok || !res.data) {
124
+ return errorResponse({
125
+ code: "backend_unreachable",
126
+ message: `Backend events endpoint failed: ${res.errorText ?? `HTTP ${res.status}`}.`,
127
+ fixHint: "Ensure the Extentos backend is reachable.",
128
+ retryable: true,
129
+ });
130
+ }
131
+ lastSeenStatus = res.data.sessionStatus;
132
+ const events = res.data.events ?? [];
133
+ for (const ev of events) {
134
+ if (ev.type !== "assistant.tool_called")
135
+ continue;
136
+ const details = ev.details ?? {};
137
+ const actualName = typeof details.name === "string" ? details.name : null;
138
+ if (actualName !== expectedName)
139
+ continue;
140
+ const actualArgs = details.args && typeof details.args === "object"
141
+ ? details.args
142
+ : {};
143
+ if (argsMatch && !argsMatchPartial(actualArgs, argsMatch))
144
+ continue;
145
+ const callId = typeof details.call_id === "string" ? details.call_id : null;
146
+ const occurredAtMs = Date.parse(ev.timestamp);
147
+ return okResponse({
148
+ sessionId,
149
+ matched: true,
150
+ name: expectedName,
151
+ args: actualArgs,
152
+ call_id: callId,
153
+ occurred_at_ms: Number.isFinite(occurredAtMs) ? occurredAtMs : null,
154
+ waitedMs: Date.now() - startedAt,
155
+ summary: `Tool ${expectedName}(${JSON.stringify(actualArgs).slice(0, 80)}) called after ${Date.now() - startedAt}ms${callId ? ` (call_id=${callId})` : ""}.`,
156
+ });
157
+ }
158
+ cursor = res.data.cursor ?? cursor ?? null;
159
+ await sleep(Math.min(POLL_MS, Math.max(0, deadline - Date.now())));
160
+ }
161
+ const argsHint = argsMatch
162
+ ? ` matching args ${JSON.stringify(argsMatch).slice(0, 80)}`
163
+ : "";
164
+ return errorResponse({
165
+ code: "tool_not_called",
166
+ message: `Timeout waiting for tool "${expectedName}"${argsHint} after ${timeoutMs}ms. Session status: ${lastSeenStatus ?? "unknown"}.`,
167
+ fixHint: "Check that (a) glasses.assistant.start { ... } is running in the app with this tool registered, (b) injectAssistantUtterance ran first and was delivered (its response shows delivered:true), and (c) the tool description's keywords overlap with the injected utterance (the Mock provider matches by word overlap). Try getEventLog(types:['assistant.user_spoke','assistant.tool_called','assistant.error']) to see what the assistant did instead.",
168
+ retryable: true,
169
+ });
170
+ }
171
+ //# sourceMappingURL=assertToolCalled.js.map