@extentos/mcp-server 0.0.78 → 0.0.80

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 (47) hide show
  1. package/dist/cli/setup.d.ts.map +1 -1
  2. package/dist/cli/setup.js +47 -17
  3. package/dist/cli/setup.js.map +1 -1
  4. package/dist/tools/data/capabilities.d.ts +30 -11
  5. package/dist/tools/data/capabilities.d.ts.map +1 -1
  6. package/dist/tools/data/capabilities.js +31 -12
  7. package/dist/tools/data/capabilities.js.map +1 -1
  8. package/dist/tools/data/capabilityPatterns.d.ts.map +1 -1
  9. package/dist/tools/data/capabilityPatterns.js +180 -7
  10. package/dist/tools/data/capabilityPatterns.js.map +1 -1
  11. package/dist/tools/data/codeExamples.d.ts.map +1 -1
  12. package/dist/tools/data/codeExamples.js +352 -156
  13. package/dist/tools/data/codeExamples.js.map +1 -1
  14. package/dist/tools/data/version.js +7 -7
  15. package/dist/tools/definitions.d.ts.map +1 -1
  16. package/dist/tools/definitions.js +48 -15
  17. package/dist/tools/definitions.js.map +1 -1
  18. package/dist/tools/docs/index.d.ts +12 -0
  19. package/dist/tools/docs/index.d.ts.map +1 -1
  20. package/dist/tools/docs/index.js +41 -4
  21. package/dist/tools/docs/index.js.map +1 -1
  22. package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
  23. package/dist/tools/handlers/generateConnectionModule.js +136 -61
  24. package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
  25. package/dist/tools/handlers/getPlatformInfo.d.ts.map +1 -1
  26. package/dist/tools/handlers/getPlatformInfo.js +8 -8
  27. package/dist/tools/handlers/getPlatformInfo.js.map +1 -1
  28. package/dist/tools/handlers/injectTranscript.d.ts +3 -0
  29. package/dist/tools/handlers/injectTranscript.d.ts.map +1 -0
  30. package/dist/tools/handlers/injectTranscript.js +89 -0
  31. package/dist/tools/handlers/injectTranscript.js.map +1 -0
  32. package/dist/tools/handlers/searchDocs.d.ts.map +1 -1
  33. package/dist/tools/handlers/searchDocs.js +36 -11
  34. package/dist/tools/handlers/searchDocs.js.map +1 -1
  35. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  36. package/dist/tools/handlers/validateIntegration.js +90 -21
  37. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  38. package/dist/tools/registry.d.ts.map +1 -1
  39. package/dist/tools/registry.js +2 -0
  40. package/dist/tools/registry.js.map +1 -1
  41. package/dist/tools/templates/androidBootstrap.d.ts.map +1 -1
  42. package/dist/tools/templates/androidBootstrap.js +16 -1
  43. package/dist/tools/templates/androidBootstrap.js.map +1 -1
  44. package/dist/tools/util/permissions.d.ts.map +1 -1
  45. package/dist/tools/util/permissions.js +70 -30
  46. package/dist/tools/util/permissions.js.map +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAuCA,wBAAsB,KAAK,CAAC,OAAO,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB5E"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAuCA,wBAAsB,KAAK,CAAC,OAAO,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5E"}
package/dist/cli/setup.js CHANGED
@@ -29,11 +29,19 @@ export async function setup(options) {
29
29
  const results = [];
30
30
  results.push(checkProjectIsAndroid(projectPath));
31
31
  results.push(...checkGithubCredentials(projectPath));
32
- // Token validation only runs when we have something to validate.
32
+ // F-R4-09: meta_dat_artifacts_reachable is THE ground-truth check it
33
+ // uses the same HTTP Basic auth scheme Gradle uses to pull the
34
+ // mwdat artifacts from GitHub Packages. github_token_valid (api.github.com
35
+ // /user) is informational only: a read:packages-scoped PAT typically
36
+ // doesn't have read:user, so /user can return 401 for tokens that
37
+ // Gradle authenticates with fine. We run both checks but downgrade
38
+ // /user failures to info when the artifact probe succeeds.
33
39
  const token = resolveToken(projectPath);
34
40
  if (token) {
35
- results.push(await validateGithubToken(token));
36
- results.push(await validateMetaDatAccess(token));
41
+ const artifactResult = await validateMetaDatAccess(token);
42
+ const tokenResult = await validateGithubToken(token, artifactResult.status === "pass");
43
+ results.push(tokenResult);
44
+ results.push(artifactResult);
37
45
  }
38
46
  results.push(checkMavenLocalExtentos());
39
47
  results.push(checkLocalPropertiesInGitignore(projectPath));
@@ -179,7 +187,12 @@ function readSettingsGradle(projectPath) {
179
187
  }
180
188
  return null;
181
189
  }
182
- async function validateGithubToken(token) {
190
+ // F-R4-09: `artifactProbePassed` lets us downgrade /user failures to info
191
+ // when the artifact probe (the ground-truth check) succeeds. A
192
+ // read:packages-scoped PAT typically lacks read:user, so /user can 401 for
193
+ // tokens that Gradle authenticates fine. Pre-fix this returned a hard fail
194
+ // and confused customers whose builds actually worked.
195
+ async function validateGithubToken(token, artifactProbePassed) {
183
196
  try {
184
197
  const response = await fetch("https://api.github.com/user", {
185
198
  headers: {
@@ -190,6 +203,14 @@ async function validateGithubToken(token) {
190
203
  });
191
204
  if (response.status === 401) {
192
205
  const source = process.env.GITHUB_TOKEN ? "GITHUB_TOKEN environment variable" : "local.properties github_token";
206
+ if (artifactProbePassed) {
207
+ return {
208
+ name: "github_token_valid",
209
+ status: "info",
210
+ message: `GitHub's REST /user endpoint rejected the token in ${source} (401), but the Meta DAT artifact endpoint accepted it. ` +
211
+ `Your build WILL work — Gradle uses the artifact endpoint, not /user. This is normal for read:packages-scoped PATs that lack read:user.`,
212
+ };
213
+ }
193
214
  return {
194
215
  name: "github_token_valid",
195
216
  status: "fail",
@@ -202,9 +223,9 @@ async function validateGithubToken(token) {
202
223
  if (!response.ok) {
203
224
  return {
204
225
  name: "github_token_valid",
205
- status: "fail",
206
- message: `GitHub returned HTTP ${response.status} when validating the token.`,
207
- fix: "Check your network / proxy. The token itself may still be valid.",
226
+ status: artifactProbePassed ? "info" : "fail",
227
+ message: `GitHub returned HTTP ${response.status} when validating the token via /user.${artifactProbePassed ? " Artifact endpoint succeeded — your build will work." : ""}`,
228
+ fix: artifactProbePassed ? undefined : "Check your network / proxy. The token itself may still be valid.",
208
229
  };
209
230
  }
210
231
  const scopes = response.headers.get("x-oauth-scopes") ?? "";
@@ -212,9 +233,9 @@ async function validateGithubToken(token) {
212
233
  if (!hasReadPackages) {
213
234
  return {
214
235
  name: "github_token_valid",
215
- status: "fail",
216
- message: `Token is valid but missing the \`read:packages\` scope (has: ${scopes || "<none>"}).`,
217
- fix: `Regenerate a new PAT WITH the scope: ${PAT_URL}`,
236
+ status: artifactProbePassed ? "info" : "fail",
237
+ message: `Token is valid but the listed scopes don't include read:packages (has: ${scopes || "<none>"}).${artifactProbePassed ? " Artifact endpoint accepted it anyway — likely a fine-grained PAT whose effective permissions exceed what /user advertises." : ""}`,
238
+ fix: artifactProbePassed ? undefined : `Regenerate a new PAT WITH the scope: ${PAT_URL}`,
218
239
  };
219
240
  }
220
241
  return {
@@ -226,17 +247,26 @@ async function validateGithubToken(token) {
226
247
  catch (e) {
227
248
  return {
228
249
  name: "github_token_valid",
229
- status: "fail",
230
- message: `Network error validating token against api.github.com: ${e.message}.`,
231
- fix: "Check your internet / proxy / firewall settings.",
250
+ status: artifactProbePassed ? "info" : "fail",
251
+ message: `Network error validating token against api.github.com: ${e.message}.${artifactProbePassed ? " Artifact endpoint succeeded — your build will work." : ""}`,
252
+ fix: artifactProbePassed ? undefined : "Check your internet / proxy / firewall settings.",
232
253
  };
233
254
  }
234
255
  }
256
+ // F-R4-09: GitHub Packages Maven endpoint uses HTTP Basic auth, NOT Bearer.
257
+ // The Gradle credentials block in settings.gradle.kts maps to:
258
+ // username = "token" (or env GITHUB_USERNAME)
259
+ // password = $GITHUB_TOKEN
260
+ // Mirror that here so the probe's result actually predicts whether Gradle
261
+ // will succeed. Pre-fix this used `Authorization: Bearer $token` which
262
+ // gets 401 for tokens that Gradle accepts fine — false negative.
235
263
  async function validateMetaDatAccess(token) {
264
+ const basicUser = process.env.GITHUB_USERNAME || "token";
265
+ const basic = Buffer.from(`${basicUser}:${token}`).toString("base64");
236
266
  try {
237
267
  const response = await fetch(META_ARTIFACT_PROBE, {
238
268
  headers: {
239
- Authorization: `Bearer ${token}`,
269
+ Authorization: `Basic ${basic}`,
240
270
  "User-Agent": "extentos-setup-cli",
241
271
  },
242
272
  });
@@ -244,15 +274,15 @@ async function validateMetaDatAccess(token) {
244
274
  return {
245
275
  name: "meta_dat_artifacts_reachable",
246
276
  status: "pass",
247
- message: "Successfully fetched maven-metadata.xml for com.meta.wearable:mwdat-core from GitHub Packages.",
277
+ message: "Successfully fetched maven-metadata.xml for com.meta.wearable:mwdat-core from GitHub Packages (Basic auth — same scheme Gradle uses).",
248
278
  };
249
279
  }
250
280
  if (response.status === 401 || response.status === 403) {
251
281
  return {
252
282
  name: "meta_dat_artifacts_reachable",
253
283
  status: "fail",
254
- message: `Meta DAT artifact probe returned HTTP ${response.status}.`,
255
- fix: "The token has read:packages scope but GitHub Packages refused the artifact. Likely causes: (a) you need to accept Facebook's terms by visiting https://github.com/facebook/meta-wearables-dat-android once while signed in, (b) the token is fine-grained and not authorized for that repository — switch to a classic PAT with read:packages.",
284
+ message: `Meta DAT artifact probe returned HTTP ${response.status} (Basic auth — same scheme Gradle uses).`,
285
+ fix: "The token can't authenticate against GitHub Packages. Likely causes: (a) you need to accept Facebook's terms by visiting https://github.com/facebook/meta-wearables-dat-android once while signed in, (b) the token is fine-grained and not authorized for that repository — switch to a classic PAT with read:packages, (c) the token actually IS expired/revoked (cross-check with the github_token_valid result above).",
256
286
  };
257
287
  }
258
288
  if (response.status === 404) {
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -20,9 +20,9 @@ export declare const META_RAYBAN_CAPABILITIES: {
20
20
  format: string[];
21
21
  max_duration_seconds?: undefined;
22
22
  include_audio?: undefined;
23
- stop_conditions?: undefined;
24
23
  silence_timeout_seconds?: undefined;
25
24
  quality?: undefined;
25
+ stop_conditions?: undefined;
26
26
  };
27
27
  returns: {
28
28
  uri: string;
@@ -45,23 +45,40 @@ export declare const META_RAYBAN_CAPABILITIES: {
45
45
  swift: string;
46
46
  };
47
47
  params: {
48
- resolution: string[];
49
48
  max_duration_seconds: {
50
- max: number;
51
- default: number;
49
+ kotlin: {
50
+ type: string;
51
+ default: null;
52
+ note: string;
53
+ };
54
+ swift: {
55
+ type: string;
56
+ default: number;
57
+ };
58
+ max?: undefined;
59
+ default?: undefined;
52
60
  };
53
- format: string[];
54
61
  include_audio: {
55
- default: boolean;
62
+ kotlin: {
63
+ type: string;
64
+ default: boolean;
65
+ };
66
+ swift: {
67
+ type: string;
68
+ default: boolean;
69
+ };
56
70
  };
57
- stop_conditions: {
58
- shape: string;
59
- itemTypes: string[];
60
- enforced: string[];
61
- note: string;
71
+ format: string[];
72
+ resolution: {
73
+ kotlin: {
74
+ available: boolean;
75
+ note: string;
76
+ };
77
+ swift: string[];
62
78
  };
63
79
  silence_timeout_seconds?: undefined;
64
80
  quality?: undefined;
81
+ stop_conditions?: undefined;
65
82
  };
66
83
  returns: {
67
84
  uri: string;
@@ -87,6 +104,8 @@ export declare const META_RAYBAN_CAPABILITIES: {
87
104
  max_duration_seconds: {
88
105
  max: number;
89
106
  default: number;
107
+ kotlin?: undefined;
108
+ swift?: undefined;
90
109
  };
91
110
  silence_timeout_seconds: {
92
111
  max: number;
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOpD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkXpC,CAAC;AAUF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAiB5C,CAAC;AAqBL,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAOnE,CAAC"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOpD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsYpC,CAAC;AAUF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAiB5C,CAAC;AAqBL,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAOnE,CAAC"}
@@ -44,24 +44,37 @@ export const META_RAYBAN_CAPABILITIES = {
44
44
  type: "capture_video",
45
45
  tier: "phone_side_workaround",
46
46
  confidence: "degraded",
47
- description: "Bounded video clip (max 60s) from the glasses camera. Returns a VideoClip with uri / duration_ms / width / height / format. Phone-side encoded.",
47
+ description: "Bounded video clip from the glasses camera. Returns a VideoClip with uri / duration_ms / width / height / format. Phone-side encoded. No hard duration cap on the Kotlin API (Double? maxDurationSeconds = null by default); on iOS the default is Int durationSeconds = 10. The actual stop primitive is structured-concurrency cancellation of the caller's coroutine/Task — wrap in voice.onPhrase(stops = ...) for voice-driven stop. See getCapabilityGuide(\"capture_video\") for the cancel-drain semantics + cross-platform asymmetry.",
48
48
  sdkPath: { kotlin: "camera.captureVideo", swift: "camera.captureVideo" },
49
+ // F-R4-04 / F-R4-06: params reflect the ACTUAL Kotlin VideoConfig
50
+ // constructor shape, not the pre-pivot spec dictionary. Pre-fix this
51
+ // block advertised `resolution`, `max_duration_seconds: { max: 60,
52
+ // default: 10 }`, `include_audio: { default: false }`, and a
53
+ // `stop_conditions` array — none of those match the current Kotlin
54
+ // API (`maxDurationSeconds: Double? = null`, `includeAudio: Boolean
55
+ // = true`, `format: VideoFormat = MP4_HEVC`, no other fields). For
56
+ // the iOS shape (which DOES have resolution + Int durationSeconds)
57
+ // and the cancel-on-voice-stop idiom, see the capability guide.
49
58
  params: {
50
- resolution: ["LOW", "MEDIUM", "HIGH"],
51
- max_duration_seconds: { max: 60, default: 10 },
52
- format: ["mp4_hevc", "mp4_h264"],
53
- include_audio: { default: false },
54
- stop_conditions: {
55
- shape: "array of { type, ... } objects",
56
- itemTypes: ["voice_command", "capture_button", "tap", "double_tap", "ai_vision"],
57
- enforced: ["voice_command"],
58
- note: "Phase 6 only enforces voice_command at runtime; capture_button / tap / double_tap / ai_vision are accepted by the spec parser but no-op on real hardware (validateSpec warns). Schema: $defs/stop_condition.",
59
+ max_duration_seconds: {
60
+ kotlin: { type: "Double?", default: null, note: "null = no hard cap; stop only via cancellation" },
61
+ swift: { type: "Int", default: 10 },
62
+ },
63
+ include_audio: {
64
+ kotlin: { type: "Boolean", default: true },
65
+ swift: { type: "Bool", default: false },
66
+ },
67
+ format: ["mp4_hevc", "mp4_h264", "mov"],
68
+ resolution: {
69
+ kotlin: { available: false, note: "Kotlin VideoConfig has no resolution field" },
70
+ swift: ["LOW", "MEDIUM", "HIGH"],
59
71
  },
60
72
  },
61
73
  returns: { uri: "string", duration_ms: "int", format: "string", width: "int", height: "int" },
62
74
  constraints: [
63
75
  "HEVC passthrough bypasses the MediaCodec FPS cliff (issue #44 — h264 re-encode drops to <5 fps)",
64
76
  "include_audio=true forces HFP route, disabling high-quality A2DP playback during capture",
77
+ "F-R4-05: caller-coroutine cancellation triggers capture_video_abort + a 10s drain for the partial video_result. Post-clip I/O must run under withContext(NonCancellable) { ... } to survive the surrounding handler's cancellation — see capability guide.",
65
78
  ],
66
79
  },
67
80
  {
@@ -286,9 +299,15 @@ export const META_RAYBAN_CAPABILITIES = {
286
299
  {
287
300
  type: "earcon",
288
301
  tier: "sdk_method",
289
- description: "Play a short system sound (confirmation / error / notification / start / stop) over the glasses speaker. Cheap, non-interrupting — use to acknowledge capture, mark turn boundaries, etc.",
302
+ description: "Play a short system sound over the glasses speaker. Cheap, non-interrupting — use to acknowledge capture, mark turn boundaries, signal completion / failure, etc.",
290
303
  sdkPath: { kotlin: "audio.earcon", swift: "audio.earcon" },
291
- params: { sound: ["confirmation", "error", "notification", "start", "stop"], volume: "number 0-1" },
304
+ // F-R4-08: 6 values, matching the Kotlin EarconSound enum's actual
305
+ // shape (TransportPayloads.kt). Pre-fix this list omitted `complete`,
306
+ // which IS a valid enum case and is the one customers reach for
307
+ // most (after a successful capture / save). Names are presented in
308
+ // their wire/snake_case form here; the Kotlin enum is uppercase
309
+ // (EarconSound.CONFIRMATION, EarconSound.COMPLETE, etc.).
310
+ params: { sound: ["confirmation", "error", "notification", "complete", "start", "stop"], volume: "number 0-1" },
292
311
  },
293
312
  {
294
313
  type: "connection_state",
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,wEAAwE;AACxE,mEAAmE;AACnE,wEAAwE;AACxE,yEAAyE;AACzE,+EAA+E;AAC/E,oEAAoE;AACpE,oEAAoE;AACpE,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,oEAAoE;AACpE,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,UAAU,EACR,2LAA2L;IAC7L,qBAAqB,EACnB,4QAA4Q;IAC9Q,UAAU,EACR,sNAAsN;CACzN,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,aAAa;IACpB,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;IAC9C,gBAAgB,EAAE,iBAAiB;IACnC,MAAM,EAAE;QACN;YACE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,6IAA6I;YAC1J,OAAO,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;YACxE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YAC3E,iEAAiE;YACjE,gEAAgE;YAChE,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;YACzE,WAAW,EAAE,CAAC,qCAAqC,EAAE,iEAAiE,CAAC;SACxH;QACD;YACE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,uBAAuB;YAC7B,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,iJAAiJ;YAC9J,OAAO,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;YACxE,MAAM,EAAE;gBACN,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;gBACrC,oBAAoB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC9C,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;gBAChC,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACjC,eAAe,EAAE;oBACf,KAAK,EAAE,gCAAgC;oBACvC,SAAS,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC;oBAChF,QAAQ,EAAE,CAAC,eAAe,CAAC;oBAC3B,IAAI,EAAE,8MAA8M;iBACrN;aACF;YACD,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC7F,WAAW,EAAE;gBACX,iGAAiG;gBACjG,0FAA0F;aAC3F;SACF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,uBAAuB;YAC7B,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,oJAAoJ;YACjK,OAAO,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAC1E,MAAM,EAAE;gBACN,oBAAoB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC9C,uBAAuB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;gBAChD,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC7B,eAAe,EAAE;oBACf,KAAK,EAAE,gCAAgC;oBACvC,SAAS,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC;oBAChF,QAAQ,EAAE,CAAC,eAAe,CAAC;oBAC3B,IAAI,EAAE,8MAA8M;iBACrN;aACF;YACD,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE;YACpF,WAAW,EAAE;gBACX,oFAAoF;gBACpF,qDAAqD;gBACrD,qFAAqF;aACtF;SACF;KACF;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,sJAAsJ;YACnK,OAAO,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACtE,MAAM,EAAE;gBACN,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;gBACrC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACvB,YAAY,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC;aACxD;YACD,eAAe,EAAE,2GAA2G;SAC7H;QACD;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,mJAAmJ;YAChK,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACpE,MAAM,EAAE;gBACN,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC7B,YAAY,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC;aACxD;YACD,eAAe,EAAE,gDAAgD;SAClE;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,+JAA+J;YAC5K,OAAO,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAC1E,MAAM,EAAE;gBACN,QAAQ,EAAE,QAAQ;gBAClB,sBAAsB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;aACzC;YACD,eAAe,EAAE,wEAAwE;SAC1F;QACD;YACE,sEAAsE;YACtE,uEAAuE;YACvE,0EAA0E;YAC1E,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,6IAA6I;YAC1J,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;YACxE,MAAM,EAAE;gBACN,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC7B,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;aAC7B;YACD,eAAe,EAAE,2EAA2E;SAC7F;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,yHAAyH;YACtI,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE;YAC1E,MAAM,EAAE;gBACN,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;gBACrC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aACxB;YACD,eAAe,EAAE,qIAAqI;SACvJ;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,scAAsc;YACnd,OAAO,EAAE,EAAE,MAAM,EAAE,8DAA8D,EAAE,KAAK,EAAE,8DAA8D,EAAE;YAC1J,MAAM,EAAE;gBACN,MAAM,EAAE,6BAA6B;gBACrC,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC;gBAChD,cAAc,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;gBAChC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;aACtC;YACD,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE;YAC3F,QAAQ,EAAE,CAAC,YAAY,EAAE,gDAAgD,CAAC;SAC3E;QACD;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,2KAA2K;YACxL,OAAO,EAAE,EAAE,MAAM,EAAE,+CAA+C,EAAE,KAAK,EAAE,+CAA+C,EAAE;YAC5H,MAAM,EAAE;gBACN,MAAM,EAAE,yCAAyC;aAClD;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,wCAAwC,CAAC;SACnE;QACD;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,kJAAkJ;YAC/J,OAAO,EAAE,EAAE,MAAM,EAAE,oDAAoD,EAAE,KAAK,EAAE,oDAAoD,EAAE;YACtI,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;YACzD,QAAQ,EAAE,CAAC,2CAA2C,CAAC;SACxD;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE;gBACN,aAAa,EAAE;oBACb,IAAI,EAAE,gCAAgC;oBACtC,EAAE,EAAE,gCAAgC;iBACrC;aACF;YACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC3D;QACD;YACE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,YAAY;SACnB;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;YACjE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE;SAC9D;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;SAC1C;QACD;YACE,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnE,QAAQ,EAAE;gBACR,wDAAwD;gBACxD,oEAAoE;aACrE;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE;gBACN,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBACtC,uBAAuB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aACzC;YACD,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE;YAC9E,QAAQ,EAAE,CAAC,6EAA6E,CAAC;SAC1F;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE;YACzD,QAAQ,EAAE;gBACR,sCAAsC;gBACtC,uBAAuB;aACxB;SACF;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE;SAC9D;QACD;YACE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,CAAC,uEAAuE,CAAC;SACpF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,uOAAuO;YACpP,OAAO,EAAE,EAAE,MAAM,EAAE,0DAA0D,EAAE,KAAK,EAAE,0DAA0D,EAAE;YAClJ,WAAW,EAAE,CAAC,wEAAwE,CAAC;SACxF;KACF;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,mEAAmE;IACnE,wEAAwE;IACxE,2DAA2D;IAC3D,UAAU,EAAE;QACV;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,8OAA8O;YAC3P,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;YACxD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,6CAA6C,EAAE;YACjF,OAAO,EAAE,EAAE,EAAE,EAAE,kCAAkC,EAAE;SACpD;QACD;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,wLAAwL;YACrM,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACpE,MAAM,EAAE,EAAE;SACX;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,2LAA2L;YACxM,OAAO,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;YAC1D,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE;SACpG;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,uLAAuL;YACpM,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YAClE,OAAO,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE;SAC/C;KACF;IACD,OAAO,EAAE;QACP,SAAS;QACT,EAAE,IAAI,EAAE,YAAY,EAAE;QACtB,EAAE,IAAI,EAAE,cAAc,EAAE;QACxB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,oEAAoE,CAAC,EAAE;QACvG,EAAE,IAAI,EAAE,cAAc,EAAE;QACxB,EAAE,IAAI,EAAE,YAAY,EAAE;QACtB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,8GAA8G,CAAC,EAAE;QACnJ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,8CAA8C,CAAC,EAAE;QAChF,EAAE,IAAI,EAAE,OAAO,EAAE;QACjB,aAAa;QACb,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;QACtG,EAAE,IAAI,EAAE,YAAY,EAAE;QACtB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;QACzE,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE;QACrE,EAAE,IAAI,EAAE,oBAAoB,EAAE;QAC9B,EAAE,IAAI,EAAE,mBAAmB,EAAE;QAC7B,EAAE,IAAI,EAAE,gBAAgB,EAAE;KAC3B;IACD,OAAO,EAAE;QACP;YACE,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;YACtD,KAAK,EAAE,CAAC,2BAA2B,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC;YAC9F,WAAW,EAAE,iIAAiI;SAC/I;QACD;YACE,GAAG,EAAE,0BAA0B;YAC/B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,uBAAuB,CAAC;YAClF,WAAW,EAAE,sGAAsG;SACpH;QACD;YACE,GAAG,EAAE,uBAAuB;YAC5B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,2BAA2B,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,uBAAuB,CAAC;YAC3I,WAAW,EAAE,yFAAyF;SACvG;QACD;YACE,GAAG,EAAE,uBAAuB;YAC5B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,CAAC,2BAA2B,CAAC;YACpC,WAAW,EAAE,2LAA2L;SACzM;QACD;YACE,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,uHAAuH;SACrI;QACD;YACE,GAAG,EAAE,qBAAqB;YAC1B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,mJAAmJ;SACjK;QACD;YACE,GAAG,EAAE,gCAAgC;YACrC,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC;YACzD,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,uKAAuK;SACrL;QACD;YACE,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,2BAA2B,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,uBAAuB,CAAC;YACtN,WAAW,EAAE,4HAA4H;SAC1I;KACF;IACD,iBAAiB,EAAE;QACjB,2LAA2L;QAC3L,wJAAwJ;QACxJ,qKAAqK;QACrK,8HAA8H;QAC9H,+GAA+G;KAChH;IACD,iBAAiB,EAAE;QACjB,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,iDAAiD,EAAE;QACtF,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,4CAA4C,EAAE;QAC1F,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,wEAAwE,EAAE;KACjH;IACD,gBAAgB,EAAE;QAChB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,uCAAuC,EAAE;QAC5F,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,oCAAoC,EAAE;KACnG;CACF,CAAC;AAEF,wDAAwD;AACxD,sEAAsE;AACtE,wEAAwE;AACxE,mEAAmE;AACnE,uEAAuE;AACvE,mEAAmE;AACnE,qEAAqE;AACrE,mCAAmC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,GAAG,EAAE;IACzD,MAAM,CAAC,GAAG,wBAKT,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,EAAE;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,yEAAyE;IACzE,qEAAqE;IACrE,2CAA2C;IAC3C,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC,EAAE,CAAC;AAEL,mGAAmG;AACnG,sEAAsE;AACtE,EAAE;AACF,aAAa;AACb,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,8EAA8E;AAC9E,kDAAkD;AAClD,mEAAmE;AACnE,sEAAsE;AACtE,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,6BAA6B;AAC7B,MAAM,CAAC,MAAM,mBAAmB,GAAwC,MAAM,CAAC,MAAM,CACnF,MAAM,CAAC,WAAW,CAChB,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzC,CAAC,CAAC,IAAI;IACN,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAwB;CACtE,CAAC,CACH,CACF,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/tools/data/capabilities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityPatterns.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAsZD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAU7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAwC,CAAC"}
1
+ {"version":3,"file":"capabilityPatterns.d.ts","sourceRoot":"","sources":["../../../src/tools/data/capabilityPatterns.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAokBD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAW7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAwC,CAAC"}
@@ -16,6 +16,24 @@ import com.extentos.glasses.core.Photos
16
16
  import com.extentos.glasses.core.Resolution
17
17
  import com.extentos.glasses.core.valueOrNull
18
18
 
19
+ // F-R3-9: Photos helpers (in com.extentos.glasses.core.Photos) — pass
20
+ // photo.uri to bridge data: and file: URI schemes uniformly. All four
21
+ // return nullable (null on unreadable URI, unrecognized scheme, decode
22
+ // failure, or OOM — never throw). Three are \`suspend\` (decode runs on
23
+ // Dispatchers.IO under the hood); mediaTypeFromUri is synchronous.
24
+ // suspend fun Photos.loadBase64(uri: String): String?
25
+ // — base64 of the photo bytes (NO "data:image/...;base64," prefix).
26
+ // Fast path on data: URIs: returns the substring after the comma
27
+ // directly (no decode + re-encode round trip).
28
+ // suspend fun Photos.loadBytes(uri: String): ByteArray?
29
+ // — raw bytes (for ML pipelines that want the unencoded source).
30
+ // suspend fun Photos.loadBitmap(uri: String): android.graphics.Bitmap?
31
+ // — decoded Bitmap (for Compose: \`bitmap?.asImageBitmap()\`).
32
+ // fun Photos.mediaTypeFromUri(uri: String): String?
33
+ // — "image/jpeg" / "image/png" / "image/webp" / "image/gif" /
34
+ // "image/heic". For data: URIs: parses the embedded MIME directly.
35
+ // For file: URIs: infers from extension. Synchronous, pure CPU.
36
+
19
37
  val photo = glasses.camera.capturePhoto(
20
38
  PhotoConfig(resolution = Resolution.MEDIUM, format = PhotoFormat.JPEG)
21
39
  ).valueOrNull() ?: return // ExtentosResult.Err — see Errors.kt for failure shapes
@@ -25,23 +43,41 @@ val photo = glasses.camera.capturePhoto(
25
43
  // check before passing to the Photos helpers; loadBase64 / mediaTypeFromUri
26
44
  // both require non-null String.
27
45
  val uri = photo.uri ?: return
28
- val base64 = Photos.loadBase64(uri)
29
- val mediaType = Photos.mediaTypeFromUri(uri) // "image/jpeg"`,
46
+ val base64 = Photos.loadBase64(uri) // String? — base64-encoded photo bytes
47
+ val mediaType = Photos.mediaTypeFromUri(uri) // String? — e.g. "image/jpeg"
48
+ // For UI rendering in Compose, decode directly to ImageBitmap:
49
+ val bitmap = Photos.loadBitmap(uri)?.asImageBitmap() // androidx.compose.ui.graphics.ImageBitmap?`,
30
50
  swift: `let result = await glasses.camera.capturePhoto(
31
51
  config: PhotoConfig(resolution: .medium, format: .jpeg)
32
52
  )
33
53
  guard case .success(let photo) = result else { return }
34
54
 
35
- // Pass to a vision LLM. photo.url is a URL whose scheme varies by
36
- // transport (file:// on RealMeta / LocalSim, data: on BrowserSim).
37
- // The bundled extension materializes a UIImage from either:
55
+ // F-R3-9: Photo helpers (Swift). iOS has fewer pre-built helpers than
56
+ // Android's Photos object only loadImage() is bundled, and the
57
+ // customer encodes / mediaTypes the result themselves.
58
+ // extension Photo {
59
+ // func loadImage() async -> PlatformImage? // UIImage on iOS, NSImage on macOS
60
+ // }
61
+ // Handles both file:// (RealMeta / LocalSim) and data: (BrowserSim) URLs.
62
+ // Returns nil on unrecognized scheme, missing file, or decode failure.
63
+ // Internally runs on a detached high-priority Task so a 1MB data-URI
64
+ // base64 decode doesn't block the caller.
65
+ //
66
+ // For Anthropic / OpenAI vision payloads, encode the UIImage to JPEG +
67
+ // base64 yourself (no library helper for this — the encoding choice
68
+ // belongs to the caller, since model accept rates and storage costs
69
+ // differ per format / quality combination):
70
+ //
71
+ // let jpeg = image?.jpegData(compressionQuality: 0.85)
72
+ // let base64 = jpeg?.base64EncodedString()
73
+ // let mediaType = "image/jpeg"
74
+
38
75
  let image = await photo.loadImage()
39
- // For base64 you encode the JPEG/PNG data yourself:
40
76
  let base64 = image?.jpegData(compressionQuality: 0.85)?.base64EncodedString()
41
77
  let mediaType = "image/jpeg"`,
42
78
  gotchas: [
43
79
  "PhotoConfig takes TYPED ENUMS, not strings: `PhotoConfig(resolution = Resolution.MEDIUM, format = PhotoFormat.JPEG)`. Resolution enum: LOW, MEDIUM, HIGH. PhotoFormat enum: JPEG, HEIC. Both live in com.extentos.glasses.core (flat package — see library_api topic).",
44
- "Photo.uri is `String?` (nullable). The Photos helpers (loadBase64 / loadBytes / loadBitmap / mediaTypeFromUri) require non-null String. Null-check `photo.uri` before passing.",
80
+ "Photo.uri is `String?` (nullable). The Photos helpers (loadBase64 / loadBytes / loadBitmap / mediaTypeFromUri) require non-null String. Null-check `photo.uri` before passing. See the kotlin snippet's header comment for each helper's full signature + return type.",
45
81
  "Photo URI shape varies by transport (data: vs file:). Use Photos.loadBase64(uri) helpers to bridge — don't try to AsyncImage / URL.init() the URI directly.",
46
82
  "Resolution HIGH adds ~400ms latency on Gen 1 hardware vs MEDIUM. MEDIUM is the right default; only use HIGH for downstream models that genuinely need detail.",
47
83
  "Capture blocks while outgoing_video_stream is active (camera exclusivity). If both are needed, set audio_video_coexistence_policy = prefer_video.",
@@ -393,8 +429,145 @@ final class CountHandler: @unchecked Sendable {
393
429
  ],
394
430
  relatedExamples: ["voice_qa_assistant", "barge_in_speak", "voice_notes"],
395
431
  };
432
+ const CAPTURE_VIDEO = {
433
+ feature: "capture_video",
434
+ summary: "Bounded video clip from the glasses camera. Phone-side encoded — the suspend returns a VideoClip with `uri` (transport-shaped — data: in BrowserSim, file: in RealMeta / LocalSim), `durationMs`, `format`, `width`, `height`. Default config: HEVC, audio on, no max duration (caller's coroutine cancellation is the stop primitive). Cross-platform asymmetry — see kotlin/swift snippets.",
435
+ kotlin: `import com.extentos.glasses.core.VideoConfig
436
+ import com.extentos.glasses.core.VideoFormat
437
+ import com.extentos.glasses.core.Videos
438
+ import com.extentos.glasses.core.valueOrNull
439
+ import kotlinx.coroutines.NonCancellable
440
+ import kotlinx.coroutines.withContext
441
+ import java.io.File
442
+
443
+ // F-R4-04: VideoConfig fields are { maxDurationSeconds: Double?, includeAudio:
444
+ // Boolean = true, format: VideoFormat = MP4_HEVC }. There is NO resolution
445
+ // field on Android (asymmetric with iOS — see Swift snippet below). There
446
+ // is NO stopConditions field on the Kotlin Config — the spec metadata used
447
+ // to advertise one but it was a pre-pivot vestige; the actual stop
448
+ // primitive is structured-concurrency cancellation of the caller's
449
+ // coroutine (see "stopping a recording" pattern below).
450
+
451
+ val clip = glasses.camera.captureVideo(
452
+ VideoConfig(
453
+ maxDurationSeconds = 60.0, // Double? — null means "no hard cap; stop only on cancellation"
454
+ includeAudio = true, // forces HFP route while capturing — A2DP playback drops to mono 8 kHz
455
+ format = VideoFormat.MP4_HEVC, // MP4_HEVC, MP4_H264, MOV. Prefer HEVC: H264 hits an FPS cliff (#44).
456
+ )
457
+ ).valueOrNull() ?: return // ExtentosResult.Err — see Errors.kt for failure shapes
458
+
459
+ // VideoClip.uri is String? (nullable). Null-check before passing to Videos.
460
+ val uri = clip.uri ?: return
461
+ val duration: Long = clip.durationMs
462
+
463
+ // F-R3-9: Videos helpers (com.extentos.glasses.core.Videos) — Android-only;
464
+ // iOS parity queued. Bridge data: and file: schemes uniformly.
465
+ // suspend fun Videos.copyToFile(uri: String, dst: File): Boolean
466
+ // — canonical save-to-gallery path. Streams file:// / bare-path;
467
+ // decodes data: URIs in-memory. Use for >50 MB clips.
468
+ // suspend fun Videos.loadBytes(uri: String): ByteArray?
469
+ // — raw bytes (e.g. inline-video Gemini 1.5 Pro payloads).
470
+ // suspend fun Videos.loadBase64(uri: String): String?
471
+ // — base64 (no \`data:\` prefix; same fast-path on data: URIs as Photos).
472
+ // fun Videos.mediaTypeFromUri(uri: String): String?
473
+ // — "video/mp4", "video/quicktime", etc. Synchronous, pure CPU.
474
+
475
+ val dst = File(context.filesDir, "clip-\${System.currentTimeMillis()}.mp4")
476
+ val ok = Videos.copyToFile(uri, dst)
477
+ if (!ok) return // copy failed — surface to UI
478
+
479
+ // ── Stopping a recording on a voice command ──
480
+ //
481
+ // F-R4-05 + F-R4-14: The canonical pattern is to wrap captureVideo() in
482
+ // a wake-phrase handler whose \`stops\` list cancels the handler. The
483
+ // library's cancellation path sends \`capture_video_abort\` to the
484
+ // transport AND drains the partial video_result for up to 10s under
485
+ // NonCancellable, so captureVideo() returns Ok(VideoClip) with the
486
+ // recorded-up-to-that-point clip instead of throwing. Your save logic
487
+ // MUST run under withContext(NonCancellable) { ... } so the post-clip
488
+ // I/O survives the surrounding handler cancellation. Concrete shape:
489
+ //
490
+ // glasses.voice.onPhrase(
491
+ // phrase = "start recording",
492
+ // stops = listOf("stop recording"),
493
+ // ) {
494
+ // val clip = glasses.camera.captureVideo(
495
+ // VideoConfig(maxDurationSeconds = 60.0, includeAudio = true)
496
+ // ).valueOrNull() ?: return@onPhrase
497
+ // val uri = clip.uri ?: return@onPhrase
498
+ // // post-stop I/O — must survive cancellation
499
+ // withContext(NonCancellable) {
500
+ // Videos.copyToFile(uri, dst)
501
+ // repo.insertRecording(/* ... */)
502
+ // }
503
+ // }
504
+ //
505
+ // If the drain ceiling (10s) is exceeded — very large clips, slow device
506
+ // finalize — the original CancellationException rethrows and the partial
507
+ // is lost. Bound your clip lengths or implement your own
508
+ // videoFrames-based encoder if you need longer-than-30s clips.`,
509
+ swift: `import GlassesCore
510
+
511
+ // F-R4-04: Swift VideoConfig is INTENTIONALLY different from Kotlin's.
512
+ // Fields: { resolution: Resolution, durationSeconds: Int, format:
513
+ // VideoFormat, includeAudio: Bool = false }. Note the resolution field
514
+ // (no Kotlin equivalent), the duration type (Int seconds, not Double?
515
+ // optional), and the includeAudio default (false on iOS vs true on
516
+ // Android). When porting a Kotlin snippet to Swift, do not assume
517
+ // shape-for-shape parity here.
518
+
519
+ let result = await glasses.camera.captureVideo(
520
+ config: VideoConfig(
521
+ resolution: .medium,
522
+ durationSeconds: 60,
523
+ format: .mp4Hevc,
524
+ includeAudio: true
525
+ )
526
+ )
527
+ guard case .success(let clip) = result else { return }
528
+
529
+ let url = clip.url // URL? — nil on transport-boundary drop
530
+ let duration = clip.durationMs
531
+ // iOS has no Videos.copyToFile equivalent yet (queued). Read the URL
532
+ // directly with FileManager / Data(contentsOf:) for file:// URLs, or
533
+ // parse the data: scheme by hand for BrowserSim.
534
+
535
+ // ── Stopping a recording on a voice command (Swift) ──
536
+ //
537
+ // Same pattern as Kotlin: wrap in voice.onPhrase with a stops list. The
538
+ // library drains the partial under Task.detached / NonCancellable
539
+ // semantics. Post-clip I/O must be inside a detached Task or wrapped
540
+ // such that cancellation does not interrupt the save:
541
+ //
542
+ // glasses.voice.onPhrase(phrase: "start recording",
543
+ // stops: ["stop recording"]) { [glasses] in
544
+ // let result = await glasses.camera.captureVideo(
545
+ // config: VideoConfig(durationSeconds: 60, includeAudio: true)
546
+ // )
547
+ // guard case .success(let clip) = result, let url = clip.url
548
+ // else { return }
549
+ // // post-stop I/O — must survive cancellation
550
+ // await Task.detached(priority: .userInitiated) {
551
+ // try? FileManager.default.copyItem(at: url, to: dst)
552
+ // await repo.insertRecording(/* ... */)
553
+ // }.value
554
+ // }`,
555
+ gotchas: [
556
+ "**Cross-platform asymmetry — F-R4-04.** Kotlin VideoConfig has THREE fields (maxDurationSeconds: Double?, includeAudio: Boolean = true, format: VideoFormat). Swift VideoConfig has FOUR (resolution: Resolution, durationSeconds: Int, format, includeAudio: Bool = false). Kotlin has no resolution field; Swift's includeAudio defaults to false where Android's defaults to true. Don't port snippets shape-for-shape.",
557
+ "**No stopConditions on either platform — F-R4-04.** The spec metadata used to advertise a `stop_conditions` parameter accepting `voice_command` entries; that was a pre-pivot vestige and was never wired in the Kotlin/Swift API. The actual stop primitive is structured-concurrency cancellation of the caller's coroutine (in Kotlin) / Task (in Swift). Use `voice.onPhrase(phrase = \"start recording\", stops = listOf(\"stop recording\")) { captureVideo(...) }` and let the stops watcher cancel the handler — the library's transport drains the partial video_result for up to 10s and returns Ok(VideoClip).",
558
+ "**Cancel-drain ceiling is 10s — F-R4-05.** Real-hardware MediaRecorder.stop → encode → video_result can run 3–5s on 20-second clips. The library waits up to 10s under NonCancellable for the partial response after sending capture_video_abort. If the encode exceeds 10s (very large clips / slow device), the original CancellationException rethrows and the partial is lost. Bound clip lengths or fall back to a `videoFrames` + MediaMuxer custom encoder for >30s clips.",
559
+ "**Post-clip I/O must be NonCancellable.** When using onPhrase + stops, the handler coroutine has been cancellation-requested by the time captureVideo returns Ok(clip). The next suspend (e.g., `Videos.copyToFile(uri, dst)`) will throw CancellationException unless wrapped in `withContext(NonCancellable) { ... }` (Kotlin) or executed in a `Task.detached` (Swift). Saving without the wrap silently drops the clip.",
560
+ "**HEVC vs H264 FPS cliff.** Prefer VideoFormat.MP4_HEVC. MP4_H264 re-encodes through MediaCodec which falls off below 5 fps on Gen 1 hardware (issue #44). HEVC is passthrough on real glasses; the simulator emits H264 anyway, so dev/prod parity is on shape, not codec.",
561
+ "**includeAudio forces HFP coexistence.** When true, audio captures over HFP (the glasses-as-mic profile), which suspends A2DP playback during capture — music drops to mono 8 kHz until the clip finishes. If your app plays music while capturing, set includeAudio=false (default on iOS, but you must opt out explicitly on Android).",
562
+ "**Videos namespace is Android-only (today).** iOS parity for `Videos.copyToFile` / `Videos.loadBytes` / `Videos.loadBase64` / `Videos.mediaTypeFromUri` is queued. On iOS, read the file:// URL via FileManager or parse the data: URI manually.",
563
+ "**Gated by camera_streaming_enabled (default true) + privacy_mode (default false).** When either flips closed, captureVideo returns CaptureError.DisabledByUser with the gating toggle's name. Surface that in your UI rather than silently failing.",
564
+ "**Camera exclusivity.** captureVideo blocks while outgoing_video_stream is active. The audio_video_coexistence_policy toggle defaults to prefer_video; explicit conflict-handling is on the customer if both streams race.",
565
+ ],
566
+ relatedExamples: ["voice_notes"],
567
+ };
396
568
  export const CAPABILITY_GUIDES = {
397
569
  capture_photo: CAPTURE_PHOTO,
570
+ capture_video: CAPTURE_VIDEO,
398
571
  record_audio: RECORD_AUDIO,
399
572
  transcription_incremental: TRANSCRIPTION_INCREMENTAL,
400
573
  speak: SPEAK_AND_CANCEL,