@extentos/mcp-server 0.0.94 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/tools/data/capabilities.d.ts +49 -0
  2. package/dist/tools/data/capabilities.d.ts.map +1 -1
  3. package/dist/tools/data/capabilities.js +37 -0
  4. package/dist/tools/data/capabilities.js.map +1 -1
  5. package/dist/tools/data/capabilityPatterns.d.ts.map +1 -1
  6. package/dist/tools/data/capabilityPatterns.js +499 -6
  7. package/dist/tools/data/capabilityPatterns.js.map +1 -1
  8. package/dist/tools/data/codeExamples.d.ts.map +1 -1
  9. package/dist/tools/data/codeExamples.js +916 -2
  10. package/dist/tools/data/codeExamples.js.map +1 -1
  11. package/dist/tools/data/version.d.ts +12 -0
  12. package/dist/tools/data/version.d.ts.map +1 -1
  13. package/dist/tools/data/version.js +17 -0
  14. package/dist/tools/data/version.js.map +1 -1
  15. package/dist/tools/definitions.d.ts.map +1 -1
  16. package/dist/tools/definitions.js +63 -3
  17. package/dist/tools/definitions.js.map +1 -1
  18. package/dist/tools/docs/index.d.ts.map +1 -1
  19. package/dist/tools/docs/index.js +115 -4
  20. package/dist/tools/docs/index.js.map +1 -1
  21. package/dist/tools/handlers/assertToolCalled.d.ts +3 -0
  22. package/dist/tools/handlers/assertToolCalled.d.ts.map +1 -0
  23. package/dist/tools/handlers/assertToolCalled.js +208 -0
  24. package/dist/tools/handlers/assertToolCalled.js.map +1 -0
  25. package/dist/tools/handlers/generateConnectionModule.js +21 -2
  26. package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
  27. package/dist/tools/handlers/getCredentialGuide.d.ts.map +1 -1
  28. package/dist/tools/handlers/getCredentialGuide.js +33 -6
  29. package/dist/tools/handlers/getCredentialGuide.js.map +1 -1
  30. package/dist/tools/handlers/getProductionChecklist.d.ts.map +1 -1
  31. package/dist/tools/handlers/getProductionChecklist.js +52 -1
  32. package/dist/tools/handlers/getProductionChecklist.js.map +1 -1
  33. package/dist/tools/handlers/injectAssistantUtterance.d.ts +3 -0
  34. package/dist/tools/handlers/injectAssistantUtterance.d.ts.map +1 -0
  35. package/dist/tools/handlers/injectAssistantUtterance.js +378 -0
  36. package/dist/tools/handlers/injectAssistantUtterance.js.map +1 -0
  37. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  38. package/dist/tools/handlers/validateIntegration.js +67 -0
  39. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  40. package/dist/tools/registry.d.ts.map +1 -1
  41. package/dist/tools/registry.js +4 -0
  42. package/dist/tools/registry.js.map +1 -1
  43. package/package.json +1 -1
@@ -0,0 +1,208 @@
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
+ // **Anchor at "now" BEFORE polling** (fix 2026-05-27).
106
+ //
107
+ // Without this anchor, the first poll fetched events with no cursor,
108
+ // which returned the OLDEST 200 events in the session's history. If
109
+ // any prior `assistant.tool_called` event matched the requested name
110
+ // (very common in iterative testing — yesterday's runs, last hour's
111
+ // runs, etc.), assertToolCalled returned IMMEDIATELY with a stale
112
+ // call_id + occurred_at_ms from history, and a `waitedMs` that didn't
113
+ // represent the actual response latency at all. The bug was silent —
114
+ // tests appeared to pass faster than physically possible (e.g. an
115
+ // OpenAi tool call appearing to fire in 400ms when the real round-trip
116
+ // is 1-2s).
117
+ //
118
+ // Fix: a one-time anchor fetch with limit=1 returns the latest event
119
+ // + a cursor positioned AFTER it. We start polling from that cursor,
120
+ // so we only match events that arrive while assertToolCalled is
121
+ // running. Existing callers benefit automatically — no schema change.
122
+ let cursor;
123
+ {
124
+ const anchorParams = new URLSearchParams();
125
+ anchorParams.set("filter", "all");
126
+ anchorParams.set("limit", "1");
127
+ const anchorRes = await backendFetch(`/api/sessions/${encodeURIComponent(sessionId)}/events?${anchorParams.toString()}`);
128
+ if (anchorRes.status === 404) {
129
+ return errorResponse({
130
+ code: "session_not_found",
131
+ message: `No session found with id ${JSON.stringify(sessionId)}.`,
132
+ fixHint: "Call createSimulatorSession to start a new session.",
133
+ retryable: false,
134
+ });
135
+ }
136
+ if (anchorRes.ok && anchorRes.data) {
137
+ cursor = anchorRes.data.cursor ?? undefined;
138
+ }
139
+ // If anchor fetch failed (network blip, transient backend issue),
140
+ // proceed with cursor=undefined and accept the small staleness risk
141
+ // for this run — the polling-loop error handler below will surface
142
+ // a real failure on the next iteration.
143
+ }
144
+ let lastSeenStatus;
145
+ while (Date.now() < deadline) {
146
+ const params = new URLSearchParams();
147
+ params.set("filter", "all");
148
+ params.set("limit", "200");
149
+ if (cursor)
150
+ params.set("cursor", cursor);
151
+ const res = await backendFetch(`/api/sessions/${encodeURIComponent(sessionId)}/events?${params.toString()}`);
152
+ if (res.status === 404) {
153
+ return errorResponse({
154
+ code: "session_not_found",
155
+ message: `No session found with id ${JSON.stringify(sessionId)}.`,
156
+ fixHint: "Call createSimulatorSession to start a new session.",
157
+ retryable: false,
158
+ });
159
+ }
160
+ if (!res.ok || !res.data) {
161
+ return errorResponse({
162
+ code: "backend_unreachable",
163
+ message: `Backend events endpoint failed: ${res.errorText ?? `HTTP ${res.status}`}.`,
164
+ fixHint: "Ensure the Extentos backend is reachable.",
165
+ retryable: true,
166
+ });
167
+ }
168
+ lastSeenStatus = res.data.sessionStatus;
169
+ const events = res.data.events ?? [];
170
+ for (const ev of events) {
171
+ if (ev.type !== "assistant.tool_called")
172
+ continue;
173
+ const details = ev.details ?? {};
174
+ const actualName = typeof details.name === "string" ? details.name : null;
175
+ if (actualName !== expectedName)
176
+ continue;
177
+ const actualArgs = details.args && typeof details.args === "object"
178
+ ? details.args
179
+ : {};
180
+ if (argsMatch && !argsMatchPartial(actualArgs, argsMatch))
181
+ continue;
182
+ const callId = typeof details.call_id === "string" ? details.call_id : null;
183
+ const occurredAtMs = Date.parse(ev.timestamp);
184
+ return okResponse({
185
+ sessionId,
186
+ matched: true,
187
+ name: expectedName,
188
+ args: actualArgs,
189
+ call_id: callId,
190
+ occurred_at_ms: Number.isFinite(occurredAtMs) ? occurredAtMs : null,
191
+ waitedMs: Date.now() - startedAt,
192
+ summary: `Tool ${expectedName}(${JSON.stringify(actualArgs).slice(0, 80)}) called after ${Date.now() - startedAt}ms${callId ? ` (call_id=${callId})` : ""}.`,
193
+ });
194
+ }
195
+ cursor = res.data.cursor ?? cursor ?? null;
196
+ await sleep(Math.min(POLL_MS, Math.max(0, deadline - Date.now())));
197
+ }
198
+ const argsHint = argsMatch
199
+ ? ` matching args ${JSON.stringify(argsMatch).slice(0, 80)}`
200
+ : "";
201
+ return errorResponse({
202
+ code: "tool_not_called",
203
+ message: `Timeout waiting for tool "${expectedName}"${argsHint} after ${timeoutMs}ms. Session status: ${lastSeenStatus ?? "unknown"}.`,
204
+ 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.",
205
+ retryable: true,
206
+ });
207
+ }
208
+ //# sourceMappingURL=assertToolCalled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertToolCalled.js","sourceRoot":"","sources":["../../../src/tools/handlers/assertToolCalled.ts"],"names":[],"mappings":"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"}
@@ -383,6 +383,21 @@ function buildAndroid(appPackage, libraryVersion, concise, placement, projectPat
383
383
  purpose: "Defaults to null. The library reads it via reflection at startup; when null the library falls through to pending-mode and auto-binds to whatever session createSimulatorSession provisions (no rebuild between sessions). createSimulatorSession only emits a URL-bake snippet that overwrites this value when auto-bind is impossible (cellular phone, cloud-hosted agent) — in that fallback case, replace null with the quoted URL it returns.",
384
384
  requires: "android.buildFeatures.buildConfig = true",
385
385
  },
386
+ {
387
+ // F8 (iteration-2 fix): Phase 4 assistant runtime needs BYOK OpenAI key
388
+ // wired through BuildConfig so the customer can call
389
+ // glasses.assistant.setOpenaiApiKey(BuildConfig.OPENAI_API_KEY). The key
390
+ // value lives in local.properties (NOT in tracked source) — the build
391
+ // reads it at config time and bakes the resolved value into the APK.
392
+ // See getCredentialGuide(services: ["openai"]) for the local.properties
393
+ // wiring pattern + secret-storage guidance.
394
+ type: "String",
395
+ name: "OPENAI_API_KEY",
396
+ placeholder: `""`,
397
+ appliedIn: "app/build.gradle.kts",
398
+ purpose: "BYOK OpenAI key for the Phase 4 assistant runtime (glasses.assistant.* with AssistantProvider.OpenAi). Add OPENAI_API_KEY=sk-proj-... to local.properties (gitignored). The standard pattern reads local.properties at Gradle config time + falls back to System.getenv(\"OPENAI_API_KEY\") for CI. **Do NOT have the AI agent write this value into local.properties** — the Claude Code harness echoes file modifications back into the conversation transcript, which would leak the key (see F-meta-2 in shared-context/phase-4-iteration-1-findings.md). The human should add the line themselves. Empty default is fine for sim-only dev / Mock provider testing — only required when starting an AssistantProvider.OpenAi session.",
399
+ requires: "android.buildFeatures.buildConfig = true",
400
+ },
386
401
  ];
387
402
  // F-R3-4: derive counts from the actual arrays — previously hard-coded to
388
403
  // "3 Gradle deps, 3 permissions, 1 repository" which disagreed with the
@@ -589,7 +604,9 @@ function developerInstructionsAndroid(placement, detection) {
589
604
  step3 +
590
605
  " " +
591
606
  renderStep +
592
- " Step 5: Write your handler class(es). For wake phrases, prefer `glasses.voice.onPhrase(phrase, label, stops) { handler }`registers + dispatches by case-insensitive substring on Final transcripts AND auto-cancels the handler when a `stops` phrase fires (structured concurrency). Phrases announced via `onPhrase` automatically appear on the connection page (\"Say to me\") and the simulator's right-rail click-to-fire panel. For other primitives, subscribe directly: `glasses.camera.capturePhoto()`, `glasses.audio.recordDiscrete()`, `glasses.camera.videoFrames()`, etc. `getCodeExample(pattern)` returns full compositions you can peel from; `getCapabilityGuide(feature)` covers per-primitive call shape + gotchas. " +
607
+ " Step 5: Write your handler class(es). **For voice-AI work, the canonical path is Phase 4 `glasses.assistant.start(provider) { tool(name, description) { body -> ToolResult } }`** the model owns wake/turn-taking/intent/confirmation; you write tool bodies that act on app state. See `getCodeExample(pattern: \"assistant_agent_loop\")` for the full scaffold (wake/sleep state machine, onWake greeting via session.say(), sleepAfterSilence, model-driven endOnIntent, barge-in). Wake mechanism is the developer's choice: voice phrase via `glasses.voice.onPhrase(\"hey x\") { session.wake() }` (canonical), a button tap, a hardware gesture, or any other trigger that calls `session.wake()`. For the OpenAI provider, also call `glasses.assistant.setOpenaiApiKey(BuildConfig.OPENAI_API_KEY)` once at app init see `getCredentialGuide({ services: [\"openai\"], platform: \"android\" })`. " +
608
+ " For non-AI wake-phrase-only flows (no LLM, simple voice triggers), `glasses.voice.onPhrase(phrase, label, stops) { handler }` is the direct path — same substring-matching + structured-concurrency `stops` semantics as before; phrases auto-appear on the connection page and the simulator's right-rail click-to-fire panel. For other primitives, subscribe directly: `glasses.camera.capturePhoto()`, `glasses.audio.recordDiscrete()`, `glasses.camera.videoFrames()`, etc. `getCodeExample(pattern)` returns full compositions; `getCapabilityGuide(feature)` covers per-primitive call shape + gotchas. " +
609
+ " **The Phase 3 `glasses.conversation.onWake { listen() / speak() / ai.complete() }` runtime is DEPRECATED in v1.4.0 and REMOVED in v2.0.0** — only use it for migration reference. " +
593
610
  "Step 6: Update the manifest's `capabilities` array with the SDK feature names your handler uses (e.g. [\"capture_photo\", \"voice_command\", \"speak\"]). " +
594
611
  "Step 6b: Call `getPermissions({ capabilities, platform: \"android\" })` and apply the returned `android.manifestEntries` to AndroidManifest.xml. The initial scaffold only declares BLUETOOTH_CONNECT/SCAN + INTERNET; capabilities like capture_photo / record_audio / video_frames imply additional permissions (CAMERA, RECORD_AUDIO, FOREGROUND_SERVICE, FOREGROUND_SERVICE_MICROPHONE) that this step derives. " +
595
612
  "Step 7: Call `validateIntegration` to confirm permissions / dependencies / bootstrap wiring before testing.");
@@ -605,7 +622,9 @@ function developerInstructionsIos(placement) {
605
622
  return ("Step 1: Apply files[] (the ExtentosBootstrap.swift create plus the manual_patch hint for App.swift), dependencies[], infoPlistAdditions, gitignoreAdditions, and the spmBuildPhase. Replace REPLACE_ME placeholders with Meta Developer Center values. " +
606
623
  "Step 2: Wire onOpenURL and scenePhase observers per the App.swift manual_patch. " +
607
624
  renderStep +
608
- " Step 4: Write your handler class(es). For wake phrases, prefer `glasses.voice.onPhrase(phrase: ..., label: ..., stops: [...]) { ... }` registers + dispatches by case-insensitive substring on Final transcripts AND auto-cancels the handler Task when a `stops` phrase fires (structured concurrency via withTaskGroup). Phrases announced via `onPhrase` automatically appear on the connection page (\"Say to me\") and the simulator's right-rail click-to-fire panel. For other primitives, subscribe directly: `glasses.camera.capturePhoto()`, `glasses.audio.recordDiscrete()`, `glasses.camera.videoFrames()`, etc. `getCodeExample(pattern)` returns full compositions you can peel from; `getCapabilityGuide(feature)` covers per-primitive call shape + gotchas. " +
625
+ " Step 4: Write your handler class(es). **For voice-AI work, the canonical path is Phase 4 `glasses.assistant.start(provider: ...) { tool(name:description:) { body in ToolResult } }`** the model owns wake/turn-taking/intent/confirmation; you write tool bodies. See `getCodeExample(pattern: \"assistant_agent_loop\")`. Wake mechanism is the developer's choice: voice phrase via `glasses.voice.onPhrase(\"hey x\") { try await session.wake() }` (canonical), a button tap, a gesture. For OpenAi, also call `glasses.assistant.setOpenAiApiKey(...)` once at app init see `getCredentialGuide({ services: [\"openai\"], platform: \"ios\" })`. " +
626
+ " For non-AI wake-phrase-only flows, `glasses.voice.onPhrase(phrase: ..., label: ..., stops: [...]) { ... }` is the direct path — same substring-matching + structured-concurrency `stops` (withTaskGroup); phrases auto-appear on the connection page + simulator panel. For other primitives, subscribe directly: `glasses.camera.capturePhoto()`, etc. `getCodeExample(pattern)` returns full compositions; `getCapabilityGuide(feature)` covers per-primitive call shape + gotchas. " +
627
+ " **The Phase 3 `glasses.conversation.onWake { ... }` runtime is DEPRECATED in v1.4.0 and REMOVED in v2.0.0** — only use it for migration reference. " +
609
628
  "Step 5: Update the manifest's `capabilities` array with the SDK feature names your handler uses (e.g. [\"capture_photo\", \"voice_command\", \"speak\"]). " +
610
629
  "Step 5b: Call `getPermissions({ capabilities, platform: \"ios\" })` and apply the returned `ios.plistKeys` to Info.plist. The scaffold's baseline infoPlistAdditions cover the Meta DAT + transport entries; capability-derived keys (NSCameraUsageDescription, NSMicrophoneUsageDescription, NSSpeechRecognitionUsageDescription) come from this call. " +
611
630
  "Step 5c: Call `validateIntegration` to confirm permissions / dependencies / bootstrap wiring before testing.");
@@ -1 +1 @@
1
- {"version":3,"file":"generateConnectionModule.js","sourceRoot":"","sources":["../../../src/tools/handlers/generateConnectionModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateConnectionModule.js","sourceRoot":"","sources":["../../../src/tools/handlers/generateConnectionModule.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCredentialGuide.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/getCredentialGuide.ts"],"names":[],"mappings":"AASA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgJ5E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAcjE"}
1
+ {"version":3,"file":"getCredentialGuide.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/getCredentialGuide.ts"],"names":[],"mappings":"AASA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAiJ5E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAcjE"}
@@ -39,10 +39,11 @@ const PROVIDER_GUIDES = {
39
39
  steps: [
40
40
  "Sign in at platform.openai.com and add billing.",
41
41
  "Navigate to API Keys → Create new secret key.",
42
- "Set the desired model scopes for the key.",
43
- "Store as OPENAI_API_KEY in your secrets store (never commit to git).",
44
- "**Phase 3 conversation runtime wiring** — if the app uses `glasses.conversation` / `glasses.ai`, call `glasses.ai?.setOpenaiApiKey(BuildConfig.OPENAI_API_KEY)` (Android) or `glasses.ai?.setOpenAiApiKey(Secrets.openAiKey)` (iOS) once at app init, AFTER `ExtentosGlasses.create(...)` returns. The key flows DIRECT to api.openai.com (no Extentos proxy — synthesis §6 / §8 BYOK contract); never logged, never persisted. See `getCapabilityGuide(feature: \"conversation_ai_complete\")` for the call shape + AiException error variants.",
45
- "**Legacy customer-side wiring** (apps using BYOK_ANTHROPIC-style hand-rolled HTTP clients) — paste the key into your client constructor; the `glasses.ai` wiring above only applies to Phase 3 apps.",
42
+ "Set the desired model scopes for the key (Realtime API + standard chat completions both fine).",
43
+ "Store as OPENAI_API_KEY in your secrets store (never commit to git). **F-meta-2 IMPORTANT:** do NOT have your AI coding agent write this value into `local.properties` — the Claude Code harness echoes file modifications back into the conversation transcript, which leaks the key. Add the line yourself in your editor (or export the env var); use the standard local.properties → BuildConfig wiring below to surface it at runtime.",
44
+ "**Phase 4 assistant runtime wiring (canonical)** — for apps using `glasses.assistant.start { ... }` (the Phase 4 voice-AI runtime that owns wake/turn-taking/intent), call `glasses.assistant.setOpenaiApiKey(BuildConfig.OPENAI_API_KEY)` (Android) or `glasses.assistant.setOpenAiApiKey(Secrets.openAiKey)` (iOS) once at app init, AFTER `ExtentosGlasses.create(...)` returns. The key flows DIRECT from device → wss://api.openai.com/v1/realtime via the WS Authorization header (no Extentos proxy — BYOK contract). Never logged, never persisted by the library. See `getCapabilityGuide(feature: \"assistant_runtime\")` for the full lifecycle.",
45
+ "**Phase 3 conversation runtime wiring (DEPRECATED in v1.4.0; REMOVED in v2.0.0)**only for legacy apps still on `glasses.conversation` / `glasses.ai`: `glasses.ai?.setOpenaiApiKey(BuildConfig.OPENAI_API_KEY)`. Same BYOK contract. Migrate to the Phase 4 wiring above for any new code.",
46
+ "**Legacy customer-side wiring** (apps using BYOK_ANTHROPIC-style hand-rolled HTTP clients) — paste the key into your client constructor; the `glasses.assistant` / `glasses.ai` wiring above only applies to apps using the respective runtime.",
46
47
  ],
47
48
  docsUrl: "https://platform.openai.com/docs/quickstart",
48
49
  },
@@ -159,7 +160,26 @@ function buildMetaCredentials(platform) {
159
160
  keys: ["MWDAT.MetaAppID", "MWDAT.ClientToken", "MWDAT.TeamID", "MWDAT.AppLinkURLScheme"],
160
161
  example: `<key>MWDAT</key>\n<dict>\n <key>MetaAppID</key><string><your Meta App ID></string>\n <key>ClientToken</key><string><your Client Token></string>\n <key>TeamID</key><string>NKSJ4DJ375</string>\n <key>AppLinkURLScheme</key><string>yourapp://</string>\n</dict>`,
161
162
  };
162
- return { required: true, steps, configChange };
163
+ // F7 (iteration-2): `required: true` was misleading. Sim-mode dev on an
164
+ // Android emulator works WITHOUT real Meta DAT credentials — the
165
+ // simulator handles all the transport without going through real glasses.
166
+ // Customer-agents in iteration-1-style testing would bounce off Meta's
167
+ // developer-portal friction if they tried to follow these steps before
168
+ // they had hardware.
169
+ //
170
+ // - required: kept true for backwards compatibility (existing tooling
171
+ // reads this field)
172
+ // - requiredScope: new field — "real_hardware_only" means sim-mode works
173
+ // without these credentials; only follow the steps when you're ready
174
+ // to flash a build onto actual Ray-Bans
175
+ // - scopeNote: human-readable banner; surface in tool output
176
+ return {
177
+ required: true,
178
+ requiredScope: "real_hardware_only",
179
+ scopeNote: "Meta DAT credentials are only needed for builds running on actual Ray-Ban Meta hardware. Sim-mode development (Android emulator / iOS simulator + the Extentos browser sim) works WITHOUT them — the simulator handles all transport. Skip these steps until you're ready for the hardware-validation milestone. For sim-only dev, you only need the BYOK API key for your AI provider (see serviceCredentials below).",
180
+ steps,
181
+ configChange,
182
+ };
163
183
  }
164
184
  function buildServiceGuide(service, handlers, platform, singletonLink) {
165
185
  // F-DOGFOOD-F45 (2026-05-12): when exactly ONE handler is provided AND
@@ -307,7 +327,14 @@ function guessServiceForHandler(name) {
307
327
  function buildSummary(platform, meta, services) {
308
328
  const svcCount = services.length;
309
329
  const withHandlers = services.filter((s) => s.forHandlers.length > 0).length;
310
- return `Credential guide for ${platform}: Meta DAT ${meta.required ? "required" : "not required"} (${meta.steps.length} steps). ${svcCount} BYOK service${svcCount === 1 ? "" : "s"}${withHandlers ? ` (${withHandlers} handler-linked)` : ""}. Keys are stored in platform-local secure storage — the Extentos library never proxies or relays them. See keyStorage for storage best practices (${platform === "android" ? "local.properties for dev, env vars for CI" : "xcconfig with env-var injection"}).`;
330
+ // F7: convey scope so agents don't lead the dev through Meta DAT registration
331
+ // before they need it.
332
+ const metaScope = meta.requiredScope === "real_hardware_only"
333
+ ? "required for real-hardware builds only (sim-mode works without)"
334
+ : meta.required
335
+ ? "required"
336
+ : "not required";
337
+ return `Credential guide for ${platform}: Meta DAT ${metaScope} (${meta.steps.length} steps). ${svcCount} BYOK service${svcCount === 1 ? "" : "s"}${withHandlers ? ` (${withHandlers} handler-linked)` : ""}. Keys are stored in platform-local secure storage — the Extentos library never proxies or relays them. See keyStorage for storage best practices (${platform === "android" ? "local.properties for dev, env vars for CI" : "xcconfig with env-var injection"}). **F-meta-2 warning:** do NOT have your AI coding agent write API key values into local.properties / xcconfig / Info.plist — agent-driven file edits leak through the conversation transcript via the Claude Code harness's file-modification echo. Add secret values by hand in your editor.`;
311
338
  }
312
339
  function buildKeyStorageGuidance(platform) {
313
340
  if (platform === "android") {
@@ -1 +1 @@
1
- {"version":3,"file":"getCredentialGuide.js","sourceRoot":"","sources":["../../../src/tools/handlers/getCredentialGuide.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,+BAA+B;AAC/B,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,iEAAiE;AACjE,mEAAmE;AACnE,oCAAoC;AAEpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAmB,MAAM,gBAAgB,CAAC;AAe5E,MAAM,cAAc,GAAc;IAChC,WAAW;IACX,QAAQ;IACR,qBAAqB;IACrB,kBAAkB;IAClB,eAAe;IACf,OAAO;IACP,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,QAAQ;CACT,CAAC;AAUF,MAAM,eAAe,GAAsD;IACzE,SAAS,EAAE;QACT,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,6CAA6C;QACxD,OAAO,EAAE,mBAAmB;QAC5B,KAAK,EAAE;YACL,8DAA8D;YAC9D,+CAA+C;YAC/C,sCAAsC;YACtC,yEAAyE;SAC1E;QACD,OAAO,EAAE,mDAAmD;KAC7D;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,sCAAsC;QACjD,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE;YACL,iDAAiD;YACjD,+CAA+C;YAC/C,2CAA2C;YAC3C,sEAAsE;YACtE,khBAAkhB;YAClhB,sMAAsM;SACvM;QACD,OAAO,EAAE,6CAA6C;KACvD;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,qBAAqB;QAC5B,SAAS,EAAE,qEAAqE;QAChF,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE;YACL,mDAAmD;YACnD,8BAA8B;YAC9B,mFAAmF;YACnF,qCAAqC;SACtC;QACD,OAAO,EAAE,4CAA4C;KACtD;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,0BAA0B;QACjC,SAAS,EAAE,wEAAwE;QACnF,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE;YACL,mDAAmD;YACnD,mCAAmC;YACnC,sDAAsD;SACvD;QACD,OAAO,EAAE,+CAA+C;KACzD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,wCAAwC;QACnD,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE;YACL,iCAAiC;YACjC,kEAAkE;YAClE,0BAA0B;SAC3B;QACD,OAAO,EAAE,+CAA+C;KACzD;IACD,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,+BAA+B;QAC1C,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE;YACL,oCAAoC;YACpC,mDAAmD;YACnD,0BAA0B;SAC3B;QACD,OAAO,EAAE,mCAAmC;KAC7C;IACD,eAAe,EAAE;QACf,KAAK,EAAE,0BAA0B;QACjC,SAAS,EAAE,sEAAsE;QACjF,OAAO,EAAE,qBAAqB;QAC9B,KAAK,EAAE;YACL,2DAA2D;YAC3D,+CAA+C;YAC/C,0DAA0D;SAC3D;QACD,OAAO,EAAE,sDAAsD;KAChE;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,yCAAyC;QACpD,OAAO,EAAE,2CAA2C;QACpD,KAAK,EAAE;YACL,mDAAmD;YACnD,yDAAyD;YACzD,oCAAoC;YACpC,kEAAkE;SACnE;QACD,OAAO,EAAE,2EAA2E;KACrF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,wCAAwC;QACnD,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE;YACL,4BAA4B;YAC5B,iEAAiE;YACjE,oBAAoB;SACrB;QACD,OAAO,EAAE,oDAAoD;KAC9D;CACF,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEhD,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAC1D,CAAC;IACF,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAErD,OAAO,UAAU,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkB;IAK9C,MAAM,KAAK,GAAG;QACZ,yFAAyF;QACzF,2EAA2E;QAC3E,iBAAiB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,yBAAyB,6BAA6B;QAChJ,oEAAoE;QACpE,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,mGAAmG;YACrG,CAAC,CAAC,qGAAqG;KAC1G,CAAC;IACF,MAAM,YAAY,GAChB,QAAQ,KAAK,SAAS;QACpB,CAAC,CAAC;YACE,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;YAC9D,OAAO,EAAE,qHAAqH;SAC/H;QACH,CAAC,CAAC;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,wBAAwB,CAAC;YACxF,OAAO,EAAE,sQAAsQ;SAChR,CAAC;IACR,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,QAAkB,EAClB,QAAkB,EAClB,aAAsB;IAOtB,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,mEAAmE;IACnE,+DAA+D;IAC/D,mCAAmC;IACnC,MAAM,WAAW,GAAG,aAAa;QAC/B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO;YACL,OAAO;YACP,WAAW;YACX,KAAK,EAAE;gBACL,oEAAoE;gBACpE,8GAA8G;gBAC9G,4EAA4E;aAC7E;YACD,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC;SAC3D,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO;QACL,OAAO;QACP,WAAW;QACX,KAAK,EAAE;YACL,WAAW,KAAK,CAAC,SAAS,EAAE;YAC5B,GAAG,KAAK,CAAC,KAAK;YACd,SAAS,KAAK,CAAC,OAAO,EAAE;SACzB;QACD,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB,EAAE,OAAe,EAAE,OAAgB;IACvE,mEAAmE;IACnE,kEAAkE;IAClE,2DAA2D;IAC3D,6DAA6D;IAC7D,6DAA6D;IAC7D,4DAA4D;IAC5D,MAAM,kBAAkB,GAAqC;QAC3D,SAAS,EAAE,gBAAgB;KAC5B,CAAC;IACF,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,wEAAwE;QACxE,wEAAwE;QACxE,kEAAkE;QAClE,sEAAsE;QACtE,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,MAAM,GACV,yCAAyC;YACzC,iCAAiC;YACjC,aAAa;YACb,uBAAuB;YACvB,+EAA+E;YAC/E,qEAAqE;YACrE,iDAAiD;YACjD,4DAA4D;YAC5D,gEAAgE;YAChE,aAAa;YACb,eAAe,YAAY,CAAC,OAAO,CAAC,MAAM;YAC1C,uCAAuC,OAAO,MAAM;YACpD,qCAAqC,OAAO,MAAM;YAClD,yBAAyB;YACzB,qBAAqB;YACrB,yBAAyB;YACzB,gBAAgB,QAAQ,MAAM;YAC9B,eAAe,YAAY,CAAC,OAAO,CAAC,+BAA+B;YACnE,aAAa;YACb,SAAS;YACT,OAAO;YACP,qFAAqF;YACrF,MAAM,OAAO,uCAAuC,CAAC;QACvD,MAAM,iBAAiB,GAAG,aAAa;YACrC,CAAC,CAAC,sDAAsD,aAAa,kBAAkB;gBACrF,uFAAuF;gBACvF,kCAAkC;gBAClC,wCAAwC,QAAQ,KAAK;gBACrD,8CAA8C;gBAC9C,8BAA8B;gBAC9B,+DAA+D;YACjE,CAAC,CAAC,wFAAwF;gBACxF,oEAAoE;gBACpE,wCAAwC,QAAQ,KAAK;gBACrD,mEAAmE;gBACnE,iCAAiC,CAAC;QACtC,OAAO,CACL,MAAM;YACN,iBAAiB;YACjB,8EAA8E;YAC9E,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GACT,iBAAiB;QACjB,QAAQ,OAAO,qBAAqB,OAAO,8DAA8D,CAAC;IAC5G,MAAM,iBAAiB,GAAG,aAAa;QACrC,CAAC,CAAC,sDAAsD,aAAa,kBAAkB;YACrF,sFAAsF;YACtF,6BAA6B;YAC7B,uDAAuD,OAAO,uBAAuB;YACrF,6CAA6C;YAC7C,kDAAkD;YAClD,gGAAgG;QAClG,CAAC,CAAC,6EAA6E;YAC7E,uDAAuD,OAAO,uBAAuB;YACrF,kEAAkE;YAClE,2CAA2C,CAAC;IAChD,OAAO,KAAK,GAAG,iBAAiB,CAAC;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAC/D,IAAI,mDAAmD,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC;IACpF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,eAAe,CAAC;IAC7C,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CACnB,QAAkB,EAClB,IAA4C,EAC5C,QAA4D;IAE5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7E,OAAO,wBAAwB,QAAQ,cAAc,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,YAAY,QAAQ,gBAAgB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,EAAE,sJAAsJ,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,iCAAiC,IAAI,CAAC;AAClf,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB;IAMjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,aAAa,EACX,wyBAAwyB;YAC1yB,YAAY,EACV,+hBAA+hB;YACjiB,OAAO,EAAE;gBACP,qFAAqF;gBACrF,0JAA0J;gBAC1J,yIAAyI;gBACzI,wIAAwI;gBACxI,sEAAsE;aACvE;YACD,KAAK,EAAE;gBACL,oSAAoS;gBACpS,iTAAiT;aAClT;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,aAAa,EACX,6cAA6c;QAC/c,YAAY,EACV,mNAAmN;QACrN,OAAO,EAAE;YACP,iEAAiE;YACjE,4GAA4G;YAC5G,sEAAsE;SACvE;QACD,KAAK,EAAE;YACL,kOAAkO;SACnO;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,GAAY;IAIZ,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,UAAU,CACf,qDAAqD,EACrD,uFAAuF,CACxF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACzD,OAAO,UAAU,CACf,4CAA4C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAC5E,oCAAoC,CACrC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,UAAU,CACf,gEAAgE,EAChE,6CAA6C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAqB,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAY,CAAC,EAAE,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,CAAY,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,CACf,mCAAmC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EACvD,mBAAmB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAE,GAAG,CAAC,QAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAC/E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,OAAe;IAClD,OAAO;QACL,KAAK,EAAE,aAAa,CAAC;YACnB,IAAI,EAAE,mBAAmB;YACzB,OAAO;YACP,OAAO;YACP,SAAS,EAAE,KAAK;SACjB,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getCredentialGuide.js","sourceRoot":"","sources":["../../../src/tools/handlers/getCredentialGuide.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getProductionChecklist.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/getProductionChecklist.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgE5E,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAyNrE"}
1
+ {"version":3,"file":"getProductionChecklist.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/getProductionChecklist.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmF5E,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CA8PrE"}
@@ -38,6 +38,14 @@ const HARDWARE_VERIFY_CAPS = new Set([
38
38
  "conversation_listen",
39
39
  "conversation_speak",
40
40
  "conversation_ai_complete",
41
+ // Phase 4 assistant runtime — same reasoning. The assistant.start
42
+ // path exercises the BT HFP mic-input + speaker-output, the WebSocket
43
+ // to the AI provider, and tool dispatch under real-world conditions.
44
+ // Synthesis #3 makes real-hw validation a v2.0.0 gate.
45
+ "assistant_runtime",
46
+ "assistant_start",
47
+ "assistant_tool",
48
+ "assistant_provider_openai",
41
49
  ]);
42
50
  // Phase 3 conversation runtime capabilities — when ANY of these are
43
51
  // declared, a dedicated Conversation Runtime Setup step fires (manifest
@@ -49,6 +57,16 @@ const CONVERSATION_RUNTIME_CAPS = new Set([
49
57
  "conversation_speak",
50
58
  "conversation_ai_complete",
51
59
  ]);
60
+ // Phase 4 assistant runtime capabilities — when ANY of these are
61
+ // declared, a dedicated Assistant Runtime Setup step fires (BYOK key
62
+ // + tool description hygiene + Mock-provider test pass + real-hw
63
+ // validation per synthesis #3 v2.0.0 gate).
64
+ const ASSISTANT_RUNTIME_CAPS = new Set([
65
+ "assistant_runtime",
66
+ "assistant_start",
67
+ "assistant_tool",
68
+ "assistant_provider_openai",
69
+ ]);
52
70
  export function handleGetProductionChecklist(raw) {
53
71
  const parsed = parseArgs(raw);
54
72
  if ("error" in parsed)
@@ -63,6 +81,7 @@ export function handleGetProductionChecklist(raw) {
63
81
  const ios = deriveIosFromCapabilities(capabilities);
64
82
  const metaDat = deriveMetaDatFromCapabilities(capabilities);
65
83
  const usesConversationRuntime = [...capsSet].some((c) => CONVERSATION_RUNTIME_CAPS.has(c));
84
+ const usesAssistantRuntime = [...capsSet].some((c) => ASSISTANT_RUNTIME_CAPS.has(c));
66
85
  const steps = [];
67
86
  // 1. Meta Developer Account
68
87
  steps.push({
@@ -105,8 +124,11 @@ export function handleGetProductionChecklist(raw) {
105
124
  description: `Wire BYOK API keys for ${handlers.length} handler${handlers.length === 1 ? "" : "s"}.`,
106
125
  status: "needed",
107
126
  details: "Each declared handler is expected to call a third-party AI / vision / translation service. Production builds must not ship with placeholder or in-simulator proxy credentials." +
127
+ (usesAssistantRuntime
128
+ ? " **Phase 4 assistant runtime apps** need the OpenAI BYOK key wired via `glasses.assistant.setOpenaiApiKey(key)` at app init for `glasses.assistant.start(provider = AssistantProvider.OpenAi(...))` to work — see getCredentialGuide(service: \"openai\"). Key flows direct device → openai.com via the WebSocket Authorization header; Extentos backend never sees it."
129
+ : "") +
108
130
  (usesConversationRuntime
109
- ? " **Phase 3 conversation runtime apps** need the OpenAI BYOK key wired via `glasses.ai.setOpenaiApiKey(key)` at app init for `glasses.ai.complete(prompt)` to work — see getCredentialGuide(service: \"openai\")."
131
+ ? " **Phase 3 conversation runtime apps** need the OpenAI BYOK key wired via `glasses.ai.setOpenaiApiKey(key)` at app init for `glasses.ai.complete(prompt)` to work — see getCredentialGuide(service: \"openai\"). NOTE: this API is DEPRECATED in v1.4.0 and REMOVED in v2.0.0 — migrate to `glasses.assistant.setOpenaiApiKey(key)` per docs/migration/phase-3-to-phase-4.md."
110
132
  : ""),
111
133
  fix: "Call getCredentialGuide with the BYOK services to get per-provider setup steps, then wire secrets via platform-local secure storage (Android resValue/keystore, iOS Keychain/xcconfig).",
112
134
  affectedHandlers: handlers,
@@ -134,6 +156,29 @@ export function handleGetProductionChecklist(raw) {
134
156
  : { file: "extentos.manifest.json", hint: "conversation.stt.provider, conversation.tts.{provider, voice}, conversation.model" },
135
157
  });
136
158
  }
159
+ // 4c. Phase 4 Assistant Runtime Setup — only if the app declared any
160
+ // assistant_* capability. Four pre-ship gates that the simulator
161
+ // setup doesn't enforce:
162
+ // (a) OpenAI BYOK key wired (covered by step 4, cross-linked).
163
+ // (b) Tool descriptions are written for the AI (not the engineer)
164
+ // — quality matters; the model picks tools from descriptions.
165
+ // (c) Mock provider tests pass via injectAssistantUtterance +
166
+ // assertToolCalled (the agent-driven E2E loop).
167
+ // (d) Real-hardware validation done before declaring production-
168
+ // ready (synthesis #3 — v2.0.0 gate).
169
+ if (usesAssistantRuntime) {
170
+ steps.push({
171
+ category: "Phase 4 Assistant Runtime Setup",
172
+ description: "Validate `glasses.assistant` runtime setup — BYOK key, tool description quality, Mock-provider tests, real-hardware smoke.",
173
+ status: "needed",
174
+ details: "The Phase 4 assistant runtime (`glasses.assistant.start(provider) { tool(name, description) { body } }`) needs four things the simulator setup doesn't enforce: (1) `glasses.assistant.setOpenaiApiKey(BYOK)` wired at app init (cross-link to step 4); (2) tool descriptions written for the AI — be specific about WHEN to call (\"Take a photo when the user asks to capture a moment\") not WHAT the tool does internally (\"Captures imagery via the camera SDK\"); the model picks from these descriptions alone; (3) each tool exercised end-to-end via the agent-test loop (`injectAssistantUtterance` + `assertToolCalled`) — Mock provider for deterministic CI, OpenAi provider for end-to-end smoke; (4) real-hardware validation on actual Ray-Bans before declaring production-ready (synthesis #3 — gates v2.0.0 ship). PII note: Phase 4 events DO carry verbatim transcripts in `assistant.user_spoke` / `assistant.assistant_spoke` (different from Phase 3 which stripped text) because BYOK flows direct device → openai.com without touching Extentos backend — customer apps own their privacy disclosure for assistant telemetry.",
175
+ fix: "1) At app init: `glasses.assistant.setOpenaiApiKey(BuildConfig.OPENAI_API_KEY)` (Android) or `glasses.assistant.setOpenAiApiKey(Secrets.openAiKey)` (iOS). 2) Review each tool() call's description — make it answer \"when should the AI call this?\" verbatim. 3) For each tool, write an agent test: `createSimulatorSession` → `injectAssistantUtterance({ text: 'expected user utterance' })` → `assertToolCalled({ name: 'expected_tool_name', timeoutMs: 5000 })`. 4) Before customer ship, run the full handler on real Ray-Bans + a phone. Walk through 5-10 voice interactions, watching for the three sim-fidelity buckets (audio character, hardware timing, hardware failure modes — see searchDocs(topic: 'simulator_fidelity')). Full setup snippet: getCodeExample(pattern: \"assistant_agent_loop\").",
176
+ codeChange: {
177
+ file: platform === "android" ? "Application.onCreate / ExtentosBootstrap.kt" : "App.init / ExtentosBootstrap.swift",
178
+ hint: "glasses.assistant.setOpenaiApiKey(...) + glasses.assistant.start(provider) { tool(...) }",
179
+ },
180
+ });
181
+ }
137
182
  // 5. Permissions Audit — always
138
183
  const permCount = platform === "android" ? android.permissions.length : ios.plistKeys.length;
139
184
  steps.push({
@@ -194,10 +239,16 @@ export function handleGetProductionChecklist(raw) {
194
239
  status: "needed",
195
240
  details: `App uses: ${hardwareVerifyCaps.join(", ")}. ` +
196
241
  "Behavior under real SCO routing, real recognizer engines (SpeechRecognizer / SFSpeechRecognizer), thermal limits, and BT route changes can only be verified on hardware. During the test, watch getEventLog(filter: \"voice\") to confirm transcripts come through, no transport.error events surface, and the relevant operations complete cleanly." +
242
+ (usesAssistantRuntime
243
+ ? " **Phase 4 assistant runtime apps**: synthesis #3 makes this gate load-bearing for v2.0.0 — at least one architecture must be dogfooded on real Ray-Bans with audio audible before the v2.0.0 cascaded-deletion ships. Watch for the three sim-fidelity buckets: (A) audio character — does the model still pick tools reliably with the noisier HFP capture vs the sim's wide-band mic?; (B) hardware timing — first-utterance HFP profile switch (~200-500 ms), A2DP↔HFP music collision; (C) hardware failure modes — BT range loss, incoming-call interruption, battery drain (~30 min HFP ceiling), thermal throttling. Confirm the assistant.* event sequence in getEventLog matches the sim test (assistant.session_started → user_spoke → tool_called → tool_result → assistant_spoke). See searchDocs(topic: \"simulator_fidelity\") for the contract."
244
+ : "") +
197
245
  (usesConversationRuntime
198
246
  ? " **Phase 3 conversation runtime apps**: also confirm the symmetric A10 lifecycle event pairs (`conversation.handler_started`/`handler_finished`, `conversation.turn_started`/`turn_ended`) land in the log per handler invocation, and that `conversation.error` doesn't surface (network/STT/TTS/LLM failures all show up there). The simulator sim's right-rail ConversationPanel is the visual equivalent — green active-handler card + listening pulse → expected; red error rows → investigate."
199
247
  : ""),
200
248
  fix: "Pair Ray-Ban Meta to your phone, install your app, and exercise: (1) each voice path you handle; (2) record_audio / capture_video at the max duration you configure; (3) BT route change mid-recording (connect/disconnect AirPods). Verify the event log shows transcripts, no transport.error[stt_*] events, and operations complete successfully." +
249
+ (usesAssistantRuntime
250
+ ? " For assistant runtime: walk 5-10 voice interactions covering every tool you registered + the take/stop pair semantics (if any). Verify (1) assistant.session_started fires on app start; (2) each tool call surfaces assistant.tool_called → assistant.tool_result with reasonable duration_ms; (3) the assistant.reconnected event fires after ~50 min — confirms the library-owned reconnection state machine works under real network conditions; (4) on BT disconnect/range loss, assistant.session_ended(error) fires + app handles re-bind on reconnect."
251
+ : "") +
201
252
  (usesConversationRuntime
202
253
  ? " For conversation runtime: walk a full wake → listen → ai.complete → speak loop end-to-end, then verify (1) the handler / turn event pairs are symmetric in getEventLog, (2) BYOK key isn't rejected (no `conversation.error{kind: stt_unauthorized}` or AiException.Unauthorized), (3) Smart Turn EOU fires at natural utterance boundaries (not stuck on the 600 ms silence fallback for every turn — that signals VAD trouble)."
203
254
  : ""),