首页
/ Project: My TypeScript Library

Project: My TypeScript Library

2026-09-04 17:46:41作者:咎竹峻Karen

General Instructions

  • When you generate new TypeScript code, follow the existing coding style.
  • Ensure all new functions and classes have JSDoc comments.
  • Prefer functional programming paradigms where appropriate.

Coding Style

  • Use 2 spaces for indentation.
  • Prefix interface names with I (for example, IUserService).
  • Always use strict equality (=== and !==).

这类文件适合放在仓库根目录提交进版本控制,使团队成员和 AI 共享同一份编码约定。

## 使用 /memory 命令管理上下文

你可以用 `/memory` 命令与已加载的上下文文件交互:

- **`/memory show`**:显示当前分层记忆的完整拼接内容,方便你审查模型正在接收的确切指令上下文;
- **`/memory reload`**:强制重新扫描并重新加载所有已配置位置的 `GEMINI.md` 文件。

从 [memoryCommand.ts](https://gitcode.com/GitHub_Trending/gemi/gemini-cli/blob/3c311beac2e78336816dd4a123db39743f9fbf85/packages/cli/src/ui/commands/memoryCommand.ts?utm_source=gitcode_repo_files) 的实现看,`/memory` 实际注册了四个子命令,除了上述两个之外还包括:

- **`/memory list`**:列出当前正在使用的 GEMINI.md 文件路径;
- **`/memory reload`** 的别名 **`/memory refresh`**(`altNames: ['refresh']`),效果相同。

`show` 与 `reload` 分别调用核心包的 `showMemory(config)` 与 `async refreshMemory(config)` 函数,后者会触发上文提到的 `MemoryContextManager.refresh()` 全流程重扫。

## 使用 @ 导入将上下文模块化

你可以用 `@file.md` 语法从其他文件导入内容,把大型 `GEMINI.md` 拆分成更小的、可管理的组件。该特性同时支持**相对路径**和**绝对路径**。

**带导入的 GEMINI.md 示例:**

```markdown
# Main GEMINI.md file

This is the main content.

@./components/instructions.md

More content here.

@../shared/style-guide.md

导入处理器的实现细节

导入的解析由 memoryImportProcessor.ts 中的 processImports() 完成,源码揭示了几个实用约束:

  • 最大导入深度为 5maxDepth: 5),超过后停止继续展开,防止无限递归;
  • 循环导入保护:已处理文件会被记录在 processedFiles 集合中,重复引用时插入 <!-- File already processed: ... --> 注释而非再次展开;
  • 代码区域免疫:出现在围栏代码块或行内代码(backtick 区域)中的 @xxx 不会被当作导入处理;
  • 路径安全校验validateImportPath() 会拒绝 file://http(s):// URL,并把解析后的真实路径(含符号链接解引用)约束在项目根目录之内,防止路径穿越攻击;
  • 失败降级:导入失败时会在原文中留下 <!-- Import failed: ... --> 标记,不会中断整体加载。

导入结果有 treeflat 两种形态(importFormat 参数):tree 格式在原文位置就地展开被导入内容并附带 <!-- Imported from: ... --> 标记;flat 格式则把所有被引用文件按首次遇到顺序拼接为 --- File: <path> --- 块。更多细节可参考 Memory Import Processor 文档

通过 settings.json 自定义上下文文件名

虽然 GEMINI.md 是默认文件名,但你可以在 settings.json 中通过 context.fileName 属性改为其他文件名,或配置一组文件名(支持单个字符串或字符串数组)。

settings.json 示例:

{
  "context": {
    "fileName": ["AGENTS.md", "CONTEXT.md", "GEMINI.md"]
  }
}
登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
903
1.82 K
docsdocs
暂无描述
Markdown
888
5.78 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
527
590
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.51 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.33 K
1.45 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.17 K
341