chore: update dependencies and oxc tooling

This commit is contained in:
Peter Steinberger
2026-04-10 19:24:20 +01:00
parent 2fc3223ed4
commit 59925c1a74
22 changed files with 397 additions and 276 deletions

View File

@@ -1,9 +1,9 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"experimentalSortImports": {
"sortImports": {
"newlinesBetween": false,
},
"experimentalSortPackageJson": {
"sortPackageJson": {
"sortScripts": true,
},
"tabWidth": 2,

View File

@@ -5,7 +5,7 @@
"description": "OpenClaw Amazon Bedrock provider plugin",
"type": "module",
"dependencies": {
"@aws-sdk/client-bedrock": "3.1026.0"
"@aws-sdk/client-bedrock": "3.1028.0"
},
"devDependencies": {
"@openclaw/plugin-sdk": "workspace:*"

View File

@@ -174,12 +174,15 @@ describe("browser remote profile tab ops via Playwright", () => {
await expect(remote.listTabs()).rejects.toMatchObject({
name: "BrowserCdpEndpointBlockedError",
status: 400,
});
await expect(remote.focusTab("T1")).rejects.toMatchObject({
name: "BrowserCdpEndpointBlockedError",
status: 400,
});
await expect(remote.closeTab("T1")).rejects.toMatchObject({
name: "BrowserCdpEndpointBlockedError",
status: 400,
});
expect(listPagesViaPlaywright).not.toHaveBeenCalled();
expect(focusPageByTargetIdViaPlaywright).not.toHaveBeenCalled();

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@
"build:viewer": "bun build src/viewer-client.ts --target browser --format esm --minify --outfile assets/viewer-runtime.js"
},
"dependencies": {
"@pierre/diffs": "1.1.12",
"@pierre/diffs": "1.1.13",
"@pierre/theme": "0.0.29",
"@sinclair/typebox": "0.34.49",
"playwright-core": "1.59.1"

View File

@@ -1,11 +1,18 @@
import { resolveLanguage } from "@pierre/diffs";
import type { FileContents, FileDiffMetadata, SupportedLanguages } from "@pierre/diffs";
import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
import type { DiffViewerPayload } from "./types.js";
const PASSTHROUGH_LANGUAGE_HINTS = new Set<SupportedLanguages>(["ansi", "text"]);
type DiffPayloadFile = FileContents | FileDiffMetadata;
function normalizeOptionalString(value: unknown): string | undefined {
if (typeof value !== "string") {
return undefined;
}
const trimmed = value.trim();
return trimmed ? trimmed : undefined;
}
export async function normalizeSupportedLanguageHint(
value?: string,
): Promise<SupportedLanguages | undefined> {

View File

@@ -1,9 +1,12 @@
import { isRecord } from "openclaw/plugin-sdk/text-runtime";
import { DIFF_INDICATORS, DIFF_LAYOUTS, DIFF_THEMES } from "./types.js";
import type { DiffViewerPayload } from "./types.js";
const OVERFLOW_VALUES = ["scroll", "wrap"] as const;
function isRecord(value: unknown): value is Record<string, unknown> {
return value !== null && typeof value === "object" && !Array.isArray(value);
}
export function parseViewerPayloadJson(raw: string): DiffViewerPayload {
let parsed: unknown;
try {

View File

@@ -5,7 +5,7 @@
"description": "OpenClaw Google plugin",
"type": "module",
"dependencies": {
"@google/genai": "^1.48.0"
"@google/genai": "^1.49.0"
},
"devDependencies": {
"@openclaw/plugin-sdk": "workspace:*"

View File

@@ -6,7 +6,7 @@
"dependencies": {
"@lancedb/lancedb": "^0.27.2",
"@sinclair/typebox": "0.34.49",
"openai": "^6.33.0"
"openai": "^6.34.0"
},
"devDependencies": {
"@openclaw/plugin-sdk": "workspace:*"

View File

@@ -4,9 +4,9 @@
"description": "OpenClaw Tlon/Urbit channel plugin",
"type": "module",
"dependencies": {
"@aws-sdk/client-s3": "3.1026.0",
"@aws-sdk/s3-request-presigner": "3.1026.0",
"@tloncorp/tlon-skill": "0.3.4",
"@aws-sdk/client-s3": "3.1028.0",
"@aws-sdk/s3-request-presigner": "3.1028.0",
"@tloncorp/tlon-skill": "0.3.5",
"@urbit/aura": "^3.0.0"
},
"devDependencies": {

View File

@@ -1320,13 +1320,13 @@
"dependencies": {
"@agentclientprotocol/sdk": "0.18.2",
"@anthropic-ai/vertex-sdk": "^0.15.0",
"@aws-sdk/client-bedrock": "3.1026.0",
"@aws-sdk/client-bedrock-runtime": "3.1026.0",
"@aws-sdk/client-bedrock": "3.1028.0",
"@aws-sdk/client-bedrock-runtime": "3.1028.0",
"@aws-sdk/credential-provider-node": "3.972.30",
"@aws/bedrock-token-generator": "^1.1.0",
"@buape/carbon": "0.15.0",
"@clack/prompts": "^1.2.0",
"@google/genai": "^1.48.0",
"@google/genai": "^1.49.0",
"@grammyjs/runner": "^2.0.3",
"@grammyjs/transformer-throttler": "^1.2.1",
"@homebridge/ciao": "^1.3.6",
@@ -1353,7 +1353,7 @@
"discord-api-types": "^0.38.45",
"dotenv": "^17.4.1",
"express": "^5.2.1",
"file-type": "22.0.0",
"file-type": "22.0.1",
"gaxios": "7.1.4",
"google-auth-library": "^10.6.2",
"grammy": "^1.42.0",
@@ -1371,7 +1371,7 @@
"mpg123-decoder": "^1.0.3",
"node-edge-tts": "^1.2.10",
"nostr-tools": "^2.23.3",
"openai": "^6.33.0",
"openai": "^6.34.0",
"opusscript": "^0.1.1",
"osc-progress": "^0.3.0",
"pdfjs-dist": "^5.6.205",
@@ -1395,12 +1395,12 @@
"@lit/context": "^1.1.6",
"@types/express": "^5.0.6",
"@types/markdown-it": "^14.1.2",
"@types/node": "^25.6.0",
"@types/node": "25.6.0",
"@types/qrcode-terminal": "^0.12.2",
"@types/ws": "^8.18.1",
"@typescript/native-preview": "7.0.0-dev.20260410.1",
"@vitest/coverage-v8": "^4.1.3",
"jscpd": "4.0.8",
"@vitest/coverage-v8": "^4.1.4",
"jscpd": "4.0.9",
"jsdom": "^29.0.2",
"lit": "^3.3.2",
"oxfmt": "0.44.0",
@@ -1411,7 +1411,7 @@
"tsdown": "0.21.7",
"tsx": "^4.21.0",
"typescript": "^6.0.2",
"vitest": "^4.1.3"
"vitest": "^4.1.4"
},
"peerDependencies": {
"@napi-rs/canvas": "^0.1.89",
@@ -1445,7 +1445,7 @@
"request": "npm:@cypress/request@3.0.10",
"request-promise": "npm:@cypress/request-promise@5.0.0",
"basic-ftp": "5.2.1",
"file-type": "22.0.0",
"file-type": "22.0.1",
"form-data": "2.5.4",
"minimatch": "10.2.4",
"path-to-regexp": "8.4.0",

406
pnpm-lock.yaml generated
View File

@@ -14,7 +14,7 @@ overrides:
request: npm:@cypress/request@3.0.10
request-promise: npm:@cypress/request-promise@5.0.0
basic-ftp: 5.2.1
file-type: 22.0.0
file-type: 22.0.1
form-data: 2.5.4
minimatch: 10.2.4
path-to-regexp: 8.4.0
@@ -38,11 +38,11 @@ importers:
specifier: ^0.15.0
version: 0.15.0(zod@4.3.6)
'@aws-sdk/client-bedrock':
specifier: 3.1026.0
version: 3.1026.0
specifier: 3.1028.0
version: 3.1028.0
'@aws-sdk/client-bedrock-runtime':
specifier: 3.1026.0
version: 3.1026.0
specifier: 3.1028.0
version: 3.1028.0
'@aws-sdk/credential-provider-node':
specifier: 3.972.30
version: 3.972.30
@@ -56,8 +56,8 @@ importers:
specifier: ^1.2.0
version: 1.2.0
'@google/genai':
specifier: ^1.48.0
version: 1.48.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
specifier: ^1.49.0
version: 1.49.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
'@grammyjs/runner':
specifier: ^2.0.3
version: 2.0.3(grammy@1.42.0)
@@ -140,8 +140,8 @@ importers:
specifier: ^5.2.1
version: 5.2.1
file-type:
specifier: 22.0.0
version: 22.0.0
specifier: 22.0.1
version: 22.0.1
gaxios:
specifier: 7.1.4
version: 7.1.4
@@ -197,8 +197,8 @@ importers:
specifier: ^2.23.3
version: 2.23.3(typescript@6.0.2)
openai:
specifier: ^6.33.0
version: 6.33.0(ws@8.20.0)(zod@4.3.6)
specifier: ^6.34.0
version: 6.34.0(ws@8.20.0)(zod@4.3.6)
opusscript:
specifier: ^0.1.1
version: 0.1.1
@@ -264,7 +264,7 @@ importers:
specifier: ^14.1.2
version: 14.1.2
'@types/node':
specifier: ^25.6.0
specifier: 25.6.0
version: 25.6.0
'@types/qrcode-terminal':
specifier: ^0.12.2
@@ -276,11 +276,11 @@ importers:
specifier: 7.0.0-dev.20260410.1
version: 7.0.0-dev.20260410.1
'@vitest/coverage-v8':
specifier: ^4.1.3
version: 4.1.3(@vitest/browser@4.1.3)(vitest@4.1.3)
specifier: ^4.1.4
version: 4.1.4(@vitest/browser@4.1.4)(vitest@4.1.4)
jscpd:
specifier: 4.0.8
version: 4.0.8
specifier: 4.0.9
version: 4.0.9
jsdom:
specifier: ^29.0.2
version: 29.0.2(@noble/hashes@2.0.1)
@@ -312,8 +312,8 @@ importers:
specifier: ^6.0.2
version: 6.0.2
vitest:
specifier: ^4.1.3
version: 4.1.3(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.3)(@vitest/coverage-v8@4.1.3)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
specifier: ^4.1.4
version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.4)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
optionalDependencies:
'@discordjs/opus':
specifier: ^0.10.0
@@ -344,8 +344,8 @@ importers:
extensions/amazon-bedrock:
dependencies:
'@aws-sdk/client-bedrock':
specifier: 3.1026.0
version: 3.1026.0
specifier: 3.1028.0
version: 3.1028.0
devDependencies:
'@openclaw/plugin-sdk':
specifier: workspace:*
@@ -485,8 +485,8 @@ importers:
extensions/diffs:
dependencies:
'@pierre/diffs':
specifier: 1.1.12
version: 1.1.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
specifier: 1.1.13
version: 1.1.13(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@pierre/theme':
specifier: 0.0.29
version: 0.0.29
@@ -594,8 +594,8 @@ importers:
extensions/google:
dependencies:
'@google/genai':
specifier: ^1.48.0
version: 1.48.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
specifier: ^1.49.0
version: 1.49.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
devDependencies:
'@openclaw/plugin-sdk':
specifier: workspace:*
@@ -765,8 +765,8 @@ importers:
specifier: 0.34.49
version: 0.34.49
openai:
specifier: ^6.33.0
version: 6.33.0(ws@8.20.0)(zod@4.3.6)
specifier: ^6.34.0
version: 6.34.0(ws@8.20.0)(zod@4.3.6)
devDependencies:
'@openclaw/plugin-sdk':
specifier: workspace:*
@@ -1068,14 +1068,14 @@ importers:
extensions/tlon:
dependencies:
'@aws-sdk/client-s3':
specifier: 3.1026.0
version: 3.1026.0
specifier: 3.1028.0
version: 3.1028.0
'@aws-sdk/s3-request-presigner':
specifier: 3.1026.0
version: 3.1026.0
specifier: 3.1028.0
version: 3.1028.0
'@tloncorp/tlon-skill':
specifier: 0.3.4
version: 0.3.4
specifier: 0.3.5
version: 0.3.5
'@urbit/aura':
specifier: ^3.0.0
version: 3.0.0
@@ -1258,8 +1258,8 @@ importers:
ui:
dependencies:
'@create-markdown/preview':
specifier: ^2.0.2
version: 2.0.2(shiki@3.23.0)
specifier: ^2.0.3
version: 2.0.3(shiki@3.23.0)
'@noble/ed25519':
specifier: 3.0.1
version: 3.0.1
@@ -1274,8 +1274,8 @@ importers:
version: 18.0.0
devDependencies:
'@vitest/browser-playwright':
specifier: 4.1.3
version: 4.1.3(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.3)
specifier: 4.1.4
version: 4.1.4(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.4)
jsdom:
specifier: ^29.0.2
version: 29.0.2(@noble/hashes@2.0.1)
@@ -1286,8 +1286,8 @@ importers:
specifier: 8.0.8
version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)
vitest:
specifier: 4.1.3
version: 4.1.3(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.3)(@vitest/coverage-v8@4.1.3)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
specifier: 4.1.4
version: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.4)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
packages:
@@ -1347,20 +1347,20 @@ packages:
'@aws-crypto/util@5.2.0':
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
'@aws-sdk/client-bedrock-runtime@3.1026.0':
resolution: {integrity: sha512-emaNVysHfMotugEkXuEnt/O5nsYtcTuu+18eFzs/zKsSVfWy1En2G2x0He8bVHUNWwiTMku88zr7VdR8p742bg==}
'@aws-sdk/client-bedrock-runtime@3.1028.0':
resolution: {integrity: sha512-FFdtkxWFmKX1Ka/vjDRKpYsm0/HTlab5qpHl8LAXRmJjhSSiLGiCnJYsYFN+zp3NucL02kM1DlpFU8Xnm7d8Ng==}
engines: {node: '>=20.0.0'}
'@aws-sdk/client-bedrock@3.1026.0':
resolution: {integrity: sha512-vdir7Xr1d1rnHnpBcZjlm0NbWzTuCygU/JZIbvlL3u4nLiycMPcQHBhkq9xLRHWxE84SeHt7S+/nm+Fis0Vbeg==}
'@aws-sdk/client-bedrock@3.1028.0':
resolution: {integrity: sha512-YEUikjoImgUjv2UEpnD/WP0JiLdoLRnkajnSQR9LPCa8+BGy3+j879jimPlAuypOux1/CgqMA7Fwt13IpF2+UA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/client-cognito-identity@3.1026.0':
resolution: {integrity: sha512-qrRoZ+ZD3xeAtODDxON0iPqf0jCwM4EtZKxNrvefWIsj9AFgbC70J7e3IQcw1HDwSZYMdMPRb9JDhfxG1+V77Q==}
engines: {node: '>=20.0.0'}
'@aws-sdk/client-s3@3.1026.0':
resolution: {integrity: sha512-tMP+s641FLSXdJazvYvuf38F7suWWv+wagTvShykPTffuFpBj5J9f7Rw0eKsauBcsjPSntiwBz9Gm0Tlh+cKfQ==}
'@aws-sdk/client-s3@3.1028.0':
resolution: {integrity: sha512-KL8PREFJxyWXUjMQR6Krq/OjZ5qbcV1QFjtA7Q7oMW5XaFO9YoSBtBxQeeXO4um6vYSmRVYVDTvEKZDcNbyeXw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/core@3.973.27':
@@ -1471,8 +1471,8 @@ packages:
resolution: {integrity: sha512-6Q8B1dcx6BBqUTY1Mc/eROKA0FImEEY5VPSd6AGPEUf0ErjExz4snVqa9kNJSoVDV1rKaNf3qrWojgcKW+SdDg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/s3-request-presigner@3.1026.0':
resolution: {integrity: sha512-PBVt/zb4YsJMcyB/HbGmID4RP00dTkdQGkNQiw1i6oXQ/U8hnPEI8+IvTKR4+5YEQ8Cq4QmtIV0mzv070L+oOg==}
'@aws-sdk/s3-request-presigner@3.1028.0':
resolution: {integrity: sha512-T46EyIIHUaF/I2zhjtSUO4/87QdhqobClCscJawrxe2h/8nZJoO3DQDVZ4tMDl5UV/B5SPz6+xwki8jGylTF4Q==}
engines: {node: '>=20.0.0'}
'@aws-sdk/signature-v4-multi-region@3.996.16':
@@ -1483,6 +1483,10 @@ packages:
resolution: {integrity: sha512-Ieq/HiRrbEtrYP387Nes0XlR7H1pJiJOZKv+QyQzMYpvTiDs0VKy2ZB3E2Zf+aFovWmeE7lRE4lXyF7dYM6GgA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/token-providers@3.1028.0':
resolution: {integrity: sha512-2vDFrEhJDlUHyvDxqDyOk97cejMM8GJDyQbFfOCEWclGwhTjlj1mdyj36xsxh7DYyuquhjqfbvhpl6ZzsVol0w==}
engines: {node: '>=20.0.0'}
'@aws-sdk/types@3.973.7':
resolution: {integrity: sha512-reXRwoJ6CfChoqAsBszUYajAF8Z2LRE+CRcKocvFSMpIiLOtYU3aJ9trmn6VVPAzbbY5LXF+FfmUslbXk1SYFg==}
engines: {node: '>=20.0.0'}
@@ -1622,18 +1626,15 @@ packages:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
'@create-markdown/preview@2.0.2':
resolution: {integrity: sha512-ty1mp7qXVI0Bap8M0jiDiJsAqZkP3oaYNp0JX0wiY4K+KfWgK4IqeB8R2W+9vLpRxzxhX6Rggf5Qj2Sv5p75Eg==}
'@create-markdown/preview@2.0.3':
resolution: {integrity: sha512-Vrp8DyuiouryZ3E4NQ7tBgoYQdoekd0+DzN64mZ48QYCw3V+MCb/H2q10SW8KC8XPr931XOMDvKX4I83qpQh3g==}
engines: {node: '>=20.0.0'}
peerDependencies:
'@create-markdown/core': '>=2.0.2'
mermaid: '>=10.0.0'
'@create-markdown/core': '>=2.0.3'
shiki: '>=1.0.0'
peerDependenciesMeta:
'@create-markdown/core':
optional: true
mermaid:
optional: true
shiki:
optional: true
@@ -1895,8 +1896,8 @@ packages:
'@noble/hashes':
optional: true
'@google/genai@1.48.0':
resolution: {integrity: sha512-plonYK4ML2PrxsRD9SeqmFt76eREWkQdPCglOA6aYDzL1AAbE+7PUnT54SvpWGfws13L0AZEqGSpL7+1IPnTxQ==}
'@google/genai@1.49.0':
resolution: {integrity: sha512-hO69Zl0H3x+L0KL4stl1pLYgnqnwHoLqtKy6MRlNnW8TAxjqMdOUVafomKd4z1BePkzoxJWbYILny9a2Zk43VQ==}
engines: {node: '>=20.0.0'}
peerDependencies:
'@modelcontextprotocol/sdk': ^1.25.2
@@ -2233,20 +2234,20 @@ packages:
'@js-sdsl/ordered-map@4.4.2':
resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==}
'@jscpd/badge-reporter@4.0.4':
resolution: {integrity: sha512-I9b4MmLXPM2vo0SxSUWnNGKcA4PjQlD3GzXvFK60z43cN/EIdLbOq3FVwCL+dg2obUqGXKIzAm7EsDFTg0D+mQ==}
'@jscpd/badge-reporter@4.0.5':
resolution: {integrity: sha512-SLVhP00R9lkQ//Ivaanfm7k0L9sewpBven670kk1uGec2SWUOa7MVQcuad/TV59KEZ73UIC1lXvi6O9hAnbpUw==}
'@jscpd/core@4.0.4':
resolution: {integrity: sha512-QGMT3iXEX1fI6lgjPH+x8eyJwhwr2KkpSF5uBpjC0Z5Xloj0yFTFLtwJT+RhxP/Ob4WYrtx2jvpKB269oIwgMQ==}
'@jscpd/core@4.0.5':
resolution: {integrity: sha512-Udvym21nWzxjYRVXwwpYNBqZ6b50QV2zHN3fFNzOPPg4cfQVYOZerILB7xNDUsXHC1PCr/N52Tq3q7AElvjWWA==}
'@jscpd/finder@4.0.4':
resolution: {integrity: sha512-qVUWY7Nzuvfd5OIk+n7/5CM98LmFroLqblRXAI2gDABwZrc7qS+WH2SNr0qoUq0f4OqwM+piiwKvwL/VDNn/Cg==}
'@jscpd/finder@4.0.5':
resolution: {integrity: sha512-/2VkRoVrrfya+51sitZo5I9MdwsRaPKB8X3L3khAYoHFXk4L/mUuG81RmGazDHjUIGg22ItlkQtwzorNZ2+aPw==}
'@jscpd/html-reporter@4.0.4':
resolution: {integrity: sha512-YiepyeYkeH74Kx59PJRdUdonznct0wHPFkf6FLQN+mCBoy6leAWCcOfHtcexnp+UsBFDlItG5nRdKrDSxSH+Kg==}
'@jscpd/html-reporter@4.0.5':
resolution: {integrity: sha512-drK2J8KyPIW9wvaElSIobZFp4dBO9GA++JW4gx3oihvLdDSp8qSo/CNqH47Dw0XkjQTxND3j/+Wz5JWvYRBgFQ==}
'@jscpd/tokenizer@4.0.4':
resolution: {integrity: sha512-xxYYY/qaLah/FlwogEbGIxx9CjDO+G9E6qawcy26WwrflzJb6wsnhjwdneN6Wb0RNCDsqvzY+bzG453jsin4UQ==}
'@jscpd/tokenizer@4.0.5':
resolution: {integrity: sha512-WzRujQtN5WedxZVDKuoanxmKAFrxcLrHpcA6kaM4z8AhGtWXZ325yseqgL5TZ8OK7Auwu7kQLlqhfk05fGYG7A==}
'@keyv/bigmap@1.3.1':
resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==}
@@ -3223,8 +3224,8 @@ packages:
cpu: [x64]
os: [win32]
'@pierre/diffs@1.1.12':
resolution: {integrity: sha512-InssHHM7f0nkazIRkuaiNCy6GkBLfwJlqc7LtTkMD/KSqsuc6bnL2V9sIQoG5PZu9jwinQiXUb/gT7itFa6U9A==}
'@pierre/diffs@1.1.13':
resolution: {integrity: sha512-lnX9Fy5eC+07b8g+D8krC3txOY6LRN5VNR1qr9bph9XEyLxbwwfGN7SFRu4HGozpkDdA76JARgxgWHN+uAihmg==}
peerDependencies:
react: ^18.3.1 || ^19.0.0
react-dom: ^18.3.1 || ^19.0.0
@@ -3917,32 +3918,32 @@ packages:
resolution: {integrity: sha512-5Kc5CM2Ysn3vTTArBs2vESUt0AQiWZA86yc1TI3B+lxXmtEq133C1nxXNOgnzhrivdPZIh3zLj5gDnZjoLL5GA==}
engines: {node: '>=12.17.0'}
'@tloncorp/tlon-skill-darwin-arm64@0.3.4':
resolution: {integrity: sha512-K/QQZKpJ0Qqko/7F6sJleh+xspVntOMCXLCZqcq1OFwHXGBG/v82fl7WETvVwknCiShb0pGutkWtRfbXqZmbPw==}
'@tloncorp/tlon-skill-darwin-arm64@0.3.5':
resolution: {integrity: sha512-GZQyV0KswArmGU/XLbDTPEXKvs7w3iLXMzxSlh19LXUbQVDViJs35gSPh/ZTmDkBXGGf6hPrBLXRKvc20NuWNg==}
cpu: [arm64]
os: [darwin]
hasBin: true
'@tloncorp/tlon-skill-darwin-x64@0.3.4':
resolution: {integrity: sha512-HPkHfYbxFwXIQL5mkHhHZ1y5yVFOGPM8TcD8xGgwyly5m+mFwSdBQqg7UnqlLGludUIP4ZfTrKutLLAS1i3f8A==}
'@tloncorp/tlon-skill-darwin-x64@0.3.5':
resolution: {integrity: sha512-9+2kcX16TEXCwIyl9yp7uCo1ehF3ErlmRf1mbG7X7B1RH0sZYdIsOGtaTfwTunkeJ7MD4ujdfQR9+8QxYUO0AQ==}
cpu: [x64]
os: [darwin]
hasBin: true
'@tloncorp/tlon-skill-linux-arm64@0.3.4':
resolution: {integrity: sha512-lemn5dSXIe8nD2FIDz6sKalbrR5B7sbmXjJ3hBZsFm/URxsooi57y3vstlrb9Y7h7+fTh2pnaJqIW6incGodmQ==}
'@tloncorp/tlon-skill-linux-arm64@0.3.5':
resolution: {integrity: sha512-gKsiFgzw370LqKTZQqU30aQHKz6UwZdBwUXT2rvvjzLswFlXxrNdhIUJ3+6Qc0ufKFdqLC5rTYfb/jDV9IZsHQ==}
cpu: [arm64]
os: [linux]
hasBin: true
'@tloncorp/tlon-skill-linux-x64@0.3.4':
resolution: {integrity: sha512-WEtsieek9vwHJF8m1mdn8+QzcjHU0E/SPp9uj+YWzAbjqY8xaf3jD6sOPK6XMBCcJ2spwXJnmMzgW+YJ2b5njw==}
'@tloncorp/tlon-skill-linux-x64@0.3.5':
resolution: {integrity: sha512-bz6KV/qqdjCxIfxKBoltmk5ufjb0x8TCvfBJqyzcZBBIOwHN+/KvJYiBttIyrYxUoPcGTMl8/z29Q/O4OeaoSA==}
cpu: [x64]
os: [linux]
hasBin: true
'@tloncorp/tlon-skill@0.3.4':
resolution: {integrity: sha512-7TFRyUZG7CTHFqO9NIJwKWIolxchu4nRIjoVdIv1EAKRVSapPx/pEYcs055tqkPSuTjbNUl8MZbIjsQ+Fjo8pw==}
'@tloncorp/tlon-skill@0.3.5':
resolution: {integrity: sha512-H/k+gEzdCdrGEAjUCRMtXJ5xE5USZm3hBv4OAYtefHuzqizeLphITMWX2Jp49Ro+6zp5whsM0xJfVsNxm2XMCg==}
hasBin: true
'@tokenizer/inflate@0.4.1':
@@ -4137,31 +4138,31 @@ packages:
resolution: {integrity: sha512-N8/FHc/lmlMDCumMuTXyRHCxlov5KZY6unmJ9QR2GOw+OpROZMBsXYGwE+ZMtvN21ql9+Xb8KhGNBj08IrG3Wg==}
engines: {node: '>=16', npm: '>=8'}
'@vitest/browser-playwright@4.1.3':
resolution: {integrity: sha512-D3Q+YozvSpiFaLPgd6/OMbyqEIZeucSe6AHJJ7VnNJKQhIyBE60TlBZlxzwM8bvjzQE9ZnYWQCPeCw5pnhbiNg==}
'@vitest/browser-playwright@4.1.4':
resolution: {integrity: sha512-q3PchVhZINX23Pv+RERgAtDlp6wzVkID/smOPnZ5YGWpeWUe3jMNYppeVh15j4il3G7JIJty1d1Kicpm0HSMig==}
peerDependencies:
playwright: '*'
vitest: 4.1.3
vitest: 4.1.4
'@vitest/browser@4.1.3':
resolution: {integrity: sha512-CS9KjO2vijuBlbwz0JIgC0YuoI1BuqWI5ziD3Nll6jkpNYtWdjPMVgGynQ9vZovjsECeUqEeNjWrypP414d0CQ==}
'@vitest/browser@4.1.4':
resolution: {integrity: sha512-TrNaY/yVOwxtrxNsDUC/wQ56xSwplpytTeRAqF/197xV/ZddxxulBsxR6TrhVMyniJmp9in8d5u0AcDaNRY30w==}
peerDependencies:
vitest: 4.1.3
vitest: 4.1.4
'@vitest/coverage-v8@4.1.3':
resolution: {integrity: sha512-/MBdrkA8t6hbdCWFKs09dPik774xvs4Z6L4bycdCxYNLHM8oZuRyosumQMG19LUlBsB6GeVpL1q4kFFazvyKGA==}
'@vitest/coverage-v8@4.1.4':
resolution: {integrity: sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==}
peerDependencies:
'@vitest/browser': 4.1.3
vitest: 4.1.3
'@vitest/browser': 4.1.4
vitest: 4.1.4
peerDependenciesMeta:
'@vitest/browser':
optional: true
'@vitest/expect@4.1.3':
resolution: {integrity: sha512-CW8Q9KMtXDGHj0vCsqui0M5KqRsu0zm0GNDW7Gd3U7nZ2RFpPKSCpeCXoT+/+5zr1TNlsoQRDEz+LzZUyq6gnQ==}
'@vitest/expect@4.1.4':
resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==}
'@vitest/mocker@4.1.3':
resolution: {integrity: sha512-XN3TrycitDQSzGRnec/YWgoofkYRhouyVQj4YNsJ5r/STCUFqMrP4+oxEv3e7ZbLi4og5kIHrZwekDJgw6hcjw==}
'@vitest/mocker@4.1.4':
resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==}
peerDependencies:
msw: ^2.4.9
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -4171,20 +4172,20 @@ packages:
vite:
optional: true
'@vitest/pretty-format@4.1.3':
resolution: {integrity: sha512-hYqqwuMbpkkBodpRh4k4cQSOELxXky1NfMmQvOfKvV8zQHz8x8Dla+2wzElkMkBvSAJX5TRGHJAQvK0TcOafwg==}
'@vitest/pretty-format@4.1.4':
resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==}
'@vitest/runner@4.1.3':
resolution: {integrity: sha512-VwgOz5MmT0KhlUj40h02LWDpUBVpflZ/b7xZFA25F29AJzIrE+SMuwzFf0b7t4EXdwRNX61C3B6auIXQTR3ttA==}
'@vitest/runner@4.1.4':
resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==}
'@vitest/snapshot@4.1.3':
resolution: {integrity: sha512-9l+k/J9KG5wPJDX9BcFFzhhwNjwkRb8RsnYhaT1vPY7OufxmQFc9sZzScRCPTiETzl37mrIWVY9zxzmdVeJwDQ==}
'@vitest/snapshot@4.1.4':
resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==}
'@vitest/spy@4.1.3':
resolution: {integrity: sha512-ujj5Uwxagg4XUIfAUyRQxAg631BP6e9joRiN99mr48Bg9fRs+5mdUElhOoZ6rP5mBr8Bs3lmrREnkrQWkrsTCw==}
'@vitest/spy@4.1.4':
resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==}
'@vitest/utils@4.1.3':
resolution: {integrity: sha512-Pc/Oexse/khOWsGB+w3q4yzA4te7W4gpZZAvk+fr8qXfTURZUMj5i7kuxsNK5mP/dEB6ao3jfr0rs17fHhbHdw==}
'@vitest/utils@4.1.4':
resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==}
'@wasm-audio-decoders/common@9.0.7':
resolution: {integrity: sha512-WRaUuWSKV7pkttBygml/a6dIEpatq2nnZGFIoPTc5yPLkxL6Wk4YaslPM98OPQvWacvNZ+Py9xROGDtrFBDzag==}
@@ -5029,8 +5030,8 @@ packages:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
engines: {node: ^12.20 || >= 14.13}
file-type@22.0.0:
resolution: {integrity: sha512-cmBmnYo8Zymabm2+qAP7jTFbKF10bQpYmxoGfuZbRFRcq00BRddJdGNH/P7GA1EMpJy5yQbqa9B7yROb3z8Ziw==}
file-type@22.0.1:
resolution: {integrity: sha512-ww5Mhre0EE+jmBvOXTmXAbEMuZE7uX4a3+oRCQFNj8w++g3ev913N6tXQz0XTXbueQ5TWQfm6BdaViEHHn8bhA==}
engines: {node: '>=22'}
filename-reserved-regex@3.0.0:
@@ -5157,10 +5158,6 @@ packages:
gifwrap@0.10.1:
resolution: {integrity: sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==}
gitignore-to-glob@0.3.0:
resolution: {integrity: sha512-mk74BdnK7lIwDHnotHddx1wsjMOFIThpLY3cPNniJ/2fA/tlLzHnFxIdR+4sLOu5KGgQJdij4kjJ2RoUNnCNMA==}
engines: {node: '>=4.4 <5 || >=6.9'}
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -5460,11 +5457,11 @@ packages:
js-tokens@10.0.0:
resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==}
jscpd-sarif-reporter@4.0.6:
resolution: {integrity: sha512-b9Sm3IPZ3+m8Lwa4gZa+4/LhDhlc/ZLEsLXKSOy1DANQ6kx0ueqZT+fUHWEdQ6m0o3+RIVIa7DmvLSojQD05ng==}
jscpd-sarif-reporter@4.0.7:
resolution: {integrity: sha512-Q/VlfTI/Nbjc8dZ/2pDVIf1aRi2bM2CTYujcAoeYr7brRnS4o5ZeW86W8q7MM7cQu40gezlNckl+E9wKFSMFiA==}
jscpd@4.0.8:
resolution: {integrity: sha512-d2VNT/2Hv4dxT2/59He8Lyda4DYOxPRyRG9zBaOpTZAqJCVf2xLrBlZkT8Va6Lo9u3X2qz8Bpq4HrDi4JsrQhA==}
jscpd@4.0.9:
resolution: {integrity: sha512-fp6Sh42W3mIPoQgZmgYmKDLQzEDnnX2vaGlTN4haILkB2vsi+ewcCHEtWR/2CR/QbsBvAvsNo8U5Sa+p9aHiGw==}
hasBin: true
jsdom@29.0.2:
@@ -6042,8 +6039,8 @@ packages:
zod:
optional: true
openai@6.33.0:
resolution: {integrity: sha512-xAYN1W3YsDXJWA5F277135YfkEk6H7D3D6vWwRhJ3OEkzRgcyK8z/P5P9Gyi/wB4N8kK9kM5ZjprfvyHagKmpw==}
openai@6.34.0:
resolution: {integrity: sha512-yEr2jdGf4tVFYG6ohmr3pF6VJuveP0EA/sS8TBx+4Eq5NT10alu5zg2dmxMXMgqpihRDQlFGpRt2XwsGj+Fyxw==}
hasBin: true
peerDependencies:
ws: ^8.18.0
@@ -7157,20 +7154,20 @@ packages:
yaml:
optional: true
vitest@4.1.3:
resolution: {integrity: sha512-DBc4Tx0MPNsqb9isoyOq00lHftVx/KIU44QOm2q59npZyLUkENn8TMFsuzuO+4U2FUa9rgbbPt3udrP25GcjXw==}
vitest@4.1.4:
resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@opentelemetry/api': ^1.9.0
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
'@vitest/browser-playwright': 4.1.3
'@vitest/browser-preview': 4.1.3
'@vitest/browser-webdriverio': 4.1.3
'@vitest/coverage-istanbul': 4.1.3
'@vitest/coverage-v8': 4.1.3
'@vitest/ui': 4.1.3
'@vitest/browser-playwright': 4.1.4
'@vitest/browser-preview': 4.1.4
'@vitest/browser-webdriverio': 4.1.4
'@vitest/coverage-istanbul': 4.1.4
'@vitest/coverage-v8': 4.1.4
'@vitest/ui': 4.1.4
happy-dom: '*'
jsdom: '*'
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -7440,7 +7437,7 @@ snapshots:
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
'@aws-sdk/client-bedrock-runtime@3.1026.0':
'@aws-sdk/client-bedrock-runtime@3.1028.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
@@ -7454,7 +7451,7 @@ snapshots:
'@aws-sdk/middleware-user-agent': 3.972.29
'@aws-sdk/middleware-websocket': 3.972.15
'@aws-sdk/region-config-resolver': 3.972.11
'@aws-sdk/token-providers': 3.1026.0
'@aws-sdk/token-providers': 3.1028.0
'@aws-sdk/types': 3.973.7
'@aws-sdk/util-endpoints': 3.996.6
'@aws-sdk/util-user-agent-browser': 3.972.9
@@ -7492,7 +7489,7 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/client-bedrock@3.1026.0':
'@aws-sdk/client-bedrock@3.1028.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
@@ -7503,7 +7500,7 @@ snapshots:
'@aws-sdk/middleware-recursion-detection': 3.972.10
'@aws-sdk/middleware-user-agent': 3.972.29
'@aws-sdk/region-config-resolver': 3.972.11
'@aws-sdk/token-providers': 3.1026.0
'@aws-sdk/token-providers': 3.1028.0
'@aws-sdk/types': 3.973.7
'@aws-sdk/util-endpoints': 3.996.6
'@aws-sdk/util-user-agent-browser': 3.972.9
@@ -7581,7 +7578,7 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/client-s3@3.1026.0':
'@aws-sdk/client-s3@3.1028.0':
dependencies:
'@aws-crypto/sha1-browser': 5.2.0
'@aws-crypto/sha256-browser': 5.2.0
@@ -7976,7 +7973,7 @@ snapshots:
'@smithy/types': 4.14.0
tslib: 2.8.1
'@aws-sdk/s3-request-presigner@3.1026.0':
'@aws-sdk/s3-request-presigner@3.1028.0':
dependencies:
'@aws-sdk/signature-v4-multi-region': 3.996.16
'@aws-sdk/types': 3.973.7
@@ -8008,6 +8005,18 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/token-providers@3.1028.0':
dependencies:
'@aws-sdk/core': 3.973.27
'@aws-sdk/nested-clients': 3.996.19
'@aws-sdk/types': 3.973.7
'@smithy/property-provider': 4.2.13
'@smithy/shared-ini-file-loader': 4.4.8
'@smithy/types': 4.14.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/types@3.973.7':
dependencies:
'@smithy/types': 4.14.0
@@ -8192,7 +8201,7 @@ snapshots:
'@colors/colors@1.5.0':
optional: true
'@create-markdown/preview@2.0.2(shiki@3.23.0)':
'@create-markdown/preview@2.0.3(shiki@3.23.0)':
optionalDependencies:
shiki: 3.23.0
@@ -8412,7 +8421,7 @@ snapshots:
optionalDependencies:
'@noble/hashes': 2.0.1
'@google/genai@1.48.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))':
'@google/genai@1.49.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))':
dependencies:
google-auth-library: 10.6.2
p-retry: 4.6.2
@@ -8577,7 +8586,7 @@ snapshots:
'@jimp/utils': 1.6.1
await-to-js: 3.0.0
exif-parser: 0.1.12
file-type: 22.0.0
file-type: 22.0.1
mime: 3.0.0
transitivePeerDependencies:
- supports-color
@@ -8809,20 +8818,20 @@ snapshots:
'@js-sdsl/ordered-map@4.4.2': {}
'@jscpd/badge-reporter@4.0.4':
'@jscpd/badge-reporter@4.0.5':
dependencies:
badgen: 3.2.3
colors: 1.4.0
fs-extra: 11.3.4
'@jscpd/core@4.0.4':
'@jscpd/core@4.0.5':
dependencies:
eventemitter3: 5.0.4
'@jscpd/finder@4.0.4':
'@jscpd/finder@4.0.5':
dependencies:
'@jscpd/core': 4.0.4
'@jscpd/tokenizer': 4.0.4
'@jscpd/core': 4.0.5
'@jscpd/tokenizer': 4.0.5
blamer: 1.0.7
bytes: 3.1.2
cli-table3: 0.6.5
@@ -8832,15 +8841,15 @@ snapshots:
markdown-table: 2.0.0
pug: 3.0.4
'@jscpd/html-reporter@4.0.4':
'@jscpd/html-reporter@4.0.5':
dependencies:
colors: 1.4.0
fs-extra: 11.3.4
pug: 3.0.4
'@jscpd/tokenizer@4.0.4':
'@jscpd/tokenizer@4.0.5':
dependencies:
'@jscpd/core': 4.0.4
'@jscpd/core': 4.0.5
reprism: 0.0.11
spark-md5: 3.0.2
@@ -9018,8 +9027,8 @@ snapshots:
'@mariozechner/pi-ai@0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)':
dependencies:
'@anthropic-ai/sdk': 0.81.0(zod@4.3.6)
'@aws-sdk/client-bedrock-runtime': 3.1026.0
'@google/genai': 1.48.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
'@aws-sdk/client-bedrock-runtime': 3.1028.0
'@google/genai': 1.49.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
'@mistralai/mistralai': 1.14.1
'@sinclair/typebox': 0.34.49
ajv: 8.18.0
@@ -9051,7 +9060,7 @@ snapshots:
cli-highlight: 2.1.11
diff: 8.0.4
extract-zip: 2.0.1
file-type: 22.0.0
file-type: 22.0.1
glob: 13.0.6
hosted-git-info: 9.0.2
ignore: 7.0.5
@@ -9703,7 +9712,7 @@ snapshots:
'@oxlint/binding-win32-x64-msvc@1.59.0':
optional: true
'@pierre/diffs@1.1.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
'@pierre/diffs@1.1.13(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
dependencies:
'@pierre/theme': 0.0.28
'@shikijs/transformers': 3.23.0
@@ -10427,24 +10436,24 @@ snapshots:
'@tinyhttp/content-disposition@2.2.4': {}
'@tloncorp/tlon-skill-darwin-arm64@0.3.4':
'@tloncorp/tlon-skill-darwin-arm64@0.3.5':
optional: true
'@tloncorp/tlon-skill-darwin-x64@0.3.4':
'@tloncorp/tlon-skill-darwin-x64@0.3.5':
optional: true
'@tloncorp/tlon-skill-linux-arm64@0.3.4':
'@tloncorp/tlon-skill-linux-arm64@0.3.5':
optional: true
'@tloncorp/tlon-skill-linux-x64@0.3.4':
'@tloncorp/tlon-skill-linux-x64@0.3.5':
optional: true
'@tloncorp/tlon-skill@0.3.4':
'@tloncorp/tlon-skill@0.3.5':
optionalDependencies:
'@tloncorp/tlon-skill-darwin-arm64': 0.3.4
'@tloncorp/tlon-skill-darwin-x64': 0.3.4
'@tloncorp/tlon-skill-linux-arm64': 0.3.4
'@tloncorp/tlon-skill-linux-x64': 0.3.4
'@tloncorp/tlon-skill-darwin-arm64': 0.3.5
'@tloncorp/tlon-skill-darwin-x64': 0.3.5
'@tloncorp/tlon-skill-linux-arm64': 0.3.5
'@tloncorp/tlon-skill-linux-x64': 0.3.5
'@tokenizer/inflate@0.4.1':
dependencies:
@@ -10670,29 +10679,29 @@ snapshots:
'@urbit/aura@3.0.0': {}
'@vitest/browser-playwright@4.1.3(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.3)':
'@vitest/browser-playwright@4.1.4(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.4)':
dependencies:
'@vitest/browser': 4.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.3)
'@vitest/mocker': 4.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
'@vitest/browser': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.4)
'@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
playwright: 1.59.1
tinyrainbow: 3.1.0
vitest: 4.1.3(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.3)(@vitest/coverage-v8@4.1.3)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
vitest: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.4)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
transitivePeerDependencies:
- bufferutil
- msw
- utf-8-validate
- vite
'@vitest/browser@4.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.3)':
'@vitest/browser@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.4)':
dependencies:
'@blazediff/core': 1.9.1
'@vitest/mocker': 4.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
'@vitest/utils': 4.1.3
'@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
'@vitest/utils': 4.1.4
magic-string: 0.30.21
pngjs: 7.0.0
sirv: 3.0.2
tinyrainbow: 3.1.0
vitest: 4.1.3(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.3)(@vitest/coverage-v8@4.1.3)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
vitest: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.4)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
ws: 8.20.0
transitivePeerDependencies:
- bufferutil
@@ -10700,10 +10709,10 @@ snapshots:
- utf-8-validate
- vite
'@vitest/coverage-v8@4.1.3(@vitest/browser@4.1.3)(vitest@4.1.3)':
'@vitest/coverage-v8@4.1.4(@vitest/browser@4.1.4)(vitest@4.1.4)':
dependencies:
'@bcoe/v8-coverage': 1.0.2
'@vitest/utils': 4.1.3
'@vitest/utils': 4.1.4
ast-v8-to-istanbul: 1.0.0
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
@@ -10712,48 +10721,48 @@ snapshots:
obug: 2.1.1
std-env: 4.0.0
tinyrainbow: 3.1.0
vitest: 4.1.3(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.3)(@vitest/coverage-v8@4.1.3)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
vitest: 4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.4)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
optionalDependencies:
'@vitest/browser': 4.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.3)
'@vitest/browser': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.4)
'@vitest/expect@4.1.3':
'@vitest/expect@4.1.4':
dependencies:
'@standard-schema/spec': 1.1.0
'@types/chai': 5.2.3
'@vitest/spy': 4.1.3
'@vitest/utils': 4.1.3
'@vitest/spy': 4.1.4
'@vitest/utils': 4.1.4
chai: 6.2.2
tinyrainbow: 3.1.0
'@vitest/mocker@4.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))':
'@vitest/mocker@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))':
dependencies:
'@vitest/spy': 4.1.3
'@vitest/spy': 4.1.4
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)
'@vitest/pretty-format@4.1.3':
'@vitest/pretty-format@4.1.4':
dependencies:
tinyrainbow: 3.1.0
'@vitest/runner@4.1.3':
'@vitest/runner@4.1.4':
dependencies:
'@vitest/utils': 4.1.3
'@vitest/utils': 4.1.4
pathe: 2.0.3
'@vitest/snapshot@4.1.3':
'@vitest/snapshot@4.1.4':
dependencies:
'@vitest/pretty-format': 4.1.3
'@vitest/utils': 4.1.3
'@vitest/pretty-format': 4.1.4
'@vitest/utils': 4.1.4
magic-string: 0.30.21
pathe: 2.0.3
'@vitest/spy@4.1.3': {}
'@vitest/spy@4.1.4': {}
'@vitest/utils@4.1.3':
'@vitest/utils@4.1.4':
dependencies:
'@vitest/pretty-format': 4.1.3
'@vitest/pretty-format': 4.1.4
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
@@ -11611,7 +11620,7 @@ snapshots:
node-domexception: '@nolyfill/domexception@1.0.28'
web-streams-polyfill: 3.3.3
file-type@22.0.0:
file-type@22.0.1:
dependencies:
'@tokenizer/inflate': 0.4.1
strtok3: 10.3.5
@@ -11783,8 +11792,6 @@ snapshots:
image-q: 4.0.0
omggif: 1.0.10
gitignore-to-glob@0.3.0: {}
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -12157,24 +12164,23 @@ snapshots:
js-tokens@10.0.0: {}
jscpd-sarif-reporter@4.0.6:
jscpd-sarif-reporter@4.0.7:
dependencies:
colors: 1.4.0
fs-extra: 11.3.4
node-sarif-builder: 3.4.0
jscpd@4.0.8:
jscpd@4.0.9:
dependencies:
'@jscpd/badge-reporter': 4.0.4
'@jscpd/core': 4.0.4
'@jscpd/finder': 4.0.4
'@jscpd/html-reporter': 4.0.4
'@jscpd/tokenizer': 4.0.4
'@jscpd/badge-reporter': 4.0.5
'@jscpd/core': 4.0.5
'@jscpd/finder': 4.0.5
'@jscpd/html-reporter': 4.0.5
'@jscpd/tokenizer': 4.0.5
colors: 1.4.0
commander: 5.1.0
fs-extra: 11.3.4
gitignore-to-glob: 0.3.0
jscpd-sarif-reporter: 4.0.6
jscpd-sarif-reporter: 4.0.7
jsdom@29.0.2(@noble/hashes@2.0.1):
dependencies:
@@ -12599,7 +12605,7 @@ snapshots:
'@tokenizer/token': 0.3.0
content-type: 1.0.5
debug: 4.4.3
file-type: 22.0.0
file-type: 22.0.1
media-typer: 1.1.0
strtok3: 10.3.5
token-types: 6.1.2
@@ -12796,7 +12802,7 @@ snapshots:
ws: 8.20.0
zod: 4.3.6
openai@6.33.0(ws@8.20.0)(zod@4.3.6):
openai@6.34.0(ws@8.20.0)(zod@4.3.6):
optionalDependencies:
ws: 8.20.0
zod: 4.3.6
@@ -14057,15 +14063,15 @@ snapshots:
tsx: 4.21.0
yaml: 2.8.3
vitest@4.1.3(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.3)(@vitest/coverage-v8@4.1.3)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)):
vitest@4.1.4(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/browser-playwright@4.1.4)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)):
dependencies:
'@vitest/expect': 4.1.3
'@vitest/mocker': 4.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
'@vitest/pretty-format': 4.1.3
'@vitest/runner': 4.1.3
'@vitest/snapshot': 4.1.3
'@vitest/spy': 4.1.3
'@vitest/utils': 4.1.3
'@vitest/expect': 4.1.4
'@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))
'@vitest/pretty-format': 4.1.4
'@vitest/runner': 4.1.4
'@vitest/snapshot': 4.1.4
'@vitest/spy': 4.1.4
'@vitest/utils': 4.1.4
es-module-lexer: 2.0.0
expect-type: 1.3.0
magic-string: 0.30.21
@@ -14082,8 +14088,8 @@ snapshots:
optionalDependencies:
'@opentelemetry/api': 1.9.1
'@types/node': 25.6.0
'@vitest/browser-playwright': 4.1.3(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.3)
'@vitest/coverage-v8': 4.1.3(@vitest/browser@4.1.3)(vitest@4.1.3)
'@vitest/browser-playwright': 4.1.4(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.4)
'@vitest/coverage-v8': 4.1.4(@vitest/browser@4.1.4)(vitest@4.1.4)
jsdom: 29.0.2(@noble/hashes@2.0.1)
transitivePeerDependencies:
- msw

View File

@@ -162,6 +162,7 @@ async function runVitestSpecsParallel(specs, concurrency) {
console.error(`[test] starting ${spec.config}`);
const result = await runVitestSpec(spec);
if (result.signal) {
console.error(`[test] ${spec.config} exited by signal ${result.signal}`);
releaseLockOnce();
process.kill(process.pid, result.signal);
return;
@@ -237,8 +238,10 @@ async function main() {
let exitCode = 0;
for (const spec of runSpecs) {
console.error(`[test] starting ${spec.config}`);
const result = await runVitestSpec(spec);
if (result.signal) {
console.error(`[test] ${spec.config} exited by signal ${result.signal}`);
releaseLockOnce();
process.kill(process.pid, result.signal);
return;

9
scripts/tsconfig.json Normal file
View File

@@ -0,0 +1,9 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"noEmit": true,
"types": ["node"]
},
"include": ["**/*.ts"],
"exclude": ["pre-commit/**"]
}

View File

@@ -22,7 +22,12 @@ export function forwardSignalToVitestProcessGroup(params) {
params.kill(target, params.signal);
return true;
} catch (error) {
if (error && typeof error === "object" && "code" in error && error.code === "ESRCH") {
if (
error &&
typeof error === "object" &&
"code" in error &&
(error.code === "ESRCH" || error.code === "EPERM")
) {
return false;
}
throw error;

View File

@@ -322,7 +322,7 @@ export async function resolveDmAllowState(params: {
.map((value) => normalizeEntry(value))
.map((value) => value.trim())
.filter(Boolean);
const allowCount = Array.from(new Set([...normalizedCfg, ...normalizedStore])).length;
const allowCount = new Set([...normalizedCfg, ...normalizedStore]).size;
return {
configAllowFrom,
hasWildcard,

View File

@@ -22,6 +22,26 @@ describe("oxlint config", () => {
expect(tsconfig.exclude ?? []).not.toContain("extensions");
});
it("includes scripts in root type-aware lint coverage", () => {
const tsconfig = readJson<OxlintTsconfig>("tsconfig.oxlint.json");
expect(tsconfig.include).toContain("scripts/**/*");
});
it("has a discoverable scripts tsconfig for type-aware linting", () => {
const tsconfig = readJson<OxlintTsconfig>("scripts/tsconfig.json");
expect(tsconfig.include).toContain("**/*.ts");
expect(tsconfig.exclude ?? []).not.toContain("**/*.ts");
});
it("has a discoverable test tsconfig for type-aware linting", () => {
const tsconfig = readJson<OxlintTsconfig>("test/tsconfig.json");
expect(tsconfig.include).toContain("**/*.ts");
expect(tsconfig.exclude ?? []).not.toContain("**/*.ts");
});
it("does not ignore the bundled extensions tree", () => {
const config = readJson<OxlintConfig>(".oxlintrc.json");

View File

@@ -1,5 +1,7 @@
import path from "node:path";
import { describe, expect, it } from "vitest";
import {
applyParallelVitestCachePaths,
buildFullSuiteVitestRunPlans,
buildVitestRunPlans,
resolveChangedTargetArgs,
@@ -488,3 +490,43 @@ describe("scripts/test-projects full-suite sharding", () => {
]);
});
});
describe("scripts/test-projects parallel cache paths", () => {
it("assigns isolated Vitest fs-module cache paths per parallel shard", () => {
const specs = applyParallelVitestCachePaths(
[
{ config: "test/vitest/vitest.gateway.config.ts", env: {}, pnpmArgs: [] },
{ config: "test/vitest/vitest.extension-matrix.config.ts", env: {}, pnpmArgs: [] },
],
{ cwd: "/repo", env: {} },
);
expect(specs.map((spec) => spec.env)).toEqual([
{
OPENCLAW_VITEST_FS_MODULE_CACHE_PATH: path.join(
"/repo",
"node_modules",
".experimental-vitest-cache",
"0-test-vitest-vitest.gateway.config.ts",
),
},
{
OPENCLAW_VITEST_FS_MODULE_CACHE_PATH: path.join(
"/repo",
"node_modules",
".experimental-vitest-cache",
"1-test-vitest-vitest.extension-matrix.config.ts",
),
},
]);
});
it("keeps an explicit global cache path", () => {
const [spec] = applyParallelVitestCachePaths(
[{ config: "test/vitest/vitest.gateway.config.ts", env: {}, pnpmArgs: [] }],
{ cwd: "/repo", env: { OPENCLAW_VITEST_FS_MODULE_CACHE_PATH: "/tmp/cache" } },
);
expect(spec?.env.OPENCLAW_VITEST_FS_MODULE_CACHE_PATH).toBeUndefined();
});
});

View File

@@ -23,7 +23,7 @@ describe("vitest process group helpers", () => {
);
});
it("forwards signals to the computed target and ignores ESRCH", () => {
it("forwards signals to the computed target and ignores cleanup races", () => {
const kill = vi.fn();
expect(
forwardSignalToVitestProcessGroup({
@@ -48,6 +48,20 @@ describe("vitest process group helpers", () => {
kill,
}),
).toBe(false);
kill.mockImplementationOnce(() => {
const error = new Error("permission race") as NodeJS.ErrnoException;
error.code = "EPERM";
throw error;
});
expect(
forwardSignalToVitestProcessGroup({
child: { pid: 4200 },
signal: "SIGTERM",
platform: "darwin",
kill,
}),
).toBe(false);
});
it("installs and removes process cleanup listeners", () => {

9
test/tsconfig.json Normal file
View File

@@ -0,0 +1,9 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"noEmit": true,
"types": ["node", "vitest"]
},
"include": ["**/*.ts"],
"exclude": ["fixtures/**"]
}

View File

@@ -1,5 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*", "ui/**/*", "packages/**/*", "extensions/**/*", "test/**/*"],
"include": ["src/**/*", "ui/**/*", "packages/**/*", "extensions/**/*", "scripts/**/*"],
"exclude": ["node_modules", "dist", "dist-runtime"]
}

View File

@@ -9,17 +9,17 @@
"test": "vitest run --config vitest.config.ts"
},
"dependencies": {
"@create-markdown/preview": "^2.0.2",
"@create-markdown/preview": "^2.0.3",
"@noble/ed25519": "3.0.1",
"dompurify": "^3.3.3",
"lit": "^3.3.2",
"marked": "^18.0.0"
},
"devDependencies": {
"@vitest/browser-playwright": "4.1.3",
"@vitest/browser-playwright": "4.1.4",
"jsdom": "^29.0.2",
"playwright": "^1.59.1",
"vite": "8.0.8",
"vitest": "4.1.3"
"vitest": "4.1.4"
}
}