@extentos/mcp-server 0.0.10 → 0.0.14

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 (66) hide show
  1. package/README.md +88 -83
  2. package/dist/tools/data/version.js +6 -6
  3. package/dist/tools/definitions.d.ts.map +1 -1
  4. package/dist/tools/definitions.js +6 -21
  5. package/dist/tools/definitions.js.map +1 -1
  6. package/dist/tools/docs/index.d.ts.map +1 -1
  7. package/dist/tools/docs/index.js +419 -17
  8. package/dist/tools/docs/index.js.map +1 -1
  9. package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -1
  10. package/dist/tools/handlers/createSimulatorSession.js +8 -4
  11. package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
  12. package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
  13. package/dist/tools/handlers/generateConnectionModule.js +45 -4
  14. package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
  15. package/dist/tools/handlers/generateConsumer.js +30 -20
  16. package/dist/tools/handlers/generateConsumer.js.map +1 -1
  17. package/dist/tools/handlers/getEventLog.d.ts.map +1 -1
  18. package/dist/tools/handlers/getEventLog.js +5 -0
  19. package/dist/tools/handlers/getEventLog.js.map +1 -1
  20. package/dist/tools/handlers/getExampleSpec.d.ts.map +1 -1
  21. package/dist/tools/handlers/getExampleSpec.js +6 -0
  22. package/dist/tools/handlers/getExampleSpec.js.map +1 -1
  23. package/dist/tools/handlers/getPlatformInfo.d.ts.map +1 -1
  24. package/dist/tools/handlers/getPlatformInfo.js +10 -0
  25. package/dist/tools/handlers/getPlatformInfo.js.map +1 -1
  26. package/dist/tools/handlers/getSimulatorStatus.d.ts.map +1 -1
  27. package/dist/tools/handlers/getSimulatorStatus.js +8 -2
  28. package/dist/tools/handlers/getSimulatorStatus.js.map +1 -1
  29. package/dist/tools/handlers/getVoiceCommandGuidance.d.ts.map +1 -1
  30. package/dist/tools/handlers/getVoiceCommandGuidance.js +6 -1
  31. package/dist/tools/handlers/getVoiceCommandGuidance.js.map +1 -1
  32. package/dist/tools/handlers/initSpec.d.ts.map +1 -1
  33. package/dist/tools/handlers/initSpec.js +23 -7
  34. package/dist/tools/handlers/initSpec.js.map +1 -1
  35. package/dist/tools/handlers/inspectIntegration.d.ts.map +1 -1
  36. package/dist/tools/handlers/inspectIntegration.js +6 -0
  37. package/dist/tools/handlers/inspectIntegration.js.map +1 -1
  38. package/dist/tools/handlers/searchDocs.d.ts.map +1 -1
  39. package/dist/tools/handlers/searchDocs.js +4 -1
  40. package/dist/tools/handlers/searchDocs.js.map +1 -1
  41. package/dist/tools/handlers/updateSpec.d.ts.map +1 -1
  42. package/dist/tools/handlers/updateSpec.js +10 -2
  43. package/dist/tools/handlers/updateSpec.js.map +1 -1
  44. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  45. package/dist/tools/handlers/validateIntegration.js +9 -1
  46. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  47. package/dist/tools/handlers/validateSpec.d.ts.map +1 -1
  48. package/dist/tools/handlers/validateSpec.js +8 -1
  49. package/dist/tools/handlers/validateSpec.js.map +1 -1
  50. package/dist/tools/registry.d.ts.map +1 -1
  51. package/dist/tools/registry.js +0 -2
  52. package/dist/tools/registry.js.map +1 -1
  53. package/dist/tools/templates/androidBootstrap.d.ts.map +1 -1
  54. package/dist/tools/templates/androidBootstrap.js +45 -2
  55. package/dist/tools/templates/androidBootstrap.js.map +1 -1
  56. package/dist/tools/templates/callbackHandler.d.ts.map +1 -1
  57. package/dist/tools/templates/callbackHandler.js +16 -4
  58. package/dist/tools/templates/callbackHandler.js.map +1 -1
  59. package/dist/tools/templates/iosBootstrap.d.ts.map +1 -1
  60. package/dist/tools/templates/iosBootstrap.js +76 -48
  61. package/dist/tools/templates/iosBootstrap.js.map +1 -1
  62. package/dist/tools/util/manifest.d.ts +10 -0
  63. package/dist/tools/util/manifest.d.ts.map +1 -1
  64. package/dist/tools/util/manifest.js +5 -1
  65. package/dist/tools/util/manifest.js.map +1 -1
  66. package/package.json +1 -1
@@ -1,13 +1,33 @@
1
1
  // Generated Kotlin Application subclass for generateConnectionModule.
2
2
  // Header + START/END markers follow INTEGRATION_SHAPE.md § Generated File Conventions.
3
+ //
4
+ // Spec-load handling rationale:
5
+ // `glasses.runtime.loadSpec(json)` returns ExtentosResult<LoadedSpecInfo,
6
+ // List<SpecValidationError>> — a sealed result, NEVER throws on validation
7
+ // or parse failure. Wrapping it in `runCatching { ... }` is a no-op for the
8
+ // error channel (Kotlin's runCatching only catches exceptions, not Err
9
+ // variants), so failures slipped through silently — matcher never started,
10
+ // triggers never fired, dev saw nothing in logs. We pattern-match Ok/Err
11
+ // explicitly and surface both via android.util.Log so a single
12
+ // `adb logcat | grep Extentos` shows what happened on first launch.
13
+ //
14
+ // Order rationale:
15
+ // loadSpec is called BEFORE connect() so the runtime can match triggers as
16
+ // soon as the first transport event arrives (and so app code that fires
17
+ // triggers programmatically works without waiting on a session). Events
18
+ // emitted before the WS opens are buffered by BrowserSimTransport and
19
+ // drained on session_attached, so SpecReloaded/SpecReloadFailed reach the
20
+ // simulator event log even though connect() runs after.
3
21
  export function renderAndroidBootstrap(appPackage) {
4
22
  return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via MCP tools.
5
23
  package ${appPackage}.extentos
6
24
 
7
25
  import android.app.Application
26
+ import android.util.Log
8
27
  import ${appPackage}.BuildConfig
9
- import com.extentos.glasses.core.ExtentosGlasses
10
28
  import com.extentos.glasses.core.ExtentosConfig
29
+ import com.extentos.glasses.core.ExtentosGlasses
30
+ import com.extentos.glasses.core.ExtentosResult
11
31
  import kotlinx.coroutines.CoroutineScope
12
32
  import kotlinx.coroutines.Dispatchers
13
33
  import kotlinx.coroutines.SupervisorJob
@@ -35,13 +55,36 @@ class ExtentosBootstrap : Application() {
35
55
  appScope.launch {
36
56
  val specJson = runCatching {
37
57
  assets.open("extentos.spec.json").bufferedReader().use { it.readText() }
58
+ }.onFailure { e ->
59
+ Log.e(EXTENTOS_TAG, "spec asset read failed (assets/extentos.spec.json missing?) — triggers will not fire", e)
38
60
  }.getOrNull()
61
+
39
62
  if (specJson != null) {
40
- runCatching { glasses.runtime.loadSpec(specJson) }
63
+ when (val result = glasses.runtime.loadSpec(specJson)) {
64
+ is ExtentosResult.Ok -> {
65
+ val info = result.value
66
+ Log.i(
67
+ EXTENTOS_TAG,
68
+ "spec loaded: \${info.triggerCount} trigger(s), \${info.blockCount} block(s) [fingerprint=\${info.fingerprint}]"
69
+ )
70
+ }
71
+ is ExtentosResult.Err -> {
72
+ Log.e(EXTENTOS_TAG, "spec load FAILED — triggers will not fire:")
73
+ result.error.forEach { err ->
74
+ Log.e(EXTENTOS_TAG, " \${err.path}: \${err.message}")
75
+ }
76
+ }
77
+ }
41
78
  }
79
+
42
80
  runCatching { glasses.connection.connect() }
81
+ .onFailure { Log.e(EXTENTOS_TAG, "glasses.connection.connect() failed", it) }
43
82
  }
44
83
  }
84
+
85
+ private companion object {
86
+ const val EXTENTOS_TAG = "Extentos"
87
+ }
45
88
  }
46
89
  `;
47
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"androidBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,uFAAuF;AAEvF,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO;UACC,UAAU;;;SAGX,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsClB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"androidBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/androidBootstrap.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,uFAAuF;AACvF,EAAE;AACF,gCAAgC;AAChC,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,yEAAyE;AACzE,6EAA6E;AAC7E,2EAA2E;AAC3E,iEAAiE;AACjE,sEAAsE;AACtE,EAAE;AACF,mBAAmB;AACnB,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,4EAA4E;AAC5E,0DAA0D;AAE1D,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO;UACC,UAAU;;;;SAIX,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DlB,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"callbackHandler.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/callbackHandler.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAsCzF;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CA2CjE;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,OAAO,GACf,MAAM,CA2CR;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA8CxF"}
1
+ {"version":3,"file":"callbackHandler.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/callbackHandler.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAsCzF;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CA2CjE;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,OAAO,GACf,MAAM,CAmDR;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAkDxF"}
@@ -82,11 +82,19 @@ export function renderAndroidCallbacksRich(appPackage, handlers, concise) {
82
82
  const inputShape = h.inputKeys && h.inputKeys.length
83
83
  ? ` // Input: { ${h.inputKeys.map((k) => `"${k}": "<string>"`).join(", ")} }\n`
84
84
  : "";
85
- const byokBlock = concise ? "" : renderAndroidByokExample(h);
85
+ // BYOK example only when an AI provider is actually suggested. Otherwise
86
+ // a generic "implement this handler" comment fits non-AI handlers (DB,
87
+ // local logic, file IO, etc.) instead of misleading them toward an
88
+ // imagined provider client they don't need.
89
+ const guideBlock = concise
90
+ ? ""
91
+ : h.suggestedProvider
92
+ ? renderAndroidByokExample(h)
93
+ : ` // TODO: implement the "${h.name}" handler. Return AppCallbackResult.Success(value) or .Error(code, message).\n`;
86
94
  return (`private suspend fun ${fn}(call: AppCall): AppCallbackResult {\n` +
87
95
  inputShape +
88
96
  ` // USER-CODE-START:${h.name}\n` +
89
- byokBlock +
97
+ guideBlock +
90
98
  ` return AppCallbackResult.Error(code = "not_implemented", message = "TODO: implement ${h.name} handler")\n` +
91
99
  ` // USER-CODE-END:${h.name}\n` +
92
100
  `}`);
@@ -122,11 +130,15 @@ export function renderIosCallbacksRich(handlers, concise) {
122
130
  const inputShape = h.inputKeys && h.inputKeys.length
123
131
  ? ` // call.input: { ${h.inputKeys.map((k) => `"${k}": "<string>"`).join(", ")} }\n`
124
132
  : "";
125
- const byokBlock = concise ? "" : renderIosByokExample(h);
133
+ const guideBlock = concise
134
+ ? ""
135
+ : h.suggestedProvider
136
+ ? renderIosByokExample(h)
137
+ : ` // TODO: implement the "${h.name}" handler. Return .success(value:) or .error(code:, message:).\n`;
126
138
  return (`private func ${fn}(_ call: AppCall) async -> AppCallbackResult {\n` +
127
139
  inputShape +
128
140
  ` // USER-CODE-START:${h.name}\n` +
129
- byokBlock +
141
+ guideBlock +
130
142
  ` return .error(code: "not_implemented", message: "TODO: implement ${h.name} handler")\n` +
131
143
  ` // USER-CODE-END:${h.name}\n` +
132
144
  `}`);
@@ -1 +1 @@
1
- {"version":3,"file":"callbackHandler.js","sourceRoot":"","sources":["../../../src/tools/templates/callbackHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callbackHandler.js","sourceRoot":"","sources":["../../../src/tools/templates/callbackHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"iosBootstrap.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/iosBootstrap.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA6C7D;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAShE"}
1
+ {"version":3,"file":"iosBootstrap.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/iosBootstrap.ts"],"names":[],"mappings":"AAgBA,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA6D7D;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAShE"}
@@ -1,59 +1,87 @@
1
1
  // Generated Swift bootstrap singleton for generateConnectionModule (iOS).
2
+ //
3
+ // Spec-load handling rationale (mirror of androidBootstrap.ts):
4
+ // `glasses.runtime.loadSpec()` returns
5
+ // ExtentosResult<SpecHandle, SpecError> — a sealed result, NEVER throws.
6
+ // The previous template did `_ = await glasses.runtime.loadSpec()` which
7
+ // discarded the error channel silently. Pattern-match .success/.failure
8
+ // explicitly and log via Logger so a single Console.app filter on
9
+ // "Extentos" surfaces success/failure on launch.
10
+ //
11
+ // Order rationale: spec loads BEFORE connect() so the runtime can match
12
+ // triggers as soon as the first transport event arrives. Pre-WS-open events
13
+ // are buffered by BrowserSimTransport and drained on session_attached.
2
14
  import { iosModuleName } from "../util/appPackage.js";
3
15
  export function renderIosBootstrap(appPackage) {
4
16
  const moduleName = iosModuleName(appPackage);
5
- return `// EXTENTOS-GENERATED — do not edit manually. Regenerate via MCP tools.
6
- import Foundation
7
- import SwiftUI
8
- import GlassesCore
9
-
10
- @MainActor
11
- final class ExtentosBootstrap: ObservableObject {
12
- static let shared = ExtentosBootstrap()
13
-
14
- let glasses: ExtentosGlasses
15
- let sceneObserver: ExtentosSceneObserver
16
-
17
- private init() {
18
- // debug = true gates the auto-bind probe path on Android (rule 4
19
- // of TransportChoice.Auto). iOS auto-bind isn't built yet, but
20
- // wiring debug from the build configuration here means the iOS
21
- // template doesn't have to be regenerated when iOS auto-bind ships.
22
- #if DEBUG
23
- let isDebugBuild = true
24
- #else
25
- let isDebugBuild = false
26
- #endif
27
- let config = ExtentosConfig(
28
- appId: Bundle.main.infoDictionary?["EXTENTOS_APP_ID"] as? String,
29
- accountId: Bundle.main.infoDictionary?["EXTENTOS_ACCOUNT_ID"] as? String,
30
- transport: .auto,
31
- debug: isDebugBuild,
32
- telemetryConsent: true
33
- )
34
- glasses = Extentos.create(config: config)
35
- sceneObserver = ExtentosSceneObserver(glasses: glasses)
36
-
37
- // EXTENTOS-GENERATED-START:dispatch
38
- // Callback handler registration is emitted by generateConsumer(kind: "callback").
39
- // EXTENTOS-GENERATED-END:dispatch
40
-
41
- Task.detached { [glasses] in
42
- _ = await glasses.runtime.loadSpec()
43
- await glasses.connect()
44
- }
45
- }
46
- }
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
+ }
47
75
  `;
48
76
  }
49
77
  export function renderIosAppPatchHint(appPackage) {
50
78
  const moduleName = iosModuleName(appPackage);
51
- return `Add inside @main struct ${moduleName}App: App's WindowGroup scene, on the root view:
52
- .onOpenURL { url in
53
- Task { _ = try? await Wearables.shared.handleUrl(url) }
54
- }
55
- .onChange(of: scenePhase) { _, newPhase in
56
- 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)
57
85
  }`;
58
86
  }
59
87
  //# sourceMappingURL=iosBootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iosBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/iosBootstrap.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,2BAA2B,UAAU;;;;;;IAM1C,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"iosBootstrap.js","sourceRoot":"","sources":["../../../src/tools/templates/iosBootstrap.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,gEAAgE;AAChE,yCAAyC;AACzC,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,oEAAoE;AACpE,mDAAmD;AACnD,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,uEAAuE;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO;;;;;;;;;;;;;kDAayC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C3D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,2BAA2B,UAAU;;;;;;IAM1C,CAAC;AACL,CAAC"}
@@ -32,6 +32,16 @@ export interface ManifestPatch {
32
32
  permissionsAdded?: string[];
33
33
  /** Remove from manifest.permissions[]. */
34
34
  permissionsRemoved?: string[];
35
+ /**
36
+ * Authoritative replacement for manifest.permissions[]. Used by
37
+ * updateSpec/initSpec which know the full spec-derived permission list and
38
+ * shouldn't preserve hand-edits — the manifest is tool-managed (see
39
+ * INTEGRATION_SHAPE.md § Modification Rules) and any drift is already
40
+ * surfaced by validateIntegration. Mutually exclusive with
41
+ * permissionsAdded/permissionsRemoved — `permissionsSet` wins when present.
42
+ * Mirrors integrationSet's full-state semantics.
43
+ */
44
+ permissionsSet?: string[];
35
45
  /** Union into integration.{blocks,streams,triggers,handlerNames,togglesOverridden}. Sorted-deduped. */
36
46
  integrationAdded?: {
37
47
  blocks?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/tools/util/manifest.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmD9F;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAMtD,CAAC;AASF,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACnD,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrD,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,uGAAuG;IACvG,gBAAgB,CAAC,EAAE;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF;;;;;OAKG;IACH,cAAc,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiFzB;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/tools/util/manifest.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmD9F;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAMtD,CAAC;AASF,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACnD,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrD,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,uGAAuG;IACvG,gBAAgB,CAAC,EAAE;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF;;;;;OAKG;IACH,cAAc,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoFzB;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -107,7 +107,11 @@ export function applyManifestPatch(current, patch) {
107
107
  else {
108
108
  next.generatedFiles = filesArr;
109
109
  }
110
- if (patch.permissionsAdded?.length || patch.permissionsRemoved?.length) {
110
+ if (patch.permissionsSet !== undefined) {
111
+ // Full-state replacement wins over incremental add/remove — see field doc.
112
+ next.permissions = [...new Set(patch.permissionsSet)].sort();
113
+ }
114
+ else if (patch.permissionsAdded?.length || patch.permissionsRemoved?.length) {
111
115
  const existing = new Set(Array.isArray(next.permissions) ? next.permissions : []);
112
116
  for (const p of patch.permissionsAdded ?? [])
113
117
  existing.add(p);
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/tools/util/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/tools/util/manifest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extentos/mcp-server",
3
- "version": "0.0.10",
3
+ "version": "0.0.14",
4
4
  "description": "Extentos MCP server — deterministic tools for building Meta-glasses apps.",
5
5
  "type": "module",
6
6
  "bin": {