@extentos/mcp-server 0.0.60 → 0.0.61
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/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +6 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.js +88 -10
- package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
- package/dist/tools/templates/androidBootstrap.d.ts +8 -1
- package/dist/tools/templates/androidBootstrap.d.ts.map +1 -1
- package/dist/tools/templates/androidBootstrap.js +137 -14
- package/dist/tools/templates/androidBootstrap.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAMpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;CACH;AAMD,eAAO,MAAM,eAAe,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAMpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;CACH;AAMD,eAAO,MAAM,eAAe,EAAE,OAAO,EAuXpC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAyB,CAAC;AAShD,wBAAgB,iCAAiC,CAC/C,IAAI,GAAE,SAAS,OAAO,EAAoB,GACzC,IAAI,CAiBN"}
|
|
@@ -95,7 +95,7 @@ export const toolDefinitions = [
|
|
|
95
95
|
// --- 2. Setup and Generation ---
|
|
96
96
|
{
|
|
97
97
|
name: "generateConnectionModule",
|
|
98
|
-
description: "One-shot project scaffold — emits the bootstrap module that wires `Extentos.create(...)` into the host app, build-script changes, dependencies, permissions, and the integration manifest. Run once per project; after this lands, the agent writes its own Handler classes against the SDK primitives surfaced by getCapabilityGuide / getCodeExample. **Two-call flow**: call once WITHOUT `placement` to receive `status: \"needs_placement\"` plus the question to ask the dev (where should ExtentosConnectionPage live in the app?); after the dev answers, call again WITH `placement` set to one of the 5 ids to receive the full scaffold (files, suggestedRendering, etc.). Returns files[] with action values 'create' and 'manual_patch' — see searchDocs('file_actions') for how to apply each. USE as the first generation tool when scaffolding a fresh project. DON'T USE when Extentos is already installed (use inspectIntegration to read current state).",
|
|
98
|
+
description: "One-shot project scaffold — emits the bootstrap module that wires `Extentos.create(...)` into the host app, build-script changes, dependencies, permissions, and the integration manifest. Run once per project; after this lands, the agent writes its own Handler classes against the SDK primitives surfaced by getCapabilityGuide / getCodeExample. **Two-call flow**: call once WITHOUT `placement` to receive `status: \"needs_placement\"` plus the question to ask the dev (where should ExtentosConnectionPage live in the app?); after the dev answers, call again WITH `placement` set to one of the 5 ids to receive the full scaffold (files, suggestedRendering, etc.). **Existing-app detection (Android)**: pass `projectPath` so the handler reads AndroidManifest.xml and detects whether you already have an Application subclass. If yes, the emitted ExtentosBootstrap is an `object` (init helper) plus a `manual_patch` for your existing class — no clobber. If no (greenfield) OR projectPath omitted, the bootstrap is emitted as a full Application subclass and the agent sets `<application android:name>` accordingly. Returns files[] with action values 'create' and 'manual_patch' — see searchDocs('file_actions') for how to apply each. USE as the first generation tool when scaffolding a fresh project. DON'T USE when Extentos is already installed (use inspectIntegration to read current state).",
|
|
99
99
|
inputSchema: {
|
|
100
100
|
type: "object",
|
|
101
101
|
properties: {
|
|
@@ -115,6 +115,11 @@ export const toolDefinitions = [
|
|
|
115
115
|
],
|
|
116
116
|
description: "Where ExtentosConnectionPage should live in the app. Omit on the first call to receive the placement question; pass on the second call after the dev has chosen.",
|
|
117
117
|
},
|
|
118
|
+
projectPath: {
|
|
119
|
+
type: "string",
|
|
120
|
+
minLength: 1,
|
|
121
|
+
description: "Absolute path to the project root. Android-only: when provided, the handler reads `app/src/main/AndroidManifest.xml` to detect an existing Application subclass and emit an init-helper bootstrap (object) + a manual_patch for that class — avoiding the Application clobber. Optional; absent → assume greenfield and emit the Application-subclass form.",
|
|
122
|
+
},
|
|
118
123
|
},
|
|
119
124
|
required: ["platform", "glasses", "appPackage"],
|
|
120
125
|
additionalProperties: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,iFAAiF;AACjF,uEAAuE;AACvE,6EAA6E;AAC7E,gFAAgF;AAChF,yEAAyE;AACzE,iFAAiF;AACjF,4EAA4E;AAC5E,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,yEAAyE;AAkBzE,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;AAC3E,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;AACvE,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;AAEtF,MAAM,CAAC,MAAM,eAAe,GAAc;IACxC,oCAAoC;IACpC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,87BAA87B;QACh8B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE;oBAC5D,QAAQ,EAAE,CAAC;iBACZ;gBACD,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,uBAAuB,CAAC;qBAC/D;oBACD,WAAW,EACT,+PAA+P;iBAClQ;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;YACtB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,oCAAoC;IACpC,oEAAoE;IACpE,yEAAyE;IACzE;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,qsBAAqsB;QACvsB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,oBAAoB;wBACpB,gBAAgB;wBAChB,sBAAsB;wBACtB,uBAAuB;wBACvB,aAAa;wBACb,uBAAuB;qBACxB;oBACD,WAAW,EACT,0IAA0I;iBAC7I;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,6gBAA6gB;QAC/gB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,eAAe;wBACf,cAAc;wBACd,2BAA2B;wBAC3B,OAAO;wBACP,cAAc;wBACd,cAAc;wBACd,kBAAkB;wBAClB,SAAS;qBACV;oBACD,WAAW,EACT,8HAA8H;iBACjI;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IAED,kCAAkC;IAClC;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateConnectionModule.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/generateConnectionModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateConnectionModule.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/generateConnectionModule.ts"],"names":[],"mappings":"AAcA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA4M5E,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAoCvE"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// generateConnectionModule — project scaffold tool.
|
|
2
2
|
// Spec: docs/mcp/MCP_TOOLS.md § generateConnectionModule
|
|
3
3
|
// Output shapes: Android (Gradle+Kotlin) vs iOS (SPM+Swift) differ per that spec.
|
|
4
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
4
6
|
import { androidSourcePath, iosModuleName } from "../util/appPackage.js";
|
|
5
7
|
import { buildEmptyManifest } from "../util/manifest.js";
|
|
6
|
-
import { renderAndroidBootstrap } from "../templates/androidBootstrap.js";
|
|
8
|
+
import { renderAndroidBootstrap, renderAndroidExistingApplicationPatchHint, } from "../templates/androidBootstrap.js";
|
|
7
9
|
import { renderIosBootstrap, renderIosAppPatchHint } from "../templates/iosBootstrap.js";
|
|
8
10
|
import { VERSION_INFO } from "../data/version.js";
|
|
9
11
|
import { okResponse, errorResponse } from "../response.js";
|
|
@@ -19,6 +21,52 @@ const PLACEMENT_IDS = [
|
|
|
19
21
|
"modal_sheet",
|
|
20
22
|
"headless",
|
|
21
23
|
];
|
|
24
|
+
/**
|
|
25
|
+
* Inspect AndroidManifest.xml at projectPath and classify the bootstrap
|
|
26
|
+
* mode the scaffold should emit.
|
|
27
|
+
*
|
|
28
|
+
* Greenfield = no existing Application subclass (or scaffold-owned one
|
|
29
|
+
* from a prior run) → emit Template A (subclass). Existing = third-party
|
|
30
|
+
* Application class → emit Template B (init helper) + manual_patch
|
|
31
|
+
* targeting the existing class.
|
|
32
|
+
*/
|
|
33
|
+
function detectExistingAndroidApplication(projectPath, appPackage) {
|
|
34
|
+
if (!projectPath)
|
|
35
|
+
return { mode: "greenfield", reason: "no_project_path" };
|
|
36
|
+
const manifestPath = join(projectPath, "app", "src", "main", "AndroidManifest.xml");
|
|
37
|
+
if (!existsSync(manifestPath))
|
|
38
|
+
return { mode: "greenfield", reason: "manifest_missing" };
|
|
39
|
+
let manifestText;
|
|
40
|
+
try {
|
|
41
|
+
manifestText = readFileSync(manifestPath, "utf8");
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return { mode: "greenfield", reason: "manifest_missing" };
|
|
45
|
+
}
|
|
46
|
+
// Permissive regex — handles multi-line <application> tags and arbitrary
|
|
47
|
+
// attribute order. The XML structure guarantees a single <application>
|
|
48
|
+
// element per manifest so the first match is the right one.
|
|
49
|
+
const match = manifestText.match(/<application\b[\s\S]*?android:name="([^"]+)"/);
|
|
50
|
+
if (!match)
|
|
51
|
+
return { mode: "greenfield", reason: "no_application_attr" };
|
|
52
|
+
const raw = match[1];
|
|
53
|
+
const fqClassName = raw.startsWith(".") ? `${appPackage}${raw}` : raw;
|
|
54
|
+
// If a prior scaffold run already wired Template A, re-emit Template A
|
|
55
|
+
// rather than treating our own output as an "existing app" and emitting
|
|
56
|
+
// Template B (which would break the wiring).
|
|
57
|
+
if (fqClassName === `${appPackage}.extentos.ExtentosBootstrap`) {
|
|
58
|
+
return { mode: "greenfield", reason: "scaffold_owned" };
|
|
59
|
+
}
|
|
60
|
+
const relSlashes = fqClassName.replace(/\./g, "/");
|
|
61
|
+
const javaPath = `app/src/main/java/${relSlashes}.kt`;
|
|
62
|
+
const kotlinPath = `app/src/main/kotlin/${relSlashes}.kt`;
|
|
63
|
+
let filePath = null;
|
|
64
|
+
if (existsSync(join(projectPath, javaPath)))
|
|
65
|
+
filePath = javaPath;
|
|
66
|
+
else if (existsSync(join(projectPath, kotlinPath)))
|
|
67
|
+
filePath = kotlinPath;
|
|
68
|
+
return { mode: "existing", fqClassName, filePath };
|
|
69
|
+
}
|
|
22
70
|
const PLACEMENT_OPTIONS = [
|
|
23
71
|
{ id: "dedicated_route", label: "Dedicated route (e.g. 'connection' or 'glasses')" },
|
|
24
72
|
{ id: "settings_subscreen", label: "Subscreen inside Settings" },
|
|
@@ -126,7 +174,7 @@ export function handleGenerateConnectionModule(raw) {
|
|
|
126
174
|
const libraryVersion = args.libraryVersion ?? DEFAULT_LIBRARY_VERSION;
|
|
127
175
|
const concise = args.responseFormat === "concise";
|
|
128
176
|
const payload = args.platform === "android"
|
|
129
|
-
? buildAndroid(args.appPackage, libraryVersion, concise, args.placement)
|
|
177
|
+
? buildAndroid(args.appPackage, libraryVersion, concise, args.placement, args.projectPath)
|
|
130
178
|
: buildIos(args.appPackage, libraryVersion, concise, args.placement);
|
|
131
179
|
return okResponse(payload);
|
|
132
180
|
}
|
|
@@ -187,6 +235,9 @@ function parseArgs(raw) {
|
|
|
187
235
|
}
|
|
188
236
|
placement = obj.placement;
|
|
189
237
|
}
|
|
238
|
+
const projectPath = typeof obj.projectPath === "string" && obj.projectPath.length > 0
|
|
239
|
+
? obj.projectPath
|
|
240
|
+
: undefined;
|
|
190
241
|
const args = {
|
|
191
242
|
platform,
|
|
192
243
|
glasses: "meta_rayban",
|
|
@@ -196,13 +247,16 @@ function parseArgs(raw) {
|
|
|
196
247
|
? obj.responseFormat
|
|
197
248
|
: undefined,
|
|
198
249
|
placement,
|
|
250
|
+
projectPath,
|
|
199
251
|
};
|
|
200
252
|
return { args };
|
|
201
253
|
}
|
|
202
|
-
function buildAndroid(appPackage, libraryVersion, concise, placement) {
|
|
254
|
+
function buildAndroid(appPackage, libraryVersion, concise, placement, projectPath) {
|
|
255
|
+
const detection = detectExistingAndroidApplication(projectPath, appPackage);
|
|
203
256
|
const sourcePath = androidSourcePath(appPackage);
|
|
204
257
|
const bootstrapPath = `app/src/main/java/${sourcePath}/extentos/ExtentosBootstrap.kt`;
|
|
205
|
-
const
|
|
258
|
+
const bootstrapTemplate = detection.mode === "existing" ? "init_helper" : "subclass";
|
|
259
|
+
const bootstrapContent = renderAndroidBootstrap(appPackage, bootstrapTemplate);
|
|
206
260
|
const nowIso = new Date().toISOString();
|
|
207
261
|
const manifest = buildEmptyManifest({ platform: "android", appPackage, libraryVersion }, nowIso);
|
|
208
262
|
// Record the bootstrap as an emitted generated file so validateIntegration's
|
|
@@ -222,6 +276,17 @@ function buildAndroid(appPackage, libraryVersion, concise, placement) {
|
|
|
222
276
|
const files = [
|
|
223
277
|
{ path: bootstrapPath, action: "create", content: bootstrapContent },
|
|
224
278
|
];
|
|
279
|
+
if (detection.mode === "existing") {
|
|
280
|
+
// The existing Application class is developer-owned; we emit an
|
|
281
|
+
// English patch hint pointing at its likely path instead of mutating
|
|
282
|
+
// it directly. Same convention as the iOS App.swift patch hint.
|
|
283
|
+
const patchPath = detection.filePath ?? `app/src/main/java/${detection.fqClassName.replace(/\./g, "/")}.kt`;
|
|
284
|
+
files.push({
|
|
285
|
+
path: patchPath,
|
|
286
|
+
action: "manual_patch",
|
|
287
|
+
content: renderAndroidExistingApplicationPatchHint(detection.fqClassName, detection.filePath),
|
|
288
|
+
});
|
|
289
|
+
}
|
|
225
290
|
const payload = {
|
|
226
291
|
files,
|
|
227
292
|
manifest: { path: "extentos.manifest.json", content: manifest },
|
|
@@ -278,24 +343,34 @@ function buildAndroid(appPackage, libraryVersion, concise, placement) {
|
|
|
278
343
|
optionsSummary: PLACEMENT_OPTIONS,
|
|
279
344
|
snippetsResourceLink: PLACEMENT_SNIPPET_LINK,
|
|
280
345
|
},
|
|
281
|
-
developerInstructions: developerInstructionsAndroid(placement),
|
|
282
|
-
|
|
346
|
+
developerInstructions: developerInstructionsAndroid(placement, detection),
|
|
347
|
+
applicationDetection: detection,
|
|
348
|
+
summary: detection.mode === "existing"
|
|
349
|
+
? `Scaffolded Extentos ${libraryVersion} for Android app ${appPackage} (placement: ${placement}) — existing Application class \`${detection.fqClassName}\` detected. Emitted ExtentosBootstrap as an init-helper \`object\` + a manual_patch for ${detection.filePath ?? "your Application file"}. AndroidManifest.xml stays untouched. 3 Gradle deps, 3 permissions, 1 repository (mavenLocal), 1 BuildConfig field.`
|
|
350
|
+
: `Scaffolded Extentos ${libraryVersion} for Android app ${appPackage} (placement: ${placement}). Emitted ExtentosBootstrap as a full Application subclass. 3 Gradle deps, 3 permissions, 1 repository (mavenLocal), 1 BuildConfig field. ${projectPath ? "" : "Pass `projectPath` to enable existing-Application detection — without it the scaffold assumes greenfield."}`,
|
|
283
351
|
};
|
|
284
352
|
if (!concise) {
|
|
285
353
|
const minAgp = VERSION_INFO.android.minimumAgpVersion;
|
|
286
354
|
const minGradle = VERSION_INFO.android.minimumGradleVersion;
|
|
355
|
+
const isExisting = detection.mode === "existing";
|
|
356
|
+
const step6 = isExisting
|
|
357
|
+
? `6. Apply the manual_patch (files[1].content) to your existing Application class \`${detection.fqClassName}\` — adds the ExtentosGlasses property + onCreate() init lines. Do NOT change <application android:name=...> in AndroidManifest.xml; the existing class stays the app's Application.\n`
|
|
358
|
+
: `6. Set android:name=\"${appPackage}.extentos.ExtentosBootstrap\" on <application> in AndroidManifest.xml\n`;
|
|
287
359
|
payload.wireInstructions =
|
|
288
360
|
"PREREQUISITES: this scaffold assumes an existing Android Compose host app. If you're starting from scratch, fetch `searchDocs(topic: 'host_app_scaffold')` for a complete copy-pasteable Compose project template before applying the steps below. Android Studio users can use the New Project wizard (Empty Compose Activity) instead. (F-R4-5)\n" +
|
|
289
361
|
"\n" +
|
|
290
362
|
"0a. Preflight (JDK): the Gradle build needs Java 17. If `JAVA_HOME` isn't set, `gradlew.bat` exits with `ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.` Typical paths: Windows — `C:\\Program Files\\Android\\Android Studio\\jbr` (Android Studio's bundled JBR if installed). macOS — `/Applications/Android Studio.app/Contents/jbr/Contents/Home`. Linux — `~/android-studio/jbr` or system OpenJDK 17. Gradle's auto-provisioned JDKs at `~/.gradle/jdks/eclipse_adoptium-17-*` also work. Set `JAVA_HOME` in the shell before running gradlew. (F-R4-7)\n" +
|
|
291
363
|
"0b. Preflight (Android SDK): set `sdk.dir=<path>` in `local.properties` (at the project root, alongside settings.gradle.kts) OR export `ANDROID_HOME` in the shell. Android Studio writes local.properties automatically on first project open; CLI agents must do it themselves. Without this, the very first build fails with `SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file.` (F-R3-5)\n" +
|
|
292
364
|
`0c. Preflight (toolchain versions): Android Gradle Plugin >= ${minAgp} is required (com.extentos:glasses-ui:${libraryVersion} brings in androidx.compose 1.9.0 which has AAR-metadata "requires AGP >= ${minAgp}"). Gradle distribution >= ${minGradle} is required by AGP ${minAgp}. Example root build.gradle.kts: \`id("com.android.application") version "${minAgp}" apply false\`. Example gradle/wrapper/gradle-wrapper.properties: \`distributionUrl=https\\://services.gradle.org/distributions/gradle-${minGradle}-bin.zip\`. Below ${minAgp}, the build fails on \`checkDebugAarMetadata\` with "Dependency 'androidx.compose.X:1.9.0' requires Android Gradle plugin ${minAgp} or higher." (F-R4-8)\n` +
|
|
365
|
+
(isExisting
|
|
366
|
+
? `0d. Application class: detected existing \`${detection.fqClassName}\` in AndroidManifest.xml. Bootstrap emitted as an \`object\` (init helper); your existing Application stays the app's Application. ExtentosBootstrap.kt has full wiring instructions in its KDoc.\n`
|
|
367
|
+
: "") +
|
|
293
368
|
"1. Add mavenLocal() to settings.gradle.kts inside dependencyResolutionManagement.repositories (pre-1.0 the library resolves from the dev's local Maven cache)\n" +
|
|
294
369
|
"2. Add dependencies to app/build.gradle.kts\n" +
|
|
295
370
|
"3. In app/build.gradle.kts android { ... }: enable buildFeatures { buildConfig = true } and add buildConfigField(\"String\", \"EXTENTOS_SESSION_URL\", \"null\") inside defaultConfig. Default null routes to auto-bind: the library probes its host MCP server at startup and the backend attaches the device to whatever session createSimulatorSession provisions, no rebuilds between sessions. Only replace null with a quoted URL if createSimulatorSession returns a URL-bake snippet (the fallback path for cellular phone / cloud-hosted agent setups where the MCP probe can't reach).\n" +
|
|
296
371
|
"4. Add permissions to AndroidManifest.xml\n" +
|
|
297
372
|
"5. Write ExtentosBootstrap.kt\n" +
|
|
298
|
-
|
|
373
|
+
step6 +
|
|
299
374
|
"7. Add ExtentosConnectionPage(glasses) to your navigation graph (typical) or skip it for headless apps\n" +
|
|
300
375
|
"8. Build and verify (`./gradlew :app:assembleDebug` from the project root, after step 0's preflights are satisfied)";
|
|
301
376
|
payload.notes =
|
|
@@ -416,13 +491,16 @@ function buildIos(appPackage, libraryVersion, concise, placement) {
|
|
|
416
491
|
// Top-of-response narrative the agent reads first. The placement gate is now
|
|
417
492
|
// programmatic (handler returns `status: "needs_placement"` when the arg is
|
|
418
493
|
// omitted), so these instructions assume the placement is already chosen.
|
|
419
|
-
function developerInstructionsAndroid(placement) {
|
|
494
|
+
function developerInstructionsAndroid(placement, detection) {
|
|
420
495
|
const renderStep = placement === "headless"
|
|
421
496
|
? "Step 4: Headless — do NOT render ExtentosConnectionPage. The bootstrap connects in the background. Optionally read glasses.connection.state for a status badge."
|
|
422
497
|
: `Step 4: Render the chosen placement (${placement}) using suggestedRendering, or fetch the full snippet via searchDocs(topic: "connection_ui_placement").`;
|
|
498
|
+
const step2 = detection.mode === "existing"
|
|
499
|
+
? `Step 2: Apply the manual_patch in files[1] to your existing Application class \`${detection.fqClassName}\` — adds an ExtentosGlasses property + the init call from onCreate(). Do NOT touch \`<application android:name>\` in AndroidManifest.xml; your existing class remains the app's Application. The generated ExtentosBootstrap is an \`object\` (singleton helper), not an Application subclass.`
|
|
500
|
+
: 'Step 2: Set the Application class to ExtentosBootstrap in AndroidManifest.xml (`android:name=".extentos.ExtentosBootstrap"`).';
|
|
423
501
|
return ("Step 1: Apply the files[], dependencies[], repositories[], buildConfigFields[], and permissions[] outputs. " +
|
|
424
|
-
|
|
425
|
-
"Step 3: Add `androidx.navigation:navigation-compose` to deps if your placement uses NavHost (dedicated_route, settings_subscreen, bottom_tab). " +
|
|
502
|
+
step2 +
|
|
503
|
+
" Step 3: Add `androidx.navigation:navigation-compose` to deps if your placement uses NavHost (dedicated_route, settings_subscreen, bottom_tab). " +
|
|
426
504
|
renderStep +
|
|
427
505
|
" Step 5: Write your handler class(es) — subscribe to the SDK primitives (`glasses.audio.transcriptions()`, `glasses.camera.capturePhoto()`, …) inside whatever class fits your app's lifecycle. `getCodeExample(pattern)` returns a working composition you can peel from; `getCapabilityGuide(feature)` covers per-primitive call shape + gotchas. " +
|
|
428
506
|
"Step 6: Update the manifest's `capabilities` array with the SDK feature names your handler uses, then 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":"AAAA,oDAAoD;AACpD,yDAAyD;AACzD,kFAAkF;AAElF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,yCAAyC,GAC1C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAmB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,2EAA2E;AAC3E,2EAA2E;AAC3E,4DAA4D;AAC5D,MAAM,uBAAuB,GAAG,YAAY,CAAC,YAAY,CAAC;AAS1D,MAAM,aAAa,GAAyB;IAC1C,iBAAiB;IACjB,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,UAAU;CACF,CAAC;AAwCX;;;;;;;;GAQG;AACH,SAAS,gCAAgC,CACvC,WAA+B,EAC/B,UAAkB;IAElB,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAE3E,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACpF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAEzF,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC5D,CAAC;IAED,yEAAyE;IACzE,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAEzE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEtE,uEAAuE;IACvE,wEAAwE;IACxE,6CAA6C;IAC7C,IAAI,WAAW,KAAK,GAAG,UAAU,6BAA6B,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC1D,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,qBAAqB,UAAU,KAAK,CAAC;IACtD,MAAM,UAAU,GAAG,uBAAuB,UAAU,KAAK,CAAC;IAC1D,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAAE,QAAQ,GAAG,QAAQ,CAAC;SAC5D,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAAE,QAAQ,GAAG,UAAU,CAAC;IAC1E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,iBAAiB,GAAG;IACxB,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,kDAAkD,EAAE;IACpF,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,2BAA2B,EAAE;IAChE,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC7C,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,wCAAwC,EAAE;IACtE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,mDAAmD,EAAE;CAC/E,CAAC;AAEF,6EAA6E;AAC7E,qFAAqF;AACrF,gEAAgE;AAChE,uDAAuD;AACvD,MAAM,2BAA2B,GAA8B;IAC7D,eAAe,EACb,2BAA2B;QAC3B,iBAAiB;QACjB,sBAAsB;QACtB,0BAA0B;QAC1B,gDAAgD;QAChD,sCAAsC;QACtC,gFAAgF;QAChF,kGAAkG;QAClG,yBAAyB;QACzB,sBAAsB;QACtB,iBAAiB;QACjB,cAAc;QACd,sBAAsB;QACtB,iFAAiF;QACjF,SAAS;QACT,GAAG;IACL,kBAAkB,EAChB,2BAA2B;QAC3B,iBAAiB;QACjB,sBAAsB;QACtB,0BAA0B;QAC1B,sDAAsD;QACtD,sCAAsC;QACtC,gFAAgF;QAChF,kGAAkG;QAClG,yBAAyB;QACzB,sBAAsB;QACtB,iBAAiB;QACjB,cAAc;QACd,sBAAsB;QACtB,iFAAiF;QACjF,SAAS;QACT,GAAG;IACL,UAAU,EAAE,2DAA2D;IACvE,WAAW,EACT,oBAAoB;QACpB,oEAAoE;QACpE,2CAA2C;QAC3C,SAAS;QACT,GAAG;IACL,QAAQ,EAAE,sFAAsF;CACjG,CAAC;AAEF,MAAM,uBAAuB,GAA8B;IACzD,eAAe,EACb,qBAAqB;QACrB,kBAAkB;QAClB,iEAAiE;QACjE,wDAAwD;QACxD,+CAA+C;QAC/C,aAAa;QACb,GAAG;IACL,kBAAkB,EAChB,UAAU;QACV,8DAA8D;QAC9D,KAAK;QACL,yDAAyD;QACzD,gDAAgD;QAChD,6CAA6C;QAC7C,GAAG;IACL,UAAU,EACR,aAAa;QACb,kEAAkE;QAClE,gDAAgD;QAChD,uFAAuF;QACvF,GAAG;IACL,WAAW,EACT,0CAA0C;QAC1C,kFAAkF;IACpF,QAAQ,EAAE,sFAAsF;CACjG,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,GAAG,EAAE,yCAAyC;IAC9C,QAAQ,EAAE,eAAe;IACzB,WAAW,EACT,+LAA+L;CAClM,CAAC;AAEF,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,uDAAuD;IACvD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;YAChB,MAAM,EAAE,iBAAiB;YACzB,iBAAiB,EAAE;gBACjB,WAAW,EACT,oLAAoL;gBACtL,QAAQ,EAAE,4DAA4D;gBACtE,cAAc,EAAE,iBAAiB;gBACjC,oBAAoB,EAAE,sBAAsB;aAC7C;YACD,qBAAqB,EACnB,2VAA2V;YAC7V,OAAO,EACL,yGAAyG;SAC5G,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,uBAAuB,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC;IAElD,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,KAAK,SAAS;QACzB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC1F,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,aAAa,CAAC;gBACnB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,uDAAuD;gBAChE,OAAO,EAAE,8CAA8C;gBACvD,SAAS,EAAE,KAAK;aACjB,CAAC;SACH,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAE3C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACjD,OAAO;YACL,KAAK,EAAE,aAAa,CAAC;gBACnB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,4CAA4C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;gBACjF,OAAO,EAAE,wCAAwC;gBACjD,SAAS,EAAE,KAAK;aACjB,CAAC;SACH,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,aAAa,CAAC;gBACnB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,8CAA8C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;gBACtF,OAAO,EAAE,gCAAgC;gBACzC,SAAS,EAAE,KAAK;aACjB,CAAC;SACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO;YACL,KAAK,EAAE,aAAa,CAAC;gBACnB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,wDAAwD;gBACjE,OAAO,EAAE,iEAAiE;gBAC1E,SAAS,EAAE,KAAK;aACjB,CAAC;SACH,CAAC;IACJ,CAAC;IAED,IAAI,SAAgC,CAAC;IACrC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAsB,CAAC,EAAE,CAAC;YAC7F,OAAO;gBACL,KAAK,EAAE,aAAa,CAAC;oBACnB,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,4BAA4B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;oBACvG,OAAO,EACL,oLAAoL;oBACtL,SAAS,EAAE,KAAK;iBACjB,CAAC;aACH,CAAC;QACJ,CAAC;QACD,SAAS,GAAG,GAAG,CAAC,SAAsB,CAAC;IACzC,CAAC;IAED,MAAM,WAAW,GACf,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC/D,CAAC,CAAC,GAAG,CAAC,WAAW;QACjB,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,IAAI,GAAS;QACjB,QAAQ;QACR,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACvF,cAAc,EACZ,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,KAAK,UAAU;YACnE,CAAC,CAAC,GAAG,CAAC,cAAc;YACpB,CAAC,CAAC,SAAS;QACf,SAAS;QACT,WAAW;KACZ,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CACnB,UAAkB,EAClB,cAAsB,EACtB,OAAgB,EAChB,SAAoB,EACpB,WAA+B;IAE/B,MAAM,SAAS,GAAG,gCAAgC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,qBAAqB,UAAU,gCAAgC,CAAC;IACtF,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IACrF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,kBAAkB,CACjC,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,EACnD,MAAM,CACP,CAAC;IACF,6EAA6E;IAC7E,0EAA0E;IAC1E,uEAAuE;IACvE,oEAAoE;IACpE,wBAAwB;IACxB,QAAQ,CAAC,cAAc,GAAG;QACxB;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,mBAAmB;YAC7B,IAAI,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;YAC5C,WAAW,EAAE,MAAM;YACnB,eAAe,EAAE,0BAA0B;SAC5C;KACF,CAAC;IAEF,MAAM,KAAK,GAAgF;QACzF,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE;KACrE,CAAC;IACF,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAClC,gEAAgE;QAChE,qEAAqE;QACrE,gEAAgE;QAChE,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,IAAI,qBAAqB,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;QAC5G,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,yCAAyC,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC;SAC9F,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAA4B;QACvC,KAAK;QACL,QAAQ,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/D,YAAY,EAAE;YACZ,EAAE,QAAQ,EAAE,wBAAwB,cAAc,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE;YACvF,EAAE,QAAQ,EAAE,2BAA2B,cAAc,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE;YAC1F,2EAA2E;YAC3E,wEAAwE;YACxE,iCAAiC;SAClC;QACD,YAAY,EAAE;YACZ;gBACE,QAAQ,EAAE,cAAc;gBACxB,SAAS,EAAE,qBAAqB;gBAChC,OAAO,EACL,oMAAoM;aACvM;YACD;gBACE,QAAQ,EACN,yFAAyF;gBAC3F,SAAS,EAAE,qBAAqB;gBAChC,OAAO,EACL,iPAAiP;gBACnP,mBAAmB,EAAE;oBACnB,OAAO,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;oBAC5C,mBAAmB,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;oBACxD,IAAI,EAAE,wHAAwH;oBAC9H,kEAAkE;oBAClE,4DAA4D;oBAC5D,kEAAkE;oBAClE,gEAAgE;oBAChE,iEAAiE;oBACjE,uBAAuB;oBACvB,OAAO,EACL,4WAA4W;iBAC/W;aACF;SACF;QACD,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,sBAAsB;gBACjC,OAAO,EACL,mbAAmb;gBACrb,QAAQ,EAAE,0CAA0C;aACrD;SACF;QACD,WAAW,EAAE;YACX,sCAAsC;YACtC,mCAAmC;YACnC,6BAA6B;SAC9B;QACD,SAAS;QACT,kBAAkB,EAAE,2BAA2B,CAAC,SAAS,CAAC;QAC1D,iBAAiB,EAAE;YACjB,MAAM,EAAE,SAAS;YACjB,cAAc,EAAE,iBAAiB;YACjC,oBAAoB,EAAE,sBAAsB;SAC7C;QACD,qBAAqB,EAAE,4BAA4B,CAAC,SAAS,EAAE,SAAS,CAAC;QACzE,oBAAoB,EAAE,SAAS;QAC/B,OAAO,EACL,SAAS,CAAC,IAAI,KAAK,UAAU;YAC3B,CAAC,CAAC,uBAAuB,cAAc,oBAAoB,UAAU,gBAAgB,SAAS,oCAAoC,SAAS,CAAC,WAAW,4FAA4F,SAAS,CAAC,QAAQ,IAAI,uBAAuB,sHAAsH;YACtZ,CAAC,CAAC,uBAAuB,cAAc,oBAAoB,UAAU,gBAAgB,SAAS,8IAA8I,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2GAA2G,EAAE;KACjX,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACtD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC;QAC5D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC;QACjD,MAAM,KAAK,GAAG,UAAU;YACtB,CAAC,CAAC,qFAAsF,SAAwC,CAAC,WAAW,wLAAwL;YACpU,CAAC,CAAC,yBAAyB,UAAU,yEAAyE,CAAC;QACjH,OAAO,CAAC,gBAAgB;YACtB,qVAAqV;gBACrV,IAAI;gBACJ,kkBAAkkB;gBAClkB,ofAAof;gBACpf,gEAAgE,MAAM,yCAAyC,cAAc,6EAA6E,MAAM,8BAA8B,SAAS,uBAAuB,MAAM,6EAA6E,MAAM,2IAA2I,SAAS,qBAAqB,MAAM,6HAA6H,MAAM,yBAAyB;gBAClrB,CAAC,UAAU;oBACT,CAAC,CAAC,8CAA+C,SAAwC,CAAC,WAAW,sMAAsM;oBAC3S,CAAC,CAAC,EAAE,CAAC;gBACP,iKAAiK;gBACjK,+CAA+C;gBAC/C,okBAAokB;gBACpkB,6CAA6C;gBAC7C,iCAAiC;gBACjC,KAAK;gBACL,0GAA0G;gBAC1G,qHAAqH,CAAC;QACxH,OAAO,CAAC,KAAK;YACX,6sBAA6sB,CAAC;IACltB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CACf,UAAkB,EAClB,cAAsB,EACtB,OAAgB,EAChB,SAAoB;IAEpB,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,WAAW,UAAU,mCAAmC,CAAC;IAC/E,MAAM,YAAY,GAAG,WAAW,UAAU,IAAI,UAAU,WAAW,CAAC;IACpE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,kBAAkB,CACjC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,EAC/C,MAAM,CACP,CAAC;IACF,2EAA2E;IAC3E,2EAA2E;IAC3E,uEAAuE;IACvE,kCAAkC;IAClC,QAAQ,CAAC,cAAc,GAAG;QACxB;YACE,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,mBAAmB;YAC7B,IAAI,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;YAC5C,WAAW,EAAE,MAAM;YACnB,eAAe,EAAE,0BAA0B;SAC5C;KACF,CAAC;IAEF,2EAA2E;IAC3E,sEAAsE;IACtE,yEAAyE;IACzE,0EAA0E;IAC1E,4BAA4B;IAC5B,MAAM,KAAK,GAAG;QACZ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAiB,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC7E,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAuB,EAAE,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,EAAE;KACpG,CAAC;IAEF,MAAM,OAAO,GAA4B;QACvC,KAAK;QACL,QAAQ,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/D,YAAY,EAAE;YACZ;gBACE,OAAO,EAAE,2CAA2C;gBACpD,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,CAAC;aACvD;SACF;QACD,aAAa,EAAE;YACb,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,WAAW;YAClB,MAAM,EACJ,qMAAqM;YACvM,OAAO,EACL,gKAAgK;SACnK;QACD,kBAAkB,EAAE,CAAC,wBAAwB,CAAC;QAC9C,WAAW,EAAE,EAAE;QACf,kBAAkB,EAAE;YAClB,KAAK,EAAE;gBACL,gBAAgB,EAAE,eAAe;gBACjC,SAAS,EAAE,YAAY;gBACvB,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE,YAAY;aACrB;YACD,gBAAgB,EAAE;gBAChB,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,YAAY,CAAC,EAAE;aACpE;YACD,2BAA2B,EAAE,CAAC,YAAY,CAAC;YAC3C,qCAAqC,EAAE,CAAC,sBAAsB,CAAC;YAC/D,iBAAiB,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,oBAAoB,CAAC;YACtF,wBAAwB,EAAE,qDAAqD;YAC/E,4BAA4B,EAAE,6DAA6D;YAC3F,mCAAmC,EAAE,sDAAsD;YAC3F,iCAAiC,EAAE,qDAAqD;YACxF,+DAA+D;YAC/D,mEAAmE;YACnE,kEAAkE;YAClE,oEAAoE;YACpE,mEAAmE;YACnE,oEAAoE;YACpE,mEAAmE;YACnE,sBAAsB,EAAE;gBACtB,kBAAkB,EAAE;oBAClB,SAAS,EAAE,EAAE,kCAAkC,EAAE,IAAI,EAAE;oBACvD,WAAW,EAAE,EAAE,kCAAkC,EAAE,IAAI,EAAE;iBAC1D;aACF;SACF;QACD,SAAS;QACT,kBAAkB,EAAE,uBAAuB,CAAC,SAAS,CAAC;QACtD,iBAAiB,EAAE;YACjB,MAAM,EAAE,SAAS;YACjB,cAAc,EAAE,iBAAiB;YACjC,oBAAoB,EAAE,sBAAsB;SAC7C;QACD,qBAAqB,EAAE,wBAAwB,CAAC,SAAS,CAAC;QAC1D,OAAO,EAAE,uBAAuB,cAAc,mBAAmB,UAAU,oBAAoB,SAAS,4KAA4K;KACrR,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACtD,OAAO,CAAC,gBAAgB;YACtB,sQAAsQ;gBACtQ,IAAI;gBACJ,mCAAmC,QAAQ,mDAAmD,QAAQ,0PAA0P;gBAChW,oYAAoY;gBACpY,kEAAkE,cAAc,2FAA2F;gBAC3K,gJAAgJ;gBAChJ,kDAAkD;gBAClD,oCAAoC;gBACpC,YAAY,UAAU,+GAA+G;gBACrI,gFAAgF;gBAChF,qFAAqF;gBACrF,qBAAqB,CAAC;QACxB,OAAO,CAAC,KAAK;YACX,wJAAwJ;gBACxJ,wWAAwW;gBACxW,sMAAsM,CAAC;IAC3M,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,SAAS,4BAA4B,CACnC,SAAoB,EACpB,SAAsC;IAEtC,MAAM,UAAU,GACd,SAAS,KAAK,UAAU;QACtB,CAAC,CAAC,iKAAiK;QACnK,CAAC,CAAC,wCAAwC,SAAS,yGAAyG,CAAC;IACjK,MAAM,KAAK,GACT,SAAS,CAAC,IAAI,KAAK,UAAU;QAC3B,CAAC,CAAC,mFAAmF,SAAS,CAAC,WAAW,iSAAiS;QAC3Y,CAAC,CAAC,+HAA+H,CAAC;IACtI,OAAO,CACL,6GAA6G;QAC7G,KAAK;QACL,kJAAkJ;QAClJ,UAAU;QACV,sVAAsV;QACtV,2MAA2M,CAC5M,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAoB;IACpD,MAAM,UAAU,GACd,SAAS,KAAK,UAAU;QACtB,CAAC,CAAC,sKAAsK;QACxK,CAAC,CAAC,wCAAwC,SAAS,yGAAyG,CAAC;IACjK,OAAO,CACL,yPAAyP;QACzP,kFAAkF;QAClF,UAAU;QACV,sVAAsV;QACtV,2MAA2M,CAC5M,CAAC;AACJ,CAAC"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type AndroidBootstrapTemplate = "subclass" | "init_helper";
|
|
2
|
+
export declare function renderAndroidBootstrap(appPackage: string, template?: AndroidBootstrapTemplate): string;
|
|
3
|
+
/**
|
|
4
|
+
* Patch-hint text shown to the agent when the scaffold detects an existing
|
|
5
|
+
* Application class. The agent reads this and applies it surgically to the
|
|
6
|
+
* customer's Application file. Mirrors the iOS App.swift manual_patch shape.
|
|
7
|
+
*/
|
|
8
|
+
export declare function renderAndroidExistingApplicationPatchHint(existingFqClassName: string, existingFileRelativePath: string | null): string;
|
|
2
9
|
//# sourceMappingURL=androidBootstrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"androidBootstrap.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"androidBootstrap.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,aAAa,CAAC;AAElE,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,wBAAqC,GAC9C,MAAM,CAIR;AAoHD;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,EAAE,MAAM,GAAG,IAAI,GACtC,MAAM,CA8BR"}
|
|
@@ -1,20 +1,37 @@
|
|
|
1
|
-
// Generated Kotlin
|
|
1
|
+
// Generated Kotlin bootstrap for generateConnectionModule.
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
// 1. instantiate ExtentosGlasses (the SDK entry point), and
|
|
5
|
-
// 2. open the persistent transport so capability primitives are usable.
|
|
3
|
+
// Two shapes:
|
|
6
4
|
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
// composable or Application class after `bootstrap.glasses` is available.
|
|
5
|
+
// Template A — `subclass`: ExtentosBootstrap *is* the app's Application
|
|
6
|
+
// class. Emitted when the project has no existing Application subclass
|
|
7
|
+
// (greenfield). The customer sets android:name=".extentos.ExtentosBootstrap"
|
|
8
|
+
// in AndroidManifest.xml and the SDK init runs in onCreate().
|
|
12
9
|
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
// on
|
|
17
|
-
|
|
10
|
+
// Template B — `init_helper`: ExtentosBootstrap is an `object` exposing
|
|
11
|
+
// `create(application)` and `openTransport(...)`. Emitted when the
|
|
12
|
+
// project already has an Application subclass (detected via the
|
|
13
|
+
// android:name attribute on <application> in AndroidManifest.xml).
|
|
14
|
+
// The customer keeps their existing Application class and calls
|
|
15
|
+
// ExtentosBootstrap.create(this) from its onCreate(). No manifest
|
|
16
|
+
// mutation, no clobber.
|
|
17
|
+
//
|
|
18
|
+
// Post pure-SDK pivot the bootstrap's job is minimal: (1) instantiate
|
|
19
|
+
// ExtentosGlasses, (2) open the persistent transport. Everything else —
|
|
20
|
+
// wake-word matching, photo/video capture, TTS, business logic — is the
|
|
21
|
+
// customer's Handler class, written by hand against `glasses.audio.*`,
|
|
22
|
+
// `glasses.camera.*`, etc.
|
|
23
|
+
//
|
|
24
|
+
// The `EXTENTOS-GENERATED` header marker is load-bearing —
|
|
25
|
+
// validateIntegration reads it to detect drift against the recorded hash
|
|
26
|
+
// and refuses to validate a project whose bootstrap has been hand-edited
|
|
27
|
+
// (those edits would be lost on the next regenerate). Customer-side init
|
|
28
|
+
// code goes outside this file.
|
|
29
|
+
export function renderAndroidBootstrap(appPackage, template = "subclass") {
|
|
30
|
+
return template === "init_helper"
|
|
31
|
+
? renderInitHelperTemplate(appPackage)
|
|
32
|
+
: renderSubclassTemplate(appPackage);
|
|
33
|
+
}
|
|
34
|
+
function renderSubclassTemplate(appPackage) {
|
|
18
35
|
return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via generateConnectionModule.
|
|
19
36
|
package ${appPackage}.extentos
|
|
20
37
|
|
|
@@ -61,4 +78,110 @@ class ExtentosBootstrap : Application() {
|
|
|
61
78
|
}
|
|
62
79
|
`;
|
|
63
80
|
}
|
|
81
|
+
function renderInitHelperTemplate(appPackage) {
|
|
82
|
+
return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via generateConnectionModule.
|
|
83
|
+
package ${appPackage}.extentos
|
|
84
|
+
|
|
85
|
+
import android.app.Application
|
|
86
|
+
import android.util.Log
|
|
87
|
+
import ${appPackage}.BuildConfig
|
|
88
|
+
import com.extentos.glasses.core.ExtentosConfig
|
|
89
|
+
import com.extentos.glasses.core.ExtentosGlasses
|
|
90
|
+
import kotlinx.coroutines.CoroutineScope
|
|
91
|
+
import kotlinx.coroutines.launch
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Init helper for the Extentos SDK. Generated because your project already
|
|
95
|
+
* has an existing Application subclass — the scaffold detected it in
|
|
96
|
+
* AndroidManifest.xml and emitted this \`object\` instead of clobbering
|
|
97
|
+
* your class. Wire it up from your existing Application's onCreate():
|
|
98
|
+
*
|
|
99
|
+
* class MyApp : Application() {
|
|
100
|
+
* lateinit var glasses: ExtentosGlasses
|
|
101
|
+
* private set
|
|
102
|
+
*
|
|
103
|
+
* private val appScope =
|
|
104
|
+
* CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
|
105
|
+
*
|
|
106
|
+
* override fun onCreate() {
|
|
107
|
+
* super.onCreate()
|
|
108
|
+
* glasses = ExtentosBootstrap.create(this)
|
|
109
|
+
* ExtentosBootstrap.openTransport(glasses, appScope)
|
|
110
|
+
* }
|
|
111
|
+
* }
|
|
112
|
+
*
|
|
113
|
+
* Hold the ExtentosGlasses instance from your Application class — pass it
|
|
114
|
+
* down to Activities / Composables / Handler classes as you would any
|
|
115
|
+
* application-scoped singleton. Don't add a second Application subclass;
|
|
116
|
+
* Android allows exactly one.
|
|
117
|
+
*/
|
|
118
|
+
object ExtentosBootstrap {
|
|
119
|
+
private const val TAG = "Extentos"
|
|
120
|
+
|
|
121
|
+
/** Instantiate the SDK. Call once from your Application.onCreate(). */
|
|
122
|
+
fun create(application: Application): ExtentosGlasses =
|
|
123
|
+
ExtentosGlasses.create(
|
|
124
|
+
ExtentosConfig(
|
|
125
|
+
applicationContext = application,
|
|
126
|
+
debug = BuildConfig.DEBUG,
|
|
127
|
+
)
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Open the persistent transport in the background. Fire-and-forget —
|
|
132
|
+
* the SDK reconnects automatically on transient failures. Pass any
|
|
133
|
+
* CoroutineScope tied to your Application lifetime
|
|
134
|
+
* (\`CoroutineScope(SupervisorJob() + Dispatchers.Main)\` is the
|
|
135
|
+
* canonical shape).
|
|
136
|
+
*/
|
|
137
|
+
fun openTransport(glasses: ExtentosGlasses, scope: CoroutineScope) {
|
|
138
|
+
scope.launch {
|
|
139
|
+
runCatching { glasses.connection.connect() }
|
|
140
|
+
.onFailure { Log.e(TAG, "glasses.connection.connect() failed", it) }
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
`;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Patch-hint text shown to the agent when the scaffold detects an existing
|
|
148
|
+
* Application class. The agent reads this and applies it surgically to the
|
|
149
|
+
* customer's Application file. Mirrors the iOS App.swift manual_patch shape.
|
|
150
|
+
*/
|
|
151
|
+
export function renderAndroidExistingApplicationPatchHint(existingFqClassName, existingFileRelativePath) {
|
|
152
|
+
const fileHint = existingFileRelativePath
|
|
153
|
+
? `Likely path: \`${existingFileRelativePath}\``
|
|
154
|
+
: "Find by grepping for `: Application(` in app/src/main/java/**";
|
|
155
|
+
return `Open the customer's existing Application class (\`${existingFqClassName}\`). ${fileHint}.
|
|
156
|
+
|
|
157
|
+
Add these imports if they're not already present:
|
|
158
|
+
|
|
159
|
+
import com.extentos.glasses.core.ExtentosGlasses
|
|
160
|
+
import kotlinx.coroutines.CoroutineScope
|
|
161
|
+
import kotlinx.coroutines.Dispatchers
|
|
162
|
+
import kotlinx.coroutines.SupervisorJob
|
|
163
|
+
import ${moduleFromFqName(existingFqClassName) || "<your-package>"}.extentos.ExtentosBootstrap
|
|
164
|
+
|
|
165
|
+
Add a property and a scope:
|
|
166
|
+
|
|
167
|
+
lateinit var glasses: ExtentosGlasses
|
|
168
|
+
private set
|
|
169
|
+
|
|
170
|
+
private val appScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
|
171
|
+
|
|
172
|
+
And initialize them from onCreate() — directly after \`super.onCreate()\`:
|
|
173
|
+
|
|
174
|
+
glasses = ExtentosBootstrap.create(this)
|
|
175
|
+
ExtentosBootstrap.openTransport(glasses, appScope)
|
|
176
|
+
|
|
177
|
+
Do NOT change the \`<application android:name>\` attribute in
|
|
178
|
+
AndroidManifest.xml — the existing class stays the app's Application. The
|
|
179
|
+
generated ExtentosBootstrap is an \`object\` (Kotlin singleton), not an
|
|
180
|
+
Application subclass; it's invoked from yours.`;
|
|
181
|
+
}
|
|
182
|
+
// "com.example.gymcoach.MyApp" → "com.example.gymcoach"
|
|
183
|
+
function moduleFromFqName(fq) {
|
|
184
|
+
const lastDot = fq.lastIndexOf(".");
|
|
185
|
+
return lastDot >= 0 ? fq.slice(0, lastDot) : "";
|
|
186
|
+
}
|
|
64
187
|
//# sourceMappingURL=androidBootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"androidBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"androidBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,cAAc;AACd,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,iFAAiF;AACjF,kEAAkE;AAClE,EAAE;AACF,0EAA0E;AAC1E,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,sEAAsE;AACtE,4BAA4B;AAC5B,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,2BAA2B;AAC3B,EAAE;AACF,2DAA2D;AAC3D,yEAAyE;AACzE,yEAAyE;AACzE,yEAAyE;AACzE,+BAA+B;AAI/B,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,WAAqC,UAAU;IAE/C,OAAO,QAAQ,KAAK,aAAa;QAC/B,CAAC,CAAC,wBAAwB,CAAC,UAAU,CAAC;QACtC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAkB;IAChD,OAAO;UACC,UAAU;;;;SAIX,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuClB,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB;IAClD,OAAO;UACC,UAAU;;;;SAIX,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDlB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yCAAyC,CACvD,mBAA2B,EAC3B,wBAAuC;IAEvC,MAAM,QAAQ,GAAG,wBAAwB;QACvC,CAAC,CAAC,kBAAkB,wBAAwB,IAAI;QAChD,CAAC,CAAC,+DAA+D,CAAC;IACpE,OAAO,qDAAqD,mBAAmB,QAAQ,QAAQ;;;;;;;;aAQpF,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,gBAAgB;;;;;;;;;;;;;;;;;+CAiBvB,CAAC;AAChD,CAAC;AAED,wDAAwD;AACxD,SAAS,gBAAgB,CAAC,EAAU;IAClC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC"}
|