@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.
- package/README.md +88 -83
- package/dist/tools/data/version.js +6 -6
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +6 -21
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/docs/index.d.ts.map +1 -1
- package/dist/tools/docs/index.js +419 -17
- package/dist/tools/docs/index.js.map +1 -1
- package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -1
- package/dist/tools/handlers/createSimulatorSession.js +8 -4
- package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.js +45 -4
- package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
- package/dist/tools/handlers/generateConsumer.js +30 -20
- package/dist/tools/handlers/generateConsumer.js.map +1 -1
- package/dist/tools/handlers/getEventLog.d.ts.map +1 -1
- package/dist/tools/handlers/getEventLog.js +5 -0
- package/dist/tools/handlers/getEventLog.js.map +1 -1
- package/dist/tools/handlers/getExampleSpec.d.ts.map +1 -1
- package/dist/tools/handlers/getExampleSpec.js +6 -0
- package/dist/tools/handlers/getExampleSpec.js.map +1 -1
- package/dist/tools/handlers/getPlatformInfo.d.ts.map +1 -1
- package/dist/tools/handlers/getPlatformInfo.js +10 -0
- package/dist/tools/handlers/getPlatformInfo.js.map +1 -1
- package/dist/tools/handlers/getSimulatorStatus.d.ts.map +1 -1
- package/dist/tools/handlers/getSimulatorStatus.js +8 -2
- package/dist/tools/handlers/getSimulatorStatus.js.map +1 -1
- package/dist/tools/handlers/getVoiceCommandGuidance.d.ts.map +1 -1
- package/dist/tools/handlers/getVoiceCommandGuidance.js +6 -1
- package/dist/tools/handlers/getVoiceCommandGuidance.js.map +1 -1
- package/dist/tools/handlers/initSpec.d.ts.map +1 -1
- package/dist/tools/handlers/initSpec.js +23 -7
- package/dist/tools/handlers/initSpec.js.map +1 -1
- package/dist/tools/handlers/inspectIntegration.d.ts.map +1 -1
- package/dist/tools/handlers/inspectIntegration.js +6 -0
- package/dist/tools/handlers/inspectIntegration.js.map +1 -1
- package/dist/tools/handlers/searchDocs.d.ts.map +1 -1
- package/dist/tools/handlers/searchDocs.js +4 -1
- package/dist/tools/handlers/searchDocs.js.map +1 -1
- package/dist/tools/handlers/updateSpec.d.ts.map +1 -1
- package/dist/tools/handlers/updateSpec.js +10 -2
- package/dist/tools/handlers/updateSpec.js.map +1 -1
- package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
- package/dist/tools/handlers/validateIntegration.js +9 -1
- package/dist/tools/handlers/validateIntegration.js.map +1 -1
- package/dist/tools/handlers/validateSpec.d.ts.map +1 -1
- package/dist/tools/handlers/validateSpec.js +8 -1
- package/dist/tools/handlers/validateSpec.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +0 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/templates/androidBootstrap.d.ts.map +1 -1
- package/dist/tools/templates/androidBootstrap.js +45 -2
- package/dist/tools/templates/androidBootstrap.js.map +1 -1
- package/dist/tools/templates/callbackHandler.d.ts.map +1 -1
- package/dist/tools/templates/callbackHandler.js +16 -4
- package/dist/tools/templates/callbackHandler.js.map +1 -1
- package/dist/tools/templates/iosBootstrap.d.ts.map +1 -1
- package/dist/tools/templates/iosBootstrap.js +76 -48
- package/dist/tools/templates/iosBootstrap.js.map +1 -1
- package/dist/tools/util/manifest.d.ts +10 -0
- package/dist/tools/util/manifest.d.ts.map +1 -1
- package/dist/tools/util/manifest.js +5 -1
- package/dist/tools/util/manifest.js.map +1 -1
- 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
|
-
|
|
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;
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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":"
|
|
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
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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;
|
|
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,
|
|
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.
|
|
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":"AAAA,qFAAqF;AACrF,6EAA6E;AAC7E,6EAA6E;AAC7E,8DAA8D;AAC9D,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,sDAAsD;AAStD,MAAM,UAAU,kBAAkB,CAAC,IAAkB,EAAE,MAAc;IACnE,MAAM,IAAI,GAA4B;QACpC,eAAe,EAAE,CAAC;QAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE;YACR,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,MAAM;YACnB,aAAa,EAAE,MAAM;SACtB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,IAAI,EAAE,cAAc;SACrB;QACD,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,EAAE;YAChB,iBAAiB,EAAE,EAAE;SACtB;KACF,CAAC;IAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG;YACZ,UAAU,EAAE,wBAAwB,IAAI,CAAC,cAAc,EAAE;YACzD,SAAS,EAAE,sBAAsB;YACjC,mBAAmB,EAAE;gBACnB,EAAE,UAAU,EAAE,2BAA2B,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE;gBACjG,EAAE,UAAU,EAAE,8BAA8B,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,qBAAqB,EAAE;aAC1G;SACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,GAAG;YACT,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,2CAA2C;YACvD,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,WAAW,EAAE,eAAe;YAC5B,kBAAkB,EAAE;gBAClB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE;gBACzC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE;gBACvC,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;aAC5D;SACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA4B;IACzD,OAAO,EAAE,sBAAsB;IAC/B,gBAAgB,EAAE,KAAK;IACvB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;CACb,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/tools/util/manifest.ts"],"names":[],"mappings":"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"}
|