@meterapp/car-image 1.0.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/LICENSE +21 -0
- package/README.md +93 -0
- package/dist/agent-config.js +104 -0
- package/dist/agent-config.js.map +1 -0
- package/dist/args.js +145 -0
- package/dist/args.js.map +1 -0
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -0
- package/dist/browser.js +20 -0
- package/dist/browser.js.map +1 -0
- package/dist/client.js +38 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/agents.js +38 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/billing.js +41 -0
- package/dist/commands/billing.js.map +1 -0
- package/dist/commands/catalog.js +169 -0
- package/dist/commands/catalog.js.map +1 -0
- package/dist/commands/describe.js +52 -0
- package/dist/commands/describe.js.map +1 -0
- package/dist/commands/doctor.js +53 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/help.js +58 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/images.js +168 -0
- package/dist/commands/images.js.map +1 -0
- package/dist/commands/index.js +44 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/login.js +64 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/maintenance.js +156 -0
- package/dist/commands/maintenance.js.map +1 -0
- package/dist/commands/onboard.js +42 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/whoami.js +41 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.js +84 -0
- package/dist/config.js.map +1 -0
- package/dist/context.js +2 -0
- package/dist/context.js.map +1 -0
- package/dist/describe.js +226 -0
- package/dist/describe.js.map +1 -0
- package/dist/device-login.js +42 -0
- package/dist/device-login.js.map +1 -0
- package/dist/doctor.js +280 -0
- package/dist/doctor.js.map +1 -0
- package/dist/errors.js +54 -0
- package/dist/errors.js.map +1 -0
- package/dist/main.js +170 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/server.js +149 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/output.js +90 -0
- package/dist/output.js.map +1 -0
- package/dist/prompts.js +29 -0
- package/dist/prompts.js.map +1 -0
- package/dist/telemetry.js +50 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/update.js +142 -0
- package/dist/update.js.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +56 -0
package/dist/update.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { readJsonFile, writeJsonFile } from "./config.js";
|
|
3
|
+
import { PACKAGE_NAME } from "./version.js";
|
|
4
|
+
export const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
5
|
+
export const UPDATE_CHECK_TTL_MS = 24 * 60 * 60 * 1000;
|
|
6
|
+
function parseVersion(version) {
|
|
7
|
+
const match = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?/.exec(version.trim());
|
|
8
|
+
if (!match)
|
|
9
|
+
return null;
|
|
10
|
+
return { parts: [Number(match[1]), Number(match[2]), Number(match[3])], pre: match[4] ?? null };
|
|
11
|
+
}
|
|
12
|
+
/** Semver-ish comparison; a prerelease sorts before its release. Unparsable versions compare equal. */
|
|
13
|
+
export function compareVersions(a, b) {
|
|
14
|
+
const left = parseVersion(a);
|
|
15
|
+
const right = parseVersion(b);
|
|
16
|
+
if (!left || !right)
|
|
17
|
+
return 0;
|
|
18
|
+
for (let index = 0; index < 3; index += 1) {
|
|
19
|
+
const l = left.parts[index] ?? 0;
|
|
20
|
+
const r = right.parts[index] ?? 0;
|
|
21
|
+
if (l !== r)
|
|
22
|
+
return l < r ? -1 : 1;
|
|
23
|
+
}
|
|
24
|
+
if (left.pre && !right.pre)
|
|
25
|
+
return -1;
|
|
26
|
+
if (!left.pre && right.pre)
|
|
27
|
+
return 1;
|
|
28
|
+
if (left.pre && right.pre && left.pre !== right.pre)
|
|
29
|
+
return left.pre < right.pre ? -1 : 1;
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
export function isNewer(latest, current) {
|
|
33
|
+
return typeof latest === "string" && compareVersions(latest, current) > 0;
|
|
34
|
+
}
|
|
35
|
+
/** Detects the package manager that launched us from `npm_config_user_agent`. */
|
|
36
|
+
export function detectPackageManager(env = process.env) {
|
|
37
|
+
const agent = (env.npm_config_user_agent ?? "").toLowerCase();
|
|
38
|
+
if (agent.startsWith("pnpm/"))
|
|
39
|
+
return "pnpm";
|
|
40
|
+
if (agent.startsWith("bun/"))
|
|
41
|
+
return "bun";
|
|
42
|
+
if (agent.startsWith("yarn/"))
|
|
43
|
+
return "yarn";
|
|
44
|
+
return "npm";
|
|
45
|
+
}
|
|
46
|
+
export function installCommand(manager, pkg = PACKAGE_NAME) {
|
|
47
|
+
switch (manager) {
|
|
48
|
+
case "pnpm":
|
|
49
|
+
return { command: "pnpm", args: ["add", "-g", `${pkg}@latest`] };
|
|
50
|
+
case "bun":
|
|
51
|
+
return { command: "bun", args: ["add", "-g", `${pkg}@latest`] };
|
|
52
|
+
case "yarn":
|
|
53
|
+
return { command: "yarn", args: ["global", "add", `${pkg}@latest`] };
|
|
54
|
+
default:
|
|
55
|
+
return { command: "npm", args: ["install", "-g", `${pkg}@latest`] };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** True when running through `npx`, `pnpm dlx`, `bunx` or similar one-shot runners. */
|
|
59
|
+
export function isNpxInvocation(env = process.env, argv1 = process.argv[1] ?? "") {
|
|
60
|
+
if (env.npm_command === "exec")
|
|
61
|
+
return true;
|
|
62
|
+
if (env.npm_lifecycle_event === "npx")
|
|
63
|
+
return true;
|
|
64
|
+
const path = argv1.replace(/\\/g, "/");
|
|
65
|
+
return /\/_npx\//.test(path) || /\/\.pnpm-store\/|\/dlx-[^/]*\//.test(path) || /\/\.bun\/install\/cache\//.test(path);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Decision matrix for the passive update check that runs before a command:
|
|
69
|
+
* silent when nothing is newer, when there is no TTY, when `--quiet`, when
|
|
70
|
+
* running the stdio MCP server, or when a notice was already shown today.
|
|
71
|
+
* npx/dlx invocations only ever get a notice (they always run the latest
|
|
72
|
+
* version anyway on the next call).
|
|
73
|
+
*/
|
|
74
|
+
export function decideUpdate(input) {
|
|
75
|
+
if (!isNewer(input.latest, input.current))
|
|
76
|
+
return { action: "none", reason: "up to date" };
|
|
77
|
+
if (input.command === "mcp" || input.command === "update")
|
|
78
|
+
return { action: "none", reason: "command excluded" };
|
|
79
|
+
if (!input.isTTY)
|
|
80
|
+
return { action: "none", reason: "not a tty" };
|
|
81
|
+
if (input.quiet)
|
|
82
|
+
return { action: "none", reason: "quiet" };
|
|
83
|
+
if (input.lastNoticeAt !== null && input.now - input.lastNoticeAt < UPDATE_CHECK_TTL_MS) {
|
|
84
|
+
return { action: "none", reason: "already notified today" };
|
|
85
|
+
}
|
|
86
|
+
if (input.viaNpx)
|
|
87
|
+
return { action: "notice", latest: input.latest };
|
|
88
|
+
switch (input.autoUpdate) {
|
|
89
|
+
case "always":
|
|
90
|
+
return { action: "install", latest: input.latest };
|
|
91
|
+
case "never":
|
|
92
|
+
return { action: "notice", latest: input.latest };
|
|
93
|
+
default:
|
|
94
|
+
return { action: "ask", latest: input.latest };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Latest published version from the npm registry, or null on any failure. */
|
|
98
|
+
export async function fetchLatestVersion(fetchImpl = fetch, timeoutMs = 2500) {
|
|
99
|
+
try {
|
|
100
|
+
const response = await fetchImpl(REGISTRY_URL, {
|
|
101
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
102
|
+
headers: { Accept: "application/vnd.npm.install-v1+json, application/json" },
|
|
103
|
+
});
|
|
104
|
+
if (!response.ok)
|
|
105
|
+
return null;
|
|
106
|
+
const body = (await response.json());
|
|
107
|
+
return typeof body.version === "string" ? body.version : null;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/** Reads the 24h cache, refreshing it from the registry when stale or forced. */
|
|
114
|
+
export async function checkForUpdate(options) {
|
|
115
|
+
const now = options.now ?? Date.now();
|
|
116
|
+
const ttl = options.ttlMs ?? UPDATE_CHECK_TTL_MS;
|
|
117
|
+
const cached = await readJsonFile(options.cachePath);
|
|
118
|
+
if (!options.force && cached && typeof cached.checkedAt === "number" && now - cached.checkedAt < ttl) {
|
|
119
|
+
return { latest: cached.latest ?? null, cache: cached, fromCache: true };
|
|
120
|
+
}
|
|
121
|
+
const latest = await fetchLatestVersion(options.fetchImpl);
|
|
122
|
+
const cache = { checkedAt: now, latest, lastNoticeAt: cached?.lastNoticeAt };
|
|
123
|
+
await writeJsonFile(options.cachePath, cache, 0o600).catch(() => undefined);
|
|
124
|
+
return { latest, cache, fromCache: false };
|
|
125
|
+
}
|
|
126
|
+
export async function markNoticeShown(cachePath, cache, now = Date.now()) {
|
|
127
|
+
await writeJsonFile(cachePath, { ...cache, lastNoticeAt: now }, 0o600).catch(() => undefined);
|
|
128
|
+
}
|
|
129
|
+
/** Runs the global install in the foreground; resolves with the exit code. */
|
|
130
|
+
export function performUpdate(manager, log) {
|
|
131
|
+
const { command, args } = installCommand(manager);
|
|
132
|
+
log(`Running: ${command} ${args.join(" ")}\n`);
|
|
133
|
+
return new Promise((resolve) => {
|
|
134
|
+
const child = spawn(command, args, { stdio: "inherit", shell: process.platform === "win32" });
|
|
135
|
+
child.on("error", (error) => {
|
|
136
|
+
log(`Could not start ${command}: ${error.message}\n`);
|
|
137
|
+
resolve(1);
|
|
138
|
+
});
|
|
139
|
+
child.on("exit", (code) => resolve(code ?? 1));
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@meterapp/car-image",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CLI and MCP server for the Car Image API by Meter: studio-quality, transparent-background vehicle renders for agents, apps and browsers. Login, fetch images, mint signed URLs, run diagnostics, configure agents.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Meter <hello@meterapp.co> (https://meterapp.co)",
|
|
7
|
+
"homepage": "https://car-imgs.vercel.app",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://car-imgs.vercel.app/docs/feedback",
|
|
10
|
+
"email": "hello@meterapp.co"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"car",
|
|
14
|
+
"vehicle",
|
|
15
|
+
"image",
|
|
16
|
+
"api",
|
|
17
|
+
"cli",
|
|
18
|
+
"mcp",
|
|
19
|
+
"mcp-server",
|
|
20
|
+
"agents",
|
|
21
|
+
"claude",
|
|
22
|
+
"cursor",
|
|
23
|
+
"chatgpt",
|
|
24
|
+
"meter"
|
|
25
|
+
],
|
|
26
|
+
"type": "module",
|
|
27
|
+
"bin": {
|
|
28
|
+
"car-image": "./dist/bin.js"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"README.md"
|
|
33
|
+
],
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=20"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@modelcontextprotocol/server": "^2.0.0",
|
|
39
|
+
"zod": "^4.5.4",
|
|
40
|
+
"@meterapp/car-image-sdk": "^1.0.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/node": "^22.20.1",
|
|
44
|
+
"typescript": "^5.9.3",
|
|
45
|
+
"vitest": "^4.1.11"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"build": "tsc -p tsconfig.build.json",
|
|
52
|
+
"clean": "rm -rf dist",
|
|
53
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
54
|
+
"test": "vitest run"
|
|
55
|
+
}
|
|
56
|
+
}
|