brainy/package.json
David Snelling 415e824a1d
All checks were successful
CI / Node 22 (push) Successful in 2m57s
CI / Node 24 (push) Successful in 2m51s
CI / Bun (latest) (push) Successful in 3m2s
chore: the forge is the address — retire the archived mirror from every live surface
Ruled today: the project's one public home is source.soulcraft.com. The
old public repo is archived history and no longer part of any release.

- package.json repository/homepage/bugs now point at the forge (this is
  what the npm page links as Repository/Homepage/Issues)
- README CI badge reads the forge pipeline; CONTRIBUTING drops the
  mirror paragraph (forge account or email patch were already the ruled
  contribution paths)
- release.sh: mirror push + external release step removed; publishes go
  forge-first (box-held write token, temp userconfig so the token never
  hits argv; a forge-publish failure aborts before the storefront so the
  pair can never diverge), then npmjs with the scope-override pin (the
  fleet npmrc maps @soulcraft to the forge and scope mappings beat
  --registry); release page created via forge API when a token is
  present, loud skip otherwise; changelog compare links point home
- dead external CI workflow removed (.forgejo/workflows/ci.yml is the
  live pipeline)

Historical CHANGELOG links to the archive stay as written - history is
history and the archive serves them read-only.
2026-07-23 11:09:43 -07:00

205 lines
7.2 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"name": "@soulcraft/brainy",
"version": "8.10.0",
"description": "Universal Knowledge Protocol™ - World's first Triple Intelligence database unifying vector, graph, and document search in one API. Stage 3 CANONICAL: 42 nouns × 127 verbs covering 96-97% of all human knowledge.",
"main": "dist/index.js",
"module": "dist/index.js",
"types": "dist/index.d.ts",
"type": "module",
"bin": {
"brainy": "bin/brainy.js"
},
"sideEffects": [
"./dist/setup.js",
"./dist/utils/textEncoding.js",
"./src/setup.ts",
"./src/utils/textEncoding.ts"
],
"exports": {
".": {
"import": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./setup": {
"import": "./dist/setup.js",
"types": "./dist/setup.d.ts"
},
"./types/graphTypes": {
"import": "./dist/types/graphTypes.js",
"types": "./dist/types/graphTypes.d.ts"
},
"./utils/textEncoding": {
"import": "./dist/utils/textEncoding.js",
"types": "./dist/utils/textEncoding.d.ts"
},
"./universal": {
"import": "./dist/universal/index.js",
"types": "./dist/universal/index.d.ts"
},
"./neural/entityExtractor": {
"import": "./dist/neural/entityExtractor.js",
"types": "./dist/neural/entityExtractor.d.ts"
},
"./neural/SmartExtractor": {
"import": "./dist/neural/SmartExtractor.js",
"types": "./dist/neural/SmartExtractor.d.ts"
},
"./neural/SmartRelationshipExtractor": {
"import": "./dist/neural/SmartRelationshipExtractor.js",
"types": "./dist/neural/SmartRelationshipExtractor.d.ts"
},
"./plugin": {
"import": "./dist/plugin.js",
"types": "./dist/plugin.d.ts"
},
"./internals": {
"import": "./dist/internals.js",
"types": "./dist/internals.d.ts"
},
"./brain-format": {
"import": "./dist/storage/brainFormat.js",
"types": "./dist/storage/brainFormat.d.ts"
},
"./embeddings/wasm": {
"import": "./dist/embeddings/wasm/index.js",
"types": "./dist/embeddings/wasm/index.d.ts"
}
},
"engines": {
"node": ">=22",
"bun": ">=1.1.0"
},
"scripts": {
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
"prebuild": "npm run clean",
"build": "npm run build:types:if-needed && npm run build:patterns:if-needed && tsc && tsc -p tsconfig.cli.json && npm run build:copy-wasm",
"build:copy-wasm": "node -e \"const fs=require('fs');const src='src/embeddings/wasm/pkg';const dst='dist/embeddings/wasm/pkg';const skip=new Set(['package.json','.gitignore']);if(fs.existsSync(src)){fs.mkdirSync(dst,{recursive:true});fs.readdirSync(src).filter(f=>!skip.has(f)).forEach(f=>fs.copyFileSync(src+'/'+f,dst+'/'+f));console.log('Copied WASM pkg to dist')}\"",
"build:types": "tsx scripts/buildTypeEmbeddings.ts",
"build:types:if-needed": "node scripts/check-type-embeddings.cjs || npm run build:types",
"build:types:force": "npm run build:types",
"build:patterns": "tsx scripts/buildEmbeddedPatterns.ts",
"build:patterns:if-needed": "node scripts/check-patterns.cjs || npm run build:patterns",
"build:patterns:force": "npm run build:patterns",
"build:candle": "./scripts/build-candle-wasm.sh",
"build:candle:dev": "./scripts/build-candle-wasm.sh --dev",
"prepare": "npm run build",
"test": "npm run test:unit",
"test:watch": "NODE_OPTIONS='--max-old-space-size=8192' vitest --config tests/configs/vitest.unit.config.ts",
"test:coverage": "NODE_OPTIONS='--max-old-space-size=8192' vitest run --config tests/configs/vitest.unit.config.ts --coverage",
"test:unit": "NODE_OPTIONS='--max-old-space-size=8192' vitest run --config tests/configs/vitest.unit.config.ts",
"test:perf": "vitest run tests/unit/performance --reporter=basic",
"test:integration": "NODE_OPTIONS='--max-old-space-size=8192' vitest run --config tests/configs/vitest.integration.config.ts",
"test:semantic": "NODE_OPTIONS='--max-old-space-size=8192' vitest run --config tests/configs/vitest.semantic.config.ts",
"test:all": "npm run test:unit && npm run test:integration",
"test:ci-unit": "CI=true vitest run --config tests/configs/vitest.unit.config.ts",
"test:ci-integration": "NODE_OPTIONS='--max-old-space-size=16384' CI=true vitest run --config tests/configs/vitest.integration.config.ts",
"test:ci": "npm run test:ci-unit && npm run test:ci-integration",
"test:bun": "bun tests/integration/bun-runtime-test.ts",
"test:wasm": "npx vitest run tests/integration/wasm-embeddings.test.ts",
"typecheck": "tsc --noEmit",
"lint": "eslint --ext .ts,.js src/",
"lint:fix": "eslint --ext .ts,.js src/ --fix",
"format": "prettier --write \"src/**/*.{ts,js}\"",
"format:check": "prettier --check \"src/**/*.{ts,js}\"",
"release": "./scripts/release.sh patch",
"release:patch": "./scripts/release.sh patch",
"release:minor": "./scripts/release.sh minor",
"release:major": "./scripts/release.sh major",
"release:dry": "./scripts/release.sh patch --dry-run"
},
"keywords": [
"ai-database",
"vector-database",
"graph-database",
"field-filtering",
"triple-intelligence",
"hnsw",
"embeddings",
"semantic-search",
"machine-learning",
"artificial-intelligence",
"data-storage",
"indexing",
"typescript"
],
"author": "Brainy Contributors",
"license": "MIT",
"private": false,
"publishConfig": {
"access": "public"
},
"homepage": "https://source.soulcraft.com/soulcraft/brainy",
"bugs": {
"url": "https://source.soulcraft.com/soulcraft/brainy/issues"
},
"repository": {
"type": "git",
"url": "git+https://source.soulcraft.com/soulcraft/brainy.git"
},
"files": [
"dist/**/*.js",
"dist/**/*.d.ts",
"dist/**/*.wasm",
"assets/models/all-MiniLM-L6-v2/**",
"bin/",
"brainy.png",
"docs/**/*.md",
"LICENSE",
"README.md",
"CHANGELOG.md"
],
"overrides": {
"boolean": "3.2.0"
},
"devDependencies": {
"@testcontainers/redis": "^11.5.1",
"@types/js-yaml": "^4.0.9",
"@types/mime": "^3.0.4",
"@types/node": "^22",
"@types/uuid": "^10.0.0",
"@types/ws": "^8.18.1",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"@vitest/coverage-v8": "^3.2.4",
"jspdf": "^3.0.3",
"minio": "^8.0.5",
"prettier": "^3.9.4",
"testcontainers": "^11.5.1",
"tsx": "^4.19.2",
"typescript": "^5.4.5",
"uuid": "^9.0.1",
"vitest": "^3.2.4"
},
"dependencies": {
"@msgpack/msgpack": "^3.1.2",
"boxen": "^8.0.1",
"chalk": "^5.3.0",
"chardet": "^2.0.0",
"cli-table3": "^0.6.5",
"commander": "^11.1.0",
"csv-parse": "^6.1.0",
"inquirer": "^12.9.3",
"js-yaml": "^4.1.0",
"mammoth": "^1.11.0",
"mime": "^4.1.0",
"ora": "^8.2.0",
"pdfjs-dist": "^4.0.379",
"prompts": "^2.4.2",
"roaring-wasm": "^1.1.0",
"ws": "^8.18.3",
"xlsx": "^0.18.5"
},
"prettier": {
"arrowParens": "always",
"bracketSameLine": true,
"bracketSpacing": true,
"htmlWhitespaceSensitivity": "css",
"printWidth": 80,
"proseWrap": "preserve",
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "none",
"useTabs": false
}
}