
Threat Research
/Security News
Searchjacked: Hidden Browser Extensions Hijack Searches for 13 Million Users
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.
@farming-labs/grag
Advanced tools
TypeScript GraphRAG primitives for apps that want graph-backed retrieval, citations, and relational storage without leaving the TypeScript ecosystem.
npm install @farming-labs/grag kysely
Install the database driver you use separately:
npm install pg
npm install better-sqlite3
npm install mysql2
@farming-labs/orm adapter from @farming-labs/grag/orm.import {
MemoryGraphRagStore,
chunkDocuments,
createGraphRagService,
relationalRowsToDocuments
} from "@farming-labs/grag";
const rows = [
{ id: 1, customer: "Acme", body: "The billing export failed after migration." },
{ id: 2, customer: "Globex", body: "Password reset worked." }
];
const documents = relationalRowsToDocuments({
tableName: "support_tickets",
rows,
idColumn: "id",
titleColumn: "customer",
textColumn: "body"
});
const graph = chunkDocuments(documents);
const store = new MemoryGraphRagStore();
await store.upsertGraph(graph);
const grag = createGraphRagService({ store });
const answer = await grag.ask("What failed after the migration?");
console.log(answer.answer);
console.log(answer.citations);
import { Kysely, PostgresDialect } from "kysely";
import { Pool } from "pg";
import {
SqlGraphRagStore,
applyGraphRagMigrations,
type GraphRagSqlDatabase
} from "@farming-labs/grag";
const db = new Kysely<GraphRagSqlDatabase>({
dialect: new PostgresDialect({
pool: new Pool({ connectionString: process.env.DATABASE_URL })
})
});
await applyGraphRagMigrations(db, "postgres");
const store = new SqlGraphRagStore({ db });
import { createGraphRagService } from "@farming-labs/grag";
import { OpenAiChatModel, OpenAiEmbeddingModel } from "@farming-labs/grag/openai";
const grag = createGraphRagService({
store,
model: new OpenAiChatModel(),
embeddingModel: new OpenAiEmbeddingModel()
});
const result = await grag.ask("How does retrieval work?", {
responseStyle: "short answer with citations"
});
grag studio ./snapshot.json --port 3333 --open
grag retrieve ./snapshot.json "How does graph expansion help retrieval?"
grag repo . --ask "What does this repository do?" --snapshot repo.snapshot.json
pnpm install
pnpm --filter @farming-labs/grag check
pnpm --filter @farming-labs/grag test
pnpm --filter @farming-labs/grag build
From the monorepo root, pnpm build compiles the package, CLI Studio assets, and docs app.
FAQs
TypeScript GraphRAG primitives with relational database storage.
The npm package @farming-labs/grag receives a total of 0 weekly downloads. As such, @farming-labs/grag popularity was classified as not popular.
We found that @farming-labs/grag demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Threat Research
/Security News
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.

Threat Research
Malicious Firefox extensions mimic Phantom, Jupiter, and Bitget wallets to steal recovery phrases and private keys, with one fetching its payload remotely.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.