Graph-powered code intelligence for AI agents. Index any codebase, query via MCP or CLI.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in gitnexus
transport stdio · streamable-http · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed v1.6.7 · analyzer v18 · 11h ago
danger signals1
- dynamic code executionvm execpackage/dist/storage/parsedfile-store.js:131
cachedGc = vm.runInNewContext('gc');
evidence-backed
findings quoted directly from the published source artifact — not inferred
last analysis: fetch-failed · showing evidence from the last successful analysis (1w ago)
filesystem 70
- fs package/dist/cli/ai-context.js :8
import fs from 'fs/promises'; - fs package/dist/cli/analyze-config.js :30
import fs from 'node:fs'; - fs package/dist/cli/analyze.js :24
import fs from 'fs/promises'; - fs package/dist/cli/clean.js :7
import fs from 'fs/promises'; - fs package/dist/cli/eval-server.js :33
import { writeSync } from 'node:fs'; - fs package/dist/cli/group.js :31
await fs.writeFile(path.join(groupDir, 'group.yaml'), yaml.dump(config), 'utf-8'); - fs package/dist/cli/index-repo.js :12
import fs from 'fs/promises'; - fs package/dist/cli/remove.d.ts :19
* - Atomic order mirrors `clean`: fs.rm FIRST, then unregister. A - fs package/dist/cli/remove.js :19
* - Atomic order mirrors `clean`: fs.rm FIRST, then unregister. A - fs package/dist/cli/setup.js :8
import fs from 'fs/promises'; - fs package/dist/cli/skill-gen.js :9
import fs from 'fs/promises'; - fs package/dist/cli/tool.js :17
import { writeSync } from 'node:fs'; - fs package/dist/config/ignore-service.js :2
import fs from 'fs/promises'; - fs package/dist/core/embeddings/embedder.js :15
import { existsSync } from 'fs'; - fs package/dist/core/embeddings/server-mapping.js :7
import fs from 'fs/promises'; - fs package/dist/core/group/bridge-db.js :1
import fsp from 'node:fs/promises'; - fs package/dist/core/group/cross-impact.js :5
import fsp from 'node:fs/promises'; - fs package/dist/core/group/extractors/elixir-workspace-extractor.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/group/extractors/fs-utils.js :1
import * as fs from 'node:fs'; - fs package/dist/core/group/extractors/go-workspace-extractor.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/group/extractors/include-extractor.js :2
import * as fs from 'node:fs/promises'; - fs package/dist/core/group/extractors/java-workspace-extractor.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/group/extractors/node-workspace-extractor.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/group/extractors/python-workspace-extractor.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/group/extractors/rust-workspace-extractor.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/group/service-boundary-detector.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/group/service.js :5
import fsp from 'node:fs/promises'; - fs package/dist/core/group/storage.js :1
import * as fs from 'node:fs'; - fs package/dist/core/group/sync.js :1
import fs from 'node:fs/promises'; - fs package/dist/core/ingestion/filesystem-walker.js :3
import fs from 'fs/promises'; - fs package/dist/core/ingestion/language-config.js :1
import fs from 'fs/promises'; - fs package/dist/core/ingestion/languages/c/header-scan.js :1
import { readdirSync } from 'fs'; - fs package/dist/core/ingestion/languages/cpp/header-scan.js :1
import { readdirSync } from 'fs'; - fs package/dist/core/ingestion/languages/php/import-target.js :18
import { readFileSync } from 'node:fs'; - fs package/dist/core/ingestion/pipeline-phases/parse-impl.js :27
import fs from 'node:fs'; - fs package/dist/core/ingestion/utils/heap-probe.js :7
import { appendFileSync } from 'node:fs'; - fs package/dist/core/ingestion/workers/worker-pool.js :3
import fs from 'node:fs'; - fs package/dist/core/lbug/csv-generator.js :14
import fs from 'fs/promises'; - fs package/dist/core/lbug/lbug-adapter.d.ts :30
* @param wsFactory Optional WriteStream factory (defaults to fs.createWriteStream) - fs package/dist/core/lbug/lbug-adapter.js :1
import fs from 'fs/promises'; - fs package/dist/core/lbug/lbug-config.js :1
import fs from 'fs/promises'; - fs package/dist/core/lbug/native-check.js :1
import fs from 'fs'; - fs package/dist/core/lbug/pool-adapter.js :17
import fs from 'fs/promises'; - fs package/dist/core/lbug/sidecar-recovery.js :1
import fs from 'fs/promises'; - fs package/dist/core/run-analyze.js :12
import fs from 'fs/promises'; - fs package/dist/core/wiki/generator.js :12
import fs from 'fs/promises'; - fs package/dist/core/wiki/html-viewer.js :7
import fs from 'fs/promises'; - fs package/dist/core/wiki/local-cli-client.js :7
import fs from 'fs/promises'; - fs package/dist/mcp/local/local-backend.js :8
import fs from 'fs/promises'; - fs package/dist/server/api.js :13
import fs from 'fs/promises'; - fs package/dist/server/git-clone.js :10
import fs from 'fs/promises'; - fs package/dist/storage/file-hash.js :21
import fs from 'fs/promises'; - fs package/dist/storage/git.js :2
import { statSync } from 'fs'; - fs package/dist/storage/parse-cache.js :26
import fs from 'fs/promises'; - fs package/dist/storage/parsedfile-store.js :50
import { promises as fs, mkdirSync, writeFileSync } from 'node:fs'; - fs package/dist/storage/repo-manager.d.ts :341
* proceeding would mean `fs.rm(recursive: true)` on whatever odd path - fs package/dist/storage/repo-manager.js :8
import fs from 'fs/promises'; - fs package/dist/storage/scope-index-store.js :28
import { mkdirSync, writeFileSync, readFileSync, rmSync } from 'node:fs'; - fs package/hooks/antigravity/gitnexus-antigravity-hook.cjs :23
const fs = require('fs'); - fs package/hooks/claude/gitnexus-hook.cjs :14
const fs = require('fs'); - fs package/hooks/claude/hook-db-lock-probe.cjs :16
const fs = require('fs'); - fs package/hooks/claude/hook-lock.cjs :1
const fs = require('fs'); - fs package/hooks/claude/resolve-analyze-cmd.cjs :30
const fs = require('fs'); - fs package/scripts/build-tree-sitter-dart.cjs :6
const fs = require('fs'); - fs package/scripts/build-tree-sitter-proto.cjs :32
const fs = require('fs'); - fs package/scripts/build-tree-sitter-swift.cjs :16
const fs = require('fs'); - fs package/scripts/build.js :12
import fs from 'node:fs'; - fs package/scripts/install-duckdb-extension.mjs :2
import fs from 'node:fs/promises'; - fs package/scripts/materialize-vendor-grammars.cjs :12
const fs = require('fs'); - fs package/scripts/run-cross-platform.ts :13
import fs from 'fs';
shell / exec 88
- shell package/dist/cli/analyze.js :12
import { spawn } from 'child_process'; - shell package/dist/cli/resolve-invocation.js :13
import { execFileSync } from 'node:child_process'; - shell package/dist/cli/setup.js :11
import { execFile, execFileSync } from 'child_process'; - shell package/dist/cli/wiki.js :9
import { execSync, execFileSync } from 'child_process'; - shell package/dist/core/embeddings/embedder.js :16
import { execFileSync } from 'child_process'; - shell package/dist/core/git-staleness.js :5
import { execFile, execFileSync } from 'node:child_process'; - shell package/dist/core/group/extractors/elixir-workspace-extractor.js :50
while ((match = aliasRegex.exec(content)) !== null) { - shell package/dist/core/group/extractors/go-workspace-extractor.js :122
while ((match = typeRegex.exec(content)) !== null) { - shell package/dist/core/group/extractors/grpc-extractor.js :127
while ((headerMatch = headerRe.exec(sanitized)) !== null) { - shell package/dist/core/group/extractors/grpc-patterns/go.js :54
const registerMatch = REGISTER_RE.exec(fnText); - shell package/dist/core/group/extractors/grpc-patterns/java.js :124
const m = IMPL_BASE_RE.exec(text); - shell package/dist/core/group/extractors/grpc-patterns/node.js :219
const svcMatch = SERVICE_CLIENT_RE.exec(typeText); - shell package/dist/core/group/extractors/grpc-patterns/python.js :41
const addServicer = ADD_SERVICER_RE.exec(fnText); - shell package/dist/core/group/extractors/http-patterns/java.js :149
const match = REQUEST_LINE_VERB_RE.exec(raw); - shell package/dist/core/group/extractors/include-extractor.js :492
while ((m = INCLUDE_REGEX.exec(scanTarget)) !== null) { - shell package/dist/core/group/extractors/java-workspace-extractor.js :89
while ((match = importRegex.exec(content)) !== null) { - shell package/dist/core/group/extractors/node-workspace-extractor.js :49
while ((match = esImportRegex.exec(content)) !== null) { - shell package/dist/core/group/extractors/python-workspace-extractor.js :83
while ((match = fromImportRegex.exec(content)) !== null) { - shell package/dist/core/group/extractors/rust-workspace-extractor.js :28
const m = /^name\s*=\s*"([^"]+)"/.exec(line); - shell package/dist/core/group/extractors/thrift-extractor.js :94
while ((match = namespaceRe.exec(sanitizedContent)) !== null) { - shell package/dist/core/ingestion/call-processor.js :314
while ((match = destructurePattern.exec(content)) !== null) { - shell package/dist/core/ingestion/call-routing.js :63
const match = /@return\s+\[([^\]]+)\]/.exec(sibling.text); - shell package/dist/core/ingestion/cobol/cobol-copy-expander.js :91
while ((tm = tokenRe.exec(text)) !== null) { - shell package/dist/core/ingestion/cobol/cobol-preprocessor.js :445
while ((qm = quotedRe.exec(text)) !== null) { - shell package/dist/core/ingestion/cpp-ue-preprocessor.js :245
while ((match = re.exec(source)) !== null) { - shell package/dist/core/ingestion/import-resolvers/standard.js :171
const match = JS_EXTENSION_PATTERN.exec(path); - shell package/dist/core/ingestion/languages/cpp/adl.js :338
const m = SITE_KEY_RE.exec(key); - shell package/dist/core/ingestion/languages/csharp/namespace-siblings.js :213
const ns = CS_NAMESPACE_RE.exec(line); - shell package/dist/core/ingestion/languages/dart/interpret.js :62
const gen = SINGLE_ARG_CONTAINERS.exec(s); - shell package/dist/core/ingestion/languages/javascript/captures.js :267
while ((m = re.exec(text)) !== null) { - shell package/dist/core/ingestion/languages/php/captures.js :570
while ((m = PHPDOC_PARAM_RE.exec(commentBlock)) !== null) { - shell package/dist/core/ingestion/markdown-processor.js :90
while ((linkMatch = LINK_RE.exec(file.content)) !== null) { - shell package/dist/core/ingestion/method-extractors/configs/php.js :46
const match = PHPDOC_RETURN_RE.exec(sibling.text); - shell package/dist/core/ingestion/method-extractors/configs/ruby.js :233
const match = YARD_RETURN_RE.exec(sibling.text); - shell package/dist/core/ingestion/method-extractors/configs/typescript-javascript.js :175
const match = JSDOC_RETURN_RE.exec(sibling.text); - shell package/dist/core/ingestion/pipeline-phases/routes.js :61
while ((match = pattern.exec(content)) !== null) { - shell package/dist/core/ingestion/pipeline-phases/tools.js :48
while ((match = toolPattern.exec(content)) !== null) { - shell package/dist/core/ingestion/route-extractors/fastapi-router-bindings.js :121
while ((m = FROM_IMPORT_ROUTER_RE.exec(content)) !== null) { - shell package/dist/core/ingestion/route-extractors/middleware.js :38
while ((nested = nestedRe.exec(remaining)) !== null) { - shell package/dist/core/ingestion/route-extractors/response-shapes.js :55
while ((jsonMatch = jsonPattern.exec(content)) !== null) { - shell package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js :34
const match = MAP_TUPLE_SENTINEL_RE.exec(text); - shell package/dist/core/ingestion/type-extractors/php.js :105
const match = PHPDOC_VAR_RE.exec(sibling.text); - shell package/dist/core/ingestion/type-extractors/ruby.js :115
while ((match = YARD_PARAM_RE.exec(commentBlock)) !== null) { - shell package/dist/core/ingestion/type-extractors/typescript.js :61
while ((match = JSDOC_PARAM_RE.exec(commentBlock)) !== null) { - shell package/dist/core/ingestion/vue-sfc-extractor.js :222
while ((match = SCRIPT_RE.exec(vueContent)) !== null) { - shell package/dist/core/ingestion/workers/parse-worker.js :677
while ((m = PRISMA_QUERY_RE.exec(content)) !== null) { - shell package/dist/core/lbug/extension-loader.js :1
import { spawn } from 'child_process'; - shell package/dist/core/lbug/lbug-config.js :6
import { execFileSync } from 'child_process'; - shell package/dist/core/run-analyze.js :13
import { execFileSync } from 'child_process'; - shell package/dist/core/wiki/cursor-client.js :9
import { spawn, execSync } from 'child_process'; - shell package/dist/core/wiki/generator.js :14
import { execSync, execFileSync } from 'child_process'; - shell package/dist/core/wiki/local-cli-client.js :11
import { execFileSync, spawn } from 'child_process'; - shell package/dist/mcp/local/local-backend.js :2006
const { execFileSync } = await import('child_process'); - shell package/dist/server/analyze-job.d.ts :11
import type { ChildProcess } from 'child_process'; - shell package/dist/server/analyze-worker.d.ts :4
* This file is the entry point for `child_process.fork()`. - shell package/dist/server/analyze-worker.js :4
* This file is the entry point for `child_process.fork()`. - shell package/dist/server/api.js :23
import { fork } from 'child_process'; - shell package/dist/server/git-clone.js :7
import { spawn } from 'child_process'; - shell package/dist/storage/git.js :1
import { execSync } from 'child_process'; - shell package/hooks/antigravity/gitnexus-antigravity-hook.cjs :25
const { spawnSync } = require('child_process'); - shell package/hooks/claude/gitnexus-hook.cjs :16
const { spawnSync } = require('child_process'); - shell package/hooks/claude/hook-db-lock-probe.cjs :18
const { spawnSync } = require('child_process'); - shell package/hooks/claude/resolve-analyze-cmd.cjs :29
const { execFileSync } = require('child_process'); - shell package/scripts/bench-scope-resolution.ts :79
while ((m = classRe.exec(f.content)) !== null) { - shell package/scripts/build-tree-sitter-dart.cjs :8
const { execSync } = require('child_process'); - shell package/scripts/build-tree-sitter-proto.cjs :34
const { execSync } = require('child_process'); - shell package/scripts/build.js :11
import { execSync } from 'node:child_process'; - shell package/scripts/cross-platform-tests.ts :17
* child_process with real spawning, filesystem locking, path.sep), add - shell package/scripts/run-cross-platform.ts :12
import { execFileSync } from 'child_process'; - shell package/web/assets/blockDiagram-7IZFK4PR-B4niSLvR.js :6
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:u(function(){return this.next()||this.lex()},`lex`),begin:u(function(e){this.conditionStack.push(e)},`begin`),popState:u(fun - shell package/web/assets/chunk-3SSMPTDK-BzGeeheI.js :4
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}e(f,`_nonIterableSpread`);function p(e,t){return n(e)||u(e,t)||v(e,t)||d()}e(p,`_slicedToArray`);function m(e){retu - shell package/web/assets/chunk-4R4BOZG6-mKhL59ul.js :46
\r \v \xA0 \u2028\u2029 `.split(``);function Oa(e){let t=typeof e==`string`?new RegExp(e):e;return Da.some(e=>t.test(e))}e(Oa,`isWhitespace`),s(Oa,`isWhitespace`);function ka(e){return e - shell package/web/assets/chunk-7W6UQGC5-CgFyfZ6k.js :1
import{i as e,n as t,t as n}from"./chunk-AQ6EADP3-CCFje6lL.js";var r=t((e,t)=>{(function(n,r){typeof e==`object`&&typeof t<`u`?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof g - shell package/web/assets/chunk-INKRHTLW-ELpfuk9h.js :1
import{C as e,f as t,l as n,r,u as i}from"./chunk-67TQ5CYL-CChC2cAv.js";import{t as a}from"./chunk-AQ6EADP3-CCFje6lL.js";import{V as o,q as s}from"./chunk-7W6UQGC5-CgFyfZ6k.js";import{r as c}from"./ch - shell package/web/assets/chunk-KGFNY3KK-W-VR57xb.js :10
M${g},${_-Q} L${g},${_+p}`;t.look!==`handDrawn`&&(b.roughness=0,b.fillStyle=`solid`);let w=y.path(S,b),D=o.insert(()=>w,`:first-child`);return D.attr(`transform`,`translate(${Q/2}, ${Q/2})`),D.attr(`c - shell package/web/assets/chunk-LCXTWHL2-By5HB3b-.js :6
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:l(function(){return this.next()||this.lex()},`lex`),begin:l(function(e){this.conditionStack.push(e)},`begin`),popState:l(fun - shell package/web/assets/chunk-QA3QBVWF-D5Ha3GgB.js :2
`,`ig`);e=e.trim().replace(r,``).replace(/'/gm,`"`),f.debug(`Detecting diagram directive${n===null?``:` type:`+n} based on the text:${e}`);let i,a=[];for(;(i=t.exec(e))!==null;)if(i.index===t.lastInde - shell package/web/assets/chunk-RG4AUYOV-BQE_DkpL.js :6
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:f(function(){return this.next()||this.lex()},`lex`),begin:f(function(e){this.conditionStack.push(e)},`begin`),popState:f(fun - shell package/web/assets/chunk-RKZBBQEN-BmTPLSyv.js :1
import{t as e}from"./chunk-AQ6EADP3-CCFje6lL.js";import{_ as t,f as n,h as r,i,m as a,n as o,o as s,p as c,t as l}from"./chunk-4R4BOZG6-mKhL59ul.js";var u=class extends i{static{e(this,`TreemapTokenBu - shell package/web/assets/chunk-W44A43WB-lrCpuupA.js :1
import{t as e}from"./chunk-AQ6EADP3-CCFje6lL.js";var t=typeof global==`object`&&global&&global.Object===Object&&global,n=typeof self==`object`&&self&&self.Object===Object&&self,r=t||n||Function(`retur - shell package/web/assets/diagram-GF46GFSD-B1qab2Ah.js :1
import{F as e,H as t,I as n,K as r,N as i,R as a,S as o,Y as s,j as c,l,tt as u}from"./chunk-67TQ5CYL-CChC2cAv.js";import{t as d}from"./chunk-AQ6EADP3-CCFje6lL.js";import{T as f,V as p,n as m,p as h,q - shell package/web/assets/erDiagram-L5TCEMPS-Db-IYTmm.js :6
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:d(function(){return this.next()||this.lex()},`lex`),begin:d(function(e){this.conditionStack.push(e)},`begin`),popState:d(fun - shell package/web/assets/flowDiagram-H6V6AXG4-BHDoyVoW.js :9
You have to call mermaid.initialize.`)}isLinkData(e){return typeof e==`object`&&!!e&&`id`in e&&typeof e.id==`string`}addLink(e,t,n){let r=this.isLinkData(n)?n.id.replace(`@`,``):void 0;h.info(`addLink - shell package/web/assets/ganttDiagram-JCBTUEKG-BHQssTz6.js :1
import{F as e,H as t,I as n,K as r,N as i,S as a,Y as o,Z as s,r as c,tt as l}from"./chunk-67TQ5CYL-CChC2cAv.js";import{i as u,n as d,t as f}from"./chunk-AQ6EADP3-CCFje6lL.js";import{A as p,B as m,C a - shell package/web/assets/katex-K3KEBU37-CrVLz8l7.js :1
import{t as e}from"./chunk-AQ6EADP3-CCFje6lL.js";var t=class t{static{e(this,`SourceLocation`)}constructor(e,t,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end - shell package/web/assets/requirementDiagram-JXO7QTGE-QCD6I29n.js :6
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:u(function(){return this.next()||this.lex()},`lex`),begin:u(function(e){this.conditionStack.push(e)},`begin`),popState:u(fun - shell package/web/assets/sequenceDiagram-VS2MUI6T-DScFwLz2.js :10
}`,o=E(e,{schema:T})}r=o?.type??r,o?.alias&&(!n||n.text===t)&&(n={text:o.alias,wrap:n?.wrap,type:r});let s=this.state.records.actors.get(e);if(s){if(this.state.records.currentBox&&s.box&&this.state.re - shell package/web/assets/wardleyDiagram-CUQ6CDDI-Dk1z7H2T.js :1
import{F as e,H as t,I as n,K as r,N as i,R as a,S as o,Y as s,Z as c,l,tt as u}from"./chunk-67TQ5CYL-CChC2cAv.js";import{t as d}from"./chunk-AQ6EADP3-CCFje6lL.js";import{q as f}from"./chunk-7W6UQGC5-
network 13
- net package/dist/cli/eval-server.js :31
import http from 'http'; - net package/dist/cli/publish.js :91
response = await fetch(UNDERSTAND_QUICKLY_DISPATCH_URL, { - net package/dist/core/group/extractors/http-patterns/node.js :8
* - `fetch(url)` / `fetch(url, { method: 'POST' })` consumers - net package/dist/core/ingestion/call-processor.d.ts :13
* from `fetch()` calls to Next.js Route nodes. - net package/dist/core/ingestion/call-processor.js :13
* from `fetch()` calls to Next.js Route nodes. - net package/dist/core/ingestion/pipeline-phases/routes.d.ts :6
* Also links middleware, processes fetch() calls, and scans HTML templates. - net package/dist/core/ingestion/pipeline-phases/routes.js :6
* Also links middleware, processes fetch() calls, and scans HTML templates. - net package/dist/core/ingestion/route-extractors/nextjs.js :13
// from page-level route handlers that fetch() calls won't match anyway). - net package/dist/core/ingestion/tree-sitter-queries.js :332
; HTTP consumers: fetch('/path'), axios.get('/path'), $.get('/path'), etc. - net package/dist/core/ingestion/workers/parse-worker.js :596
* Walk a tree-sitter AST subtree looking for a call to the global `fetch()` function. - net package/dist/core/wiki/llm-client.js :147
// Validate base URL before any fetch (CodeQL js/http-to-file-access) - net package/dist/server/git-clone.js :11
import { isIP } from 'net'; - net package/web/assets/katex-K3KEBU37-CrVLz8l7.js :256
`+g+` children.`);for(var b=0;b<g;b++){var x=new qe([new Je(f[b])],{width:`400em`,height:k(h),viewBox:`0 0 `+e+` `+m,preserveAspectRatio:v[b]+` slice`}),S=W.makeSvgSpan([_[b]],[x],n);if(g===1)return{s
secrets 3
- secrets package/dist/cli/wiki.js :314
const envKey = process.env.GITNEXUS_API_KEY || process.env.OPENAI_API_KEY || ''; - secrets package/dist/core/embeddings/http-client.js :45
apiKey: process.env.GITNEXUS_EMBEDDING_API_KEY ?? 'unused', - secrets package/dist/core/wiki/llm-client.js :27
process.env.GITNEXUS_API_KEY ||
install hooks 1
- postinstall package/package.json :52
node scripts/materialize-vendor-grammars.cjs && node scripts/build-tree-sitter-dart.cjs && node scripts/build-tree-sitter-proto.cjs && node scripts/build-tree-sitter-swift.cjs
declared dependencies 49
- @huggingface/transformers@^4.1.0
- @ladybugdb/core@^0.17.0
- @modelcontextprotocol/sdk@^1.0.0
- @scarf/scarf@^1.4.0
- cli-progress@^3.12.0
- commander@^14.0.3
- cors@^2.8.5
- express@^5.2.1
- express-rate-limit@^8.4.1
- glob@^13.0.6
- graphology@^0.26.0
- graphology-indices@^0.17.0
- graphology-utils@^2.3.0
- ignore@^7.0.5
- js-yaml@^4.1.1
- jsonc-parser@^3.3.1
- mnemonist@^0.40.3
- onnxruntime-common@^1.26.0
- onnxruntime-node@^1.24.0
- pandemonium@^2.4.0
- pino@^10.3.1
- pino-pretty@^13.1.3
- tree-sitter@0.21.1
- tree-sitter-c@0.21.4
- tree-sitter-c-sharp@0.23.1
- tree-sitter-cpp@0.23.2
- tree-sitter-go@^0.23.0
- tree-sitter-java@^0.23.5
- tree-sitter-javascript@^0.23.0
- tree-sitter-php@^0.23.0
- tree-sitter-python@0.23.4
- tree-sitter-ruby@^0.23.1
- tree-sitter-rust@0.23.1
- tree-sitter-typescript@^0.23.2
- uuid@^14.0.0
- @types/cli-progress@^3.11.6
- @types/cors@^2.8.17
- @types/express@^5.0.6
- @types/js-yaml@^4.0.9
- @types/node@^25.6.0
- @types/uuid@^11.0.0
- @vitest/coverage-v8@^4.0.18
- gitnexus-shared@file:../gitnexus-shared
- tsx@^4.0.0
- typescript@^5.4.5
- vitest@^4.0.18
- node-addon-api@^8.0.0
- node-gyp-build@^4.8.0
- tree-sitter-kotlin@^0.3.8