@extentos/mcp-server 0.0.69 → 0.0.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityPatterns.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"capabilityPatterns.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAuTD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAS7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAwC,CAAC"}
|
|
@@ -52,14 +52,15 @@ let mediaType = "image/jpeg"`,
|
|
|
52
52
|
const RECORD_AUDIO = {
|
|
53
53
|
feature: "record_audio",
|
|
54
54
|
summary: "Bounded mic capture with built-in silence-VAD turn-detection AND auto-transcription. The canonical free-form-question-capture primitive (used by every voice-Q&A flow). Returns AudioRecording with `transcript`, `audioDurationMs`, `rawAudioUri`.",
|
|
55
|
-
kotlin: `import com.extentos.glasses.core.
|
|
55
|
+
kotlin: `import com.extentos.glasses.core.AudioQuality
|
|
56
|
+
import com.extentos.glasses.core.AudioRecordConfig
|
|
56
57
|
import com.extentos.glasses.core.valueOrNull
|
|
57
58
|
|
|
58
59
|
val recording = glasses.audio.recordDiscrete(
|
|
59
60
|
AudioRecordConfig(
|
|
60
|
-
maxDurationSeconds = 30,
|
|
61
|
-
silenceTimeoutSeconds = 3.0,
|
|
62
|
-
quality =
|
|
61
|
+
maxDurationSeconds = 30.0, // Double, not Int
|
|
62
|
+
silenceTimeoutSeconds = 3.0, // VAD turn-end threshold (Double seconds)
|
|
63
|
+
quality = AudioQuality.STANDARD, // STANDARD or HIGH (enum, not String)
|
|
63
64
|
)
|
|
64
65
|
).valueOrNull() ?: return // ExtentosResult.Err — recording.errorOrNull() for shape
|
|
65
66
|
|
|
@@ -149,12 +150,13 @@ task.cancel()`,
|
|
|
149
150
|
const VIDEO_FRAMES = {
|
|
150
151
|
feature: "video_frames",
|
|
151
152
|
summary: "Continuous outbound stream of camera frames at the configured frame rate. For on-device ML (object detection, scene classification), live preview UI, anything that needs >1 frame/second.",
|
|
152
|
-
kotlin: `glasses.
|
|
153
|
+
kotlin: `import com.extentos.glasses.core.Resolution
|
|
154
|
+
import com.extentos.glasses.core.VideoFrameConfig
|
|
155
|
+
|
|
156
|
+
glasses.camera.videoFrames(
|
|
153
157
|
VideoFrameConfig(
|
|
154
|
-
resolution =
|
|
155
|
-
frameRate = 2,
|
|
156
|
-
codec = "hvc1", // HEVC passthrough — avoid h264 FPS cliff
|
|
157
|
-
backpressure = "drop_oldest",
|
|
158
|
+
resolution = Resolution.LOW, // LOW is plenty for most ML
|
|
159
|
+
frameRate = 2, // 2 fps for ML; 7-15 for preview
|
|
158
160
|
)
|
|
159
161
|
).collect { frame ->
|
|
160
162
|
// process frame.uri or frame.bytes
|
|
@@ -170,8 +172,9 @@ const VIDEO_FRAMES = {
|
|
|
170
172
|
// process frame.buffer / frame.width / frame.height
|
|
171
173
|
}`,
|
|
172
174
|
gotchas: [
|
|
175
|
+
"Kotlin VideoFrameConfig is intentionally minimal — `resolution` and `frameRate` only. Codec is fixed at HVC1 (HEVC passthrough); backpressure is handled internally by the transport layer.",
|
|
176
|
+
"iOS VideoFrameConfig exposes codec + backpressure as explicit fields (F-DOGFOOD-F50 — cross-platform asymmetry; iOS more granular). Multi-platform handlers either accept the iOS-side defaults or peel a platform-specific config block.",
|
|
173
177
|
"frame_rate × battery: 2fps for ML drains negligibly; 7-15fps for preview lasts ~1hr; 24-30fps drains in ~30min. Always pair high-fps streams with a thermal_warning listener that downgrades.",
|
|
174
|
-
"codec hvc1 (HEVC) bypasses the MediaCodec FPS cliff. h264 forces re-encode and drops to <5fps. Use hvc1 unless your consumer can't decode it.",
|
|
175
178
|
"Gated by camera_streaming_enabled + privacy_mode toggles. battery_save_mode = true clamps to LOW + 2fps regardless of config.",
|
|
176
179
|
"Requires FOREGROUND_SERVICE on Android 14+; iOS needs bluetooth-central UIBackgroundModes. See getPermissions.",
|
|
177
180
|
],
|
|
@@ -180,10 +183,12 @@ const VIDEO_FRAMES = {
|
|
|
180
183
|
const AUDIO_CHUNKS = {
|
|
181
184
|
feature: "audio_chunks",
|
|
182
185
|
summary: "Raw audio chunks from the glasses mic, for custom on-device or cloud STT (your own model, not the platform's), audio analysis, custom keyword spotting.",
|
|
183
|
-
kotlin: `glasses.
|
|
186
|
+
kotlin: `import com.extentos.glasses.core.AudioChunkConfig
|
|
187
|
+
|
|
188
|
+
glasses.audio.audioChunks(
|
|
184
189
|
AudioChunkConfig(
|
|
185
|
-
chunkMillis = 20,
|
|
186
|
-
|
|
190
|
+
chunkMillis = 20, // canonical opus frame size
|
|
191
|
+
sampleRate = 16000, // 16 kHz default — match downstream STT model
|
|
187
192
|
)
|
|
188
193
|
).collect { chunk ->
|
|
189
194
|
// feed chunk.bytes to your STT / VAD / classifier
|
|
@@ -197,6 +202,7 @@ const AUDIO_CHUNKS = {
|
|
|
197
202
|
// feed chunk.samples (Data) to your STT / VAD / classifier
|
|
198
203
|
}`,
|
|
199
204
|
gotchas: [
|
|
205
|
+
"Kotlin AudioChunkConfig has `chunkMillis` and `sampleRate` only. iOS additionally exposes a `backpressure` field (F-DOGFOOD-F50 — cross-platform asymmetry pending a parity sweep). Kotlin's transport handles backpressure internally with the same default (suspend on a 16-chunk buffer).",
|
|
200
206
|
"Use transcriptions() if you just want STT — the platform recognizer is cheaper and pre-routed. audio_chunks is for cases where you need raw PCM.",
|
|
201
207
|
"20ms chunk size is the standard opus/CELT frame; don't change unless your downstream model expects a specific shape.",
|
|
202
208
|
"16-chunk buffer cap; slow consumers (>50ms/chunk processing on average) will drop. Profile your consumer.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityPatterns.js","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,iEAAiE;AACjE,+DAA+D;AAC/D,iCAAiC;AACjC,EAAE;AACF,iEAAiE;AACjE,qEAAqE;AACrE,mEAAmE;AACnE,0CAA0C;AAW1C,MAAM,aAAa,GAAoB;IACrC,OAAO,EAAE,eAAe;IACxB,OAAO,EACL,yKAAyK;IAC3K,MAAM,EAAE;;;;;;;;;;;;;;;;8DAgBoD;IAC5D,KAAK,EAAE;;;;;;;;;;;6BAWoB;IAC3B,OAAO,EAAE;QACP,wQAAwQ;QACxQ,gLAAgL;QAChL,6JAA6J;QAC7J,+JAA+J;QAC/J,mJAAmJ;QACnJ,kJAAkJ;KACnJ;IACD,eAAe,EAAE,CAAC,sBAAsB,CAAC;CAC1C,CAAC;AAEF,MAAM,YAAY,GAAoB;IACpC,OAAO,EAAE,cAAc;IACvB,OAAO,EACL,qPAAqP;IACvP,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"capabilityPatterns.js","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
// scaffold a project pointing at 1.0.0 (no probe code) while running
|
|
7
7
|
// 0.0.7+ server-side smarts that needed 1.1.x to function.
|
|
8
8
|
//
|
|
9
|
-
// Pre-public-Maven note: 1.1.
|
|
9
|
+
// Pre-public-Maven note: 1.1.29-pair currently lives only on the dev's
|
|
10
10
|
// mavenLocal (./gradlew :glasses-core:publishToMavenLocal). Until a
|
|
11
11
|
// public Maven Central / JitPack publish lands, scaffolded projects
|
|
12
12
|
// require the dev to run mavenLocal-publish first. Document next to
|
|
13
13
|
// the dependency notation in generateConnectionModule.
|
|
14
14
|
export const VERSION_INFO = {
|
|
15
|
-
latestStable: "1.1.
|
|
15
|
+
latestStable: "1.1.29-pair",
|
|
16
16
|
specVersion: "1.0",
|
|
17
17
|
android: {
|
|
18
18
|
minimumSdk: 31,
|
|
@@ -34,7 +34,7 @@ export const VERSION_INFO = {
|
|
|
34
34
|
kotlinVersion: "2.1.20",
|
|
35
35
|
// Toolchain minimums (F-R4-8 from DOGFOOD_R4). The library's transitive
|
|
36
36
|
// Compose deps determine the floor:
|
|
37
|
-
// - com.extentos:glasses-ui:1.1.
|
|
37
|
+
// - com.extentos:glasses-ui:1.1.29-pair brings in androidx.compose.* 1.9.0
|
|
38
38
|
// (via compose-bom 2024.10.00 and direct deps)
|
|
39
39
|
// - Compose 1.9.0 AAR-metadata declares "requires AGP >= 8.6.0"
|
|
40
40
|
// - AGP 8.6+ requires Gradle 8.7+ (Android Gradle Plugin compatibility table)
|
|
@@ -58,13 +58,13 @@ export const VERSION_INFO = {
|
|
|
58
58
|
},
|
|
59
59
|
artifacts: {
|
|
60
60
|
android: {
|
|
61
|
-
core: "com.extentos:glasses:1.1.
|
|
62
|
-
ui: "com.extentos:glasses-ui:1.1.
|
|
63
|
-
debug: "com.extentos:glasses-debug:1.1.
|
|
61
|
+
core: "com.extentos:glasses:1.1.29-pair",
|
|
62
|
+
ui: "com.extentos:glasses-ui:1.1.29-pair",
|
|
63
|
+
debug: "com.extentos:glasses-debug:1.1.29-pair",
|
|
64
64
|
},
|
|
65
65
|
ios: {
|
|
66
66
|
package: "https://github.com/extentos/swift-glasses",
|
|
67
|
-
version: "1.1.
|
|
67
|
+
version: "1.1.29-pair",
|
|
68
68
|
products: ["GlassesCore", "GlassesUI", "GlassesDebug", "GlassesLifecycle", "GlassesTesting"],
|
|
69
69
|
},
|
|
70
70
|
},
|