@expressots/studio-agent

中文文档
4.3.0发布于 2026/09/13MITTypeScriptES Module近 30 天下载 19万

Instrumentation agent for ExpressoTS Studio - route discovery, tracing, and request recording

原始使用文档
文档目录11 节
  1. Features
  2. Installation
  3. Quick Start
  4. Configuration
  5. Components
  6. StudioAgent
  7. RouteScanner
  8. RequestRecorder
  9. StudioTracer
  10. WebSocket Events
  11. License

@expressots/studio-agent

Instrumentation agent for ExpressoTS Studio - route discovery, tracing, and request recording.

npm License Discord Build

Features

  • Route Discovery: Automatically scans your ExpressoTS application to discover all routes, controllers, and services
  • OpenTelemetry Tracing: Full distributed tracing with automatic instrumentation
  • Request Recording: Record and replay HTTP requests for debugging
  • WebSocket Communication: Real-time updates to Studio UI
  • Metrics Collection: P50/P95/P99 latency, error rates, and more

Installation

npm install @expressots/studio-agent

Quick Start

import { StudioAgent } from "@expressots/studio-agent";

const agent = new StudioAgent({
  port: 3334,
  serviceName: "my-app",
  enableRecording: true,
});

// Start the agent
await agent.start();

// Use the middleware (optional, for request recording)
app.use(agent.createMiddleware());

// Get discovered routes
const routes = agent.getRoutes();

// Stop when done
await agent.stop();

Configuration

interface AgentConfig {
  /** Port for the agent WebSocket server (default: 3334) */
  port: number;

  /** Path to store SQLite database (default: '.studio/studio.db') */
  dbPath: string;

  /** Enable request/response recording (default: true) */
  enableRecording: boolean;

  /** Maximum number of recorded exchanges to keep (default: 1000) */
  maxRecordedExchanges: number;

  /** Enable performance profiling (default: true) */
  enableProfiling: boolean;

  /** Sample rate for tracing 0-1 (default: 1.0) */
  traceSampleRate: number;

  /** Custom service name (default: 'expressots-app') */
  serviceName: string;

  /** Express app instance for runtime route scanning */
  expressApp?: any;
}

Components

StudioAgent

Main orchestrator that coordinates all functionality.

RouteScanner

Scans TypeScript source files to discover routes and their metadata:

import { RouteScanner } from "@expressots/studio-agent";

const scanner = new RouteScanner("./src");
const structure = await scanner.scan();

console.log(structure.controllers);
console.log(structure.services);
console.log(structure.dependencies);

RequestRecorder

Records HTTP requests/responses for later replay:

import { RequestRecorder } from "@expressots/studio-agent";

const recorder = new RequestRecorder(".studio/studio.db");
await recorder.initialize();

// Get recent exchanges
const exchanges = recorder.getRecentExchanges(100);

// Search by path
const results = recorder.searchExchanges("/api/users", "GET");

StudioTracer

OpenTelemetry tracer with custom span processing:

import { StudioTracer } from "@expressots/studio-agent";

const tracer = new StudioTracer("my-service");
await tracer.start((trace) => {
  console.log("Trace completed:", trace.traceId);
});

// Create custom spans
await tracer.createSpan(
  "my-operation",
  async () => {
    // Your code here
  },
  { attribute: "value" },
);

WebSocket Events

The agent emits real-time events to connected clients:

EventDescription
routesDiscovered routes
traceCompleted trace
requestNew request recorded
metricsUpdated metrics
structureApplication structure

License

MIT © ExpressoTS

版本与发布记录

@expressots/studio-agent 共发布 12 个版本,首次发布于 2026/05/14;过去 12 个月发布了 12 个版本。

版本发布日期距今
4.3.0latest2026/09/132 个月前
4.2.12026/08/043 个月前
4.2.02026/08/043 个月前
4.1.12026/07/283 个月前
4.1.02026/07/283 个月前
4.0.02026/07/173 个月前

其他发布通道:preview → 4.0.0-preview.1,next → 4.0.0-preview.3.4。

关于 @expressots/studio-agent 的常见问题

@expressots/studio-agent 是什么?

Instrumentation agent for ExpressoTS Studio - route discovery, tracing, and request recording

如何安装 @expressots/studio-agent?

在项目目录运行 npm install @expressots/studio-agent,或使用 pnpm add / yarn add / bun add。

@expressots/studio-agent 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@expressots/studio-agent 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@expressots/studio-agent 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@expressots/studio-agent 可以商用吗?

@expressots/studio-agent 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@expressots/studio-agent 的下载量有多少?

根据 npm 官方下载统计,@expressots/studio-agent 在 2026/10/14 – 2026/11/12 这 30 天内被下载 189,632 次,日均约 6,321 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@expressots/studio-agent 还在维护吗?

最新版本 4.3.0 发布于 2026/09/13(2 个月前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/05/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。