build: add TypeScript 7 (native preview) for fast type checking
- Remove vestigial experimentalDecorators/emitDecoratorMetadata from all package tsconfigs (no actual decorators in source — flags were from pi-mono vendor copy) - Add @typescript/native-preview for 8-10x faster type checking (measured 4.6x on this repo: tsc 6.5s vs tsgo 1.4s) - Fix tsconfig.extensions.json: remove baseUrl (removed in tsgo/TS7) and use relative paths in paths mappings — compatible with both tsc and tsgo - Add typecheck/typecheck:extensions scripts using tsgo Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
e50d96e1f8
commit
e09eb8f899
8 changed files with 408 additions and 229 deletions
142
package-lock.json
generated
142
package-lock.json
generated
|
|
@ -75,6 +75,7 @@
|
|||
"@types/node": "^25.6.2",
|
||||
"@types/picomatch": "^4.0.3",
|
||||
"@types/shell-quote": "^1.7.5",
|
||||
"@typescript/native-preview": "^7.0.0-dev.20260510.1",
|
||||
"@vitest/coverage-v8": "^4.1.5",
|
||||
"esbuild": "^0.27.7",
|
||||
"jiti": "^2.7.0",
|
||||
|
|
@ -7178,6 +7179,147 @@
|
|||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview/-/native-preview-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-05U6/Im+vmqGrFAVrHSeuoXBCwShhbiA+93VpSwEBYP4LMWk2JW9q87MydamL5g6ISEjIVlwQ4Dx35CauPAwpA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"tsgo": "bin/tsgo.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260510.1",
|
||||
"@typescript/native-preview-darwin-x64": "7.0.0-dev.20260510.1",
|
||||
"@typescript/native-preview-linux-arm": "7.0.0-dev.20260510.1",
|
||||
"@typescript/native-preview-linux-arm64": "7.0.0-dev.20260510.1",
|
||||
"@typescript/native-preview-linux-x64": "7.0.0-dev.20260510.1",
|
||||
"@typescript/native-preview-win32-arm64": "7.0.0-dev.20260510.1",
|
||||
"@typescript/native-preview-win32-x64": "7.0.0-dev.20260510.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview-darwin-arm64": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-arm64/-/native-preview-darwin-arm64-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-YpG99bf/Va1aLGP8SUQy1ClUvi4c6uTFrEQ0B5KzZb9TsOwH1RIrc/2n8UO3IAuilvwEA0EU4q8fEO3otVP2Sw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview-darwin-x64": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-x64/-/native-preview-darwin-x64-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-NUwhwHpQn7aSX2GGBuY2bjec+hFnIz2DAna4ksVneexVE20h2U0MFzBvWrqH2C0PzPxVvGOMg4fGCvhTs93nlw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview-linux-arm": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm/-/native-preview-linux-arm-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-UE+PIWWg7vvszSU0gS9rzgIIHCWexz3hMZDHpHRSLAleAvULCNI3EzwTRFOA4BHyQ8eReD1KZ8e76BuStEPspw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview-linux-arm64": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm64/-/native-preview-linux-arm64-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-T7Zuy6h0sU+38w+N3A+YgW0XVqxIMjeHyu+945rJkiP9zk52Mwp663t1ndyeAE/N2zV+q0SWQmHNuFSXl99wJw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview-linux-x64": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-x64/-/native-preview-linux-x64-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-gJu4q4YREvjR2Lx1jUaCd/bRbTuyKf2r3rJ4tReuHyAvNse23HdGI0a9w4Z3wUbvRznxYt640IIItWsr/f3LEQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview-win32-arm64": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-arm64/-/native-preview-win32-arm64-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-00DtjrtkdAHOU/soYr8ncrjUvIsple8nvb29ZUATnLraNnzUgv5AS3yMve/pG/N7rVLlKy2FrXlVyVW7WAx29w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/native-preview-win32-x64": {
|
||||
"version": "7.0.0-dev.20260510.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-x64/-/native-preview-win32-x64-7.0.0-dev.20260510.1.tgz",
|
||||
"integrity": "sha512-27UeujQTEPFxhfkZL7aHnA1TlNol3nwDVFp5d6jFoP14yTXMe47kBnAJLEU2ta3REZE5PzLCs7HLV8H4VdxGgA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=16.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/coverage-v8": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.5.tgz",
|
||||
|
|
|
|||
383
package.json
383
package.json
|
|
@ -1,193 +1,194 @@
|
|||
{
|
||||
"name": "singularity-forge",
|
||||
"version": "2.75.3",
|
||||
"description": "Singularity Forge runtime core",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/singularity-ng/singularity-forge.git"
|
||||
},
|
||||
"homepage": "https://github.com/singularity-ng/singularity-forge#readme",
|
||||
"bugs": {
|
||||
"url": "https://github.com/singularity-ng/singularity-forge/issues"
|
||||
},
|
||||
"type": "module",
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
],
|
||||
"bin": {
|
||||
"sf": "dist/loader.js",
|
||||
"sf-cli": "dist/loader.js",
|
||||
"sf-daemon": "packages/daemon/dist/cli.js",
|
||||
"sf-server": "packages/daemon/dist/cli.js"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"dist/web",
|
||||
"packages",
|
||||
"pkg",
|
||||
"src/resources",
|
||||
"scripts/postinstall.js",
|
||||
"scripts/link-workspace-packages.cjs",
|
||||
"scripts/ensure-workspace-builds.cjs",
|
||||
"package.json",
|
||||
"README.md"
|
||||
],
|
||||
"piConfig": {
|
||||
"name": "sf",
|
||||
"configDir": ".sf"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=26.1.0"
|
||||
},
|
||||
"packageManager": "npm@11.13.0",
|
||||
"scripts": {
|
||||
"build:pi-tui": "npm --workspace @singularity-forge/tui run build",
|
||||
"build:pi-ai": "npm --workspace @singularity-forge/ai run build",
|
||||
"build:pi-agent-core": "npm --workspace @singularity-forge/agent-core run build",
|
||||
"build:pi-coding-agent": "npm --workspace @singularity-forge/coding-agent run build",
|
||||
"build:native-pkg": "npm --workspace @singularity-forge/native run build",
|
||||
"build:rpc-client": "npm --workspace @singularity-forge/rpc-client run build",
|
||||
"build:google-gemini-cli-provider": "npm --workspace @singularity-forge/google-gemini-cli-provider run build",
|
||||
"build:pi": "npm run build:native-pkg && npm run build:pi-tui && npm run build:google-gemini-cli-provider && npm run build:pi-ai && npm run build:pi-agent-core && npm run build:pi-coding-agent",
|
||||
"build:daemon": "npm --workspace @singularity-forge/daemon run build",
|
||||
"build:core": "npm run build:pi && npm run build:rpc-client && npm run build:daemon && npm run check:versioned-json && tsc && npm run copy-resources && npm run copy-themes && npm run copy-export-html",
|
||||
"build": "npm run build:core && node scripts/build-web-if-stale.cjs",
|
||||
"stage:web-host": "node scripts/stage-web-standalone.cjs",
|
||||
"build:web-host": "npm --prefix web run build && npm run stage:web-host",
|
||||
"docs:features": "node scripts/generate-features-inventory.mjs",
|
||||
"copy-resources": "node scripts/copy-resources.cjs",
|
||||
"copy-themes": "node scripts/copy-themes.cjs",
|
||||
"copy-export-html": "node scripts/copy-export-html.cjs",
|
||||
"test:unit": "npx vitest run --config vitest.config.ts",
|
||||
"test:packages": "node --test packages/coding-agent/dist/core/*.test.js packages/coding-agent/dist/core/tools/spawn-shell-windows.test.js",
|
||||
"test:marketplace": "npx vitest run src/resources/extensions/sf/tests/claude-import-tui.test.ts src/tests/marketplace-discovery.test.ts --config vitest.config.ts",
|
||||
"test:sf-light": "npx vitest run src/resources/extensions/sf/tests --config vitest.config.ts",
|
||||
"test:coverage": "npx vitest run --config vitest.config.ts --coverage",
|
||||
"test:integration": "npx vitest run src/tests/integration src/resources/extensions/sf/tests/integration src/resources/extensions/async-jobs src/resources/extensions/browser-tools/tests --config vitest.config.ts",
|
||||
"pretest": "npm run typecheck:extensions",
|
||||
"test": "npm run test:unit && npm run test:integration",
|
||||
"test:smoke": "node --experimental-strip-types tests/smoke/run.ts",
|
||||
"test:fixtures": "node --experimental-strip-types tests/fixtures/run.ts",
|
||||
"test:fixtures:record": "node scripts/with-env.mjs SF_FIXTURE_MODE=record -- node --experimental-strip-types tests/fixtures/record.ts",
|
||||
"test:live": "node scripts/with-env.mjs SF_LIVE_TESTS=1 -- node --experimental-strip-types tests/live/run.ts",
|
||||
"test:browser-tools": "node --test src/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs src/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs",
|
||||
"test:native": "node --test packages/rust-engine/src/__tests__/grep.test.mjs",
|
||||
"test:secret-scan": "node --import ./src/resources/extensions/sf/tests/resolve-ts.mjs --experimental-strip-types --test src/tests/secret-scan.test.ts",
|
||||
"secret-scan": "node scripts/secret-scan.mjs",
|
||||
"secret-scan:install-hook": "node scripts/install-hooks.mjs",
|
||||
"build:native": "node rust-engine/scripts/build.js",
|
||||
"build:native:dev": "node rust-engine/scripts/build.js --dev",
|
||||
"dev": "node scripts/dev.js",
|
||||
"sf": "node scripts/dev-cli.js",
|
||||
"sf-dev": "node scripts/dev-server.js --verbose --start .",
|
||||
"sf:dev": "npm run sf-dev",
|
||||
"sf:server": "node scripts/dev-server.js",
|
||||
"sf:server:dist": "node packages/daemon/dist/cli.js",
|
||||
"sf:web": "npm run build:pi && npm run copy-resources && node scripts/build-web-if-stale.cjs && node scripts/dev-cli.js --web",
|
||||
"sf:web:stop": "node scripts/dev-cli.js web stop",
|
||||
"sf:web:stop:all": "node scripts/dev-cli.js web stop all",
|
||||
"postinstall": "node scripts/link-workspace-packages.cjs && node scripts/ensure-workspace-builds.cjs && node scripts/postinstall.js",
|
||||
"pi:install-global": "node scripts/install-pi-global.js",
|
||||
"pi:uninstall-global": "node scripts/uninstall-pi-global.js",
|
||||
"sync-pkg-version": "node scripts/sync-pkg-version.cjs",
|
||||
"sync-platform-versions": "node rust-engine/scripts/sync-platform-versions.cjs",
|
||||
"validate-pack": "node scripts/validate-pack.js",
|
||||
"typecheck": "npm run build:pi && tsc --noEmit",
|
||||
"typecheck:extensions": "npm run check:versioned-json && tsc --noEmit --project tsconfig.extensions.json",
|
||||
"check:sf-inventory": "node scripts/check-sf-extension-inventory.mjs",
|
||||
"check:protected-deletions": "node scripts/check-protected-deletions.mjs",
|
||||
"check:versioned-json": "node scripts/check-protected-deletions.mjs && node scripts/check-versioned-json.mjs && npm run check:sf-inventory",
|
||||
"format": "biome format --write .",
|
||||
"format:check": "biome format .",
|
||||
"lint": "npm run check:versioned-json && biome check .",
|
||||
"lint:fix": "npm run check:versioned-json && biome check --write .",
|
||||
"pipeline:version-stamp": "node scripts/version-stamp.mjs",
|
||||
"release:changelog": "node scripts/generate-changelog.mjs",
|
||||
"release:bump": "node scripts/bump-version.mjs",
|
||||
"release:update-changelog": "node scripts/update-changelog.mjs",
|
||||
"docker:build-runtime": "docker build --target runtime -t ghcr.io/singularity-ng/singularity-forge .",
|
||||
"docker:build-builder": "docker build --target builder -t ghcr.io/singularity-forge/sf-ci-builder .",
|
||||
"prepublishOnly": "npm run sync-pkg-version && npm run sync-platform-versions && node scripts/prepublish-check.mjs && npm run build && npm run typecheck:extensions && npm run validate-pack",
|
||||
"test:live-regression": "node --experimental-strip-types tests/live-regression/run.ts",
|
||||
"check:circular": "node scripts/check-circular-deps.mjs",
|
||||
"check:circular:ext": "node scripts/check-circular-deps.mjs --ext"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.95.1",
|
||||
"@anthropic-ai/vertex-sdk": "^0.14.4",
|
||||
"@aws-sdk/client-bedrock-runtime": "^3.983.0",
|
||||
"@clack/prompts": "^1.3.0",
|
||||
"@google/gemini-cli-core": "^0.41.2",
|
||||
"@google/genai": "^2.0.0",
|
||||
"@logtape/file": "^2.0.7",
|
||||
"@logtape/logtape": "^2.0.7",
|
||||
"@logtape/pretty": "^2.0.7",
|
||||
"@logtape/redaction": "^2.0.7",
|
||||
"@mariozechner/jiti": "^2.6.2",
|
||||
"@mistralai/mistralai": "^2.2.1",
|
||||
"@modelcontextprotocol/sdk": "^1.29.0",
|
||||
"@octokit/rest": "^22.0.1",
|
||||
"@silvia-odwyer/photon-node": "^0.3.4",
|
||||
"@sinclair/typebox": "^0.34.49",
|
||||
"@smithy/node-http-handler": "^4.7.0",
|
||||
"@types/mime-types": "^2.1.4",
|
||||
"ajv": "^8.20.0",
|
||||
"ajv-formats": "^3.0.1",
|
||||
"chalk": "^5.6.2",
|
||||
"chokidar": "^5.0.0",
|
||||
"diff": "^9.0.0",
|
||||
"discord.js": "^14.26.4",
|
||||
"extract-zip": "^2.0.1",
|
||||
"fast-check": "^4.7.0",
|
||||
"file-type": "^21.1.1",
|
||||
"get-east-asian-width": "^1.6.0",
|
||||
"hosted-git-info": "^9.0.2",
|
||||
"ignore": "^7.0.5",
|
||||
"jsonrepair": "^3.14.0",
|
||||
"markdownlint": "^0.40.0",
|
||||
"marked": "^18.0.3",
|
||||
"mime-types": "^3.0.1",
|
||||
"minimatch": "^10.2.5",
|
||||
"openai": "^6.37.0",
|
||||
"picomatch": "^4.0.3",
|
||||
"playwright": "^1.59.1",
|
||||
"proper-lockfile": "^4.1.2",
|
||||
"proxy-agent": "^8.0.1",
|
||||
"remark-parse": "^11.0.0",
|
||||
"sharp": "^0.34.5",
|
||||
"shell-quote": "^1.8.3",
|
||||
"strip-ansi": "^7.1.0",
|
||||
"undici": "^8.2.0",
|
||||
"unified": "^11.0.5",
|
||||
"unist-util-visit": "^5.1.0",
|
||||
"yaml": "^2.8.4",
|
||||
"zod": "^4.4.3",
|
||||
"zod-to-json-schema": "^3.25.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.4.14",
|
||||
"@types/node": "^25.6.2",
|
||||
"@types/picomatch": "^4.0.3",
|
||||
"@types/shell-quote": "^1.7.5",
|
||||
"@vitest/coverage-v8": "^4.1.5",
|
||||
"esbuild": "^0.27.7",
|
||||
"jiti": "^2.7.0",
|
||||
"jscpd": "^4.0.9",
|
||||
"madge": "^8.0.0",
|
||||
"typescript": "^6.0.3",
|
||||
"typescript-language-server": "^5.1.3",
|
||||
"vitest": "^4.1.5"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@anthropic-ai/claude-agent-sdk": "^0.2.137",
|
||||
"@singularity-forge/engine-darwin-arm64": ">=2.10.2",
|
||||
"@singularity-forge/engine-darwin-x64": ">=2.10.2",
|
||||
"@singularity-forge/engine-linux-arm64-gnu": ">=2.10.2",
|
||||
"@singularity-forge/engine-linux-x64-gnu": ">=2.10.2",
|
||||
"@singularity-forge/engine-win32-x64-msvc": ">=2.10.2",
|
||||
"fsevents": "~2.3.3",
|
||||
"koffi": "^2.16.2",
|
||||
"vectordrive": "^0.1.35"
|
||||
}
|
||||
"name": "singularity-forge",
|
||||
"version": "2.75.3",
|
||||
"description": "Singularity Forge runtime core",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/singularity-ng/singularity-forge.git"
|
||||
},
|
||||
"homepage": "https://github.com/singularity-ng/singularity-forge#readme",
|
||||
"bugs": {
|
||||
"url": "https://github.com/singularity-ng/singularity-forge/issues"
|
||||
},
|
||||
"type": "module",
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
],
|
||||
"bin": {
|
||||
"sf": "dist/loader.js",
|
||||
"sf-cli": "dist/loader.js",
|
||||
"sf-daemon": "packages/daemon/dist/cli.js",
|
||||
"sf-server": "packages/daemon/dist/cli.js"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"dist/web",
|
||||
"packages",
|
||||
"pkg",
|
||||
"src/resources",
|
||||
"scripts/postinstall.js",
|
||||
"scripts/link-workspace-packages.cjs",
|
||||
"scripts/ensure-workspace-builds.cjs",
|
||||
"package.json",
|
||||
"README.md"
|
||||
],
|
||||
"piConfig": {
|
||||
"name": "sf",
|
||||
"configDir": ".sf"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=26.1.0"
|
||||
},
|
||||
"packageManager": "npm@11.13.0",
|
||||
"scripts": {
|
||||
"build:pi-tui": "npm --workspace @singularity-forge/tui run build",
|
||||
"build:pi-ai": "npm --workspace @singularity-forge/ai run build",
|
||||
"build:pi-agent-core": "npm --workspace @singularity-forge/agent-core run build",
|
||||
"build:pi-coding-agent": "npm --workspace @singularity-forge/coding-agent run build",
|
||||
"build:native-pkg": "npm --workspace @singularity-forge/native run build",
|
||||
"build:rpc-client": "npm --workspace @singularity-forge/rpc-client run build",
|
||||
"build:google-gemini-cli-provider": "npm --workspace @singularity-forge/google-gemini-cli-provider run build",
|
||||
"build:pi": "npm run build:native-pkg && npm run build:pi-tui && npm run build:google-gemini-cli-provider && npm run build:pi-ai && npm run build:pi-agent-core && npm run build:pi-coding-agent",
|
||||
"build:daemon": "npm --workspace @singularity-forge/daemon run build",
|
||||
"build:core": "npm run build:pi && npm run build:rpc-client && npm run build:daemon && npm run check:versioned-json && tsc && npm run copy-resources && npm run copy-themes && npm run copy-export-html",
|
||||
"build": "npm run build:core && node scripts/build-web-if-stale.cjs",
|
||||
"stage:web-host": "node scripts/stage-web-standalone.cjs",
|
||||
"build:web-host": "npm --prefix web run build && npm run stage:web-host",
|
||||
"docs:features": "node scripts/generate-features-inventory.mjs",
|
||||
"copy-resources": "node scripts/copy-resources.cjs",
|
||||
"copy-themes": "node scripts/copy-themes.cjs",
|
||||
"copy-export-html": "node scripts/copy-export-html.cjs",
|
||||
"test:unit": "npx vitest run --config vitest.config.ts",
|
||||
"test:packages": "node --test packages/coding-agent/dist/core/*.test.js packages/coding-agent/dist/core/tools/spawn-shell-windows.test.js",
|
||||
"test:marketplace": "npx vitest run src/resources/extensions/sf/tests/claude-import-tui.test.ts src/tests/marketplace-discovery.test.ts --config vitest.config.ts",
|
||||
"test:sf-light": "npx vitest run src/resources/extensions/sf/tests --config vitest.config.ts",
|
||||
"test:coverage": "npx vitest run --config vitest.config.ts --coverage",
|
||||
"test:integration": "npx vitest run src/tests/integration src/resources/extensions/sf/tests/integration src/resources/extensions/async-jobs src/resources/extensions/browser-tools/tests --config vitest.config.ts",
|
||||
"pretest": "npm run typecheck:extensions",
|
||||
"test": "npm run test:unit && npm run test:integration",
|
||||
"test:smoke": "node --experimental-strip-types tests/smoke/run.ts",
|
||||
"test:fixtures": "node --experimental-strip-types tests/fixtures/run.ts",
|
||||
"test:fixtures:record": "node scripts/with-env.mjs SF_FIXTURE_MODE=record -- node --experimental-strip-types tests/fixtures/record.ts",
|
||||
"test:live": "node scripts/with-env.mjs SF_LIVE_TESTS=1 -- node --experimental-strip-types tests/live/run.ts",
|
||||
"test:browser-tools": "node --test src/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs src/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs",
|
||||
"test:native": "node --test packages/rust-engine/src/__tests__/grep.test.mjs",
|
||||
"test:secret-scan": "node --import ./src/resources/extensions/sf/tests/resolve-ts.mjs --experimental-strip-types --test src/tests/secret-scan.test.ts",
|
||||
"secret-scan": "node scripts/secret-scan.mjs",
|
||||
"secret-scan:install-hook": "node scripts/install-hooks.mjs",
|
||||
"build:native": "node rust-engine/scripts/build.js",
|
||||
"build:native:dev": "node rust-engine/scripts/build.js --dev",
|
||||
"dev": "node scripts/dev.js",
|
||||
"sf": "node scripts/dev-cli.js",
|
||||
"sf-dev": "node scripts/dev-server.js --verbose --start .",
|
||||
"sf:dev": "npm run sf-dev",
|
||||
"sf:server": "node scripts/dev-server.js",
|
||||
"sf:server:dist": "node packages/daemon/dist/cli.js",
|
||||
"sf:web": "npm run build:pi && npm run copy-resources && node scripts/build-web-if-stale.cjs && node scripts/dev-cli.js --web",
|
||||
"sf:web:stop": "node scripts/dev-cli.js web stop",
|
||||
"sf:web:stop:all": "node scripts/dev-cli.js web stop all",
|
||||
"postinstall": "node scripts/link-workspace-packages.cjs && node scripts/ensure-workspace-builds.cjs && node scripts/postinstall.js",
|
||||
"pi:install-global": "node scripts/install-pi-global.js",
|
||||
"pi:uninstall-global": "node scripts/uninstall-pi-global.js",
|
||||
"sync-pkg-version": "node scripts/sync-pkg-version.cjs",
|
||||
"sync-platform-versions": "node rust-engine/scripts/sync-platform-versions.cjs",
|
||||
"validate-pack": "node scripts/validate-pack.js",
|
||||
"typecheck": "tsgo --noEmit",
|
||||
"typecheck:extensions": "tsgo --noEmit --project tsconfig.extensions.json",
|
||||
"check:sf-inventory": "node scripts/check-sf-extension-inventory.mjs",
|
||||
"check:protected-deletions": "node scripts/check-protected-deletions.mjs",
|
||||
"check:versioned-json": "node scripts/check-protected-deletions.mjs && node scripts/check-versioned-json.mjs && npm run check:sf-inventory",
|
||||
"format": "biome format --write .",
|
||||
"format:check": "biome format .",
|
||||
"lint": "npm run check:versioned-json && biome check .",
|
||||
"lint:fix": "npm run check:versioned-json && biome check --write .",
|
||||
"pipeline:version-stamp": "node scripts/version-stamp.mjs",
|
||||
"release:changelog": "node scripts/generate-changelog.mjs",
|
||||
"release:bump": "node scripts/bump-version.mjs",
|
||||
"release:update-changelog": "node scripts/update-changelog.mjs",
|
||||
"docker:build-runtime": "docker build --target runtime -t ghcr.io/singularity-ng/singularity-forge .",
|
||||
"docker:build-builder": "docker build --target builder -t ghcr.io/singularity-forge/sf-ci-builder .",
|
||||
"prepublishOnly": "npm run sync-pkg-version && npm run sync-platform-versions && node scripts/prepublish-check.mjs && npm run build && npm run typecheck:extensions && npm run validate-pack",
|
||||
"test:live-regression": "node --experimental-strip-types tests/live-regression/run.ts",
|
||||
"check:circular": "node scripts/check-circular-deps.mjs",
|
||||
"check:circular:ext": "node scripts/check-circular-deps.mjs --ext"
|
||||
},
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.95.1",
|
||||
"@anthropic-ai/vertex-sdk": "^0.14.4",
|
||||
"@aws-sdk/client-bedrock-runtime": "^3.983.0",
|
||||
"@clack/prompts": "^1.3.0",
|
||||
"@google/gemini-cli-core": "^0.41.2",
|
||||
"@google/genai": "^2.0.0",
|
||||
"@logtape/file": "^2.0.7",
|
||||
"@logtape/logtape": "^2.0.7",
|
||||
"@logtape/pretty": "^2.0.7",
|
||||
"@logtape/redaction": "^2.0.7",
|
||||
"@mariozechner/jiti": "^2.6.2",
|
||||
"@mistralai/mistralai": "^2.2.1",
|
||||
"@modelcontextprotocol/sdk": "^1.29.0",
|
||||
"@octokit/rest": "^22.0.1",
|
||||
"@silvia-odwyer/photon-node": "^0.3.4",
|
||||
"@sinclair/typebox": "^0.34.49",
|
||||
"@smithy/node-http-handler": "^4.7.0",
|
||||
"@types/mime-types": "^2.1.4",
|
||||
"ajv": "^8.20.0",
|
||||
"ajv-formats": "^3.0.1",
|
||||
"chalk": "^5.6.2",
|
||||
"chokidar": "^5.0.0",
|
||||
"diff": "^9.0.0",
|
||||
"discord.js": "^14.26.4",
|
||||
"extract-zip": "^2.0.1",
|
||||
"fast-check": "^4.7.0",
|
||||
"file-type": "^21.1.1",
|
||||
"get-east-asian-width": "^1.6.0",
|
||||
"hosted-git-info": "^9.0.2",
|
||||
"ignore": "^7.0.5",
|
||||
"jsonrepair": "^3.14.0",
|
||||
"markdownlint": "^0.40.0",
|
||||
"marked": "^18.0.3",
|
||||
"mime-types": "^3.0.1",
|
||||
"minimatch": "^10.2.5",
|
||||
"openai": "^6.37.0",
|
||||
"picomatch": "^4.0.3",
|
||||
"playwright": "^1.59.1",
|
||||
"proper-lockfile": "^4.1.2",
|
||||
"proxy-agent": "^8.0.1",
|
||||
"remark-parse": "^11.0.0",
|
||||
"sharp": "^0.34.5",
|
||||
"shell-quote": "^1.8.3",
|
||||
"strip-ansi": "^7.1.0",
|
||||
"undici": "^8.2.0",
|
||||
"unified": "^11.0.5",
|
||||
"unist-util-visit": "^5.1.0",
|
||||
"yaml": "^2.8.4",
|
||||
"zod": "^4.4.3",
|
||||
"zod-to-json-schema": "^3.25.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.4.14",
|
||||
"@types/node": "^25.6.2",
|
||||
"@types/picomatch": "^4.0.3",
|
||||
"@types/shell-quote": "^1.7.5",
|
||||
"@typescript/native-preview": "^7.0.0-dev.20260510.1",
|
||||
"@vitest/coverage-v8": "^4.1.5",
|
||||
"esbuild": "^0.27.7",
|
||||
"jiti": "^2.7.0",
|
||||
"jscpd": "^4.0.9",
|
||||
"madge": "^8.0.0",
|
||||
"typescript": "^6.0.3",
|
||||
"typescript-language-server": "^5.1.3",
|
||||
"vitest": "^4.1.5"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@anthropic-ai/claude-agent-sdk": "^0.2.137",
|
||||
"@singularity-forge/engine-darwin-arm64": ">=2.10.2",
|
||||
"@singularity-forge/engine-darwin-x64": ">=2.10.2",
|
||||
"@singularity-forge/engine-linux-arm64-gnu": ">=2.10.2",
|
||||
"@singularity-forge/engine-linux-x64-gnu": ">=2.10.2",
|
||||
"@singularity-forge/engine-win32-x64-msvc": ">=2.10.2",
|
||||
"fsevents": "~2.3.3",
|
||||
"koffi": "^2.16.2",
|
||||
"vectordrive": "^0.1.35"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
"compilerOptions": {
|
||||
"target": "ES2024",
|
||||
"module": "Node16",
|
||||
"lib": ["ES2024"],
|
||||
"lib": [
|
||||
"ES2024"
|
||||
],
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
|
|
@ -16,14 +18,16 @@
|
|||
"moduleResolution": "Node16",
|
||||
"resolveJsonModule": true,
|
||||
"allowImportingTsExtensions": false,
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"useDefineForClassFields": false,
|
||||
"types": ["node"],
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*.ts"],
|
||||
"include": [
|
||||
"src/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
"compilerOptions": {
|
||||
"target": "ES2024",
|
||||
"module": "Node16",
|
||||
"lib": ["ES2024"],
|
||||
"lib": [
|
||||
"ES2024"
|
||||
],
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
|
|
@ -16,13 +18,20 @@
|
|||
"moduleResolution": "Node16",
|
||||
"resolveJsonModule": true,
|
||||
"allowImportingTsExtensions": false,
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"useDefineForClassFields": false,
|
||||
"types": ["node"],
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*.ts"],
|
||||
"exclude": ["node_modules", "dist", "**/*.d.ts", "src/**/*.d.ts"]
|
||||
"include": [
|
||||
"src/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"**/*.d.ts",
|
||||
"src/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
"compilerOptions": {
|
||||
"target": "ES2024",
|
||||
"module": "Node16",
|
||||
"lib": ["ES2024"],
|
||||
"lib": [
|
||||
"ES2024"
|
||||
],
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
|
|
@ -16,13 +18,19 @@
|
|||
"moduleResolution": "Node16",
|
||||
"resolveJsonModule": true,
|
||||
"allowImportingTsExtensions": false,
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"useDefineForClassFields": false,
|
||||
"types": ["node"],
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.d.ts"],
|
||||
"exclude": ["node_modules", "dist"]
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"src/**/*.d.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
"compilerOptions": {
|
||||
"target": "ES2024",
|
||||
"module": "Node16",
|
||||
"lib": ["ES2024"],
|
||||
"lib": [
|
||||
"ES2024"
|
||||
],
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
|
|
@ -16,13 +18,20 @@
|
|||
"moduleResolution": "Node16",
|
||||
"resolveJsonModule": true,
|
||||
"allowImportingTsExtensions": false,
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"useDefineForClassFields": false,
|
||||
"types": ["node"],
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*.ts"],
|
||||
"exclude": ["node_modules", "dist", "**/*.d.ts", "src/**/*.d.ts"]
|
||||
"include": [
|
||||
"src/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"**/*.d.ts",
|
||||
"src/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
"compilerOptions": {
|
||||
"target": "ES2024",
|
||||
"module": "Node16",
|
||||
"lib": ["ES2024"],
|
||||
"lib": [
|
||||
"ES2024"
|
||||
],
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
|
|
@ -16,13 +18,18 @@
|
|||
"moduleResolution": "Node16",
|
||||
"resolveJsonModule": true,
|
||||
"allowImportingTsExtensions": false,
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"useDefineForClassFields": false,
|
||||
"types": ["node"],
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "dist"]
|
||||
"include": [
|
||||
"src/**/*"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,20 +9,19 @@
|
|||
"target": "ES2024",
|
||||
"lib": ["ES2024", "DOM", "DOM.Iterable"],
|
||||
"rootDir": ".",
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@singularity-forge/coding-agent": [
|
||||
"packages/coding-agent/src/index.ts"
|
||||
"./packages/coding-agent/src/index.ts"
|
||||
],
|
||||
"@singularity-forge/ai": ["packages/ai/src/index.ts"],
|
||||
"@singularity-forge/ai/*": ["packages/ai/src/*.ts"],
|
||||
"@singularity-forge/ai": ["./packages/ai/src/index.ts"],
|
||||
"@singularity-forge/ai/*": ["./packages/ai/src/*.ts"],
|
||||
"@singularity-forge/agent-core": [
|
||||
"packages/agent-core/src/index.ts"
|
||||
"./packages/agent-core/src/index.ts"
|
||||
],
|
||||
"@singularity-forge/tui": ["packages/tui/src/index.ts"],
|
||||
"@singularity-forge/native": ["packages/native/src/index.ts"],
|
||||
"@singularity-forge/native/*": ["packages/rust-engine/src/*/index.ts"],
|
||||
"@singularity-forge/rpc-client": ["packages/rpc-client/src/index.ts"]
|
||||
"@singularity-forge/tui": ["./packages/tui/src/index.ts"],
|
||||
"@singularity-forge/native": ["./packages/native/src/index.ts"],
|
||||
"@singularity-forge/native/*": ["./packages/rust-engine/src/*/index.ts"],
|
||||
"@singularity-forge/rpc-client": ["./packages/rpc-client/src/index.ts"]
|
||||
}
|
||||
},
|
||||
"include": ["src/resources/extensions", "src/types.d.ts"],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue