@evercam/mcp 0.0.2 → 0.0.4

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.
@@ -83,5 +83,12 @@ program
83
83
  .description("Check authentication, config, and API connectivity")
84
84
  .option("--profile <name>", "Profile to check", "default")
85
85
  .action((options) => doctor(options));
86
+ // Suppress dangling promise rejections from Evercam SDK internals.
87
+ // The SDK's connect() creates internal promise chains where intermediate
88
+ // promises may reject asynchronously after we've already caught the outer
89
+ // error. Node.js v22 exits on unhandled rejections by default.
90
+ process.on("unhandledRejection", () => {
91
+ // Silently discard — all user-visible errors are handled at their call sites.
92
+ });
86
93
  program.parse();
87
94
  //# sourceMappingURL=evercam-mcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evercam-mcp.js","sourceRoot":"","sources":["../../bin/evercam-mcp.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAExF,OAAO;AACP,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAA;AAE3E,IAAI;KACD,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,CAAC;KACvD,MAAM,CAAC,SAAS,CAAC,CAAA;AAEpB,IAAI;KACD,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,CAAC;KACvD,MAAM,CAAC,UAAU,CAAC,CAAA;AAErB,IAAI;KACD,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,CAAC;KACvD,MAAM,CAAC,WAAW,CAAC,CAAA;AAEtB,IAAI;KACD,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,CAAC;KACzD,MAAM,CAAC,UAAU,CAAC,CAAA;AAErB,UAAU;AACV,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAA;AAE5E,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AAE5E,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;KACjD,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;KAC9C,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KAC9C,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;KAClD,MAAM,CAAC,UAAU,CAAC,CAAA;AAErB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAE3F,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,aAAa,CAAC,CAAA;AAExB,QAAQ;AACR,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;AAEpE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAEnF,MAAM;AACN,OAAO;KACJ,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,CAAC;KACvD,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,CAAC;KACnE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAEhE,QAAQ;AACR,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,OAAO,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,EAAE,MAAM,CAAC;KACpE,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,CAAC;KACvD,MAAM,CAAC,6BAA6B,EAAE,6CAA6C,EAAE,GAAG,CAAC;KACzF,MAAM,CAAC,gBAAgB,EAAE,oDAAoD,EAAE,OAAO,CAAC;KACvF,MAAM,CAAC,iBAAiB,EAAE,uDAAuD,CAAC;KAClF,MAAM,CAAC,yBAAyB,EAAE,uDAAuD,CAAC;KAC1F,MAAM,CAAC,wBAAwB,EAAE,sDAAsD,CAAC;KACxF,MAAM,CAAC,uBAAuB,EAAE,4CAA4C,EAAE,IAAI,CAAC;KACnF,MAAM,CACL,oBAAoB,EACpB,4EAA4E,CAC7E;KACA,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClB,KAAK,CAAC;IACJ,GAAG,OAAO;IACV,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAChC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IACtC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;CAC3C,CAAC,CACH,CAAA;AAEH,SAAS;AACT,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,CAAC;KACzD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;AAEvC,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"evercam-mcp.js","sourceRoot":"","sources":["../../bin/evercam-mcp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/auth/auth.ts"],"names":[],"mappings":"AAKA,wBAAsB,KAAK,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,MAAM,CAAC,OAAO,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/D;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAY,GAAG;IAClD,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B,CAQA"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/auth/auth.ts"],"names":[],"mappings":"AAKA,wBAAsB,KAAK,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED,wBAAsB,MAAM,CAAC,OAAO,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/D;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAY,GAAG;IAClD,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B,CAQA"}
@@ -8,12 +8,22 @@ export async function login(username, password, profile = "default") {
8
8
  ...config,
9
9
  credentials: { username, password },
10
10
  });
11
+ // Suppress the SDK's verbose console.warn on login failures
12
+ const origWarn = console.warn;
13
+ console.warn = (...args) => {
14
+ if (typeof args[0] === "string" && args[0].includes("[@evercam/api"))
15
+ return;
16
+ origWarn.apply(console, args);
17
+ };
11
18
  try {
12
19
  await evercam.connect();
13
20
  }
14
21
  catch (err) {
15
22
  throw new Error(normalizeError(err).message);
16
23
  }
24
+ finally {
25
+ console.warn = origWarn;
26
+ }
17
27
  const token = evercam.token;
18
28
  if (!token) {
19
29
  throw new Error("Login succeeded but no token was returned");
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,QAAgB,EAChB,QAAgB,EAChB,OAAO,GAAG,SAAS;IAEnB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,GAAG,MAAM;QACT,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;KACpC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAE3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACxB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAO,GAAG,SAAS;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,GAAG,aAAa,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,EAAE,KAAK,EAAE;SACvB,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU,CAAC,OAAO,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAO,GAAG,SAAS;IAM/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,KAAK;QACjB,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;KAClD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,QAAgB,EAChB,QAAgB,EAChB,OAAO,GAAG,SAAS;IAEnB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,GAAG,MAAM;QACT,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;KACpC,CAAC,CAAA;IAEF,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAA;IAC7B,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,OAAM;QAC5E,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC,CAAA;IACD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAE3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACxB,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAO,GAAG,SAAS;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,GAAG,aAAa,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,EAAE,KAAK,EAAE;SACvB,CAAC,CAAA;QACF,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU,CAAC,OAAO,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAO,GAAG,SAAS;IAM/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,KAAK;QACjB,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;KAClD,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/auth.ts"],"names":[],"mappings":"AAuCA,wBAAsB,SAAS,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAoCD,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7E;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiB9D"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/auth.ts"],"names":[],"mappings":"AA+CA,wBAAsB,SAAS,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAwCD,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7E;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiB9D"}
@@ -1,37 +1,45 @@
1
1
  import chalk from "chalk";
2
- import * as readline from "node:readline/promises";
3
2
  import { stdin as input, stdout as output } from "node:process";
4
3
  import { login, logout, getAuthStatus } from "../auth/auth.js";
5
4
  import { normalizeError } from "../utils/errors.js";
6
- function readPassword(prompt) {
5
+ function readRaw(prompt, hidden) {
7
6
  return new Promise((resolve) => {
8
- output.write(prompt);
9
- let password = "";
10
- input.setRawMode(true);
11
- input.resume();
12
- input.setEncoding("utf8");
13
- const onData = (char) => {
14
- if (char === "\r" || char === "\n") {
15
- input.setRawMode(false);
16
- input.pause();
17
- input.removeListener("data", onData);
18
- output.write("\n");
19
- resolve(password);
20
- }
21
- else if (char === "\u0003") {
22
- input.setRawMode(false);
23
- process.exit(1);
24
- }
25
- else if (char === "\u007f" || char === "\b") {
26
- if (password.length > 0) {
27
- password = password.slice(0, -1);
7
+ // Flush any bytes buffered while stdin was paused (e.g. the "\r" from the
8
+ // previous Enter keypress) before we start listening for new input.
9
+ setImmediate(() => {
10
+ output.write(prompt);
11
+ let value = "";
12
+ input.setRawMode(true);
13
+ input.resume();
14
+ input.setEncoding("utf8");
15
+ const onData = (char) => {
16
+ if (char === "\r" || char === "\n") {
17
+ input.setRawMode(false);
18
+ input.pause();
19
+ input.removeListener("data", onData);
20
+ output.write("\n");
21
+ resolve(value);
28
22
  }
29
- }
30
- else {
31
- password += char;
32
- }
33
- };
34
- input.on("data", onData);
23
+ else if (char === "\u0003") {
24
+ input.setRawMode(false);
25
+ input.pause();
26
+ input.removeListener("data", onData);
27
+ output.write("^C\n");
28
+ resolve("");
29
+ }
30
+ else if (char === "\u007f" || char === "\b") {
31
+ if (value.length > 0) {
32
+ value = value.slice(0, -1);
33
+ output.write("\b \b");
34
+ }
35
+ }
36
+ else {
37
+ value += char;
38
+ output.write(hidden ? "*" : char);
39
+ }
40
+ };
41
+ input.on("data", onData);
42
+ });
35
43
  });
36
44
  }
37
45
  export async function authLogin(options) {
@@ -42,12 +50,19 @@ export async function authRelogin(options) {
42
50
  }
43
51
  async function runAuthLogin(options, successMessage) {
44
52
  const profile = options.profile ?? "default";
45
- const rl = readline.createInterface({ input, output });
46
53
  try {
47
54
  const maxAttempts = 3;
48
55
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
49
- const username = await rl.question("Username or email: ");
50
- const password = await readPassword("Password: ");
56
+ const username = await readRaw("Username or email: ", false);
57
+ if (!username) {
58
+ console.log(chalk.dim("Cancelled."));
59
+ return;
60
+ }
61
+ const password = await readRaw("Password: ", true);
62
+ if (!password) {
63
+ console.log(chalk.dim("Cancelled."));
64
+ return;
65
+ }
51
66
  console.log(chalk.dim("Connecting to Evercam..."));
52
67
  try {
53
68
  await login(username, password, profile);
@@ -62,16 +77,11 @@ async function runAuthLogin(options, successMessage) {
62
77
  continue;
63
78
  }
64
79
  console.error(chalk.red(`✗ Login failed (${attempt}/${maxAttempts}): ${message}`));
65
- process.exit(1);
66
80
  }
67
81
  }
68
82
  }
69
83
  catch (err) {
70
84
  console.error(chalk.red(`✗ Login failed: ${normalizeError(err).message}`));
71
- process.exit(1);
72
- }
73
- finally {
74
- rl.close();
75
85
  }
76
86
  }
77
87
  export async function authLogout(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/auth.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { getProfileConfig } from "./profiles.js";
3
3
  import { getToken } from "../auth/tokenStore.js";
4
4
  export function resolveConfig(profileName) {
5
5
  const profile = getProfileConfig(profileName);
6
- const token = process.env.EVERCAM_TOKEN ?? getToken(profileName);
6
+ const token = process.env.EVERCAM_TOKEN || getToken(profileName);
7
7
  return {
8
8
  credentials: token ? { token } : undefined,
9
9
  baseUrls: {
@@ -1,12 +1,11 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  /**
3
3
  * Call an MCP tool handler directly without going through a transport.
4
- * Used by the HTTP REST endpoint (POST /tools/:toolName).
4
+ * Used by the HTTP REST endpoint (POST /tools/:toolName) and the CLI `run` command.
5
5
  *
6
- * This function accesses private fields on McpServer (_registeredTools,
7
- * validateToolInput, executeToolHandler). These are undocumented internals.
8
- * Call validateCallToolInternals() at server startup to catch SDK version
9
- * breakage early rather than at runtime.
6
+ * Accesses _registeredTools on McpServer (undocumented but stable across v1.x).
7
+ * Each registered tool exposes `inputSchema` (Zod) and `callback`.
8
+ * Call validateCallToolInternals() at server startup to catch SDK version breakage early.
10
9
  */
11
10
  export declare function callToolDirect(server: McpServer, toolName: string, args: unknown): Promise<unknown>;
12
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"callTool.d.ts","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAIxE;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAajE"}
1
+ {"version":3,"file":"callTool.d.ts","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAIxE;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CASjE"}
@@ -2,12 +2,11 @@ import { withRetry } from "./retry.js";
2
2
  import { normalizeError } from "./errors.js";
3
3
  /**
4
4
  * Call an MCP tool handler directly without going through a transport.
5
- * Used by the HTTP REST endpoint (POST /tools/:toolName).
5
+ * Used by the HTTP REST endpoint (POST /tools/:toolName) and the CLI `run` command.
6
6
  *
7
- * This function accesses private fields on McpServer (_registeredTools,
8
- * validateToolInput, executeToolHandler). These are undocumented internals.
9
- * Call validateCallToolInternals() at server startup to catch SDK version
10
- * breakage early rather than at runtime.
7
+ * Accesses _registeredTools on McpServer (undocumented but stable across v1.x).
8
+ * Each registered tool exposes `inputSchema` (Zod) and `callback`.
9
+ * Call validateCallToolInternals() at server startup to catch SDK version breakage early.
11
10
  */
12
11
  export async function callToolDirect(server, toolName, args) {
13
12
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -17,10 +16,17 @@ export async function callToolDirect(server, toolName, args) {
17
16
  throw new Error(`Tool ${toolName} not found`);
18
17
  if (!tool.enabled)
19
18
  throw new Error(`Tool ${toolName} disabled`);
20
- const parsed = await internal.validateToolInput(tool, args, toolName);
19
+ let parsed = args;
20
+ if (tool.inputSchema) {
21
+ const parseResult = await tool.inputSchema.safeParseAsync(args);
22
+ if (!parseResult.success) {
23
+ throw new Error(`Invalid arguments for tool ${toolName}: ${parseResult.error.message}`);
24
+ }
25
+ parsed = parseResult.data;
26
+ }
21
27
  let result;
22
28
  try {
23
- result = await withRetry(() => internal.executeToolHandler(tool, parsed, {}));
29
+ result = await withRetry(() => tool.callback(parsed, {}));
24
30
  }
25
31
  catch (err) {
26
32
  const message = normalizeError(err).message;
@@ -39,16 +45,9 @@ export async function callToolDirect(server, toolName, args) {
39
45
  export function validateCallToolInternals(server) {
40
46
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
47
  const internal = server;
42
- const missing = [];
43
- if (typeof internal._registeredTools !== "object")
44
- missing.push("_registeredTools");
45
- if (typeof internal.validateToolInput !== "function")
46
- missing.push("validateToolInput");
47
- if (typeof internal.executeToolHandler !== "function")
48
- missing.push("executeToolHandler");
49
- if (missing.length > 0) {
50
- throw new Error(`MCP SDK private API changed — callTool.ts needs updating. Missing: ${missing.join(", ")}. ` +
51
- `Check @modelcontextprotocol/sdk release notes.`);
48
+ if (typeof internal._registeredTools !== "object") {
49
+ throw new Error(`MCP SDK private API changed — callTool.ts needs updating. ` +
50
+ `_registeredTools is missing. Check @modelcontextprotocol/sdk release notes.`);
52
51
  }
53
52
  }
54
53
  //# sourceMappingURL=callTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callTool.js","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAiB,EACjB,QAAgB,EAChB,IAAa;IAEb,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAa,CAAA;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;IAElD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,YAAY,CAAC,CAAA;IACxD,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,WAAW,CAAC,CAAA;IAE/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAErE,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IAC/E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA;QAC3C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC9E,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAa,CAAA;IAC9B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACnF,IAAI,OAAO,QAAQ,CAAC,iBAAiB,KAAK,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACvF,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACzF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,sEAAsE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC1F,gDAAgD,CACnD,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"callTool.js","sourceRoot":"","sources":["../../../src/utils/callTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAiB,EACjB,QAAgB,EAChB,IAAa;IAEb,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAa,CAAA;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;IAElD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,YAAY,CAAC,CAAA;IACxD,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,WAAW,CAAC,CAAA;IAE/D,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,GAAG,WAAW,CAAC,IAAI,CAAA;IAC3B,CAAC;IAED,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA;QAC3C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC9E,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAa,CAAA;IAC9B,IAAI,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,4DAA4D;YAC1D,6EAA6E,CAChF,CAAA;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evercam/mcp",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "MCP server + CLI for Evercam — cameras, AI, copilot, analytics",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",