@extentos/mcp-server 0.0.16 → 0.0.18

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.
Files changed (65) hide show
  1. package/dist/generated/schemas.js +7 -7
  2. package/dist/generated/schemas.js.map +1 -1
  3. package/dist/index.js +2 -2
  4. package/dist/tools/data/capabilities.js +1 -1
  5. package/dist/tools/data/capabilities.js.map +1 -1
  6. package/dist/tools/data/version.d.ts.map +1 -1
  7. package/dist/tools/data/version.js +6 -1
  8. package/dist/tools/data/version.js.map +1 -1
  9. package/dist/tools/definitions.d.ts.map +1 -1
  10. package/dist/tools/definitions.js +33 -6
  11. package/dist/tools/definitions.js.map +1 -1
  12. package/dist/tools/docs/index.d.ts.map +1 -1
  13. package/dist/tools/docs/index.js +64 -27
  14. package/dist/tools/docs/index.js.map +1 -1
  15. package/dist/tools/handlers/createSimulatorSession.js +2 -2
  16. package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
  17. package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
  18. package/dist/tools/handlers/generateConnectionModule.js +146 -34
  19. package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
  20. package/dist/tools/handlers/generateConsumer.d.ts.map +1 -1
  21. package/dist/tools/handlers/generateConsumer.js +96 -22
  22. package/dist/tools/handlers/generateConsumer.js.map +1 -1
  23. package/dist/tools/handlers/getPlatformInfo.d.ts.map +1 -1
  24. package/dist/tools/handlers/getPlatformInfo.js +129 -20
  25. package/dist/tools/handlers/getPlatformInfo.js.map +1 -1
  26. package/dist/tools/handlers/getVoiceCommandGuidance.js +1 -1
  27. package/dist/tools/handlers/getVoiceCommandGuidance.js.map +1 -1
  28. package/dist/tools/handlers/initSpec.d.ts.map +1 -1
  29. package/dist/tools/handlers/initSpec.js +37 -2
  30. package/dist/tools/handlers/initSpec.js.map +1 -1
  31. package/dist/tools/handlers/inspectIntegration.d.ts.map +1 -1
  32. package/dist/tools/handlers/inspectIntegration.js +5 -35
  33. package/dist/tools/handlers/inspectIntegration.js.map +1 -1
  34. package/dist/tools/handlers/updateSpec.d.ts +1 -1
  35. package/dist/tools/handlers/updateSpec.d.ts.map +1 -1
  36. package/dist/tools/handlers/updateSpec.js +49 -1
  37. package/dist/tools/handlers/updateSpec.js.map +1 -1
  38. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  39. package/dist/tools/handlers/validateIntegration.js +6 -27
  40. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  41. package/dist/tools/templates/androidBootstrap.js +67 -67
  42. package/dist/tools/templates/callbackHandler.d.ts.map +1 -1
  43. package/dist/tools/templates/callbackHandler.js +30 -6
  44. package/dist/tools/templates/callbackHandler.js.map +1 -1
  45. package/dist/tools/templates/iosBootstrap.js +64 -64
  46. package/dist/tools/templates/streamConsumer.js +24 -4
  47. package/dist/tools/templates/streamConsumer.js.map +1 -1
  48. package/dist/tools/util/dependency.d.ts +7 -0
  49. package/dist/tools/util/dependency.d.ts.map +1 -0
  50. package/dist/tools/util/dependency.js +61 -0
  51. package/dist/tools/util/dependency.js.map +1 -0
  52. package/dist/tools/util/generatedHash.d.ts +13 -0
  53. package/dist/tools/util/generatedHash.d.ts.map +1 -0
  54. package/dist/tools/util/generatedHash.js +37 -0
  55. package/dist/tools/util/generatedHash.js.map +1 -0
  56. package/dist/tools/util/permissions.d.ts.map +1 -1
  57. package/dist/tools/util/permissions.js +26 -5
  58. package/dist/tools/util/permissions.js.map +1 -1
  59. package/dist/tools/util/userCodeMerge.d.ts +33 -0
  60. package/dist/tools/util/userCodeMerge.d.ts.map +1 -0
  61. package/dist/tools/util/userCodeMerge.js +127 -0
  62. package/dist/tools/util/userCodeMerge.js.map +1 -0
  63. package/dist/tools/validation/validateSpec.js +1 -1
  64. package/dist/tools/validation/validateSpec.js.map +1 -1
  65. package/package.json +1 -1
@@ -14,74 +14,74 @@
14
14
  import { iosModuleName } from "../util/appPackage.js";
15
15
  export function renderIosBootstrap(appPackage) {
16
16
  const moduleName = iosModuleName(appPackage);
17
- return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via MCP tools.
18
- import Foundation
19
- import SwiftUI
20
- import os
21
- import GlassesCore
22
-
23
- @MainActor
24
- final class ExtentosBootstrap: ObservableObject {
25
- static let shared = ExtentosBootstrap()
26
-
27
- let glasses: ExtentosGlasses
28
- let sceneObserver: ExtentosSceneObserver
29
-
30
- private static let log = Logger(subsystem: "${appPackage}", category: "Extentos")
31
-
32
- private init() {
33
- // debug = true gates the auto-bind probe path on Android (rule 4
34
- // of TransportChoice.Auto). iOS auto-bind isn't built yet, but
35
- // wiring debug from the build configuration here means the iOS
36
- // template doesn't have to be regenerated when iOS auto-bind ships.
37
- #if DEBUG
38
- let isDebugBuild = true
39
- #else
40
- let isDebugBuild = false
41
- #endif
42
- let config = ExtentosConfig(
43
- appId: Bundle.main.infoDictionary?["EXTENTOS_APP_ID"] as? String,
44
- accountId: Bundle.main.infoDictionary?["EXTENTOS_ACCOUNT_ID"] as? String,
45
- transport: .auto,
46
- debug: isDebugBuild,
47
- telemetryConsent: true
48
- )
49
- glasses = Extentos.create(config: config)
50
- sceneObserver = ExtentosSceneObserver(glasses: glasses)
51
-
52
- // EXTENTOS-GENERATED-START:dispatch
53
- // Callback handler registration is emitted by generateConsumer(kind: "callback").
54
- // EXTENTOS-GENERATED-END:dispatch
55
-
56
- Task.detached { [glasses] in
57
- switch await glasses.runtime.loadSpec() {
58
- case .success(let handle):
59
- let spec = await glasses.runtime.currentSpec()
60
- let triggers = spec?.triggers.count ?? 0
61
- let blocks = spec?.blocks.count ?? 0
62
- Self.log.info("spec loaded: \\(triggers) trigger(s), \\(blocks) block(s) [handle=\\(handle, privacy: .public)]")
63
- case .failure(let err):
64
- Self.log.error("spec load FAILED — triggers will not fire: \\(String(describing: err), privacy: .public)")
65
- if case .validationFailed(let errors) = err {
66
- for e in errors {
67
- Self.log.error(" \\(e.path, privacy: .public): \\(e.message, privacy: .public)")
68
- }
69
- }
70
- }
71
- await glasses.connect()
72
- }
73
- }
74
- }
17
+ return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via MCP tools.
18
+ import Foundation
19
+ import SwiftUI
20
+ import os
21
+ import GlassesCore
22
+
23
+ @MainActor
24
+ final class ExtentosBootstrap: ObservableObject {
25
+ static let shared = ExtentosBootstrap()
26
+
27
+ let glasses: ExtentosGlasses
28
+ let sceneObserver: ExtentosSceneObserver
29
+
30
+ private static let log = Logger(subsystem: "${appPackage}", category: "Extentos")
31
+
32
+ private init() {
33
+ // debug = true gates the auto-bind probe path on Android (rule 4
34
+ // of TransportChoice.Auto). iOS auto-bind isn't built yet, but
35
+ // wiring debug from the build configuration here means the iOS
36
+ // template doesn't have to be regenerated when iOS auto-bind ships.
37
+ #if DEBUG
38
+ let isDebugBuild = true
39
+ #else
40
+ let isDebugBuild = false
41
+ #endif
42
+ let config = ExtentosConfig(
43
+ appId: Bundle.main.infoDictionary?["EXTENTOS_APP_ID"] as? String,
44
+ accountId: Bundle.main.infoDictionary?["EXTENTOS_ACCOUNT_ID"] as? String,
45
+ transport: .auto,
46
+ debug: isDebugBuild,
47
+ telemetryConsent: true
48
+ )
49
+ glasses = Extentos.create(config: config)
50
+ sceneObserver = ExtentosSceneObserver(glasses: glasses)
51
+
52
+ // EXTENTOS-GENERATED-START:dispatch
53
+ // Callback handler registration is emitted by generateConsumer(kind: "callback").
54
+ // EXTENTOS-GENERATED-END:dispatch
55
+
56
+ Task.detached { [glasses] in
57
+ switch await glasses.runtime.loadSpec() {
58
+ case .success(let handle):
59
+ let spec = await glasses.runtime.currentSpec()
60
+ let triggers = spec?.triggers.count ?? 0
61
+ let blocks = spec?.blocks.count ?? 0
62
+ Self.log.info("spec loaded: \\(triggers) trigger(s), \\(blocks) block(s) [handle=\\(handle, privacy: .public)]")
63
+ case .failure(let err):
64
+ Self.log.error("spec load FAILED — triggers will not fire: \\(String(describing: err), privacy: .public)")
65
+ if case .validationFailed(let errors) = err {
66
+ for e in errors {
67
+ Self.log.error(" \\(e.path, privacy: .public): \\(e.message, privacy: .public)")
68
+ }
69
+ }
70
+ }
71
+ await glasses.connect()
72
+ }
73
+ }
74
+ }
75
75
  `;
76
76
  }
77
77
  export function renderIosAppPatchHint(appPackage) {
78
78
  const moduleName = iosModuleName(appPackage);
79
- return `Add inside @main struct ${moduleName}App: App's WindowGroup scene, on the root view:
80
- .onOpenURL { url in
81
- Task { _ = try? await Wearables.shared.handleUrl(url) }
82
- }
83
- .onChange(of: scenePhase) { _, newPhase in
84
- ExtentosBootstrap.shared.sceneObserver.scenePhaseChanged(to: newPhase)
79
+ return `Add inside @main struct ${moduleName}App: App's WindowGroup scene, on the root view:
80
+ .onOpenURL { url in
81
+ Task { _ = try? await Wearables.shared.handleUrl(url) }
82
+ }
83
+ .onChange(of: scenePhase) { _, newPhase in
84
+ ExtentosBootstrap.shared.sceneObserver.scenePhaseChanged(to: newPhase)
85
85
  }`;
86
86
  }
87
87
  //# sourceMappingURL=iosBootstrap.js.map
@@ -29,6 +29,10 @@ function androidLifecycleTemplate(appPackage, streams, concise) {
29
29
  const types = collectAndroidTypes(streams);
30
30
  const header = `// EXTENTOS-GENERATED — stream consumer boilerplate. Regenerate via MCP tools.\n` +
31
31
  `package ${appPackage}.extentos\n\n` +
32
+ `// USER-CODE-START:imports\n` +
33
+ `// Auto-imports from your IDE land HERE — anything OUTSIDE this block is\n` +
34
+ `// regenerated and your edits will be lost. The core library imports below\n` +
35
+ `// are pre-populated; add any extras inside this block.\n` +
32
36
  `import androidx.lifecycle.Lifecycle\n` +
33
37
  `import androidx.lifecycle.LifecycleOwner\n` +
34
38
  `import androidx.lifecycle.lifecycleScope\n` +
@@ -36,7 +40,8 @@ function androidLifecycleTemplate(appPackage, streams, concise) {
36
40
  `import com.extentos.glasses.core.ExtentosGlasses\n` +
37
41
  types.map((t) => `import com.extentos.glasses.core.${t}\n`).join("") +
38
42
  `import kotlinx.coroutines.flow.catch\n` +
39
- `import kotlinx.coroutines.launch\n\n`;
43
+ `import kotlinx.coroutines.launch\n` +
44
+ `// USER-CODE-END:imports\n\n`;
40
45
  const prose = concise
41
46
  ? ""
42
47
  : `/**\n * Call from onCreate() or a LaunchedEffect after glasses are connected.\n * Collection stops when the lifecycle drops below STARTED (screen off, backgrounded)\n * and resumes automatically when STARTED again.\n */\n`;
@@ -51,11 +56,16 @@ function androidConnectionTemplate(appPackage, streams, concise) {
51
56
  const types = collectAndroidTypes(streams);
52
57
  const header = `// EXTENTOS-GENERATED — stream consumer boilerplate (connection-scoped). Regenerate via MCP tools.\n` +
53
58
  `package ${appPackage}.extentos\n\n` +
59
+ `// USER-CODE-START:imports\n` +
60
+ `// Auto-imports from your IDE land HERE — anything OUTSIDE this block is\n` +
61
+ `// regenerated and your edits will be lost. The core library imports below\n` +
62
+ `// are pre-populated; add any extras inside this block.\n` +
54
63
  `import com.extentos.glasses.core.ExtentosGlasses\n` +
55
64
  `import com.extentos.glasses.core.GlassesState\n` +
56
65
  types.map((t) => `import com.extentos.glasses.core.${t}\n`).join("") +
57
66
  `import kotlinx.coroutines.flow.catch\n` +
58
- `import kotlinx.coroutines.launch\n\n`;
67
+ `import kotlinx.coroutines.launch\n` +
68
+ `// USER-CODE-END:imports\n\n`;
59
69
  const prose = concise
60
70
  ? ""
61
71
  : `// These collectors live as long as the glasses are connected. They survive\n// Activity recreation but stop on disconnect — the per-connection scope\n// cancels all children automatically when glasses disconnect.\n\n`;
@@ -172,8 +182,13 @@ function androidStreamMeta(type) {
172
182
  }
173
183
  function iosLifecycleTemplate(streams, concise) {
174
184
  const header = `// EXTENTOS-GENERATED — stream consumer boilerplate. Regenerate via MCP tools.\n` +
185
+ `// USER-CODE-START:imports\n` +
186
+ `// Auto-imports from your IDE land HERE — anything OUTSIDE this block is\n` +
187
+ `// regenerated and your edits will be lost. The core library imports below\n` +
188
+ `// are pre-populated; add any extras inside this block.\n` +
175
189
  `import Foundation\n` +
176
- `import GlassesCore\n\n`;
190
+ `import GlassesCore\n` +
191
+ `// USER-CODE-END:imports\n\n`;
177
192
  const prose = concise
178
193
  ? ""
179
194
  : `/// Call from your View's .task { ... } after glasses are connected.\n/// The Tasks are cancelled automatically when the parent task is cancelled.\n`;
@@ -187,8 +202,13 @@ function iosLifecycleTemplate(streams, concise) {
187
202
  }
188
203
  function iosConnectionTemplate(streams, concise) {
189
204
  const header = `// EXTENTOS-GENERATED — stream consumer boilerplate (connection-scoped). Regenerate via MCP tools.\n` +
205
+ `// USER-CODE-START:imports\n` +
206
+ `// Auto-imports from your IDE land HERE — anything OUTSIDE this block is\n` +
207
+ `// regenerated and your edits will be lost. The core library imports below\n` +
208
+ `// are pre-populated; add any extras inside this block.\n` +
190
209
  `import Foundation\n` +
191
- `import GlassesCore\n\n`;
210
+ `import GlassesCore\n` +
211
+ `// USER-CODE-END:imports\n\n`;
192
212
  const prose = concise
193
213
  ? ""
194
214
  : `/// Observes ExtentosGlasses state and launches per-connection Tasks that are\n/// cancelled automatically when the glasses disconnect.\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"streamConsumer.js","sourceRoot":"","sources":["../../../src/tools/templates/streamConsumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamConsumer.js","sourceRoot":"","sources":["../../../src/tools/templates/streamConsumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface DependencyResult {
2
+ found: boolean;
3
+ coordinate: string | null;
4
+ file: string | null;
5
+ }
6
+ export declare function inspectDependency(projectPath: string, platform: string | undefined, manifest: Record<string, unknown>): DependencyResult;
7
+ //# sourceMappingURL=dependency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency.d.ts","sourceRoot":"","sources":["../../../src/tools/util/dependency.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,gBAAgB,CAyDlB"}
@@ -0,0 +1,61 @@
1
+ // Shared dependency-presence inspection for inspectIntegration / validateIntegration.
2
+ // Single source of truth — was duplicated in both handlers and went stale on the
3
+ // catalog-aware bump (modern Android Gradle uses gradle/libs.versions.toml; the
4
+ // old logic only scanned app/build.gradle.kts and false-flagged catalog declarations).
5
+ import { readFileSync, existsSync } from "node:fs";
6
+ import { join } from "node:path";
7
+ export function inspectDependency(projectPath, platform, manifest) {
8
+ if (platform === "android") {
9
+ const gradle = manifest.gradle;
10
+ const coord = typeof gradle?.coordinate === "string" ? gradle.coordinate : null;
11
+ const buildFile = typeof gradle?.buildFile === "string" ? gradle.buildFile : "app/build.gradle.kts";
12
+ if (!coord)
13
+ return { found: false, coordinate: coord, file: buildFile };
14
+ const buildAbs = join(projectPath, buildFile);
15
+ if (!existsSync(buildAbs))
16
+ return { found: false, coordinate: coord, file: buildFile };
17
+ const buildText = readFileSync(buildAbs, "utf8");
18
+ const [group, name] = coord.split(":");
19
+ const groupName = `${group}:${name}`;
20
+ // Path 1: legacy direct-coord declaration in build.gradle.kts.
21
+ if (buildText.includes(groupName)) {
22
+ return { found: true, coordinate: coord, file: buildFile };
23
+ }
24
+ // Path 2: version catalog. Both conditions must hold to avoid false-positives
25
+ // from stray catalog entries that aren't actually wired into the build.
26
+ const catalogRel = "gradle/libs.versions.toml";
27
+ const catalogAbs = join(projectPath, catalogRel);
28
+ if (existsSync(catalogAbs)) {
29
+ const catalogText = readFileSync(catalogAbs, "utf8");
30
+ // Single-line library entry: alias = { group = "...", name = "...", version... }
31
+ // group and name can appear in either order; both must match the coord.
32
+ const entryRe = /^\s*([A-Za-z0-9_.-]+)\s*=\s*\{([^}]*)\}/gm;
33
+ let m;
34
+ while ((m = entryRe.exec(catalogText)) !== null) {
35
+ const [, alias, body] = m;
36
+ const groupMatch = /\bgroup\s*=\s*"([^"]+)"/.exec(body);
37
+ const nameMatch = /\bname\s*=\s*"([^"]+)"/.exec(body);
38
+ if (groupMatch?.[1] === group && nameMatch?.[1] === name) {
39
+ // Aliases in TOML use - or .; in Gradle they're always exposed dotted.
40
+ const dottedAlias = alias.replace(/-/g, ".");
41
+ if (buildText.includes(`libs.${dottedAlias}`)) {
42
+ return { found: true, coordinate: coord, file: `${buildFile} (via ${catalogRel})` };
43
+ }
44
+ }
45
+ }
46
+ }
47
+ return { found: false, coordinate: coord, file: buildFile };
48
+ }
49
+ if (platform === "ios") {
50
+ const spm = manifest.spm;
51
+ const pkg = typeof spm?.package === "string" ? spm.package : null;
52
+ const projectFile = typeof spm?.projectFile === "string" ? spm.projectFile : "Package.swift";
53
+ const abs = join(projectPath, projectFile);
54
+ if (!pkg || !existsSync(abs))
55
+ return { found: false, coordinate: pkg, file: projectFile };
56
+ const text = readFileSync(abs, "utf8");
57
+ return { found: text.includes(pkg), coordinate: pkg, file: projectFile };
58
+ }
59
+ return { found: false, coordinate: null, file: null };
60
+ }
61
+ //# sourceMappingURL=dependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../../src/tools/util/dependency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Compute the manifest hash for a generated file. Replaces the body of every
3
+ * USER-CODE-START / USER-CODE-END block with a fixed placeholder before
4
+ * sha256-ing, so user implementations don't trip drift warnings.
5
+ *
6
+ * Returns the canonical `sha256:<hex>` form recorded in manifest.generatedFiles[].hash.
7
+ *
8
+ * Files without any USER-CODE markers (e.g., ExtentosBootstrap) hash exactly
9
+ * as before — the regex finds no match, the content is hashed verbatim. This
10
+ * preserves behavior for tool-owned files that have no developer-edited regions.
11
+ */
12
+ export declare function hashGeneratedContent(content: string): string;
13
+ //# sourceMappingURL=generatedHash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedHash.d.ts","sourceRoot":"","sources":["../../../src/tools/util/generatedHash.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM5D"}
@@ -0,0 +1,37 @@
1
+ // Hash function for generated source files. Used by both the emit side
2
+ // (generateConnectionModule / initSpec / generateConsumer write the recorded
3
+ // hash to manifest.generatedFiles[].hash) and the drift-check side
4
+ // (inspectIntegration / validateIntegration compare live file content against
5
+ // the manifest hash). The two sides MUST use the same function or every fresh
6
+ // integration shows false drift.
7
+ //
8
+ // Bug fixed (F7): the previous implementation hashed the whole file. Files
9
+ // like ExtentosCallbacks.{kt,swift} and ExtentosStreams.{kt,swift} contain
10
+ // USER-CODE-START:<name> / USER-CODE-END:<name> blocks that the developer
11
+ // is EXPECTED to fill in. With whole-file hashing, every successful handler
12
+ // implementation tripped a drift warning, training agents to ignore drift.
13
+ //
14
+ // New contract (matches docs/mcp/INTEGRATION_SHAPE.md § Generated File
15
+ // Conventions): hash covers only what regeneration will overwrite — i.e.,
16
+ // everything OUTSIDE USER-CODE blocks. Marker LINES themselves stay in the
17
+ // hashed content (so renaming or removing a USER-CODE block IS drift —
18
+ // that's a structural change). Only the BODY between the markers is masked.
19
+ import { createHash } from "node:crypto";
20
+ const USER_CODE_BODY_RE = /(\/\/\s*USER-CODE-START:[^\n]*\n)[\s\S]*?(\n[ \t]*\/\/\s*USER-CODE-END:[^\n]*)/g;
21
+ const STRIPPED_PLACEHOLDER = "// [USER-CODE-CONTENT-STRIPPED]";
22
+ /**
23
+ * Compute the manifest hash for a generated file. Replaces the body of every
24
+ * USER-CODE-START / USER-CODE-END block with a fixed placeholder before
25
+ * sha256-ing, so user implementations don't trip drift warnings.
26
+ *
27
+ * Returns the canonical `sha256:<hex>` form recorded in manifest.generatedFiles[].hash.
28
+ *
29
+ * Files without any USER-CODE markers (e.g., ExtentosBootstrap) hash exactly
30
+ * as before — the regex finds no match, the content is hashed verbatim. This
31
+ * preserves behavior for tool-owned files that have no developer-edited regions.
32
+ */
33
+ export function hashGeneratedContent(content) {
34
+ const stripped = content.replace(USER_CODE_BODY_RE, `$1${STRIPPED_PLACEHOLDER}$2`);
35
+ return `sha256:${createHash("sha256").update(stripped).digest("hex")}`;
36
+ }
37
+ //# sourceMappingURL=generatedHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedHash.js","sourceRoot":"","sources":["../../../src/tools/util/generatedHash.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,mEAAmE;AACnE,8EAA8E;AAC9E,8EAA8E;AAC9E,iCAAiC;AACjC,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,2EAA2E;AAC3E,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,2EAA2E;AAC3E,uEAAuE;AACvE,4EAA4E;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,iBAAiB,GACrB,iFAAiF,CAAC;AAEpF,MAAM,oBAAoB,GAAG,iCAAiC,CAAC;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAC9B,iBAAiB,EACjB,KAAK,oBAAoB,IAAI,CAC9B,CAAC;IACF,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/tools/util/permissions.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,oBAAoB,EAAE;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAsBD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACtC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,MAAM,EAAE,CA+BV;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CA+D9E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAsCtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CA+B9E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,SAAS,CAMlH"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/tools/util/permissions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,oBAAoB,EAAE;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAyBD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACtC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,MAAM,EAAE,CAoCV;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CA+D9E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAuCtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CA+B9E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,SAAS,CAMlH"}
@@ -1,8 +1,12 @@
1
1
  // Shared derivations for spec → platform permissions / Info.plist / DAT needs.
2
2
  // Consumed by initSpec, generateConsumer, getPermissions, and validateSpec's stats.
3
- const ANDROID_MIN_SDK = 31;
4
- const ANDROID_COMPILE_SDK = 34;
5
- const ANDROID_TARGET_SDK = 34;
3
+ import { VERSION_INFO } from "../data/version.js";
4
+ // Single source of truth for Android SDK levels lives in data/version.ts.
5
+ // Hardcoding them here drifted (lib bumped 34→35; this file didn't) and broke
6
+ // fresh-scaffold builds. Do not re-introduce literal values.
7
+ const ANDROID_MIN_SDK = VERSION_INFO.android.minimumSdk;
8
+ const ANDROID_COMPILE_SDK = VERSION_INFO.android.compileSdk;
9
+ const ANDROID_TARGET_SDK = VERSION_INFO.android.targetSdk;
6
10
  const IOS_PRIVACY_STRINGS = {
7
11
  NSCameraUsageDescription: "Used to capture photos and video from your glasses.",
8
12
  NSMicrophoneUsageDescription: "Used to capture audio from your glasses for voice commands.",
@@ -23,7 +27,13 @@ export function derivePermissions(blocks, streams, triggers) {
23
27
  for (const b of blocks) {
24
28
  if (b.type === "capture_photo" || b.type === "capture_video")
25
29
  add("android.permission.CAMERA");
26
- if (b.type === "capture_video" || b.type === "record_audio")
30
+ if (b.type === "record_audio")
31
+ add("android.permission.RECORD_AUDIO");
32
+ // capture_video defaults to include_audio=false per SPEC_SCHEMA.md — only
33
+ // explicit-true configuration triggers RECORD_AUDIO. Adding it
34
+ // unconditionally would over-declare the permission for any video-capture
35
+ // app that doesn't actually use audio (a user-trust problem on its own).
36
+ if (b.type === "capture_video" && isIncludeAudioTrue(b))
27
37
  add("android.permission.RECORD_AUDIO");
28
38
  }
29
39
  for (const st of streams) {
@@ -116,7 +126,9 @@ export function deriveIos(spec) {
116
126
  for (const b of blocks) {
117
127
  if (b.type === "capture_photo" || b.type === "capture_video")
118
128
  needed.add("NSCameraUsageDescription");
119
- if (b.type === "capture_video" || b.type === "record_audio")
129
+ if (b.type === "record_audio")
130
+ needed.add("NSMicrophoneUsageDescription");
131
+ if (b.type === "capture_video" && isIncludeAudioTrue(b))
120
132
  needed.add("NSMicrophoneUsageDescription");
121
133
  }
122
134
  for (const s of streams) {
@@ -187,4 +199,13 @@ export function derivesInfoPlistPatch(spec) {
187
199
  function arr(v) {
188
200
  return Array.isArray(v) ? v : [];
189
201
  }
202
+ // Read `params.include_audio` off a capture_video block. Default is `false`
203
+ // per SPEC_SCHEMA.md — only an explicit-true configuration counts as "this
204
+ // spec uses the microphone via video capture."
205
+ function isIncludeAudioTrue(block) {
206
+ const params = block.params;
207
+ if (!params || typeof params !== "object")
208
+ return false;
209
+ return params.include_audio === true;
210
+ }
190
211
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/tools/util/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/tools/util/permissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export interface MergeWarning {
2
+ kind: "duplicate_block" | "unterminated_block";
3
+ name: string;
4
+ detail: string;
5
+ }
6
+ export interface MergeResult {
7
+ /** The merged file content. Write this verbatim to disk. */
8
+ merged: string;
9
+ /** sha256 hash of `merged` in the canonical `sha256:<hex>` form. */
10
+ hash: string;
11
+ /** Block names whose existing body was preserved into the new content. */
12
+ preserved: string[];
13
+ /** Block names that were in `existing` but no longer in `next` — kept as ORPHANED blocks at end-of-file. */
14
+ orphaned: string[];
15
+ /** Soft warnings (corrupt input, duplicate block names). Merge continues; agent surfaces these to the dev. */
16
+ warnings: MergeWarning[];
17
+ }
18
+ /**
19
+ * Merge USER-CODE block bodies from `existing` into `next`.
20
+ *
21
+ * Algorithm:
22
+ * 1. Parse `existing` for USER-CODE blocks → Map<name, body>.
23
+ * 2. Walk `next`, replace each block's body with the existing body if the
24
+ * name matches. Track preserved names.
25
+ * 3. Any names in `existing` not present in `next` are appended at end-of-file
26
+ * as `// ORPHANED:<name>` blocks (with markers preserved so a future
27
+ * re-add of that handler picks the body back up automatically).
28
+ *
29
+ * Pure function. Safe to call repeatedly. Stable output: same inputs →
30
+ * identical output (and identical hash).
31
+ */
32
+ export declare function mergeUserCodeBlocks(existing: string, next: string): MergeResult;
33
+ //# sourceMappingURL=userCodeMerge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userCodeMerge.d.ts","sourceRoot":"","sources":["../../../src/tools/util/userCodeMerge.ts"],"names":[],"mappings":"AAuCA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4GAA4G;IAC5G,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8GAA8G;IAC9G,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CA6D/E"}