smithery/comet-ml

typescript-sdk

TypeScript SDK patterns for Opik. Use when working in sdks/typescript.

Installation

$ npx skills add smithery/comet-ml --skill typescript-sdk

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/comet-ml.

npx skills add smithery/comet-ml

Browse all from smithery/comet-ml

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,780 B
  • docs SUMMARY.md 97 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

TypeScript SDK

Architecture

  • Layered, non-blocking by default
  • Data buffered and flushed async to backend
  • Node >= 18, ESM + CJS builds

Layer Flow

Public API → OpikClient → Domain (Trace/Span) → BatchQueues → REST Client → Backend

Critical Gotchas

  • When changing dependencies or minimum versions, update and verify version references in README.md and integration README files in the same PR.

Flush Before Exit

// ✅ REQUIRED - especially in CLI/tests
await client.flush();
// or globally:
await flushAll();

Domain Objects Don't Do HTTP

// ✅ GOOD - domain objects enqueue, not HTTP
trace.update({ metadata: { key: 'value' } }); // Enqueues update
trace.end();  // Enqueues update

// ❌ BAD - don't call REST directly from domain

Never Leak rest_api

// ✅ GOOD - export from public API
export { Opik, track, flushAll } from 'opik';

// ❌ BAD - don't expose generated clients
import { TracesApi } from 'opik/rest_api';  // Internal!

Batching Semantics

  • Updates wait for pending creates
  • Deletes wait for creates and updates
  • flush() flushes all queues in order
  • Debounce window configurable via OpikConfig

Error Handling

  • HTTP failures: OpikApiError, OpikApiTimeoutError
  • 404s translate to domain errors: DatasetNotFoundError, ExperimentNotFoundError
  • Never swallow errors, include context in logs

Integration Guidelines

  • Integrations wrap public API only
  • Keep adapters thin, non-blocking
  • Provide flush() escape hatch if needed

Reference Files

  • [testing.md](testing.md) - Vitest patterns, mocking, flush timing