
Research
/Security News
PolinRider Spreads Through Compromised GitHub Accounts and Packagist
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.
@riv-io/langchain
Advanced tools
Adapter LangChain.js do Riv — tools prontas (riv_authorize, riv_get_activity) e guard determinístico para tools de pagamento.
Adapter LangChain.js do Riv — governança financeira para agentes, construído
sobre @riv-io/sdk.
npm install @riv-io/langchain @langchain/core
withRivGuardEmbrulhe sua tool de pagamento com o guard: o Riv é consultado antes de cada execução, deterministicamente — a governança não depende de o LLM lembrar de pedir autorização.
import { withRivGuard } from "@riv-io/langchain";
const guardedPay = withRivGuard(payInvoiceTool, {
apiKey: process.env.RIV_API_KEY!,
extract: (input) => ({ amount: input.total, currency: "BRL" }),
});
const agent = createReactAgent({ llm, tools: [guardedPay] });
allow → a tool executa normalmente.block / require_approval → a tool nem executa; o agente recebe o
veredito (decisão, motivo, activityId) como texto.extract mapeia o input da sua tool para { amount, currency, description? }.Para reusar um client: withRivGuard(tool, { riv: meuClient, extract }).
As opções aceitam também baseUrl — default http://localhost:3000 (dev
local); em produção, aponte para https://riv-io.vercel.app:
withRivGuard(tool, { apiKey, baseUrl: "https://riv-io.vercel.app", extract })
ou rivTools({ apiKey, baseUrl: "https://riv-io.vercel.app" }).
rivToolsTools prontas para a lista do agente — para consultar o ledger e para fluxos sem uma tool de pagamento a embrulhar:
import { rivTools } from "@riv-io/langchain";
const agent = createReactAgent({
llm,
tools: [...rivTools({ apiKey: process.env.RIV_API_KEY! }), ...outrasTools],
});
riv_authorize({ amount, currency, description?, category? }) — pede a
decisão de governança (mesma semântica do MCP server do Riv); category
ativa mandatos por categoria.riv_get_activity({ activityId?, limit? }) — consulta pontual ou extrato.Atenção: por este caminho, executar o gasto só quando ALLOW depende do LLM.
Quando existir uma tool de pagamento, prefira o withRivGuard.
cd adapters/langchain
npm install
npm run build # tsup → dist/ (ESM + CJS + d.ts)
npm run typecheck
npm run test # unitários (fetch mockado)
# E2E (a partir da raiz do repo; sobe a app em porta efêmera):
# node --env-file=.env scripts/verify-langchain.mjs
FAQs
Adapter LangChain.js do Riv — tools prontas (riv_authorize, riv_get_activity) e guard determinístico para tools de pagamento.
We found that @riv-io/langchain 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.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.

Company News
Allow myself to introduce... myself.