appium-mcp 1.84.2 → 1.85.1

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 (61) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +30 -2
  3. package/dist/core.d.ts +2 -0
  4. package/dist/core.d.ts.map +1 -1
  5. package/dist/core.js +2 -0
  6. package/dist/core.js.map +1 -1
  7. package/dist/create-server.d.ts +3 -3
  8. package/dist/create-server.d.ts.map +1 -1
  9. package/dist/create-server.js +7 -3
  10. package/dist/create-server.js.map +1 -1
  11. package/dist/server.d.ts.map +1 -1
  12. package/dist/server.js +1 -1
  13. package/dist/server.js.map +1 -1
  14. package/dist/session-store.d.ts +2 -2
  15. package/dist/session-store.d.ts.map +1 -1
  16. package/dist/session-store.js +5 -13
  17. package/dist/session-store.js.map +1 -1
  18. package/dist/telemetry/attributes.d.ts +46 -0
  19. package/dist/telemetry/attributes.d.ts.map +1 -0
  20. package/dist/telemetry/attributes.js +90 -0
  21. package/dist/telemetry/attributes.js.map +1 -0
  22. package/dist/telemetry/init.d.ts +19 -0
  23. package/dist/telemetry/init.d.ts.map +1 -0
  24. package/dist/telemetry/init.js +68 -0
  25. package/dist/telemetry/init.js.map +1 -0
  26. package/dist/telemetry/tracer.d.ts +31 -0
  27. package/dist/telemetry/tracer.d.ts.map +1 -0
  28. package/dist/telemetry/tracer.js +59 -0
  29. package/dist/telemetry/tracer.js.map +1 -0
  30. package/dist/telemetry/wrapOperations.d.ts +30 -0
  31. package/dist/telemetry/wrapOperations.d.ts.map +1 -0
  32. package/dist/telemetry/wrapOperations.js +156 -0
  33. package/dist/telemetry/wrapOperations.js.map +1 -0
  34. package/dist/tools/index.d.ts.map +1 -1
  35. package/dist/tools/index.js +2 -12
  36. package/dist/tools/index.js.map +1 -1
  37. package/dist/tools/session/session.d.ts.map +1 -1
  38. package/dist/tools/session/session.js +11 -10
  39. package/dist/tools/session/session.js.map +1 -1
  40. package/dist/utils/env.d.ts +2 -0
  41. package/dist/utils/env.d.ts.map +1 -0
  42. package/dist/utils/env.js +5 -0
  43. package/dist/utils/env.js.map +1 -0
  44. package/dist/utils/sensitive.d.ts +8 -0
  45. package/dist/utils/sensitive.d.ts.map +1 -0
  46. package/dist/utils/sensitive.js +27 -0
  47. package/dist/utils/sensitive.js.map +1 -0
  48. package/package.json +10 -1
  49. package/server.json +2 -2
  50. package/src/core.ts +2 -0
  51. package/src/create-server.ts +8 -4
  52. package/src/server.ts +1 -1
  53. package/src/session-store.ts +6 -20
  54. package/src/telemetry/attributes.ts +104 -0
  55. package/src/telemetry/init.ts +77 -0
  56. package/src/telemetry/tracer.ts +75 -0
  57. package/src/telemetry/wrapOperations.ts +245 -0
  58. package/src/tools/index.ts +2 -14
  59. package/src/tools/session/session.ts +14 -9
  60. package/src/utils/env.ts +5 -0
  61. package/src/utils/sensitive.ts +30 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [1.85.1](https://github.com/appium/appium-mcp/compare/v1.85.0...v1.85.1) (2026-06-11)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **session:** return error on invalid capabilities JSON ([#397](https://github.com/appium/appium-mcp/issues/397)) ([c1be520](https://github.com/appium/appium-mcp/commit/c1be520ca463f9d5ff0ce60c70a0095585f4ce5d))
6
+
7
+ ## [1.85.0](https://github.com/appium/appium-mcp/compare/v1.84.2...v1.85.0) (2026-06-11)
8
+
9
+ ### Features
10
+
11
+ * add OpenTelemetry feature ([#385](https://github.com/appium/appium-mcp/issues/385)) ([99dee60](https://github.com/appium/appium-mcp/commit/99dee60e81491020cb7b03ed811629a4a955eeb8))
12
+
13
+ ### Miscellaneous Chores
14
+
15
+ * **release:** 1.85.0 [skip ci] ([22d7957](https://github.com/appium/appium-mcp/commit/22d79570be7f5e8ea36dec302c21445823495e02))
16
+
1
17
  ## [1.84.2](https://github.com/appium/appium-mcp/compare/v1.84.1...v1.84.2) (2026-06-09)
2
18
 
3
19
  ### Bug Fixes
package/README.md CHANGED
@@ -155,6 +155,34 @@ This will automatically configure the MCP server for use with Claude Code. Make
155
155
  | `SENTENCE_TRANSFORMERS_MODEL` | Optional | Hugging Face model used for semantic search in Appium documentation queries (default: `Xenova/all-MiniLM-L6-v2`) |
156
156
  | `APPIUM_MCP_PERSIST_REMOTE_SESSIONS_PATH` | Optional | Absolute file path to persist attached remote session info across server restarts (JSON format) |
157
157
  | `APPIUM_MCP_EVIDENCE` | Optional | Set to `true` or `1` to attach a structured **action evidence record** (locator, resolved element id, context, timing, normalized error code) to `appium_find_element` and `appium_gesture` responses as an `application/vnd.appium.evidence+json` resource block, for CI/debugging. Disabled by default; responses are unchanged when unset. |
158
+ | `APPIUM_MCP_OTEL_ENABLED` | Optional | Set to `true` to enable OpenTelemetry tracing (disabled by default). |
159
+ | `APPIUM_MCP_OTEL_INCLUDE_ARGUMENT_VALUES` | Optional | Set to `true` to include sanitized non-sensitive argument values in spans; disabled by default because values may contain sensitive data. |
160
+ | `OTEL_SERVICE_NAME` | Optional | Service name reported to the OpenTelemetry collector (example: `appium-mcp`). |
161
+ | `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | Optional | OTLP/HTTP traces endpoint (example: `http://127.0.0.1:4318/v1/traces`). |
162
+ | `OTEL_TRACES_SAMPLER` | Optional | Trace sampling strategy; `parentbased_always_on` samples new root traces and follows parent decisions. |
163
+
164
+ ### OpenTelemetry tracing
165
+
166
+ OpenTelemetry tracing is disabled by default. Set `APPIUM_MCP_OTEL_ENABLED=true` to initialize the Node.js OpenTelemetry SDK before the MCP server is constructed. The SDK uses standard `OTEL_*` environment variables, for example:
167
+
168
+ ```bash
169
+ APPIUM_MCP_OTEL_ENABLED=true
170
+ # Optional: include sanitized non-sensitive argument values in spans.
171
+ # APPIUM_MCP_OTEL_INCLUDE_ARGUMENT_VALUES=true
172
+ OTEL_SERVICE_NAME=appium-mcp
173
+ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://127.0.0.1:4318/v1/traces
174
+ OTEL_TRACES_SAMPLER=parentbased_always_on
175
+ ```
176
+
177
+ When enabled, appium-mcp creates spans for MCP tool calls, prompt loads, resource reads, and resource template reads. Error status is recorded for thrown operation errors and MCP tool results marked with `isError`. Span attributes intentionally avoid raw screenshots, XML page source, prompts, credentials, and other high-cardinality or sensitive payloads.
178
+
179
+ For local trace inspection, use the Jaeger setup in `tools/telemetry`:
180
+
181
+ ```bash
182
+ npm run telemetry:jaeger:start
183
+ ```
184
+
185
+ Then open `http://127.0.0.1:16686` and run appium-mcp with the environment values in `tools/telemetry/jaeger.env`.
158
186
 
159
187
  ### Capabilities
160
188
 
@@ -342,7 +370,7 @@ HTTP and streamable MCP clients may **disconnect briefly** (reconnect, reload, p
342
370
 
343
371
  Use `appium-mcp/core` to compose the default Appium MCP server with custom business logic without maintaining a fork. Plugins can register MCP tools, prompts, resources, and resource templates, and can wrap tool execution with lifecycle hooks. Call hooks are tool-only: prompts, resources, and resource templates are registered with FastMCP but are not wrapped by `beforeCall` or `afterCall`.
344
372
 
345
- `createAppiumMcpServer({ policy })` can also hide nonmatching tools and resources from MCP discovery. Policy rules are regular expressions matched against tool and resource names exactly as registered. The policy is applied at registration time to both single and batch registration methods. Resource policy matches the resource `name` only; resources or resource templates without a string `name` cannot match a non-empty `allowResources` list.
373
+ `createAppiumMcpServer({ policy })` can also hide nonmatching tools and resources from MCP discovery. The factory is async, so await it before starting the returned server. Policy rules are regular expressions matched against tool and resource names exactly as registered. The policy is applied at registration time to both single and batch registration methods. Resource policy matches the resource `name` only; resources or resource templates without a string `name` cannot match a non-empty `allowResources` list.
346
374
 
347
375
  ```ts
348
376
  import { createAppiumMcpServer } from 'appium-mcp/core';
@@ -382,7 +410,7 @@ class CheckoutPlugin implements AppiumMcpPlugin {
382
410
  }
383
411
  }
384
412
 
385
- const server = createAppiumMcpServer({
413
+ const server = await createAppiumMcpServer({
386
414
  plugins: [new CheckoutPlugin()],
387
415
  additionalInstructions: 'Custom checkout policies are active.',
388
416
  policy: {
package/dist/core.d.ts CHANGED
@@ -10,5 +10,7 @@ export type { CreateAppiumMcpServerOptions } from './create-server.js';
10
10
  export { evaluatePolicyTarget } from './policy.js';
11
11
  export type { AppiumMcpPolicy, PolicyDecision, PolicyDecisionReason, PolicyTargetKind, } from './policy.js';
12
12
  export { AppiumMcpCore, formatVerificationReport, McpRegistry, PluginManager, verifyAppiumMcpNames, } from './plugin.js';
13
+ export { isTelemetryEnabled } from './telemetry/attributes.js';
14
+ export { getAppiumMcpTracer, withSpan } from './telemetry/tracer.js';
13
15
  export type { AppiumMcpPlugin, PluginContext, PluginSessionContext, ToolCallContext, ToolCallResult, VerificationDuplicate, VerificationDuplicateKind, VerificationEntry, VerificationReport, VerifyAppiumMcpNamesOptions, } from './plugin.js';
14
16
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,YAAY,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,aAAa,CAAC"}
package/dist/core.js CHANGED
@@ -8,4 +8,6 @@
8
8
  export { createAppiumMcpServer } from './create-server.js';
9
9
  export { evaluatePolicyTarget } from './policy.js';
10
10
  export { AppiumMcpCore, formatVerificationReport, McpRegistry, PluginManager, verifyAppiumMcpNames, } from './plugin.js';
11
+ export { isTelemetryEnabled } from './telemetry/attributes.js';
12
+ export { getAppiumMcpTracer, withSpan } from './telemetry/tracer.js';
11
13
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * ```ts
6
6
  * import { createAppiumMcpServer } from 'appium-mcp/core';
7
7
  *
8
- * const server = createAppiumMcpServer({
8
+ * const server = await createAppiumMcpServer({
9
9
  * plugins: [new CheckoutPlugin(), new LoginGuardPlugin()],
10
10
  * });
11
11
  *
@@ -52,7 +52,7 @@ export interface CreateAppiumMcpServerOptions {
52
52
  * server. It replicates the setup that the default `server.ts` performs, while
53
53
  * also registering plugin tools and lifecycle hooks.
54
54
  *
55
- * @returns A configured `FastMCP` instance ready to be `start()`-ed.
55
+ * @returns A promise resolving to a configured `FastMCP` instance ready to be `start()`-ed.
56
56
  */
57
- export declare function createAppiumMcpServer(options?: CreateAppiumMcpServerOptions): FastMCP;
57
+ export declare function createAppiumMcpServer(options?: CreateAppiumMcpServerOptions): Promise<FastMCP>;
58
58
  //# sourceMappingURL=create-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAalE,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAE5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;IAEhD;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAQD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAsKT"}
1
+ {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAelE,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAE5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;IAEhD;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAQD;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,OAAO,CAAC,CAwKlB"}
@@ -5,7 +5,7 @@
5
5
  * ```ts
6
6
  * import { createAppiumMcpServer } from 'appium-mcp/core';
7
7
  *
8
- * const server = createAppiumMcpServer({
8
+ * const server = await createAppiumMcpServer({
9
9
  * plugins: [new CheckoutPlugin(), new LoginGuardPlugin()],
10
10
  * });
11
11
  *
@@ -20,6 +20,8 @@ import { safeDeleteAllSessions, listSessions } from './session-store.js';
20
20
  import log from './logger.js';
21
21
  import { PluginManager } from './plugin.js';
22
22
  import { installPolicy } from './policy.js';
23
+ import { initializeOpenTelemetry } from './telemetry/init.js';
24
+ import { installTelemetryWrappers } from './telemetry/wrapOperations.js';
23
25
  const SERVER_VERSION = pkg.version;
24
26
  const SERVER_INSTRUCTIONS = [
25
27
  'Appium mobile automation through MCP. Defaults that avoid broken flows:',
@@ -40,9 +42,9 @@ const SERVER_INSTRUCTIONS = [
40
42
  * server. It replicates the setup that the default `server.ts` performs, while
41
43
  * also registering plugin tools and lifecycle hooks.
42
44
  *
43
- * @returns A configured `FastMCP` instance ready to be `start()`-ed.
45
+ * @returns A promise resolving to a configured `FastMCP` instance ready to be `start()`-ed.
44
46
  */
45
- export function createAppiumMcpServer(options = {}) {
47
+ export async function createAppiumMcpServer(options = {}) {
46
48
  const { plugins = [], serverName = 'MCP Appium', serverVersion = SERVER_VERSION, additionalInstructions, policy, } = options;
47
49
  const instructions = additionalInstructions
48
50
  ? `${SERVER_INSTRUCTIONS}\n${additionalInstructions}`
@@ -57,6 +59,8 @@ export function createAppiumMcpServer(options = {}) {
57
59
  },
58
60
  });
59
61
  installPolicy(server, policy);
62
+ await initializeOpenTelemetry();
63
+ installTelemetryWrappers(server);
60
64
  // -------------------------------------------------------------------------
61
65
  // 1. Install plugin hooks BEFORE registering any tools so that every built-in
62
66
  // and plugin tool is wrapped with beforeCall / afterCall.
@@ -1 +1 @@
1
- {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,MAAM,iEAAqC,CAAC;AAClD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,MAAM,iEAA2C,CAAC;AACxD,eAAe,MAAM,CAAC"}
package/dist/server.js CHANGED
@@ -5,6 +5,6 @@ try {
5
5
  plugins.push(new AppiumDocumentation());
6
6
  }
7
7
  catch (_err) { }
8
- const server = createAppiumMcpServer({ plugins });
8
+ const server = await createAppiumMcpServer({ plugins });
9
9
  export default server;
10
10
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,OAAO,GAAsB,EAAE,CAAC;AAEtC,IAAI,CAAC;IACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC1C,CAAC;AAAC,OAAO,IAAI,EAAE,CAAC,CAAA,CAAC;AAEjB,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AAClD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,OAAO,GAAsB,EAAE,CAAC;AAEtC,IAAI,CAAC;IACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC1C,CAAC;AAAC,OAAO,IAAI,EAAE,CAAC,CAAA,CAAC;AAEjB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACxD,eAAe,MAAM,CAAC"}
@@ -1,5 +1,5 @@
1
- import { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
2
- import { XCUITestDriver } from 'appium-xcuitest-driver';
1
+ import type { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
2
+ import type { XCUITestDriver } from 'appium-xcuitest-driver';
3
3
  import type { Client } from 'webdriver';
4
4
  export type DriverInstance = Client | AndroidUiautomator2Driver | XCUITestDriver;
5
5
  export type NullableDriverInstance = DriverInstance | null;
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
2
- import { XCUITestDriver } from 'appium-xcuitest-driver';
3
1
  import log from './logger.js';
4
2
  import { removePersistedSession, writePersistedSession, } from './persistence.js';
5
3
  /**
@@ -24,9 +22,7 @@ export const PLATFORM = {
24
22
  */
25
23
  export function isRemoteDriverSession(driver) {
26
24
  if (driver) {
27
- return (!(driver instanceof AndroidUiautomator2Driver) &&
28
- driver.constructor?.name !== 'AndroidUiautomator2Driver' &&
29
- !(driver instanceof XCUITestDriver) &&
25
+ return (driver.constructor?.name !== 'AndroidUiautomator2Driver' &&
30
26
  driver.constructor?.name !== 'XCUITestDriver');
31
27
  }
32
28
  return false;
@@ -44,8 +40,7 @@ export function isRemoteDriverSession(driver) {
44
40
  * @returns `true` if `driver` is an `AndroidUiautomator2Driver`.
45
41
  */
46
42
  export function isAndroidUiautomator2DriverSession(driver) {
47
- return (driver instanceof AndroidUiautomator2Driver ||
48
- driver?.constructor?.name === 'AndroidUiautomator2Driver');
43
+ return driver?.constructor?.name === 'AndroidUiautomator2Driver';
49
44
  }
50
45
  /**
51
46
  * Type-guard that asserts the provided driver is an XCUITest (iOS) driver.
@@ -59,8 +54,7 @@ export function isAndroidUiautomator2DriverSession(driver) {
59
54
  * @returns `true` if `driver` is an `XCUITestDriver`.
60
55
  */
61
56
  export function isXCUITestDriverSession(driver) {
62
- return (driver instanceof XCUITestDriver ||
63
- driver?.constructor?.name === 'XCUITestDriver');
57
+ return driver?.constructor?.name === 'XCUITestDriver';
64
58
  }
65
59
  export async function setSession(d, id, capabilities = {}, ownership = 'owned', remoteServerUrl) {
66
60
  await setSessionEntry(d, id, capabilities, ownership, remoteServerUrl);
@@ -282,12 +276,10 @@ function selectNextActiveSessionId(deletedSessionId) {
282
276
  return nextSession ?? null;
283
277
  }
284
278
  export const getPlatformName = (driver) => {
285
- if (driver instanceof AndroidUiautomator2Driver ||
286
- driver?.constructor?.name === 'AndroidUiautomator2Driver') {
279
+ if (driver?.constructor?.name === 'AndroidUiautomator2Driver') {
287
280
  return PLATFORM.android;
288
281
  }
289
- if (driver instanceof XCUITestDriver ||
290
- driver?.constructor?.name === 'XCUITestDriver') {
282
+ if (driver?.constructor?.name === 'XCUITestDriver') {
291
283
  return PLATFORM.ios;
292
284
  }
293
285
  const client = driver;
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AAGA,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AA4B1B;;GAEG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;AAChD;;GAEG;AACH,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CACL,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,2BAA2B;YACxD,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,gBAAgB,CAC9C,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kCAAkC,CAChD,MAA8B;IAE9B,OAAO,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK,2BAA2B,CAAC;AACnE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA8B;IAE9B,OAAO,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK,gBAAgB,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,CAAiB,EACjB,EAAiB,EACjB,eAAoC,EAAE,EACtC,YAA8B,OAAO,EACrC,eAAwB;IAExB,MAAM,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAkB;IAC1C,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,YAAY;IAU1B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,SAAS,KAAK,eAAe;QAC/C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;QACnC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,cAAc;QAC/C,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU;QACvC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY;KAC5C,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAkB;IAElB,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,eAAe,GAAG,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,SAAkB;IAElB,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAkB;IAC/C,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,cAAc,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,SAAkB;IAC5D,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,iBAAiB,IAAI,KAAK,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,SAAkB;IAC9C,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,WAAW,EAAE,0DAA0D,CACxE,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,eAAe,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAkB;IACxD,MAAM,EAAE,GAAG,SAAS,IAAI,eAAe,CAAC;IAExC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEjC,wCAAwC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2CAA2C;IAC3C,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,4CAA4C,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW;IACX,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEjC,IAAI,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAErC,+BAA+B;QAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpB,eAAe,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAChD,KAAK,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAEhC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,sBAAsB;QACtB,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC7C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC;SAClD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,0BAA0B,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,CAAiB,EACjB,EAAiB,EACjB,YAAiC,EACjC,SAA2B,EAC3B,eAAwB;IAExB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,eAAe,GAAG,IAAI,CAAC;QACvB,OAAO;IACT,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,QAAQ,GAAoB;QAChC,QAAQ,EAAG,YAAY,CAAC,YAAmC,IAAI,IAAI;QACnE,cAAc,EACX,YAAY,CAAC,uBAAuB,CAAwB;YAC5D,YAAY,CAAC,cAAqC;YACnD,IAAI;QACN,UAAU,EACP,YAAY,CAAC,mBAAmB,CAAwB;YACxD,YAAY,CAAC,UAAiC;YAC/C,IAAI;QACN,YAAY;KACb,CAAC;IAEF,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;QACf,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,YAAY;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS;QACT,QAAQ;QACR,eAAe;KAChB,CAAC,CAAC;IACH,eAAe,GAAG,EAAE,CAAC;IAErB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,qBAAqB,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,eAAe;YACf,YAAY;YACZ,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAwB;IACzD,IAAI,eAAe,KAAK,gBAAgB,EAAE,CAAC;QACzC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAClD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,gBAAgB,CAChC,CAAC;IACF,OAAO,WAAW,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAW,EAAU,EAAE;IACrD,IAAI,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK,2BAA2B,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,MAAgB,CAAC;IAChC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7E,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,6EAA6E;IAC7E,uEAAuE;IACvE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClC,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,GAAG,CAAC;YACtB,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACzC,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Helpers for deciding whether telemetry is enabled and for building safe span
3
+ * attributes. This file intentionally exposes only low-cardinality metadata and
4
+ * filtered input names so spans do not capture secrets, screenshots, page
5
+ * source XML, prompts, or other user payloads.
6
+ */
7
+ /**
8
+ * Determines whether telemetry is enabled based on the APPIUM_MCP_OTEL_ENABLED environment variable.
9
+ * Recognizes "1", "true", "yes", and "on" (case-insensitive) as true values.
10
+ * Defaults to false if the variable is not set or has an unrecognized value.
11
+ * @returns True if telemetry is enabled, false otherwise.
12
+ */
13
+ export declare function isTelemetryEnabled(): boolean;
14
+ /**
15
+ * Determines whether including argument values in telemetry attributes is enabled based on the APPIUM_MCP_OTEL_INCLUDE_ARGUMENT_VALUES environment variable.
16
+ * Recognizes "1", "true", "yes", and "on" (case-insensitive) as true values.
17
+ * Defaults to false if the variable is not set or has an unrecognized value.
18
+ * When false, argument values will not be included in telemetry attributes, even for non-sensitive keys.
19
+ * When true, non-sensitive argument values will be included in telemetry attributes, while sensitive keys will still be excluded.
20
+ * @see safeInputValueAttributes for how argument values are included in attributes when this is enabled.
21
+ * @returns
22
+ */
23
+ export declare function isArgumentValueTelemetryEnabled(): boolean;
24
+ /**
25
+ * Safely converts a value to a string, number, or boolean for use as a telemetry attribute.
26
+ * If the value is already a string, number, or boolean, it is returned as-is.
27
+ * If the value is null or undefined, an empty string is returned.
28
+ * Otherwise, the value is converted to a string.
29
+ * @param value The value to convert.
30
+ * @returns The safe attribute value.
31
+ */
32
+ export declare function safeAttributeValue(value: unknown): string | number | boolean;
33
+ /**
34
+ * Safely extracts the session ID from the given arguments.
35
+ * Falls back to the active session ID when no string argument sessionId exists.
36
+ * @param args The arguments object potentially containing a sessionId.
37
+ * @returns The session ID if present and valid, otherwise undefined.
38
+ */
39
+ export declare function safeSessionId(args: unknown): string | undefined;
40
+ /**
41
+ * Safely extracts the input keys from the given arguments, excluding sensitive keys.
42
+ * @param args The arguments object potentially containing input keys.
43
+ * @returns An array of safe input keys.
44
+ */
45
+ export declare function safeInputKeys(args: unknown): string[];
46
+ //# sourceMappingURL=attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/telemetry/attributes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAEzD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAqB5E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAS/D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,CAQrD"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Helpers for deciding whether telemetry is enabled and for building safe span
3
+ * attributes. This file intentionally exposes only low-cardinality metadata and
4
+ * filtered input names so spans do not capture secrets, screenshots, page
5
+ * source XML, prompts, or other user payloads.
6
+ */
7
+ import { isTruthyEnvValue } from '../utils/env.js';
8
+ import { isSensitiveKey } from '../utils/sensitive.js';
9
+ import { getSessionId } from '../session-store.js';
10
+ const MAX_ATTRIBUTE_VALUE_LENGTH = 2048;
11
+ /**
12
+ * Determines whether telemetry is enabled based on the APPIUM_MCP_OTEL_ENABLED environment variable.
13
+ * Recognizes "1", "true", "yes", and "on" (case-insensitive) as true values.
14
+ * Defaults to false if the variable is not set or has an unrecognized value.
15
+ * @returns True if telemetry is enabled, false otherwise.
16
+ */
17
+ export function isTelemetryEnabled() {
18
+ return isTruthyEnvValue(process.env.APPIUM_MCP_OTEL_ENABLED);
19
+ }
20
+ /**
21
+ * Determines whether including argument values in telemetry attributes is enabled based on the APPIUM_MCP_OTEL_INCLUDE_ARGUMENT_VALUES environment variable.
22
+ * Recognizes "1", "true", "yes", and "on" (case-insensitive) as true values.
23
+ * Defaults to false if the variable is not set or has an unrecognized value.
24
+ * When false, argument values will not be included in telemetry attributes, even for non-sensitive keys.
25
+ * When true, non-sensitive argument values will be included in telemetry attributes, while sensitive keys will still be excluded.
26
+ * @see safeInputValueAttributes for how argument values are included in attributes when this is enabled.
27
+ * @returns
28
+ */
29
+ export function isArgumentValueTelemetryEnabled() {
30
+ return isTruthyEnvValue(process.env.APPIUM_MCP_OTEL_INCLUDE_ARGUMENT_VALUES);
31
+ }
32
+ /**
33
+ * Safely converts a value to a string, number, or boolean for use as a telemetry attribute.
34
+ * If the value is already a string, number, or boolean, it is returned as-is.
35
+ * If the value is null or undefined, an empty string is returned.
36
+ * Otherwise, the value is converted to a string.
37
+ * @param value The value to convert.
38
+ * @returns The safe attribute value.
39
+ */
40
+ export function safeAttributeValue(value) {
41
+ if (typeof value === 'string' ||
42
+ typeof value === 'number' ||
43
+ typeof value === 'boolean') {
44
+ return value;
45
+ }
46
+ if (value == null) {
47
+ return '';
48
+ }
49
+ try {
50
+ const serialized = JSON.stringify(value, (key, val) => key && isSensitiveKey(key) ? '[REDACTED]' : val);
51
+ return truncateAttributeValue(serialized ?? String(value));
52
+ }
53
+ catch {
54
+ return truncateAttributeValue(String(value));
55
+ }
56
+ }
57
+ /**
58
+ * Safely extracts the session ID from the given arguments.
59
+ * Falls back to the active session ID when no string argument sessionId exists.
60
+ * @param args The arguments object potentially containing a sessionId.
61
+ * @returns The session ID if present and valid, otherwise undefined.
62
+ */
63
+ export function safeSessionId(args) {
64
+ if (args && typeof args === 'object' && 'sessionId' in args) {
65
+ const sessionId = args.sessionId;
66
+ if (typeof sessionId === 'string' && sessionId.length > 0) {
67
+ return sessionId;
68
+ }
69
+ }
70
+ return getSessionId() ?? undefined;
71
+ }
72
+ /**
73
+ * Safely extracts the input keys from the given arguments, excluding sensitive keys.
74
+ * @param args The arguments object potentially containing input keys.
75
+ * @returns An array of safe input keys.
76
+ */
77
+ export function safeInputKeys(args) {
78
+ if (!args || typeof args !== 'object' || Array.isArray(args)) {
79
+ return [];
80
+ }
81
+ return Object.keys(args)
82
+ .filter((key) => !isSensitiveKey(key))
83
+ .sort();
84
+ }
85
+ function truncateAttributeValue(value) {
86
+ return value.length > MAX_ATTRIBUTE_VALUE_LENGTH
87
+ ? `${value.slice(0, MAX_ATTRIBUTE_VALUE_LENGTH)}...`
88
+ : value;
89
+ }
90
+ //# sourceMappingURL=attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/telemetry/attributes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACpD,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAChD,CAAC;QACF,OAAO,sBAAsB,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAI,IAAgC,CAAC,SAAS,CAAC;QAC9D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,EAAE,IAAI,SAAS,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACrB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;SACrC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,0BAA0B;QAC9C,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,KAAK;QACpD,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * OpenTelemetry SDK bootstrap for the appium-mcp CLI. Initialization is opt-in
3
+ * via APPIUM_MCP_OTEL_ENABLED so normal server startup keeps the default no-op
4
+ * OpenTelemetry provider and avoids exporter setup unless tracing is requested.
5
+ */
6
+ /**
7
+ * Initializes the OpenTelemetry SDK if telemetry is enabled and not already started.
8
+ * This function is idempotent and safe to call multiple times; the SDK will only
9
+ * be initialized once.
10
+ * @returns
11
+ */
12
+ export declare function initializeOpenTelemetry(): Promise<void>;
13
+ /**
14
+ * Shuts down the OpenTelemetry SDK if it was started. This is typically called during process shutdown to ensure
15
+ * that all telemetry data is flushed properly. This function is idempotent and safe to call multiple times.
16
+ * @returns
17
+ */
18
+ export declare function shutdownOpenTelemetry(): Promise<void>;
19
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/telemetry/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;;;;GAKG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB7D;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAW3D"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * OpenTelemetry SDK bootstrap for the appium-mcp CLI. Initialization is opt-in
3
+ * via APPIUM_MCP_OTEL_ENABLED so normal server startup keeps the default no-op
4
+ * OpenTelemetry provider and avoids exporter setup unless tracing is requested.
5
+ */
6
+ import log from '../logger.js';
7
+ import { isTelemetryEnabled } from './attributes.js';
8
+ let sdkStarted = false;
9
+ let shutdownRegistered = false;
10
+ let sdk;
11
+ /**
12
+ * Initializes the OpenTelemetry SDK if telemetry is enabled and not already started.
13
+ * This function is idempotent and safe to call multiple times; the SDK will only
14
+ * be initialized once.
15
+ * @returns
16
+ */
17
+ export async function initializeOpenTelemetry() {
18
+ if (!isTelemetryEnabled() || sdkStarted) {
19
+ return;
20
+ }
21
+ const [{ NodeSDK }, { OTLPTraceExporter }] = await Promise.all([
22
+ import('@opentelemetry/sdk-node'),
23
+ import('@opentelemetry/exporter-trace-otlp-http'),
24
+ ]);
25
+ const nodeSdk = new NodeSDK({
26
+ traceExporter: new OTLPTraceExporter(),
27
+ });
28
+ sdk = nodeSdk;
29
+ nodeSdk.start();
30
+ sdkStarted = true;
31
+ registerShutdown();
32
+ log.info('OpenTelemetry tracing enabled for appium-mcp.');
33
+ }
34
+ /**
35
+ * Shuts down the OpenTelemetry SDK if it was started. This is typically called during process shutdown to ensure
36
+ * that all telemetry data is flushed properly. This function is idempotent and safe to call multiple times.
37
+ * @returns
38
+ */
39
+ export async function shutdownOpenTelemetry() {
40
+ if (!sdkStarted || !sdk) {
41
+ return;
42
+ }
43
+ try {
44
+ await sdk.shutdown();
45
+ }
46
+ finally {
47
+ sdk = undefined;
48
+ sdkStarted = false;
49
+ }
50
+ }
51
+ function registerShutdown() {
52
+ if (shutdownRegistered) {
53
+ return;
54
+ }
55
+ shutdownRegistered = true;
56
+ const shutdown = async () => {
57
+ try {
58
+ await shutdownOpenTelemetry();
59
+ }
60
+ catch (error) {
61
+ log.error('Error shutting down OpenTelemetry SDK:', error);
62
+ }
63
+ };
64
+ process.once('beforeExit', () => {
65
+ void shutdown();
66
+ });
67
+ }
68
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/telemetry/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B,IAAI,GAA6D,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI,CAAC,kBAAkB,EAAE,IAAI,UAAU,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7D,MAAM,CAAC,yBAAyB,CAAC;QACjC,MAAM,CAAC,yCAAyC,CAAC;KAClD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,aAAa,EAAE,IAAI,iBAAiB,EAAE;KACvC,CAAC,CAAC;IAEH,GAAG,GAAG,OAAO,CAAC;IACd,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,UAAU,GAAG,IAAI,CAAC;IAClB,gBAAgB,EAAE,CAAC;IACnB,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,GAAG,GAAG,SAAS,CAAC;QAChB,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,kBAAkB,GAAG,IAAI,CAAC;IAE1B,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,qBAAqB,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;QAC9B,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared tracer helpers for appium-mcp instrumentation. Tool, prompt, and
3
+ * resource wrappers use this module so span creation, exception recording, and
4
+ * disabled-telemetry behavior stay consistent across MCP operation types.
5
+ */
6
+ import { SpanStatusCode, type Attributes } from '@opentelemetry/api';
7
+ /**
8
+ * Gets the OpenTelemetry tracer for appium-mcp. This is used by tool, prompt,
9
+ * and resource wrappers to create spans with a consistent name and configuration.
10
+ * @returns The OpenTelemetry tracer for appium-mcp.
11
+ */
12
+ export declare function getAppiumMcpTracer(): import("@opentelemetry/api").Tracer;
13
+ /**
14
+ * Gets the currently active OpenTelemetry span from the context. This is used by
15
+ * tool, prompt, and resource wrappers to add attributes or record exceptions on the
16
+ * active span without needing to pass the span object through multiple layers of calls.
17
+ * @returns The currently active OpenTelemetry span, or undefined if there is no active span.
18
+ */
19
+ export declare function getActiveSpan(): import("@opentelemetry/api").Span | undefined;
20
+ /**
21
+ * Runs the given asynchronous operation within a new OpenTelemetry span with the specified name and attributes.
22
+ * If telemetry is not enabled, the operation is run without creating a span.
23
+ * If the operation throws an error, the error is recorded on the span and re-thrown.
24
+ * @param name The name of the span.
25
+ * @param attributes The attributes to set on the span.
26
+ * @param operation The asynchronous operation to run within the span.
27
+ * @returns The result of the asynchronous operation.
28
+ */
29
+ export declare function withSpan<T>(name: string, attributes: Attributes, operation: () => Promise<T>): Promise<T>;
30
+ export { SpanStatusCode };
31
+ //# sourceMappingURL=tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,cAAc,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAM5B;;;;GAIG;AACH,wBAAgB,kBAAkB,wCAEjC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,kDAE5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}