
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
house-client
Advanced tools
Minimal Node.js client SDK for the LLM Logging System.
npm install house-client
# or
yarn add house-client
# or
bun add house-client
import { LogClient } from 'house-client'
const logClient = new LogClient({
baseUrl: 'http://localhost:9001',
apiKey: 'sk_your_api_key_here',
onError: ({ error }) => {
console.error('Log send failed:', error.message)
},
})
// Start a generation (non-blocking - returns immediately)
// generationId and requestId are auto-generated
const gen = logClient.generationStart({
// Required
threadId: 'thread-456',
userId: 'user-789',
model: 'gpt-4',
messages: [{ role: 'user', content: 'What is the capital of France?' }],
// Optional
tenantId: 'tenant-123', // Tenant ID (auto-created if not exists)
requestId: 'req-001', // Request ID (defaults to generationId)
threadTitle: 'Chat about Paris', // Thread title (auto-upserts thread)
name: 'chat', // Generation name
})
console.log(gen.generationId) // Auto-generated ID
try {
const result = await streamText({
// ... your LLM call
onFinish: ({ usage, response }) => {
// End generation (non-blocking)
// latencyMs is auto-calculated
gen.end({
responseMessages: response.messages,
usage,
})
},
})
} catch (error) {
// Record error (non-blocking)
gen.error({
kind: 'error',
message: error.message,
stack: error.stack,
})
}
// Upload a file (sent immediately)
await gen.uploadFile({
file: fileBuffer,
filename: 'diagram.png',
contentType: 'image/png',
})
Ensure all pending logs are sent before your process exits:
process.on('SIGTERM', async () => {
await logClient.shutdown()
process.exit(0)
})
// Or manually flush
await logClient.flush()
new LogClient({
baseUrl: string, // Server URL
apiKey: string, // API key
concurrency?: number, // Max concurrent requests (default: 5)
onError?: (params) => void // Error callback
})
| Method | Returns | Description |
|---|---|---|
generationStart(params) | Generation | Start a new generation. Non-blocking. |
flush() | Promise<void> | Force send all pending logs |
shutdown() | Promise<void> | Graceful shutdown (flush + stop accepting) |
getQueueStatus() | { pending, inFlight } | Get queue status |
| Property | Type | Description |
|---|---|---|
generationId | string | Auto-generated unique ID |
| Method | Returns | Description |
|---|---|---|
end(params) | void | Complete generation. Non-blocking. |
error(params) | void | Record an error. Non-blocking. |
uploadFile(params) | Promise<{ fileId }> | Upload a file (sent immediately) |
npm login# 1. Navigate to client-sdk directory
cd packages/client-sdk
# 2. Update version (choose one)
npm version patch # 0.1.0 -> 0.1.1
npm version minor # 0.1.0 -> 0.2.0
npm version major # 0.1.0 -> 1.0.0
# 3. Build (runs automatically via prepublishOnly)
bun run build
# 4. Dry run to verify package contents
npm publish --dry-run
# 5. Publish to npm
npm publish
# 6. (Optional) Push version tag to git
git push && git push --tags
# Check package info
npm info house-client
# Install in a test project
npm install house-client
For automated publishing, set the NPM_TOKEN environment variable:
# In CI environment
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
npm publish
FAQs
Minimal Node.js client SDK for the LLM Logging System
We found that house-client 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.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.