feat: use tsgo for dev/watch builds
This commit is contained in:
@@ -6,6 +6,7 @@ Docs: https://docs.clawd.bot
|
|||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
- Deps: update workspace + memory-lancedb dependencies.
|
- Deps: update workspace + memory-lancedb dependencies.
|
||||||
|
- Dev: use tsgo for dev/watch builds by default; set `CLAWDBOT_TS_COMPILER=tsc` to opt out.
|
||||||
- Repo: remove the Peekaboo git submodule now that the SPM release is used.
|
- Repo: remove the Peekaboo git submodule now that the SPM release is used.
|
||||||
- Update: sync plugin sources on channel switches and update npm-installed plugins during `clawdbot update`.
|
- Update: sync plugin sources on channel switches and update npm-installed plugins during `clawdbot update`.
|
||||||
- Plugins: share npm plugin update logic between `clawdbot update` and `clawdbot plugins update`.
|
- Plugins: share npm plugin update logic between `clawdbot update` and `clawdbot plugins update`.
|
||||||
|
|||||||
@@ -210,6 +210,7 @@
|
|||||||
"@types/proper-lockfile": "^4.1.4",
|
"@types/proper-lockfile": "^4.1.4",
|
||||||
"@types/qrcode-terminal": "^0.12.2",
|
"@types/qrcode-terminal": "^0.12.2",
|
||||||
"@types/ws": "^8.18.1",
|
"@types/ws": "^8.18.1",
|
||||||
|
"@typescript/native-preview": "7.0.0-dev.20260120.1",
|
||||||
"@vitest/coverage-v8": "^4.0.17",
|
"@vitest/coverage-v8": "^4.0.17",
|
||||||
"docx-preview": "^0.3.7",
|
"docx-preview": "^0.3.7",
|
||||||
"lit": "^3.3.2",
|
"lit": "^3.3.2",
|
||||||
|
|||||||
73
pnpm-lock.yaml
generated
73
pnpm-lock.yaml
generated
@@ -202,6 +202,9 @@ importers:
|
|||||||
'@types/ws':
|
'@types/ws':
|
||||||
specifier: ^8.18.1
|
specifier: ^8.18.1
|
||||||
version: 8.18.1
|
version: 8.18.1
|
||||||
|
'@typescript/native-preview':
|
||||||
|
specifier: 7.0.0-dev.20260120.1
|
||||||
|
version: 7.0.0-dev.20260120.1
|
||||||
'@vitest/coverage-v8':
|
'@vitest/coverage-v8':
|
||||||
specifier: ^4.0.17
|
specifier: ^4.0.17
|
||||||
version: 4.0.17(@vitest/browser@4.0.17(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)(yaml@2.8.2))(vitest@4.0.17))(vitest@4.0.17)
|
version: 4.0.17(@vitest/browser@4.0.17(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)(yaml@2.8.2))(vitest@4.0.17))(vitest@4.0.17)
|
||||||
@@ -2530,6 +2533,45 @@ packages:
|
|||||||
'@types/ws@8.18.1':
|
'@types/ws@8.18.1':
|
||||||
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
|
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
|
||||||
|
|
||||||
|
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-r3pWFuR2H7mn6ScwpH5jJljKQqKto0npVuJSk6pRwFwexpTyxOGmJTZJ1V0AWiisaNxU2+CNAqWFJSJYIE/QTg==}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [darwin]
|
||||||
|
|
||||||
|
'@typescript/native-preview-darwin-x64@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-cuC1+wLbUP+Ip2UT94G134fqRdp5w3b3dhcCO6/FQ4yXxvRNyv/WK+upHBUFDaeSOeHgDTyO9/QFYUWwC4If1A==}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [darwin]
|
||||||
|
|
||||||
|
'@typescript/native-preview-linux-arm64@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-zZGvEGY7wcHYefMZ87KNmvjN3NLIhsCMHEpHZiGCS3khKf+8z6ZsanrzCjOTodvL01VPyBzHxV1EtkSxAcLiQg==}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
|
'@typescript/native-preview-linux-arm@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-vN6OYVySol/kQZjJGmAzd6L30SyVlCgmCXS8WjUYtE5clN0YrzQHop16RK29fYZHMxpkOniVBtRPxUYQANZBlQ==}
|
||||||
|
cpu: [arm]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
|
'@typescript/native-preview-linux-x64@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-JBfNhWd/asd5MDeS3VgRvE24pGKBkmvLub6tsux6ypr+Yhy+o0WaAEzVpmlRYZUqss2ai5tvOu4dzPBXzZAtFw==}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
|
'@typescript/native-preview-win32-arm64@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-tTndRtYCq2xwgE0VkTi9ACNiJaV43+PqvBqCxk8ceYi3X36Ve+CCnwlZfZJ4k9NxZthtrAwF/kUmpC9iIYbq1w==}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [win32]
|
||||||
|
|
||||||
|
'@typescript/native-preview-win32-x64@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-oZia7hFL6k9pVepfonuPI86Jmyz6WlJKR57tWCDwRNmpA7odxuTq1PbvcYgy1z4+wHF1nnKKJY0PMAiq6ac18w==}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [win32]
|
||||||
|
|
||||||
|
'@typescript/native-preview@7.0.0-dev.20260120.1':
|
||||||
|
resolution: {integrity: sha512-nnEf37C9ue7OBRnF2zmV/OCBmV5Y7T/K4mCHa+nxgiXcF/1w8sA0cgdFl+gHQ0mysqUJ+Bu5btAMeWgpLyjrgg==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
'@typespec/ts-http-runtime@0.3.2':
|
'@typespec/ts-http-runtime@0.3.2':
|
||||||
resolution: {integrity: sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==}
|
resolution: {integrity: sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
@@ -7699,6 +7741,37 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.0.9
|
'@types/node': 25.0.9
|
||||||
|
|
||||||
|
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20260120.1':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@typescript/native-preview-darwin-x64@7.0.0-dev.20260120.1':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@typescript/native-preview-linux-arm64@7.0.0-dev.20260120.1':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@typescript/native-preview-linux-arm@7.0.0-dev.20260120.1':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@typescript/native-preview-linux-x64@7.0.0-dev.20260120.1':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@typescript/native-preview-win32-arm64@7.0.0-dev.20260120.1':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@typescript/native-preview-win32-x64@7.0.0-dev.20260120.1':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@typescript/native-preview@7.0.0-dev.20260120.1':
|
||||||
|
optionalDependencies:
|
||||||
|
'@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260120.1
|
||||||
|
'@typescript/native-preview-darwin-x64': 7.0.0-dev.20260120.1
|
||||||
|
'@typescript/native-preview-linux-arm': 7.0.0-dev.20260120.1
|
||||||
|
'@typescript/native-preview-linux-arm64': 7.0.0-dev.20260120.1
|
||||||
|
'@typescript/native-preview-linux-x64': 7.0.0-dev.20260120.1
|
||||||
|
'@typescript/native-preview-win32-arm64': 7.0.0-dev.20260120.1
|
||||||
|
'@typescript/native-preview-win32-x64': 7.0.0-dev.20260120.1
|
||||||
|
|
||||||
'@typespec/ts-http-runtime@0.3.2':
|
'@typespec/ts-http-runtime@0.3.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
http-proxy-agent: 7.0.2
|
http-proxy-agent: 7.0.2
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import process from "node:process";
|
|||||||
const args = process.argv.slice(2);
|
const args = process.argv.slice(2);
|
||||||
const env = { ...process.env };
|
const env = { ...process.env };
|
||||||
const cwd = process.cwd();
|
const cwd = process.cwd();
|
||||||
|
const compiler = env.CLAWDBOT_TS_COMPILER === "tsc" ? "tsc" : "tsgo";
|
||||||
|
const projectArgs = ["--project", "tsconfig.json"];
|
||||||
|
|
||||||
const distRoot = path.join(cwd, "dist");
|
const distRoot = path.join(cwd, "dist");
|
||||||
const distEntry = path.join(distRoot, "entry.js");
|
const distEntry = path.join(distRoot, "entry.js");
|
||||||
@@ -113,7 +115,7 @@ if (!shouldBuild()) {
|
|||||||
runNode();
|
runNode();
|
||||||
} else {
|
} else {
|
||||||
logRunner("Building TypeScript (dist is stale).");
|
logRunner("Building TypeScript (dist is stale).");
|
||||||
const build = spawn("pnpm", ["exec", "tsc", "-p", "tsconfig.json"], {
|
const build = spawn("pnpm", ["exec", compiler, ...projectArgs], {
|
||||||
cwd,
|
cwd,
|
||||||
env,
|
env,
|
||||||
stdio: "inherit",
|
stdio: "inherit",
|
||||||
|
|||||||
@@ -5,8 +5,10 @@ import process from "node:process";
|
|||||||
const args = process.argv.slice(2);
|
const args = process.argv.slice(2);
|
||||||
const env = { ...process.env };
|
const env = { ...process.env };
|
||||||
const cwd = process.cwd();
|
const cwd = process.cwd();
|
||||||
|
const compiler = env.CLAWDBOT_TS_COMPILER === "tsc" ? "tsc" : "tsgo";
|
||||||
|
const projectArgs = ["--project", "tsconfig.json"];
|
||||||
|
|
||||||
const initialBuild = spawnSync("pnpm", ["exec", "tsc", "-p", "tsconfig.json"], {
|
const initialBuild = spawnSync("pnpm", ["exec", compiler, ...projectArgs], {
|
||||||
cwd,
|
cwd,
|
||||||
env,
|
env,
|
||||||
stdio: "inherit",
|
stdio: "inherit",
|
||||||
@@ -16,7 +18,12 @@ if (initialBuild.status !== 0) {
|
|||||||
process.exit(initialBuild.status ?? 1);
|
process.exit(initialBuild.status ?? 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
const tsc = spawn("pnpm", ["exec", "tsc", "--watch", "--preserveWatchOutput"], {
|
const watchArgs =
|
||||||
|
compiler === "tsc"
|
||||||
|
? [...projectArgs, "--watch", "--preserveWatchOutput"]
|
||||||
|
: [...projectArgs, "--watch"];
|
||||||
|
|
||||||
|
const compilerProcess = spawn("pnpm", ["exec", compiler, ...watchArgs], {
|
||||||
cwd,
|
cwd,
|
||||||
env,
|
env,
|
||||||
stdio: "inherit",
|
stdio: "inherit",
|
||||||
@@ -34,14 +41,14 @@ function cleanup(code = 0) {
|
|||||||
if (exiting) return;
|
if (exiting) return;
|
||||||
exiting = true;
|
exiting = true;
|
||||||
nodeProcess.kill("SIGTERM");
|
nodeProcess.kill("SIGTERM");
|
||||||
tsc.kill("SIGTERM");
|
compilerProcess.kill("SIGTERM");
|
||||||
process.exit(code);
|
process.exit(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
process.on("SIGINT", () => cleanup(130));
|
process.on("SIGINT", () => cleanup(130));
|
||||||
process.on("SIGTERM", () => cleanup(143));
|
process.on("SIGTERM", () => cleanup(143));
|
||||||
|
|
||||||
tsc.on("exit", (code) => {
|
compilerProcess.on("exit", (code) => {
|
||||||
if (exiting) return;
|
if (exiting) return;
|
||||||
cleanup(code ?? 1);
|
cleanup(code ?? 1);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user