@extentos/mcp-server 0.0.77 → 0.0.79
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/tools/data/capabilityPatterns.d.ts.map +1 -1
- package/dist/tools/data/capabilityPatterns.js +43 -7
- 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 +352 -156
- package/dist/tools/data/codeExamples.js.map +1 -1
- package/dist/tools/data/version.js +7 -7
- package/dist/tools/definitions.js +2 -2
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/docs/index.d.ts.map +1 -1
- package/dist/tools/docs/index.js +28 -20
- package/dist/tools/docs/index.js.map +1 -1
- package/dist/tools/handlers/createSimulatorSession.js +4 -3
- package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.js +136 -61
- package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
- package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
- package/dist/tools/handlers/validateIntegration.js +47 -8
- package/dist/tools/handlers/validateIntegration.js.map +1 -1
- package/dist/tools/templates/androidBootstrap.d.ts.map +1 -1
- package/dist/tools/templates/androidBootstrap.js +16 -1
- package/dist/tools/templates/androidBootstrap.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;AA0bD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAU7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAwC,CAAC"}
|
|
@@ -16,6 +16,24 @@ import com.extentos.glasses.core.Photos
|
|
|
16
16
|
import com.extentos.glasses.core.Resolution
|
|
17
17
|
import com.extentos.glasses.core.valueOrNull
|
|
18
18
|
|
|
19
|
+
// F-R3-9: Photos helpers (in com.extentos.glasses.core.Photos) — pass
|
|
20
|
+
// photo.uri to bridge data: and file: URI schemes uniformly. All four
|
|
21
|
+
// return nullable (null on unreadable URI, unrecognized scheme, decode
|
|
22
|
+
// failure, or OOM — never throw). Three are \`suspend\` (decode runs on
|
|
23
|
+
// Dispatchers.IO under the hood); mediaTypeFromUri is synchronous.
|
|
24
|
+
// suspend fun Photos.loadBase64(uri: String): String?
|
|
25
|
+
// — base64 of the photo bytes (NO "data:image/...;base64," prefix).
|
|
26
|
+
// Fast path on data: URIs: returns the substring after the comma
|
|
27
|
+
// directly (no decode + re-encode round trip).
|
|
28
|
+
// suspend fun Photos.loadBytes(uri: String): ByteArray?
|
|
29
|
+
// — raw bytes (for ML pipelines that want the unencoded source).
|
|
30
|
+
// suspend fun Photos.loadBitmap(uri: String): android.graphics.Bitmap?
|
|
31
|
+
// — decoded Bitmap (for Compose: \`bitmap?.asImageBitmap()\`).
|
|
32
|
+
// fun Photos.mediaTypeFromUri(uri: String): String?
|
|
33
|
+
// — "image/jpeg" / "image/png" / "image/webp" / "image/gif" /
|
|
34
|
+
// "image/heic". For data: URIs: parses the embedded MIME directly.
|
|
35
|
+
// For file: URIs: infers from extension. Synchronous, pure CPU.
|
|
36
|
+
|
|
19
37
|
val photo = glasses.camera.capturePhoto(
|
|
20
38
|
PhotoConfig(resolution = Resolution.MEDIUM, format = PhotoFormat.JPEG)
|
|
21
39
|
).valueOrNull() ?: return // ExtentosResult.Err — see Errors.kt for failure shapes
|
|
@@ -25,23 +43,41 @@ val photo = glasses.camera.capturePhoto(
|
|
|
25
43
|
// check before passing to the Photos helpers; loadBase64 / mediaTypeFromUri
|
|
26
44
|
// both require non-null String.
|
|
27
45
|
val uri = photo.uri ?: return
|
|
28
|
-
val base64 = Photos.loadBase64(uri)
|
|
29
|
-
val mediaType = Photos.mediaTypeFromUri(uri)
|
|
46
|
+
val base64 = Photos.loadBase64(uri) // String? — base64-encoded photo bytes
|
|
47
|
+
val mediaType = Photos.mediaTypeFromUri(uri) // String? — e.g. "image/jpeg"
|
|
48
|
+
// For UI rendering in Compose, decode directly to ImageBitmap:
|
|
49
|
+
val bitmap = Photos.loadBitmap(uri)?.asImageBitmap() // androidx.compose.ui.graphics.ImageBitmap?`,
|
|
30
50
|
swift: `let result = await glasses.camera.capturePhoto(
|
|
31
51
|
config: PhotoConfig(resolution: .medium, format: .jpeg)
|
|
32
52
|
)
|
|
33
53
|
guard case .success(let photo) = result else { return }
|
|
34
54
|
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
55
|
+
// F-R3-9: Photo helpers (Swift). iOS has fewer pre-built helpers than
|
|
56
|
+
// Android's Photos object — only loadImage() is bundled, and the
|
|
57
|
+
// customer encodes / mediaTypes the result themselves.
|
|
58
|
+
// extension Photo {
|
|
59
|
+
// func loadImage() async -> PlatformImage? // UIImage on iOS, NSImage on macOS
|
|
60
|
+
// }
|
|
61
|
+
// Handles both file:// (RealMeta / LocalSim) and data: (BrowserSim) URLs.
|
|
62
|
+
// Returns nil on unrecognized scheme, missing file, or decode failure.
|
|
63
|
+
// Internally runs on a detached high-priority Task so a 1MB data-URI
|
|
64
|
+
// base64 decode doesn't block the caller.
|
|
65
|
+
//
|
|
66
|
+
// For Anthropic / OpenAI vision payloads, encode the UIImage to JPEG +
|
|
67
|
+
// base64 yourself (no library helper for this — the encoding choice
|
|
68
|
+
// belongs to the caller, since model accept rates and storage costs
|
|
69
|
+
// differ per format / quality combination):
|
|
70
|
+
//
|
|
71
|
+
// let jpeg = image?.jpegData(compressionQuality: 0.85)
|
|
72
|
+
// let base64 = jpeg?.base64EncodedString()
|
|
73
|
+
// let mediaType = "image/jpeg"
|
|
74
|
+
|
|
38
75
|
let image = await photo.loadImage()
|
|
39
|
-
// For base64 you encode the JPEG/PNG data yourself:
|
|
40
76
|
let base64 = image?.jpegData(compressionQuality: 0.85)?.base64EncodedString()
|
|
41
77
|
let mediaType = "image/jpeg"`,
|
|
42
78
|
gotchas: [
|
|
43
79
|
"PhotoConfig takes TYPED ENUMS, not strings: `PhotoConfig(resolution = Resolution.MEDIUM, format = PhotoFormat.JPEG)`. Resolution enum: LOW, MEDIUM, HIGH. PhotoFormat enum: JPEG, HEIC. Both live in com.extentos.glasses.core (flat package — see library_api topic).",
|
|
44
|
-
"Photo.uri is `String?` (nullable). The Photos helpers (loadBase64 / loadBytes / loadBitmap / mediaTypeFromUri) require non-null String. Null-check `photo.uri` before passing.",
|
|
80
|
+
"Photo.uri is `String?` (nullable). The Photos helpers (loadBase64 / loadBytes / loadBitmap / mediaTypeFromUri) require non-null String. Null-check `photo.uri` before passing. See the kotlin snippet's header comment for each helper's full signature + return type.",
|
|
45
81
|
"Photo URI shape varies by transport (data: vs file:). Use Photos.loadBase64(uri) helpers to bridge — don't try to AsyncImage / URL.init() the URI directly.",
|
|
46
82
|
"Resolution HIGH adds ~400ms latency on Gen 1 hardware vs MEDIUM. MEDIUM is the right default; only use HIGH for downstream models that genuinely need detail.",
|
|
47
83
|
"Capture blocks while outgoing_video_stream is active (camera exclusivity). If both are needed, set audio_video_coexistence_policy = prefer_video.",
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"capabilityPatterns.js","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeExamples.d.ts","sourceRoot":"","sources":["../../../src/tools/data/codeExamples.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,aAAa,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,2BAA2B,CAAC;IAC7G,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,uBAAuB,GAAG,sBAAsB,CAAC;IAC5D;4EACwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC9B,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAC3C,CAAC;IACF;;;;;;OAMG;IACH,eAAe,CAAC,EAAE;QAChB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAClC,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"codeExamples.d.ts","sourceRoot":"","sources":["../../../src/tools/data/codeExamples.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,aAAa,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,2BAA2B,CAAC;IAC7G,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,uBAAuB,GAAG,sBAAsB,CAAC;IAC5D;4EACwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC9B,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAC3C,CAAC;IACF;;;;;;OAMG;IACH,eAAe,CAAC,EAAE;QAChB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAClC,CAAC;CACH;AA0tCD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAQrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAoC,CAAC"}
|