AgentSkillsCN

ts-bridge

为 NovelSaga CLI JSON-RPC 服务开发 TypeScript 桥接——在修改 projects/cli-js-bridges 时使用。

SKILL.md
--- frontmatter
name: ts-bridge
description: TypeScript bridge development for NovelSaga CLI JSON-RPC services - use when modifying projects/cli-js-bridges

TypeScript Bridge Development

Quick Reference

  • ESM modules: "type": "module" in package.json
  • JSON-RPC 2.0: Format "service.method" for routing
  • Logs to stderr: Never console.log() in bridges (stdout is for JSON-RPC)

Architecture

code
CLI (Rust) ←--JSON-RPC--→ Bridge (TS) ←--→ Runtime (Node/Bun/Deno)

Service Pattern

typescript
import { createBridgeServer } from '@nsaga/bridge-core'

const server = createBridgeServer()

server.registerService('config', {
  async load(params: LoadParams): Promise<Config> {
    // Implementation
  },
})

await server.start()

Build Commands

TaskCommand
Incremental build./xtask.sh build-js
Force rebuild./xtask.sh build-js --force

Output Locations

  • Package dists: projects/cli-js-bridges/*/dist/
  • CLI assets: projects/cli/assets/js/dist/

Anti-Patterns

Don'tDo Instead
npm install in subprojectpnpm install at root
Relative imports outside rootDirUse @nsaga/bridge-*
console.log() in bridgesconsole.error() for logs
Modify _config.tsExtend in separate files

When to Use

Load this skill when working on:

  • projects/cli-js-bridges/**/*.ts
  • JSON-RPC service implementations
  • Bridge runtime adapters