{"_id":"@agentscrimmage/observe","name":"@agentscrimmage/observe","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@agentscrimmage/observe","version":"0.1.0","description":"Observe SDK — send traces from your AI agent to Agent Scrimmage for monitoring, issue detection, and quality scoring.","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","dev":"tsup src/index.ts --format cjs,esm --dts --watch"},"keywords":["ai","agent","monitoring","observability","llm","scrimmage"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SRidez-app/training.git","directory":"packages/observe-sdk"},"devDependencies":{"tsup":"^8.0.0","typescript":"^5.0.0"},"gitHead":"08768cbd20f483053deafa6b7ab1235f4d197de1","_id":"@agentscrimmage/observe@0.1.0","bugs":{"url":"https://github.com/SRidez-app/training/issues"},"homepage":"https://github.com/SRidez-app/training#readme","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-ClTkTboOYfw+ZeKSygoci8ZzIqekgzilpnGahLqvWS+5ZJD2JkHzuGiI4YnU1OArkdd6y5AubHcBtGshJ53DJA==","shasum":"44497e24ea68938815cbde3d122b1e7e8f495508","tarball":"https://registry.npmjs.org/@agentscrimmage/observe/-/observe-0.1.0.tgz","fileCount":6,"unpackedSize":25577,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJPHPwmEbCS10+5WcTkVi4rb8BcJU9zwPim7hq4fJ8pwIgAML3rkpg8COq7W3rVIqUsMnEjerDd1RKwx/Z43gh08Q="}]},"_npmUser":{"name":"pacman_ayubzai","email":"adibayubzai1@gmail.com"},"directories":{},"maintainers":[{"name":"pacman_ayubzai","email":"adibayubzai1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/observe_0.1.0_1783383372894_0.959315807646099"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-07T00:16:12.616Z","0.1.0":"2026-07-07T00:16:13.059Z","modified":"2026-07-07T00:16:13.390Z"},"maintainers":[{"name":"pacman_ayubzai","email":"adibayubzai1@gmail.com"}],"description":"Observe SDK — send traces from your AI agent to Agent Scrimmage for monitoring, issue detection, and quality scoring.","homepage":"https://github.com/SRidez-app/training#readme","keywords":["ai","agent","monitoring","observability","llm","scrimmage"],"repository":{"type":"git","url":"git+https://github.com/SRidez-app/training.git","directory":"packages/observe-sdk"},"bugs":{"url":"https://github.com/SRidez-app/training/issues"},"license":"MIT","readme":"# @agentscrimmage/observe\n\nSend traces from your AI agent to [Agent Scrimmage](https://agentscrimmage.com) for monitoring, issue detection, and quality scoring.\n\n## Install\n\n```bash\nnpm install @agentscrimmage/observe\n```\n\n## Quick start\n\n```typescript\nimport { observe, wrapAnthropicCall } from '@agentscrimmage/observe'\nimport Anthropic from '@anthropic-ai/sdk'\n\nconst client = observe({\n  apiKey: 'as_live_xxxxx',  // from your Observe setup page\n})\n\nconst anthropic = new Anthropic()\n\n// Wrap any Anthropic call — trace is sent automatically\nconst response = await wrapAnthropicCall(\n  client,\n  () => anthropic.messages.create({\n    model: 'claude-sonnet-4',\n    messages: [{ role: 'user', content: 'Hello' }],\n    max_tokens: 1024,\n  }),\n  { sessionId: 'conv-123', userId: 'user-456' }\n)\n\n// Or send traces manually\nclient.sendTrace({\n  traceId: crypto.randomUUID(),\n  sessionId: 'conv-123',\n  type: 'agent_response',\n  llm: {\n    provider: 'anthropic',\n    model: 'claude-sonnet-4',\n    outputMessage: 'Hello! How can I help?',\n    inputTokens: 10,\n    outputTokens: 8,\n    latencyMs: 450,\n  },\n})\n\n// Flush before exit\nawait client.shutdown()\n```\n\n## OpenAI\n\n```typescript\nimport { observe, wrapOpenAICall } from '@agentscrimmage/observe'\nimport OpenAI from 'openai'\n\nconst client = observe({ apiKey: 'as_live_xxxxx' })\nconst openai = new OpenAI()\n\nconst response = await wrapOpenAICall(\n  client,\n  () => openai.chat.completions.create({\n    model: 'gpt-4o',\n    messages: [{ role: 'user', content: 'Hello' }],\n  }),\n  { sessionId: 'conv-123' }\n)\n```\n\n## Features\n\n- **Auto-batching** — traces are queued and sent in batches (default: 25 traces or every 5 seconds)\n- **Retry on failure** — 5xx errors retry up to 2 times with backoff\n- **Zero blocking** — `sendTrace()` never blocks your agent; errors go to `onError` callback\n- **TypeScript types** — full type safety for all trace fields\n- **Provider wrappers** — `wrapAnthropicCall()` and `wrapOpenAICall()` measure latency and extract token counts automatically\n- **Tool traces** — `sendToolTrace()` for tracking tool calls\n- **User messages** — `sendUserMessage()` for tracking user input\n\n## Configuration\n\n```typescript\nconst client = observe({\n  apiKey: 'as_live_xxxxx',           // required\n  baseUrl: 'https://yourdomain.com', // default: https://agentscrimmage.com\n  batchSize: 25,                     // flush after N traces\n  flushIntervalMs: 5000,             // flush every N ms\n  debug: false,                      // log to console\n  onError: (err, traces) => {        // called on flush failure\n    console.error('Failed to send', traces.length, 'traces:', err.message)\n  },\n})\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-4cd18fe2be1c5f45c086ef1146423982"}