feat: add initial updates to create cli (#469)

* open swe cli: initial cli updates

* openswe cli: add working authentication

* open swe cli: remove unecessary console log statements

* openswe cli: typescript modifications

* openswe cli: updates to formats

* openswe cli: updates to formatting

* openswe cli: ran prettier

* openswe cli: update urls

* openswe cli: update eslint

* openswe cli: add env example

* Update apps/cli/package.json

---------

Co-authored-by: Brace Sproul <braceasproul@gmail.com>
This commit is contained in:
Palash Shah 2025-07-23 15:21:28 -04:00 • committed by GitHub
parent e1a2609649
commit 219c280644
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 1037 additions and 12 deletions

12
apps/cli/.env.example Normal file
View file

@ -0,0 +1,12 @@
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
GITHUB_CALLBACK_URL=""
GITHUB_LOGIN_URL=""
GITHUB_ACCESS_TOKEN_LOGIN_LINK=
GITHUB_APP_NAME="open-swe-dev"
GITHUB_APP_ID=""
GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
...add your private key here...
-----END RSA PRIVATE KEY-----
"
SECRETS_ENCRYPTION_KEY=""

41
apps/cli/eslint.config.js Normal file
View file

@ -0,0 +1,41 @@
import js from "@eslint/js";
import globals from "globals";
import reactHooks from "eslint-plugin-react-hooks";
import reactRefresh from "eslint-plugin-react-refresh";
import tseslint from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
export default [
js.configs.recommended,
{
files: ["**/*.{ts,tsx}"],
languageOptions: {
parser: tsParser,
ecmaVersion: 2020,
globals: {
...globals.node,
...globals.browser,
},
},
plugins: {
"@typescript-eslint": tseslint,
"react-hooks": reactHooks,
"react-refresh": reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-unused-vars": [
"error",
{ args: "none", argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
"react-refresh/only-export-components": [
"warn",
{ allowConstantExport: true },
],
},
},
{
ignores: ["dist"],
},
];

46
apps/cli/package.json Normal file
View file

@ -0,0 +1,46 @@
{
"name": "@open-swe/cli",
"version": "0.0.0",
"license": "MIT",
"private": true,
"type": "module",
"main": "index.js",
"scripts": {
"clean": "rm -rf ./dist .turbo || true",
"build": "yarn clean && tsc",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write .",
"format:check": "prettier --check .",
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "tsx src/index.tsx"
},
"dependencies": {
"dotenv": "^16.6.1",
"express": "^4.18.2",
"ink": "^6.0.1",
"keytar": "^7.9.0",
"node-fetch": "^2.6.7",
"open": "^9.1.0",
"react": "^19.1.0"
},
"devDependencies": {
"@eslint/eslintrc": "^3.1.0",
"@eslint/js": "^9.19.0",
"@tsconfig/recommended": "^1.0.8",
"@types/express": "^4.17.21",
"@types/node": "^22.13.5",
"@types/node-fetch": "^2.6.4",
"@types/react": "^19.1.8",
"@typescript-eslint/eslint-plugin": "^8.38.0",
"@typescript-eslint/parser": "^8.38.0",
"eslint": "^9.19.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-no-instanceof": "^1.0.1",
"eslint-plugin-prettier": "^4.2.1",
"prettier": "^3.5.2",
"typescript": "^5.8.3"
},
"packageManager": "yarn@3.5.1"
}

View file

@ -0,0 +1,42 @@
import React from "react";
import { Box, Text } from "ink";
interface TerminalInterfaceProps {
message: string | null;
setMessage: () => void;
CustomInput: React.FC<{ onSubmit: () => void }>;
}
const TerminalInterface: React.FC<TerminalInterfaceProps> = ({
message,
setMessage,
CustomInput,
}) => {
return (
<Box flexDirection="column" padding={1}>
<Box justifyContent="center" marginBottom={0}>
<Text bold>LangChain Open SWE CLI</Text>
</Box>
<Box flexDirection="column">
<Text>Describe your coding task in as much detail as possible...</Text>
</Box>
<Box
borderStyle="round"
borderColor="gray"
paddingX={2}
paddingY={1}
marginTop={0}
marginBottom={0}
>
<CustomInput onSubmit={setMessage} />
</Box>
{message && (
<Box marginTop={1}>
<Text color="green">You typed: {message}</Text>
</Box>
)}
</Box>
);
};
export default TerminalInterface;

114
apps/cli/src/auth-server.ts Normal file
View file

@ -0,0 +1,114 @@
import "dotenv/config";
import express from "express";
import type { Request, Response } from "express";
import fs from "fs";
import os from "os";
import path from "path";
const CLIENT_ID = process.env.GITHUB_CLIENT_ID || "";
const CLIENT_SECRET = process.env.GITHUB_CLIENT_SECRET || "";
const PORT = 3000;
const CALLBACK_URL = "http://localhost:3000/api/auth/github/callback";
const TOKEN_PATH = path.join(
os.homedir(),
".open-swe-cli",
"github_token.json",
);
let accessToken: string | null = null;
interface GitHubTokenResponse {
access_token?: string;
token_type?: string;
scope?: string;
error?: string;
error_description?: string;
error_uri?: string;
}
function saveToken(tokenData: GitHubTokenResponse) {
const dir = path.dirname(TOKEN_PATH);
try {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
}
fs.writeFileSync(TOKEN_PATH, JSON.stringify(tokenData, null, 2), {
mode: 0o600,
});
} catch (err) {
console.error("Failed to save token:", err);
}
}
function loadToken() {
try {
if (fs.existsSync(TOKEN_PATH)) {
return JSON.parse(fs.readFileSync(TOKEN_PATH, "utf8"));
}
} catch (err) {
console.error("Failed to load token:", err);
}
return null;
}
const app = express();
// 1. Start OAuth flow
app.get("/api/auth/github/login", (_req: Request, res: Response) => {
const state = Math.random().toString(36).substring(2);
const baseGithubAuthUrl = "https://github.com/login/oauth/authorize";
const url = new URL(baseGithubAuthUrl);
url.searchParams.set("client_id", CLIENT_ID);
url.searchParams.set("redirect_uri", CALLBACK_URL);
url.searchParams.set("state", state);
return res.redirect(url.toString());
});
// 2. Handle OAuth callback
app.get("/api/auth/github/callback", async (req: Request, res: Response) => {
const code = req.query.code as string;
// Optionally validate state here
if (!code) {
return res.status(400).send("Missing code parameter");
}
const GITHUB_ACCESS_TOKEN_LOGIN_LINK =
process.env.GITHUB_ACCESS_TOKEN_LOGIN_LINK ||
"https://github.com/login/oauth/access_token";
// Exchange code for access token
const tokenRes = await fetch(GITHUB_ACCESS_TOKEN_LOGIN_LINK, {
method: "POST",
headers: { Accept: "application/json", "Content-Type": "application/json" },
body: JSON.stringify({
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
code,
redirect_uri: CALLBACK_URL,
}),
});
const tokenData = await tokenRes.json();
if (tokenData.error) {
return res
.status(400)
.send("Error exchanging code for token: " + tokenData.error);
}
accessToken = tokenData.access_token;
// Store the token in a config file
try {
saveToken(tokenData);
} catch (err) {
console.error("Failed to store token in config file:", err);
}
return res.send("Authentication successful! You can close this window.");
});
export function startAuthServer() {
app.listen(PORT, () => {});
}
export function getAccessToken() {
// Try to get from memory first, then from config file
if (accessToken) return accessToken;
const tokenData = loadToken();
return tokenData ? tokenData.access_token : null;
}

161
apps/cli/src/index.tsx Normal file
View file

@ -0,0 +1,161 @@
#!/usr/bin/env node
import React, { useState, useEffect } from "react";
import { render, Box, Text, useInput } from "ink";
import { startAuthServer, getAccessToken } from "./auth-server.js";
import open from "open";
import TerminalInterface from "./TerminalInterface.js";
const GITHUB_LOGIN_URL =
process.env.GITHUB_LOGIN_URL || "http://localhost:3000/api/auth/github/login";
const CustomInput: React.FC<{ onSubmit: () => void }> = ({ onSubmit }) => {
const [input, setInput] = useState("");
const [isSubmitted, setIsSubmitted] = useState(false);
useInput((inputChar, key) => {
if (isSubmitted) return;
if (key.return) {
setIsSubmitted(true);
onSubmit();
} else if (key.backspace || key.delete) {
setInput((prev) => prev.slice(0, -1));
} else if (inputChar) {
setInput((prev) => prev + inputChar);
}
});
if (isSubmitted) return null;
return (
<Box>
<Text color="cyan">&gt; {input}</Text>
</Box>
);
};
const App: React.FC = () => {
const [authPrompt, setAuthPrompt] = useState<null | boolean>(null);
const [authInput, setAuthInput] = useState("");
const [message, setMessage] = useState<string | null>(null);
const [exit, setExit] = useState(false);
const [authStarted, setAuthStarted] = useState(false);
const [isLoggedIn, setIsLoggedIn] = useState(false);
// On mount, check for existing token
useEffect(() => {
const token = getAccessToken();
if (token) {
setIsLoggedIn(true);
}
}, []);
// Poll for token after auth flow starts
useEffect(() => {
if (authStarted && !isLoggedIn) {
const interval = setInterval(() => {
const token = getAccessToken();
if (token) {
setIsLoggedIn(true);
clearInterval(interval);
}
}, 1000);
return () => clearInterval(interval);
}
}, [authStarted, isLoggedIn]);
// Handle yes/no input for auth prompt
useInput((input, key) => {
if (authPrompt === null && !isLoggedIn) {
if (key.return) {
if (authInput.toLowerCase() === "y") {
setAuthPrompt(true);
} else if (authInput.toLowerCase() === "n") {
setAuthPrompt(false);
setExit(true);
}
} else if (key.backspace || key.delete) {
setAuthInput((prev) => prev.slice(0, -1));
} else if (input && authInput.length < 1) {
// Only allow a single character (y/n)
setAuthInput(input);
}
}
});
// Exit the process safely after render
useEffect(() => {
if (exit) {
process.exit(0);
}
}, [exit]);
// Start auth server and open browser when user says yes
useEffect(() => {
if (authPrompt === true && !authStarted) {
setAuthStarted(true);
startAuthServer();
open(GITHUB_LOGIN_URL);
}
}, [authPrompt, authStarted]);
if (isLoggedIn) {
return (
<Box flexDirection="column" height={"100%"}>
<TerminalInterface
message={message}
setMessage={() => setMessage(null)}
CustomInput={CustomInput}
/>
<Box flexGrow={1} />
<Box width="100%" justifyContent="flex-end">
<Text color="gray" dimColor>
logged in
</Text>
</Box>
</Box>
);
}
if (authPrompt === null) {
return (
<Box flexDirection="column" padding={1}>
<Box justifyContent="center" marginBottom={1}>
<Text bold color="magenta">
LangChain Open SWE CLI
</Text>
</Box>
<Box
borderStyle="round"
borderColor="gray"
paddingX={2}
paddingY={1}
marginTop={1}
marginBottom={1}
>
<Text>
Do you want to start the GitHub authentication flow? (y/n){" "}
{authInput}
</Text>
</Box>
</Box>
);
}
return (
<Box flexDirection="column" padding={1}>
<Box justifyContent="center" marginBottom={1}>
<Text bold color="magenta">
LangChain Open SWE CLI
</Text>
</Box>
{!message && <CustomInput onSubmit={() => setMessage(null)} />}
{message && (
<Box marginTop={1}>
<Text color="green">You typed: {message}</Text>
</Box>
)}
</Box>
);
};
render(<App />);

15
apps/cli/tsconfig.json Normal file
View file

@ -0,0 +1,15 @@
{
"compilerOptions": {
"target": "ES2020",
"module": "Node16",
"moduleResolution": "node16",
"rootDir": "src",
"outDir": "dist",
"jsx": "react-jsx",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true
},
"include": ["src"]
}

618
yarn.lock
View file

@ -4135,6 +4135,36 @@ __metadata:
languageName: unknown
linkType: soft
"@open-swe/cli@workspace:apps/cli":
version: 0.0.0-use.local
resolution: "@open-swe/cli@workspace:apps/cli"
dependencies:
"@eslint/eslintrc": ^3.1.0
"@eslint/js": ^9.19.0
"@tsconfig/recommended": ^1.0.8
"@types/express": ^4.17.21
"@types/node": ^22.13.5
"@types/node-fetch": ^2.6.4
"@types/react": ^19.1.8
"@typescript-eslint/eslint-plugin": ^8.38.0
"@typescript-eslint/parser": ^8.38.0
dotenv: ^16.6.1
eslint: ^9.19.0
eslint-config-prettier: ^8.8.0
eslint-plugin-import: ^2.27.5
eslint-plugin-no-instanceof: ^1.0.1
eslint-plugin-prettier: ^4.2.1
express: ^4.18.2
ink: ^6.0.1
keytar: ^7.9.0
node-fetch: ^2.6.7
open: ^9.1.0
prettier: ^3.5.2
react: ^19.1.0
typescript: ^5.8.3
languageName: unknown
linkType: soft
"@open-swe/docs@workspace:apps/docs":
version: 0.0.0-use.local
resolution: "@open-swe/docs@workspace:apps/docs"
@ -6655,6 +6685,16 @@ __metadata:
languageName: node
linkType: hard
"@types/body-parser@npm:*":
version: 1.19.6
resolution: "@types/body-parser@npm:1.19.6"
dependencies:
"@types/connect": "*"
"@types/node": "*"
checksum: 33041e88eae00af2cfa0827e951e5f1751eafab2a8b6fce06cd89ef368a988907996436b1325180edaeddd1c0c7d0d0d4c20a6c9ff294a91e0039a9db9e9b658
languageName: node
linkType: hard
"@types/chai@npm:^5.2.2":
version: 5.2.2
resolution: "@types/chai@npm:5.2.2"
@ -6664,6 +6704,15 @@ __metadata:
languageName: node
linkType: hard
"@types/connect@npm:*":
version: 3.4.38
resolution: "@types/connect@npm:3.4.38"
dependencies:
"@types/node": "*"
checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99
languageName: node
linkType: hard
"@types/cookie@npm:^0.6.0":
version: 0.6.0
resolution: "@types/cookie@npm:0.6.0"
@ -6790,6 +6839,30 @@ __metadata:
languageName: node
linkType: hard
"@types/express-serve-static-core@npm:^4.17.33":
version: 4.19.6
resolution: "@types/express-serve-static-core@npm:4.19.6"
dependencies:
"@types/node": "*"
"@types/qs": "*"
"@types/range-parser": "*"
"@types/send": "*"
checksum: b0576eddc2d25ccdf10e68ba09598b87a4d7b2ad04a81dc847cb39fe56beb0b6a5cc017b1e00aa0060cb3b38e700384ce96d291a116a0f1e54895564a104aae9
languageName: node
linkType: hard
"@types/express@npm:^4.17.21":
version: 4.17.23
resolution: "@types/express@npm:4.17.23"
dependencies:
"@types/body-parser": "*"
"@types/express-serve-static-core": ^4.17.33
"@types/qs": "*"
"@types/serve-static": "*"
checksum: f1a020c6ad6dc0169a3277199605d60649d463a72c920673e0f230ab1e76f2d3aa23daabd25ef8e62eda314e26b879306c58ec806e669e1e40ca37a4b73a44b0
languageName: node
linkType: hard
"@types/graceful-fs@npm:^4.1.3":
version: 4.1.9
resolution: "@types/graceful-fs@npm:4.1.9"
@ -6824,6 +6897,13 @@ __metadata:
languageName: node
linkType: hard
"@types/http-errors@npm:*":
version: 2.0.5
resolution: "@types/http-errors@npm:2.0.5"
checksum: a88da669366bc483e8f3b3eb3d34ada5f8d13eeeef851b1204d77e2ba6fc42aba4566d877cca5c095204a3f4349b87fe397e3e21288837bdd945dd514120755b
languageName: node
linkType: hard
"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1":
version: 2.0.6
resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
@ -6913,6 +6993,13 @@ __metadata:
languageName: node
linkType: hard
"@types/mime@npm:^1":
version: 1.3.5
resolution: "@types/mime@npm:1.3.5"
checksum: e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78
languageName: node
linkType: hard
"@types/ms@npm:*":
version: 2.1.0
resolution: "@types/ms@npm:2.1.0"
@ -6929,6 +7016,16 @@ __metadata:
languageName: node
linkType: hard
"@types/node-fetch@npm:^2.6.4":
version: 2.6.12
resolution: "@types/node-fetch@npm:2.6.12"
dependencies:
"@types/node": "*"
form-data: ^4.0.0
checksum: 9647e68f9a125a090220c38d77b3c8e669c488658ae7506f1b4f9568214beba087624b1705bba1dc76649a65281ce3fd5b400e15266cbef8088027fb88777557
languageName: node
linkType: hard
"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0":
version: 24.0.14
resolution: "@types/node@npm:24.0.14"
@ -6954,6 +7051,20 @@ __metadata:
languageName: node
linkType: hard
"@types/qs@npm:*":
version: 6.14.0
resolution: "@types/qs@npm:6.14.0"
checksum: 1909205514d22b3cbc7c2314e2bd8056d5f05dfb21cf4377f0730ee5e338ea19957c41735d5e4806c746176563f50005bbab602d8358432e25d900bdf4970826
languageName: node
linkType: hard
"@types/range-parser@npm:*":
version: 1.2.7
resolution: "@types/range-parser@npm:1.2.7"
checksum: 95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a
languageName: node
linkType: hard
"@types/react-dom@npm:^19.0.3":
version: 19.1.6
resolution: "@types/react-dom@npm:19.1.6"
@ -6972,7 +7083,7 @@ __metadata:
languageName: node
linkType: hard
"@types/react@npm:*, @types/react@npm:^19.0.8":
"@types/react@npm:*, @types/react@npm:^19.0.8, @types/react@npm:^19.1.8":
version: 19.1.8
resolution: "@types/react@npm:19.1.8"
dependencies:
@ -6988,6 +7099,27 @@ __metadata:
languageName: node
linkType: hard
"@types/send@npm:*":
version: 0.17.5
resolution: "@types/send@npm:0.17.5"
dependencies:
"@types/mime": ^1
"@types/node": "*"
checksum: bff5add75eb178c3b80bebc422db483c76eeb2cb5016508c952e4fc67d968794f9c709b978d086bf60e4d6fbfe8c0b77e99a7603a615c671c1f97f808458d4a8
languageName: node
linkType: hard
"@types/serve-static@npm:*":
version: 1.15.8
resolution: "@types/serve-static@npm:1.15.8"
dependencies:
"@types/http-errors": "*"
"@types/node": "*"
"@types/send": "*"
checksum: 41e0fb40bfdf3b5c2ac997c5dd5d58af9229e6a325dab1cf5f73b488b09635d933c1aa6f0e3265d6df8b45be0d09af36a9ffe90175088726f1db6bf104bf9ecf
languageName: node
linkType: hard
"@types/stack-utils@npm:^2.0.0":
version: 2.0.3
resolution: "@types/stack-utils@npm:2.0.3"
@ -7097,6 +7229,27 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/eslint-plugin@npm:8.38.0"
dependencies:
"@eslint-community/regexpp": ^4.10.0
"@typescript-eslint/scope-manager": 8.38.0
"@typescript-eslint/type-utils": 8.38.0
"@typescript-eslint/utils": 8.38.0
"@typescript-eslint/visitor-keys": 8.38.0
graphemer: ^1.4.0
ignore: ^7.0.0
natural-compare: ^1.4.0
ts-api-utils: ^2.1.0
peerDependencies:
"@typescript-eslint/parser": ^8.38.0
eslint: ^8.57.0 || ^9.0.0
typescript: ">=4.8.4 <5.9.0"
checksum: 7c9a584c413fe868c75b20eeb65ef82e98fce3129875b78ccf5e459b2a64532a0d582ade73b9f3ff5902e7d185e2f41f515332cc58b54644fe50b817b9a4d943
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:8.37.0, @typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
version: 8.37.0
resolution: "@typescript-eslint/parser@npm:8.37.0"
@ -7113,6 +7266,22 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/parser@npm:8.38.0"
dependencies:
"@typescript-eslint/scope-manager": 8.38.0
"@typescript-eslint/types": 8.38.0
"@typescript-eslint/typescript-estree": 8.38.0
"@typescript-eslint/visitor-keys": 8.38.0
debug: ^4.3.4
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: ">=4.8.4 <5.9.0"
checksum: 8964da26cef76509c4c6015ccf3eff3ab837676adb5fbe8da5ac6d95b08ddbf1c66946c9ce29c0e3b05fa9942632d7cd10c8376a073fbfdbfeb07f32a0d83336
languageName: node
linkType: hard
"@typescript-eslint/project-service@npm:8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/project-service@npm:8.37.0"
@ -7126,6 +7295,19 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/project-service@npm:8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/project-service@npm:8.38.0"
dependencies:
"@typescript-eslint/tsconfig-utils": ^8.38.0
"@typescript-eslint/types": ^8.38.0
debug: ^4.3.4
peerDependencies:
typescript: ">=4.8.4 <5.9.0"
checksum: 8d2466fd0efe2e0328416322d968f2274a1678e7435f58879a282187c28831162f5c5c41223702cfb38700dede295b98b2792f22ce5834344999fc652d519fd2
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/scope-manager@npm:8.37.0"
@ -7136,6 +7318,16 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/scope-manager@npm:8.38.0"
dependencies:
"@typescript-eslint/types": 8.38.0
"@typescript-eslint/visitor-keys": 8.38.0
checksum: a70e1bf0e227abe45ddb330747e5241710aee419a2bf05d369231bb5b27d88cf9bfdb1dc4233a38d5ec62dfe1d6eeba642eca31d0d6ed12966366e0f5f29b6ff
languageName: node
linkType: hard
"@typescript-eslint/tsconfig-utils@npm:8.37.0, @typescript-eslint/tsconfig-utils@npm:^8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/tsconfig-utils@npm:8.37.0"
@ -7145,6 +7337,15 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/tsconfig-utils@npm:8.38.0, @typescript-eslint/tsconfig-utils@npm:^8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/tsconfig-utils@npm:8.38.0"
peerDependencies:
typescript: ">=4.8.4 <5.9.0"
checksum: e1c80d2a4bd50edc5c1da418bd11cf67fc10e55fc9e2e937df2799c44de7f48739c7821c0579a3b92658e50eb75e341ab89610e952ea28b7deb901219235821c
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/type-utils@npm:8.37.0"
@ -7161,6 +7362,22 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/type-utils@npm:8.38.0"
dependencies:
"@typescript-eslint/types": 8.38.0
"@typescript-eslint/typescript-estree": 8.38.0
"@typescript-eslint/utils": 8.38.0
debug: ^4.3.4
ts-api-utils: ^2.1.0
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: ">=4.8.4 <5.9.0"
checksum: af6931ca64d99c41365c563f32e5e9062465d76d3ff64263749b8b78ca4307eb59e8e0a3ded5854827df21ce6273cf534e560c25f05f4c6f18ce3a6024ed0dda
languageName: node
linkType: hard
"@typescript-eslint/types@npm:8.37.0, @typescript-eslint/types@npm:^8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/types@npm:8.37.0"
@ -7168,6 +7385,13 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/types@npm:8.38.0, @typescript-eslint/types@npm:^8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/types@npm:8.38.0"
checksum: 66c293e0e7bec90a94c9622197c373dfa9b3427ff568d81ffe47b8f95198ec599e1bc39b28464f91674a621bca0324628ece236837493d5401cc86562ae74e29
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/typescript-estree@npm:8.37.0"
@ -7188,6 +7412,26 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/typescript-estree@npm:8.38.0"
dependencies:
"@typescript-eslint/project-service": 8.38.0
"@typescript-eslint/tsconfig-utils": 8.38.0
"@typescript-eslint/types": 8.38.0
"@typescript-eslint/visitor-keys": 8.38.0
debug: ^4.3.4
fast-glob: ^3.3.2
is-glob: ^4.0.3
minimatch: ^9.0.4
semver: ^7.6.0
ts-api-utils: ^2.1.0
peerDependencies:
typescript: ">=4.8.4 <5.9.0"
checksum: 3acb587458247577bfbae2069c381bb9ac37fcd121fb6a9d3e911167a8a1d9dbffb377d9ab32cec93cfd61acd075c80a037c7152ab0c91ebfc0b3305de10b73a
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/utils@npm:8.37.0"
@ -7203,6 +7447,21 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/utils@npm:8.38.0"
dependencies:
"@eslint-community/eslint-utils": ^4.7.0
"@typescript-eslint/scope-manager": 8.38.0
"@typescript-eslint/types": 8.38.0
"@typescript-eslint/typescript-estree": 8.38.0
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: ">=4.8.4 <5.9.0"
checksum: cef57b6ff702f6caa9d5fde1390f27191cdb2e2587cb6cbad0135359b2232f70116e57ef8f643c0d72908cfb56ff3b6d03d11e8dddc657afbe277745a9842c50
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:8.37.0":
version: 8.37.0
resolution: "@typescript-eslint/visitor-keys@npm:8.37.0"
@ -7213,6 +7472,16 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:8.38.0":
version: 8.38.0
resolution: "@typescript-eslint/visitor-keys@npm:8.38.0"
dependencies:
"@typescript-eslint/types": 8.38.0
eslint-visitor-keys: ^4.2.1
checksum: d6e5f1e7595acc53c24e238cd6f947c386f64ed535e914068e67371bf595e6e419687754ea712eb370a34ceaecdc35a169c472bc9d5dcaf9a8b2cfab307e9486
languageName: node
linkType: hard
"@typescript/vfs@npm:^1.6.0":
version: 1.6.1
resolution: "@typescript/vfs@npm:1.6.1"
@ -8146,6 +8415,13 @@ __metadata:
languageName: node
linkType: hard
"big-integer@npm:^1.6.44":
version: 1.6.52
resolution: "big-integer@npm:1.6.52"
checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b
languageName: node
linkType: hard
"binary-extensions@npm:^2.0.0, binary-extensions@npm:^2.2.0":
version: 2.3.0
resolution: "binary-extensions@npm:2.3.0"
@ -8153,6 +8429,17 @@ __metadata:
languageName: node
linkType: hard
"bl@npm:^4.0.3":
version: 4.1.0
resolution: "bl@npm:4.1.0"
dependencies:
buffer: ^5.5.0
inherits: ^2.0.4
readable-stream: ^3.4.0
checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662
languageName: node
linkType: hard
"bl@npm:^5.0.0":
version: 5.1.0
resolution: "bl@npm:5.1.0"
@ -8208,6 +8495,15 @@ __metadata:
languageName: node
linkType: hard
"bplist-parser@npm:^0.2.0":
version: 0.2.0
resolution: "bplist-parser@npm:0.2.0"
dependencies:
big-integer: ^1.6.44
checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd
languageName: node
linkType: hard
"brace-expansion@npm:^1.1.7":
version: 1.1.12
resolution: "brace-expansion@npm:1.1.12"
@ -8299,7 +8595,7 @@ __metadata:
languageName: node
linkType: hard
"buffer@npm:^5.2.1":
"buffer@npm:^5.2.1, buffer@npm:^5.5.0":
version: 5.7.1
resolution: "buffer@npm:5.7.1"
dependencies:
@ -8319,6 +8615,15 @@ __metadata:
languageName: node
linkType: hard
"bundle-name@npm:^3.0.0":
version: 3.0.0
resolution: "bundle-name@npm:3.0.0"
dependencies:
run-applescript: ^5.0.0
checksum: edf2b1fbe6096ed32e7566947ace2ea937ee427391744d7510a2880c4b9a5b3543d3f6c551236a29e5c87d3195f8e2912516290e638c15bcbede7b37cc375615
languageName: node
linkType: hard
"bundle-name@npm:^4.1.0":
version: 4.1.0
resolution: "bundle-name@npm:4.1.0"
@ -8579,6 +8884,13 @@ __metadata:
languageName: node
linkType: hard
"chownr@npm:^1.1.1":
version: 1.1.4
resolution: "chownr@npm:1.1.4"
checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d
languageName: node
linkType: hard
"chownr@npm:^2.0.0":
version: 2.0.0
resolution: "chownr@npm:2.0.0"
@ -9321,6 +9633,13 @@ __metadata:
languageName: node
linkType: hard
"deep-extend@npm:^0.6.0":
version: 0.6.0
resolution: "deep-extend@npm:0.6.0"
checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7
languageName: node
linkType: hard
"deep-is@npm:^0.1.3":
version: 0.1.4
resolution: "deep-is@npm:0.1.4"
@ -9335,6 +9654,16 @@ __metadata:
languageName: node
linkType: hard
"default-browser-id@npm:^3.0.0":
version: 3.0.0
resolution: "default-browser-id@npm:3.0.0"
dependencies:
bplist-parser: ^0.2.0
untildify: ^4.0.0
checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941
languageName: node
linkType: hard
"default-browser-id@npm:^5.0.0":
version: 5.0.0
resolution: "default-browser-id@npm:5.0.0"
@ -9342,6 +9671,18 @@ __metadata:
languageName: node
linkType: hard
"default-browser@npm:^4.0.0":
version: 4.0.0
resolution: "default-browser@npm:4.0.0"
dependencies:
bundle-name: ^3.0.0
default-browser-id: ^3.0.0
execa: ^7.1.1
titleize: ^3.0.0
checksum: 40c5af984799042b140300be5639c9742599bda76dc9eba5ac9ad5943c83dd36cebc4471eafcfddf8e0ec817166d5ba89d56f08e66a126c7c7908a179cead1a7
languageName: node
linkType: hard
"default-browser@npm:^5.2.1":
version: 5.2.1
resolution: "default-browser@npm:5.2.1"
@ -9450,7 +9791,7 @@ __metadata:
languageName: node
linkType: hard
"detect-libc@npm:^2.0.3, detect-libc@npm:^2.0.4":
"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.3, detect-libc@npm:^2.0.4":
version: 2.0.4
resolution: "detect-libc@npm:2.0.4"
checksum: 3d186b7d4e16965e10e21db596c78a4e131f9eee69c0081d13b85e6a61d7448d3ba23fe7997648022bdfa3b0eb4cc3c289a44c8188df949445a20852689abef6
@ -9558,7 +9899,7 @@ __metadata:
languageName: node
linkType: hard
"dotenv@npm:^16.4.7":
"dotenv@npm:^16.4.7, dotenv@npm:^16.6.1":
version: 16.6.1
resolution: "dotenv@npm:16.6.1"
checksum: e8bd63c9a37f57934f7938a9cf35de698097fadf980cb6edb61d33b3e424ceccfe4d10f37130b904a973b9038627c2646a3365a904b4406514ea94d7f1816b69
@ -9682,7 +10023,7 @@ __metadata:
languageName: node
linkType: hard
"end-of-stream@npm:^1.1.0":
"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1":
version: 1.4.5
resolution: "end-of-stream@npm:1.4.5"
dependencies:
@ -10576,7 +10917,7 @@ __metadata:
languageName: node
linkType: hard
"execa@npm:^7.0.0":
"execa@npm:^7.0.0, execa@npm:^7.1.1":
version: 7.2.0
resolution: "execa@npm:7.2.0"
dependencies:
@ -10627,6 +10968,13 @@ __metadata:
languageName: node
linkType: hard
"expand-template@npm:^2.0.3":
version: 2.0.3
resolution: "expand-template@npm:2.0.3"
checksum: 588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099
languageName: node
linkType: hard
"expand-tilde@npm:^2.0.2":
version: 2.0.2
resolution: "expand-tilde@npm:2.0.2"
@ -11233,6 +11581,13 @@ __metadata:
languageName: node
linkType: hard
"fs-constants@npm:^1.0.0":
version: 1.0.0
resolution: "fs-constants@npm:1.0.0"
checksum: 18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d
languageName: node
linkType: hard
"fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0":
version: 11.3.0
resolution: "fs-extra@npm:11.3.0"
@ -11459,6 +11814,13 @@ __metadata:
languageName: node
linkType: hard
"github-from-package@npm:0.0.0":
version: 0.0.0
resolution: "github-from-package@npm:0.0.0"
checksum: 14e448192a35c1e42efee94c9d01a10f42fe790375891a24b25261246ce9336ab9df5d274585aedd4568f7922246c2a78b8a8cd2571bfe99c693a9718e7dd0e3
languageName: node
linkType: hard
"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
version: 5.1.2
resolution: "glob-parent@npm:5.1.2"
@ -12201,6 +12563,13 @@ __metadata:
languageName: node
linkType: hard
"ini@npm:~1.3.0":
version: 1.3.8
resolution: "ini@npm:1.3.8"
checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3
languageName: node
linkType: hard
"ink-spinner@npm:^5.0.0":
version: 5.0.0
resolution: "ink-spinner@npm:5.0.0"
@ -12254,6 +12623,47 @@ __metadata:
languageName: node
linkType: hard
"ink@npm:^6.0.1":
version: 6.0.1
resolution: "ink@npm:6.0.1"
dependencies:
"@alcalzone/ansi-tokenize": ^0.1.3
ansi-escapes: ^7.0.0
ansi-styles: ^6.2.1
auto-bind: ^5.0.1
chalk: ^5.3.0
cli-boxes: ^3.0.0
cli-cursor: ^4.0.0
cli-truncate: ^4.0.0
code-excerpt: ^4.0.0
es-toolkit: ^1.22.0
indent-string: ^5.0.0
is-in-ci: ^1.0.0
patch-console: ^2.0.0
react-reconciler: ^0.32.0
scheduler: ^0.23.0
signal-exit: ^3.0.7
slice-ansi: ^7.1.0
stack-utils: ^2.0.6
string-width: ^7.2.0
type-fest: ^4.27.0
widest-line: ^5.0.0
wrap-ansi: ^9.0.0
ws: ^8.18.0
yoga-layout: ~3.2.1
peerDependencies:
"@types/react": ">=19.0.0"
react: ">=19.0.0"
react-devtools-core: ^4.19.1
peerDependenciesMeta:
"@types/react":
optional: true
react-devtools-core:
optional: true
checksum: 95fa6cd8a96b72ed72c48f0698fa877ed9838fff6a1dbadc0358874dcb382bdb3db86ec581e33168328fdaf8fa201a4975ba25074cfe4d68fd51c149d09a75c2
languageName: node
linkType: hard
"inline-style-parser@npm:0.2.4":
version: 0.2.4
resolution: "inline-style-parser@npm:0.2.4"
@ -13649,6 +14059,17 @@ __metadata:
languageName: node
linkType: hard
"keytar@npm:^7.9.0":
version: 7.9.0
resolution: "keytar@npm:7.9.0"
dependencies:
node-addon-api: ^4.3.0
node-gyp: latest
prebuild-install: ^7.0.1
checksum: 4dbdd21f69e21a53032cbc949847f57338e42df763c5eec04e1b5d7142a689f95d8c3d74fb3b7dc321b5d678271d8d8d1a0dcaa919673ebc50ef8ce76f354e21
languageName: node
linkType: hard
"keyv@npm:^4.5.3, keyv@npm:^4.5.4":
version: 4.5.4
resolution: "keyv@npm:4.5.4"
@ -15138,7 +15559,7 @@ __metadata:
languageName: node
linkType: hard
"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
@ -15257,6 +15678,13 @@ __metadata:
languageName: node
linkType: hard
"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3":
version: 0.5.3
resolution: "mkdirp-classic@npm:0.5.3"
checksum: 3f4e088208270bbcc148d53b73e9a5bd9eef05ad2cbf3b3d0ff8795278d50dd1d11a8ef1875ff5aea3fa888931f95bfcb2ad5b7c1061cfefd6284d199e6776ac
languageName: node
linkType: hard
"mkdirp@npm:^1.0.3":
version: 1.0.4
resolution: "mkdirp@npm:1.0.4"
@ -15372,6 +15800,13 @@ __metadata:
languageName: node
linkType: hard
"napi-build-utils@npm:^2.0.0":
version: 2.0.0
resolution: "napi-build-utils@npm:2.0.0"
checksum: 532121efd2dd2272595580bca48859e404bdd4ed455a72a28432ba44868c38d0e64fac3026a8f82bf8563d2a18b32eb9a1d59e601a9da4e84ba4d45b922297f5
languageName: node
linkType: hard
"napi-postinstall@npm:^0.3.0":
version: 0.3.0
resolution: "napi-postinstall@npm:0.3.0"
@ -15561,6 +15996,24 @@ __metadata:
languageName: node
linkType: hard
"node-abi@npm:^3.3.0":
version: 3.75.0
resolution: "node-abi@npm:3.75.0"
dependencies:
semver: ^7.3.5
checksum: b86021c748b316b31efda4f1f4a74db9fd411b0ae63fa50be5b0247546285ae7e31c737e92013478877eaf39a3fd0a06072d48b1cace21ad629862373410416f
languageName: node
linkType: hard
"node-addon-api@npm:^4.3.0":
version: 4.3.0
resolution: "node-addon-api@npm:4.3.0"
dependencies:
node-gyp: latest
checksum: 3de396e23cc209f539c704583e8e99c148850226f6e389a641b92e8967953713228109f919765abc1f4355e801e8f41842f96210b8d61c7dcc10a477002dcf00
languageName: node
linkType: hard
"node-domexception@npm:^1.0.0":
version: 1.0.0
resolution: "node-domexception@npm:1.0.0"
@ -15582,7 +16035,7 @@ __metadata:
languageName: node
linkType: hard
"node-fetch@npm:^2.6.0, node-fetch@npm:^2.7.0":
"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7, node-fetch@npm:^2.7.0":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
dependencies:
@ -15902,6 +16355,18 @@ __metadata:
languageName: node
linkType: hard
"open@npm:^9.1.0":
version: 9.1.0
resolution: "open@npm:9.1.0"
dependencies:
default-browser: ^4.0.0
define-lazy-prop: ^3.0.0
is-inside-container: ^1.0.0
is-wsl: ^2.2.0
checksum: 3993c0f61d51fed8ac290e99c9c3cf45d3b6cfb3e2aa2b74cafd312c3486c22fd81df16ac8f3ab91dd8a4e3e729a16fc2480cfc406c4833416cf908acf1ae7c9
languageName: node
linkType: hard
"openai@npm:^5.3.0":
version: 5.10.1
resolution: "openai@npm:5.10.1"
@ -16532,6 +16997,28 @@ __metadata:
languageName: node
linkType: hard
"prebuild-install@npm:^7.0.1":
version: 7.1.3
resolution: "prebuild-install@npm:7.1.3"
dependencies:
detect-libc: ^2.0.0
expand-template: ^2.0.3
github-from-package: 0.0.0
minimist: ^1.2.3
mkdirp-classic: ^0.5.3
napi-build-utils: ^2.0.0
node-abi: ^3.3.0
pump: ^3.0.0
rc: ^1.2.7
simple-get: ^4.0.0
tar-fs: ^2.0.0
tunnel-agent: ^0.6.0
bin:
prebuild-install: bin.js
checksum: 300740ca415e9ddbf2bd363f1a6d2673cc11dd0665c5ec431bbb5bf024c2f13c56791fb939ce2b2a2c12f2d2a09c91316169e8063a80eb4482a44b8fe5b265e1
languageName: node
linkType: hard
"prelude-ls@npm:^1.2.1":
version: 1.2.1
resolution: "prelude-ls@npm:1.2.1"
@ -16922,6 +17409,20 @@ __metadata:
languageName: node
linkType: hard
"rc@npm:^1.2.7":
version: 1.2.8
resolution: "rc@npm:1.2.8"
dependencies:
deep-extend: ^0.6.0
ini: ~1.3.0
minimist: ^1.2.0
strip-json-comments: ~2.0.1
bin:
rc: ./cli.js
checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e
languageName: node
linkType: hard
"react-dom@npm:^19.0.0":
version: 19.1.0
resolution: "react-dom@npm:19.1.0"
@ -16981,6 +17482,17 @@ __metadata:
languageName: node
linkType: hard
"react-reconciler@npm:^0.32.0":
version: 0.32.0
resolution: "react-reconciler@npm:0.32.0"
dependencies:
scheduler: ^0.26.0
peerDependencies:
react: ^19.1.0
checksum: 47dd7ec683cb48ddb6eb71c04847b3df6a43808e6a81249ef3db5b2603e2eb3095f75272fadf0d50560c0d88c9dac7b5e4ff45fbc5eadaab810c84d13deb247b
languageName: node
linkType: hard
"react-remove-scroll-bar@npm:^2.3.7":
version: 2.3.8
resolution: "react-remove-scroll-bar@npm:2.3.8"
@ -17086,14 +17598,14 @@ __metadata:
languageName: node
linkType: hard
"react@npm:^19.0.0":
"react@npm:^19.0.0, react@npm:^19.1.0":
version: 19.1.0
resolution: "react@npm:19.1.0"
checksum: c0905f8cfb878b0543a5522727e5ed79c67c8111dc16ceee135b7fe19dce77b2c1c19293513061a8934e721292bfc1517e0487e262d1906f306bdf95fa54d02f
languageName: node
linkType: hard
"readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.2":
"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.2":
version: 3.6.2
resolution: "readable-stream@npm:3.6.2"
dependencies:
@ -17733,6 +18245,15 @@ __metadata:
languageName: node
linkType: hard
"run-applescript@npm:^5.0.0":
version: 5.0.0
resolution: "run-applescript@npm:5.0.0"
dependencies:
execa: ^5.0.0
checksum: d00c2dbfa5b2d774de7451194b8b125f40f65fc183de7d9dcae97f57f59433586d3c39b9001e111c38bfa24c3436c99df1bb4066a2a0c90d39a8c4cd6889af77
languageName: node
linkType: hard
"run-applescript@npm:^7.0.0":
version: 7.0.0
resolution: "run-applescript@npm:7.0.0"
@ -18288,6 +18809,13 @@ __metadata:
languageName: node
linkType: hard
"simple-concat@npm:^1.0.0":
version: 1.0.1
resolution: "simple-concat@npm:1.0.1"
checksum: 4d211042cc3d73a718c21ac6c4e7d7a0363e184be6a5ad25c8a1502e49df6d0a0253979e3d50dbdd3f60ef6c6c58d756b5d66ac1e05cda9cacd2e9fc59e3876a
languageName: node
linkType: hard
"simple-eval@npm:1.0.1":
version: 1.0.1
resolution: "simple-eval@npm:1.0.1"
@ -18297,6 +18825,17 @@ __metadata:
languageName: node
linkType: hard
"simple-get@npm:^4.0.0":
version: 4.0.1
resolution: "simple-get@npm:4.0.1"
dependencies:
decompress-response: ^6.0.0
once: ^1.3.1
simple-concat: ^1.0.0
checksum: e4132fd27cf7af230d853fa45c1b8ce900cb430dd0a3c6d3829649fe4f2b26574c803698076c4006450efb0fad2ba8c5455fbb5755d4b0a5ec42d4f12b31d27e
languageName: node
linkType: hard
"simple-swizzle@npm:^0.2.2":
version: 0.2.2
resolution: "simple-swizzle@npm:0.2.2"
@ -18825,6 +19364,13 @@ __metadata:
languageName: node
linkType: hard
"strip-json-comments@npm:~2.0.1":
version: 2.0.1
resolution: "strip-json-comments@npm:2.0.1"
checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1
languageName: node
linkType: hard
"strip-literal@npm:^3.0.0":
version: 3.0.0
resolution: "strip-literal@npm:3.0.0"
@ -18969,6 +19515,18 @@ __metadata:
languageName: node
linkType: hard
"tar-fs@npm:^2.0.0":
version: 2.1.3
resolution: "tar-fs@npm:2.1.3"
dependencies:
chownr: ^1.1.1
mkdirp-classic: ^0.5.2
pump: ^3.0.0
tar-stream: ^2.1.4
checksum: 8dd66c20779c1fe535df5cf2ab5132705c12aba3ab95283f225a798329c5aaa8bbe92144c8e21bc9404f46a0d3ce59fc4997f5c42bafc55b6a225d4ad15aa966
languageName: node
linkType: hard
"tar-fs@npm:^3.0.6":
version: 3.1.0
resolution: "tar-fs@npm:3.1.0"
@ -18986,6 +19544,19 @@ __metadata:
languageName: node
linkType: hard
"tar-stream@npm:^2.1.4":
version: 2.2.0
resolution: "tar-stream@npm:2.2.0"
dependencies:
bl: ^4.0.3
end-of-stream: ^1.4.1
fs-constants: ^1.0.0
inherits: ^2.0.3
readable-stream: ^3.1.1
checksum: 699831a8b97666ef50021c767f84924cfee21c142c2eb0e79c63254e140e6408d6d55a065a2992548e72b06de39237ef2b802b99e3ece93ca3904a37622a66f3
languageName: node
linkType: hard
"tar-stream@npm:^3.1.5":
version: 3.1.7
resolution: "tar-stream@npm:3.1.7"
@ -19111,6 +19682,13 @@ __metadata:
languageName: node
linkType: hard
"titleize@npm:^3.0.0":
version: 3.0.0
resolution: "titleize@npm:3.0.0"
checksum: 71fbbeabbfb36ccd840559f67f21e356e1d03da2915b32d2ae1a60ddcc13a124be2739f696d2feb884983441d159a18649e8d956648d591bdad35c430a6b6d28
languageName: node
linkType: hard
"tmp@npm:^0.0.33":
version: 0.0.33
resolution: "tmp@npm:0.0.33"
@ -19316,6 +19894,15 @@ __metadata:
languageName: node
linkType: hard
"tunnel-agent@npm:^0.6.0":
version: 0.6.0
resolution: "tunnel-agent@npm:0.6.0"
dependencies:
safe-buffer: ^5.0.1
checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711
languageName: node
linkType: hard
"turbo-darwin-64@npm:2.5.5":
version: 2.5.5
resolution: "turbo-darwin-64@npm:2.5.5"
@ -19520,7 +20107,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:^5":
"typescript@npm:^5, typescript@npm:^5.8.3":
version: 5.8.3
resolution: "typescript@npm:5.8.3"
bin:
@ -19540,7 +20127,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@patch:typescript@^5#~builtin<compat/typescript>":
"typescript@patch:typescript@^5#~builtin<compat/typescript>, typescript@patch:typescript@^5.8.3#~builtin<compat/typescript>":
version: 5.8.3
resolution: "typescript@patch:typescript@npm%3A5.8.3#~builtin<compat/typescript>::version=5.8.3&hash=77c9e2"
bin:
@ -19893,6 +20480,13 @@ __metadata:
languageName: node
linkType: hard
"untildify@npm:^4.0.0":
version: 4.0.0
resolution: "untildify@npm:4.0.0"
checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9
languageName: node
linkType: hard
"update-browserslist-db@npm:^1.1.3":
version: 1.1.3
resolution: "update-browserslist-db@npm:1.1.3"