diff --git a/package-lock.json b/package-lock.json index c9595b484..2baa08a16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,6 @@ "fast-check": "^4.7.0", "file-type": "^21.1.1", "get-east-asian-width": "^1.3.0", - "glob": "^13.0.1", "hosted-git-info": "^9.0.2", "ignore": "^7.0.5", "jsonrepair": "^3.14.0", @@ -5433,6 +5432,16 @@ "react-dom": ">= 16.8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -9050,6 +9059,12 @@ "stream-shift": "^1.0.2" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -10529,42 +10544,6 @@ "node": ">=18" } }, - "node_modules/gcp-metadata/node_modules/gaxios": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", - "license": "Apache-2.0", - "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^7.0.1", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.9", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/gcp-metadata/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -10682,6 +10661,7 @@ "version": "13.0.6", "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "minimatch": "^10.2.2", @@ -10750,39 +10730,18 @@ } }, "node_modules/google-auth-library/node_modules/gaxios": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", + "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.9", - "uuid": "^9.0.1" + "node-fetch": "^3.3.2", + "rimraf": "^5.0.1" }, "engines": { - "node": ">=14" - } - }, - "node_modules/google-auth-library/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=18" } }, "node_modules/google-gax": { @@ -14322,6 +14281,178 @@ "node": ">=14" } }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/rimraf/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/rimraf/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/rimraf/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rimraf/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/roarr": { "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", @@ -14970,6 +15101,42 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string-width/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -15006,6 +15173,28 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", @@ -16045,6 +16234,45 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -16356,7 +16584,6 @@ "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "chalk": "^5.6.2", - "gaxios": "^6", "jsonrepair": "^3.14.0", "openai": "^6.26.0", "proxy-agent": "^6.5.0", @@ -16399,7 +16626,6 @@ "express": "^4.19.2", "extract-zip": "^2.0.1", "file-type": "^21.1.1", - "glob": "^13.0.1", "hosted-git-info": "^9.0.2", "ignore": "^7.0.5", "marked": "^15.0.12", diff --git a/package.json b/package.json index f71bfde53..a38968293 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,6 @@ "fast-check": "^4.7.0", "file-type": "^21.1.1", "get-east-asian-width": "^1.3.0", - "glob": "^13.0.1", "hosted-git-info": "^9.0.2", "ignore": "^7.0.5", "jsonrepair": "^3.14.0", @@ -170,8 +169,5 @@ "fsevents": "~2.3.3", "koffi": "^2.9.0", "vectordrive": "^0.1.35" - }, - "overrides": { - "gaxios": "^6.7.1" } } diff --git a/packages/pi-ai/package.json b/packages/pi-ai/package.json index b15e372a9..44d3d9cb4 100644 --- a/packages/pi-ai/package.json +++ b/packages/pi-ai/package.json @@ -33,7 +33,6 @@ "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "chalk": "^5.6.2", - "gaxios": "^6", "jsonrepair": "^3.14.0", "openai": "^6.26.0", "proxy-agent": "^6.5.0", diff --git a/packages/pi-coding-agent/package.json b/packages/pi-coding-agent/package.json index 8177cec71..da8102125 100644 --- a/packages/pi-coding-agent/package.json +++ b/packages/pi-coding-agent/package.json @@ -26,7 +26,6 @@ "diff": "^8.0.2", "extract-zip": "^2.0.1", "file-type": "^21.1.1", - "glob": "^13.0.1", "hosted-git-info": "^9.0.2", "ignore": "^7.0.5", "marked": "^15.0.12", diff --git a/src/resources/extensions/sf/tests/auto-start-worktree-db-path.test.ts b/src/resources/extensions/sf/tests/auto-start-worktree-db-path.test.ts index 89db99f25..bcfbc1913 100644 --- a/src/resources/extensions/sf/tests/auto-start-worktree-db-path.test.ts +++ b/src/resources/extensions/sf/tests/auto-start-worktree-db-path.test.ts @@ -2,6 +2,9 @@ import { readFileSync } from "node:fs"; import { join } from "node:path"; import { createTestContext } from "./test-helpers.ts"; +import { test } from "vitest"; + +test("auto start worktree db path.test", () => { const { assertTrue, report } = createTestContext(); @@ -29,3 +32,5 @@ assertTrue( ); report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/complete-task.test.ts b/src/resources/extensions/sf/tests/complete-task.test.ts index 767849f80..c1c2fae58 100644 --- a/src/resources/extensions/sf/tests/complete-task.test.ts +++ b/src/resources/extensions/sf/tests/complete-task.test.ts @@ -4,6 +4,9 @@ import * as path from "node:path"; import { AutoSession } from "../auto/session.ts"; import { resolveDispatch } from "../auto-dispatch.ts"; import { +import { test } from "vitest"; + +test("complete task.test", () => { _getAdapter, closeDatabase, getSliceTasks, @@ -978,3 +981,5 @@ console.log("\n=== complete-task: semantic validation hardening ==="); // ═══════════════════════════════════════════════════════════════════════════ report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/derive-state-db-disk-reconcile.test.ts b/src/resources/extensions/sf/tests/derive-state-db-disk-reconcile.test.ts index f3d2256ea..760695b2b 100644 --- a/src/resources/extensions/sf/tests/derive-state-db-disk-reconcile.test.ts +++ b/src/resources/extensions/sf/tests/derive-state-db-disk-reconcile.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("derive state db disk reconcile.test", () => { * derive-state-db-disk-reconcile.test.ts — #2416 * * After migration to DB-backed state, milestones that exist on disk @@ -132,3 +135,5 @@ main().catch((err) => { console.error(err); process.exit(1); }); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/doctor-fix-flag.test.ts b/src/resources/extensions/sf/tests/doctor-fix-flag.test.ts index 14814313f..8b3de6a53 100644 --- a/src/resources/extensions/sf/tests/doctor-fix-flag.test.ts +++ b/src/resources/extensions/sf/tests/doctor-fix-flag.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("doctor fix flag.test", () => { * Regression test for #1919: --fix flag not stripped before positional parse. * * parseDoctorArgs("--fix") must: @@ -102,3 +105,5 @@ async function main(): Promise { } main(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/draft-promotion.test.ts b/src/resources/extensions/sf/tests/draft-promotion.test.ts index b59deea53..b7859b512 100644 --- a/src/resources/extensions/sf/tests/draft-promotion.test.ts +++ b/src/resources/extensions/sf/tests/draft-promotion.test.ts @@ -1,4 +1,7 @@ import { +import { test } from "vitest"; + +test("draft promotion.test", () => { existsSync, mkdirSync, mkdtempSync, @@ -179,3 +182,5 @@ rmSync(tmpBase3, { recursive: true, force: true }); console.log(`\ndraft-promotion: ${passed} passed, ${failed} failed`); if (failed > 0) process.exit(1); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/integration/git-self-heal.test.ts b/src/resources/extensions/sf/tests/integration/git-self-heal.test.ts index 706544c9a..2ae3e6cc5 100644 --- a/src/resources/extensions/sf/tests/integration/git-self-heal.test.ts +++ b/src/resources/extensions/sf/tests/integration/git-self-heal.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("git self heal.test", () => { * git-self-heal.test.ts — Integration tests for git self-healing utilities. * * Uses real temporary git repos with deliberately broken state. @@ -181,3 +184,5 @@ console.log("── formatGitError ──"); } console.log("\n✅ All git-self-heal tests passed"); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/integration/queue-completed-milestone-perf.test.ts b/src/resources/extensions/sf/tests/integration/queue-completed-milestone-perf.test.ts index 4b8c938fa..b5157f297 100644 --- a/src/resources/extensions/sf/tests/integration/queue-completed-milestone-perf.test.ts +++ b/src/resources/extensions/sf/tests/integration/queue-completed-milestone-perf.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("queue completed milestone perf.test", () => { * Regression test for #2379: /sf queue fails with 429 rate limit on projects * with many completed milestones. * @@ -168,3 +171,5 @@ assertTrue( rmSync(tmpBase, { recursive: true, force: true }); report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/integration/token-savings.test.ts b/src/resources/extensions/sf/tests/integration/token-savings.test.ts index ff9b2cc4c..0a6ad3b77 100644 --- a/src/resources/extensions/sf/tests/integration/token-savings.test.ts +++ b/src/resources/extensions/sf/tests/integration/token-savings.test.ts @@ -8,6 +8,9 @@ import assert from "node:assert/strict"; import { +import { test } from "vitest"; + +test("token savings.test", () => { mkdirSync, mkdtempSync, readFileSync, @@ -531,3 +534,5 @@ assert.match( ); // ─── Report ──────────────────────────────────────────────────────────────── + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/integration/worktree-e2e.test.ts b/src/resources/extensions/sf/tests/integration/worktree-e2e.test.ts index 65ca42974..3b1e107d2 100644 --- a/src/resources/extensions/sf/tests/integration/worktree-e2e.test.ts +++ b/src/resources/extensions/sf/tests/integration/worktree-e2e.test.ts @@ -19,7 +19,7 @@ import { } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { describe } from 'vitest'; +import { test } from 'vitest'; import { createAutoWorktree, mergeMilestoneToMain, diff --git a/src/resources/extensions/sf/tests/merge-conflict-stops-loop.test.ts b/src/resources/extensions/sf/tests/merge-conflict-stops-loop.test.ts index 44fd19058..a00a875dd 100644 --- a/src/resources/extensions/sf/tests/merge-conflict-stops-loop.test.ts +++ b/src/resources/extensions/sf/tests/merge-conflict-stops-loop.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("merge conflict stops loop.test", () => { * merge-conflict-stops-loop.test.ts — #2330 * * When a squash merge has real code conflicts (not just .sf/ files), @@ -67,3 +70,5 @@ if (instanceofIdx > 0) { } report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/planning-crossval.test.ts b/src/resources/extensions/sf/tests/planning-crossval.test.ts index 30d3e28c3..efef44be4 100644 --- a/src/resources/extensions/sf/tests/planning-crossval.test.ts +++ b/src/resources/extensions/sf/tests/planning-crossval.test.ts @@ -10,6 +10,9 @@ import { renderPlanFromDb, renderRoadmapFromDb } from "../markdown-renderer.ts"; import { parsePlan } from "../parsers.ts"; import { parseRoadmapSlices } from "../roadmap-slices.ts"; import { +import { test } from "vitest"; + +test("planning crossval.test", () => { closeDatabase, getMilestoneSlices, insertMilestone, @@ -421,3 +424,5 @@ console.log("\n=== planning-crossval Test 3: Sequence ordering parity ==="); } report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/recovery-attempts-reset.test.ts b/src/resources/extensions/sf/tests/recovery-attempts-reset.test.ts index a7c615981..733268e2b 100644 --- a/src/resources/extensions/sf/tests/recovery-attempts-reset.test.ts +++ b/src/resources/extensions/sf/tests/recovery-attempts-reset.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("recovery attempts reset.test", () => { * Regression test for #2322: recoveryAttempts persists across re-dispatches, * causing instant task skip. * @@ -195,3 +198,5 @@ try { } report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/slice-disk-reconcile.test.ts b/src/resources/extensions/sf/tests/slice-disk-reconcile.test.ts index 7c84f513e..ecb1d24de 100644 --- a/src/resources/extensions/sf/tests/slice-disk-reconcile.test.ts +++ b/src/resources/extensions/sf/tests/slice-disk-reconcile.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("slice disk reconcile.test", () => { * slice-disk-reconcile.test.ts — #2533 * * Slices that exist on disk (in ROADMAP.md) but are missing from the SQLite @@ -293,3 +296,5 @@ main().catch((err) => { console.error(err); process.exit(1); }); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/survivor-branch-complete.test.ts b/src/resources/extensions/sf/tests/survivor-branch-complete.test.ts index 964021219..b91795204 100644 --- a/src/resources/extensions/sf/tests/survivor-branch-complete.test.ts +++ b/src/resources/extensions/sf/tests/survivor-branch-complete.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("survivor branch complete.test", () => { * Regression test for #2358: Survivor branch recovery skipped in phase=complete. * * When bootstrapAutoSession finds a survivor milestone branch and the derived @@ -137,3 +140,5 @@ const { assertEq, report } = createTestContext(); } report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/tool-naming.test.ts b/src/resources/extensions/sf/tests/tool-naming.test.ts index f9d46f07f..e85d38393 100644 --- a/src/resources/extensions/sf/tests/tool-naming.test.ts +++ b/src/resources/extensions/sf/tests/tool-naming.test.ts @@ -8,6 +8,9 @@ import assert from "node:assert/strict"; import { registerDbTools } from "../bootstrap/db-tools.ts"; // ─── Mock PI ────────────────────────────────────────────────────────────────── +import { test } from "vitest"; + +test("tool naming.test", () => { function makeMockPi() { const tools: any[] = []; @@ -192,3 +195,5 @@ console.log("\n── Tool naming: milestone planning renderer summarizes work } // ═══════════════════════════════════════════════════════════════════════════ + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/unit-runtime.test.ts b/src/resources/extensions/sf/tests/unit-runtime.test.ts index e6bb32ff7..a950cf241 100644 --- a/src/resources/extensions/sf/tests/unit-runtime.test.ts +++ b/src/resources/extensions/sf/tests/unit-runtime.test.ts @@ -1,5 +1,8 @@ import assert from "node:assert/strict"; import { +import { test } from "vitest"; + +test("unit runtime.test", () => { mkdirSync, mkdtempSync, readdirSync, @@ -519,3 +522,5 @@ console.log("\n=== must-haves: substring matching (no backtick tokens) ==="); rmSync(mhBase, { recursive: true, force: true }); rmSync(base, { recursive: true, force: true }); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/worker-registry.test.ts b/src/resources/extensions/sf/tests/worker-registry.test.ts index a8322211b..58d4459f1 100644 --- a/src/resources/extensions/sf/tests/worker-registry.test.ts +++ b/src/resources/extensions/sf/tests/worker-registry.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("worker registry.test", () => { * Tests for the parallel worker registry used by the dashboard overlay. * * Verifies worker lifecycle (register → update → cleanup), batch grouping, @@ -166,3 +169,5 @@ assert.deepStrictEqual( ); // ─── Summary ────────────────────────────────────────────────────────────────── + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/worktree-health-monorepo.test.ts b/src/resources/extensions/sf/tests/worktree-health-monorepo.test.ts index 9cddb6f72..3cd4832d2 100644 --- a/src/resources/extensions/sf/tests/worktree-health-monorepo.test.ts +++ b/src/resources/extensions/sf/tests/worktree-health-monorepo.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("worktree health monorepo.test", () => { * worktree-health-monorepo.test.ts — #2347 * * The worktree health check in auto/phases.ts falsely rejects monorepos @@ -78,3 +81,5 @@ assertTrue( ); report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/worktree-submodule-safety.test.ts b/src/resources/extensions/sf/tests/worktree-submodule-safety.test.ts index 047de6c40..fd8331cb9 100644 --- a/src/resources/extensions/sf/tests/worktree-submodule-safety.test.ts +++ b/src/resources/extensions/sf/tests/worktree-submodule-safety.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("worktree submodule safety.test", () => { * worktree-submodule-safety.test.ts — #2337 * * Worktree teardown (removeWorktree) uses --force which destroys @@ -63,3 +66,5 @@ assertTrue( ); report(); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/worktree-sync-overwrite-loop.test.ts b/src/resources/extensions/sf/tests/worktree-sync-overwrite-loop.test.ts index d93891834..2dd3ca564 100644 --- a/src/resources/extensions/sf/tests/worktree-sync-overwrite-loop.test.ts +++ b/src/resources/extensions/sf/tests/worktree-sync-overwrite-loop.test.ts @@ -1,4 +1,7 @@ /** +import { test } from "vitest"; + +test("worktree sync overwrite loop.test", () => { * worktree-sync-overwrite-loop.test.ts — Regression tests for #1886. * * Reproduces the infinite validate-milestone loop caused by two bugs @@ -206,3 +209,5 @@ main().catch((error) => { console.error(error); process.exit(1); }); + +}); \ No newline at end of file diff --git a/src/resources/extensions/sf/tests/zombie-sf-state.test.ts b/src/resources/extensions/sf/tests/zombie-sf-state.test.ts index be81733ce..e7e78b990 100644 --- a/src/resources/extensions/sf/tests/zombie-sf-state.test.ts +++ b/src/resources/extensions/sf/tests/zombie-sf-state.test.ts @@ -2,6 +2,9 @@ import { readFileSync } from "node:fs"; import { join } from "node:path"; import { createTestContext } from "./test-helpers.ts"; +import { test } from "vitest"; + +test("zombie sf state.test", () => { const { assertTrue, assertMatch, report } = createTestContext(); @@ -102,3 +105,5 @@ assertMatch( ); report(); + +}); \ No newline at end of file