@s52/my-ai-stack
v0.2.0
Published
Official SDK for My AI Stack — drop-in heartbeat + value event reporting for tools deployed into client environments
Downloads
303
Maintainers
Readme
@s52/my-ai-stack
Official SDK for My AI Stack. Drop into any deployed tool to report heartbeats and value events to the observability platform.
npm install @s52/my-ai-stackQuick start
import { MyAIStack } from "@s52/my-ai-stack"
MyAIStack.init({
toolSlug: "your-tool",
apiUrl: "https://your-host",
})
export const { emit } = MyAIStack
await emit("chat_event", {})That's it. Heartbeats fire automatically every 60s (server-side only — init() no-ops the heartbeat in browser). emit() queues fire-and-forget; the SDK retries with exponential backoff on transient failures.
Configuration
| Option | Default | Notes |
|-------------------|-------------|----------------------------------------------------------|
| toolSlug | required | The slug registered in the admin UI |
| apiUrl | required | Base URL of the My AI Stack API |
| apiKey | none | Reserved for v1.1 per-tool auth; currently ignored |
| intervalSeconds | 60 | Heartbeat ping interval (server-only) |
| maxRetries | 3 | Per-request retry budget on 5xx / 408 / 429 |
| timeoutMs | 10000 | Per-attempt fetch timeout |
| environment | NODE_ENV | Reported with heartbeat |
| onError | console.warn| Called for every failed send / dropped event |
Limits
- Event queue is in-memory only — a process crash drops queued events.
- Heartbeats fire on Node only; browser sessions are emit-only.
- The tool must be registered in the admin UI before the first ping;
init()does not auto-register.
Node ≥20.
