jevctl 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,22 @@ breaking changes to flags or JSON output; they are called out below.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.2] - 2026-09-19
11
+
12
+ ### Added
13
+
14
+ - `jev update [--check]`: checks npm for a newer `jevctl` release and installs it globally with `npm install -g jevctl@latest`; `--check` reports without installing.
15
+
16
+ ### Changed
17
+
18
+ - The "no credentials" and provider-specific credential errors now hint at `jev auth login` / `jev auth login openrouter`.
19
+
20
+ ## [0.2.1] - 2026-09-19
21
+
22
+ ### Fixed
23
+
24
+ - `jev auth login`: the key prompt now echoes `*` per keystroke instead of muting all output, so keystrokes are visibly registered. Backspace edits, Ctrl+C aborts cleanly.
25
+
10
26
  ## [0.2.0] - 2026-09-18
11
27
 
12
28
  ### Changed
package/README.md CHANGED
@@ -56,6 +56,7 @@ Each command has its own page with options, output fields, and examples.
56
56
  | `jev auth` | Store the API key in the keychain instead of exporting it | [docs/auth.md](docs/auth.md) |
57
57
  | `jev config` | Show or edit settings; check which key source is in use | [docs/config.md](docs/config.md) |
58
58
  | `jev models` | List the models your account can use | [docs/config.md#models](docs/config.md#models) |
59
+ | `jev update` | Check npm for a newer jevctl release and install it | [docs/update.md](docs/update.md) |
59
60
 
60
61
  ## Conventions
61
62
 
package/dist/cli.js CHANGED
@@ -16,6 +16,7 @@ import { registerModels } from "./commands/models.js";
16
16
  import { registerRerank } from "./commands/rerank.js";
17
17
  import { registerRoute } from "./commands/route.js";
18
18
  import { registerScreen } from "./commands/screen.js";
19
+ import { registerUpdate } from "./commands/update.js";
19
20
  import { registerVerify } from "./commands/verify.js";
20
21
  import { buildContext } from "./context.js";
21
22
  import { CliError, describeError, EXIT } from "./errors.js";
@@ -52,6 +53,7 @@ const COMMANDS = {
52
53
  models: { group: "Account", summary: "List the models available to your account" },
53
54
  auth: { group: "Account", summary: "Store, inspect, or remove API keys (keychain or 0600 file)" },
54
55
  config: { group: "Account", summary: "Show or edit the jev configuration file" },
56
+ update: { group: "Account", summary: "Check npm for a newer jevctl release and install it" },
55
57
  };
56
58
  const HELP_FOOTER = `
57
59
  Examples:
@@ -124,6 +126,7 @@ export function createProgram() {
124
126
  registerModels(program, run);
125
127
  registerAuth(program, run);
126
128
  registerConfig(program, run);
129
+ registerUpdate(program, run, version);
127
130
  for (const cmd of program.commands) {
128
131
  const meta = COMMANDS[cmd.name()];
129
132
  if (!meta)
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Command } from "commander";
2
2
  import type { CommandContext } from "../context.js";
3
3
  import { type CredentialProvider } from "../credentials.js";
4
- /** Prompt for a secret with echo off. Falls back to reading one line from a pipe. */
4
+ /** Prompt for a secret, echoing `*` per keystroke. Falls back to reading one line from a pipe. */
5
5
  export declare function promptSecret(prompt: string): Promise<string>;
6
6
  export declare function validateKey(provider: CredentialProvider, key: string): void;
7
7
  export declare function authLogin(providerName: string | undefined, flags: {
@@ -1,5 +1,3 @@
1
- import { createInterface } from "node:readline";
2
- import { Writable } from "node:stream";
3
1
  import { CREDENTIAL_PROVIDERS, ENV_VAR, resolveCredentials, resolveStore, } from "../credentials.js";
4
2
  import { CliError, EXIT } from "../errors.js";
5
3
  import { readStdin } from "../input.js";
@@ -12,23 +10,49 @@ function providerArg(raw) {
12
10
  }
13
11
  return p;
14
12
  }
15
- /** Prompt for a secret with echo off. Falls back to reading one line from a pipe. */
13
+ /** Prompt for a secret, echoing `*` per keystroke. Falls back to reading one line from a pipe. */
16
14
  export async function promptSecret(prompt) {
17
15
  if (!process.stdin.isTTY)
18
16
  return readStdin("API key").split(/\r?\n/)[0]?.trim() ?? "";
19
- const muted = new Writable({
20
- write(_chunk, _enc, cb) {
21
- cb();
22
- },
23
- });
24
- const rl = createInterface({ input: process.stdin, output: muted, terminal: true });
25
17
  process.stderr.write(prompt);
26
- return new Promise((resolve) => {
27
- rl.question("", (answer) => {
28
- rl.close();
29
- process.stderr.write("\n");
30
- resolve(answer.trim());
31
- });
18
+ return new Promise((resolve, reject) => {
19
+ const stdin = process.stdin;
20
+ const wasRaw = stdin.isRaw;
21
+ stdin.setRawMode(true);
22
+ stdin.resume();
23
+ stdin.setEncoding("utf8");
24
+ let input = "";
25
+ const cleanup = () => {
26
+ stdin.removeListener("data", onData);
27
+ stdin.setRawMode(wasRaw ?? false);
28
+ stdin.pause();
29
+ };
30
+ const onData = (chunk) => {
31
+ for (const char of chunk) {
32
+ if (char === "\r" || char === "\n") {
33
+ cleanup();
34
+ process.stderr.write("\n");
35
+ resolve(input.trim());
36
+ return;
37
+ }
38
+ if (char === "\u0003") {
39
+ cleanup();
40
+ process.stderr.write("\n");
41
+ reject(new CliError("Aborted."));
42
+ return;
43
+ }
44
+ if (char === "\u007f" || char === "\b") {
45
+ if (input.length > 0) {
46
+ input = input.slice(0, -1);
47
+ process.stderr.write("\b \b");
48
+ }
49
+ continue;
50
+ }
51
+ input += char;
52
+ process.stderr.write("*");
53
+ }
54
+ };
55
+ stdin.on("data", onData);
32
56
  });
33
57
  }
34
58
  export function validateKey(provider, key) {
@@ -44,7 +68,7 @@ export async function authLogin(providerName, flags, ctx, env = process.env) {
44
68
  const store = resolveStore(env);
45
69
  const key = flags.keyStdin
46
70
  ? (readStdin("API key").split(/\r?\n/)[0]?.trim() ?? "")
47
- : await promptSecret(`Paste your ${provider} API key (input hidden): `);
71
+ : await promptSecret(`Paste your ${provider} API key: `);
48
72
  validateKey(provider, key);
49
73
  store.set(provider, key);
50
74
  const note = env[ENV_VAR[provider]]
@@ -101,7 +125,7 @@ export function registerAuth(program, run) {
101
125
  .description("Store the API key in the OS keychain (or a 0600 file) instead of exporting it.");
102
126
  auth
103
127
  .command("login")
104
- .description("Prompt for a key (hidden input) and store it. Reads one line from stdin when piped or with --key-stdin.")
128
+ .description("Prompt for a key (masked input) and store it. Reads one line from stdin when piped or with --key-stdin.")
105
129
  .argument("[provider]", "typesafe (default) or openrouter")
106
130
  .option("--key-stdin", "read the key from stdin (for scripts and password managers)")
107
131
  .addHelpText("after", `
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Command } from "commander";
2
+ import type { CommandContext } from "../context.js";
3
+ export declare const PACKAGE_NAME = "jevctl";
4
+ export interface UpdateRunner {
5
+ /** Latest published version, e.g. "0.3.0". */
6
+ latestVersion(): string;
7
+ /** Installs the given version globally; throws on failure. */
8
+ install(version: string): void;
9
+ }
10
+ export declare function npmRunner(): UpdateRunner;
11
+ /** Compare dotted numeric versions: positive if `a` is newer than `b`. */
12
+ export declare function compareVersions(a: string, b: string): number;
13
+ export declare function updateAction(flags: {
14
+ check?: boolean;
15
+ }, ctx: CommandContext, currentVersion: string, runner?: UpdateRunner): number;
16
+ export declare function registerUpdate(program: Command, run: (fn: (ctx: CommandContext) => Promise<number>, cmd: Command) => Promise<void>, currentVersion: string): void;
@@ -0,0 +1,73 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { CliError, EXIT } from "../errors.js";
3
+ import { emit } from "../output.js";
4
+ export const PACKAGE_NAME = "jevctl";
5
+ export function npmRunner() {
6
+ return {
7
+ latestVersion() {
8
+ try {
9
+ return execFileSync("npm", ["view", PACKAGE_NAME, "version"], {
10
+ encoding: "utf8",
11
+ stdio: ["ignore", "pipe", "pipe"],
12
+ }).trim();
13
+ }
14
+ catch (err) {
15
+ throw new CliError(`Could not reach npm to check the latest version: ${err.message}`);
16
+ }
17
+ },
18
+ install(version) {
19
+ try {
20
+ execFileSync("npm", ["install", "-g", `${PACKAGE_NAME}@${version}`], { stdio: "inherit" });
21
+ }
22
+ catch (err) {
23
+ throw new CliError(`npm install failed: ${err.message}`);
24
+ }
25
+ },
26
+ };
27
+ }
28
+ /** Compare dotted numeric versions: positive if `a` is newer than `b`. */
29
+ export function compareVersions(a, b) {
30
+ const pa = a.split(".").map(Number);
31
+ const pb = b.split(".").map(Number);
32
+ for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
33
+ const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
34
+ if (diff !== 0)
35
+ return diff;
36
+ }
37
+ return 0;
38
+ }
39
+ export function updateAction(flags, ctx, currentVersion, runner = npmRunner()) {
40
+ const latest = runner.latestVersion();
41
+ const payload = { command: "update", current: currentVersion, latest };
42
+ if (compareVersions(latest, currentVersion) <= 0) {
43
+ emit(ctx.output, { ...payload, updated: false }, () => ({
44
+ head: [`jev is up to date (${currentVersion}).`],
45
+ }));
46
+ return EXIT.OK;
47
+ }
48
+ if (flags.check) {
49
+ emit(ctx.output, { ...payload, updated: false }, () => ({
50
+ head: [`Update available: ${currentVersion} -> ${latest}. Run \`jev update\` to install.`],
51
+ }));
52
+ return EXIT.OK;
53
+ }
54
+ runner.install(latest);
55
+ emit(ctx.output, { ...payload, updated: true }, () => ({
56
+ head: [`Updated jev ${currentVersion} -> ${latest}.`],
57
+ }));
58
+ return EXIT.OK;
59
+ }
60
+ export function registerUpdate(program, run, currentVersion) {
61
+ program
62
+ .command("update")
63
+ .description("Check npm for a newer jevctl release and install it globally.")
64
+ .option("--check", "only report whether an update is available; do not install")
65
+ .addHelpText("after", `
66
+ Examples:
67
+ jev update
68
+ jev update --check`)
69
+ .action(async (flags, cmd) => {
70
+ await run(async (ctx) => updateAction(flags, ctx, currentVersion), cmd);
71
+ });
72
+ }
73
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/dist/provider.js CHANGED
@@ -16,12 +16,14 @@ export function resolveProvider(env, explicit = "auto") {
16
16
  const hasCloudflare = Boolean(cfToken && env.CLOUDFLARE_ACCOUNT_ID);
17
17
  switch (explicit) {
18
18
  case "typesafe":
19
- if (!hasTypesafe)
20
- throw new CliError("Provider is typesafe but TYPESAFE_API_KEY is not set.");
19
+ if (!hasTypesafe) {
20
+ throw new CliError("Provider is typesafe but TYPESAFE_API_KEY is not set. Run `jev auth login` to store a key.");
21
+ }
21
22
  return "typesafe";
22
23
  case "openrouter":
23
24
  if (!hasOpenRouter) {
24
- throw new CliError("Provider is openrouter but OPENROUTER_API_KEY is not set or is not an sk-or- key.");
25
+ throw new CliError("Provider is openrouter but OPENROUTER_API_KEY is not set or is not an sk-or- key. " +
26
+ "Run `jev auth login openrouter` to store one.");
25
27
  }
26
28
  return "openrouter";
27
29
  case "cloudflare":
@@ -36,8 +38,9 @@ export function resolveProvider(env, explicit = "auto") {
36
38
  return "openrouter";
37
39
  if (hasCloudflare)
38
40
  return "cloudflare";
39
- throw new CliError("No credentials found. Set TYPESAFE_API_KEY (https://console.typesafe.ai/settings/keys), " +
40
- "OPENROUTER_API_KEY (sk-or-...), or CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID.");
41
+ throw new CliError("No credentials found. Run `jev auth login` to store a key, or set TYPESAFE_API_KEY " +
42
+ "(https://console.typesafe.ai/settings/keys), OPENROUTER_API_KEY (sk-or-...), " +
43
+ "or CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID.");
41
44
  default: {
42
45
  const never = explicit;
43
46
  throw new CliError(`Unknown provider ${String(never)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,sEAAsE;AACtE,uBAAuB;AAEvB,OAAO,EAAkB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8BvC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAY5B,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAE1D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE5C,qFAAqF;AACrF,MAAM,UAAU,eAAe,CAAC,GAAsB,EAAE,QAAQ,GAAiB,MAAM;IACrF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,oBAAoB,CAAC;IACzE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEpE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,QAAQ,CAChB,4FAA4F,CAC7F,CAAC;YACJ,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,KAAK,YAAY;YACf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,QAAQ,CAChB,oFAAoF;oBAClF,+CAA+C,CAClD,CAAC;YACJ,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,KAAK,YAAY;YACf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,QAAQ,CAChB,2HAA2H,CAC5H,CAAC;YACJ,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM;YACT,IAAI,WAAW;gBAAE,OAAO,UAAU,CAAC;YACnC,IAAI,aAAa;gBAAE,OAAO,YAAY,CAAC;YACvC,IAAI,aAAa;gBAAE,OAAO,YAAY,CAAC;YACvC,MAAM,IAAI,QAAQ,CAChB,qFAAqF;gBACnF,+EAA+E;gBAC/E,kDAAkD,CACrD,CAAC;QACJ,SAAS,CAAC;YACR,MAAM,KAAK,GAAU,QAAQ,CAAC;YAC9B,MAAM,IAAI,QAAQ,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,aAAa,CAAC,QAA0B,EAAE,KAAa;IACrE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;QACrE,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,YAAY,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAkC,EAClC,OAAgB,EAChB,KAAa;IAGb,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,QAAQ,CAChB,2BAA2B,KAAK,yDAAyD,CAC1F,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,OAAkD,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrG,MAAM,IAAI,QAAQ,CAAC,2BAA2B,KAAK,mBAAmB,KAAK,GAAG,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAI,CAAuB,EAAE,IAAI,CAAC;QAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,OAAO,GACX,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YACzB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;gBACzB,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,KAAK,EAAE;gBAC5D,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;oBAC/C,CAAC,CAAC,oCAAoC;oBACtC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;wBACnD,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;4BACjD,CAAC,CAAC,yBAAyB;4BAC3B,CAAC,CAAC,IAAI,CAAC;QACnB,IAAI,OAAO;YAAE,MAAM,IAAI,QAAQ,CAAC,2BAA2B,KAAK,aAAa,EAAE,KAAK,OAAO,GAAG,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,SAAS,CAAC,IAAqB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IACjD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAElD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,MAAM,EAAE,GAAG,CAAC,gBAAgB;YAC5B,OAAO,EAAE,GAAG,CAAC,iBAAiB,IAAI,SAAS;YAC3C,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,kFAAkF;YAClF,KAAK,EAAE,SAAgB;YACvB,cAAc,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE;SAC7C,CAAC,CAAC;QACH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CACrC;gBACE,KAAK,EAAE,KAAwD;gBAC/D,SAAS,EAAE,SAAsB;gBACjC,KAAK;aACN,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;gBAC9E,KAAK,EAAE;oBACL,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;oBAC/C,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;iBAClD;gBACD,QAAQ;gBACR,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,KAAK;aAC/B,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,SAAS,EACT,2CAA2C,EAC3C;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,GAAG,CAAC,kBAAkB,EAAE;oBACjD,cAAc,EAAE,kBAAkB;oBAClC,cAAc,EAAE,OAAO;oBACvB,SAAS,EAAE,UAAU;iBACtB;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aAClD,EACD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CACZ,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,IAAI,QAAQ,CAAC,4BAA4B,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAc,CAAC;YAClD,OAAO;gBACL,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;gBACtE,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,EAAE;gBACrG,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;aAC3B,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,mEAAmE;IACnE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,SAAS,EACT,iDAAiD,GAAG,CAAC,qBAAqB,SAAS,EACnF;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,oBAAoB,EAAE;gBACnF,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;SAC7D,EACD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3C,MAAM,IAAI,QAAQ,CAChB,qBAAqB,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC5E,MAAM,IAAI,QAAQ,CAChB,2BAA2B,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;YAC5E,KAAK,EAAE;gBACL,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;gBAC9C,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;aACjD;YACD,QAAQ;YACR,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC9B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,SAAuB,EACvB,GAAW,EACX,IAAiB,EACjB,SAAiB,EACjB,KAAmB;IAEnB,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAAa,CAAC,IAAI,KAAK,cAAc;YACxC,MAAM,IAAI,QAAQ,CAAC,2BAA2B,SAAS,MAAM,CAAC,CAAC;QACjE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
package/docs/auth.md CHANGED
@@ -12,7 +12,7 @@ jev auth logout [provider] [--all]
12
12
 
13
13
  | Subcommand | Does |
14
14
  | --- | --- |
15
- | `login [typesafe\|openrouter]` | Prompts with hidden input and stores the key. With `--key-stdin`, or when piped, reads one line from stdin so password managers work. |
15
+ | `login [typesafe\|openrouter]` | Prompts with masked input and stores the key. With `--key-stdin`, or when piped, reads one line from stdin so password managers work. |
16
16
  | `status` | Where each provider's key comes from: `env`, `keychain`, `file`, or `none`. Exit 1 if none. |
17
17
  | `logout [provider] [--all]` | Remove a stored key |
18
18
 
package/docs/update.md ADDED
@@ -0,0 +1,17 @@
1
+ # jev update
2
+
3
+ Check npm for a newer `jevctl` release and install it globally.
4
+
5
+ ```bash
6
+ jev update
7
+ jev update --check
8
+ ```
9
+
10
+ | Flag | Does |
11
+ | --- | --- |
12
+ | (none) | Check the npm registry; if a newer version exists, run `npm install -g jevctl@latest` |
13
+ | `--check` | Report whether an update is available without installing it |
14
+
15
+ Already up to date prints a short confirmation and exits 0; so does a completed install. A registry lookup failure (no network, npm missing) is exit 1.
16
+
17
+ Uses the `npm` binary on `PATH`, so it follows whatever registry, proxy, or `.npmrc` settings you already have configured.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jevctl",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Command-line tool for TypeSafe's Jev AI model. Check claims against evidence, detect prompt injection, find the best match in a list, or ask your own yes/no, multiple-choice, and rating questions. Returns probabilities, not text.",
5
5
  "type": "module",
6
6
  "license": "MIT",