@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.
@@ -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,EAiXpC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAyB,CAAC;AAShD,wBAAgB,iCAAiC,CAC/C,IAAI,GAAE,SAAS,OAAO,EAAoB,GACzC,IAAI,CAiBN"}
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":"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"}
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":"AASA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAiI5E,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAoCvE"}
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 bootstrapContent = renderAndroidBootstrap(appPackage);
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
- summary: `Scaffolded Extentos ${libraryVersion} for Android app ${appPackage} with placement: ${placement}. Wrote 1 generated file (ExtentosBootstrap.kt) and 1 manifest. 3 Gradle dependencies, 3 permissions, 1 repository (mavenLocal), and 1 BuildConfig field to wire.`,
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
- `6. Set android:name=\"${appPackage}.extentos.ExtentosBootstrap\" on <application> in AndroidManifest.xml\n` +
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
- "Step 2: Set the Application class to ExtentosBootstrap in AndroidManifest.xml (`android:name=\".extentos.ExtentosBootstrap\"`). " +
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":"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"}
@@ -1,2 +1,9 @@
1
- export declare function renderAndroidBootstrap(appPackage: string): string;
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":"AAiBA,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA8CjE"}
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 Application subclass for generateConnectionModule.
1
+ // Generated Kotlin bootstrap for generateConnectionModule.
2
2
  //
3
- // Post pure-SDK pivot the bootstrap's job is minimal:
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
- // Everything else wake-word matching, photo/video capture, TTS, business
8
- // logic is the customer's Handler class, written by hand against
9
- // `glasses.audio.*`, `glasses.camera.*`, etc. The bootstrap should not
10
- // reference handlers by name; the customer wires them from their own root
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
- // The `EXTENTOS-GENERATED` header marker is load-bearing validateIntegration
14
- // reads it to detect drift against the recorded hash and refuses to validate
15
- // a project whose bootstrap has been hand-edited (those edits would be lost
16
- // on the next regenerate). Customer-side init code goes outside this file.
17
- export function renderAndroidBootstrap(appPackage) {
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,sEAAsE;AACtE,EAAE;AACF,sDAAsD;AACtD,8DAA8D;AAC9D,0EAA0E;AAC1E,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,uEAAuE;AACvE,0EAA0E;AAC1E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAE3E,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO;UACC,UAAU;;;;SAIX,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuClB,CAAC;AACF,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extentos/mcp-server",
3
- "version": "0.0.60",
3
+ "version": "0.0.61",
4
4
  "description": "Extentos MCP server — deterministic tools for building Meta-glasses apps.",
5
5
  "type": "module",
6
6
  "bin": {