@extentos/mcp-server 0.0.79 → 0.0.81
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.
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +47 -17
- package/dist/cli/setup.js.map +1 -1
- package/dist/tools/data/capabilities.d.ts +30 -11
- package/dist/tools/data/capabilities.d.ts.map +1 -1
- package/dist/tools/data/capabilities.js +31 -12
- package/dist/tools/data/capabilities.js.map +1 -1
- package/dist/tools/data/capabilityPatterns.d.ts.map +1 -1
- package/dist/tools/data/capabilityPatterns.js +137 -0
- package/dist/tools/data/capabilityPatterns.js.map +1 -1
- package/dist/tools/data/codeExamples.d.ts.map +1 -1
- package/dist/tools/data/codeExamples.js +268 -12
- package/dist/tools/data/codeExamples.js.map +1 -1
- package/dist/tools/data/version.js +7 -7
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +48 -14
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/docs/index.d.ts +12 -0
- package/dist/tools/docs/index.d.ts.map +1 -1
- package/dist/tools/docs/index.js +127 -1
- package/dist/tools/docs/index.js.map +1 -1
- package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -1
- package/dist/tools/handlers/createSimulatorSession.js +24 -3
- package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
- package/dist/tools/handlers/getPlatformInfo.d.ts.map +1 -1
- package/dist/tools/handlers/getPlatformInfo.js +8 -8
- package/dist/tools/handlers/getPlatformInfo.js.map +1 -1
- package/dist/tools/handlers/getSimulatorStatus.d.ts.map +1 -1
- package/dist/tools/handlers/getSimulatorStatus.js +37 -2
- package/dist/tools/handlers/getSimulatorStatus.js.map +1 -1
- package/dist/tools/handlers/injectTranscript.d.ts +3 -0
- package/dist/tools/handlers/injectTranscript.d.ts.map +1 -0
- package/dist/tools/handlers/injectTranscript.js +89 -0
- package/dist/tools/handlers/injectTranscript.js.map +1 -0
- package/dist/tools/handlers/searchDocs.d.ts.map +1 -1
- package/dist/tools/handlers/searchDocs.js +36 -11
- package/dist/tools/handlers/searchDocs.js.map +1 -1
- package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
- package/dist/tools/handlers/validateIntegration.js +74 -15
- package/dist/tools/handlers/validateIntegration.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +2 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/util/permissions.d.ts.map +1 -1
- package/dist/tools/util/permissions.js +70 -30
- package/dist/tools/util/permissions.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// injectTranscript — F-R4-13.
|
|
2
|
+
//
|
|
3
|
+
// Drive a wake-phrase or partial-transcript into a live simulator session
|
|
4
|
+
// without a human clicking chips in the browser tab. Mirrors the
|
|
5
|
+
// simulator UI's click-to-fire mechanism — the frame travels through the
|
|
6
|
+
// same hub path, so handler dispatch + event-log entries are identical
|
|
7
|
+
// to a real STT result.
|
|
8
|
+
//
|
|
9
|
+
// USE for agent-driven end-to-end tests of wake-phrase / fallback flows
|
|
10
|
+
// (e.g. createSimulatorSession → injectTranscript("start recording") →
|
|
11
|
+
// getEventLog to verify the handler fired). DON'T USE for static
|
|
12
|
+
// validation (use validateIntegration) or capability discovery.
|
|
13
|
+
import { okResponse, errorResponse } from "../response.js";
|
|
14
|
+
import { backendFetch } from "../util/backendClient.js";
|
|
15
|
+
export async function handleInjectTranscript(raw) {
|
|
16
|
+
if (!raw || typeof raw !== "object") {
|
|
17
|
+
return errorResponse({
|
|
18
|
+
code: "invalid_arguments",
|
|
19
|
+
message: "injectTranscript requires { sessionId, text }.",
|
|
20
|
+
fixHint: 'Pass { sessionId: "sim_...", text: "start recording" }. Optional: isFinal (boolean, default true), confidence (0-1, default 0.99), partial (boolean — when true, type defaults to "stt_partial").',
|
|
21
|
+
retryable: false,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const o = raw;
|
|
25
|
+
if (typeof o.sessionId !== "string" || !o.sessionId.trim()) {
|
|
26
|
+
return errorResponse({
|
|
27
|
+
code: "invalid_arguments",
|
|
28
|
+
message: "sessionId (string) is required.",
|
|
29
|
+
fixHint: "Pass the sessionId returned by createSimulatorSession.",
|
|
30
|
+
retryable: false,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (typeof o.text !== "string" || o.text.length === 0) {
|
|
34
|
+
return errorResponse({
|
|
35
|
+
code: "invalid_arguments",
|
|
36
|
+
message: "text (non-empty string) is required.",
|
|
37
|
+
fixHint: 'Pass text: "start recording" (or any wake-phrase / utterance).',
|
|
38
|
+
retryable: false,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const partial = o.partial === true;
|
|
42
|
+
const frameType = partial ? "stt_partial" : "stt_transcript";
|
|
43
|
+
const isFinal = typeof o.isFinal === "boolean" ? o.isFinal : !partial;
|
|
44
|
+
const confidence = typeof o.confidence === "number" ? o.confidence : 0.99;
|
|
45
|
+
const payload = {
|
|
46
|
+
type: frameType,
|
|
47
|
+
text: o.text,
|
|
48
|
+
isFinal,
|
|
49
|
+
confidence,
|
|
50
|
+
source: "manual_trigger",
|
|
51
|
+
};
|
|
52
|
+
const res = await backendFetch(`/api/sessions/${encodeURIComponent(o.sessionId)}/inject`, {
|
|
53
|
+
method: "POST",
|
|
54
|
+
body: payload,
|
|
55
|
+
});
|
|
56
|
+
if (res.status === 404) {
|
|
57
|
+
return errorResponse({
|
|
58
|
+
code: "session_not_found",
|
|
59
|
+
message: `No session found with id ${JSON.stringify(o.sessionId)}.`,
|
|
60
|
+
fixHint: "Call createSimulatorSession to start a new session.",
|
|
61
|
+
retryable: false,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (res.status === 409) {
|
|
65
|
+
const body = res.data;
|
|
66
|
+
return errorResponse({
|
|
67
|
+
code: "app_not_attached",
|
|
68
|
+
message: body?.message ??
|
|
69
|
+
"Inject not delivered: the session exists but no app role is currently attached.",
|
|
70
|
+
fixHint: "Start your app (build + run on the emulator/device) so the WebSocket attaches, then retry. Confirm with getSimulatorStatus — connectedRoles.app should be present.",
|
|
71
|
+
retryable: true,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (!res.ok || !res.data || res.data.delivered !== true) {
|
|
75
|
+
return errorResponse({
|
|
76
|
+
code: "backend_unreachable",
|
|
77
|
+
message: `Backend /api/sessions/${o.sessionId}/inject failed: ${res.errorText ?? `HTTP ${res.status}`}.`,
|
|
78
|
+
fixHint: "Ensure the Extentos backend is reachable.",
|
|
79
|
+
retryable: true,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return okResponse({
|
|
83
|
+
sessionId: o.sessionId,
|
|
84
|
+
delivered: true,
|
|
85
|
+
frame: res.data.frame ?? payload,
|
|
86
|
+
summary: `Injected ${frameType} "${o.text.slice(0, 60)}${o.text.length > 60 ? "…" : ""}" into ${o.sessionId}. Follow up with getEventLog(sessionId, filter: "voice") to verify your handler matched + dispatched.`,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=injectTranscript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectTranscript.js","sourceRoot":"","sources":["../../../src/tools/handlers/injectTranscript.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchDocs.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/searchDocs.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"searchDocs.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/searchDocs.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CA2EzD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// searchDocs — deterministic keyword retrieval against the bundled doc index.
|
|
2
2
|
// Spec: docs/mcp/MCP_TOOLS.md § searchDocs
|
|
3
3
|
import { okResponse, errorResponse } from "../response.js";
|
|
4
|
-
import { DOC_INDEX, searchDocsIndex } from "../docs/index.js";
|
|
4
|
+
import { DOC_INDEX, extractSnippets, searchDocsIndex } from "../docs/index.js";
|
|
5
5
|
export function handleSearchDocs(raw) {
|
|
6
6
|
if (!raw || typeof raw !== "object") {
|
|
7
7
|
return errorResponse({
|
|
@@ -14,6 +14,14 @@ export function handleSearchDocs(raw) {
|
|
|
14
14
|
const obj = raw;
|
|
15
15
|
const queryStr = typeof obj.query === "string" ? obj.query.trim() : "";
|
|
16
16
|
const topicFilter = typeof obj.topic === "string" && obj.topic ? obj.topic : undefined;
|
|
17
|
+
// F-R4-10: snippet mode returns the matching paragraphs from each
|
|
18
|
+
// topic instead of the full topic body. Default is "full" for
|
|
19
|
+
// back-compat. Customers running cross-topic keyword searches benefit
|
|
20
|
+
// most — a single query used to dump ~13KB of library_api topic plus
|
|
21
|
+
// another ~6KB toggles topic; in snippet mode, only the paragraphs
|
|
22
|
+
// containing the keyword(s) come back.
|
|
23
|
+
const rawMode = typeof obj.mode === "string" ? obj.mode.toLowerCase() : "";
|
|
24
|
+
const mode = rawMode === "snippets" || rawMode === "snippet" ? "snippets" : "full";
|
|
17
25
|
// At least one of query or topic must be supplied. Topic-only is valid —
|
|
18
26
|
// it returns the full content of that topic, matching the description's
|
|
19
27
|
// "by topic OR keyword" promise (F-R4-2).
|
|
@@ -33,18 +41,35 @@ export function handleSearchDocs(raw) {
|
|
|
33
41
|
retryable: false,
|
|
34
42
|
});
|
|
35
43
|
}
|
|
44
|
+
// Snippet mode requires a query to extract against; without one there's
|
|
45
|
+
// nothing to snippet down to. Fall back to full topic body when caller
|
|
46
|
+
// passed only topic.
|
|
47
|
+
const effectiveMode = mode === "snippets" && queryStr ? "snippets" : "full";
|
|
36
48
|
const hits = searchDocsIndex(queryStr, topicFilter);
|
|
37
|
-
const results = hits.map((e) =>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
const results = hits.map((e) => {
|
|
50
|
+
if (effectiveMode === "snippets") {
|
|
51
|
+
const snippets = extractSnippets(e.content, queryStr);
|
|
52
|
+
return {
|
|
53
|
+
topic: e.topic,
|
|
54
|
+
title: e.title,
|
|
55
|
+
snippets,
|
|
56
|
+
relatedTools: e.relatedTools,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
topic: e.topic,
|
|
61
|
+
title: e.title,
|
|
62
|
+
content: e.content,
|
|
63
|
+
relatedTools: e.relatedTools,
|
|
64
|
+
};
|
|
65
|
+
});
|
|
43
66
|
const summary = results.length === 0
|
|
44
67
|
? `No matching topics for query ${JSON.stringify(queryStr)}${topicFilter ? ` in topic ${JSON.stringify(topicFilter)}` : ""}.`
|
|
45
|
-
:
|
|
46
|
-
? `Found ${results.length}
|
|
47
|
-
:
|
|
48
|
-
|
|
68
|
+
: effectiveMode === "snippets"
|
|
69
|
+
? `Found ${results.length} topic${results.length === 1 ? "" : "s"} matching ${JSON.stringify(queryStr)}: ${results.map((r) => r.topic).join(", ")}. Returned matching paragraphs only — pass mode: "full" (or omit mode) to receive the full topic bodies.`
|
|
70
|
+
: queryStr
|
|
71
|
+
? `Found ${results.length} matching topic${results.length === 1 ? "" : "s"}: ${results.map((r) => r.topic).join(", ")}.`
|
|
72
|
+
: `Returned full content for topic ${JSON.stringify(topicFilter)}.`;
|
|
73
|
+
return okResponse({ results, totalResults: results.length, mode: effectiveMode, summary });
|
|
49
74
|
}
|
|
50
75
|
//# sourceMappingURL=searchDocs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchDocs.js","sourceRoot":"","sources":["../../../src/tools/handlers/searchDocs.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2CAA2C;AAE3C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAmB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"searchDocs.js","sourceRoot":"","sources":["../../../src/tools/handlers/searchDocs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateIntegration.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/validateIntegration.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA0B7D,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"validateIntegration.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/validateIntegration.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA0B7D,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAuVlE"}
|
|
@@ -273,7 +273,7 @@ export function handleValidateIntegration(raw) {
|
|
|
273
273
|
// The check still surfaces the configuration so devs targeting
|
|
274
274
|
// background-survival know they need to wire a foreground service.
|
|
275
275
|
if (manifestCaps.length > 0) {
|
|
276
|
-
const { passed, details, fix } = checkBackgroundExecution(projectPath, platform, manifestCaps);
|
|
276
|
+
const { passed, details, fix } = checkBackgroundExecution(projectPath, platform, manifestCaps, depResult.found);
|
|
277
277
|
// Always passes — both states (declared or not) are valid app
|
|
278
278
|
// configurations. Foreground-only and background-surviving are both
|
|
279
279
|
// legitimate choices; the validator just surfaces which one's wired
|
|
@@ -347,17 +347,40 @@ export function handleValidateIntegration(raw) {
|
|
|
347
347
|
: `All blocking checks pass — review ${warnCount} warning${warnCount === 1 ? "" : "s"} before testing.`;
|
|
348
348
|
return okResponse({ valid, checks, summary });
|
|
349
349
|
}
|
|
350
|
-
// Capability-driven background-execution hint.
|
|
351
|
-
// mic
|
|
352
|
-
//
|
|
353
|
-
//
|
|
354
|
-
//
|
|
355
|
-
//
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
350
|
+
// Capability-driven background-execution hint. These SDK features open a
|
|
351
|
+
// CONTINUOUS mic/camera stream under the hood and benefit from a
|
|
352
|
+
// foreground-service declaration on Android 14+ if the app wants to keep
|
|
353
|
+
// capturing while backgrounded. On iOS the equivalent is the
|
|
354
|
+
// UIBackgroundModes plist key. Foreground-only apps do NOT need any of
|
|
355
|
+
// this — the OS's foreground-while-visible exemption covers them — so this
|
|
356
|
+
// check is severity:info, not warn/error.
|
|
357
|
+
//
|
|
358
|
+
// F-R4-07: pre-fix this set only contained record_audio / video_frames /
|
|
359
|
+
// audio_chunks. `voice_command` / `transcription_incremental` / `wake_word`
|
|
360
|
+
// / `fallback` ALSO open continuous transcript subscriptions (via the
|
|
361
|
+
// library's internal DefaultVoiceClient + transcriptions()) — declaring
|
|
362
|
+
// `voice_command` alone is enough to need the same FG-service hint as
|
|
363
|
+
// `transcription_incremental` even if the customer never wrote
|
|
364
|
+
// `audio.transcriptions().collect { ... }` themselves. Pre-fix this caused
|
|
365
|
+
// the contradiction with getPermissions (which DID flag the FG service for
|
|
366
|
+
// transcription_incremental inputs).
|
|
367
|
+
const BACKGROUND_SENSITIVE_CAPABILITIES = new Set([
|
|
368
|
+
"record_audio",
|
|
369
|
+
"video_frames",
|
|
370
|
+
"audio_chunks",
|
|
371
|
+
"voice_command",
|
|
372
|
+
"transcription_incremental",
|
|
373
|
+
"wake_word",
|
|
374
|
+
"fallback",
|
|
375
|
+
"outgoing_audio_stream",
|
|
376
|
+
]);
|
|
377
|
+
function checkBackgroundExecution(projectPath, platform, capabilities, libraryDepFound) {
|
|
378
|
+
const bgSensitiveDeclared = capabilities.filter((c) => BACKGROUND_SENSITIVE_CAPABILITIES.has(c));
|
|
379
|
+
if (bgSensitiveDeclared.length === 0) {
|
|
380
|
+
return {
|
|
381
|
+
passed: true,
|
|
382
|
+
details: "No continuous-capture capabilities declared — neither getPermissions nor this check flags a foreground service.",
|
|
383
|
+
};
|
|
361
384
|
}
|
|
362
385
|
if (platform === "android") {
|
|
363
386
|
const candidates = ["app/src/main/AndroidManifest.xml"];
|
|
@@ -367,13 +390,49 @@ function checkBackgroundExecution(projectPath, platform, capabilities) {
|
|
|
367
390
|
continue;
|
|
368
391
|
const text = readFileSync(abs, "utf8");
|
|
369
392
|
if (text.includes("android:foregroundServiceType")) {
|
|
370
|
-
return {
|
|
393
|
+
return {
|
|
394
|
+
passed: true,
|
|
395
|
+
details: `AndroidManifest declares foregroundServiceType (continuous-capture caps: ${bgSensitiveDeclared.join(", ")}).`,
|
|
396
|
+
};
|
|
371
397
|
}
|
|
372
398
|
}
|
|
399
|
+
// F-R5-02: pre-fix this check flagged "no service entry" even when the
|
|
400
|
+
// app correctly used the library's default service. glasses-core ships
|
|
401
|
+
// GlassesForegroundService with foregroundServiceType="microphone" and
|
|
402
|
+
// declares it in the library AndroidManifest.xml — manifest-merger
|
|
403
|
+
// contributes the <service> entry into the consumer's merged manifest
|
|
404
|
+
// at build time. The consumer's `app/src/main/AndroidManifest.xml`
|
|
405
|
+
// doesn't show it (it's not in the source), so the regex above misses
|
|
406
|
+
// it. Cross-reference against `dependency_declared`: if the library is
|
|
407
|
+
// a dep, the merged manifest WILL have the entry.
|
|
408
|
+
if (libraryDepFound) {
|
|
409
|
+
const cameraCaps = bgSensitiveDeclared.filter((c) => c === "video_frames");
|
|
410
|
+
const micCaps = bgSensitiveDeclared.filter((c) => c !== "video_frames");
|
|
411
|
+
if (cameraCaps.length === 0) {
|
|
412
|
+
// Pure mic / mic-adjacent caps — fully covered by the library's
|
|
413
|
+
// default service (foregroundServiceType="microphone").
|
|
414
|
+
return {
|
|
415
|
+
passed: true,
|
|
416
|
+
details: `glasses-core ships GlassesForegroundService (foregroundServiceType="microphone") and contributes the <service> entry into the merged manifest via manifest-merger. ` +
|
|
417
|
+
`Continuous-capture caps ${bgSensitiveDeclared.join(", ")} are covered. ` +
|
|
418
|
+
`Customer must call GlassesForegroundService.start(context) from an Activity AFTER RECORD_AUDIO is granted at runtime (NOT from Application.onCreate — see getPermissions.android.foregroundService.devInstructions / F-R4-12 for the Android 14+ timing requirement). The validator cannot tell from static analysis whether the start() call is wired — verify in your Activity.`,
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
// Customer has video_frames; library's default mic service covers
|
|
422
|
+
// the mic side but camera survival needs a subclass.
|
|
423
|
+
return {
|
|
424
|
+
passed: false,
|
|
425
|
+
details: `glasses-core ships GlassesForegroundService (foregroundServiceType="microphone") which covers ${micCaps.join(", ") || "the mic-side caps"} via manifest-merger, but ${cameraCaps.join(", ")} needs foregroundServiceType="camera" too — the default service is mic-only.`,
|
|
426
|
+
fix: "Subclass com.extentos.glasses.core.service.GlassesForegroundService, override extentosForegroundServiceType to ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA | ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE, and declare <service android:name=\"<your.subclass>\" android:foregroundServiceType=\"camera|microphone\" android:exported=\"false\" /> in your app's AndroidManifest.xml (the library's default declaration stays microphone-only). Start it via your.subclass::start(context) from an Activity AFTER both RECORD_AUDIO and CAMERA are granted at runtime — F-R4-12 timing applies.",
|
|
427
|
+
};
|
|
428
|
+
}
|
|
373
429
|
return {
|
|
374
430
|
passed: false,
|
|
375
|
-
details:
|
|
376
|
-
|
|
431
|
+
details: `Continuous-capture capabilities are declared (${bgSensitiveDeclared.join(", ")}) but neither the consumer manifest declares a <service android:foregroundServiceType=...> entry nor is com.extentos:glasses in dependencies (which would contribute one via manifest-merger). ` +
|
|
432
|
+
`Foreground-only apps don't need one — Android's foreground-while-visible exemption covers the mic/camera access. ` +
|
|
433
|
+
`Wire a foreground service only if you want capture to survive backgrounding (screen off / user pressed home).`,
|
|
434
|
+
fix: "Two paths: (a) Easiest — add com.extentos:glasses to your Gradle dependencies. glasses-core ships GlassesForegroundService (foregroundServiceType=\"microphone\") and declares <service> in its AndroidManifest.xml; manifest-merger contributes it to your app. Call GlassesForegroundService.start(context) from an Activity AFTER RECORD_AUDIO is granted at runtime (NOT from Application.onCreate — F-R4-12 timing). " +
|
|
435
|
+
"(b) Subclass / replace — if you need camera-type foreground (rare; videoFrames-in-background), subclass GlassesForegroundService, override extentosForegroundServiceType, and add your own <service> entry to AndroidManifest.xml.",
|
|
377
436
|
};
|
|
378
437
|
}
|
|
379
438
|
if (platform === "ios") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateIntegration.js","sourceRoot":"","sources":["../../../src/tools/handlers/validateIntegration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validateIntegration.js","sourceRoot":"","sources":["../../../src/tools/handlers/validateIntegration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAkBhD,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9E,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiBhD,CAAC"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -13,6 +13,7 @@ import { handleGetPlatformInfo } from "./handlers/getPlatformInfo.js";
|
|
|
13
13
|
import { handleGetProductionChecklist } from "./handlers/getProductionChecklist.js";
|
|
14
14
|
import { handleGetSimulatorStatus } from "./handlers/getSimulatorStatus.js";
|
|
15
15
|
import { handleGetVoiceCommandGuidance } from "./handlers/getVoiceCommandGuidance.js";
|
|
16
|
+
import { handleInjectTranscript } from "./handlers/injectTranscript.js";
|
|
16
17
|
import { handleInspectIntegration } from "./handlers/inspectIntegration.js";
|
|
17
18
|
import { handleSearchDocs } from "./handlers/searchDocs.js";
|
|
18
19
|
import { handleValidateIntegration } from "./handlers/validateIntegration.js";
|
|
@@ -29,6 +30,7 @@ export const handlers = {
|
|
|
29
30
|
getProductionChecklist: handleGetProductionChecklist,
|
|
30
31
|
getSimulatorStatus: handleGetSimulatorStatus,
|
|
31
32
|
getVoiceCommandGuidance: handleGetVoiceCommandGuidance,
|
|
33
|
+
injectTranscript: handleInjectTranscript,
|
|
32
34
|
inspectIntegration: handleInspectIntegration,
|
|
33
35
|
searchDocs: handleSearchDocs,
|
|
34
36
|
validateIntegration: handleValidateIntegration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,yEAAyE;AACzE,yEAAyE;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAI9E,MAAM,CAAC,MAAM,QAAQ,GAAgC;IACnD,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,kBAAkB,EAAE,wBAAwB;IAC5C,cAAc,EAAE,oBAAoB;IACpC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,iBAAiB;IAC9B,cAAc,EAAE,oBAAoB;IACpC,eAAe,EAAE,qBAAqB;IACtC,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,wBAAwB;IAC5C,uBAAuB,EAAE,6BAA6B;IACtD,kBAAkB,EAAE,wBAAwB;IAC5C,UAAU,EAAE,gBAAgB;IAC5B,mBAAmB,EAAE,yBAAyB;CAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,yEAAyE;AACzE,yEAAyE;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAI9E,MAAM,CAAC,MAAM,QAAQ,GAAgC;IACnD,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,8BAA8B;IACxD,kBAAkB,EAAE,wBAAwB;IAC5C,cAAc,EAAE,oBAAoB;IACpC,kBAAkB,EAAE,wBAAwB;IAC5C,WAAW,EAAE,iBAAiB;IAC9B,cAAc,EAAE,oBAAoB;IACpC,eAAe,EAAE,qBAAqB;IACtC,sBAAsB,EAAE,4BAA4B;IACpD,kBAAkB,EAAE,wBAAwB;IAC5C,uBAAuB,EAAE,6BAA6B;IACtD,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,wBAAwB;IAC5C,UAAU,EAAE,gBAAgB;IAC5B,mBAAmB,EAAE,yBAAyB;CAC/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/tools/util/permissions.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,oBAAoB,EAAE;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/tools/util/permissions.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,oBAAoB,EAAE;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AA0ND,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,iBAAiB,CA+DhG;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,CAaxF;AAED,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,iBAAiB,CAiBhG;AAYD,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAyC,CAAC;AAK7F,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAA0B,CAAC"}
|
|
@@ -108,44 +108,84 @@ const IOS_REASONS_BY_KEY = {
|
|
|
108
108
|
};
|
|
109
109
|
const NOTIFICATION_SERVICE_DECLARATION = `<service\n android:name="com.extentos.glasses.core.notifications.ExtentosNotificationListenerService"\n android:label="Notification Mirroring"\n android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"\n android:exported="false">\n <intent-filter>\n <action android:name="android.service.notification.NotificationListenerService" />\n </intent-filter>\n</service>`;
|
|
110
110
|
const NOTIFICATION_DEV_INSTRUCTIONS = "Add the service declaration above inside <application> in AndroidManifest.xml. At runtime, prompt the user to grant Notification Access via NotificationAccessHelper.openSettings(context). The user must enable the toggle in system Settings → Notifications → Notification access; this permission cannot be requested programmatically.";
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
//
|
|
117
|
-
//
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
// skip the service (works on emulator, breaks in background on real
|
|
121
|
-
// device) or guess the wrong syntax.
|
|
111
|
+
// F-R4-11: the Extentos library NOW ships its own foreground service
|
|
112
|
+
// (com.extentos.glasses.core.service.GlassesForegroundService, type=
|
|
113
|
+
// microphone) and declares it in glasses-core's AndroidManifest.xml.
|
|
114
|
+
// Consumer apps inherit the declaration via manifest-merger; no
|
|
115
|
+
// customer-side <service> entry needed. For microphone-only capture the
|
|
116
|
+
// emitted "declaration" is therefore a one-line note pointing at the
|
|
117
|
+
// library service. For camera-type FG (rare) the library's default
|
|
118
|
+
// service doesn't apply; we still emit a stub declaration the customer
|
|
119
|
+
// must implement and declare themselves.
|
|
122
120
|
function buildForegroundServiceDeclaration(types) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
const isMicOnly = types.length === 1 && types[0] === "microphone";
|
|
122
|
+
if (isMicOnly) {
|
|
123
|
+
return [
|
|
124
|
+
`<!-- F-R4-11: glasses-core's AndroidManifest declares`,
|
|
125
|
+
` com.extentos.glasses.core.service.GlassesForegroundService with`,
|
|
126
|
+
` foregroundServiceType="microphone". You inherit it via manifest-merger —`,
|
|
127
|
+
` no <service> entry needed in your AndroidManifest.xml. Start the service`,
|
|
128
|
+
` from an Activity AFTER RECORD_AUDIO is granted at runtime:`,
|
|
129
|
+
` GlassesForegroundService.start(context) // defaults`,
|
|
130
|
+
` GlassesForegroundService.start(context, title = "MyApp",`,
|
|
131
|
+
` text = "Listening for voice commands")`,
|
|
132
|
+
` GlassesForegroundService.stop(context) // on teardown`,
|
|
133
|
+
` Foreground-only apps can skip starting it entirely. -->`,
|
|
134
|
+
].join("\n");
|
|
135
|
+
}
|
|
136
|
+
// Camera and combined types still need a customer-owned subclass.
|
|
126
137
|
const typesAttr = types.join("|");
|
|
127
138
|
return [
|
|
128
|
-
`<!-- F-
|
|
129
|
-
`
|
|
130
|
-
`
|
|
131
|
-
`
|
|
132
|
-
`
|
|
133
|
-
`
|
|
139
|
+
`<!-- ${types.includes("camera") ? "F-R4-11: " : ""}The library's default GlassesForegroundService is microphone-only.`,
|
|
140
|
+
` For ${typesAttr} you need to declare a Service in your AndroidManifest.xml`,
|
|
141
|
+
` and subclass com.extentos.glasses.core.service.GlassesForegroundService`,
|
|
142
|
+
` (override foregroundServiceType to combine MICROPHONE | CAMERA), OR write your`,
|
|
143
|
+
` own Service subclass that calls startForeground(notificationId, notification,`,
|
|
144
|
+
` FOREGROUND_SERVICE_TYPE_CAMERA${types.includes("microphone") ? " | FOREGROUND_SERVICE_TYPE_MICROPHONE" : ""}).`,
|
|
145
|
+
` Start it from your Activity AFTER the matching runtime permission is granted. -->`,
|
|
134
146
|
`<service`,
|
|
135
|
-
` android:name=".
|
|
147
|
+
` android:name=".${types.includes("camera") ? "Camera" : "Mic"}ForegroundService"`,
|
|
136
148
|
` android:foregroundServiceType="${typesAttr}"`,
|
|
137
149
|
` android:exported="false" />`,
|
|
138
150
|
].join("\n");
|
|
139
151
|
}
|
|
140
|
-
const FOREGROUND_SERVICE_DEV_INSTRUCTIONS = (types) =>
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
152
|
+
const FOREGROUND_SERVICE_DEV_INSTRUCTIONS = (types) => {
|
|
153
|
+
const runtimePerm = types.includes("camera") ? "CAMERA" : "RECORD_AUDIO";
|
|
154
|
+
const isMicOnly = types.length === 1 && types[0] === "microphone";
|
|
155
|
+
const timing = `**Timing (Android 14 / targetSdk 34+) — F-R4-12.** DO NOT start the service from ` +
|
|
156
|
+
`\`Application.onCreate\`. The OS requires \`${runtimePerm}\` to be **granted by the user** ` +
|
|
157
|
+
`before \`startForeground(..., FOREGROUND_SERVICE_TYPE_${types.includes("camera") ? "CAMERA" : "MICROPHONE"})\` ` +
|
|
158
|
+
`runs; otherwise it throws \`SecurityException\` at service-create time and kills the app ` +
|
|
159
|
+
`before the first Activity draws. Start the service from an Activity (or a ViewModel scoped ` +
|
|
160
|
+
`to one) inside the permission-grant callback returned by ` +
|
|
161
|
+
`\`ActivityResultContracts.RequestMultiplePermissions\`, OR check ` +
|
|
162
|
+
`\`ContextCompat.checkSelfPermission(this, Manifest.permission.${runtimePerm}) == PackageManager.PERMISSION_GRANTED\` ` +
|
|
163
|
+
`first.`;
|
|
164
|
+
const scope = `This service is only needed for **background-surviving** capture (screen off / user pressed home). ` +
|
|
165
|
+
`Foreground-only apps can skip starting it entirely; Android's foreground-while-visible exemption ` +
|
|
166
|
+
`covers the mic / camera access. validateIntegration's \`background_execution_declared\` check ` +
|
|
167
|
+
`signals which path you're on.`;
|
|
168
|
+
if (isMicOnly) {
|
|
169
|
+
return (`F-R4-11: glasses-core's AndroidManifest already declares ` +
|
|
170
|
+
`\`com.extentos.glasses.core.service.GlassesForegroundService\` with ` +
|
|
171
|
+
`\`foregroundServiceType="microphone"\` — you inherit it via manifest-merger, ` +
|
|
172
|
+
`so you do NOT need to add a <service> entry to your AndroidManifest.xml.\n\n` +
|
|
173
|
+
`Start the library service with one call:\n\n` +
|
|
174
|
+
` GlassesForegroundService.start(context) // defaults\n` +
|
|
175
|
+
` GlassesForegroundService.start(context, title = "MyApp",\n` +
|
|
176
|
+
` text = "Listening for voice commands")\n` +
|
|
177
|
+
` GlassesForegroundService.stop(context) // on teardown\n\n` +
|
|
178
|
+
`${timing}\n\n${scope}`);
|
|
179
|
+
}
|
|
180
|
+
// Camera-only or combined microphone+camera: customer still owns the subclass.
|
|
181
|
+
return (`The library's default GlassesForegroundService is microphone-only. For ${types.join("|")} ` +
|
|
182
|
+
`you need to declare your own Service in AndroidManifest.xml (use the declaration above as a ` +
|
|
183
|
+
`starting point) and implement it. Easiest path: subclass ` +
|
|
184
|
+
`\`com.extentos.glasses.core.service.GlassesForegroundService\` and override ` +
|
|
185
|
+
`\`foregroundServiceType\` to combine the bits (e.g. ` +
|
|
186
|
+
`\`MICROPHONE or CAMERA\`). Start it from your Activity once the matching runtime permissions ` +
|
|
187
|
+
`are granted.\n\n${timing}\n\n${scope}`);
|
|
188
|
+
};
|
|
149
189
|
function knownCapabilities(input) {
|
|
150
190
|
const set = new Set();
|
|
151
191
|
for (const c of input)
|