@ai21/gateway 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -3
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +38 -4
- package/dist/cli.js.map +1 -1
- package/dist/login/lock.d.ts +6 -0
- package/dist/login/lock.js +16 -1
- package/dist/login/lock.js.map +1 -1
- package/dist/login/session.d.ts +12 -0
- package/dist/login/session.js +23 -5
- package/dist/login/session.js.map +1 -1
- package/dist/precheck.d.ts +1 -0
- package/dist/precheck.js +1 -1
- package/dist/precheck.js.map +1 -1
- package/dist/prompt.d.ts +5 -7
- package/dist/prompt.js +23 -1
- package/dist/prompt.js.map +1 -1
- package/dist/report.d.ts +4 -0
- package/dist/report.js +59 -17
- package/dist/report.js.map +1 -1
- package/dist/result.d.ts +2 -0
- package/dist/result.js +2 -0
- package/dist/result.js.map +1 -1
- package/dist/router.d.ts +6 -0
- package/dist/router.js +157 -31
- package/dist/router.js.map +1 -1
- package/dist/status.d.ts +31 -0
- package/dist/status.js +107 -0
- package/dist/status.js.map +1 -0
- package/dist/telemetry/amplitudeHttp.d.ts +28 -0
- package/dist/telemetry/amplitudeHttp.js +53 -0
- package/dist/telemetry/amplitudeHttp.js.map +1 -0
- package/dist/telemetry/events.d.ts +46 -0
- package/dist/telemetry/events.js +10 -0
- package/dist/telemetry/events.js.map +1 -0
- package/dist/telemetry/telemetry.d.ts +27 -0
- package/dist/telemetry/telemetry.js +78 -0
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/telemetry/transport.d.ts +10 -0
- package/dist/telemetry/transport.js +2 -0
- package/dist/telemetry/transport.js.map +1 -0
- package/dist/verify.d.ts +2 -0
- package/dist/verify.js +2 -1
- package/dist/verify.js.map +1 -1
- package/package.json +1 -1
package/dist/status.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One line on stderr saying what the CLI is doing right now, redrawn in place so a
|
|
3
|
+
* slow step does not look like a hang. A step that definitely succeeded is kept as a
|
|
4
|
+
* dim ✔ line, so the run leaves a short record of what it did.
|
|
5
|
+
*
|
|
6
|
+
* Terminal-only by construction: on a pipe, a file or `TERM=dumb` every method but
|
|
7
|
+
* `log` is a no-op and `log` writes exactly what it was given, so redirected output and
|
|
8
|
+
* CI logs stay byte-for-byte what they were before this existed.
|
|
9
|
+
*/
|
|
10
|
+
import { clearLine, cursorTo } from "node:readline";
|
|
11
|
+
import { styleText } from "node:util";
|
|
12
|
+
/**
|
|
13
|
+
* Cut to one row, since erasing clears only the row the cursor is on: a line that
|
|
14
|
+
* wrapped would leave its first half behind on every redraw.
|
|
15
|
+
*/
|
|
16
|
+
function fitToWidth(text, columns) {
|
|
17
|
+
// A pty with no size set reports 0; that means unknown, not zero-wide.
|
|
18
|
+
if (columns === undefined || columns <= 0)
|
|
19
|
+
return text;
|
|
20
|
+
// Two columns for the spinner and its space, one so the cursor never wraps.
|
|
21
|
+
const room = columns - 3;
|
|
22
|
+
const chars = [...text];
|
|
23
|
+
return chars.length <= room ? text : `${chars.slice(0, Math.max(room - 1, 0)).join("")}…`;
|
|
24
|
+
}
|
|
25
|
+
/** For code paths that must never draw: `--json`, and tests that do not care. */
|
|
26
|
+
export const NO_STATUS = {
|
|
27
|
+
update: () => undefined,
|
|
28
|
+
log: () => undefined,
|
|
29
|
+
done: () => undefined,
|
|
30
|
+
bell: () => undefined,
|
|
31
|
+
stop: () => undefined,
|
|
32
|
+
};
|
|
33
|
+
/** Under 0.1s the time is noise, and "(0.0s)" reads like a bug. */
|
|
34
|
+
function elapsed(ms) {
|
|
35
|
+
return ms < 100 ? "" : ` (${(ms / 1000).toFixed(1)}s)`;
|
|
36
|
+
}
|
|
37
|
+
const FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
38
|
+
/** Fast enough to read as motion, slow enough not to burn a core redrawing. */
|
|
39
|
+
export const FRAME_MS = 80;
|
|
40
|
+
/** A redrawn line needs a cursor that moves; `TERM=dumb` promises it does not. */
|
|
41
|
+
export function isInteractive(stream, env) {
|
|
42
|
+
return stream.isTTY === true && env.TERM !== "dumb";
|
|
43
|
+
}
|
|
44
|
+
/** `enabled: false` gives the plain behaviour: `log` writes through, everything else is a no-op. */
|
|
45
|
+
export function createStatusLine(stream, enabled, now = Date.now) {
|
|
46
|
+
if (!enabled)
|
|
47
|
+
return { ...NO_STATUS, log: (message) => void stream.write(`${message}\n`) };
|
|
48
|
+
const colour = stream.hasColors?.() === true;
|
|
49
|
+
let text;
|
|
50
|
+
let frame = 0;
|
|
51
|
+
let drawn = false;
|
|
52
|
+
let timer;
|
|
53
|
+
let startedAt = now();
|
|
54
|
+
const paint = (format, value) => colour ? styleText(format, value, { validateStream: false }) : value;
|
|
55
|
+
const pause = () => {
|
|
56
|
+
if (timer !== undefined)
|
|
57
|
+
clearInterval(timer);
|
|
58
|
+
timer = undefined;
|
|
59
|
+
text = undefined;
|
|
60
|
+
};
|
|
61
|
+
const erase = () => {
|
|
62
|
+
if (!drawn)
|
|
63
|
+
return;
|
|
64
|
+
clearLine(stream, 0);
|
|
65
|
+
cursorTo(stream, 0);
|
|
66
|
+
drawn = false;
|
|
67
|
+
};
|
|
68
|
+
const draw = () => {
|
|
69
|
+
if (text === undefined)
|
|
70
|
+
return;
|
|
71
|
+
const spinner = FRAMES[frame % FRAMES.length] ?? "";
|
|
72
|
+
frame += 1;
|
|
73
|
+
erase();
|
|
74
|
+
const line = fitToWidth(text, stream.columns);
|
|
75
|
+
stream.write(`${colour ? styleText("cyan", spinner, { validateStream: false }) : spinner} ${line}`);
|
|
76
|
+
drawn = true;
|
|
77
|
+
};
|
|
78
|
+
return {
|
|
79
|
+
update(next) {
|
|
80
|
+
if (next !== text)
|
|
81
|
+
startedAt = now();
|
|
82
|
+
text = next;
|
|
83
|
+
draw();
|
|
84
|
+
// unref: a spinner must never be the thing keeping the process alive.
|
|
85
|
+
timer ??= setInterval(draw, FRAME_MS).unref();
|
|
86
|
+
},
|
|
87
|
+
log(message) {
|
|
88
|
+
erase();
|
|
89
|
+
stream.write(`${message}\n`);
|
|
90
|
+
draw();
|
|
91
|
+
},
|
|
92
|
+
done(finished) {
|
|
93
|
+
const took = elapsed(now() - startedAt);
|
|
94
|
+
pause();
|
|
95
|
+
erase();
|
|
96
|
+
stream.write(`${paint("green", "✔")} ${paint("dim", `${fitToWidth(finished, stream.columns)}${took}`)}\n`);
|
|
97
|
+
},
|
|
98
|
+
bell() {
|
|
99
|
+
stream.write("\u0007");
|
|
100
|
+
},
|
|
101
|
+
stop() {
|
|
102
|
+
pause();
|
|
103
|
+
erase();
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct delivery to Amplitude's HTTP V2 API, and which project a gateway reports to.
|
|
3
|
+
*/
|
|
4
|
+
import type { CliEvent } from "./events.js";
|
|
5
|
+
import type { EventTransport } from "./transport.js";
|
|
6
|
+
export declare const AMPLITUDE_HTTP_V2_URL = "https://api2.amplitude.com/2/httpapi";
|
|
7
|
+
export declare const SEND_TIMEOUT_MS = 3000;
|
|
8
|
+
/**
|
|
9
|
+
* Amplitude project API keys, by gateway hostname. These are ingestion-only keys, made to
|
|
10
|
+
* ship in client code; the project's Secret key must never appear here. An empty key
|
|
11
|
+
* means that environment reports nothing.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PROJECT_KEYS: Readonly<Record<string, string>>;
|
|
14
|
+
/** Undefined for any host that is not a known environment (localhost, VPC, custom). */
|
|
15
|
+
export declare function amplitudeKeyFor(gatewayUrl: string, keys?: Readonly<Record<string, string>>): string | undefined;
|
|
16
|
+
/** Just enough of `fetch` to POST with. */
|
|
17
|
+
export type PostLike = (url: string, init: {
|
|
18
|
+
method: "POST";
|
|
19
|
+
headers: Record<string, string>;
|
|
20
|
+
body: string;
|
|
21
|
+
signal: AbortSignal;
|
|
22
|
+
}) => Promise<{
|
|
23
|
+
ok: boolean;
|
|
24
|
+
status: number;
|
|
25
|
+
}>;
|
|
26
|
+
/** The HTTP V2 wire shape of one event. Unset optional properties are left out, not sent as null. */
|
|
27
|
+
export declare function toAmplitudeEvent(event: CliEvent): Record<string, unknown>;
|
|
28
|
+
export declare function amplitudeHttpTransport(apiKey: string, post: PostLike, timeoutMs?: number): EventTransport;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const AMPLITUDE_HTTP_V2_URL = "https://api2.amplitude.com/2/httpapi";
|
|
2
|
+
export const SEND_TIMEOUT_MS = 3_000;
|
|
3
|
+
/**
|
|
4
|
+
* Amplitude project API keys, by gateway hostname. These are ingestion-only keys, made to
|
|
5
|
+
* ship in client code; the project's Secret key must never appear here. An empty key
|
|
6
|
+
* means that environment reports nothing.
|
|
7
|
+
*/
|
|
8
|
+
export const PROJECT_KEYS = {
|
|
9
|
+
"api.ai21.com": "be0223327acdb089744156d19857f1ac",
|
|
10
|
+
"api.ai21-stg.com": "8a79e0c614753d8f3787c537ecef49d0",
|
|
11
|
+
};
|
|
12
|
+
/** Undefined for any host that is not a known environment (localhost, VPC, custom). */
|
|
13
|
+
export function amplitudeKeyFor(gatewayUrl, keys = PROJECT_KEYS) {
|
|
14
|
+
let hostname;
|
|
15
|
+
try {
|
|
16
|
+
hostname = new URL(gatewayUrl).hostname;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const key = Object.hasOwn(keys, hostname) ? keys[hostname] : undefined;
|
|
22
|
+
return key === undefined || key === "" ? undefined : key;
|
|
23
|
+
}
|
|
24
|
+
/** The HTTP V2 wire shape of one event. Unset optional properties are left out, not sent as null. */
|
|
25
|
+
export function toAmplitudeEvent(event) {
|
|
26
|
+
const properties = Object.fromEntries(Object.entries(event.properties).filter(([, value]) => value !== undefined));
|
|
27
|
+
return {
|
|
28
|
+
event_type: event.name,
|
|
29
|
+
device_id: event.deviceId,
|
|
30
|
+
time: event.time,
|
|
31
|
+
insert_id: event.insertId,
|
|
32
|
+
app_version: event.appVersion,
|
|
33
|
+
platform: "CLI",
|
|
34
|
+
os_name: event.osName,
|
|
35
|
+
os_version: event.osVersion,
|
|
36
|
+
event_properties: properties,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function amplitudeHttpTransport(apiKey, post, timeoutMs = SEND_TIMEOUT_MS) {
|
|
40
|
+
return {
|
|
41
|
+
async send(events) {
|
|
42
|
+
const response = await post(AMPLITUDE_HTTP_V2_URL, {
|
|
43
|
+
method: "POST",
|
|
44
|
+
headers: { "Content-Type": "application/json", Accept: "*/*" },
|
|
45
|
+
body: JSON.stringify({ api_key: apiKey, events: events.map(toAmplitudeEvent) }),
|
|
46
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
47
|
+
});
|
|
48
|
+
if (!response.ok)
|
|
49
|
+
throw new Error(`Amplitude responded ${response.status}`);
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=amplitudeHttp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amplitudeHttp.js","sourceRoot":"","sources":["../../src/telemetry/amplitudeHttp.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAqC;IAC5D,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,kCAAkC;CACvD,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,OAAyC,YAAY;IAErD,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvE,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3D,CAAC;AAQD,qGAAqG;AACrG,MAAM,UAAU,gBAAgB,CAAC,KAAe;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;IAEnH,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,IAAI;QACtB,SAAS,EAAE,KAAK,CAAC,QAAQ;QACzB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,QAAQ;QACzB,WAAW,EAAE,KAAK,CAAC,UAAU;QAC7B,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,UAAU,EAAE,KAAK,CAAC,SAAS;QAC3B,gBAAgB,EAAE,UAAU;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,IAAc,EACd,YAAoB,eAAe;IAEnC,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,MAAM;YACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE;gBACjD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE;gBAC9D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/E,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;aACvC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CLI setup events from the tokenwise tracking plan, in a transport-neutral shape.
|
|
3
|
+
*
|
|
4
|
+
* Nothing here may carry a key, an email, a path, argv or prompt content, which is why
|
|
5
|
+
* `errorMessage` is a fixed reason chosen at the call site, never the text the user saw.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CLI_SETUP_STARTED = "CliSetupStarted";
|
|
8
|
+
export declare const CLI_SETUP_COMPLETED = "CliSetupCompleted";
|
|
9
|
+
export declare const CLI_SETUP_FAILED = "CliSetupFailed";
|
|
10
|
+
export type CliEventName = typeof CLI_SETUP_STARTED | typeof CLI_SETUP_COMPLETED | typeof CLI_SETUP_FAILED;
|
|
11
|
+
export type SetupKind = "installAgent";
|
|
12
|
+
/** The plan's `login`, `detect`, `configWrite` and `verify`, plus two steps its examples do not name. */
|
|
13
|
+
export type FailureStage = "detect" | "login" | "keyCheck" | "claudeLogin" | "configWrite" | "verify";
|
|
14
|
+
export type AgentKind = "claude_code";
|
|
15
|
+
/** On all three events. `setupId` pairs a Started with its Completed or Failed. */
|
|
16
|
+
export interface SetupProps {
|
|
17
|
+
readonly app: "tokenwise";
|
|
18
|
+
readonly cliVersion: string;
|
|
19
|
+
readonly setupKind: SetupKind;
|
|
20
|
+
readonly setupId: string;
|
|
21
|
+
}
|
|
22
|
+
/** Known once the flow reaches them; omitted rather than guessed before that. */
|
|
23
|
+
export interface SetupContext {
|
|
24
|
+
readonly workspaceId?: string | undefined;
|
|
25
|
+
readonly agentKind?: AgentKind | undefined;
|
|
26
|
+
}
|
|
27
|
+
export interface SetupFailure {
|
|
28
|
+
readonly stage: FailureStage;
|
|
29
|
+
readonly errorMessage: string;
|
|
30
|
+
/** The HTTP status, when the failure was an API call that returned one. */
|
|
31
|
+
readonly errorCode?: number | undefined;
|
|
32
|
+
}
|
|
33
|
+
/** What is constant for one CLI run. `deviceId` is random per run until identity lands. */
|
|
34
|
+
export interface RunInfo {
|
|
35
|
+
readonly deviceId: string;
|
|
36
|
+
readonly appVersion: string;
|
|
37
|
+
readonly osName: string;
|
|
38
|
+
readonly osVersion: string;
|
|
39
|
+
}
|
|
40
|
+
export interface CliEvent extends RunInfo {
|
|
41
|
+
readonly name: CliEventName;
|
|
42
|
+
readonly time: number;
|
|
43
|
+
/** Lets the receiver drop a duplicate if a transport ever retries. */
|
|
44
|
+
readonly insertId: string;
|
|
45
|
+
readonly properties: SetupProps & SetupContext & Partial<SetupFailure>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CLI setup events from the tokenwise tracking plan, in a transport-neutral shape.
|
|
3
|
+
*
|
|
4
|
+
* Nothing here may carry a key, an email, a path, argv or prompt content, which is why
|
|
5
|
+
* `errorMessage` is a fixed reason chosen at the call site, never the text the user saw.
|
|
6
|
+
*/
|
|
7
|
+
export const CLI_SETUP_STARTED = "CliSetupStarted";
|
|
8
|
+
export const CLI_SETUP_COMPLETED = "CliSetupCompleted";
|
|
9
|
+
export const CLI_SETUP_FAILED = "CliSetupFailed";
|
|
10
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type PostLike } from "./amplitudeHttp.js";
|
|
2
|
+
import { type RunInfo, type SetupContext, type SetupFailure, type SetupKind } from "./events.js";
|
|
3
|
+
import type { EventTransport } from "./transport.js";
|
|
4
|
+
/**
|
|
5
|
+
* One setup flow, from its Started event to its single terminal event. Only the first
|
|
6
|
+
* `completed` or `failed` is sent, so a flow can never report both.
|
|
7
|
+
*/
|
|
8
|
+
export interface SetupReporter {
|
|
9
|
+
completed(context: SetupContext): void;
|
|
10
|
+
failed(failure: SetupFailure, context: SetupContext): void;
|
|
11
|
+
}
|
|
12
|
+
export interface Telemetry {
|
|
13
|
+
/** Sends CliSetupStarted now, and returns the reporter for how the flow ends. */
|
|
14
|
+
startSetup(kind: SetupKind): SetupReporter;
|
|
15
|
+
/** Waits for sends in flight, but never longer than `maxMs`. Never rejects. */
|
|
16
|
+
flush(maxMs: number): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/** How long a finishing command waits for sends still in flight. */
|
|
19
|
+
export declare const FLUSH_CAP_MS = 1500;
|
|
20
|
+
export declare const NO_TELEMETRY: Telemetry;
|
|
21
|
+
export interface TelemetryDeps {
|
|
22
|
+
readonly now: () => number;
|
|
23
|
+
readonly newId: () => string;
|
|
24
|
+
}
|
|
25
|
+
export declare function createTelemetry(transport: EventTransport, run: RunInfo, deps?: TelemetryDeps): Telemetry;
|
|
26
|
+
/** The real telemetry for a gateway: Amplitude for a known environment, nothing otherwise. */
|
|
27
|
+
export declare function nodeTelemetry(gatewayUrl: string, appVersion: string, post: PostLike): Telemetry;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Onboarding telemetry. Reporting must never block, delay or fail a command, so nothing
|
|
3
|
+
* here throws and every send failure is dropped.
|
|
4
|
+
*
|
|
5
|
+
* Failures are dropped without a log on purpose: stderr is this CLI's user interface,
|
|
6
|
+
* and a line about analytics would read as a problem with the install.
|
|
7
|
+
*/
|
|
8
|
+
import { randomUUID } from "node:crypto";
|
|
9
|
+
import { release } from "node:os";
|
|
10
|
+
import { amplitudeHttpTransport, amplitudeKeyFor } from "./amplitudeHttp.js";
|
|
11
|
+
import { CLI_SETUP_COMPLETED, CLI_SETUP_FAILED, CLI_SETUP_STARTED, } from "./events.js";
|
|
12
|
+
/** How long a finishing command waits for sends still in flight. */
|
|
13
|
+
export const FLUSH_CAP_MS = 1_500;
|
|
14
|
+
const NO_REPORTER = { completed: () => undefined, failed: () => undefined };
|
|
15
|
+
export const NO_TELEMETRY = {
|
|
16
|
+
startSetup: () => NO_REPORTER,
|
|
17
|
+
flush: async () => undefined,
|
|
18
|
+
};
|
|
19
|
+
export function createTelemetry(transport, run, deps = { now: Date.now, newId: randomUUID }) {
|
|
20
|
+
const inFlight = new Set();
|
|
21
|
+
function send(name, properties) {
|
|
22
|
+
const event = { ...run, name, time: deps.now(), insertId: deps.newId(), properties };
|
|
23
|
+
// Started inside a promise chain so even a transport that throws synchronously is caught.
|
|
24
|
+
const sending = Promise.resolve()
|
|
25
|
+
.then(() => transport.send([event]))
|
|
26
|
+
.catch(() => undefined)
|
|
27
|
+
.finally(() => inFlight.delete(sending));
|
|
28
|
+
inFlight.add(sending);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
startSetup(setupKind) {
|
|
32
|
+
const base = { app: "tokenwise", cliVersion: run.appVersion, setupKind, setupId: deps.newId() };
|
|
33
|
+
let ended = false;
|
|
34
|
+
send(CLI_SETUP_STARTED, base);
|
|
35
|
+
return {
|
|
36
|
+
completed(context) {
|
|
37
|
+
if (ended)
|
|
38
|
+
return;
|
|
39
|
+
ended = true;
|
|
40
|
+
send(CLI_SETUP_COMPLETED, { ...base, ...context });
|
|
41
|
+
},
|
|
42
|
+
failed(failure, context) {
|
|
43
|
+
if (ended)
|
|
44
|
+
return;
|
|
45
|
+
ended = true;
|
|
46
|
+
send(CLI_SETUP_FAILED, { ...base, ...context, ...failure });
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
async flush(maxMs) {
|
|
51
|
+
if (inFlight.size === 0)
|
|
52
|
+
return;
|
|
53
|
+
let timer;
|
|
54
|
+
const cap = new Promise((resolve) => {
|
|
55
|
+
timer = setTimeout(resolve, maxMs);
|
|
56
|
+
});
|
|
57
|
+
try {
|
|
58
|
+
await Promise.race([Promise.allSettled([...inFlight]), cap]);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
clearTimeout(timer);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/** The real telemetry for a gateway: Amplitude for a known environment, nothing otherwise. */
|
|
67
|
+
export function nodeTelemetry(gatewayUrl, appVersion, post) {
|
|
68
|
+
const apiKey = amplitudeKeyFor(gatewayUrl);
|
|
69
|
+
if (apiKey === undefined)
|
|
70
|
+
return NO_TELEMETRY;
|
|
71
|
+
return createTelemetry(amplitudeHttpTransport(apiKey, post), {
|
|
72
|
+
deviceId: randomUUID(),
|
|
73
|
+
appVersion,
|
|
74
|
+
osName: process.platform,
|
|
75
|
+
osVersion: release(),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CliEvent } from "./events.js";
|
|
2
|
+
/**
|
|
3
|
+
* Where events go. The only seam between the CLI and an analytics backend: replacing
|
|
4
|
+
* direct Amplitude with a proxy or an SDK means writing another one of these.
|
|
5
|
+
*
|
|
6
|
+
* `send` may reject; the caller swallows it.
|
|
7
|
+
*/
|
|
8
|
+
export interface EventTransport {
|
|
9
|
+
send(events: readonly CliEvent[]): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/telemetry/transport.ts"],"names":[],"mappings":""}
|
package/dist/verify.d.ts
CHANGED
|
@@ -95,6 +95,8 @@ export interface VerifyDeps {
|
|
|
95
95
|
* the *host* platform, so they cannot resolve a Windows PATH under test on macOS.
|
|
96
96
|
*/
|
|
97
97
|
export declare function findOnPath(command: string, lookup: PathLookup): string | undefined;
|
|
98
|
+
/** What the direct ping would send: `--anthropic-key`, else a non-empty ANTHROPIC_API_KEY. */
|
|
99
|
+
export declare function resolveAnthropicKey(ctx: Pick<VerifyContext, "anthropicKey" | "processEnv">): string | undefined;
|
|
98
100
|
/**
|
|
99
101
|
* Which side rejected us, without needing an Anthropic key: a deliberately invalid
|
|
100
102
|
* `x-api-key` cannot succeed, so whichever layer answers is the answer.
|
package/dist/verify.js
CHANGED
|
@@ -82,7 +82,8 @@ function quoteOutput(output, ctx) {
|
|
|
82
82
|
return "";
|
|
83
83
|
return trimmed.length > MAX_REASON_LENGTH ? `: ${trimmed.slice(0, MAX_REASON_LENGTH)}…` : `: ${trimmed}`;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
/** What the direct ping would send: `--anthropic-key`, else a non-empty ANTHROPIC_API_KEY. */
|
|
86
|
+
export function resolveAnthropicKey(ctx) {
|
|
86
87
|
if (ctx.anthropicKey !== undefined && ctx.anthropicKey !== "")
|
|
87
88
|
return ctx.anthropicKey;
|
|
88
89
|
// Set-but-empty is how people disable it; treating that as a credential would
|
package/dist/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAqB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC;;;wDAGwD;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,uEAAuE,CAAC;AACrG,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC;AAExC,uFAAuF;AACvF,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C;iFACiF;AACjF,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,SAAS,cAAc,QAAQ,aAAa,UAAU,GAAG,oBAAoB,CAAC;AACvF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,mBAAmB;IAC1B,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;CAC1D,CAAC;AAqEX,mFAAmF;AACnF,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,MAAkB;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC3F,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9F,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS;QAEzB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;YAC/F,IAAI,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4DAA4D;AAC5D,SAAS,aAAa,CAAC,IAAY,EAAE,GAAkB;IACrD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE;YAAE,SAAS;QAEpD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,wEAAwE;AACxE,SAAS,WAAW,CAAC,MAAc,EAAE,GAAkB;IACrD,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAE9B,OAAO,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;AAC3G,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAkB;IAC7C,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,YAAY,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC,YAAY,CAAC;IAEvF,8EAA8E;IAC9E,2CAA2C;IAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAEjD,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,SAAS,CAAC,UAAkB,EAAE,GAAkB,EAAE,IAAgB;IAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;QACtE,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;IAEpE,oFAAoF;IACpF,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAClF,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACnF,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAc,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IAElG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,gFAAgF;QAChF,kFAAkF;QAClF,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,KAAK,cAAc,+BAA+B,iBAAiB,GAAG,IAAI,GAAG,CAAC;QAC/F,QAAQ,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YAC1C,KAAK,eAAe;gBAClB,OAAO,MAAM,CAAC,GAAG,QAAQ,0CAA0C,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7F,KAAK,eAAe;gBAClB;;gGAEgF;gBAChF;4FAC4E;gBAC5E,OAAO,MAAM,CACX,GAAG,QAAQ,6EAA6E;oBACtF,KAAK,cAAc,4EAA4E;oBAC/F,2BAA2B,cAAc,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACxE,CAAC;YACJ,KAAK,cAAc;gBACjB,OAAO,MAAM,CACX,GAAG,QAAQ,6DAA6D,cAAc,QAAQ;oBAC5F,oFAAoF,eAAe,CAAC,GAAG,CAAC,EAAE,CAC7G,CAAC;QACN,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,KAAK,cAAc,sBAAsB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,cAAc,gBAAgB,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,iFAAiF;AACjF,SAAS,eAAe,CAAC,GAAkB;IACzC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO;QAC9C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;;2EAGiE;YACjE,sFAAsF,CAAC;AAC7F,CAAC;AAED,gFAAgF;AAChF,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,uDAAuD;IAC5D,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,uBAAuB;CAC7B,CAAC;AAQF,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAE9D,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC;IAEzE,MAAM,KAAK,GAAG,MAA+D,CAAC;IAC9E,kFAAkF;IAClF,6DAA6D;IAC7D,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,eAAe,CAAC;IAEhF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAEvD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEhE,MAAM,EAAE,KAAK,EAAE,GAAG,MAA6B,CAAC;IAEhD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAA4B,CAAC,IAAI,KAAK,sBAAsB,CAAC;AACtH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAkB,EAAE,IAAgB;IAClE,sEAAsE;IACtE,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,cAAc,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW,CAAC,mBAAmB,EAAE,GAAG,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;SAC7C,CAAC,CAAC;QAEH,0EAA0E;QAC1E,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,eAAe,CAAC;QAExC,OAAO,iBAAiB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,YAAoB,EAAE,GAAkB;IAC3D,MAAM,OAAO,GAA2B;QACtC,YAAY,EAAE,GAAG,CAAC,OAAO;QACzB,YAAY,EAAE,GAAG,CAAC,OAAO;QACzB,WAAW,EAAE,YAAY;QACzB,mBAAmB,EAAE,YAAY;QACjC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IAErE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,GAAG,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,GAAkB,EAAE,IAAgB;IACrF,MAAM,MAAM,GAAG,CAAC,MAAc,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnG,kFAAkF;IAClF,8EAA8E;IAC9E,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,mCAAmC,GAAG,CAAC,IAAI,CAAC,OAAO,gDAAgD,CAAC,CAAC;IACrH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;QAE/D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACrF,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACtF,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,OAAO,MAAM,CAAC,wBAAwB,QAAQ,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;IAC3G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,qCAAqC,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC;QAChF,CAAC;QAED,0EAA0E;QAC1E,wEAAwE;QACxE,OAAO,MAAM,CAAC,uCAAuC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAI5C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAgB;IAClE,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IAEpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACjH,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC;IAEnE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK;QAAE,OAAO,cAAc,CAAC;IAEvD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC;IAEzE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAI7C,CAAC;IACF,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAE1C,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,YAAY,CAAC;IAE7E,OAAO,QAAQ,KAAK,KAAK,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAkB,EAAE,IAAgB;IAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAEtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAE9E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC9D,CAAC;AAED,8EAA8E;AAC9E,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,SAAS,UAAU,CACjB,UAAkB,EAClB,IAAuB,EACvB,IAA0D;IAE1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,8EAA8E;QAC9E,6EAA6E;QAC7E,uDAAuD;QACvD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;YACrE,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK;YACL,2EAA2E;YAC3E,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAQ,EAAE;YACtC,IAAI,MAAM,CAAC,MAAM,GAAG,mBAAmB;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAElC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,CAAC,MAAqB,EAAQ,EAAE;YAC7C,IAAI,IAAI;gBAAE,OAAO;YAEjB,IAAI,GAAG,IAAI,CAAC;YACZ,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF;;;;;;;;;WASG;QACH,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnB,gFAAgF;QAChF,+CAA+C;QAC/C,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAG,GAA6B,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAClH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;YAAE,OAAO,KAAK,CAAC;QAEhD,0EAA0E;QAC1E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,UAA8C;IAC3E,OAAO;QACL,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE;QACpE,UAAU;QACV,SAAS,EAAE,KAA6B;KACzC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai21/gateway",
|
|
3
3
|
"//version": "Placeholder. The source of truth is the Artifact Registry — CI sets this from NODE_PACKAGE_VERSION at publish time (see the Semantic Release user guide).",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"description": "One command to point a local coding agent at the AI21 Intelligent Gateway",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|