npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@deepracticex/context-manager

v1.0.1

Published

Simple and powerful AI context formatter with layered XML structure

Downloads

8

Readme

@deepracticex/context-manager

简单而强大的AI上下文格式化器,专注于文本组装,职责单一

🎯 核心理念

职责单一,专注格式化

  • ✅ 只负责文本格式化和组装
  • ✅ 数据由外部传入,不处理数据获取
  • ✅ XML结构清晰,四层可选组合
  • ✅ API简单,一个方法解决所有需求

📦 安装

npm install @deepracticex/context-manager

🚀 快速开始

import { ContextManager } from '@deepracticex/context-manager';

// 基础使用
const context = ContextManager.format({
  role: "You are a helpful assistant",
  current: "Hello world"
});

console.log(context);
// 输出:
// <context>
// <role>You are a helpful assistant</role>
// 
// <current>Hello world</current>
// </context>

📋 四层结构

| 层级 | 标签 | 说明 | 可选 | |-----|------|------|------| | 第一层 | <role> | AI角色定义 | ✅ | | 第二层 | <tools> | MCP工具列表 | ✅ | | 第三层 | <conversation> | 历史对话 | ✅ | | 第四层 | <current> | 当前消息 | ✅ |

💡 使用示例

完整四层结构

const context = ContextManager.format({
  role: "You are a frontend developer with expertise in React",
  tools: [
    "code_analyzer: 分析代码质量和性能",
    "debugger: 帮助调试问题", 
    "optimizer: 提供优化建议"
  ],
  conversation: [
    "User: 你好,我需要帮助优化我的React应用",
    "Assistant: 你好!我很乐意帮助你优化React应用。请告诉我具体遇到了什么问题?",
    "User: 我的组件渲染很慢,特别是列表组件"
  ],
  current: "这是我的列表组件代码,请帮我看看性能问题"
});

输出:

<context>
<role>You are a frontend developer with expertise in React</role>

<tools>
- code_analyzer: 分析代码质量和性能
- debugger: 帮助调试问题
- optimizer: 提供优化建议
</tools>

<conversation>
User: 你好,我需要帮助优化我的React应用
Assistant: 你好!我很乐意帮助你优化React应用。请告诉我具体遇到了什么问题?
User: 我的组件渲染很慢,特别是列表组件
</conversation>

<current>这是我的列表组件代码,请帮我看看性能问题</current>
</context>

层级可选组合

// 只要角色和当前消息
const simple = ContextManager.format({
  role: "You are a coding assistant",
  current: "Help me write a function"
});

// 只要工具和当前消息  
const withTools = ContextManager.format({
  tools: ["generator: 代码生成", "reviewer: 代码审查"],
  current: "Generate a React component"
});

// 只要对话历史
const historyOnly = ContextManager.format({
  conversation: ["User: Hello", "Assistant: Hi!"],
  current: "How are you?"
});

数据格式灵活支持

// 工具:数组格式(自动添加 "- " 前缀)
ContextManager.format({
  tools: ["analyzer: 分析", "debugger: 调试"]
});

// 工具:字符串格式(直接使用)
ContextManager.format({
  tools: "analyzer: 分析工具\ndebugger: 调试工具"
});

// 对话:数组格式(换行拼接)
ContextManager.format({
  conversation: ["User: Hello", "Assistant: Hi"]
});

// 对话:字符串格式(直接使用)
ContextManager.format({
  conversation: "User: Hello\nAssistant: Hi"
});

⚙️ 格式选项

// 禁用根标签
const withoutRoot = ContextManager.format(data, {
  includeRootTag: false
});

// 自定义空行间距
const customSpacing = ContextManager.format(data, {
  spacingLines: 2
});

📝 API 参考

ContextManager.format(data, options?)

唯一核心方法,负责所有上下文格式化

参数:

  • data: ContextData - 上下文数据,所有层都是可选的
  • options?: FormatOptions - 格式化选项

返回: string - 格式化后的XML字符串

ContextData 接口

interface ContextData {
  role?: string;                    // 角色层
  tools?: string | string[];        // 工具层  
  conversation?: string | string[];  // 对话层
  current?: string;                 // 当前消息层
}

FormatOptions 接口

interface FormatOptions {
  includeRootTag?: boolean;    // 是否包含 <context> 根标签,默认 true
  spacingLines?: number;       // 层级间空行数量,默认 1
}

🎨 设计特点

  • 职责单一:只做文本格式化,不处理数据获取
  • 结构清晰:XML标签天然分层,便于阅读和解析
  • 高度复用:可在任何需要上下文的地方调用
  • 类型安全:完整的TypeScript类型支持
  • 零依赖:无运行时依赖,轻量级设计

📄 License

MIT

🤝 Contributing

欢迎提交 Issue 和 Pull Request!


简单而强大,专注于做好一件事 🎯